diff --git a/.bun-version b/.bun-version new file mode 100644 index 0000000..b966e81 --- /dev/null +++ b/.bun-version @@ -0,0 +1 @@ +1.2.4 \ No newline at end of file diff --git a/.github/workflows/build-latest.yaml b/.github/workflows/build-latest.yaml new file mode 100644 index 0000000..e14f639 --- /dev/null +++ b/.github/workflows/build-latest.yaml @@ -0,0 +1,22 @@ +name: "Build and commit latest" +on: push + +jobs: + build-and-commit-latest: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Install bun + uses: oven-sh/setup-bun@v2 + with: + bun-version-file: ".bun-version" + - name: Install dependencies + run: bun install --frozen-lockfile + - name: Build + run: bun run build + - name: Commit build + uses: EndBug/add-and-commit@v9.1.4 + with: + default_author: github_actions + message: 'Update dist directory with latest build' \ No newline at end of file diff --git a/.github/workflows/test-action.yaml b/.github/workflows/test-action.yaml deleted file mode 100644 index ea4c37d..0000000 --- a/.github/workflows/test-action.yaml +++ /dev/null @@ -1,19 +0,0 @@ -name: "units-test" -on: push - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: ./ - with: - network-url: "https://api.mainnet-beta.solana.com" - multisig-pda: "Aumm6P4VT4RcZUspSBRRkTYt2RFCWVfUhci23LrFNfZC" - multisig-vault-index: "1" - program-id: "89xd9GGQ6gd9qcxciu5TAcH1WSbwVuMTgDseh7Vge5tp" - buffer: "Hs93mJ3HC9qJz6ttpGGk12piv1bVxndv1RE86t585Duj" - spill-address: "FU2pN8qudMjtBCnU6QAavsvhZFTgXrdJ8JkLRArRuZ4n" - name: "Test Upgrade" - executable-data: "ELWwLnkMhEBsMuBUjDqHuN8sdy3AxxDAHU6MhVX5tG2U" - keypair: ${{ secrets.DEPLOYER_KEYPAIR }} diff --git a/README.md b/README.md index 487435e..48b0efc 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,40 @@ ## Squads v4 program upgrades GitHub action This action makes it possible to initialize a Solana program deployment via your CICD pipeline. +Optionally, it also allows you to update the IDL of your program as part of the same deployment transaction. -Example usage: +In order for the program data and IDL upgrades to work, you will need to set the authority of the program data buffer, and the program's IDL authority to your vault's address: + +```sh +# program data buffer +solana program set-buffer-authority PROGRAM_DATA_BUFFER_ADDRESS --new-buffer-authority YOUR_VAULT_ADDRESS + +# IDL buffer +anchor idl set-authority --program-id YOUR_PROGRAM_ID --new-authority YOUR_VAULT_ADDRESS +``` + +### Example usage: + +A detailed example (with workflows) can be found in this example repository: + +https://github.com/pileks/squads-idl-deploy-example ```yml steps: - uses: actions/checkout@v4 - name: Upgrade program - uses: Squads-Protocol/squads-v4-program-upgrade@beta + uses: pileks/squads-v4-program-upgrade@1.0.0 with: - network-url: "https://api.mainnet-beta.solana.com" - multisig-pda: "Aumm6P4VT4RcZUspSBRRkTYt2RFCWVfUhci23LrFNfZC" - multisig-vault-index: "0" - program-id: "89xd9GGQ6gd9qcxciu5TAcH1WSbwVuMTgDseh7Vge5tp" - buffer: "Hs93mJ3HC9qJz6ttpGGk12piv1bVxndv1RE86t585Duj" - spill-address: "FU2pN8qudMjtBCnU6QAavsvhZFTgXrdJ8JkLRArRuZ4n" + network-url: "https://api.mainnet-beta.solana.com" # "https://api.devnet.solana.com" for devnet, or your own endpoint + multisig-pda: "YOUR_MULTISIG_PDA" + multisig-vault-index: "0" # Usually 0, unless you are using a non-default vault + program-id: "YOUR_PROGRAM_ID" + buffer: "BUFFER_ADDRESS" + spill-address: "SPILL_ADDRESS" # Which address receives rent from closed accounts name: "Test Upgrade" - executable-data: "ELWwLnkMhEBsMuBUjDqHuN8sdy3AxxDAHU6MhVX5tG2U" - keypair: ${{ secrets.DEPLOYER_KEYPAIR }} + executable-data: "YOUR_PROGRAM_EXECUTABLE_DATA_ADDRESS" + keypair: ${{ secrets.DEPLOYER_KEYPAIR }} # This keypair also needs to be able to propose transactions on your multisig vault + idl-buffer: "IDL_BUFFER_ADDRESS" ``` The format of the Keypair needs to be a Uint8Array or a Private key. diff --git a/action.yml b/action.yml index e1eb6eb..327ae0e 100644 --- a/action.yml +++ b/action.yml @@ -1,6 +1,6 @@ name: "Squads V4 program upgrade" description: "Squads v4 program upgrade Github Action" -author: "Valentin Madrid" +author: "Valentin Madrid, Jure Granic-Skender" branding: icon: "upload" color: "black" @@ -36,21 +36,5 @@ inputs: description: "The idl buffer" required: false runs: - using: "composite" - steps: - - run: npm install - shell: bash - - run: | - npm run dev - shell: bash - env: - NETWORK_URL: ${{ inputs.network-url }} - MULTISIG_PDA: ${{ inputs.multisig-pda }} - MULTISIG_VAULT_INDEX: ${{ inputs.multisig-vault-index }} - PROGRAM_ID: ${{ inputs.program-id }} - BUFFER: ${{ inputs.buffer }} - SPILL_ADDRESS: ${{ inputs.spill-address }} - NAME: ${{ inputs.name }} - EXECUTABLE_DATA: ${{ inputs.executable-data }} - KEYPAIR: ${{ inputs.keypair }} - IDL_BUFFER: ${{ inputs.idl-buffer }} + using: "node20" + main: "dist/index.js" \ No newline at end of file diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..a7752a6 --- /dev/null +++ b/bun.lock @@ -0,0 +1,518 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "squads-v4-program-upgrade", + "dependencies": { + "@actions/core": "1.10.1", + "@marinade.finance/marinade-ts-sdk": "5.0.6", + "@solana/web3.js": "^1.98.2", + "@sqds/multisig": "2.1.3", + "rimraf": "6.0.1", + "tsx": "4.19.4", + }, + "devDependencies": { + "@types/inquirer": "^9.0.3", + "esbuild": "^0.25.3", + "typescript": "^5.0.2", + }, + }, + }, + "packages": { + "@actions/core": ["@actions/core@1.10.1", "", { "dependencies": { "@actions/http-client": "^2.0.1", "uuid": "^8.3.2" } }, "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g=="], + + "@actions/http-client": ["@actions/http-client@2.2.3", "", { "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" } }, "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA=="], + + "@babel/runtime": ["@babel/runtime@7.27.0", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw=="], + + "@coral-xyz/anchor": ["@coral-xyz/anchor@0.28.0", "", { "dependencies": { "@coral-xyz/borsh": "^0.28.0", "@solana/web3.js": "^1.68.0", "base64-js": "^1.5.1", "bn.js": "^5.1.2", "bs58": "^4.0.1", "buffer-layout": "^1.2.2", "camelcase": "^6.3.0", "cross-fetch": "^3.1.5", "crypto-hash": "^1.3.0", "eventemitter3": "^4.0.7", "js-sha256": "^0.9.0", "pako": "^2.0.3", "snake-case": "^3.0.4", "superstruct": "^0.15.4", "toml": "^3.0.0" } }, "sha512-kQ02Hv2ZqxtWP30WN1d4xxT4QqlOXYDxmEd3k/bbneqhV3X5QMO4LAtoUFs7otxyivOgoqam5Il5qx81FuI4vw=="], + + "@coral-xyz/borsh": ["@coral-xyz/borsh@0.28.0", "", { "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" }, "peerDependencies": { "@solana/web3.js": "^1.68.0" } }, "sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.3", "", { "os": "aix", "cpu": "ppc64" }, "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.3", "", { "os": "android", "cpu": "arm" }, "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.3", "", { "os": "android", "cpu": "arm64" }, "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.3", "", { "os": "android", "cpu": "x64" }, "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.3", "", { "os": "linux", "cpu": "arm" }, "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.3", "", { "os": "linux", "cpu": "ia32" }, "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.3", "", { "os": "linux", "cpu": "none" }, "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.3", "", { "os": "linux", "cpu": "none" }, "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.3", "", { "os": "linux", "cpu": "none" }, "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.3", "", { "os": "linux", "cpu": "x64" }, "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.3", "", { "os": "none", "cpu": "arm64" }, "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.3", "", { "os": "none", "cpu": "x64" }, "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.3", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.3", "", { "os": "openbsd", "cpu": "x64" }, "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.3", "", { "os": "sunos", "cpu": "x64" }, "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.3", "", { "os": "win32", "cpu": "x64" }, "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg=="], + + "@fastify/busboy": ["@fastify/busboy@2.1.1", "", {}, "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA=="], + + "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], + + "@marinade.finance/directed-stake-sdk": ["@marinade.finance/directed-stake-sdk@0.0.4", "", { "dependencies": { "@coral-xyz/anchor": "^0.27.0", "bs58": "^5.0.0" }, "peerDependencies": { "@solana/web3.js": "^1.74.0", "bn.js": "^5.2.1", "jsbi": "^4.3.0" } }, "sha512-5WTBDRg8hbCHS54wUUhPUuXj9JiQE3Bc1+nmDI3JivQPHu7VsDaPB3w1SHRh0bfARnZQg9oKg8s6jVwNiScCsQ=="], + + "@marinade.finance/marinade-ts-sdk": ["@marinade.finance/marinade-ts-sdk@5.0.6", "", { "dependencies": { "@coral-xyz/anchor": "^0.28.0", "@marinade.finance/directed-stake-sdk": "^0.0.4", "@marinade.finance/native-staking-sdk": "^1.0.0", "@solana/spl-stake-pool": "^0.6.5", "@solana/spl-token-3.x": "npm:@solana/spl-token@^0.3.8", "borsh": "^0.7.0", "bs58": "^5.0.0" } }, "sha512-oP1SNCey8l/2WJt2h84KSJFiynNGIEsLI6YOslMnvnaNn+PbcBDbxdTUh8IMW+L6bLF3qWYoXryK4TNOzdjR6g=="], + + "@marinade.finance/native-staking-sdk": ["@marinade.finance/native-staking-sdk@1.3.2", "", { "dependencies": { "@solana/spl-memo": "^0.2.5", "@solana/web3.js": "^1.98.0", "bn.js": "^5.2.1" } }, "sha512-Leo9L44M0pc82Smwen7d/+hNvXtRFhycVlOjFH/Obj7qkd/0b6G2eOyBjhnDFwexARBdzVApy+1c1pWuF0b4XQ=="], + + "@metaplex-foundation/beet": ["@metaplex-foundation/beet@0.7.1", "", { "dependencies": { "ansicolors": "^0.3.2", "bn.js": "^5.2.0", "debug": "^4.3.3" } }, "sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA=="], + + "@metaplex-foundation/beet-solana": ["@metaplex-foundation/beet-solana@0.4.0", "", { "dependencies": { "@metaplex-foundation/beet": ">=0.1.0", "@solana/web3.js": "^1.56.2", "bs58": "^5.0.0", "debug": "^4.3.4" } }, "sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ=="], + + "@metaplex-foundation/cusper": ["@metaplex-foundation/cusper@0.0.2", "", {}, "sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA=="], + + "@noble/curves": ["@noble/curves@1.9.0", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg=="], + + "@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@project-serum/borsh": ["@project-serum/borsh@0.2.5", "", { "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" }, "peerDependencies": { "@solana/web3.js": "^1.2.0" } }, "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q=="], + + "@solana/buffer-layout": ["@solana/buffer-layout@4.0.1", "", { "dependencies": { "buffer": "~6.0.3" } }, "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA=="], + + "@solana/buffer-layout-utils": ["@solana/buffer-layout-utils@0.2.0", "", { "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/web3.js": "^1.32.0", "bigint-buffer": "^1.1.5", "bignumber.js": "^9.0.1" } }, "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g=="], + + "@solana/codecs": ["@solana/codecs@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-data-structures": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/codecs-strings": "2.0.0-rc.1", "@solana/options": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ=="], + + "@solana/codecs-core": ["@solana/codecs-core@2.1.0", "", { "dependencies": { "@solana/errors": "2.1.0" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-SR7pKtmJBg2mhmkel2NeHA1pz06QeQXdMv8WJoIR9m8F/hw80K/612uaYbwTt2nkK0jg/Qn/rNSd7EcJ4SBGjw=="], + + "@solana/codecs-data-structures": ["@solana/codecs-data-structures@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog=="], + + "@solana/codecs-numbers": ["@solana/codecs-numbers@2.1.0", "", { "dependencies": { "@solana/codecs-core": "2.1.0", "@solana/errors": "2.1.0" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-XMu4yw5iCgQnMKsxSWPPOrGgtaohmupN3eyAtYv3K3C/MJEc5V90h74k5B1GUCiHvcrdUDO9RclNjD9lgbjFag=="], + + "@solana/codecs-strings": ["@solana/codecs-strings@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "fastestsmallesttextencoderdecoder": "^1.0.22", "typescript": ">=5" } }, "sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g=="], + + "@solana/errors": ["@solana/errors@2.1.0", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^13.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-l+GxAv0Ar4d3c3PlZdA9G++wFYZREEbbRyAFP8+n8HSg0vudCuzogh/13io6hYuUhG/9Ve8ARZNamhV7UScKNw=="], + + "@solana/options": ["@solana/options@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-data-structures": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/codecs-strings": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA=="], + + "@solana/spl-memo": ["@solana/spl-memo@0.2.5", "", { "dependencies": { "buffer": "^6.0.3" }, "peerDependencies": { "@solana/web3.js": "^1.91.6" } }, "sha512-0Zx5t3gAdcHlRTt2O3RgGlni1x7vV7Xq7j4z9q8kKOMgU03PyoTbFQ/BSYCcICHzkaqD7ZxAiaJ6dlXolg01oA=="], + + "@solana/spl-stake-pool": ["@solana/spl-stake-pool@0.6.5", "", { "dependencies": { "@project-serum/borsh": "^0.2.2", "@solana/buffer-layout": "^4.0.0", "@solana/spl-token": "^0.1.8", "@solana/web3.js": "^1.30.2", "bn.js": "^5.2.0", "buffer": "^6.0.3" } }, "sha512-gAYjX4LlRem3Bje1csZOOBStX8wAH8b8tu4sublUTIoJxLMdEbXqnwc8RJ2lAsmFkjxxomEM9Hk65F8jcvv15A=="], + + "@solana/spl-token": ["@solana/spl-token@0.3.11", "", { "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/buffer-layout-utils": "^0.2.0", "@solana/spl-token-metadata": "^0.1.2", "buffer": "^6.0.3" }, "peerDependencies": { "@solana/web3.js": "^1.88.0" } }, "sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ=="], + + "@solana/spl-token-3.x": ["@solana/spl-token@0.3.11", "", { "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/buffer-layout-utils": "^0.2.0", "@solana/spl-token-metadata": "^0.1.2", "buffer": "^6.0.3" }, "peerDependencies": { "@solana/web3.js": "^1.88.0" } }, "sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ=="], + + "@solana/spl-token-metadata": ["@solana/spl-token-metadata@0.1.6", "", { "dependencies": { "@solana/codecs": "2.0.0-rc.1" }, "peerDependencies": { "@solana/web3.js": "^1.95.3" } }, "sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA=="], + + "@solana/web3.js": ["@solana/web3.js@1.98.2", "", { "dependencies": { "@babel/runtime": "^7.25.0", "@noble/curves": "^1.4.2", "@noble/hashes": "^1.4.0", "@solana/buffer-layout": "^4.0.1", "@solana/codecs-numbers": "^2.1.0", "agentkeepalive": "^4.5.0", "bn.js": "^5.2.1", "borsh": "^0.7.0", "bs58": "^4.0.1", "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", "jayson": "^4.1.1", "node-fetch": "^2.7.0", "rpc-websockets": "^9.0.2", "superstruct": "^2.0.2" } }, "sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A=="], + + "@sqds/multisig": ["@sqds/multisig@2.1.3", "", { "dependencies": { "@metaplex-foundation/beet": "0.7.1", "@metaplex-foundation/beet-solana": "0.4.0", "@metaplex-foundation/cusper": "^0.0.2", "@solana/spl-token": "^0.3.6", "@solana/web3.js": "^1.70.3", "@types/bn.js": "^5.1.1", "assert": "^2.0.0", "bn.js": "^5.2.1", "buffer": "6.0.3", "invariant": "2.2.4" } }, "sha512-WOiL7La+RSiJsz7jVO85yhSiiSvNMUthiWuLPeWVOoD6IYa34BEAzanF1RdXRWGglSbRFYCTkyr+Ay1WmXmSRQ=="], + + "@swc/helpers": ["@swc/helpers@0.5.17", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="], + + "@types/bn.js": ["@types/bn.js@5.1.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w=="], + + "@types/connect": ["@types/connect@3.4.38", "", { "dependencies": { "@types/node": "*" } }, "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="], + + "@types/inquirer": ["@types/inquirer@9.0.7", "", { "dependencies": { "@types/through": "*", "rxjs": "^7.2.0" } }, "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g=="], + + "@types/node": ["@types/node@22.15.0", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-99S8dWD2DkeE6PBaEDw+In3aar7hdoBvjyJMR6vaKBTzpvR0P00ClzJMOoVrj9D2+Sy/YCwACYHnBTpMhg1UCA=="], + + "@types/through": ["@types/through@0.0.33", "", { "dependencies": { "@types/node": "*" } }, "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ=="], + + "@types/uuid": ["@types/uuid@8.3.4", "", {}, "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="], + + "@types/ws": ["@types/ws@7.4.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww=="], + + "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "^1.2.1" } }, "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ=="], + + "ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="], + + "ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="], + + "ansicolors": ["ansicolors@0.3.2", "", {}, "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg=="], + + "assert": ["assert@2.1.0", "", { "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" } }, "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw=="], + + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "base-x": ["base-x@4.0.1", "", {}, "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw=="], + + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + + "bigint-buffer": ["bigint-buffer@1.1.5", "", { "dependencies": { "bindings": "^1.3.0" } }, "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA=="], + + "bignumber.js": ["bignumber.js@9.3.0", "", {}, "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA=="], + + "bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="], + + "bn.js": ["bn.js@5.2.1", "", {}, "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="], + + "borsh": ["borsh@0.7.0", "", { "dependencies": { "bn.js": "^5.2.0", "bs58": "^4.0.0", "text-encoding-utf-8": "^1.0.2" } }, "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA=="], + + "brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], + + "bs58": ["bs58@5.0.0", "", { "dependencies": { "base-x": "^4.0.0" } }, "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ=="], + + "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], + + "buffer-layout": ["buffer-layout@1.2.2", "", {}, "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA=="], + + "bufferutil": ["bufferutil@4.0.9", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw=="], + + "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], + + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + + "camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], + + "chalk": ["chalk@5.4.1", "", {}, "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + + "cross-fetch": ["cross-fetch@3.2.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "crypto-hash": ["crypto-hash@1.3.0", "", {}, "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg=="], + + "debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + + "delay": ["delay@5.0.0", "", {}, "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw=="], + + "dot-case": ["dot-case@3.0.4", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="], + + "dotenv": ["dotenv@10.0.0", "", {}, "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="], + + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + + "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], + + "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + + "es6-promise": ["es6-promise@4.2.8", "", {}, "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="], + + "es6-promisify": ["es6-promisify@5.0.0", "", { "dependencies": { "es6-promise": "^4.0.3" } }, "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ=="], + + "esbuild": ["esbuild@0.25.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.3", "@esbuild/android-arm": "0.25.3", "@esbuild/android-arm64": "0.25.3", "@esbuild/android-x64": "0.25.3", "@esbuild/darwin-arm64": "0.25.3", "@esbuild/darwin-x64": "0.25.3", "@esbuild/freebsd-arm64": "0.25.3", "@esbuild/freebsd-x64": "0.25.3", "@esbuild/linux-arm": "0.25.3", "@esbuild/linux-arm64": "0.25.3", "@esbuild/linux-ia32": "0.25.3", "@esbuild/linux-loong64": "0.25.3", "@esbuild/linux-mips64el": "0.25.3", "@esbuild/linux-ppc64": "0.25.3", "@esbuild/linux-riscv64": "0.25.3", "@esbuild/linux-s390x": "0.25.3", "@esbuild/linux-x64": "0.25.3", "@esbuild/netbsd-arm64": "0.25.3", "@esbuild/netbsd-x64": "0.25.3", "@esbuild/openbsd-arm64": "0.25.3", "@esbuild/openbsd-x64": "0.25.3", "@esbuild/sunos-x64": "0.25.3", "@esbuild/win32-arm64": "0.25.3", "@esbuild/win32-ia32": "0.25.3", "@esbuild/win32-x64": "0.25.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q=="], + + "eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], + + "eyes": ["eyes@0.1.8", "", {}, "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="], + + "fast-stable-stringify": ["fast-stable-stringify@1.0.0", "", {}, "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag=="], + + "fastestsmallesttextencoderdecoder": ["fastestsmallesttextencoderdecoder@1.0.22", "", {}, "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw=="], + + "file-uri-to-path": ["file-uri-to-path@1.0.0", "", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="], + + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + + "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + + "get-tsconfig": ["get-tsconfig@4.10.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A=="], + + "glob": ["glob@11.0.2", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^4.0.1", "minimatch": "^10.0.0", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ=="], + + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + + "humanize-ms": ["humanize-ms@1.2.1", "", { "dependencies": { "ms": "^2.0.0" } }, "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ=="], + + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "invariant": ["invariant@2.2.4", "", { "dependencies": { "loose-envify": "^1.0.0" } }, "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="], + + "is-arguments": ["is-arguments@1.2.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA=="], + + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-generator-function": ["is-generator-function@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ=="], + + "is-nan": ["is-nan@1.3.2", "", { "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3" } }, "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w=="], + + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "isomorphic-ws": ["isomorphic-ws@4.0.1", "", { "peerDependencies": { "ws": "*" } }, "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="], + + "jackspeak": ["jackspeak@4.1.0", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" } }, "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw=="], + + "jayson": ["jayson@4.2.0", "", { "dependencies": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", "@types/ws": "^7.4.4", "commander": "^2.20.3", "delay": "^5.0.0", "es6-promisify": "^5.0.0", "eyes": "^0.1.8", "isomorphic-ws": "^4.0.1", "json-stringify-safe": "^5.0.1", "stream-json": "^1.9.1", "uuid": "^8.3.2", "ws": "^7.5.10" }, "bin": { "jayson": "bin/jayson.js" } }, "sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg=="], + + "js-sha256": ["js-sha256@0.9.0", "", {}, "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "jsbi": ["jsbi@4.3.2", "", {}, "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew=="], + + "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "lower-case": ["lower-case@2.0.2", "", { "dependencies": { "tslib": "^2.0.3" } }, "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg=="], + + "lru-cache": ["lru-cache@11.1.0", "", {}, "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A=="], + + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + + "minimatch": ["minimatch@10.0.1", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ=="], + + "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "no-case": ["no-case@3.0.4", "", { "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="], + + "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + + "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="], + + "object-is": ["object-is@1.1.6", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1" } }, "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q=="], + + "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + + "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], + + "pako": ["pako@2.1.0", "", {}, "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "path-scurry": ["path-scurry@2.0.0", "", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg=="], + + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + + "regenerator-runtime": ["regenerator-runtime@0.14.1", "", {}, "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="], + + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + + "rimraf": ["rimraf@6.0.1", "", { "dependencies": { "glob": "^11.0.0", "package-json-from-dist": "^1.0.0" }, "bin": { "rimraf": "dist/esm/bin.mjs" } }, "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A=="], + + "rpc-websockets": ["rpc-websockets@9.1.1", "", { "dependencies": { "@swc/helpers": "^0.5.11", "@types/uuid": "^8.3.4", "@types/ws": "^8.2.2", "buffer": "^6.0.3", "eventemitter3": "^5.0.1", "uuid": "^8.3.2", "ws": "^8.5.0" }, "optionalDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" } }, "sha512-1IXGM/TfPT6nfYMIXkJdzn+L4JEsmb0FL1O2OBjaH03V3yuUDdKFulGLMFG6ErV+8pZ5HVC0limve01RyO+saA=="], + + "rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="], + + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + + "set-function-length": ["set-function-length@1.2.2", "", { "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", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + + "snake-case": ["snake-case@3.0.4", "", { "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg=="], + + "stream-chain": ["stream-chain@2.2.5", "", {}, "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA=="], + + "stream-json": ["stream-json@1.9.1", "", { "dependencies": { "stream-chain": "^2.2.5" } }, "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw=="], + + "string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], + + "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="], + + "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "superstruct": ["superstruct@2.0.2", "", {}, "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A=="], + + "text-encoding-utf-8": ["text-encoding-utf-8@1.0.2", "", {}, "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg=="], + + "toml": ["toml@3.0.0", "", {}, "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w=="], + + "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "tsx": ["tsx@4.19.4", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q=="], + + "tunnel": ["tunnel@0.0.6", "", {}, "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="], + + "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + + "undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "utf-8-validate": ["utf-8-validate@5.0.10", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ=="], + + "util": ["util@0.12.5", "", { "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", "which-typed-array": "^1.1.2" } }, "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA=="], + + "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], + + "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + + "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "which-typed-array": ["which-typed-array@1.1.19", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="], + + "wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], + + "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + + "ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], + + "@coral-xyz/anchor/bs58": ["bs58@4.0.1", "", { "dependencies": { "base-x": "^3.0.2" } }, "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw=="], + + "@coral-xyz/anchor/superstruct": ["superstruct@0.15.5", "", {}, "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ=="], + + "@marinade.finance/directed-stake-sdk/@coral-xyz/anchor": ["@coral-xyz/anchor@0.27.0", "", { "dependencies": { "@coral-xyz/borsh": "^0.27.0", "@solana/web3.js": "^1.68.0", "base64-js": "^1.5.1", "bn.js": "^5.1.2", "bs58": "^4.0.1", "buffer-layout": "^1.2.2", "camelcase": "^6.3.0", "cross-fetch": "^3.1.5", "crypto-hash": "^1.3.0", "eventemitter3": "^4.0.7", "js-sha256": "^0.9.0", "pako": "^2.0.3", "snake-case": "^3.0.4", "superstruct": "^0.15.4", "toml": "^3.0.0" } }, "sha512-+P/vPdORawvg3A9Wj02iquxb4T0C5m4P6aZBVYysKl4Amk+r6aMPZkUhilBkD6E4Nuxnoajv3CFykUfkGE0n5g=="], + + "@solana/codecs/@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="], + + "@solana/codecs/@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="], + + "@solana/codecs-data-structures/@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="], + + "@solana/codecs-data-structures/@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="], + + "@solana/codecs-data-structures/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/codecs-strings/@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="], + + "@solana/codecs-strings/@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="], + + "@solana/codecs-strings/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/errors/commander": ["commander@13.1.0", "", {}, "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="], + + "@solana/options/@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="], + + "@solana/options/@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="], + + "@solana/options/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/spl-stake-pool/@solana/spl-token": ["@solana/spl-token@0.1.8", "", { "dependencies": { "@babel/runtime": "^7.10.5", "@solana/web3.js": "^1.21.0", "bn.js": "^5.1.0", "buffer": "6.0.3", "buffer-layout": "^1.2.0", "dotenv": "10.0.0" } }, "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ=="], + + "@solana/web3.js/bs58": ["bs58@4.0.1", "", { "dependencies": { "base-x": "^3.0.2" } }, "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw=="], + + "borsh/bs58": ["bs58@4.0.1", "", { "dependencies": { "base-x": "^3.0.2" } }, "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw=="], + + "jayson/@types/node": ["@types/node@12.20.55", "", {}, "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="], + + "rpc-websockets/@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], + + "rpc-websockets/eventemitter3": ["eventemitter3@5.0.1", "", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="], + + "rpc-websockets/ws": ["ws@8.18.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w=="], + + "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "string-width-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-ansi-cjs/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "wrap-ansi-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "@coral-xyz/anchor/bs58/base-x": ["base-x@3.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA=="], + + "@marinade.finance/directed-stake-sdk/@coral-xyz/anchor/@coral-xyz/borsh": ["@coral-xyz/borsh@0.27.0", "", { "dependencies": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" }, "peerDependencies": { "@solana/web3.js": "^1.68.0" } }, "sha512-tJKzhLukghTWPLy+n8K8iJKgBq1yLT/AxaNd10yJrX8mI56ao5+OFAKAqW/h0i79KCvb4BK0VGO5ECmmolFz9A=="], + + "@marinade.finance/directed-stake-sdk/@coral-xyz/anchor/bs58": ["bs58@4.0.1", "", { "dependencies": { "base-x": "^3.0.2" } }, "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw=="], + + "@marinade.finance/directed-stake-sdk/@coral-xyz/anchor/superstruct": ["superstruct@0.15.5", "", {}, "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ=="], + + "@solana/codecs-data-structures/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + + "@solana/codecs-strings/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + + "@solana/codecs/@solana/codecs-core/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/codecs/@solana/codecs-numbers/@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="], + + "@solana/options/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + + "@solana/web3.js/bs58/base-x": ["base-x@3.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA=="], + + "borsh/bs58/base-x": ["base-x@3.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA=="], + + "string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "@marinade.finance/directed-stake-sdk/@coral-xyz/anchor/bs58/base-x": ["base-x@3.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA=="], + + "@solana/codecs/@solana/codecs-core/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + + "@solana/codecs/@solana/codecs-numbers/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + } +} diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..d2ebdc7 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,114921 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// node_modules/@actions/core/lib/utils.js +var require_utils = __commonJS({ + "node_modules/@actions/core/lib/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.toCommandProperties = exports2.toCommandValue = void 0; + function toCommandValue(input) { + if (input === null || input === void 0) { + return ""; + } else if (typeof input === "string" || input instanceof String) { + return input; + } + return JSON.stringify(input); + } + exports2.toCommandValue = toCommandValue; + function toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) { + return {}; + } + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; + } + exports2.toCommandProperties = toCommandProperties; + } +}); + +// node_modules/@actions/core/lib/command.js +var require_command = __commonJS({ + "node_modules/@actions/core/lib/command.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.issue = exports2.issueCommand = void 0; + var os = __importStar2(require("os")); + var utils_1 = require_utils(); + function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); + } + exports2.issueCommand = issueCommand; + function issue(name, message = "") { + issueCommand(name, {}, message); + } + exports2.issue = issue; + var CMD_STRING = "::"; + var Command = class { + constructor(command, properties, message) { + if (!command) { + command = "missing.command"; + } + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += " "; + let first = true; + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } else { + cmdStr += ","; + } + cmdStr += `${key}=${escapeProperty(val)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } + }; + function escapeData(s) { + return utils_1.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); + } + function escapeProperty(s) { + return utils_1.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); + } + } +}); + +// node_modules/uuid/dist/esm-node/rng.js +function rng() { + if (poolPtr > rnds8Pool.length - 16) { + import_crypto.default.randomFillSync(rnds8Pool); + poolPtr = 0; + } + return rnds8Pool.slice(poolPtr, poolPtr += 16); +} +var import_crypto, rnds8Pool, poolPtr; +var init_rng = __esm({ + "node_modules/uuid/dist/esm-node/rng.js"() { + import_crypto = __toESM(require("crypto")); + rnds8Pool = new Uint8Array(256); + poolPtr = rnds8Pool.length; + } +}); + +// node_modules/uuid/dist/esm-node/regex.js +var regex_default; +var init_regex = __esm({ + "node_modules/uuid/dist/esm-node/regex.js"() { + regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; + } +}); + +// node_modules/uuid/dist/esm-node/validate.js +function validate(uuid) { + return typeof uuid === "string" && regex_default.test(uuid); +} +var validate_default; +var init_validate = __esm({ + "node_modules/uuid/dist/esm-node/validate.js"() { + init_regex(); + validate_default = validate; + } +}); + +// node_modules/uuid/dist/esm-node/stringify.js +function stringify(arr, offset = 0) { + const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); + if (!validate_default(uuid)) { + throw TypeError("Stringified UUID is invalid"); + } + return uuid; +} +var byteToHex, stringify_default; +var init_stringify = __esm({ + "node_modules/uuid/dist/esm-node/stringify.js"() { + init_validate(); + byteToHex = []; + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 256).toString(16).substr(1)); + } + stringify_default = stringify; + } +}); + +// node_modules/uuid/dist/esm-node/v1.js +function v1(options, buf, offset) { + let i = buf && offset || 0; + const b = buf || new Array(16); + options = options || {}; + let node = options.node || _nodeId; + let clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq; + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || rng)(); + if (node == null) { + node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + } + if (clockseq == null) { + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383; + } + } + let msecs = options.msecs !== void 0 ? options.msecs : Date.now(); + let nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1; + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4; + if (dt < 0 && options.clockseq === void 0) { + clockseq = clockseq + 1 & 16383; + } + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) { + nsecs = 0; + } + if (nsecs >= 1e4) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; + msecs += 122192928e5; + const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296; + b[i++] = tl >>> 24 & 255; + b[i++] = tl >>> 16 & 255; + b[i++] = tl >>> 8 & 255; + b[i++] = tl & 255; + const tmh = msecs / 4294967296 * 1e4 & 268435455; + b[i++] = tmh >>> 8 & 255; + b[i++] = tmh & 255; + b[i++] = tmh >>> 24 & 15 | 16; + b[i++] = tmh >>> 16 & 255; + b[i++] = clockseq >>> 8 | 128; + b[i++] = clockseq & 255; + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + return buf || stringify_default(b); +} +var _nodeId, _clockseq, _lastMSecs, _lastNSecs, v1_default; +var init_v1 = __esm({ + "node_modules/uuid/dist/esm-node/v1.js"() { + init_rng(); + init_stringify(); + _lastMSecs = 0; + _lastNSecs = 0; + v1_default = v1; + } +}); + +// node_modules/uuid/dist/esm-node/parse.js +function parse(uuid) { + if (!validate_default(uuid)) { + throw TypeError("Invalid UUID"); + } + let v; + const arr = new Uint8Array(16); + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; + arr[1] = v >>> 16 & 255; + arr[2] = v >>> 8 & 255; + arr[3] = v & 255; + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; + arr[5] = v & 255; + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; + arr[7] = v & 255; + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; + arr[9] = v & 255; + arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255; + arr[11] = v / 4294967296 & 255; + arr[12] = v >>> 24 & 255; + arr[13] = v >>> 16 & 255; + arr[14] = v >>> 8 & 255; + arr[15] = v & 255; + return arr; +} +var parse_default; +var init_parse = __esm({ + "node_modules/uuid/dist/esm-node/parse.js"() { + init_validate(); + parse_default = parse; + } +}); + +// node_modules/uuid/dist/esm-node/v35.js +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); + const bytes7 = []; + for (let i = 0; i < str.length; ++i) { + bytes7.push(str.charCodeAt(i)); + } + return bytes7; +} +function v35_default(name, version2, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + if (typeof value === "string") { + value = stringToBytes(value); + } + if (typeof namespace === "string") { + namespace = parse_default(namespace); + } + if (namespace.length !== 16) { + throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); + } + let bytes7 = new Uint8Array(16 + value.length); + bytes7.set(namespace); + bytes7.set(value, namespace.length); + bytes7 = hashfunc(bytes7); + bytes7[6] = bytes7[6] & 15 | version2; + bytes7[8] = bytes7[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes7[i]; + } + return buf; + } + return stringify_default(bytes7); + } + try { + generateUUID.name = name; + } catch (err) { + } + generateUUID.DNS = DNS; + generateUUID.URL = URL2; + return generateUUID; +} +var DNS, URL2; +var init_v35 = __esm({ + "node_modules/uuid/dist/esm-node/v35.js"() { + init_stringify(); + init_parse(); + DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; + URL2 = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; + } +}); + +// node_modules/uuid/dist/esm-node/md5.js +function md5(bytes7) { + if (Array.isArray(bytes7)) { + bytes7 = Buffer.from(bytes7); + } else if (typeof bytes7 === "string") { + bytes7 = Buffer.from(bytes7, "utf8"); + } + return import_crypto2.default.createHash("md5").update(bytes7).digest(); +} +var import_crypto2, md5_default; +var init_md5 = __esm({ + "node_modules/uuid/dist/esm-node/md5.js"() { + import_crypto2 = __toESM(require("crypto")); + md5_default = md5; + } +}); + +// node_modules/uuid/dist/esm-node/v3.js +var v3, v3_default; +var init_v3 = __esm({ + "node_modules/uuid/dist/esm-node/v3.js"() { + init_v35(); + init_md5(); + v3 = v35_default("v3", 48, md5_default); + v3_default = v3; + } +}); + +// node_modules/uuid/dist/esm-node/v4.js +function v4(options, buf, offset) { + options = options || {}; + const rnds = options.random || (options.rng || rng)(); + rnds[6] = rnds[6] & 15 | 64; + rnds[8] = rnds[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return stringify_default(rnds); +} +var v4_default; +var init_v4 = __esm({ + "node_modules/uuid/dist/esm-node/v4.js"() { + init_rng(); + init_stringify(); + v4_default = v4; + } +}); + +// node_modules/uuid/dist/esm-node/sha1.js +function sha1(bytes7) { + if (Array.isArray(bytes7)) { + bytes7 = Buffer.from(bytes7); + } else if (typeof bytes7 === "string") { + bytes7 = Buffer.from(bytes7, "utf8"); + } + return import_crypto3.default.createHash("sha1").update(bytes7).digest(); +} +var import_crypto3, sha1_default; +var init_sha1 = __esm({ + "node_modules/uuid/dist/esm-node/sha1.js"() { + import_crypto3 = __toESM(require("crypto")); + sha1_default = sha1; + } +}); + +// node_modules/uuid/dist/esm-node/v5.js +var v5, v5_default; +var init_v5 = __esm({ + "node_modules/uuid/dist/esm-node/v5.js"() { + init_v35(); + init_sha1(); + v5 = v35_default("v5", 80, sha1_default); + v5_default = v5; + } +}); + +// node_modules/uuid/dist/esm-node/nil.js +var nil_default; +var init_nil = __esm({ + "node_modules/uuid/dist/esm-node/nil.js"() { + nil_default = "00000000-0000-0000-0000-000000000000"; + } +}); + +// node_modules/uuid/dist/esm-node/version.js +function version(uuid) { + if (!validate_default(uuid)) { + throw TypeError("Invalid UUID"); + } + return parseInt(uuid.substr(14, 1), 16); +} +var version_default; +var init_version = __esm({ + "node_modules/uuid/dist/esm-node/version.js"() { + init_validate(); + version_default = version; + } +}); + +// node_modules/uuid/dist/esm-node/index.js +var esm_node_exports = {}; +__export(esm_node_exports, { + NIL: () => nil_default, + parse: () => parse_default, + stringify: () => stringify_default, + v1: () => v1_default, + v3: () => v3_default, + v4: () => v4_default, + v5: () => v5_default, + validate: () => validate_default, + version: () => version_default +}); +var init_esm_node = __esm({ + "node_modules/uuid/dist/esm-node/index.js"() { + init_v1(); + init_v3(); + init_v4(); + init_v5(); + init_nil(); + init_version(); + init_validate(); + init_stringify(); + init_parse(); + } +}); + +// node_modules/@actions/core/lib/file-command.js +var require_file_command = __commonJS({ + "node_modules/@actions/core/lib/file-command.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.prepareKeyValueMessage = exports2.issueFileCommand = void 0; + var fs = __importStar2(require("fs")); + var os = __importStar2(require("os")); + var uuid_1 = (init_esm_node(), __toCommonJS(esm_node_exports)); + var utils_1 = require_utils(); + function issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error(`Unable to find environment variable for file command ${command}`); + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { + encoding: "utf8" + }); + } + exports2.issueFileCommand = issueFileCommand; + function prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${uuid_1.v4()}`; + const convertedValue = utils_1.toCommandValue(value); + if (key.includes(delimiter)) { + throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); + } + if (convertedValue.includes(delimiter)) { + throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); + } + return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; + } + exports2.prepareKeyValueMessage = prepareKeyValueMessage; + } +}); + +// node_modules/@actions/http-client/lib/proxy.js +var require_proxy = __commonJS({ + "node_modules/@actions/http-client/lib/proxy.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.checkBypass = exports2.getProxyUrl = void 0; + function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === "https:"; + if (checkBypass(reqUrl)) { + return void 0; + } + const proxyVar = (() => { + if (usingSsl) { + return process.env["https_proxy"] || process.env["HTTPS_PROXY"]; + } else { + return process.env["http_proxy"] || process.env["HTTP_PROXY"]; + } + })(); + if (proxyVar) { + try { + return new DecodedURL(proxyVar); + } catch (_a) { + if (!proxyVar.startsWith("http://") && !proxyVar.startsWith("https://")) + return new DecodedURL(`http://${proxyVar}`); + } + } else { + return void 0; + } + } + exports2.getProxyUrl = getProxyUrl; + function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const reqHost = reqUrl.hostname; + if (isLoopbackAddress(reqHost)) { + return true; + } + const noProxy = process.env["no_proxy"] || process.env["NO_PROXY"] || ""; + if (!noProxy) { + return false; + } + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } else if (reqUrl.protocol === "http:") { + reqPort = 80; + } else if (reqUrl.protocol === "https:") { + reqPort = 443; + } + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === "number") { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + for (const upperNoProxyItem of noProxy.split(",").map((x) => x.trim().toUpperCase()).filter((x) => x)) { + if (upperNoProxyItem === "*" || upperReqHosts.some((x) => x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith(".") && x.endsWith(`${upperNoProxyItem}`))) { + return true; + } + } + return false; + } + exports2.checkBypass = checkBypass; + function isLoopbackAddress(host) { + const hostLower = host.toLowerCase(); + return hostLower === "localhost" || hostLower.startsWith("127.") || hostLower.startsWith("[::1]") || hostLower.startsWith("[0:0:0:0:0:0:0:1]"); + } + var DecodedURL = class extends URL { + constructor(url, base) { + super(url, base); + this._decodedUsername = decodeURIComponent(super.username); + this._decodedPassword = decodeURIComponent(super.password); + } + get username() { + return this._decodedUsername; + } + get password() { + return this._decodedPassword; + } + }; + } +}); + +// node_modules/tunnel/lib/tunnel.js +var require_tunnel = __commonJS({ + "node_modules/tunnel/lib/tunnel.js"(exports2) { + "use strict"; + var net = require("net"); + var tls = require("tls"); + var http = require("http"); + var https = require("https"); + var events = require("events"); + var assert2 = require("assert"); + var util = require("util"); + exports2.httpOverHttp = httpOverHttp; + exports2.httpsOverHttp = httpsOverHttp; + exports2.httpOverHttps = httpOverHttps; + exports2.httpsOverHttps = httpsOverHttps; + function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; + } + function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; + } + function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; + } + function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; + } + function TunnelingAgent(options) { + var self2 = this; + self2.options = options || {}; + self2.proxyOptions = self2.options.proxy || {}; + self2.maxSockets = self2.options.maxSockets || http.Agent.defaultMaxSockets; + self2.requests = []; + self2.sockets = []; + self2.on("free", function onFree(socket, host, port, localAddress) { + var options2 = toOptions(host, port, localAddress); + for (var i = 0, len = self2.requests.length; i < len; ++i) { + var pending = self2.requests[i]; + if (pending.host === options2.host && pending.port === options2.port) { + self2.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self2.removeSocket(socket); + }); + } + util.inherits(TunnelingAgent, events.EventEmitter); + TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self2 = this; + var options = mergeOptions({ request: req }, self2.options, toOptions(host, port, localAddress)); + if (self2.sockets.length >= this.maxSockets) { + self2.requests.push(options); + return; + } + self2.createSocket(options, function(socket) { + socket.on("free", onFree); + socket.on("close", onCloseOrRemove); + socket.on("agentRemove", onCloseOrRemove); + req.onSocket(socket); + function onFree() { + self2.emit("free", socket, options); + } + function onCloseOrRemove(err) { + self2.removeSocket(socket); + socket.removeListener("free", onFree); + socket.removeListener("close", onCloseOrRemove); + socket.removeListener("agentRemove", onCloseOrRemove); + } + }); + }; + TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self2 = this; + var placeholder = {}; + self2.sockets.push(placeholder); + var connectOptions = mergeOptions({}, self2.proxyOptions, { + method: "CONNECT", + path: options.host + ":" + options.port, + agent: false, + headers: { + host: options.host + ":" + options.port + } + }); + if (options.localAddress) { + connectOptions.localAddress = options.localAddress; + } + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers["Proxy-Authorization"] = "Basic " + new Buffer(connectOptions.proxyAuth).toString("base64"); + } + debug("making CONNECT request"); + var connectReq = self2.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; + connectReq.once("response", onResponse); + connectReq.once("upgrade", onUpgrade); + connectReq.once("connect", onConnect); + connectReq.once("error", onError); + connectReq.end(); + function onResponse(res) { + res.upgrade = true; + } + function onUpgrade(res, socket, head) { + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + if (res.statusCode !== 200) { + debug( + "tunneling socket could not be established, statusCode=%d", + res.statusCode + ); + socket.destroy(); + var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); + error.code = "ECONNRESET"; + options.request.emit("error", error); + self2.removeSocket(placeholder); + return; + } + if (head.length > 0) { + debug("got illegal response body from proxy"); + socket.destroy(); + var error = new Error("got illegal response body from proxy"); + error.code = "ECONNRESET"; + options.request.emit("error", error); + self2.removeSocket(placeholder); + return; + } + debug("tunneling connection has established"); + self2.sockets[self2.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } + function onError(cause) { + connectReq.removeAllListeners(); + debug( + "tunneling socket could not be established, cause=%s\n", + cause.message, + cause.stack + ); + var error = new Error("tunneling socket could not be established, cause=" + cause.message); + error.code = "ECONNRESET"; + options.request.emit("error", error); + self2.removeSocket(placeholder); + } + }; + TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket); + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); + var pending = this.requests.shift(); + if (pending) { + this.createSocket(pending, function(socket2) { + pending.request.onSocket(socket2); + }); + } + }; + function createSecureSocket(options, cb) { + var self2 = this; + TunnelingAgent.prototype.createSocket.call(self2, options, function(socket) { + var hostHeader = options.request.getHeader("host"); + var tlsOptions = mergeOptions({}, self2.options, { + socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, "") : options.host + }); + var secureSocket = tls.connect(0, tlsOptions); + self2.sockets[self2.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); + } + function toOptions(host, port, localAddress) { + if (typeof host === "string") { + return { + host, + port, + localAddress + }; + } + return host; + } + function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if (typeof overrides === "object") { + var keys = Object.keys(overrides); + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + if (overrides[k] !== void 0) { + target[k] = overrides[k]; + } + } + } + } + return target; + } + var debug; + if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === "string") { + args[0] = "TUNNEL: " + args[0]; + } else { + args.unshift("TUNNEL:"); + } + console.error.apply(console, args); + }; + } else { + debug = function() { + }; + } + exports2.debug = debug; + } +}); + +// node_modules/tunnel/index.js +var require_tunnel2 = __commonJS({ + "node_modules/tunnel/index.js"(exports2, module2) { + module2.exports = require_tunnel(); + } +}); + +// node_modules/undici/lib/core/symbols.js +var require_symbols = __commonJS({ + "node_modules/undici/lib/core/symbols.js"(exports2, module2) { + module2.exports = { + kClose: Symbol("close"), + kDestroy: Symbol("destroy"), + kDispatch: Symbol("dispatch"), + kUrl: Symbol("url"), + kWriting: Symbol("writing"), + kResuming: Symbol("resuming"), + kQueue: Symbol("queue"), + kConnect: Symbol("connect"), + kConnecting: Symbol("connecting"), + kHeadersList: Symbol("headers list"), + kKeepAliveDefaultTimeout: Symbol("default keep alive timeout"), + kKeepAliveMaxTimeout: Symbol("max keep alive timeout"), + kKeepAliveTimeoutThreshold: Symbol("keep alive timeout threshold"), + kKeepAliveTimeoutValue: Symbol("keep alive timeout"), + kKeepAlive: Symbol("keep alive"), + kHeadersTimeout: Symbol("headers timeout"), + kBodyTimeout: Symbol("body timeout"), + kServerName: Symbol("server name"), + kLocalAddress: Symbol("local address"), + kHost: Symbol("host"), + kNoRef: Symbol("no ref"), + kBodyUsed: Symbol("used"), + kRunning: Symbol("running"), + kBlocking: Symbol("blocking"), + kPending: Symbol("pending"), + kSize: Symbol("size"), + kBusy: Symbol("busy"), + kQueued: Symbol("queued"), + kFree: Symbol("free"), + kConnected: Symbol("connected"), + kClosed: Symbol("closed"), + kNeedDrain: Symbol("need drain"), + kReset: Symbol("reset"), + kDestroyed: Symbol.for("nodejs.stream.destroyed"), + kMaxHeadersSize: Symbol("max headers size"), + kRunningIdx: Symbol("running index"), + kPendingIdx: Symbol("pending index"), + kError: Symbol("error"), + kClients: Symbol("clients"), + kClient: Symbol("client"), + kParser: Symbol("parser"), + kOnDestroyed: Symbol("destroy callbacks"), + kPipelining: Symbol("pipelining"), + kSocket: Symbol("socket"), + kHostHeader: Symbol("host header"), + kConnector: Symbol("connector"), + kStrictContentLength: Symbol("strict content length"), + kMaxRedirections: Symbol("maxRedirections"), + kMaxRequests: Symbol("maxRequestsPerClient"), + kProxy: Symbol("proxy agent options"), + kCounter: Symbol("socket request counter"), + kInterceptors: Symbol("dispatch interceptors"), + kMaxResponseSize: Symbol("max response size"), + kHTTP2Session: Symbol("http2Session"), + kHTTP2SessionState: Symbol("http2Session state"), + kHTTP2BuildRequest: Symbol("http2 build request"), + kHTTP1BuildRequest: Symbol("http1 build request"), + kHTTP2CopyHeaders: Symbol("http2 copy headers"), + kHTTPConnVersion: Symbol("http connection version"), + kRetryHandlerDefaultRetry: Symbol("retry agent default retry"), + kConstruct: Symbol("constructable") + }; + } +}); + +// node_modules/undici/lib/core/errors.js +var require_errors = __commonJS({ + "node_modules/undici/lib/core/errors.js"(exports2, module2) { + "use strict"; + var UndiciError = class extends Error { + constructor(message) { + super(message); + this.name = "UndiciError"; + this.code = "UND_ERR"; + } + }; + var ConnectTimeoutError = class _ConnectTimeoutError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _ConnectTimeoutError); + this.name = "ConnectTimeoutError"; + this.message = message || "Connect Timeout Error"; + this.code = "UND_ERR_CONNECT_TIMEOUT"; + } + }; + var HeadersTimeoutError = class _HeadersTimeoutError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _HeadersTimeoutError); + this.name = "HeadersTimeoutError"; + this.message = message || "Headers Timeout Error"; + this.code = "UND_ERR_HEADERS_TIMEOUT"; + } + }; + var HeadersOverflowError = class _HeadersOverflowError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _HeadersOverflowError); + this.name = "HeadersOverflowError"; + this.message = message || "Headers Overflow Error"; + this.code = "UND_ERR_HEADERS_OVERFLOW"; + } + }; + var BodyTimeoutError = class _BodyTimeoutError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _BodyTimeoutError); + this.name = "BodyTimeoutError"; + this.message = message || "Body Timeout Error"; + this.code = "UND_ERR_BODY_TIMEOUT"; + } + }; + var ResponseStatusCodeError = class _ResponseStatusCodeError extends UndiciError { + constructor(message, statusCode, headers, body) { + super(message); + Error.captureStackTrace(this, _ResponseStatusCodeError); + this.name = "ResponseStatusCodeError"; + this.message = message || "Response Status Code Error"; + this.code = "UND_ERR_RESPONSE_STATUS_CODE"; + this.body = body; + this.status = statusCode; + this.statusCode = statusCode; + this.headers = headers; + } + }; + var InvalidArgumentError = class _InvalidArgumentError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _InvalidArgumentError); + this.name = "InvalidArgumentError"; + this.message = message || "Invalid Argument Error"; + this.code = "UND_ERR_INVALID_ARG"; + } + }; + var InvalidReturnValueError = class _InvalidReturnValueError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _InvalidReturnValueError); + this.name = "InvalidReturnValueError"; + this.message = message || "Invalid Return Value Error"; + this.code = "UND_ERR_INVALID_RETURN_VALUE"; + } + }; + var RequestAbortedError = class _RequestAbortedError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _RequestAbortedError); + this.name = "AbortError"; + this.message = message || "Request aborted"; + this.code = "UND_ERR_ABORTED"; + } + }; + var InformationalError = class _InformationalError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _InformationalError); + this.name = "InformationalError"; + this.message = message || "Request information"; + this.code = "UND_ERR_INFO"; + } + }; + var RequestContentLengthMismatchError = class _RequestContentLengthMismatchError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _RequestContentLengthMismatchError); + this.name = "RequestContentLengthMismatchError"; + this.message = message || "Request body length does not match content-length header"; + this.code = "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"; + } + }; + var ResponseContentLengthMismatchError = class _ResponseContentLengthMismatchError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _ResponseContentLengthMismatchError); + this.name = "ResponseContentLengthMismatchError"; + this.message = message || "Response body length does not match content-length header"; + this.code = "UND_ERR_RES_CONTENT_LENGTH_MISMATCH"; + } + }; + var ClientDestroyedError = class _ClientDestroyedError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _ClientDestroyedError); + this.name = "ClientDestroyedError"; + this.message = message || "The client is destroyed"; + this.code = "UND_ERR_DESTROYED"; + } + }; + var ClientClosedError = class _ClientClosedError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _ClientClosedError); + this.name = "ClientClosedError"; + this.message = message || "The client is closed"; + this.code = "UND_ERR_CLOSED"; + } + }; + var SocketError = class _SocketError extends UndiciError { + constructor(message, socket) { + super(message); + Error.captureStackTrace(this, _SocketError); + this.name = "SocketError"; + this.message = message || "Socket error"; + this.code = "UND_ERR_SOCKET"; + this.socket = socket; + } + }; + var NotSupportedError = class _NotSupportedError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _NotSupportedError); + this.name = "NotSupportedError"; + this.message = message || "Not supported error"; + this.code = "UND_ERR_NOT_SUPPORTED"; + } + }; + var BalancedPoolMissingUpstreamError = class extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, NotSupportedError); + this.name = "MissingUpstreamError"; + this.message = message || "No upstream has been added to the BalancedPool"; + this.code = "UND_ERR_BPL_MISSING_UPSTREAM"; + } + }; + var HTTPParserError = class _HTTPParserError extends Error { + constructor(message, code, data) { + super(message); + Error.captureStackTrace(this, _HTTPParserError); + this.name = "HTTPParserError"; + this.code = code ? `HPE_${code}` : void 0; + this.data = data ? data.toString() : void 0; + } + }; + var ResponseExceededMaxSizeError = class _ResponseExceededMaxSizeError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _ResponseExceededMaxSizeError); + this.name = "ResponseExceededMaxSizeError"; + this.message = message || "Response content exceeded max size"; + this.code = "UND_ERR_RES_EXCEEDED_MAX_SIZE"; + } + }; + var RequestRetryError = class _RequestRetryError extends UndiciError { + constructor(message, code, { headers, data }) { + super(message); + Error.captureStackTrace(this, _RequestRetryError); + this.name = "RequestRetryError"; + this.message = message || "Request retry error"; + this.code = "UND_ERR_REQ_RETRY"; + this.statusCode = code; + this.data = data; + this.headers = headers; + } + }; + module2.exports = { + HTTPParserError, + UndiciError, + HeadersTimeoutError, + HeadersOverflowError, + BodyTimeoutError, + RequestContentLengthMismatchError, + ConnectTimeoutError, + ResponseStatusCodeError, + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError, + ClientDestroyedError, + ClientClosedError, + InformationalError, + SocketError, + NotSupportedError, + ResponseContentLengthMismatchError, + BalancedPoolMissingUpstreamError, + ResponseExceededMaxSizeError, + RequestRetryError + }; + } +}); + +// node_modules/undici/lib/core/constants.js +var require_constants = __commonJS({ + "node_modules/undici/lib/core/constants.js"(exports2, module2) { + "use strict"; + var headerNameLowerCasedRecord = {}; + var wellknownHeaderNames = [ + "Accept", + "Accept-Encoding", + "Accept-Language", + "Accept-Ranges", + "Access-Control-Allow-Credentials", + "Access-Control-Allow-Headers", + "Access-Control-Allow-Methods", + "Access-Control-Allow-Origin", + "Access-Control-Expose-Headers", + "Access-Control-Max-Age", + "Access-Control-Request-Headers", + "Access-Control-Request-Method", + "Age", + "Allow", + "Alt-Svc", + "Alt-Used", + "Authorization", + "Cache-Control", + "Clear-Site-Data", + "Connection", + "Content-Disposition", + "Content-Encoding", + "Content-Language", + "Content-Length", + "Content-Location", + "Content-Range", + "Content-Security-Policy", + "Content-Security-Policy-Report-Only", + "Content-Type", + "Cookie", + "Cross-Origin-Embedder-Policy", + "Cross-Origin-Opener-Policy", + "Cross-Origin-Resource-Policy", + "Date", + "Device-Memory", + "Downlink", + "ECT", + "ETag", + "Expect", + "Expect-CT", + "Expires", + "Forwarded", + "From", + "Host", + "If-Match", + "If-Modified-Since", + "If-None-Match", + "If-Range", + "If-Unmodified-Since", + "Keep-Alive", + "Last-Modified", + "Link", + "Location", + "Max-Forwards", + "Origin", + "Permissions-Policy", + "Pragma", + "Proxy-Authenticate", + "Proxy-Authorization", + "RTT", + "Range", + "Referer", + "Referrer-Policy", + "Refresh", + "Retry-After", + "Sec-WebSocket-Accept", + "Sec-WebSocket-Extensions", + "Sec-WebSocket-Key", + "Sec-WebSocket-Protocol", + "Sec-WebSocket-Version", + "Server", + "Server-Timing", + "Service-Worker-Allowed", + "Service-Worker-Navigation-Preload", + "Set-Cookie", + "SourceMap", + "Strict-Transport-Security", + "Supports-Loading-Mode", + "TE", + "Timing-Allow-Origin", + "Trailer", + "Transfer-Encoding", + "Upgrade", + "Upgrade-Insecure-Requests", + "User-Agent", + "Vary", + "Via", + "WWW-Authenticate", + "X-Content-Type-Options", + "X-DNS-Prefetch-Control", + "X-Frame-Options", + "X-Permitted-Cross-Domain-Policies", + "X-Powered-By", + "X-Requested-With", + "X-XSS-Protection" + ]; + for (let i = 0; i < wellknownHeaderNames.length; ++i) { + const key = wellknownHeaderNames[i]; + const lowerCasedKey = key.toLowerCase(); + headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey; + } + Object.setPrototypeOf(headerNameLowerCasedRecord, null); + module2.exports = { + wellknownHeaderNames, + headerNameLowerCasedRecord + }; + } +}); + +// node_modules/undici/lib/core/util.js +var require_util = __commonJS({ + "node_modules/undici/lib/core/util.js"(exports2, module2) { + "use strict"; + var assert2 = require("assert"); + var { kDestroyed, kBodyUsed } = require_symbols(); + var { IncomingMessage } = require("http"); + var stream = require("stream"); + var net = require("net"); + var { InvalidArgumentError } = require_errors(); + var { Blob: Blob2 } = require("buffer"); + var nodeUtil = require("util"); + var { stringify: stringify2 } = require("querystring"); + var { headerNameLowerCasedRecord } = require_constants(); + var [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v)); + function nop() { + } + function isStream(obj) { + return obj && typeof obj === "object" && typeof obj.pipe === "function" && typeof obj.on === "function"; + } + function isBlobLike(object) { + return Blob2 && object instanceof Blob2 || object && typeof object === "object" && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && /^(Blob|File)$/.test(object[Symbol.toStringTag]); + } + function buildURL(url, queryParams) { + if (url.includes("?") || url.includes("#")) { + throw new Error('Query params cannot be passed when url already contains "?" or "#".'); + } + const stringified = stringify2(queryParams); + if (stringified) { + url += "?" + stringified; + } + return url; + } + function parseURL(url) { + if (typeof url === "string") { + url = new URL(url); + if (!/^https?:/.test(url.origin || url.protocol)) { + throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); + } + return url; + } + if (!url || typeof url !== "object") { + throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object."); + } + if (!/^https?:/.test(url.origin || url.protocol)) { + throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); + } + if (!(url instanceof URL)) { + if (url.port != null && url.port !== "" && !Number.isFinite(parseInt(url.port))) { + throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer."); + } + if (url.path != null && typeof url.path !== "string") { + throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined."); + } + if (url.pathname != null && typeof url.pathname !== "string") { + throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined."); + } + if (url.hostname != null && typeof url.hostname !== "string") { + throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined."); + } + if (url.origin != null && typeof url.origin !== "string") { + throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined."); + } + const port = url.port != null ? url.port : url.protocol === "https:" ? 443 : 80; + let origin = url.origin != null ? url.origin : `${url.protocol}//${url.hostname}:${port}`; + let path = url.path != null ? url.path : `${url.pathname || ""}${url.search || ""}`; + if (origin.endsWith("/")) { + origin = origin.substring(0, origin.length - 1); + } + if (path && !path.startsWith("/")) { + path = `/${path}`; + } + url = new URL(origin + path); + } + return url; + } + function parseOrigin(url) { + url = parseURL(url); + if (url.pathname !== "/" || url.search || url.hash) { + throw new InvalidArgumentError("invalid url"); + } + return url; + } + function getHostname(host) { + if (host[0] === "[") { + const idx2 = host.indexOf("]"); + assert2(idx2 !== -1); + return host.substring(1, idx2); + } + const idx = host.indexOf(":"); + if (idx === -1) return host; + return host.substring(0, idx); + } + function getServerName(host) { + if (!host) { + return null; + } + assert2.strictEqual(typeof host, "string"); + const servername = getHostname(host); + if (net.isIP(servername)) { + return ""; + } + return servername; + } + function deepClone(obj) { + return JSON.parse(JSON.stringify(obj)); + } + function isAsyncIterable(obj) { + return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function"); + } + function isIterable(obj) { + return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function")); + } + function bodyLength(body) { + if (body == null) { + return 0; + } else if (isStream(body)) { + const state = body._readableState; + return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) ? state.length : null; + } else if (isBlobLike(body)) { + return body.size != null ? body.size : null; + } else if (isBuffer(body)) { + return body.byteLength; + } + return null; + } + function isDestroyed(stream2) { + return !stream2 || !!(stream2.destroyed || stream2[kDestroyed]); + } + function isReadableAborted(stream2) { + const state = stream2 && stream2._readableState; + return isDestroyed(stream2) && state && !state.endEmitted; + } + function destroy(stream2, err) { + if (stream2 == null || !isStream(stream2) || isDestroyed(stream2)) { + return; + } + if (typeof stream2.destroy === "function") { + if (Object.getPrototypeOf(stream2).constructor === IncomingMessage) { + stream2.socket = null; + } + stream2.destroy(err); + } else if (err) { + process.nextTick((stream3, err2) => { + stream3.emit("error", err2); + }, stream2, err); + } + if (stream2.destroyed !== true) { + stream2[kDestroyed] = true; + } + } + var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; + function parseKeepAliveTimeout(val) { + const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR); + return m ? parseInt(m[1], 10) * 1e3 : null; + } + function headerNameToString(value) { + return headerNameLowerCasedRecord[value] || value.toLowerCase(); + } + function parseHeaders(headers, obj = {}) { + if (!Array.isArray(headers)) return headers; + for (let i = 0; i < headers.length; i += 2) { + const key = headers[i].toString().toLowerCase(); + let val = obj[key]; + if (!val) { + if (Array.isArray(headers[i + 1])) { + obj[key] = headers[i + 1].map((x) => x.toString("utf8")); + } else { + obj[key] = headers[i + 1].toString("utf8"); + } + } else { + if (!Array.isArray(val)) { + val = [val]; + obj[key] = val; + } + val.push(headers[i + 1].toString("utf8")); + } + } + if ("content-length" in obj && "content-disposition" in obj) { + obj["content-disposition"] = Buffer.from(obj["content-disposition"]).toString("latin1"); + } + return obj; + } + function parseRawHeaders(headers) { + const ret = []; + let hasContentLength = false; + let contentDispositionIdx = -1; + for (let n = 0; n < headers.length; n += 2) { + const key = headers[n + 0].toString(); + const val = headers[n + 1].toString("utf8"); + if (key.length === 14 && (key === "content-length" || key.toLowerCase() === "content-length")) { + ret.push(key, val); + hasContentLength = true; + } else if (key.length === 19 && (key === "content-disposition" || key.toLowerCase() === "content-disposition")) { + contentDispositionIdx = ret.push(key, val) - 1; + } else { + ret.push(key, val); + } + } + if (hasContentLength && contentDispositionIdx !== -1) { + ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString("latin1"); + } + return ret; + } + function isBuffer(buffer) { + return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); + } + function validateHandler(handler, method2, upgrade) { + if (!handler || typeof handler !== "object") { + throw new InvalidArgumentError("handler must be an object"); + } + if (typeof handler.onConnect !== "function") { + throw new InvalidArgumentError("invalid onConnect method"); + } + if (typeof handler.onError !== "function") { + throw new InvalidArgumentError("invalid onError method"); + } + if (typeof handler.onBodySent !== "function" && handler.onBodySent !== void 0) { + throw new InvalidArgumentError("invalid onBodySent method"); + } + if (upgrade || method2 === "CONNECT") { + if (typeof handler.onUpgrade !== "function") { + throw new InvalidArgumentError("invalid onUpgrade method"); + } + } else { + if (typeof handler.onHeaders !== "function") { + throw new InvalidArgumentError("invalid onHeaders method"); + } + if (typeof handler.onData !== "function") { + throw new InvalidArgumentError("invalid onData method"); + } + if (typeof handler.onComplete !== "function") { + throw new InvalidArgumentError("invalid onComplete method"); + } + } + } + function isDisturbed(body) { + return !!(body && (stream.isDisturbed ? stream.isDisturbed(body) || body[kBodyUsed] : body[kBodyUsed] || body.readableDidRead || body._readableState && body._readableState.dataEmitted || isReadableAborted(body))); + } + function isErrored(body) { + return !!(body && (stream.isErrored ? stream.isErrored(body) : /state: 'errored'/.test( + nodeUtil.inspect(body) + ))); + } + function isReadable(body) { + return !!(body && (stream.isReadable ? stream.isReadable(body) : /state: 'readable'/.test( + nodeUtil.inspect(body) + ))); + } + function getSocketInfo(socket) { + return { + localAddress: socket.localAddress, + localPort: socket.localPort, + remoteAddress: socket.remoteAddress, + remotePort: socket.remotePort, + remoteFamily: socket.remoteFamily, + timeout: socket.timeout, + bytesWritten: socket.bytesWritten, + bytesRead: socket.bytesRead + }; + } + async function* convertIterableToBuffer(iterable) { + for await (const chunk of iterable) { + yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); + } + } + var ReadableStream; + function ReadableStreamFrom(iterable) { + if (!ReadableStream) { + ReadableStream = require("stream/web").ReadableStream; + } + if (ReadableStream.from) { + return ReadableStream.from(convertIterableToBuffer(iterable)); + } + let iterator; + return new ReadableStream( + { + async start() { + iterator = iterable[Symbol.asyncIterator](); + }, + async pull(controller) { + const { done, value } = await iterator.next(); + if (done) { + queueMicrotask(() => { + controller.close(); + }); + } else { + const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); + controller.enqueue(new Uint8Array(buf)); + } + return controller.desiredSize > 0; + }, + async cancel(reason) { + await iterator.return(); + } + }, + 0 + ); + } + function isFormDataLike(object) { + return object && typeof object === "object" && typeof object.append === "function" && typeof object.delete === "function" && typeof object.get === "function" && typeof object.getAll === "function" && typeof object.has === "function" && typeof object.set === "function" && object[Symbol.toStringTag] === "FormData"; + } + function throwIfAborted(signal) { + if (!signal) { + return; + } + if (typeof signal.throwIfAborted === "function") { + signal.throwIfAborted(); + } else { + if (signal.aborted) { + const err = new Error("The operation was aborted"); + err.name = "AbortError"; + throw err; + } + } + } + function addAbortListener(signal, listener) { + if ("addEventListener" in signal) { + signal.addEventListener("abort", listener, { once: true }); + return () => signal.removeEventListener("abort", listener); + } + signal.addListener("abort", listener); + return () => signal.removeListener("abort", listener); + } + var hasToWellFormed = !!String.prototype.toWellFormed; + function toUSVString(val) { + if (hasToWellFormed) { + return `${val}`.toWellFormed(); + } else if (nodeUtil.toUSVString) { + return nodeUtil.toUSVString(val); + } + return `${val}`; + } + function parseRangeHeader(range) { + if (range == null || range === "") return { start: 0, end: null, size: null }; + const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; + return m ? { + start: parseInt(m[1]), + end: m[2] ? parseInt(m[2]) : null, + size: m[3] ? parseInt(m[3]) : null + } : null; + } + var kEnumerableProperty = /* @__PURE__ */ Object.create(null); + kEnumerableProperty.enumerable = true; + module2.exports = { + kEnumerableProperty, + nop, + isDisturbed, + isErrored, + isReadable, + toUSVString, + isReadableAborted, + isBlobLike, + parseOrigin, + parseURL, + getServerName, + isStream, + isIterable, + isAsyncIterable, + isDestroyed, + headerNameToString, + parseRawHeaders, + parseHeaders, + parseKeepAliveTimeout, + destroy, + bodyLength, + deepClone, + ReadableStreamFrom, + isBuffer, + validateHandler, + getSocketInfo, + isFormDataLike, + buildURL, + throwIfAborted, + addAbortListener, + parseRangeHeader, + nodeMajor, + nodeMinor, + nodeHasAutoSelectFamily: nodeMajor > 18 || nodeMajor === 18 && nodeMinor >= 13, + safeHTTPMethods: ["GET", "HEAD", "OPTIONS", "TRACE"] + }; + } +}); + +// node_modules/undici/lib/timers.js +var require_timers = __commonJS({ + "node_modules/undici/lib/timers.js"(exports2, module2) { + "use strict"; + var fastNow = Date.now(); + var fastNowTimeout; + var fastTimers = []; + function onTimeout() { + fastNow = Date.now(); + let len = fastTimers.length; + let idx = 0; + while (idx < len) { + const timer = fastTimers[idx]; + if (timer.state === 0) { + timer.state = fastNow + timer.delay; + } else if (timer.state > 0 && fastNow >= timer.state) { + timer.state = -1; + timer.callback(timer.opaque); + } + if (timer.state === -1) { + timer.state = -2; + if (idx !== len - 1) { + fastTimers[idx] = fastTimers.pop(); + } else { + fastTimers.pop(); + } + len -= 1; + } else { + idx += 1; + } + } + if (fastTimers.length > 0) { + refreshTimeout(); + } + } + function refreshTimeout() { + if (fastNowTimeout && fastNowTimeout.refresh) { + fastNowTimeout.refresh(); + } else { + clearTimeout(fastNowTimeout); + fastNowTimeout = setTimeout(onTimeout, 1e3); + if (fastNowTimeout.unref) { + fastNowTimeout.unref(); + } + } + } + var Timeout = class { + constructor(callback, delay, opaque) { + this.callback = callback; + this.delay = delay; + this.opaque = opaque; + this.state = -2; + this.refresh(); + } + refresh() { + if (this.state === -2) { + fastTimers.push(this); + if (!fastNowTimeout || fastTimers.length === 1) { + refreshTimeout(); + } + } + this.state = 0; + } + clear() { + this.state = -1; + } + }; + module2.exports = { + setTimeout(callback, delay, opaque) { + return delay < 1e3 ? setTimeout(callback, delay, opaque) : new Timeout(callback, delay, opaque); + }, + clearTimeout(timeout) { + if (timeout instanceof Timeout) { + timeout.clear(); + } else { + clearTimeout(timeout); + } + } + }; + } +}); + +// node_modules/@fastify/busboy/deps/streamsearch/sbmh.js +var require_sbmh = __commonJS({ + "node_modules/@fastify/busboy/deps/streamsearch/sbmh.js"(exports2, module2) { + "use strict"; + var EventEmitter = require("node:events").EventEmitter; + var inherits = require("node:util").inherits; + function SBMH(needle) { + if (typeof needle === "string") { + needle = Buffer.from(needle); + } + if (!Buffer.isBuffer(needle)) { + throw new TypeError("The needle has to be a String or a Buffer."); + } + const needleLength = needle.length; + if (needleLength === 0) { + throw new Error("The needle cannot be an empty String/Buffer."); + } + if (needleLength > 256) { + throw new Error("The needle cannot have a length bigger than 256."); + } + this.maxMatches = Infinity; + this.matches = 0; + this._occ = new Array(256).fill(needleLength); + this._lookbehind_size = 0; + this._needle = needle; + this._bufpos = 0; + this._lookbehind = Buffer.alloc(needleLength); + for (var i = 0; i < needleLength - 1; ++i) { + this._occ[needle[i]] = needleLength - 1 - i; + } + } + inherits(SBMH, EventEmitter); + SBMH.prototype.reset = function() { + this._lookbehind_size = 0; + this.matches = 0; + this._bufpos = 0; + }; + SBMH.prototype.push = function(chunk, pos) { + if (!Buffer.isBuffer(chunk)) { + chunk = Buffer.from(chunk, "binary"); + } + const chlen = chunk.length; + this._bufpos = pos || 0; + let r; + while (r !== chlen && this.matches < this.maxMatches) { + r = this._sbmh_feed(chunk); + } + return r; + }; + SBMH.prototype._sbmh_feed = function(data) { + const len = data.length; + const needle = this._needle; + const needleLength = needle.length; + const lastNeedleChar = needle[needleLength - 1]; + let pos = -this._lookbehind_size; + let ch; + if (pos < 0) { + while (pos < 0 && pos <= len - needleLength) { + ch = this._sbmh_lookup_char(data, pos + needleLength - 1); + if (ch === lastNeedleChar && this._sbmh_memcmp(data, pos, needleLength - 1)) { + this._lookbehind_size = 0; + ++this.matches; + this.emit("info", true); + return this._bufpos = pos + needleLength; + } + pos += this._occ[ch]; + } + if (pos < 0) { + while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { + ++pos; + } + } + if (pos >= 0) { + this.emit("info", false, this._lookbehind, 0, this._lookbehind_size); + this._lookbehind_size = 0; + } else { + const bytesToCutOff = this._lookbehind_size + pos; + if (bytesToCutOff > 0) { + this.emit("info", false, this._lookbehind, 0, bytesToCutOff); + } + this._lookbehind.copy( + this._lookbehind, + 0, + bytesToCutOff, + this._lookbehind_size - bytesToCutOff + ); + this._lookbehind_size -= bytesToCutOff; + data.copy(this._lookbehind, this._lookbehind_size); + this._lookbehind_size += len; + this._bufpos = len; + return len; + } + } + pos += (pos >= 0) * this._bufpos; + if (data.indexOf(needle, pos) !== -1) { + pos = data.indexOf(needle, pos); + ++this.matches; + if (pos > 0) { + this.emit("info", true, data, this._bufpos, pos); + } else { + this.emit("info", true); + } + return this._bufpos = pos + needleLength; + } else { + pos = len - needleLength; + } + while (pos < len && (data[pos] !== needle[0] || Buffer.compare( + data.subarray(pos, pos + len - pos), + needle.subarray(0, len - pos) + ) !== 0)) { + ++pos; + } + if (pos < len) { + data.copy(this._lookbehind, 0, pos, pos + (len - pos)); + this._lookbehind_size = len - pos; + } + if (pos > 0) { + this.emit("info", false, data, this._bufpos, pos < len ? pos : len); + } + this._bufpos = len; + return len; + }; + SBMH.prototype._sbmh_lookup_char = function(data, pos) { + return pos < 0 ? this._lookbehind[this._lookbehind_size + pos] : data[pos]; + }; + SBMH.prototype._sbmh_memcmp = function(data, pos, len) { + for (var i = 0; i < len; ++i) { + if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { + return false; + } + } + return true; + }; + module2.exports = SBMH; + } +}); + +// node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js +var require_PartStream = __commonJS({ + "node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js"(exports2, module2) { + "use strict"; + var inherits = require("node:util").inherits; + var ReadableStream = require("node:stream").Readable; + function PartStream(opts) { + ReadableStream.call(this, opts); + } + inherits(PartStream, ReadableStream); + PartStream.prototype._read = function(n) { + }; + module2.exports = PartStream; + } +}); + +// node_modules/@fastify/busboy/lib/utils/getLimit.js +var require_getLimit = __commonJS({ + "node_modules/@fastify/busboy/lib/utils/getLimit.js"(exports2, module2) { + "use strict"; + module2.exports = function getLimit(limits, name, defaultLimit) { + if (!limits || limits[name] === void 0 || limits[name] === null) { + return defaultLimit; + } + if (typeof limits[name] !== "number" || isNaN(limits[name])) { + throw new TypeError("Limit " + name + " is not a valid number"); + } + return limits[name]; + }; + } +}); + +// node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js +var require_HeaderParser = __commonJS({ + "node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js"(exports2, module2) { + "use strict"; + var EventEmitter = require("node:events").EventEmitter; + var inherits = require("node:util").inherits; + var getLimit = require_getLimit(); + var StreamSearch = require_sbmh(); + var B_DCRLF = Buffer.from("\r\n\r\n"); + var RE_CRLF = /\r\n/g; + var RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/; + function HeaderParser(cfg) { + EventEmitter.call(this); + cfg = cfg || {}; + const self2 = this; + this.nread = 0; + this.maxed = false; + this.npairs = 0; + this.maxHeaderPairs = getLimit(cfg, "maxHeaderPairs", 2e3); + this.maxHeaderSize = getLimit(cfg, "maxHeaderSize", 80 * 1024); + this.buffer = ""; + this.header = {}; + this.finished = false; + this.ss = new StreamSearch(B_DCRLF); + this.ss.on("info", function(isMatch, data, start, end) { + if (data && !self2.maxed) { + if (self2.nread + end - start >= self2.maxHeaderSize) { + end = self2.maxHeaderSize - self2.nread + start; + self2.nread = self2.maxHeaderSize; + self2.maxed = true; + } else { + self2.nread += end - start; + } + self2.buffer += data.toString("binary", start, end); + } + if (isMatch) { + self2._finish(); + } + }); + } + inherits(HeaderParser, EventEmitter); + HeaderParser.prototype.push = function(data) { + const r = this.ss.push(data); + if (this.finished) { + return r; + } + }; + HeaderParser.prototype.reset = function() { + this.finished = false; + this.buffer = ""; + this.header = {}; + this.ss.reset(); + }; + HeaderParser.prototype._finish = function() { + if (this.buffer) { + this._parseHeader(); + } + this.ss.matches = this.ss.maxMatches; + const header = this.header; + this.header = {}; + this.buffer = ""; + this.finished = true; + this.nread = this.npairs = 0; + this.maxed = false; + this.emit("header", header); + }; + HeaderParser.prototype._parseHeader = function() { + if (this.npairs === this.maxHeaderPairs) { + return; + } + const lines = this.buffer.split(RE_CRLF); + const len = lines.length; + let m, h; + for (var i = 0; i < len; ++i) { + if (lines[i].length === 0) { + continue; + } + if (lines[i][0] === " " || lines[i][0] === " ") { + if (h) { + this.header[h][this.header[h].length - 1] += lines[i]; + continue; + } + } + const posColon = lines[i].indexOf(":"); + if (posColon === -1 || posColon === 0) { + return; + } + m = RE_HDR.exec(lines[i]); + h = m[1].toLowerCase(); + this.header[h] = this.header[h] || []; + this.header[h].push(m[2] || ""); + if (++this.npairs === this.maxHeaderPairs) { + break; + } + } + }; + module2.exports = HeaderParser; + } +}); + +// node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js +var require_Dicer = __commonJS({ + "node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js"(exports2, module2) { + "use strict"; + var WritableStream = require("node:stream").Writable; + var inherits = require("node:util").inherits; + var StreamSearch = require_sbmh(); + var PartStream = require_PartStream(); + var HeaderParser = require_HeaderParser(); + var DASH = 45; + var B_ONEDASH = Buffer.from("-"); + var B_CRLF = Buffer.from("\r\n"); + var EMPTY_FN = function() { + }; + function Dicer(cfg) { + if (!(this instanceof Dicer)) { + return new Dicer(cfg); + } + WritableStream.call(this, cfg); + if (!cfg || !cfg.headerFirst && typeof cfg.boundary !== "string") { + throw new TypeError("Boundary required"); + } + if (typeof cfg.boundary === "string") { + this.setBoundary(cfg.boundary); + } else { + this._bparser = void 0; + } + this._headerFirst = cfg.headerFirst; + this._dashes = 0; + this._parts = 0; + this._finished = false; + this._realFinish = false; + this._isPreamble = true; + this._justMatched = false; + this._firstWrite = true; + this._inHeader = true; + this._part = void 0; + this._cb = void 0; + this._ignoreData = false; + this._partOpts = { highWaterMark: cfg.partHwm }; + this._pause = false; + const self2 = this; + this._hparser = new HeaderParser(cfg); + this._hparser.on("header", function(header) { + self2._inHeader = false; + self2._part.emit("header", header); + }); + } + inherits(Dicer, WritableStream); + Dicer.prototype.emit = function(ev) { + if (ev === "finish" && !this._realFinish) { + if (!this._finished) { + const self2 = this; + process.nextTick(function() { + self2.emit("error", new Error("Unexpected end of multipart data")); + if (self2._part && !self2._ignoreData) { + const type = self2._isPreamble ? "Preamble" : "Part"; + self2._part.emit("error", new Error(type + " terminated early due to unexpected end of multipart data")); + self2._part.push(null); + process.nextTick(function() { + self2._realFinish = true; + self2.emit("finish"); + self2._realFinish = false; + }); + return; + } + self2._realFinish = true; + self2.emit("finish"); + self2._realFinish = false; + }); + } + } else { + WritableStream.prototype.emit.apply(this, arguments); + } + }; + Dicer.prototype._write = function(data, encoding, cb) { + if (!this._hparser && !this._bparser) { + return cb(); + } + if (this._headerFirst && this._isPreamble) { + if (!this._part) { + this._part = new PartStream(this._partOpts); + if (this.listenerCount("preamble") !== 0) { + this.emit("preamble", this._part); + } else { + this._ignore(); + } + } + const r = this._hparser.push(data); + if (!this._inHeader && r !== void 0 && r < data.length) { + data = data.slice(r); + } else { + return cb(); + } + } + if (this._firstWrite) { + this._bparser.push(B_CRLF); + this._firstWrite = false; + } + this._bparser.push(data); + if (this._pause) { + this._cb = cb; + } else { + cb(); + } + }; + Dicer.prototype.reset = function() { + this._part = void 0; + this._bparser = void 0; + this._hparser = void 0; + }; + Dicer.prototype.setBoundary = function(boundary) { + const self2 = this; + this._bparser = new StreamSearch("\r\n--" + boundary); + this._bparser.on("info", function(isMatch, data, start, end) { + self2._oninfo(isMatch, data, start, end); + }); + }; + Dicer.prototype._ignore = function() { + if (this._part && !this._ignoreData) { + this._ignoreData = true; + this._part.on("error", EMPTY_FN); + this._part.resume(); + } + }; + Dicer.prototype._oninfo = function(isMatch, data, start, end) { + let buf; + const self2 = this; + let i = 0; + let r; + let shouldWriteMore = true; + if (!this._part && this._justMatched && data) { + while (this._dashes < 2 && start + i < end) { + if (data[start + i] === DASH) { + ++i; + ++this._dashes; + } else { + if (this._dashes) { + buf = B_ONEDASH; + } + this._dashes = 0; + break; + } + } + if (this._dashes === 2) { + if (start + i < end && this.listenerCount("trailer") !== 0) { + this.emit("trailer", data.slice(start + i, end)); + } + this.reset(); + this._finished = true; + if (self2._parts === 0) { + self2._realFinish = true; + self2.emit("finish"); + self2._realFinish = false; + } + } + if (this._dashes) { + return; + } + } + if (this._justMatched) { + this._justMatched = false; + } + if (!this._part) { + this._part = new PartStream(this._partOpts); + this._part._read = function(n) { + self2._unpause(); + }; + if (this._isPreamble && this.listenerCount("preamble") !== 0) { + this.emit("preamble", this._part); + } else if (this._isPreamble !== true && this.listenerCount("part") !== 0) { + this.emit("part", this._part); + } else { + this._ignore(); + } + if (!this._isPreamble) { + this._inHeader = true; + } + } + if (data && start < end && !this._ignoreData) { + if (this._isPreamble || !this._inHeader) { + if (buf) { + shouldWriteMore = this._part.push(buf); + } + shouldWriteMore = this._part.push(data.slice(start, end)); + if (!shouldWriteMore) { + this._pause = true; + } + } else if (!this._isPreamble && this._inHeader) { + if (buf) { + this._hparser.push(buf); + } + r = this._hparser.push(data.slice(start, end)); + if (!this._inHeader && r !== void 0 && r < end) { + this._oninfo(false, data, start + r, end); + } + } + } + if (isMatch) { + this._hparser.reset(); + if (this._isPreamble) { + this._isPreamble = false; + } else { + if (start !== end) { + ++this._parts; + this._part.on("end", function() { + if (--self2._parts === 0) { + if (self2._finished) { + self2._realFinish = true; + self2.emit("finish"); + self2._realFinish = false; + } else { + self2._unpause(); + } + } + }); + } + } + this._part.push(null); + this._part = void 0; + this._ignoreData = false; + this._justMatched = true; + this._dashes = 0; + } + }; + Dicer.prototype._unpause = function() { + if (!this._pause) { + return; + } + this._pause = false; + if (this._cb) { + const cb = this._cb; + this._cb = void 0; + cb(); + } + }; + module2.exports = Dicer; + } +}); + +// node_modules/@fastify/busboy/lib/utils/decodeText.js +var require_decodeText = __commonJS({ + "node_modules/@fastify/busboy/lib/utils/decodeText.js"(exports2, module2) { + "use strict"; + var utf8Decoder = new TextDecoder("utf-8"); + var textDecoders = /* @__PURE__ */ new Map([ + ["utf-8", utf8Decoder], + ["utf8", utf8Decoder] + ]); + function getDecoder(charset) { + let lc; + while (true) { + switch (charset) { + case "utf-8": + case "utf8": + return decoders.utf8; + case "latin1": + case "ascii": + // TODO: Make these a separate, strict decoder? + case "us-ascii": + case "iso-8859-1": + case "iso8859-1": + case "iso88591": + case "iso_8859-1": + case "windows-1252": + case "iso_8859-1:1987": + case "cp1252": + case "x-cp1252": + return decoders.latin1; + case "utf16le": + case "utf-16le": + case "ucs2": + case "ucs-2": + return decoders.utf16le; + case "base64": + return decoders.base64; + default: + if (lc === void 0) { + lc = true; + charset = charset.toLowerCase(); + continue; + } + return decoders.other.bind(charset); + } + } + } + var decoders = { + utf8: (data, sourceEncoding) => { + if (data.length === 0) { + return ""; + } + if (typeof data === "string") { + data = Buffer.from(data, sourceEncoding); + } + return data.utf8Slice(0, data.length); + }, + latin1: (data, sourceEncoding) => { + if (data.length === 0) { + return ""; + } + if (typeof data === "string") { + return data; + } + return data.latin1Slice(0, data.length); + }, + utf16le: (data, sourceEncoding) => { + if (data.length === 0) { + return ""; + } + if (typeof data === "string") { + data = Buffer.from(data, sourceEncoding); + } + return data.ucs2Slice(0, data.length); + }, + base64: (data, sourceEncoding) => { + if (data.length === 0) { + return ""; + } + if (typeof data === "string") { + data = Buffer.from(data, sourceEncoding); + } + return data.base64Slice(0, data.length); + }, + other: (data, sourceEncoding) => { + if (data.length === 0) { + return ""; + } + if (typeof data === "string") { + data = Buffer.from(data, sourceEncoding); + } + if (textDecoders.has(exports2.toString())) { + try { + return textDecoders.get(exports2).decode(data); + } catch { + } + } + return typeof data === "string" ? data : data.toString(); + } + }; + function decodeText(text, sourceEncoding, destEncoding) { + if (text) { + return getDecoder(destEncoding)(text, sourceEncoding); + } + return text; + } + module2.exports = decodeText; + } +}); + +// node_modules/@fastify/busboy/lib/utils/parseParams.js +var require_parseParams = __commonJS({ + "node_modules/@fastify/busboy/lib/utils/parseParams.js"(exports2, module2) { + "use strict"; + var decodeText = require_decodeText(); + var RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g; + var EncodedLookup = { + "%00": "\0", + "%01": "", + "%02": "", + "%03": "", + "%04": "", + "%05": "", + "%06": "", + "%07": "\x07", + "%08": "\b", + "%09": " ", + "%0a": "\n", + "%0A": "\n", + "%0b": "\v", + "%0B": "\v", + "%0c": "\f", + "%0C": "\f", + "%0d": "\r", + "%0D": "\r", + "%0e": "", + "%0E": "", + "%0f": "", + "%0F": "", + "%10": "", + "%11": "", + "%12": "", + "%13": "", + "%14": "", + "%15": "", + "%16": "", + "%17": "", + "%18": "", + "%19": "", + "%1a": "", + "%1A": "", + "%1b": "\x1B", + "%1B": "\x1B", + "%1c": "", + "%1C": "", + "%1d": "", + "%1D": "", + "%1e": "", + "%1E": "", + "%1f": "", + "%1F": "", + "%20": " ", + "%21": "!", + "%22": '"', + "%23": "#", + "%24": "$", + "%25": "%", + "%26": "&", + "%27": "'", + "%28": "(", + "%29": ")", + "%2a": "*", + "%2A": "*", + "%2b": "+", + "%2B": "+", + "%2c": ",", + "%2C": ",", + "%2d": "-", + "%2D": "-", + "%2e": ".", + "%2E": ".", + "%2f": "/", + "%2F": "/", + "%30": "0", + "%31": "1", + "%32": "2", + "%33": "3", + "%34": "4", + "%35": "5", + "%36": "6", + "%37": "7", + "%38": "8", + "%39": "9", + "%3a": ":", + "%3A": ":", + "%3b": ";", + "%3B": ";", + "%3c": "<", + "%3C": "<", + "%3d": "=", + "%3D": "=", + "%3e": ">", + "%3E": ">", + "%3f": "?", + "%3F": "?", + "%40": "@", + "%41": "A", + "%42": "B", + "%43": "C", + "%44": "D", + "%45": "E", + "%46": "F", + "%47": "G", + "%48": "H", + "%49": "I", + "%4a": "J", + "%4A": "J", + "%4b": "K", + "%4B": "K", + "%4c": "L", + "%4C": "L", + "%4d": "M", + "%4D": "M", + "%4e": "N", + "%4E": "N", + "%4f": "O", + "%4F": "O", + "%50": "P", + "%51": "Q", + "%52": "R", + "%53": "S", + "%54": "T", + "%55": "U", + "%56": "V", + "%57": "W", + "%58": "X", + "%59": "Y", + "%5a": "Z", + "%5A": "Z", + "%5b": "[", + "%5B": "[", + "%5c": "\\", + "%5C": "\\", + "%5d": "]", + "%5D": "]", + "%5e": "^", + "%5E": "^", + "%5f": "_", + "%5F": "_", + "%60": "`", + "%61": "a", + "%62": "b", + "%63": "c", + "%64": "d", + "%65": "e", + "%66": "f", + "%67": "g", + "%68": "h", + "%69": "i", + "%6a": "j", + "%6A": "j", + "%6b": "k", + "%6B": "k", + "%6c": "l", + "%6C": "l", + "%6d": "m", + "%6D": "m", + "%6e": "n", + "%6E": "n", + "%6f": "o", + "%6F": "o", + "%70": "p", + "%71": "q", + "%72": "r", + "%73": "s", + "%74": "t", + "%75": "u", + "%76": "v", + "%77": "w", + "%78": "x", + "%79": "y", + "%7a": "z", + "%7A": "z", + "%7b": "{", + "%7B": "{", + "%7c": "|", + "%7C": "|", + "%7d": "}", + "%7D": "}", + "%7e": "~", + "%7E": "~", + "%7f": "\x7F", + "%7F": "\x7F", + "%80": "\x80", + "%81": "\x81", + "%82": "\x82", + "%83": "\x83", + "%84": "\x84", + "%85": "\x85", + "%86": "\x86", + "%87": "\x87", + "%88": "\x88", + "%89": "\x89", + "%8a": "\x8A", + "%8A": "\x8A", + "%8b": "\x8B", + "%8B": "\x8B", + "%8c": "\x8C", + "%8C": "\x8C", + "%8d": "\x8D", + "%8D": "\x8D", + "%8e": "\x8E", + "%8E": "\x8E", + "%8f": "\x8F", + "%8F": "\x8F", + "%90": "\x90", + "%91": "\x91", + "%92": "\x92", + "%93": "\x93", + "%94": "\x94", + "%95": "\x95", + "%96": "\x96", + "%97": "\x97", + "%98": "\x98", + "%99": "\x99", + "%9a": "\x9A", + "%9A": "\x9A", + "%9b": "\x9B", + "%9B": "\x9B", + "%9c": "\x9C", + "%9C": "\x9C", + "%9d": "\x9D", + "%9D": "\x9D", + "%9e": "\x9E", + "%9E": "\x9E", + "%9f": "\x9F", + "%9F": "\x9F", + "%a0": "\xA0", + "%A0": "\xA0", + "%a1": "\xA1", + "%A1": "\xA1", + "%a2": "\xA2", + "%A2": "\xA2", + "%a3": "\xA3", + "%A3": "\xA3", + "%a4": "\xA4", + "%A4": "\xA4", + "%a5": "\xA5", + "%A5": "\xA5", + "%a6": "\xA6", + "%A6": "\xA6", + "%a7": "\xA7", + "%A7": "\xA7", + "%a8": "\xA8", + "%A8": "\xA8", + "%a9": "\xA9", + "%A9": "\xA9", + "%aa": "\xAA", + "%Aa": "\xAA", + "%aA": "\xAA", + "%AA": "\xAA", + "%ab": "\xAB", + "%Ab": "\xAB", + "%aB": "\xAB", + "%AB": "\xAB", + "%ac": "\xAC", + "%Ac": "\xAC", + "%aC": "\xAC", + "%AC": "\xAC", + "%ad": "\xAD", + "%Ad": "\xAD", + "%aD": "\xAD", + "%AD": "\xAD", + "%ae": "\xAE", + "%Ae": "\xAE", + "%aE": "\xAE", + "%AE": "\xAE", + "%af": "\xAF", + "%Af": "\xAF", + "%aF": "\xAF", + "%AF": "\xAF", + "%b0": "\xB0", + "%B0": "\xB0", + "%b1": "\xB1", + "%B1": "\xB1", + "%b2": "\xB2", + "%B2": "\xB2", + "%b3": "\xB3", + "%B3": "\xB3", + "%b4": "\xB4", + "%B4": "\xB4", + "%b5": "\xB5", + "%B5": "\xB5", + "%b6": "\xB6", + "%B6": "\xB6", + "%b7": "\xB7", + "%B7": "\xB7", + "%b8": "\xB8", + "%B8": "\xB8", + "%b9": "\xB9", + "%B9": "\xB9", + "%ba": "\xBA", + "%Ba": "\xBA", + "%bA": "\xBA", + "%BA": "\xBA", + "%bb": "\xBB", + "%Bb": "\xBB", + "%bB": "\xBB", + "%BB": "\xBB", + "%bc": "\xBC", + "%Bc": "\xBC", + "%bC": "\xBC", + "%BC": "\xBC", + "%bd": "\xBD", + "%Bd": "\xBD", + "%bD": "\xBD", + "%BD": "\xBD", + "%be": "\xBE", + "%Be": "\xBE", + "%bE": "\xBE", + "%BE": "\xBE", + "%bf": "\xBF", + "%Bf": "\xBF", + "%bF": "\xBF", + "%BF": "\xBF", + "%c0": "\xC0", + "%C0": "\xC0", + "%c1": "\xC1", + "%C1": "\xC1", + "%c2": "\xC2", + "%C2": "\xC2", + "%c3": "\xC3", + "%C3": "\xC3", + "%c4": "\xC4", + "%C4": "\xC4", + "%c5": "\xC5", + "%C5": "\xC5", + "%c6": "\xC6", + "%C6": "\xC6", + "%c7": "\xC7", + "%C7": "\xC7", + "%c8": "\xC8", + "%C8": "\xC8", + "%c9": "\xC9", + "%C9": "\xC9", + "%ca": "\xCA", + "%Ca": "\xCA", + "%cA": "\xCA", + "%CA": "\xCA", + "%cb": "\xCB", + "%Cb": "\xCB", + "%cB": "\xCB", + "%CB": "\xCB", + "%cc": "\xCC", + "%Cc": "\xCC", + "%cC": "\xCC", + "%CC": "\xCC", + "%cd": "\xCD", + "%Cd": "\xCD", + "%cD": "\xCD", + "%CD": "\xCD", + "%ce": "\xCE", + "%Ce": "\xCE", + "%cE": "\xCE", + "%CE": "\xCE", + "%cf": "\xCF", + "%Cf": "\xCF", + "%cF": "\xCF", + "%CF": "\xCF", + "%d0": "\xD0", + "%D0": "\xD0", + "%d1": "\xD1", + "%D1": "\xD1", + "%d2": "\xD2", + "%D2": "\xD2", + "%d3": "\xD3", + "%D3": "\xD3", + "%d4": "\xD4", + "%D4": "\xD4", + "%d5": "\xD5", + "%D5": "\xD5", + "%d6": "\xD6", + "%D6": "\xD6", + "%d7": "\xD7", + "%D7": "\xD7", + "%d8": "\xD8", + "%D8": "\xD8", + "%d9": "\xD9", + "%D9": "\xD9", + "%da": "\xDA", + "%Da": "\xDA", + "%dA": "\xDA", + "%DA": "\xDA", + "%db": "\xDB", + "%Db": "\xDB", + "%dB": "\xDB", + "%DB": "\xDB", + "%dc": "\xDC", + "%Dc": "\xDC", + "%dC": "\xDC", + "%DC": "\xDC", + "%dd": "\xDD", + "%Dd": "\xDD", + "%dD": "\xDD", + "%DD": "\xDD", + "%de": "\xDE", + "%De": "\xDE", + "%dE": "\xDE", + "%DE": "\xDE", + "%df": "\xDF", + "%Df": "\xDF", + "%dF": "\xDF", + "%DF": "\xDF", + "%e0": "\xE0", + "%E0": "\xE0", + "%e1": "\xE1", + "%E1": "\xE1", + "%e2": "\xE2", + "%E2": "\xE2", + "%e3": "\xE3", + "%E3": "\xE3", + "%e4": "\xE4", + "%E4": "\xE4", + "%e5": "\xE5", + "%E5": "\xE5", + "%e6": "\xE6", + "%E6": "\xE6", + "%e7": "\xE7", + "%E7": "\xE7", + "%e8": "\xE8", + "%E8": "\xE8", + "%e9": "\xE9", + "%E9": "\xE9", + "%ea": "\xEA", + "%Ea": "\xEA", + "%eA": "\xEA", + "%EA": "\xEA", + "%eb": "\xEB", + "%Eb": "\xEB", + "%eB": "\xEB", + "%EB": "\xEB", + "%ec": "\xEC", + "%Ec": "\xEC", + "%eC": "\xEC", + "%EC": "\xEC", + "%ed": "\xED", + "%Ed": "\xED", + "%eD": "\xED", + "%ED": "\xED", + "%ee": "\xEE", + "%Ee": "\xEE", + "%eE": "\xEE", + "%EE": "\xEE", + "%ef": "\xEF", + "%Ef": "\xEF", + "%eF": "\xEF", + "%EF": "\xEF", + "%f0": "\xF0", + "%F0": "\xF0", + "%f1": "\xF1", + "%F1": "\xF1", + "%f2": "\xF2", + "%F2": "\xF2", + "%f3": "\xF3", + "%F3": "\xF3", + "%f4": "\xF4", + "%F4": "\xF4", + "%f5": "\xF5", + "%F5": "\xF5", + "%f6": "\xF6", + "%F6": "\xF6", + "%f7": "\xF7", + "%F7": "\xF7", + "%f8": "\xF8", + "%F8": "\xF8", + "%f9": "\xF9", + "%F9": "\xF9", + "%fa": "\xFA", + "%Fa": "\xFA", + "%fA": "\xFA", + "%FA": "\xFA", + "%fb": "\xFB", + "%Fb": "\xFB", + "%fB": "\xFB", + "%FB": "\xFB", + "%fc": "\xFC", + "%Fc": "\xFC", + "%fC": "\xFC", + "%FC": "\xFC", + "%fd": "\xFD", + "%Fd": "\xFD", + "%fD": "\xFD", + "%FD": "\xFD", + "%fe": "\xFE", + "%Fe": "\xFE", + "%fE": "\xFE", + "%FE": "\xFE", + "%ff": "\xFF", + "%Ff": "\xFF", + "%fF": "\xFF", + "%FF": "\xFF" + }; + function encodedReplacer(match) { + return EncodedLookup[match]; + } + var STATE_KEY = 0; + var STATE_VALUE = 1; + var STATE_CHARSET = 2; + var STATE_LANG = 3; + function parseParams(str) { + const res = []; + let state = STATE_KEY; + let charset = ""; + let inquote = false; + let escaping = false; + let p = 0; + let tmp = ""; + const len = str.length; + for (var i = 0; i < len; ++i) { + const char = str[i]; + if (char === "\\" && inquote) { + if (escaping) { + escaping = false; + } else { + escaping = true; + continue; + } + } else if (char === '"') { + if (!escaping) { + if (inquote) { + inquote = false; + state = STATE_KEY; + } else { + inquote = true; + } + continue; + } else { + escaping = false; + } + } else { + if (escaping && inquote) { + tmp += "\\"; + } + escaping = false; + if ((state === STATE_CHARSET || state === STATE_LANG) && char === "'") { + if (state === STATE_CHARSET) { + state = STATE_LANG; + charset = tmp.substring(1); + } else { + state = STATE_VALUE; + } + tmp = ""; + continue; + } else if (state === STATE_KEY && (char === "*" || char === "=") && res.length) { + state = char === "*" ? STATE_CHARSET : STATE_VALUE; + res[p] = [tmp, void 0]; + tmp = ""; + continue; + } else if (!inquote && char === ";") { + state = STATE_KEY; + if (charset) { + if (tmp.length) { + tmp = decodeText( + tmp.replace(RE_ENCODED, encodedReplacer), + "binary", + charset + ); + } + charset = ""; + } else if (tmp.length) { + tmp = decodeText(tmp, "binary", "utf8"); + } + if (res[p] === void 0) { + res[p] = tmp; + } else { + res[p][1] = tmp; + } + tmp = ""; + ++p; + continue; + } else if (!inquote && (char === " " || char === " ")) { + continue; + } + } + tmp += char; + } + if (charset && tmp.length) { + tmp = decodeText( + tmp.replace(RE_ENCODED, encodedReplacer), + "binary", + charset + ); + } else if (tmp) { + tmp = decodeText(tmp, "binary", "utf8"); + } + if (res[p] === void 0) { + if (tmp) { + res[p] = tmp; + } + } else { + res[p][1] = tmp; + } + return res; + } + module2.exports = parseParams; + } +}); + +// node_modules/@fastify/busboy/lib/utils/basename.js +var require_basename = __commonJS({ + "node_modules/@fastify/busboy/lib/utils/basename.js"(exports2, module2) { + "use strict"; + module2.exports = function basename(path) { + if (typeof path !== "string") { + return ""; + } + for (var i = path.length - 1; i >= 0; --i) { + switch (path.charCodeAt(i)) { + case 47: + // '/' + case 92: + path = path.slice(i + 1); + return path === ".." || path === "." ? "" : path; + } + } + return path === ".." || path === "." ? "" : path; + }; + } +}); + +// node_modules/@fastify/busboy/lib/types/multipart.js +var require_multipart = __commonJS({ + "node_modules/@fastify/busboy/lib/types/multipart.js"(exports2, module2) { + "use strict"; + var { Readable } = require("node:stream"); + var { inherits } = require("node:util"); + var Dicer = require_Dicer(); + var parseParams = require_parseParams(); + var decodeText = require_decodeText(); + var basename = require_basename(); + var getLimit = require_getLimit(); + var RE_BOUNDARY = /^boundary$/i; + var RE_FIELD = /^form-data$/i; + var RE_CHARSET = /^charset$/i; + var RE_FILENAME = /^filename$/i; + var RE_NAME = /^name$/i; + Multipart.detect = /^multipart\/form-data/i; + function Multipart(boy, cfg) { + let i; + let len; + const self2 = this; + let boundary; + const limits = cfg.limits; + const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => contentType === "application/octet-stream" || fileName !== void 0); + const parsedConType = cfg.parsedConType || []; + const defCharset = cfg.defCharset || "utf8"; + const preservePath = cfg.preservePath; + const fileOpts = { highWaterMark: cfg.fileHwm }; + for (i = 0, len = parsedConType.length; i < len; ++i) { + if (Array.isArray(parsedConType[i]) && RE_BOUNDARY.test(parsedConType[i][0])) { + boundary = parsedConType[i][1]; + break; + } + } + function checkFinished() { + if (nends === 0 && finished && !boy._done) { + finished = false; + self2.end(); + } + } + if (typeof boundary !== "string") { + throw new Error("Multipart: Boundary not found"); + } + const fieldSizeLimit = getLimit(limits, "fieldSize", 1 * 1024 * 1024); + const fileSizeLimit = getLimit(limits, "fileSize", Infinity); + const filesLimit = getLimit(limits, "files", Infinity); + const fieldsLimit = getLimit(limits, "fields", Infinity); + const partsLimit = getLimit(limits, "parts", Infinity); + const headerPairsLimit = getLimit(limits, "headerPairs", 2e3); + const headerSizeLimit = getLimit(limits, "headerSize", 80 * 1024); + let nfiles = 0; + let nfields = 0; + let nends = 0; + let curFile; + let curField; + let finished = false; + this._needDrain = false; + this._pause = false; + this._cb = void 0; + this._nparts = 0; + this._boy = boy; + const parserCfg = { + boundary, + maxHeaderPairs: headerPairsLimit, + maxHeaderSize: headerSizeLimit, + partHwm: fileOpts.highWaterMark, + highWaterMark: cfg.highWaterMark + }; + this.parser = new Dicer(parserCfg); + this.parser.on("drain", function() { + self2._needDrain = false; + if (self2._cb && !self2._pause) { + const cb = self2._cb; + self2._cb = void 0; + cb(); + } + }).on("part", function onPart(part) { + if (++self2._nparts > partsLimit) { + self2.parser.removeListener("part", onPart); + self2.parser.on("part", skipPart); + boy.hitPartsLimit = true; + boy.emit("partsLimit"); + return skipPart(part); + } + if (curField) { + const field = curField; + field.emit("end"); + field.removeAllListeners("end"); + } + part.on("header", function(header) { + let contype; + let fieldname; + let parsed; + let charset; + let encoding; + let filename; + let nsize = 0; + if (header["content-type"]) { + parsed = parseParams(header["content-type"][0]); + if (parsed[0]) { + contype = parsed[0].toLowerCase(); + for (i = 0, len = parsed.length; i < len; ++i) { + if (RE_CHARSET.test(parsed[i][0])) { + charset = parsed[i][1].toLowerCase(); + break; + } + } + } + } + if (contype === void 0) { + contype = "text/plain"; + } + if (charset === void 0) { + charset = defCharset; + } + if (header["content-disposition"]) { + parsed = parseParams(header["content-disposition"][0]); + if (!RE_FIELD.test(parsed[0])) { + return skipPart(part); + } + for (i = 0, len = parsed.length; i < len; ++i) { + if (RE_NAME.test(parsed[i][0])) { + fieldname = parsed[i][1]; + } else if (RE_FILENAME.test(parsed[i][0])) { + filename = parsed[i][1]; + if (!preservePath) { + filename = basename(filename); + } + } + } + } else { + return skipPart(part); + } + if (header["content-transfer-encoding"]) { + encoding = header["content-transfer-encoding"][0].toLowerCase(); + } else { + encoding = "7bit"; + } + let onData, onEnd; + if (isPartAFile(fieldname, contype, filename)) { + if (nfiles === filesLimit) { + if (!boy.hitFilesLimit) { + boy.hitFilesLimit = true; + boy.emit("filesLimit"); + } + return skipPart(part); + } + ++nfiles; + if (boy.listenerCount("file") === 0) { + self2.parser._ignore(); + return; + } + ++nends; + const file = new FileStream(fileOpts); + curFile = file; + file.on("end", function() { + --nends; + self2._pause = false; + checkFinished(); + if (self2._cb && !self2._needDrain) { + const cb = self2._cb; + self2._cb = void 0; + cb(); + } + }); + file._read = function(n) { + if (!self2._pause) { + return; + } + self2._pause = false; + if (self2._cb && !self2._needDrain) { + const cb = self2._cb; + self2._cb = void 0; + cb(); + } + }; + boy.emit("file", fieldname, file, filename, encoding, contype); + onData = function(data) { + if ((nsize += data.length) > fileSizeLimit) { + const extralen = fileSizeLimit - nsize + data.length; + if (extralen > 0) { + file.push(data.slice(0, extralen)); + } + file.truncated = true; + file.bytesRead = fileSizeLimit; + part.removeAllListeners("data"); + file.emit("limit"); + return; + } else if (!file.push(data)) { + self2._pause = true; + } + file.bytesRead = nsize; + }; + onEnd = function() { + curFile = void 0; + file.push(null); + }; + } else { + if (nfields === fieldsLimit) { + if (!boy.hitFieldsLimit) { + boy.hitFieldsLimit = true; + boy.emit("fieldsLimit"); + } + return skipPart(part); + } + ++nfields; + ++nends; + let buffer = ""; + let truncated = false; + curField = part; + onData = function(data) { + if ((nsize += data.length) > fieldSizeLimit) { + const extralen = fieldSizeLimit - (nsize - data.length); + buffer += data.toString("binary", 0, extralen); + truncated = true; + part.removeAllListeners("data"); + } else { + buffer += data.toString("binary"); + } + }; + onEnd = function() { + curField = void 0; + if (buffer.length) { + buffer = decodeText(buffer, "binary", charset); + } + boy.emit("field", fieldname, buffer, false, truncated, encoding, contype); + --nends; + checkFinished(); + }; + } + part._readableState.sync = false; + part.on("data", onData); + part.on("end", onEnd); + }).on("error", function(err) { + if (curFile) { + curFile.emit("error", err); + } + }); + }).on("error", function(err) { + boy.emit("error", err); + }).on("finish", function() { + finished = true; + checkFinished(); + }); + } + Multipart.prototype.write = function(chunk, cb) { + const r = this.parser.write(chunk); + if (r && !this._pause) { + cb(); + } else { + this._needDrain = !r; + this._cb = cb; + } + }; + Multipart.prototype.end = function() { + const self2 = this; + if (self2.parser.writable) { + self2.parser.end(); + } else if (!self2._boy._done) { + process.nextTick(function() { + self2._boy._done = true; + self2._boy.emit("finish"); + }); + } + }; + function skipPart(part) { + part.resume(); + } + function FileStream(opts) { + Readable.call(this, opts); + this.bytesRead = 0; + this.truncated = false; + } + inherits(FileStream, Readable); + FileStream.prototype._read = function(n) { + }; + module2.exports = Multipart; + } +}); + +// node_modules/@fastify/busboy/lib/utils/Decoder.js +var require_Decoder = __commonJS({ + "node_modules/@fastify/busboy/lib/utils/Decoder.js"(exports2, module2) { + "use strict"; + var RE_PLUS = /\+/g; + var HEX = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + function Decoder() { + this.buffer = void 0; + } + Decoder.prototype.write = function(str) { + str = str.replace(RE_PLUS, " "); + let res = ""; + let i = 0; + let p = 0; + const len = str.length; + for (; i < len; ++i) { + if (this.buffer !== void 0) { + if (!HEX[str.charCodeAt(i)]) { + res += "%" + this.buffer; + this.buffer = void 0; + --i; + } else { + this.buffer += str[i]; + ++p; + if (this.buffer.length === 2) { + res += String.fromCharCode(parseInt(this.buffer, 16)); + this.buffer = void 0; + } + } + } else if (str[i] === "%") { + if (i > p) { + res += str.substring(p, i); + p = i; + } + this.buffer = ""; + ++p; + } + } + if (p < len && this.buffer === void 0) { + res += str.substring(p); + } + return res; + }; + Decoder.prototype.reset = function() { + this.buffer = void 0; + }; + module2.exports = Decoder; + } +}); + +// node_modules/@fastify/busboy/lib/types/urlencoded.js +var require_urlencoded = __commonJS({ + "node_modules/@fastify/busboy/lib/types/urlencoded.js"(exports2, module2) { + "use strict"; + var Decoder = require_Decoder(); + var decodeText = require_decodeText(); + var getLimit = require_getLimit(); + var RE_CHARSET = /^charset$/i; + UrlEncoded.detect = /^application\/x-www-form-urlencoded/i; + function UrlEncoded(boy, cfg) { + const limits = cfg.limits; + const parsedConType = cfg.parsedConType; + this.boy = boy; + this.fieldSizeLimit = getLimit(limits, "fieldSize", 1 * 1024 * 1024); + this.fieldNameSizeLimit = getLimit(limits, "fieldNameSize", 100); + this.fieldsLimit = getLimit(limits, "fields", Infinity); + let charset; + for (var i = 0, len = parsedConType.length; i < len; ++i) { + if (Array.isArray(parsedConType[i]) && RE_CHARSET.test(parsedConType[i][0])) { + charset = parsedConType[i][1].toLowerCase(); + break; + } + } + if (charset === void 0) { + charset = cfg.defCharset || "utf8"; + } + this.decoder = new Decoder(); + this.charset = charset; + this._fields = 0; + this._state = "key"; + this._checkingBytes = true; + this._bytesKey = 0; + this._bytesVal = 0; + this._key = ""; + this._val = ""; + this._keyTrunc = false; + this._valTrunc = false; + this._hitLimit = false; + } + UrlEncoded.prototype.write = function(data, cb) { + if (this._fields === this.fieldsLimit) { + if (!this.boy.hitFieldsLimit) { + this.boy.hitFieldsLimit = true; + this.boy.emit("fieldsLimit"); + } + return cb(); + } + let idxeq; + let idxamp; + let i; + let p = 0; + const len = data.length; + while (p < len) { + if (this._state === "key") { + idxeq = idxamp = void 0; + for (i = p; i < len; ++i) { + if (!this._checkingBytes) { + ++p; + } + if (data[i] === 61) { + idxeq = i; + break; + } else if (data[i] === 38) { + idxamp = i; + break; + } + if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { + this._hitLimit = true; + break; + } else if (this._checkingBytes) { + ++this._bytesKey; + } + } + if (idxeq !== void 0) { + if (idxeq > p) { + this._key += this.decoder.write(data.toString("binary", p, idxeq)); + } + this._state = "val"; + this._hitLimit = false; + this._checkingBytes = true; + this._val = ""; + this._bytesVal = 0; + this._valTrunc = false; + this.decoder.reset(); + p = idxeq + 1; + } else if (idxamp !== void 0) { + ++this._fields; + let key; + const keyTrunc = this._keyTrunc; + if (idxamp > p) { + key = this._key += this.decoder.write(data.toString("binary", p, idxamp)); + } else { + key = this._key; + } + this._hitLimit = false; + this._checkingBytes = true; + this._key = ""; + this._bytesKey = 0; + this._keyTrunc = false; + this.decoder.reset(); + if (key.length) { + this.boy.emit( + "field", + decodeText(key, "binary", this.charset), + "", + keyTrunc, + false + ); + } + p = idxamp + 1; + if (this._fields === this.fieldsLimit) { + return cb(); + } + } else if (this._hitLimit) { + if (i > p) { + this._key += this.decoder.write(data.toString("binary", p, i)); + } + p = i; + if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { + this._checkingBytes = false; + this._keyTrunc = true; + } + } else { + if (p < len) { + this._key += this.decoder.write(data.toString("binary", p)); + } + p = len; + } + } else { + idxamp = void 0; + for (i = p; i < len; ++i) { + if (!this._checkingBytes) { + ++p; + } + if (data[i] === 38) { + idxamp = i; + break; + } + if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { + this._hitLimit = true; + break; + } else if (this._checkingBytes) { + ++this._bytesVal; + } + } + if (idxamp !== void 0) { + ++this._fields; + if (idxamp > p) { + this._val += this.decoder.write(data.toString("binary", p, idxamp)); + } + this.boy.emit( + "field", + decodeText(this._key, "binary", this.charset), + decodeText(this._val, "binary", this.charset), + this._keyTrunc, + this._valTrunc + ); + this._state = "key"; + this._hitLimit = false; + this._checkingBytes = true; + this._key = ""; + this._bytesKey = 0; + this._keyTrunc = false; + this.decoder.reset(); + p = idxamp + 1; + if (this._fields === this.fieldsLimit) { + return cb(); + } + } else if (this._hitLimit) { + if (i > p) { + this._val += this.decoder.write(data.toString("binary", p, i)); + } + p = i; + if (this._val === "" && this.fieldSizeLimit === 0 || (this._bytesVal = this._val.length) === this.fieldSizeLimit) { + this._checkingBytes = false; + this._valTrunc = true; + } + } else { + if (p < len) { + this._val += this.decoder.write(data.toString("binary", p)); + } + p = len; + } + } + } + cb(); + }; + UrlEncoded.prototype.end = function() { + if (this.boy._done) { + return; + } + if (this._state === "key" && this._key.length > 0) { + this.boy.emit( + "field", + decodeText(this._key, "binary", this.charset), + "", + this._keyTrunc, + false + ); + } else if (this._state === "val") { + this.boy.emit( + "field", + decodeText(this._key, "binary", this.charset), + decodeText(this._val, "binary", this.charset), + this._keyTrunc, + this._valTrunc + ); + } + this.boy._done = true; + this.boy.emit("finish"); + }; + module2.exports = UrlEncoded; + } +}); + +// node_modules/@fastify/busboy/lib/main.js +var require_main = __commonJS({ + "node_modules/@fastify/busboy/lib/main.js"(exports2, module2) { + "use strict"; + var WritableStream = require("node:stream").Writable; + var { inherits } = require("node:util"); + var Dicer = require_Dicer(); + var MultipartParser = require_multipart(); + var UrlencodedParser = require_urlencoded(); + var parseParams = require_parseParams(); + function Busboy(opts) { + if (!(this instanceof Busboy)) { + return new Busboy(opts); + } + if (typeof opts !== "object") { + throw new TypeError("Busboy expected an options-Object."); + } + if (typeof opts.headers !== "object") { + throw new TypeError("Busboy expected an options-Object with headers-attribute."); + } + if (typeof opts.headers["content-type"] !== "string") { + throw new TypeError("Missing Content-Type-header."); + } + const { + headers, + ...streamOptions + } = opts; + this.opts = { + autoDestroy: false, + ...streamOptions + }; + WritableStream.call(this, this.opts); + this._done = false; + this._parser = this.getParserByHeaders(headers); + this._finished = false; + } + inherits(Busboy, WritableStream); + Busboy.prototype.emit = function(ev) { + if (ev === "finish") { + if (!this._done) { + this._parser?.end(); + return; + } else if (this._finished) { + return; + } + this._finished = true; + } + WritableStream.prototype.emit.apply(this, arguments); + }; + Busboy.prototype.getParserByHeaders = function(headers) { + const parsed = parseParams(headers["content-type"]); + const cfg = { + defCharset: this.opts.defCharset, + fileHwm: this.opts.fileHwm, + headers, + highWaterMark: this.opts.highWaterMark, + isPartAFile: this.opts.isPartAFile, + limits: this.opts.limits, + parsedConType: parsed, + preservePath: this.opts.preservePath + }; + if (MultipartParser.detect.test(parsed[0])) { + return new MultipartParser(this, cfg); + } + if (UrlencodedParser.detect.test(parsed[0])) { + return new UrlencodedParser(this, cfg); + } + throw new Error("Unsupported Content-Type."); + }; + Busboy.prototype._write = function(chunk, encoding, cb) { + this._parser.write(chunk, cb); + }; + module2.exports = Busboy; + module2.exports.default = Busboy; + module2.exports.Busboy = Busboy; + module2.exports.Dicer = Dicer; + } +}); + +// node_modules/undici/lib/fetch/constants.js +var require_constants2 = __commonJS({ + "node_modules/undici/lib/fetch/constants.js"(exports2, module2) { + "use strict"; + var { MessageChannel, receiveMessageOnPort } = require("worker_threads"); + var corsSafeListedMethods = ["GET", "HEAD", "POST"]; + var corsSafeListedMethodsSet = new Set(corsSafeListedMethods); + var nullBodyStatus = [101, 204, 205, 304]; + var redirectStatus = [301, 302, 303, 307, 308]; + var redirectStatusSet = new Set(redirectStatus); + var badPorts = [ + "1", + "7", + "9", + "11", + "13", + "15", + "17", + "19", + "20", + "21", + "22", + "23", + "25", + "37", + "42", + "43", + "53", + "69", + "77", + "79", + "87", + "95", + "101", + "102", + "103", + "104", + "109", + "110", + "111", + "113", + "115", + "117", + "119", + "123", + "135", + "137", + "139", + "143", + "161", + "179", + "389", + "427", + "465", + "512", + "513", + "514", + "515", + "526", + "530", + "531", + "532", + "540", + "548", + "554", + "556", + "563", + "587", + "601", + "636", + "989", + "990", + "993", + "995", + "1719", + "1720", + "1723", + "2049", + "3659", + "4045", + "5060", + "5061", + "6000", + "6566", + "6665", + "6666", + "6667", + "6668", + "6669", + "6697", + "10080" + ]; + var badPortsSet = new Set(badPorts); + var referrerPolicy = [ + "", + "no-referrer", + "no-referrer-when-downgrade", + "same-origin", + "origin", + "strict-origin", + "origin-when-cross-origin", + "strict-origin-when-cross-origin", + "unsafe-url" + ]; + var referrerPolicySet = new Set(referrerPolicy); + var requestRedirect = ["follow", "manual", "error"]; + var safeMethods = ["GET", "HEAD", "OPTIONS", "TRACE"]; + var safeMethodsSet = new Set(safeMethods); + var requestMode = ["navigate", "same-origin", "no-cors", "cors"]; + var requestCredentials = ["omit", "same-origin", "include"]; + var requestCache = [ + "default", + "no-store", + "reload", + "no-cache", + "force-cache", + "only-if-cached" + ]; + var requestBodyHeader = [ + "content-encoding", + "content-language", + "content-location", + "content-type", + // See https://github.com/nodejs/undici/issues/2021 + // 'Content-Length' is a forbidden header name, which is typically + // removed in the Headers implementation. However, undici doesn't + // filter out headers, so we add it here. + "content-length" + ]; + var requestDuplex = [ + "half" + ]; + var forbiddenMethods = ["CONNECT", "TRACE", "TRACK"]; + var forbiddenMethodsSet = new Set(forbiddenMethods); + var subresource = [ + "audio", + "audioworklet", + "font", + "image", + "manifest", + "paintworklet", + "script", + "style", + "track", + "video", + "xslt", + "" + ]; + var subresourceSet = new Set(subresource); + var DOMException2 = globalThis.DOMException ?? (() => { + try { + atob("~"); + } catch (err) { + return Object.getPrototypeOf(err).constructor; + } + })(); + var channel; + var structuredClone = globalThis.structuredClone ?? // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js + // structuredClone was added in v17.0.0, but fetch supports v16.8 + function structuredClone2(value, options = void 0) { + if (arguments.length === 0) { + throw new TypeError("missing argument"); + } + if (!channel) { + channel = new MessageChannel(); + } + channel.port1.unref(); + channel.port2.unref(); + channel.port1.postMessage(value, options?.transfer); + return receiveMessageOnPort(channel.port2).message; + }; + module2.exports = { + DOMException: DOMException2, + structuredClone, + subresource, + forbiddenMethods, + requestBodyHeader, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + redirectStatus, + corsSafeListedMethods, + nullBodyStatus, + safeMethods, + badPorts, + requestDuplex, + subresourceSet, + badPortsSet, + redirectStatusSet, + corsSafeListedMethodsSet, + safeMethodsSet, + forbiddenMethodsSet, + referrerPolicySet + }; + } +}); + +// node_modules/undici/lib/fetch/global.js +var require_global = __commonJS({ + "node_modules/undici/lib/fetch/global.js"(exports2, module2) { + "use strict"; + var globalOrigin = Symbol.for("undici.globalOrigin.1"); + function getGlobalOrigin() { + return globalThis[globalOrigin]; + } + function setGlobalOrigin(newOrigin) { + if (newOrigin === void 0) { + Object.defineProperty(globalThis, globalOrigin, { + value: void 0, + writable: true, + enumerable: false, + configurable: false + }); + return; + } + const parsedURL = new URL(newOrigin); + if (parsedURL.protocol !== "http:" && parsedURL.protocol !== "https:") { + throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`); + } + Object.defineProperty(globalThis, globalOrigin, { + value: parsedURL, + writable: true, + enumerable: false, + configurable: false + }); + } + module2.exports = { + getGlobalOrigin, + setGlobalOrigin + }; + } +}); + +// node_modules/undici/lib/fetch/util.js +var require_util2 = __commonJS({ + "node_modules/undici/lib/fetch/util.js"(exports2, module2) { + "use strict"; + var { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require_constants2(); + var { getGlobalOrigin } = require_global(); + var { performance: performance2 } = require("perf_hooks"); + var { isBlobLike, toUSVString, ReadableStreamFrom } = require_util(); + var assert2 = require("assert"); + var { isUint8Array } = require("util/types"); + var supportedHashes = []; + var crypto5; + try { + crypto5 = require("crypto"); + const possibleRelevantHashes = ["sha256", "sha384", "sha512"]; + supportedHashes = crypto5.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)); + } catch { + } + function responseURL(response) { + const urlList = response.urlList; + const length = urlList.length; + return length === 0 ? null : urlList[length - 1].toString(); + } + function responseLocationURL(response, requestFragment) { + if (!redirectStatusSet.has(response.status)) { + return null; + } + let location = response.headersList.get("location"); + if (location !== null && isValidHeaderValue(location)) { + location = new URL(location, responseURL(response)); + } + if (location && !location.hash) { + location.hash = requestFragment; + } + return location; + } + function requestCurrentURL(request) { + return request.urlList[request.urlList.length - 1]; + } + function requestBadPort(request) { + const url = requestCurrentURL(request); + if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { + return "blocked"; + } + return "allowed"; + } + function isErrorLike(object) { + return object instanceof Error || (object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException"); + } + function isValidReasonPhrase(statusText) { + for (let i = 0; i < statusText.length; ++i) { + const c = statusText.charCodeAt(i); + if (!(c === 9 || // HTAB + c >= 32 && c <= 126 || // SP / VCHAR + c >= 128 && c <= 255)) { + return false; + } + } + return true; + } + function isTokenCharCode(c) { + switch (c) { + case 34: + case 40: + case 41: + case 44: + case 47: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 91: + case 92: + case 93: + case 123: + case 125: + return false; + default: + return c >= 33 && c <= 126; + } + } + function isValidHTTPToken(characters) { + if (characters.length === 0) { + return false; + } + for (let i = 0; i < characters.length; ++i) { + if (!isTokenCharCode(characters.charCodeAt(i))) { + return false; + } + } + return true; + } + function isValidHeaderName(potentialValue) { + return isValidHTTPToken(potentialValue); + } + function isValidHeaderValue(potentialValue) { + if (potentialValue.startsWith(" ") || potentialValue.startsWith(" ") || potentialValue.endsWith(" ") || potentialValue.endsWith(" ")) { + return false; + } + if (potentialValue.includes("\0") || potentialValue.includes("\r") || potentialValue.includes("\n")) { + return false; + } + return true; + } + function setRequestReferrerPolicyOnRedirect(request, actualResponse) { + const { headersList } = actualResponse; + const policyHeader = (headersList.get("referrer-policy") ?? "").split(","); + let policy = ""; + if (policyHeader.length > 0) { + for (let i = policyHeader.length; i !== 0; i--) { + const token = policyHeader[i - 1].trim(); + if (referrerPolicyTokens.has(token)) { + policy = token; + break; + } + } + } + if (policy !== "") { + request.referrerPolicy = policy; + } + } + function crossOriginResourcePolicyCheck() { + return "allowed"; + } + function corsCheck() { + return "success"; + } + function TAOCheck() { + return "success"; + } + function appendFetchMetadata(httpRequest) { + let header = null; + header = httpRequest.mode; + httpRequest.headersList.set("sec-fetch-mode", header); + } + function appendRequestOriginHeader(request) { + let serializedOrigin = request.origin; + if (request.responseTainting === "cors" || request.mode === "websocket") { + if (serializedOrigin) { + request.headersList.append("origin", serializedOrigin); + } + } else if (request.method !== "GET" && request.method !== "HEAD") { + switch (request.referrerPolicy) { + case "no-referrer": + serializedOrigin = null; + break; + case "no-referrer-when-downgrade": + case "strict-origin": + case "strict-origin-when-cross-origin": + if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { + serializedOrigin = null; + } + break; + case "same-origin": + if (!sameOrigin(request, requestCurrentURL(request))) { + serializedOrigin = null; + } + break; + default: + } + if (serializedOrigin) { + request.headersList.append("origin", serializedOrigin); + } + } + } + function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { + return performance2.now(); + } + function createOpaqueTimingInfo(timingInfo) { + return { + startTime: timingInfo.startTime ?? 0, + redirectStartTime: 0, + redirectEndTime: 0, + postRedirectStartTime: timingInfo.startTime ?? 0, + finalServiceWorkerStartTime: 0, + finalNetworkResponseStartTime: 0, + finalNetworkRequestStartTime: 0, + endTime: 0, + encodedBodySize: 0, + decodedBodySize: 0, + finalConnectionTimingInfo: null + }; + } + function makePolicyContainer() { + return { + referrerPolicy: "strict-origin-when-cross-origin" + }; + } + function clonePolicyContainer(policyContainer) { + return { + referrerPolicy: policyContainer.referrerPolicy + }; + } + function determineRequestsReferrer(request) { + const policy = request.referrerPolicy; + assert2(policy); + let referrerSource = null; + if (request.referrer === "client") { + const globalOrigin = getGlobalOrigin(); + if (!globalOrigin || globalOrigin.origin === "null") { + return "no-referrer"; + } + referrerSource = new URL(globalOrigin); + } else if (request.referrer instanceof URL) { + referrerSource = request.referrer; + } + let referrerURL = stripURLForReferrer(referrerSource); + const referrerOrigin = stripURLForReferrer(referrerSource, true); + if (referrerURL.toString().length > 4096) { + referrerURL = referrerOrigin; + } + const areSameOrigin = sameOrigin(request, referrerURL); + const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(request.url); + switch (policy) { + case "origin": + return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true); + case "unsafe-url": + return referrerURL; + case "same-origin": + return areSameOrigin ? referrerOrigin : "no-referrer"; + case "origin-when-cross-origin": + return areSameOrigin ? referrerURL : referrerOrigin; + case "strict-origin-when-cross-origin": { + const currentURL = requestCurrentURL(request); + if (sameOrigin(referrerURL, currentURL)) { + return referrerURL; + } + if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { + return "no-referrer"; + } + return referrerOrigin; + } + case "strict-origin": + // eslint-disable-line + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + case "no-referrer-when-downgrade": + // eslint-disable-line + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + default: + return isNonPotentiallyTrustWorthy ? "no-referrer" : referrerOrigin; + } + } + function stripURLForReferrer(url, originOnly) { + assert2(url instanceof URL); + if (url.protocol === "file:" || url.protocol === "about:" || url.protocol === "blank:") { + return "no-referrer"; + } + url.username = ""; + url.password = ""; + url.hash = ""; + if (originOnly) { + url.pathname = ""; + url.search = ""; + } + return url; + } + function isURLPotentiallyTrustworthy(url) { + if (!(url instanceof URL)) { + return false; + } + if (url.href === "about:blank" || url.href === "about:srcdoc") { + return true; + } + if (url.protocol === "data:") return true; + if (url.protocol === "file:") return true; + return isOriginPotentiallyTrustworthy(url.origin); + function isOriginPotentiallyTrustworthy(origin) { + if (origin == null || origin === "null") return false; + const originAsURL = new URL(origin); + if (originAsURL.protocol === "https:" || originAsURL.protocol === "wss:") { + return true; + } + if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || (originAsURL.hostname === "localhost" || originAsURL.hostname.includes("localhost.")) || originAsURL.hostname.endsWith(".localhost")) { + return true; + } + return false; + } + } + function bytesMatch(bytes7, metadataList) { + if (crypto5 === void 0) { + return true; + } + const parsedMetadata = parseMetadata(metadataList); + if (parsedMetadata === "no metadata") { + return true; + } + if (parsedMetadata.length === 0) { + return true; + } + const strongest = getStrongestMetadata(parsedMetadata); + const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest); + for (const item of metadata) { + const algorithm2 = item.algo; + const expectedValue = item.hash; + let actualValue = crypto5.createHash(algorithm2).update(bytes7).digest("base64"); + if (actualValue[actualValue.length - 1] === "=") { + if (actualValue[actualValue.length - 2] === "=") { + actualValue = actualValue.slice(0, -2); + } else { + actualValue = actualValue.slice(0, -1); + } + } + if (compareBase64Mixed(actualValue, expectedValue)) { + return true; + } + } + return false; + } + var parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i; + function parseMetadata(metadata) { + const result = []; + let empty = true; + for (const token of metadata.split(" ")) { + empty = false; + const parsedToken = parseHashWithOptions.exec(token); + if (parsedToken === null || parsedToken.groups === void 0 || parsedToken.groups.algo === void 0) { + continue; + } + const algorithm2 = parsedToken.groups.algo.toLowerCase(); + if (supportedHashes.includes(algorithm2)) { + result.push(parsedToken.groups); + } + } + if (empty === true) { + return "no metadata"; + } + return result; + } + function getStrongestMetadata(metadataList) { + let algorithm2 = metadataList[0].algo; + if (algorithm2[3] === "5") { + return algorithm2; + } + for (let i = 1; i < metadataList.length; ++i) { + const metadata = metadataList[i]; + if (metadata.algo[3] === "5") { + algorithm2 = "sha512"; + break; + } else if (algorithm2[3] === "3") { + continue; + } else if (metadata.algo[3] === "3") { + algorithm2 = "sha384"; + } + } + return algorithm2; + } + function filterMetadataListByAlgorithm(metadataList, algorithm2) { + if (metadataList.length === 1) { + return metadataList; + } + let pos = 0; + for (let i = 0; i < metadataList.length; ++i) { + if (metadataList[i].algo === algorithm2) { + metadataList[pos++] = metadataList[i]; + } + } + metadataList.length = pos; + return metadataList; + } + function compareBase64Mixed(actualValue, expectedValue) { + if (actualValue.length !== expectedValue.length) { + return false; + } + for (let i = 0; i < actualValue.length; ++i) { + if (actualValue[i] !== expectedValue[i]) { + if (actualValue[i] === "+" && expectedValue[i] === "-" || actualValue[i] === "/" && expectedValue[i] === "_") { + continue; + } + return false; + } + } + return true; + } + function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) { + } + function sameOrigin(A, B) { + if (A.origin === B.origin && A.origin === "null") { + return true; + } + if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { + return true; + } + return false; + } + function createDeferredPromise() { + let res; + let rej; + const promise = new Promise((resolve, reject) => { + res = resolve; + rej = reject; + }); + return { promise, resolve: res, reject: rej }; + } + function isAborted(fetchParams) { + return fetchParams.controller.state === "aborted"; + } + function isCancelled(fetchParams) { + return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; + } + var normalizeMethodRecord = { + delete: "DELETE", + DELETE: "DELETE", + get: "GET", + GET: "GET", + head: "HEAD", + HEAD: "HEAD", + options: "OPTIONS", + OPTIONS: "OPTIONS", + post: "POST", + POST: "POST", + put: "PUT", + PUT: "PUT" + }; + Object.setPrototypeOf(normalizeMethodRecord, null); + function normalizeMethod(method2) { + return normalizeMethodRecord[method2.toLowerCase()] ?? method2; + } + function serializeJavascriptValueToJSONString(value) { + const result = JSON.stringify(value); + if (result === void 0) { + throw new TypeError("Value is not JSON serializable"); + } + assert2(typeof result === "string"); + return result; + } + var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); + function makeIterator(iterator, name, kind) { + const object = { + index: 0, + kind, + target: iterator + }; + const i = { + next() { + if (Object.getPrototypeOf(this) !== i) { + throw new TypeError( + `'next' called on an object that does not implement interface ${name} Iterator.` + ); + } + const { index, kind: kind2, target } = object; + const values = target(); + const len = values.length; + if (index >= len) { + return { value: void 0, done: true }; + } + const pair = values[index]; + object.index = index + 1; + return iteratorResult(pair, kind2); + }, + // The class string of an iterator prototype object for a given interface is the + // result of concatenating the identifier of the interface and the string " Iterator". + [Symbol.toStringTag]: `${name} Iterator` + }; + Object.setPrototypeOf(i, esIteratorPrototype); + return Object.setPrototypeOf({}, i); + } + function iteratorResult(pair, kind) { + let result; + switch (kind) { + case "key": { + result = pair[0]; + break; + } + case "value": { + result = pair[1]; + break; + } + case "key+value": { + result = pair; + break; + } + } + return { value: result, done: false }; + } + async function fullyReadBody(body, processBody, processBodyError) { + const successSteps = processBody; + const errorSteps = processBodyError; + let reader; + try { + reader = body.stream.getReader(); + } catch (e) { + errorSteps(e); + return; + } + try { + const result = await readAllBytes(reader); + successSteps(result); + } catch (e) { + errorSteps(e); + } + } + var ReadableStream = globalThis.ReadableStream; + function isReadableStreamLike(stream) { + if (!ReadableStream) { + ReadableStream = require("stream/web").ReadableStream; + } + return stream instanceof ReadableStream || stream[Symbol.toStringTag] === "ReadableStream" && typeof stream.tee === "function"; + } + var MAXIMUM_ARGUMENT_LENGTH = 65535; + function isomorphicDecode(input) { + if (input.length < MAXIMUM_ARGUMENT_LENGTH) { + return String.fromCharCode(...input); + } + return input.reduce((previous, current) => previous + String.fromCharCode(current), ""); + } + function readableStreamClose(controller) { + try { + controller.close(); + } catch (err) { + if (!err.message.includes("Controller is already closed")) { + throw err; + } + } + } + function isomorphicEncode(input) { + for (let i = 0; i < input.length; i++) { + assert2(input.charCodeAt(i) <= 255); + } + return input; + } + async function readAllBytes(reader) { + const bytes7 = []; + let byteLength = 0; + while (true) { + const { done, value: chunk } = await reader.read(); + if (done) { + return Buffer.concat(bytes7, byteLength); + } + if (!isUint8Array(chunk)) { + throw new TypeError("Received non-Uint8Array chunk"); + } + bytes7.push(chunk); + byteLength += chunk.length; + } + } + function urlIsLocal(url) { + assert2("protocol" in url); + const protocol = url.protocol; + return protocol === "about:" || protocol === "blob:" || protocol === "data:"; + } + function urlHasHttpsScheme(url) { + if (typeof url === "string") { + return url.startsWith("https:"); + } + return url.protocol === "https:"; + } + function urlIsHttpHttpsScheme(url) { + assert2("protocol" in url); + const protocol = url.protocol; + return protocol === "http:" || protocol === "https:"; + } + var hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key)); + module2.exports = { + isAborted, + isCancelled, + createDeferredPromise, + ReadableStreamFrom, + toUSVString, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + coarsenedSharedCurrentTime, + determineRequestsReferrer, + makePolicyContainer, + clonePolicyContainer, + appendFetchMetadata, + appendRequestOriginHeader, + TAOCheck, + corsCheck, + crossOriginResourcePolicyCheck, + createOpaqueTimingInfo, + setRequestReferrerPolicyOnRedirect, + isValidHTTPToken, + requestBadPort, + requestCurrentURL, + responseURL, + responseLocationURL, + isBlobLike, + isURLPotentiallyTrustworthy, + isValidReasonPhrase, + sameOrigin, + normalizeMethod, + serializeJavascriptValueToJSONString, + makeIterator, + isValidHeaderName, + isValidHeaderValue, + hasOwn, + isErrorLike, + fullyReadBody, + bytesMatch, + isReadableStreamLike, + readableStreamClose, + isomorphicEncode, + isomorphicDecode, + urlIsLocal, + urlHasHttpsScheme, + urlIsHttpHttpsScheme, + readAllBytes, + normalizeMethodRecord, + parseMetadata + }; + } +}); + +// node_modules/undici/lib/fetch/symbols.js +var require_symbols2 = __commonJS({ + "node_modules/undici/lib/fetch/symbols.js"(exports2, module2) { + "use strict"; + module2.exports = { + kUrl: Symbol("url"), + kHeaders: Symbol("headers"), + kSignal: Symbol("signal"), + kState: Symbol("state"), + kGuard: Symbol("guard"), + kRealm: Symbol("realm") + }; + } +}); + +// node_modules/undici/lib/fetch/webidl.js +var require_webidl = __commonJS({ + "node_modules/undici/lib/fetch/webidl.js"(exports2, module2) { + "use strict"; + var { types } = require("util"); + var { hasOwn, toUSVString } = require_util2(); + var webidl = {}; + webidl.converters = {}; + webidl.util = {}; + webidl.errors = {}; + webidl.errors.exception = function(message) { + return new TypeError(`${message.header}: ${message.message}`); + }; + webidl.errors.conversionFailed = function(context) { + const plural = context.types.length === 1 ? "" : " one of"; + const message = `${context.argument} could not be converted to${plural}: ${context.types.join(", ")}.`; + return webidl.errors.exception({ + header: context.prefix, + message + }); + }; + webidl.errors.invalidArgument = function(context) { + return webidl.errors.exception({ + header: context.prefix, + message: `"${context.value}" is an invalid ${context.type}.` + }); + }; + webidl.brandCheck = function(V, I, opts = void 0) { + if (opts?.strict !== false && !(V instanceof I)) { + throw new TypeError("Illegal invocation"); + } else { + return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]; + } + }; + webidl.argumentLengthCheck = function({ length }, min, ctx) { + if (length < min) { + throw webidl.errors.exception({ + message: `${min} argument${min !== 1 ? "s" : ""} required, but${length ? " only" : ""} ${length} found.`, + ...ctx + }); + } + }; + webidl.illegalConstructor = function() { + throw webidl.errors.exception({ + header: "TypeError", + message: "Illegal constructor" + }); + }; + webidl.util.Type = function(V) { + switch (typeof V) { + case "undefined": + return "Undefined"; + case "boolean": + return "Boolean"; + case "string": + return "String"; + case "symbol": + return "Symbol"; + case "number": + return "Number"; + case "bigint": + return "BigInt"; + case "function": + case "object": { + if (V === null) { + return "Null"; + } + return "Object"; + } + } + }; + webidl.util.ConvertToInt = function(V, bitLength, signedness, opts = {}) { + let upperBound; + let lowerBound; + if (bitLength === 64) { + upperBound = Math.pow(2, 53) - 1; + if (signedness === "unsigned") { + lowerBound = 0; + } else { + lowerBound = Math.pow(-2, 53) + 1; + } + } else if (signedness === "unsigned") { + lowerBound = 0; + upperBound = Math.pow(2, bitLength) - 1; + } else { + lowerBound = Math.pow(-2, bitLength) - 1; + upperBound = Math.pow(2, bitLength - 1) - 1; + } + let x = Number(V); + if (x === 0) { + x = 0; + } + if (opts.enforceRange === true) { + if (Number.isNaN(x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { + throw webidl.errors.exception({ + header: "Integer conversion", + message: `Could not convert ${V} to an integer.` + }); + } + x = webidl.util.IntegerPart(x); + if (x < lowerBound || x > upperBound) { + throw webidl.errors.exception({ + header: "Integer conversion", + message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` + }); + } + return x; + } + if (!Number.isNaN(x) && opts.clamp === true) { + x = Math.min(Math.max(x, lowerBound), upperBound); + if (Math.floor(x) % 2 === 0) { + x = Math.floor(x); + } else { + x = Math.ceil(x); + } + return x; + } + if (Number.isNaN(x) || x === 0 && Object.is(0, x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { + return 0; + } + x = webidl.util.IntegerPart(x); + x = x % Math.pow(2, bitLength); + if (signedness === "signed" && x >= Math.pow(2, bitLength) - 1) { + return x - Math.pow(2, bitLength); + } + return x; + }; + webidl.util.IntegerPart = function(n) { + const r = Math.floor(Math.abs(n)); + if (n < 0) { + return -1 * r; + } + return r; + }; + webidl.sequenceConverter = function(converter) { + return (V) => { + if (webidl.util.Type(V) !== "Object") { + throw webidl.errors.exception({ + header: "Sequence", + message: `Value of type ${webidl.util.Type(V)} is not an Object.` + }); + } + const method2 = V?.[Symbol.iterator]?.(); + const seq = []; + if (method2 === void 0 || typeof method2.next !== "function") { + throw webidl.errors.exception({ + header: "Sequence", + message: "Object is not an iterator." + }); + } + while (true) { + const { done, value } = method2.next(); + if (done) { + break; + } + seq.push(converter(value)); + } + return seq; + }; + }; + webidl.recordConverter = function(keyConverter, valueConverter) { + return (O) => { + if (webidl.util.Type(O) !== "Object") { + throw webidl.errors.exception({ + header: "Record", + message: `Value of type ${webidl.util.Type(O)} is not an Object.` + }); + } + const result = {}; + if (!types.isProxy(O)) { + const keys2 = Object.keys(O); + for (const key of keys2) { + const typedKey = keyConverter(key); + const typedValue = valueConverter(O[key]); + result[typedKey] = typedValue; + } + return result; + } + const keys = Reflect.ownKeys(O); + for (const key of keys) { + const desc = Reflect.getOwnPropertyDescriptor(O, key); + if (desc?.enumerable) { + const typedKey = keyConverter(key); + const typedValue = valueConverter(O[key]); + result[typedKey] = typedValue; + } + } + return result; + }; + }; + webidl.interfaceConverter = function(i) { + return (V, opts = {}) => { + if (opts.strict !== false && !(V instanceof i)) { + throw webidl.errors.exception({ + header: i.name, + message: `Expected ${V} to be an instance of ${i.name}.` + }); + } + return V; + }; + }; + webidl.dictionaryConverter = function(converters) { + return (dictionary) => { + const type = webidl.util.Type(dictionary); + const dict = {}; + if (type === "Null" || type === "Undefined") { + return dict; + } else if (type !== "Object") { + throw webidl.errors.exception({ + header: "Dictionary", + message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` + }); + } + for (const options of converters) { + const { key, defaultValue, required, converter } = options; + if (required === true) { + if (!hasOwn(dictionary, key)) { + throw webidl.errors.exception({ + header: "Dictionary", + message: `Missing required key "${key}".` + }); + } + } + let value = dictionary[key]; + const hasDefault = hasOwn(options, "defaultValue"); + if (hasDefault && value !== null) { + value = value ?? defaultValue; + } + if (required || hasDefault || value !== void 0) { + value = converter(value); + if (options.allowedValues && !options.allowedValues.includes(value)) { + throw webidl.errors.exception({ + header: "Dictionary", + message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.` + }); + } + dict[key] = value; + } + } + return dict; + }; + }; + webidl.nullableConverter = function(converter) { + return (V) => { + if (V === null) { + return V; + } + return converter(V); + }; + }; + webidl.converters.DOMString = function(V, opts = {}) { + if (V === null && opts.legacyNullToEmptyString) { + return ""; + } + if (typeof V === "symbol") { + throw new TypeError("Could not convert argument of type symbol to string."); + } + return String(V); + }; + webidl.converters.ByteString = function(V) { + const x = webidl.converters.DOMString(V); + for (let index = 0; index < x.length; index++) { + if (x.charCodeAt(index) > 255) { + throw new TypeError( + `Cannot convert argument to a ByteString because the character at index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` + ); + } + } + return x; + }; + webidl.converters.USVString = toUSVString; + webidl.converters.boolean = function(V) { + const x = Boolean(V); + return x; + }; + webidl.converters.any = function(V) { + return V; + }; + webidl.converters["long long"] = function(V) { + const x = webidl.util.ConvertToInt(V, 64, "signed"); + return x; + }; + webidl.converters["unsigned long long"] = function(V) { + const x = webidl.util.ConvertToInt(V, 64, "unsigned"); + return x; + }; + webidl.converters["unsigned long"] = function(V) { + const x = webidl.util.ConvertToInt(V, 32, "unsigned"); + return x; + }; + webidl.converters["unsigned short"] = function(V, opts) { + const x = webidl.util.ConvertToInt(V, 16, "unsigned", opts); + return x; + }; + webidl.converters.ArrayBuffer = function(V, opts = {}) { + if (webidl.util.Type(V) !== "Object" || !types.isAnyArrayBuffer(V)) { + throw webidl.errors.conversionFailed({ + prefix: `${V}`, + argument: `${V}`, + types: ["ArrayBuffer"] + }); + } + if (opts.allowShared === false && types.isSharedArrayBuffer(V)) { + throw webidl.errors.exception({ + header: "ArrayBuffer", + message: "SharedArrayBuffer is not allowed." + }); + } + return V; + }; + webidl.converters.TypedArray = function(V, T, opts = {}) { + if (webidl.util.Type(V) !== "Object" || !types.isTypedArray(V) || V.constructor.name !== T.name) { + throw webidl.errors.conversionFailed({ + prefix: `${T.name}`, + argument: `${V}`, + types: [T.name] + }); + } + if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: "ArrayBuffer", + message: "SharedArrayBuffer is not allowed." + }); + } + return V; + }; + webidl.converters.DataView = function(V, opts = {}) { + if (webidl.util.Type(V) !== "Object" || !types.isDataView(V)) { + throw webidl.errors.exception({ + header: "DataView", + message: "Object is not a DataView." + }); + } + if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: "ArrayBuffer", + message: "SharedArrayBuffer is not allowed." + }); + } + return V; + }; + webidl.converters.BufferSource = function(V, opts = {}) { + if (types.isAnyArrayBuffer(V)) { + return webidl.converters.ArrayBuffer(V, opts); + } + if (types.isTypedArray(V)) { + return webidl.converters.TypedArray(V, V.constructor); + } + if (types.isDataView(V)) { + return webidl.converters.DataView(V, opts); + } + throw new TypeError(`Could not convert ${V} to a BufferSource.`); + }; + webidl.converters["sequence"] = webidl.sequenceConverter( + webidl.converters.ByteString + ); + webidl.converters["sequence>"] = webidl.sequenceConverter( + webidl.converters["sequence"] + ); + webidl.converters["record"] = webidl.recordConverter( + webidl.converters.ByteString, + webidl.converters.ByteString + ); + module2.exports = { + webidl + }; + } +}); + +// node_modules/undici/lib/fetch/dataURL.js +var require_dataURL = __commonJS({ + "node_modules/undici/lib/fetch/dataURL.js"(exports2, module2) { + var assert2 = require("assert"); + var { atob: atob2 } = require("buffer"); + var { isomorphicDecode } = require_util2(); + var encoder = new TextEncoder(); + var HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/; + var HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/; + var HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/; + function dataURLProcessor(dataURL) { + assert2(dataURL.protocol === "data:"); + let input = URLSerializer(dataURL, true); + input = input.slice(5); + const position = { position: 0 }; + let mimeType = collectASequenceOfCodePointsFast( + ",", + input, + position + ); + const mimeTypeLength = mimeType.length; + mimeType = removeASCIIWhitespace(mimeType, true, true); + if (position.position >= input.length) { + return "failure"; + } + position.position++; + const encodedBody = input.slice(mimeTypeLength + 1); + let body = stringPercentDecode(encodedBody); + if (/;(\u0020){0,}base64$/i.test(mimeType)) { + const stringBody = isomorphicDecode(body); + body = forgivingBase64(stringBody); + if (body === "failure") { + return "failure"; + } + mimeType = mimeType.slice(0, -6); + mimeType = mimeType.replace(/(\u0020)+$/, ""); + mimeType = mimeType.slice(0, -1); + } + if (mimeType.startsWith(";")) { + mimeType = "text/plain" + mimeType; + } + let mimeTypeRecord = parseMIMEType(mimeType); + if (mimeTypeRecord === "failure") { + mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII"); + } + return { mimeType: mimeTypeRecord, body }; + } + function URLSerializer(url, excludeFragment = false) { + if (!excludeFragment) { + return url.href; + } + const href = url.href; + const hashLength = url.hash.length; + return hashLength === 0 ? href : href.substring(0, href.length - hashLength); + } + function collectASequenceOfCodePoints(condition, input, position) { + let result = ""; + while (position.position < input.length && condition(input[position.position])) { + result += input[position.position]; + position.position++; + } + return result; + } + function collectASequenceOfCodePointsFast(char, input, position) { + const idx = input.indexOf(char, position.position); + const start = position.position; + if (idx === -1) { + position.position = input.length; + return input.slice(start); + } + position.position = idx; + return input.slice(start, position.position); + } + function stringPercentDecode(input) { + const bytes7 = encoder.encode(input); + return percentDecode(bytes7); + } + function percentDecode(input) { + const output = []; + for (let i = 0; i < input.length; i++) { + const byte = input[i]; + if (byte !== 37) { + output.push(byte); + } else if (byte === 37 && !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))) { + output.push(37); + } else { + const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]); + const bytePoint = Number.parseInt(nextTwoBytes, 16); + output.push(bytePoint); + i += 2; + } + } + return Uint8Array.from(output); + } + function parseMIMEType(input) { + input = removeHTTPWhitespace(input, true, true); + const position = { position: 0 }; + const type = collectASequenceOfCodePointsFast( + "/", + input, + position + ); + if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { + return "failure"; + } + if (position.position > input.length) { + return "failure"; + } + position.position++; + let subtype = collectASequenceOfCodePointsFast( + ";", + input, + position + ); + subtype = removeHTTPWhitespace(subtype, false, true); + if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { + return "failure"; + } + const typeLowercase = type.toLowerCase(); + const subtypeLowercase = subtype.toLowerCase(); + const mimeType = { + type: typeLowercase, + subtype: subtypeLowercase, + /** @type {Map} */ + parameters: /* @__PURE__ */ new Map(), + // https://mimesniff.spec.whatwg.org/#mime-type-essence + essence: `${typeLowercase}/${subtypeLowercase}` + }; + while (position.position < input.length) { + position.position++; + collectASequenceOfCodePoints( + // https://fetch.spec.whatwg.org/#http-whitespace + (char) => HTTP_WHITESPACE_REGEX.test(char), + input, + position + ); + let parameterName = collectASequenceOfCodePoints( + (char) => char !== ";" && char !== "=", + input, + position + ); + parameterName = parameterName.toLowerCase(); + if (position.position < input.length) { + if (input[position.position] === ";") { + continue; + } + position.position++; + } + if (position.position > input.length) { + break; + } + let parameterValue = null; + if (input[position.position] === '"') { + parameterValue = collectAnHTTPQuotedString(input, position, true); + collectASequenceOfCodePointsFast( + ";", + input, + position + ); + } else { + parameterValue = collectASequenceOfCodePointsFast( + ";", + input, + position + ); + parameterValue = removeHTTPWhitespace(parameterValue, false, true); + if (parameterValue.length === 0) { + continue; + } + } + if (parameterName.length !== 0 && HTTP_TOKEN_CODEPOINTS.test(parameterName) && (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && !mimeType.parameters.has(parameterName)) { + mimeType.parameters.set(parameterName, parameterValue); + } + } + return mimeType; + } + function forgivingBase64(data) { + data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, ""); + if (data.length % 4 === 0) { + data = data.replace(/=?=$/, ""); + } + if (data.length % 4 === 1) { + return "failure"; + } + if (/[^+/0-9A-Za-z]/.test(data)) { + return "failure"; + } + const binary = atob2(data); + const bytes7 = new Uint8Array(binary.length); + for (let byte = 0; byte < binary.length; byte++) { + bytes7[byte] = binary.charCodeAt(byte); + } + return bytes7; + } + function collectAnHTTPQuotedString(input, position, extractValue) { + const positionStart = position.position; + let value = ""; + assert2(input[position.position] === '"'); + position.position++; + while (true) { + value += collectASequenceOfCodePoints( + (char) => char !== '"' && char !== "\\", + input, + position + ); + if (position.position >= input.length) { + break; + } + const quoteOrBackslash = input[position.position]; + position.position++; + if (quoteOrBackslash === "\\") { + if (position.position >= input.length) { + value += "\\"; + break; + } + value += input[position.position]; + position.position++; + } else { + assert2(quoteOrBackslash === '"'); + break; + } + } + if (extractValue) { + return value; + } + return input.slice(positionStart, position.position); + } + function serializeAMimeType(mimeType) { + assert2(mimeType !== "failure"); + const { parameters, essence } = mimeType; + let serialization = essence; + for (let [name, value] of parameters.entries()) { + serialization += ";"; + serialization += name; + serialization += "="; + if (!HTTP_TOKEN_CODEPOINTS.test(value)) { + value = value.replace(/(\\|")/g, "\\$1"); + value = '"' + value; + value += '"'; + } + serialization += value; + } + return serialization; + } + function isHTTPWhiteSpace(char) { + return char === "\r" || char === "\n" || char === " " || char === " "; + } + function removeHTTPWhitespace(str, leading = true, trailing = true) { + let lead = 0; + let trail = str.length - 1; + if (leading) { + for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++) ; + } + if (trailing) { + for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--) ; + } + return str.slice(lead, trail + 1); + } + function isASCIIWhitespace(char) { + return char === "\r" || char === "\n" || char === " " || char === "\f" || char === " "; + } + function removeASCIIWhitespace(str, leading = true, trailing = true) { + let lead = 0; + let trail = str.length - 1; + if (leading) { + for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++) ; + } + if (trailing) { + for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--) ; + } + return str.slice(lead, trail + 1); + } + module2.exports = { + dataURLProcessor, + URLSerializer, + collectASequenceOfCodePoints, + collectASequenceOfCodePointsFast, + stringPercentDecode, + parseMIMEType, + collectAnHTTPQuotedString, + serializeAMimeType + }; + } +}); + +// node_modules/undici/lib/fetch/file.js +var require_file = __commonJS({ + "node_modules/undici/lib/fetch/file.js"(exports2, module2) { + "use strict"; + var { Blob: Blob2, File: NativeFile } = require("buffer"); + var { types } = require("util"); + var { kState } = require_symbols2(); + var { isBlobLike } = require_util2(); + var { webidl } = require_webidl(); + var { parseMIMEType, serializeAMimeType } = require_dataURL(); + var { kEnumerableProperty } = require_util(); + var encoder = new TextEncoder(); + var File = class _File extends Blob2 { + constructor(fileBits, fileName, options = {}) { + webidl.argumentLengthCheck(arguments, 2, { header: "File constructor" }); + fileBits = webidl.converters["sequence"](fileBits); + fileName = webidl.converters.USVString(fileName); + options = webidl.converters.FilePropertyBag(options); + const n = fileName; + let t = options.type; + let d; + substep: { + if (t) { + t = parseMIMEType(t); + if (t === "failure") { + t = ""; + break substep; + } + t = serializeAMimeType(t).toLowerCase(); + } + d = options.lastModified; + } + super(processBlobParts(fileBits, options), { type: t }); + this[kState] = { + name: n, + lastModified: d, + type: t + }; + } + get name() { + webidl.brandCheck(this, _File); + return this[kState].name; + } + get lastModified() { + webidl.brandCheck(this, _File); + return this[kState].lastModified; + } + get type() { + webidl.brandCheck(this, _File); + return this[kState].type; + } + }; + var FileLike = class _FileLike { + constructor(blobLike, fileName, options = {}) { + const n = fileName; + const t = options.type; + const d = options.lastModified ?? Date.now(); + this[kState] = { + blobLike, + name: n, + type: t, + lastModified: d + }; + } + stream(...args) { + webidl.brandCheck(this, _FileLike); + return this[kState].blobLike.stream(...args); + } + arrayBuffer(...args) { + webidl.brandCheck(this, _FileLike); + return this[kState].blobLike.arrayBuffer(...args); + } + slice(...args) { + webidl.brandCheck(this, _FileLike); + return this[kState].blobLike.slice(...args); + } + text(...args) { + webidl.brandCheck(this, _FileLike); + return this[kState].blobLike.text(...args); + } + get size() { + webidl.brandCheck(this, _FileLike); + return this[kState].blobLike.size; + } + get type() { + webidl.brandCheck(this, _FileLike); + return this[kState].blobLike.type; + } + get name() { + webidl.brandCheck(this, _FileLike); + return this[kState].name; + } + get lastModified() { + webidl.brandCheck(this, _FileLike); + return this[kState].lastModified; + } + get [Symbol.toStringTag]() { + return "File"; + } + }; + Object.defineProperties(File.prototype, { + [Symbol.toStringTag]: { + value: "File", + configurable: true + }, + name: kEnumerableProperty, + lastModified: kEnumerableProperty + }); + webidl.converters.Blob = webidl.interfaceConverter(Blob2); + webidl.converters.BlobPart = function(V, opts) { + if (webidl.util.Type(V) === "Object") { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }); + } + if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { + return webidl.converters.BufferSource(V, opts); + } + } + return webidl.converters.USVString(V, opts); + }; + webidl.converters["sequence"] = webidl.sequenceConverter( + webidl.converters.BlobPart + ); + webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ + { + key: "lastModified", + converter: webidl.converters["long long"], + get defaultValue() { + return Date.now(); + } + }, + { + key: "type", + converter: webidl.converters.DOMString, + defaultValue: "" + }, + { + key: "endings", + converter: (value) => { + value = webidl.converters.DOMString(value); + value = value.toLowerCase(); + if (value !== "native") { + value = "transparent"; + } + return value; + }, + defaultValue: "transparent" + } + ]); + function processBlobParts(parts, options) { + const bytes7 = []; + for (const element of parts) { + if (typeof element === "string") { + let s = element; + if (options.endings === "native") { + s = convertLineEndingsNative(s); + } + bytes7.push(encoder.encode(s)); + } else if (types.isAnyArrayBuffer(element) || types.isTypedArray(element)) { + if (!element.buffer) { + bytes7.push(new Uint8Array(element)); + } else { + bytes7.push( + new Uint8Array(element.buffer, element.byteOffset, element.byteLength) + ); + } + } else if (isBlobLike(element)) { + bytes7.push(element); + } + } + return bytes7; + } + function convertLineEndingsNative(s) { + let nativeLineEnding = "\n"; + if (process.platform === "win32") { + nativeLineEnding = "\r\n"; + } + return s.replace(/\r?\n/g, nativeLineEnding); + } + function isFileLike(object) { + return NativeFile && object instanceof NativeFile || object instanceof File || object && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && object[Symbol.toStringTag] === "File"; + } + module2.exports = { File, FileLike, isFileLike }; + } +}); + +// node_modules/undici/lib/fetch/formdata.js +var require_formdata = __commonJS({ + "node_modules/undici/lib/fetch/formdata.js"(exports2, module2) { + "use strict"; + var { isBlobLike, toUSVString, makeIterator } = require_util2(); + var { kState } = require_symbols2(); + var { File: UndiciFile, FileLike, isFileLike } = require_file(); + var { webidl } = require_webidl(); + var { Blob: Blob2, File: NativeFile } = require("buffer"); + var File = NativeFile ?? UndiciFile; + var FormData = class _FormData { + constructor(form) { + if (form !== void 0) { + throw webidl.errors.conversionFailed({ + prefix: "FormData constructor", + argument: "Argument 1", + types: ["undefined"] + }); + } + this[kState] = []; + } + append(name, value, filename = void 0) { + webidl.brandCheck(this, _FormData); + webidl.argumentLengthCheck(arguments, 2, { header: "FormData.append" }); + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" + ); + } + name = webidl.converters.USVString(name); + value = isBlobLike(value) ? webidl.converters.Blob(value, { strict: false }) : webidl.converters.USVString(value); + filename = arguments.length === 3 ? webidl.converters.USVString(filename) : void 0; + const entry = makeEntry(name, value, filename); + this[kState].push(entry); + } + delete(name) { + webidl.brandCheck(this, _FormData); + webidl.argumentLengthCheck(arguments, 1, { header: "FormData.delete" }); + name = webidl.converters.USVString(name); + this[kState] = this[kState].filter((entry) => entry.name !== name); + } + get(name) { + webidl.brandCheck(this, _FormData); + webidl.argumentLengthCheck(arguments, 1, { header: "FormData.get" }); + name = webidl.converters.USVString(name); + const idx = this[kState].findIndex((entry) => entry.name === name); + if (idx === -1) { + return null; + } + return this[kState][idx].value; + } + getAll(name) { + webidl.brandCheck(this, _FormData); + webidl.argumentLengthCheck(arguments, 1, { header: "FormData.getAll" }); + name = webidl.converters.USVString(name); + return this[kState].filter((entry) => entry.name === name).map((entry) => entry.value); + } + has(name) { + webidl.brandCheck(this, _FormData); + webidl.argumentLengthCheck(arguments, 1, { header: "FormData.has" }); + name = webidl.converters.USVString(name); + return this[kState].findIndex((entry) => entry.name === name) !== -1; + } + set(name, value, filename = void 0) { + webidl.brandCheck(this, _FormData); + webidl.argumentLengthCheck(arguments, 2, { header: "FormData.set" }); + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" + ); + } + name = webidl.converters.USVString(name); + value = isBlobLike(value) ? webidl.converters.Blob(value, { strict: false }) : webidl.converters.USVString(value); + filename = arguments.length === 3 ? toUSVString(filename) : void 0; + const entry = makeEntry(name, value, filename); + const idx = this[kState].findIndex((entry2) => entry2.name === name); + if (idx !== -1) { + this[kState] = [ + ...this[kState].slice(0, idx), + entry, + ...this[kState].slice(idx + 1).filter((entry2) => entry2.name !== name) + ]; + } else { + this[kState].push(entry); + } + } + entries() { + webidl.brandCheck(this, _FormData); + return makeIterator( + () => this[kState].map((pair) => [pair.name, pair.value]), + "FormData", + "key+value" + ); + } + keys() { + webidl.brandCheck(this, _FormData); + return makeIterator( + () => this[kState].map((pair) => [pair.name, pair.value]), + "FormData", + "key" + ); + } + values() { + webidl.brandCheck(this, _FormData); + return makeIterator( + () => this[kState].map((pair) => [pair.name, pair.value]), + "FormData", + "value" + ); + } + /** + * @param {(value: string, key: string, self: FormData) => void} callbackFn + * @param {unknown} thisArg + */ + forEach(callbackFn, thisArg = globalThis) { + webidl.brandCheck(this, _FormData); + webidl.argumentLengthCheck(arguments, 1, { header: "FormData.forEach" }); + if (typeof callbackFn !== "function") { + throw new TypeError( + "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'." + ); + } + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]); + } + } + }; + FormData.prototype[Symbol.iterator] = FormData.prototype.entries; + Object.defineProperties(FormData.prototype, { + [Symbol.toStringTag]: { + value: "FormData", + configurable: true + } + }); + function makeEntry(name, value, filename) { + name = Buffer.from(name).toString("utf8"); + if (typeof value === "string") { + value = Buffer.from(value).toString("utf8"); + } else { + if (!isFileLike(value)) { + value = value instanceof Blob2 ? new File([value], "blob", { type: value.type }) : new FileLike(value, "blob", { type: value.type }); + } + if (filename !== void 0) { + const options = { + type: value.type, + lastModified: value.lastModified + }; + value = NativeFile && value instanceof NativeFile || value instanceof UndiciFile ? new File([value], filename, options) : new FileLike(value, filename, options); + } + } + return { name, value }; + } + module2.exports = { FormData }; + } +}); + +// node_modules/undici/lib/fetch/body.js +var require_body = __commonJS({ + "node_modules/undici/lib/fetch/body.js"(exports2, module2) { + "use strict"; + var Busboy = require_main(); + var util = require_util(); + var { + ReadableStreamFrom, + isBlobLike, + isReadableStreamLike, + readableStreamClose, + createDeferredPromise, + fullyReadBody + } = require_util2(); + var { FormData } = require_formdata(); + var { kState } = require_symbols2(); + var { webidl } = require_webidl(); + var { DOMException: DOMException2, structuredClone } = require_constants2(); + var { Blob: Blob2, File: NativeFile } = require("buffer"); + var { kBodyUsed } = require_symbols(); + var assert2 = require("assert"); + var { isErrored } = require_util(); + var { isUint8Array, isArrayBuffer } = require("util/types"); + var { File: UndiciFile } = require_file(); + var { parseMIMEType, serializeAMimeType } = require_dataURL(); + var random; + try { + const crypto5 = require("node:crypto"); + random = (max) => crypto5.randomInt(0, max); + } catch { + random = (max) => Math.floor(Math.random(max)); + } + var ReadableStream = globalThis.ReadableStream; + var File = NativeFile ?? UndiciFile; + var textEncoder = new TextEncoder(); + var textDecoder = new TextDecoder(); + function extractBody(object, keepalive = false) { + if (!ReadableStream) { + ReadableStream = require("stream/web").ReadableStream; + } + let stream = null; + if (object instanceof ReadableStream) { + stream = object; + } else if (isBlobLike(object)) { + stream = object.stream(); + } else { + stream = new ReadableStream({ + async pull(controller) { + controller.enqueue( + typeof source === "string" ? textEncoder.encode(source) : source + ); + queueMicrotask(() => readableStreamClose(controller)); + }, + start() { + }, + type: void 0 + }); + } + assert2(isReadableStreamLike(stream)); + let action = null; + let source = null; + let length = null; + let type = null; + if (typeof object === "string") { + source = object; + type = "text/plain;charset=UTF-8"; + } else if (object instanceof URLSearchParams) { + source = object.toString(); + type = "application/x-www-form-urlencoded;charset=UTF-8"; + } else if (isArrayBuffer(object)) { + source = new Uint8Array(object.slice()); + } else if (ArrayBuffer.isView(object)) { + source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); + } else if (util.isFormDataLike(object)) { + const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, "0")}`; + const prefix = `--${boundary}\r +Content-Disposition: form-data`; + const escape = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"); + const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, "\r\n"); + const blobParts = []; + const rn = new Uint8Array([13, 10]); + length = 0; + let hasUnknownSizeValue = false; + for (const [name, value] of object) { + if (typeof value === "string") { + const chunk2 = textEncoder.encode(prefix + `; name="${escape(normalizeLinefeeds(name))}"\r +\r +${normalizeLinefeeds(value)}\r +`); + blobParts.push(chunk2); + length += chunk2.byteLength; + } else { + const chunk2 = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape(value.name)}"` : "") + `\r +Content-Type: ${value.type || "application/octet-stream"}\r +\r +`); + blobParts.push(chunk2, value, rn); + if (typeof value.size === "number") { + length += chunk2.byteLength + value.size + rn.byteLength; + } else { + hasUnknownSizeValue = true; + } + } + } + const chunk = textEncoder.encode(`--${boundary}--`); + blobParts.push(chunk); + length += chunk.byteLength; + if (hasUnknownSizeValue) { + length = null; + } + source = object; + action = async function* () { + for (const part of blobParts) { + if (part.stream) { + yield* part.stream(); + } else { + yield part; + } + } + }; + type = "multipart/form-data; boundary=" + boundary; + } else if (isBlobLike(object)) { + source = object; + length = object.size; + if (object.type) { + type = object.type; + } + } else if (typeof object[Symbol.asyncIterator] === "function") { + if (keepalive) { + throw new TypeError("keepalive"); + } + if (util.isDisturbed(object) || object.locked) { + throw new TypeError( + "Response body object should not be disturbed or locked" + ); + } + stream = object instanceof ReadableStream ? object : ReadableStreamFrom(object); + } + if (typeof source === "string" || util.isBuffer(source)) { + length = Buffer.byteLength(source); + } + if (action != null) { + let iterator; + stream = new ReadableStream({ + async start() { + iterator = action(object)[Symbol.asyncIterator](); + }, + async pull(controller) { + const { value, done } = await iterator.next(); + if (done) { + queueMicrotask(() => { + controller.close(); + }); + } else { + if (!isErrored(stream)) { + controller.enqueue(new Uint8Array(value)); + } + } + return controller.desiredSize > 0; + }, + async cancel(reason) { + await iterator.return(); + }, + type: void 0 + }); + } + const body = { stream, source, length }; + return [body, type]; + } + function safelyExtractBody(object, keepalive = false) { + if (!ReadableStream) { + ReadableStream = require("stream/web").ReadableStream; + } + if (object instanceof ReadableStream) { + assert2(!util.isDisturbed(object), "The body has already been consumed."); + assert2(!object.locked, "The stream is locked."); + } + return extractBody(object, keepalive); + } + function cloneBody(body) { + const [out1, out2] = body.stream.tee(); + const out2Clone = structuredClone(out2, { transfer: [out2] }); + const [, finalClone] = out2Clone.tee(); + body.stream = out1; + return { + stream: finalClone, + length: body.length, + source: body.source + }; + } + async function* consumeBody(body) { + if (body) { + if (isUint8Array(body)) { + yield body; + } else { + const stream = body.stream; + if (util.isDisturbed(stream)) { + throw new TypeError("The body has already been consumed."); + } + if (stream.locked) { + throw new TypeError("The stream is locked."); + } + stream[kBodyUsed] = true; + yield* stream; + } + } + } + function throwIfAborted(state) { + if (state.aborted) { + throw new DOMException2("The operation was aborted.", "AbortError"); + } + } + function bodyMixinMethods(instance) { + const methods = { + blob() { + return specConsumeBody(this, (bytes7) => { + let mimeType = bodyMimeType(this); + if (mimeType === "failure") { + mimeType = ""; + } else if (mimeType) { + mimeType = serializeAMimeType(mimeType); + } + return new Blob2([bytes7], { type: mimeType }); + }, instance); + }, + arrayBuffer() { + return specConsumeBody(this, (bytes7) => { + return new Uint8Array(bytes7).buffer; + }, instance); + }, + text() { + return specConsumeBody(this, utf8DecodeBytes, instance); + }, + json() { + return specConsumeBody(this, parseJSONFromBytes, instance); + }, + async formData() { + webidl.brandCheck(this, instance); + throwIfAborted(this[kState]); + const contentType = this.headers.get("Content-Type"); + if (/multipart\/form-data/.test(contentType)) { + const headers = {}; + for (const [key, value] of this.headers) headers[key.toLowerCase()] = value; + const responseFormData = new FormData(); + let busboy; + try { + busboy = new Busboy({ + headers, + preservePath: true + }); + } catch (err) { + throw new DOMException2(`${err}`, "AbortError"); + } + busboy.on("field", (name, value) => { + responseFormData.append(name, value); + }); + busboy.on("file", (name, value, filename, encoding, mimeType) => { + const chunks = []; + if (encoding === "base64" || encoding.toLowerCase() === "base64") { + let base64chunk = ""; + value.on("data", (chunk) => { + base64chunk += chunk.toString().replace(/[\r\n]/gm, ""); + const end = base64chunk.length - base64chunk.length % 4; + chunks.push(Buffer.from(base64chunk.slice(0, end), "base64")); + base64chunk = base64chunk.slice(end); + }); + value.on("end", () => { + chunks.push(Buffer.from(base64chunk, "base64")); + responseFormData.append(name, new File(chunks, filename, { type: mimeType })); + }); + } else { + value.on("data", (chunk) => { + chunks.push(chunk); + }); + value.on("end", () => { + responseFormData.append(name, new File(chunks, filename, { type: mimeType })); + }); + } + }); + const busboyResolve = new Promise((resolve, reject) => { + busboy.on("finish", resolve); + busboy.on("error", (err) => reject(new TypeError(err))); + }); + if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk); + busboy.end(); + await busboyResolve; + return responseFormData; + } else if (/application\/x-www-form-urlencoded/.test(contentType)) { + let entries; + try { + let text = ""; + const streamingDecoder = new TextDecoder("utf-8", { ignoreBOM: true }); + for await (const chunk of consumeBody(this[kState].body)) { + if (!isUint8Array(chunk)) { + throw new TypeError("Expected Uint8Array chunk"); + } + text += streamingDecoder.decode(chunk, { stream: true }); + } + text += streamingDecoder.decode(); + entries = new URLSearchParams(text); + } catch (err) { + throw Object.assign(new TypeError(), { cause: err }); + } + const formData = new FormData(); + for (const [name, value] of entries) { + formData.append(name, value); + } + return formData; + } else { + await Promise.resolve(); + throwIfAborted(this[kState]); + throw webidl.errors.exception({ + header: `${instance.name}.formData`, + message: "Could not parse content as FormData." + }); + } + } + }; + return methods; + } + function mixinBody(prototype) { + Object.assign(prototype.prototype, bodyMixinMethods(prototype)); + } + async function specConsumeBody(object, convertBytesToJSValue, instance) { + webidl.brandCheck(object, instance); + throwIfAborted(object[kState]); + if (bodyUnusable(object[kState].body)) { + throw new TypeError("Body is unusable"); + } + const promise = createDeferredPromise(); + const errorSteps = (error) => promise.reject(error); + const successSteps = (data) => { + try { + promise.resolve(convertBytesToJSValue(data)); + } catch (e) { + errorSteps(e); + } + }; + if (object[kState].body == null) { + successSteps(new Uint8Array()); + return promise.promise; + } + await fullyReadBody(object[kState].body, successSteps, errorSteps); + return promise.promise; + } + function bodyUnusable(body) { + return body != null && (body.stream.locked || util.isDisturbed(body.stream)); + } + function utf8DecodeBytes(buffer) { + if (buffer.length === 0) { + return ""; + } + if (buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) { + buffer = buffer.subarray(3); + } + const output = textDecoder.decode(buffer); + return output; + } + function parseJSONFromBytes(bytes7) { + return JSON.parse(utf8DecodeBytes(bytes7)); + } + function bodyMimeType(object) { + const { headersList } = object[kState]; + const contentType = headersList.get("content-type"); + if (contentType === null) { + return "failure"; + } + return parseMIMEType(contentType); + } + module2.exports = { + extractBody, + safelyExtractBody, + cloneBody, + mixinBody + }; + } +}); + +// node_modules/undici/lib/core/request.js +var require_request = __commonJS({ + "node_modules/undici/lib/core/request.js"(exports2, module2) { + "use strict"; + var { + InvalidArgumentError, + NotSupportedError + } = require_errors(); + var assert2 = require("assert"); + var { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require_symbols(); + var util = require_util(); + var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; + var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; + var invalidPathRegex = /[^\u0021-\u00ff]/; + var kHandler = Symbol("handler"); + var channels = {}; + var extractBody; + try { + const diagnosticsChannel = require("diagnostics_channel"); + channels.create = diagnosticsChannel.channel("undici:request:create"); + channels.bodySent = diagnosticsChannel.channel("undici:request:bodySent"); + channels.headers = diagnosticsChannel.channel("undici:request:headers"); + channels.trailers = diagnosticsChannel.channel("undici:request:trailers"); + channels.error = diagnosticsChannel.channel("undici:request:error"); + } catch { + channels.create = { hasSubscribers: false }; + channels.bodySent = { hasSubscribers: false }; + channels.headers = { hasSubscribers: false }; + channels.trailers = { hasSubscribers: false }; + channels.error = { hasSubscribers: false }; + } + var Request = class _Request { + constructor(origin, { + path, + method: method2, + body, + headers, + query, + idempotent, + blocking, + upgrade, + headersTimeout, + bodyTimeout, + reset, + throwOnError, + expectContinue + }, handler) { + if (typeof path !== "string") { + throw new InvalidArgumentError("path must be a string"); + } else if (path[0] !== "/" && !(path.startsWith("http://") || path.startsWith("https://")) && method2 !== "CONNECT") { + throw new InvalidArgumentError("path must be an absolute URL or start with a slash"); + } else if (invalidPathRegex.exec(path) !== null) { + throw new InvalidArgumentError("invalid request path"); + } + if (typeof method2 !== "string") { + throw new InvalidArgumentError("method must be a string"); + } else if (tokenRegExp.exec(method2) === null) { + throw new InvalidArgumentError("invalid request method"); + } + if (upgrade && typeof upgrade !== "string") { + throw new InvalidArgumentError("upgrade must be a string"); + } + if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { + throw new InvalidArgumentError("invalid headersTimeout"); + } + if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { + throw new InvalidArgumentError("invalid bodyTimeout"); + } + if (reset != null && typeof reset !== "boolean") { + throw new InvalidArgumentError("invalid reset"); + } + if (expectContinue != null && typeof expectContinue !== "boolean") { + throw new InvalidArgumentError("invalid expectContinue"); + } + this.headersTimeout = headersTimeout; + this.bodyTimeout = bodyTimeout; + this.throwOnError = throwOnError === true; + this.method = method2; + this.abort = null; + if (body == null) { + this.body = null; + } else if (util.isStream(body)) { + this.body = body; + const rState = this.body._readableState; + if (!rState || !rState.autoDestroy) { + this.endHandler = function autoDestroy() { + util.destroy(this); + }; + this.body.on("end", this.endHandler); + } + this.errorHandler = (err) => { + if (this.abort) { + this.abort(err); + } else { + this.error = err; + } + }; + this.body.on("error", this.errorHandler); + } else if (util.isBuffer(body)) { + this.body = body.byteLength ? body : null; + } else if (ArrayBuffer.isView(body)) { + this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; + } else if (body instanceof ArrayBuffer) { + this.body = body.byteLength ? Buffer.from(body) : null; + } else if (typeof body === "string") { + this.body = body.length ? Buffer.from(body) : null; + } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) { + this.body = body; + } else { + throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable"); + } + this.completed = false; + this.aborted = false; + this.upgrade = upgrade || null; + this.path = query ? util.buildURL(path, query) : path; + this.origin = origin; + this.idempotent = idempotent == null ? method2 === "HEAD" || method2 === "GET" : idempotent; + this.blocking = blocking == null ? false : blocking; + this.reset = reset == null ? null : reset; + this.host = null; + this.contentLength = null; + this.contentType = null; + this.headers = ""; + this.expectContinue = expectContinue != null ? expectContinue : false; + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError("headers array must be even"); + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(this, headers[i], headers[i + 1]); + } + } else if (headers && typeof headers === "object") { + const keys = Object.keys(headers); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + processHeader(this, key, headers[key]); + } + } else if (headers != null) { + throw new InvalidArgumentError("headers must be an object or an array"); + } + if (util.isFormDataLike(this.body)) { + if (util.nodeMajor < 16 || util.nodeMajor === 16 && util.nodeMinor < 8) { + throw new InvalidArgumentError("Form-Data bodies are only supported in node v16.8 and newer."); + } + if (!extractBody) { + extractBody = require_body().extractBody; + } + const [bodyStream, contentType] = extractBody(body); + if (this.contentType == null) { + this.contentType = contentType; + this.headers += `content-type: ${contentType}\r +`; + } + this.body = bodyStream.stream; + this.contentLength = bodyStream.length; + } else if (util.isBlobLike(body) && this.contentType == null && body.type) { + this.contentType = body.type; + this.headers += `content-type: ${body.type}\r +`; + } + util.validateHandler(handler, method2, upgrade); + this.servername = util.getServerName(this.host); + this[kHandler] = handler; + if (channels.create.hasSubscribers) { + channels.create.publish({ request: this }); + } + } + onBodySent(chunk) { + if (this[kHandler].onBodySent) { + try { + return this[kHandler].onBodySent(chunk); + } catch (err) { + this.abort(err); + } + } + } + onRequestSent() { + if (channels.bodySent.hasSubscribers) { + channels.bodySent.publish({ request: this }); + } + if (this[kHandler].onRequestSent) { + try { + return this[kHandler].onRequestSent(); + } catch (err) { + this.abort(err); + } + } + } + onConnect(abort) { + assert2(!this.aborted); + assert2(!this.completed); + if (this.error) { + abort(this.error); + } else { + this.abort = abort; + return this[kHandler].onConnect(abort); + } + } + onHeaders(statusCode, headers, resume, statusText) { + assert2(!this.aborted); + assert2(!this.completed); + if (channels.headers.hasSubscribers) { + channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); + } + try { + return this[kHandler].onHeaders(statusCode, headers, resume, statusText); + } catch (err) { + this.abort(err); + } + } + onData(chunk) { + assert2(!this.aborted); + assert2(!this.completed); + try { + return this[kHandler].onData(chunk); + } catch (err) { + this.abort(err); + return false; + } + } + onUpgrade(statusCode, headers, socket) { + assert2(!this.aborted); + assert2(!this.completed); + return this[kHandler].onUpgrade(statusCode, headers, socket); + } + onComplete(trailers) { + this.onFinally(); + assert2(!this.aborted); + this.completed = true; + if (channels.trailers.hasSubscribers) { + channels.trailers.publish({ request: this, trailers }); + } + try { + return this[kHandler].onComplete(trailers); + } catch (err) { + this.onError(err); + } + } + onError(error) { + this.onFinally(); + if (channels.error.hasSubscribers) { + channels.error.publish({ request: this, error }); + } + if (this.aborted) { + return; + } + this.aborted = true; + return this[kHandler].onError(error); + } + onFinally() { + if (this.errorHandler) { + this.body.off("error", this.errorHandler); + this.errorHandler = null; + } + if (this.endHandler) { + this.body.off("end", this.endHandler); + this.endHandler = null; + } + } + // TODO: adjust to support H2 + addHeader(key, value) { + processHeader(this, key, value); + return this; + } + static [kHTTP1BuildRequest](origin, opts, handler) { + return new _Request(origin, opts, handler); + } + static [kHTTP2BuildRequest](origin, opts, handler) { + const headers = opts.headers; + opts = { ...opts, headers: null }; + const request = new _Request(origin, opts, handler); + request.headers = {}; + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError("headers array must be even"); + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(request, headers[i], headers[i + 1], true); + } + } else if (headers && typeof headers === "object") { + const keys = Object.keys(headers); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + processHeader(request, key, headers[key], true); + } + } else if (headers != null) { + throw new InvalidArgumentError("headers must be an object or an array"); + } + return request; + } + static [kHTTP2CopyHeaders](raw) { + const rawHeaders = raw.split("\r\n"); + const headers = {}; + for (const header of rawHeaders) { + const [key, value] = header.split(": "); + if (value == null || value.length === 0) continue; + if (headers[key]) headers[key] += `,${value}`; + else headers[key] = value; + } + return headers; + } + }; + function processHeaderValue(key, val, skipAppend) { + if (val && typeof val === "object") { + throw new InvalidArgumentError(`invalid ${key} header`); + } + val = val != null ? `${val}` : ""; + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`); + } + return skipAppend ? val : `${key}: ${val}\r +`; + } + function processHeader(request, key, val, skipAppend = false) { + if (val && (typeof val === "object" && !Array.isArray(val))) { + throw new InvalidArgumentError(`invalid ${key} header`); + } else if (val === void 0) { + return; + } + if (request.host === null && key.length === 4 && key.toLowerCase() === "host") { + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`); + } + request.host = val; + } else if (request.contentLength === null && key.length === 14 && key.toLowerCase() === "content-length") { + request.contentLength = parseInt(val, 10); + if (!Number.isFinite(request.contentLength)) { + throw new InvalidArgumentError("invalid content-length header"); + } + } else if (request.contentType === null && key.length === 12 && key.toLowerCase() === "content-type") { + request.contentType = val; + if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend); + else request.headers += processHeaderValue(key, val); + } else if (key.length === 17 && key.toLowerCase() === "transfer-encoding") { + throw new InvalidArgumentError("invalid transfer-encoding header"); + } else if (key.length === 10 && key.toLowerCase() === "connection") { + const value = typeof val === "string" ? val.toLowerCase() : null; + if (value !== "close" && value !== "keep-alive") { + throw new InvalidArgumentError("invalid connection header"); + } else if (value === "close") { + request.reset = true; + } + } else if (key.length === 10 && key.toLowerCase() === "keep-alive") { + throw new InvalidArgumentError("invalid keep-alive header"); + } else if (key.length === 7 && key.toLowerCase() === "upgrade") { + throw new InvalidArgumentError("invalid upgrade header"); + } else if (key.length === 6 && key.toLowerCase() === "expect") { + throw new NotSupportedError("expect header not supported"); + } else if (tokenRegExp.exec(key) === null) { + throw new InvalidArgumentError("invalid header key"); + } else { + if (Array.isArray(val)) { + for (let i = 0; i < val.length; i++) { + if (skipAppend) { + if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`; + else request.headers[key] = processHeaderValue(key, val[i], skipAppend); + } else { + request.headers += processHeaderValue(key, val[i]); + } + } + } else { + if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend); + else request.headers += processHeaderValue(key, val); + } + } + } + module2.exports = Request; + } +}); + +// node_modules/undici/lib/dispatcher.js +var require_dispatcher = __commonJS({ + "node_modules/undici/lib/dispatcher.js"(exports2, module2) { + "use strict"; + var EventEmitter = require("events"); + var Dispatcher = class extends EventEmitter { + dispatch() { + throw new Error("not implemented"); + } + close() { + throw new Error("not implemented"); + } + destroy() { + throw new Error("not implemented"); + } + }; + module2.exports = Dispatcher; + } +}); + +// node_modules/undici/lib/dispatcher-base.js +var require_dispatcher_base = __commonJS({ + "node_modules/undici/lib/dispatcher-base.js"(exports2, module2) { + "use strict"; + var Dispatcher = require_dispatcher(); + var { + ClientDestroyedError, + ClientClosedError, + InvalidArgumentError + } = require_errors(); + var { kDestroy, kClose, kDispatch, kInterceptors } = require_symbols(); + var kDestroyed = Symbol("destroyed"); + var kClosed = Symbol("closed"); + var kOnDestroyed = Symbol("onDestroyed"); + var kOnClosed = Symbol("onClosed"); + var kInterceptedDispatch = Symbol("Intercepted Dispatch"); + var DispatcherBase = class extends Dispatcher { + constructor() { + super(); + this[kDestroyed] = false; + this[kOnDestroyed] = null; + this[kClosed] = false; + this[kOnClosed] = []; + } + get destroyed() { + return this[kDestroyed]; + } + get closed() { + return this[kClosed]; + } + get interceptors() { + return this[kInterceptors]; + } + set interceptors(newInterceptors) { + if (newInterceptors) { + for (let i = newInterceptors.length - 1; i >= 0; i--) { + const interceptor = this[kInterceptors][i]; + if (typeof interceptor !== "function") { + throw new InvalidArgumentError("interceptor must be an function"); + } + } + } + this[kInterceptors] = newInterceptors; + } + close(callback) { + if (callback === void 0) { + return new Promise((resolve, reject) => { + this.close((err, data) => { + return err ? reject(err) : resolve(data); + }); + }); + } + if (typeof callback !== "function") { + throw new InvalidArgumentError("invalid callback"); + } + if (this[kDestroyed]) { + queueMicrotask(() => callback(new ClientDestroyedError(), null)); + return; + } + if (this[kClosed]) { + if (this[kOnClosed]) { + this[kOnClosed].push(callback); + } else { + queueMicrotask(() => callback(null, null)); + } + return; + } + this[kClosed] = true; + this[kOnClosed].push(callback); + const onClosed = () => { + const callbacks = this[kOnClosed]; + this[kOnClosed] = null; + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null); + } + }; + this[kClose]().then(() => this.destroy()).then(() => { + queueMicrotask(onClosed); + }); + } + destroy(err, callback) { + if (typeof err === "function") { + callback = err; + err = null; + } + if (callback === void 0) { + return new Promise((resolve, reject) => { + this.destroy(err, (err2, data) => { + return err2 ? ( + /* istanbul ignore next: should never error */ + reject(err2) + ) : resolve(data); + }); + }); + } + if (typeof callback !== "function") { + throw new InvalidArgumentError("invalid callback"); + } + if (this[kDestroyed]) { + if (this[kOnDestroyed]) { + this[kOnDestroyed].push(callback); + } else { + queueMicrotask(() => callback(null, null)); + } + return; + } + if (!err) { + err = new ClientDestroyedError(); + } + this[kDestroyed] = true; + this[kOnDestroyed] = this[kOnDestroyed] || []; + this[kOnDestroyed].push(callback); + const onDestroyed = () => { + const callbacks = this[kOnDestroyed]; + this[kOnDestroyed] = null; + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null); + } + }; + this[kDestroy](err).then(() => { + queueMicrotask(onDestroyed); + }); + } + [kInterceptedDispatch](opts, handler) { + if (!this[kInterceptors] || this[kInterceptors].length === 0) { + this[kInterceptedDispatch] = this[kDispatch]; + return this[kDispatch](opts, handler); + } + let dispatch = this[kDispatch].bind(this); + for (let i = this[kInterceptors].length - 1; i >= 0; i--) { + dispatch = this[kInterceptors][i](dispatch); + } + this[kInterceptedDispatch] = dispatch; + return dispatch(opts, handler); + } + dispatch(opts, handler) { + if (!handler || typeof handler !== "object") { + throw new InvalidArgumentError("handler must be an object"); + } + try { + if (!opts || typeof opts !== "object") { + throw new InvalidArgumentError("opts must be an object."); + } + if (this[kDestroyed] || this[kOnDestroyed]) { + throw new ClientDestroyedError(); + } + if (this[kClosed]) { + throw new ClientClosedError(); + } + return this[kInterceptedDispatch](opts, handler); + } catch (err) { + if (typeof handler.onError !== "function") { + throw new InvalidArgumentError("invalid onError method"); + } + handler.onError(err); + return false; + } + } + }; + module2.exports = DispatcherBase; + } +}); + +// node_modules/undici/lib/core/connect.js +var require_connect = __commonJS({ + "node_modules/undici/lib/core/connect.js"(exports2, module2) { + "use strict"; + var net = require("net"); + var assert2 = require("assert"); + var util = require_util(); + var { InvalidArgumentError, ConnectTimeoutError } = require_errors(); + var tls; + var SessionCache; + if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { + SessionCache = class WeakSessionCache { + constructor(maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions; + this._sessionCache = /* @__PURE__ */ new Map(); + this._sessionRegistry = new global.FinalizationRegistry((key) => { + if (this._sessionCache.size < this._maxCachedSessions) { + return; + } + const ref = this._sessionCache.get(key); + if (ref !== void 0 && ref.deref() === void 0) { + this._sessionCache.delete(key); + } + }); + } + get(sessionKey) { + const ref = this._sessionCache.get(sessionKey); + return ref ? ref.deref() : null; + } + set(sessionKey, session) { + if (this._maxCachedSessions === 0) { + return; + } + this._sessionCache.set(sessionKey, new WeakRef(session)); + this._sessionRegistry.register(session, sessionKey); + } + }; + } else { + SessionCache = class SimpleSessionCache { + constructor(maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions; + this._sessionCache = /* @__PURE__ */ new Map(); + } + get(sessionKey) { + return this._sessionCache.get(sessionKey); + } + set(sessionKey, session) { + if (this._maxCachedSessions === 0) { + return; + } + if (this._sessionCache.size >= this._maxCachedSessions) { + const { value: oldestKey } = this._sessionCache.keys().next(); + this._sessionCache.delete(oldestKey); + } + this._sessionCache.set(sessionKey, session); + } + }; + } + function buildConnector({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) { + if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { + throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero"); + } + const options = { path: socketPath, ...opts }; + const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions); + timeout = timeout == null ? 1e4 : timeout; + allowH2 = allowH2 != null ? allowH2 : false; + return function connect({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { + let socket; + if (protocol === "https:") { + if (!tls) { + tls = require("tls"); + } + servername = servername || options.servername || util.getServerName(host) || null; + const sessionKey = servername || hostname; + const session = sessionCache.get(sessionKey) || null; + assert2(sessionKey); + socket = tls.connect({ + highWaterMark: 16384, + // TLS in node can't have bigger HWM anyway... + ...options, + servername, + session, + localAddress, + // TODO(HTTP/2): Add support for h2c + ALPNProtocols: allowH2 ? ["http/1.1", "h2"] : ["http/1.1"], + socket: httpSocket, + // upgrade socket connection + port: port || 443, + host: hostname + }); + socket.on("session", function(session2) { + sessionCache.set(sessionKey, session2); + }); + } else { + assert2(!httpSocket, "httpSocket can only be sent on TLS update"); + socket = net.connect({ + highWaterMark: 64 * 1024, + // Same as nodejs fs streams. + ...options, + localAddress, + port: port || 80, + host: hostname + }); + } + if (options.keepAlive == null || options.keepAlive) { + const keepAliveInitialDelay = options.keepAliveInitialDelay === void 0 ? 6e4 : options.keepAliveInitialDelay; + socket.setKeepAlive(true, keepAliveInitialDelay); + } + const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout); + socket.setNoDelay(true).once(protocol === "https:" ? "secureConnect" : "connect", function() { + cancelTimeout(); + if (callback) { + const cb = callback; + callback = null; + cb(null, this); + } + }).on("error", function(err) { + cancelTimeout(); + if (callback) { + const cb = callback; + callback = null; + cb(err); + } + }); + return socket; + }; + } + function setupTimeout(onConnectTimeout2, timeout) { + if (!timeout) { + return () => { + }; + } + let s1 = null; + let s2 = null; + const timeoutId = setTimeout(() => { + s1 = setImmediate(() => { + if (process.platform === "win32") { + s2 = setImmediate(() => onConnectTimeout2()); + } else { + onConnectTimeout2(); + } + }); + }, timeout); + return () => { + clearTimeout(timeoutId); + clearImmediate(s1); + clearImmediate(s2); + }; + } + function onConnectTimeout(socket) { + util.destroy(socket, new ConnectTimeoutError()); + } + module2.exports = buildConnector; + } +}); + +// node_modules/undici/lib/llhttp/utils.js +var require_utils2 = __commonJS({ + "node_modules/undici/lib/llhttp/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.enumToMap = void 0; + function enumToMap(obj) { + const res = {}; + Object.keys(obj).forEach((key) => { + const value = obj[key]; + if (typeof value === "number") { + res[key] = value; + } + }); + return res; + } + exports2.enumToMap = enumToMap; + } +}); + +// node_modules/undici/lib/llhttp/constants.js +var require_constants3 = __commonJS({ + "node_modules/undici/lib/llhttp/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SPECIAL_HEADERS = exports2.HEADER_STATE = exports2.MINOR = exports2.MAJOR = exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS = exports2.TOKEN = exports2.STRICT_TOKEN = exports2.HEX = exports2.URL_CHAR = exports2.STRICT_URL_CHAR = exports2.USERINFO_CHARS = exports2.MARK = exports2.ALPHANUM = exports2.NUM = exports2.HEX_MAP = exports2.NUM_MAP = exports2.ALPHA = exports2.FINISH = exports2.H_METHOD_MAP = exports2.METHOD_MAP = exports2.METHODS_RTSP = exports2.METHODS_ICE = exports2.METHODS_HTTP = exports2.METHODS = exports2.LENIENT_FLAGS = exports2.FLAGS = exports2.TYPE = exports2.ERROR = void 0; + var utils_1 = require_utils2(); + var ERROR2; + (function(ERROR3) { + ERROR3[ERROR3["OK"] = 0] = "OK"; + ERROR3[ERROR3["INTERNAL"] = 1] = "INTERNAL"; + ERROR3[ERROR3["STRICT"] = 2] = "STRICT"; + ERROR3[ERROR3["LF_EXPECTED"] = 3] = "LF_EXPECTED"; + ERROR3[ERROR3["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; + ERROR3[ERROR3["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; + ERROR3[ERROR3["INVALID_METHOD"] = 6] = "INVALID_METHOD"; + ERROR3[ERROR3["INVALID_URL"] = 7] = "INVALID_URL"; + ERROR3[ERROR3["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; + ERROR3[ERROR3["INVALID_VERSION"] = 9] = "INVALID_VERSION"; + ERROR3[ERROR3["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; + ERROR3[ERROR3["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; + ERROR3[ERROR3["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; + ERROR3[ERROR3["INVALID_STATUS"] = 13] = "INVALID_STATUS"; + ERROR3[ERROR3["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; + ERROR3[ERROR3["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; + ERROR3[ERROR3["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; + ERROR3[ERROR3["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; + ERROR3[ERROR3["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; + ERROR3[ERROR3["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; + ERROR3[ERROR3["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; + ERROR3[ERROR3["PAUSED"] = 21] = "PAUSED"; + ERROR3[ERROR3["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; + ERROR3[ERROR3["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; + ERROR3[ERROR3["USER"] = 24] = "USER"; + })(ERROR2 = exports2.ERROR || (exports2.ERROR = {})); + var TYPE; + (function(TYPE2) { + TYPE2[TYPE2["BOTH"] = 0] = "BOTH"; + TYPE2[TYPE2["REQUEST"] = 1] = "REQUEST"; + TYPE2[TYPE2["RESPONSE"] = 2] = "RESPONSE"; + })(TYPE = exports2.TYPE || (exports2.TYPE = {})); + var FLAGS; + (function(FLAGS2) { + FLAGS2[FLAGS2["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; + FLAGS2[FLAGS2["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; + FLAGS2[FLAGS2["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; + FLAGS2[FLAGS2["CHUNKED"] = 8] = "CHUNKED"; + FLAGS2[FLAGS2["UPGRADE"] = 16] = "UPGRADE"; + FLAGS2[FLAGS2["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; + FLAGS2[FLAGS2["SKIPBODY"] = 64] = "SKIPBODY"; + FLAGS2[FLAGS2["TRAILING"] = 128] = "TRAILING"; + FLAGS2[FLAGS2["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; + })(FLAGS = exports2.FLAGS || (exports2.FLAGS = {})); + var LENIENT_FLAGS; + (function(LENIENT_FLAGS2) { + LENIENT_FLAGS2[LENIENT_FLAGS2["HEADERS"] = 1] = "HEADERS"; + LENIENT_FLAGS2[LENIENT_FLAGS2["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; + LENIENT_FLAGS2[LENIENT_FLAGS2["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; + })(LENIENT_FLAGS = exports2.LENIENT_FLAGS || (exports2.LENIENT_FLAGS = {})); + var METHODS; + (function(METHODS2) { + METHODS2[METHODS2["DELETE"] = 0] = "DELETE"; + METHODS2[METHODS2["GET"] = 1] = "GET"; + METHODS2[METHODS2["HEAD"] = 2] = "HEAD"; + METHODS2[METHODS2["POST"] = 3] = "POST"; + METHODS2[METHODS2["PUT"] = 4] = "PUT"; + METHODS2[METHODS2["CONNECT"] = 5] = "CONNECT"; + METHODS2[METHODS2["OPTIONS"] = 6] = "OPTIONS"; + METHODS2[METHODS2["TRACE"] = 7] = "TRACE"; + METHODS2[METHODS2["COPY"] = 8] = "COPY"; + METHODS2[METHODS2["LOCK"] = 9] = "LOCK"; + METHODS2[METHODS2["MKCOL"] = 10] = "MKCOL"; + METHODS2[METHODS2["MOVE"] = 11] = "MOVE"; + METHODS2[METHODS2["PROPFIND"] = 12] = "PROPFIND"; + METHODS2[METHODS2["PROPPATCH"] = 13] = "PROPPATCH"; + METHODS2[METHODS2["SEARCH"] = 14] = "SEARCH"; + METHODS2[METHODS2["UNLOCK"] = 15] = "UNLOCK"; + METHODS2[METHODS2["BIND"] = 16] = "BIND"; + METHODS2[METHODS2["REBIND"] = 17] = "REBIND"; + METHODS2[METHODS2["UNBIND"] = 18] = "UNBIND"; + METHODS2[METHODS2["ACL"] = 19] = "ACL"; + METHODS2[METHODS2["REPORT"] = 20] = "REPORT"; + METHODS2[METHODS2["MKACTIVITY"] = 21] = "MKACTIVITY"; + METHODS2[METHODS2["CHECKOUT"] = 22] = "CHECKOUT"; + METHODS2[METHODS2["MERGE"] = 23] = "MERGE"; + METHODS2[METHODS2["M-SEARCH"] = 24] = "M-SEARCH"; + METHODS2[METHODS2["NOTIFY"] = 25] = "NOTIFY"; + METHODS2[METHODS2["SUBSCRIBE"] = 26] = "SUBSCRIBE"; + METHODS2[METHODS2["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; + METHODS2[METHODS2["PATCH"] = 28] = "PATCH"; + METHODS2[METHODS2["PURGE"] = 29] = "PURGE"; + METHODS2[METHODS2["MKCALENDAR"] = 30] = "MKCALENDAR"; + METHODS2[METHODS2["LINK"] = 31] = "LINK"; + METHODS2[METHODS2["UNLINK"] = 32] = "UNLINK"; + METHODS2[METHODS2["SOURCE"] = 33] = "SOURCE"; + METHODS2[METHODS2["PRI"] = 34] = "PRI"; + METHODS2[METHODS2["DESCRIBE"] = 35] = "DESCRIBE"; + METHODS2[METHODS2["ANNOUNCE"] = 36] = "ANNOUNCE"; + METHODS2[METHODS2["SETUP"] = 37] = "SETUP"; + METHODS2[METHODS2["PLAY"] = 38] = "PLAY"; + METHODS2[METHODS2["PAUSE"] = 39] = "PAUSE"; + METHODS2[METHODS2["TEARDOWN"] = 40] = "TEARDOWN"; + METHODS2[METHODS2["GET_PARAMETER"] = 41] = "GET_PARAMETER"; + METHODS2[METHODS2["SET_PARAMETER"] = 42] = "SET_PARAMETER"; + METHODS2[METHODS2["REDIRECT"] = 43] = "REDIRECT"; + METHODS2[METHODS2["RECORD"] = 44] = "RECORD"; + METHODS2[METHODS2["FLUSH"] = 45] = "FLUSH"; + })(METHODS = exports2.METHODS || (exports2.METHODS = {})); + exports2.METHODS_HTTP = [ + METHODS.DELETE, + METHODS.GET, + METHODS.HEAD, + METHODS.POST, + METHODS.PUT, + METHODS.CONNECT, + METHODS.OPTIONS, + METHODS.TRACE, + METHODS.COPY, + METHODS.LOCK, + METHODS.MKCOL, + METHODS.MOVE, + METHODS.PROPFIND, + METHODS.PROPPATCH, + METHODS.SEARCH, + METHODS.UNLOCK, + METHODS.BIND, + METHODS.REBIND, + METHODS.UNBIND, + METHODS.ACL, + METHODS.REPORT, + METHODS.MKACTIVITY, + METHODS.CHECKOUT, + METHODS.MERGE, + METHODS["M-SEARCH"], + METHODS.NOTIFY, + METHODS.SUBSCRIBE, + METHODS.UNSUBSCRIBE, + METHODS.PATCH, + METHODS.PURGE, + METHODS.MKCALENDAR, + METHODS.LINK, + METHODS.UNLINK, + METHODS.PRI, + // TODO(indutny): should we allow it with HTTP? + METHODS.SOURCE + ]; + exports2.METHODS_ICE = [ + METHODS.SOURCE + ]; + exports2.METHODS_RTSP = [ + METHODS.OPTIONS, + METHODS.DESCRIBE, + METHODS.ANNOUNCE, + METHODS.SETUP, + METHODS.PLAY, + METHODS.PAUSE, + METHODS.TEARDOWN, + METHODS.GET_PARAMETER, + METHODS.SET_PARAMETER, + METHODS.REDIRECT, + METHODS.RECORD, + METHODS.FLUSH, + // For AirPlay + METHODS.GET, + METHODS.POST + ]; + exports2.METHOD_MAP = utils_1.enumToMap(METHODS); + exports2.H_METHOD_MAP = {}; + Object.keys(exports2.METHOD_MAP).forEach((key) => { + if (/^H/.test(key)) { + exports2.H_METHOD_MAP[key] = exports2.METHOD_MAP[key]; + } + }); + var FINISH; + (function(FINISH2) { + FINISH2[FINISH2["SAFE"] = 0] = "SAFE"; + FINISH2[FINISH2["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; + FINISH2[FINISH2["UNSAFE"] = 2] = "UNSAFE"; + })(FINISH = exports2.FINISH || (exports2.FINISH = {})); + exports2.ALPHA = []; + for (let i = "A".charCodeAt(0); i <= "Z".charCodeAt(0); i++) { + exports2.ALPHA.push(String.fromCharCode(i)); + exports2.ALPHA.push(String.fromCharCode(i + 32)); + } + exports2.NUM_MAP = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9 + }; + exports2.HEX_MAP = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + A: 10, + B: 11, + C: 12, + D: 13, + E: 14, + F: 15, + a: 10, + b: 11, + c: 12, + d: 13, + e: 14, + f: 15 + }; + exports2.NUM = [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ]; + exports2.ALPHANUM = exports2.ALPHA.concat(exports2.NUM); + exports2.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"]; + exports2.USERINFO_CHARS = exports2.ALPHANUM.concat(exports2.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]); + exports2.STRICT_URL_CHAR = [ + "!", + '"', + "$", + "%", + "&", + "'", + "(", + ")", + "*", + "+", + ",", + "-", + ".", + "/", + ":", + ";", + "<", + "=", + ">", + "@", + "[", + "\\", + "]", + "^", + "_", + "`", + "{", + "|", + "}", + "~" + ].concat(exports2.ALPHANUM); + exports2.URL_CHAR = exports2.STRICT_URL_CHAR.concat([" ", "\f"]); + for (let i = 128; i <= 255; i++) { + exports2.URL_CHAR.push(i); + } + exports2.HEX = exports2.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); + exports2.STRICT_TOKEN = [ + "!", + "#", + "$", + "%", + "&", + "'", + "*", + "+", + "-", + ".", + "^", + "_", + "`", + "|", + "~" + ].concat(exports2.ALPHANUM); + exports2.TOKEN = exports2.STRICT_TOKEN.concat([" "]); + exports2.HEADER_CHARS = [" "]; + for (let i = 32; i <= 255; i++) { + if (i !== 127) { + exports2.HEADER_CHARS.push(i); + } + } + exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS.filter((c) => c !== 44); + exports2.MAJOR = exports2.NUM_MAP; + exports2.MINOR = exports2.MAJOR; + var HEADER_STATE; + (function(HEADER_STATE2) { + HEADER_STATE2[HEADER_STATE2["GENERAL"] = 0] = "GENERAL"; + HEADER_STATE2[HEADER_STATE2["CONNECTION"] = 1] = "CONNECTION"; + HEADER_STATE2[HEADER_STATE2["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; + HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; + HEADER_STATE2[HEADER_STATE2["UPGRADE"] = 4] = "UPGRADE"; + HEADER_STATE2[HEADER_STATE2["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; + HEADER_STATE2[HEADER_STATE2["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; + HEADER_STATE2[HEADER_STATE2["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; + HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; + })(HEADER_STATE = exports2.HEADER_STATE || (exports2.HEADER_STATE = {})); + exports2.SPECIAL_HEADERS = { + "connection": HEADER_STATE.CONNECTION, + "content-length": HEADER_STATE.CONTENT_LENGTH, + "proxy-connection": HEADER_STATE.CONNECTION, + "transfer-encoding": HEADER_STATE.TRANSFER_ENCODING, + "upgrade": HEADER_STATE.UPGRADE + }; + } +}); + +// node_modules/undici/lib/handler/RedirectHandler.js +var require_RedirectHandler = __commonJS({ + "node_modules/undici/lib/handler/RedirectHandler.js"(exports2, module2) { + "use strict"; + var util = require_util(); + var { kBodyUsed } = require_symbols(); + var assert2 = require("assert"); + var { InvalidArgumentError } = require_errors(); + var EE = require("events"); + var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; + var kBody = Symbol("body"); + var BodyAsyncIterable = class { + constructor(body) { + this[kBody] = body; + this[kBodyUsed] = false; + } + async *[Symbol.asyncIterator]() { + assert2(!this[kBodyUsed], "disturbed"); + this[kBodyUsed] = true; + yield* this[kBody]; + } + }; + var RedirectHandler = class { + constructor(dispatch, maxRedirections, opts, handler) { + if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { + throw new InvalidArgumentError("maxRedirections must be a positive number"); + } + util.validateHandler(handler, opts.method, opts.upgrade); + this.dispatch = dispatch; + this.location = null; + this.abort = null; + this.opts = { ...opts, maxRedirections: 0 }; + this.maxRedirections = maxRedirections; + this.handler = handler; + this.history = []; + if (util.isStream(this.opts.body)) { + if (util.bodyLength(this.opts.body) === 0) { + this.opts.body.on("data", function() { + assert2(false); + }); + } + if (typeof this.opts.body.readableDidRead !== "boolean") { + this.opts.body[kBodyUsed] = false; + EE.prototype.on.call(this.opts.body, "data", function() { + this[kBodyUsed] = true; + }); + } + } else if (this.opts.body && typeof this.opts.body.pipeTo === "function") { + this.opts.body = new BodyAsyncIterable(this.opts.body); + } else if (this.opts.body && typeof this.opts.body !== "string" && !ArrayBuffer.isView(this.opts.body) && util.isIterable(this.opts.body)) { + this.opts.body = new BodyAsyncIterable(this.opts.body); + } + } + onConnect(abort) { + this.abort = abort; + this.handler.onConnect(abort, { history: this.history }); + } + onUpgrade(statusCode, headers, socket) { + this.handler.onUpgrade(statusCode, headers, socket); + } + onError(error) { + this.handler.onError(error); + } + onHeaders(statusCode, headers, resume, statusText) { + this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); + if (this.opts.origin) { + this.history.push(new URL(this.opts.path, this.opts.origin)); + } + if (!this.location) { + return this.handler.onHeaders(statusCode, headers, resume, statusText); + } + const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); + const path = search ? `${pathname}${search}` : pathname; + this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin); + this.opts.path = path; + this.opts.origin = origin; + this.opts.maxRedirections = 0; + this.opts.query = null; + if (statusCode === 303 && this.opts.method !== "HEAD") { + this.opts.method = "GET"; + this.opts.body = null; + } + } + onData(chunk) { + if (this.location) { + } else { + return this.handler.onData(chunk); + } + } + onComplete(trailers) { + if (this.location) { + this.location = null; + this.abort = null; + this.dispatch(this.opts, this); + } else { + this.handler.onComplete(trailers); + } + } + onBodySent(chunk) { + if (this.handler.onBodySent) { + this.handler.onBodySent(chunk); + } + } + }; + function parseLocation(statusCode, headers) { + if (redirectableStatusCodes.indexOf(statusCode) === -1) { + return null; + } + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toString().toLowerCase() === "location") { + return headers[i + 1]; + } + } + } + function shouldRemoveHeader(header, removeContent, unknownOrigin) { + if (header.length === 4) { + return util.headerNameToString(header) === "host"; + } + if (removeContent && util.headerNameToString(header).startsWith("content-")) { + return true; + } + if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { + const name = util.headerNameToString(header); + return name === "authorization" || name === "cookie" || name === "proxy-authorization"; + } + return false; + } + function cleanRequestHeaders(headers, removeContent, unknownOrigin) { + const ret = []; + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { + ret.push(headers[i], headers[i + 1]); + } + } + } else if (headers && typeof headers === "object") { + for (const key of Object.keys(headers)) { + if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { + ret.push(key, headers[key]); + } + } + } else { + assert2(headers == null, "headers must be an object or an array"); + } + return ret; + } + module2.exports = RedirectHandler; + } +}); + +// node_modules/undici/lib/interceptor/redirectInterceptor.js +var require_redirectInterceptor = __commonJS({ + "node_modules/undici/lib/interceptor/redirectInterceptor.js"(exports2, module2) { + "use strict"; + var RedirectHandler = require_RedirectHandler(); + function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { + return (dispatch) => { + return function Intercept(opts, handler) { + const { maxRedirections = defaultMaxRedirections } = opts; + if (!maxRedirections) { + return dispatch(opts, handler); + } + const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); + opts = { ...opts, maxRedirections: 0 }; + return dispatch(opts, redirectHandler); + }; + }; + } + module2.exports = createRedirectInterceptor; + } +}); + +// node_modules/undici/lib/llhttp/llhttp-wasm.js +var require_llhttp_wasm = __commonJS({ + "node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports2, module2) { + module2.exports = "AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwHLAcoBuAHJAbkByAG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAQDcAQtBACEQDMYBC0EOIRAMxQELQQ0hEAzEAQtBDyEQDMMBC0EQIRAMwgELQRMhEAzBAQtBFCEQDMABC0EVIRAMvwELQRYhEAy+AQtBFyEQDL0BC0EYIRAMvAELQRkhEAy7AQtBGiEQDLoBC0EbIRAMuQELQRwhEAy4AQtBCCEQDLcBC0EdIRAMtgELQSAhEAy1AQtBHyEQDLQBC0EHIRAMswELQSEhEAyyAQtBIiEQDLEBC0EeIRAMsAELQSMhEAyvAQtBEiEQDK4BC0ERIRAMrQELQSQhEAysAQtBJSEQDKsBC0EmIRAMqgELQSchEAypAQtBwwEhEAyoAQtBKSEQDKcBC0ErIRAMpgELQSwhEAylAQtBLSEQDKQBC0EuIRAMowELQS8hEAyiAQtBxAEhEAyhAQtBMCEQDKABC0E0IRAMnwELQQwhEAyeAQtBMSEQDJ0BC0EyIRAMnAELQTMhEAybAQtBOSEQDJoBC0E1IRAMmQELQcUBIRAMmAELQQshEAyXAQtBOiEQDJYBC0E2IRAMlQELQQohEAyUAQtBNyEQDJMBC0E4IRAMkgELQTwhEAyRAQtBOyEQDJABC0E9IRAMjwELQQkhEAyOAQtBKCEQDI0BC0E+IRAMjAELQT8hEAyLAQtBwAAhEAyKAQtBwQAhEAyJAQtBwgAhEAyIAQtBwwAhEAyHAQtBxAAhEAyGAQtBxQAhEAyFAQtBxgAhEAyEAQtBKiEQDIMBC0HHACEQDIIBC0HIACEQDIEBC0HJACEQDIABC0HKACEQDH8LQcsAIRAMfgtBzQAhEAx9C0HMACEQDHwLQc4AIRAMewtBzwAhEAx6C0HQACEQDHkLQdEAIRAMeAtB0gAhEAx3C0HTACEQDHYLQdQAIRAMdQtB1gAhEAx0C0HVACEQDHMLQQYhEAxyC0HXACEQDHELQQUhEAxwC0HYACEQDG8LQQQhEAxuC0HZACEQDG0LQdoAIRAMbAtB2wAhEAxrC0HcACEQDGoLQQMhEAxpC0HdACEQDGgLQd4AIRAMZwtB3wAhEAxmC0HhACEQDGULQeAAIRAMZAtB4gAhEAxjC0HjACEQDGILQQIhEAxhC0HkACEQDGALQeUAIRAMXwtB5gAhEAxeC0HnACEQDF0LQegAIRAMXAtB6QAhEAxbC0HqACEQDFoLQesAIRAMWQtB7AAhEAxYC0HtACEQDFcLQe4AIRAMVgtB7wAhEAxVC0HwACEQDFQLQfEAIRAMUwtB8gAhEAxSC0HzACEQDFELQfQAIRAMUAtB9QAhEAxPC0H2ACEQDE4LQfcAIRAMTQtB+AAhEAxMC0H5ACEQDEsLQfoAIRAMSgtB+wAhEAxJC0H8ACEQDEgLQf0AIRAMRwtB/gAhEAxGC0H/ACEQDEULQYABIRAMRAtBgQEhEAxDC0GCASEQDEILQYMBIRAMQQtBhAEhEAxAC0GFASEQDD8LQYYBIRAMPgtBhwEhEAw9C0GIASEQDDwLQYkBIRAMOwtBigEhEAw6C0GLASEQDDkLQYwBIRAMOAtBjQEhEAw3C0GOASEQDDYLQY8BIRAMNQtBkAEhEAw0C0GRASEQDDMLQZIBIRAMMgtBkwEhEAwxC0GUASEQDDALQZUBIRAMLwtBlgEhEAwuC0GXASEQDC0LQZgBIRAMLAtBmQEhEAwrC0GaASEQDCoLQZsBIRAMKQtBnAEhEAwoC0GdASEQDCcLQZ4BIRAMJgtBnwEhEAwlC0GgASEQDCQLQaEBIRAMIwtBogEhEAwiC0GjASEQDCELQaQBIRAMIAtBpQEhEAwfC0GmASEQDB4LQacBIRAMHQtBqAEhEAwcC0GpASEQDBsLQaoBIRAMGgtBqwEhEAwZC0GsASEQDBgLQa0BIRAMFwtBrgEhEAwWC0EBIRAMFQtBrwEhEAwUC0GwASEQDBMLQbEBIRAMEgtBswEhEAwRC0GyASEQDBALQbQBIRAMDwtBtQEhEAwOC0G2ASEQDA0LQbcBIRAMDAtBuAEhEAwLC0G5ASEQDAoLQboBIRAMCQtBuwEhEAwIC0HGASEQDAcLQbwBIRAMBgtBvQEhEAwFC0G+ASEQDAQLQb8BIRAMAwtBwAEhEAwCC0HCASEQDAELQcEBIRALA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="; + } +}); + +// node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +var require_llhttp_simd_wasm = __commonJS({ + "node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports2, module2) { + module2.exports = "AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="; + } +}); + +// node_modules/undici/lib/client.js +var require_client = __commonJS({ + "node_modules/undici/lib/client.js"(exports2, module2) { + "use strict"; + var assert2 = require("assert"); + var net = require("net"); + var http = require("http"); + var { pipeline } = require("stream"); + var util = require_util(); + var timers = require_timers(); + var Request = require_request(); + var DispatcherBase = require_dispatcher_base(); + var { + RequestContentLengthMismatchError, + ResponseContentLengthMismatchError, + InvalidArgumentError, + RequestAbortedError, + HeadersTimeoutError, + HeadersOverflowError, + SocketError, + InformationalError, + BodyTimeoutError, + HTTPParserError, + ResponseExceededMaxSizeError, + ClientDestroyedError + } = require_errors(); + var buildConnector = require_connect(); + var { + kUrl, + kReset, + kServerName, + kClient, + kBusy, + kParser, + kConnect, + kBlocking, + kResuming, + kRunning, + kPending, + kSize, + kWriting, + kQueue, + kConnected, + kConnecting, + kNeedDrain, + kNoRef, + kKeepAliveDefaultTimeout, + kHostHeader, + kPendingIdx, + kRunningIdx, + kError, + kPipelining, + kSocket, + kKeepAliveTimeoutValue, + kMaxHeadersSize, + kKeepAliveMaxTimeout, + kKeepAliveTimeoutThreshold, + kHeadersTimeout, + kBodyTimeout, + kStrictContentLength, + kConnector, + kMaxRedirections, + kMaxRequests, + kCounter, + kClose, + kDestroy, + kDispatch, + kInterceptors, + kLocalAddress, + kMaxResponseSize, + kHTTPConnVersion, + // HTTP2 + kHost, + kHTTP2Session, + kHTTP2SessionState, + kHTTP2BuildRequest, + kHTTP2CopyHeaders, + kHTTP1BuildRequest + } = require_symbols(); + var http2; + try { + http2 = require("http2"); + } catch { + http2 = { constants: {} }; + } + var { + constants: { + HTTP2_HEADER_AUTHORITY, + HTTP2_HEADER_METHOD, + HTTP2_HEADER_PATH, + HTTP2_HEADER_SCHEME, + HTTP2_HEADER_CONTENT_LENGTH, + HTTP2_HEADER_EXPECT, + HTTP2_HEADER_STATUS + } + } = http2; + var h2ExperimentalWarned = false; + var FastBuffer = Buffer[Symbol.species]; + var kClosedResolve = Symbol("kClosedResolve"); + var channels = {}; + try { + const diagnosticsChannel = require("diagnostics_channel"); + channels.sendHeaders = diagnosticsChannel.channel("undici:client:sendHeaders"); + channels.beforeConnect = diagnosticsChannel.channel("undici:client:beforeConnect"); + channels.connectError = diagnosticsChannel.channel("undici:client:connectError"); + channels.connected = diagnosticsChannel.channel("undici:client:connected"); + } catch { + channels.sendHeaders = { hasSubscribers: false }; + channels.beforeConnect = { hasSubscribers: false }; + channels.connectError = { hasSubscribers: false }; + channels.connected = { hasSubscribers: false }; + } + var Client = class extends DispatcherBase { + /** + * + * @param {string|URL} url + * @param {import('../types/client').Client.Options} options + */ + constructor(url, { + interceptors, + maxHeaderSize, + headersTimeout, + socketTimeout, + requestTimeout, + connectTimeout, + bodyTimeout, + idleTimeout, + keepAlive, + keepAliveTimeout, + maxKeepAliveTimeout, + keepAliveMaxTimeout, + keepAliveTimeoutThreshold, + socketPath, + pipelining, + tls, + strictContentLength, + maxCachedSessions, + maxRedirections, + connect: connect2, + maxRequestsPerClient, + localAddress, + maxResponseSize, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + // h2 + allowH2, + maxConcurrentStreams + } = {}) { + super(); + if (keepAlive !== void 0) { + throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead"); + } + if (socketTimeout !== void 0) { + throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead"); + } + if (requestTimeout !== void 0) { + throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead"); + } + if (idleTimeout !== void 0) { + throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead"); + } + if (maxKeepAliveTimeout !== void 0) { + throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead"); + } + if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { + throw new InvalidArgumentError("invalid maxHeaderSize"); + } + if (socketPath != null && typeof socketPath !== "string") { + throw new InvalidArgumentError("invalid socketPath"); + } + if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { + throw new InvalidArgumentError("invalid connectTimeout"); + } + if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { + throw new InvalidArgumentError("invalid keepAliveTimeout"); + } + if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { + throw new InvalidArgumentError("invalid keepAliveMaxTimeout"); + } + if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { + throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold"); + } + if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { + throw new InvalidArgumentError("headersTimeout must be a positive integer or zero"); + } + if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { + throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero"); + } + if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") { + throw new InvalidArgumentError("connect must be a function or an object"); + } + if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { + throw new InvalidArgumentError("maxRedirections must be a positive number"); + } + if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { + throw new InvalidArgumentError("maxRequestsPerClient must be a positive number"); + } + if (localAddress != null && (typeof localAddress !== "string" || net.isIP(localAddress) === 0)) { + throw new InvalidArgumentError("localAddress must be valid string IP address"); + } + if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { + throw new InvalidArgumentError("maxResponseSize must be a positive number"); + } + if (autoSelectFamilyAttemptTimeout != null && (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)) { + throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout must be a positive number"); + } + if (allowH2 != null && typeof allowH2 !== "boolean") { + throw new InvalidArgumentError("allowH2 must be a valid boolean value"); + } + if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== "number" || maxConcurrentStreams < 1)) { + throw new InvalidArgumentError("maxConcurrentStreams must be a possitive integer, greater than 0"); + } + if (typeof connect2 !== "function") { + connect2 = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, + ...connect2 + }); + } + this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) ? interceptors.Client : [createRedirectInterceptor({ maxRedirections })]; + this[kUrl] = util.parseOrigin(url); + this[kConnector] = connect2; + this[kSocket] = null; + this[kPipelining] = pipelining != null ? pipelining : 1; + this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize; + this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout; + this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 6e5 : keepAliveMaxTimeout; + this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold; + this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]; + this[kServerName] = null; + this[kLocalAddress] = localAddress != null ? localAddress : null; + this[kResuming] = 0; + this[kNeedDrain] = 0; + this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r +`; + this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 3e5; + this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 3e5; + this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength; + this[kMaxRedirections] = maxRedirections; + this[kMaxRequests] = maxRequestsPerClient; + this[kClosedResolve] = null; + this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1; + this[kHTTPConnVersion] = "h1"; + this[kHTTP2Session] = null; + this[kHTTP2SessionState] = !allowH2 ? null : { + // streams: null, // Fixed queue of streams - For future support of `push` + openStreams: 0, + // Keep track of them to decide wether or not unref the session + maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 + // Max peerConcurrentStreams for a Node h2 server + }; + this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}`; + this[kQueue] = []; + this[kRunningIdx] = 0; + this[kPendingIdx] = 0; + } + get pipelining() { + return this[kPipelining]; + } + set pipelining(value) { + this[kPipelining] = value; + resume(this, true); + } + get [kPending]() { + return this[kQueue].length - this[kPendingIdx]; + } + get [kRunning]() { + return this[kPendingIdx] - this[kRunningIdx]; + } + get [kSize]() { + return this[kQueue].length - this[kRunningIdx]; + } + get [kConnected]() { + return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed; + } + get [kBusy]() { + const socket = this[kSocket]; + return socket && (socket[kReset] || socket[kWriting] || socket[kBlocking]) || this[kSize] >= (this[kPipelining] || 1) || this[kPending] > 0; + } + /* istanbul ignore: only used for test */ + [kConnect](cb) { + connect(this); + this.once("connect", cb); + } + [kDispatch](opts, handler) { + const origin = opts.origin || this[kUrl].origin; + const request = this[kHTTPConnVersion] === "h2" ? Request[kHTTP2BuildRequest](origin, opts, handler) : Request[kHTTP1BuildRequest](origin, opts, handler); + this[kQueue].push(request); + if (this[kResuming]) { + } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { + this[kResuming] = 1; + process.nextTick(resume, this); + } else { + resume(this, true); + } + if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { + this[kNeedDrain] = 2; + } + return this[kNeedDrain] < 2; + } + async [kClose]() { + return new Promise((resolve) => { + if (!this[kSize]) { + resolve(null); + } else { + this[kClosedResolve] = resolve; + } + }); + } + async [kDestroy](err) { + return new Promise((resolve) => { + const requests = this[kQueue].splice(this[kPendingIdx]); + for (let i = 0; i < requests.length; i++) { + const request = requests[i]; + errorRequest(this, request, err); + } + const callback = () => { + if (this[kClosedResolve]) { + this[kClosedResolve](); + this[kClosedResolve] = null; + } + resolve(); + }; + if (this[kHTTP2Session] != null) { + util.destroy(this[kHTTP2Session], err); + this[kHTTP2Session] = null; + this[kHTTP2SessionState] = null; + } + if (!this[kSocket]) { + queueMicrotask(callback); + } else { + util.destroy(this[kSocket].on("close", callback), err); + } + resume(this); + }); + } + }; + function onHttp2SessionError(err) { + assert2(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); + this[kSocket][kError] = err; + onError(this[kClient], err); + } + function onHttp2FrameError(type, code, id) { + const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); + if (id === 0) { + this[kSocket][kError] = err; + onError(this[kClient], err); + } + } + function onHttp2SessionEnd() { + util.destroy(this, new SocketError("other side closed")); + util.destroy(this[kSocket], new SocketError("other side closed")); + } + function onHTTP2GoAway(code) { + const client = this[kClient]; + const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`); + client[kSocket] = null; + client[kHTTP2Session] = null; + if (client.destroyed) { + assert2(this[kPending] === 0); + const requests = client[kQueue].splice(client[kRunningIdx]); + for (let i = 0; i < requests.length; i++) { + const request = requests[i]; + errorRequest(this, request, err); + } + } else if (client[kRunning] > 0) { + const request = client[kQueue][client[kRunningIdx]]; + client[kQueue][client[kRunningIdx]++] = null; + errorRequest(client, request, err); + } + client[kPendingIdx] = client[kRunningIdx]; + assert2(client[kRunning] === 0); + client.emit( + "disconnect", + client[kUrl], + [client], + err + ); + resume(client); + } + var constants = require_constants3(); + var createRedirectInterceptor = require_redirectInterceptor(); + var EMPTY_BUF = Buffer.alloc(0); + async function lazyllhttp() { + const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0; + let mod; + try { + mod = await WebAssembly.compile(Buffer.from(require_llhttp_simd_wasm(), "base64")); + } catch (e) { + mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require_llhttp_wasm(), "base64")); + } + return await WebAssembly.instantiate(mod, { + env: { + /* eslint-disable camelcase */ + wasm_on_url: (p, at, len) => { + return 0; + }, + wasm_on_status: (p, at, len) => { + assert2.strictEqual(currentParser.ptr, p); + const start = at - currentBufferPtr + currentBufferRef.byteOffset; + return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; + }, + wasm_on_message_begin: (p) => { + assert2.strictEqual(currentParser.ptr, p); + return currentParser.onMessageBegin() || 0; + }, + wasm_on_header_field: (p, at, len) => { + assert2.strictEqual(currentParser.ptr, p); + const start = at - currentBufferPtr + currentBufferRef.byteOffset; + return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; + }, + wasm_on_header_value: (p, at, len) => { + assert2.strictEqual(currentParser.ptr, p); + const start = at - currentBufferPtr + currentBufferRef.byteOffset; + return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; + }, + wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { + assert2.strictEqual(currentParser.ptr, p); + return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; + }, + wasm_on_body: (p, at, len) => { + assert2.strictEqual(currentParser.ptr, p); + const start = at - currentBufferPtr + currentBufferRef.byteOffset; + return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; + }, + wasm_on_message_complete: (p) => { + assert2.strictEqual(currentParser.ptr, p); + return currentParser.onMessageComplete() || 0; + } + /* eslint-enable camelcase */ + } + }); + } + var llhttpInstance = null; + var llhttpPromise = lazyllhttp(); + llhttpPromise.catch(); + var currentParser = null; + var currentBufferRef = null; + var currentBufferSize = 0; + var currentBufferPtr = null; + var TIMEOUT_HEADERS = 1; + var TIMEOUT_BODY = 2; + var TIMEOUT_IDLE = 3; + var Parser = class { + constructor(client, socket, { exports: exports3 }) { + assert2(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); + this.llhttp = exports3; + this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE); + this.client = client; + this.socket = socket; + this.timeout = null; + this.timeoutValue = null; + this.timeoutType = null; + this.statusCode = null; + this.statusText = ""; + this.upgrade = false; + this.headers = []; + this.headersSize = 0; + this.headersMaxSize = client[kMaxHeadersSize]; + this.shouldKeepAlive = false; + this.paused = false; + this.resume = this.resume.bind(this); + this.bytesRead = 0; + this.keepAlive = ""; + this.contentLength = ""; + this.connection = ""; + this.maxResponseSize = client[kMaxResponseSize]; + } + setTimeout(value, type) { + this.timeoutType = type; + if (value !== this.timeoutValue) { + timers.clearTimeout(this.timeout); + if (value) { + this.timeout = timers.setTimeout(onParserTimeout, value, this); + if (this.timeout.unref) { + this.timeout.unref(); + } + } else { + this.timeout = null; + } + this.timeoutValue = value; + } else if (this.timeout) { + if (this.timeout.refresh) { + this.timeout.refresh(); + } + } + } + resume() { + if (this.socket.destroyed || !this.paused) { + return; + } + assert2(this.ptr != null); + assert2(currentParser == null); + this.llhttp.llhttp_resume(this.ptr); + assert2(this.timeoutType === TIMEOUT_BODY); + if (this.timeout) { + if (this.timeout.refresh) { + this.timeout.refresh(); + } + } + this.paused = false; + this.execute(this.socket.read() || EMPTY_BUF); + this.readMore(); + } + readMore() { + while (!this.paused && this.ptr) { + const chunk = this.socket.read(); + if (chunk === null) { + break; + } + this.execute(chunk); + } + } + execute(data) { + assert2(this.ptr != null); + assert2(currentParser == null); + assert2(!this.paused); + const { socket, llhttp } = this; + if (data.length > currentBufferSize) { + if (currentBufferPtr) { + llhttp.free(currentBufferPtr); + } + currentBufferSize = Math.ceil(data.length / 4096) * 4096; + currentBufferPtr = llhttp.malloc(currentBufferSize); + } + new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data); + try { + let ret; + try { + currentBufferRef = data; + currentParser = this; + ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length); + } catch (err) { + throw err; + } finally { + currentParser = null; + currentBufferRef = null; + } + const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; + if (ret === constants.ERROR.PAUSED_UPGRADE) { + this.onUpgrade(data.slice(offset)); + } else if (ret === constants.ERROR.PAUSED) { + this.paused = true; + socket.unshift(data.slice(offset)); + } else if (ret !== constants.ERROR.OK) { + const ptr = llhttp.llhttp_get_error_reason(this.ptr); + let message = ""; + if (ptr) { + const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); + message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")"; + } + throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)); + } + } catch (err) { + util.destroy(socket, err); + } + } + destroy() { + assert2(this.ptr != null); + assert2(currentParser == null); + this.llhttp.llhttp_free(this.ptr); + this.ptr = null; + timers.clearTimeout(this.timeout); + this.timeout = null; + this.timeoutValue = null; + this.timeoutType = null; + this.paused = false; + } + onStatus(buf) { + this.statusText = buf.toString(); + } + onMessageBegin() { + const { socket, client } = this; + if (socket.destroyed) { + return -1; + } + const request = client[kQueue][client[kRunningIdx]]; + if (!request) { + return -1; + } + } + onHeaderField(buf) { + const len = this.headers.length; + if ((len & 1) === 0) { + this.headers.push(buf); + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); + } + this.trackHeader(buf.length); + } + onHeaderValue(buf) { + let len = this.headers.length; + if ((len & 1) === 1) { + this.headers.push(buf); + len += 1; + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); + } + const key = this.headers[len - 2]; + if (key.length === 10 && key.toString().toLowerCase() === "keep-alive") { + this.keepAlive += buf.toString(); + } else if (key.length === 10 && key.toString().toLowerCase() === "connection") { + this.connection += buf.toString(); + } else if (key.length === 14 && key.toString().toLowerCase() === "content-length") { + this.contentLength += buf.toString(); + } + this.trackHeader(buf.length); + } + trackHeader(len) { + this.headersSize += len; + if (this.headersSize >= this.headersMaxSize) { + util.destroy(this.socket, new HeadersOverflowError()); + } + } + onUpgrade(head) { + const { upgrade, client, socket, headers, statusCode } = this; + assert2(upgrade); + const request = client[kQueue][client[kRunningIdx]]; + assert2(request); + assert2(!socket.destroyed); + assert2(socket === client[kSocket]); + assert2(!this.paused); + assert2(request.upgrade || request.method === "CONNECT"); + this.statusCode = null; + this.statusText = ""; + this.shouldKeepAlive = null; + assert2(this.headers.length % 2 === 0); + this.headers = []; + this.headersSize = 0; + socket.unshift(head); + socket[kParser].destroy(); + socket[kParser] = null; + socket[kClient] = null; + socket[kError] = null; + socket.removeListener("error", onSocketError).removeListener("readable", onSocketReadable).removeListener("end", onSocketEnd).removeListener("close", onSocketClose); + client[kSocket] = null; + client[kQueue][client[kRunningIdx]++] = null; + client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade")); + try { + request.onUpgrade(statusCode, headers, socket); + } catch (err) { + util.destroy(socket, err); + } + resume(client); + } + onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { + const { client, socket, headers, statusText } = this; + if (socket.destroyed) { + return -1; + } + const request = client[kQueue][client[kRunningIdx]]; + if (!request) { + return -1; + } + assert2(!this.upgrade); + assert2(this.statusCode < 200); + if (statusCode === 100) { + util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket))); + return -1; + } + if (upgrade && !request.upgrade) { + util.destroy(socket, new SocketError("bad upgrade", util.getSocketInfo(socket))); + return -1; + } + assert2.strictEqual(this.timeoutType, TIMEOUT_HEADERS); + this.statusCode = statusCode; + this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. + request.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive"; + if (this.statusCode >= 200) { + const bodyTimeout = request.bodyTimeout != null ? request.bodyTimeout : client[kBodyTimeout]; + this.setTimeout(bodyTimeout, TIMEOUT_BODY); + } else if (this.timeout) { + if (this.timeout.refresh) { + this.timeout.refresh(); + } + } + if (request.method === "CONNECT") { + assert2(client[kRunning] === 1); + this.upgrade = true; + return 2; + } + if (upgrade) { + assert2(client[kRunning] === 1); + this.upgrade = true; + return 2; + } + assert2(this.headers.length % 2 === 0); + this.headers = []; + this.headersSize = 0; + if (this.shouldKeepAlive && client[kPipelining]) { + const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null; + if (keepAliveTimeout != null) { + const timeout = Math.min( + keepAliveTimeout - client[kKeepAliveTimeoutThreshold], + client[kKeepAliveMaxTimeout] + ); + if (timeout <= 0) { + socket[kReset] = true; + } else { + client[kKeepAliveTimeoutValue] = timeout; + } + } else { + client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; + } + } else { + socket[kReset] = true; + } + const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false; + if (request.aborted) { + return -1; + } + if (request.method === "HEAD") { + return 1; + } + if (statusCode < 200) { + return 1; + } + if (socket[kBlocking]) { + socket[kBlocking] = false; + resume(client); + } + return pause ? constants.ERROR.PAUSED : 0; + } + onBody(buf) { + const { client, socket, statusCode, maxResponseSize } = this; + if (socket.destroyed) { + return -1; + } + const request = client[kQueue][client[kRunningIdx]]; + assert2(request); + assert2.strictEqual(this.timeoutType, TIMEOUT_BODY); + if (this.timeout) { + if (this.timeout.refresh) { + this.timeout.refresh(); + } + } + assert2(statusCode >= 200); + if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { + util.destroy(socket, new ResponseExceededMaxSizeError()); + return -1; + } + this.bytesRead += buf.length; + if (request.onData(buf) === false) { + return constants.ERROR.PAUSED; + } + } + onMessageComplete() { + const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; + if (socket.destroyed && (!statusCode || shouldKeepAlive)) { + return -1; + } + if (upgrade) { + return; + } + const request = client[kQueue][client[kRunningIdx]]; + assert2(request); + assert2(statusCode >= 100); + this.statusCode = null; + this.statusText = ""; + this.bytesRead = 0; + this.contentLength = ""; + this.keepAlive = ""; + this.connection = ""; + assert2(this.headers.length % 2 === 0); + this.headers = []; + this.headersSize = 0; + if (statusCode < 200) { + return; + } + if (request.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) { + util.destroy(socket, new ResponseContentLengthMismatchError()); + return -1; + } + request.onComplete(headers); + client[kQueue][client[kRunningIdx]++] = null; + if (socket[kWriting]) { + assert2.strictEqual(client[kRunning], 0); + util.destroy(socket, new InformationalError("reset")); + return constants.ERROR.PAUSED; + } else if (!shouldKeepAlive) { + util.destroy(socket, new InformationalError("reset")); + return constants.ERROR.PAUSED; + } else if (socket[kReset] && client[kRunning] === 0) { + util.destroy(socket, new InformationalError("reset")); + return constants.ERROR.PAUSED; + } else if (client[kPipelining] === 1) { + setImmediate(resume, client); + } else { + resume(client); + } + } + }; + function onParserTimeout(parser) { + const { socket, timeoutType, client } = parser; + if (timeoutType === TIMEOUT_HEADERS) { + if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { + assert2(!parser.paused, "cannot be paused while waiting for headers"); + util.destroy(socket, new HeadersTimeoutError()); + } + } else if (timeoutType === TIMEOUT_BODY) { + if (!parser.paused) { + util.destroy(socket, new BodyTimeoutError()); + } + } else if (timeoutType === TIMEOUT_IDLE) { + assert2(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); + util.destroy(socket, new InformationalError("socket idle timeout")); + } + } + function onSocketReadable() { + const { [kParser]: parser } = this; + if (parser) { + parser.readMore(); + } + } + function onSocketError(err) { + const { [kClient]: client, [kParser]: parser } = this; + assert2(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); + if (client[kHTTPConnVersion] !== "h2") { + if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) { + parser.onMessageComplete(); + return; + } + } + this[kError] = err; + onError(this[kClient], err); + } + function onError(client, err) { + if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { + assert2(client[kPendingIdx] === client[kRunningIdx]); + const requests = client[kQueue].splice(client[kRunningIdx]); + for (let i = 0; i < requests.length; i++) { + const request = requests[i]; + errorRequest(client, request, err); + } + assert2(client[kSize] === 0); + } + } + function onSocketEnd() { + const { [kParser]: parser, [kClient]: client } = this; + if (client[kHTTPConnVersion] !== "h2") { + if (parser.statusCode && !parser.shouldKeepAlive) { + parser.onMessageComplete(); + return; + } + } + util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this))); + } + function onSocketClose() { + const { [kClient]: client, [kParser]: parser } = this; + if (client[kHTTPConnVersion] === "h1" && parser) { + if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { + parser.onMessageComplete(); + } + this[kParser].destroy(); + this[kParser] = null; + } + const err = this[kError] || new SocketError("closed", util.getSocketInfo(this)); + client[kSocket] = null; + if (client.destroyed) { + assert2(client[kPending] === 0); + const requests = client[kQueue].splice(client[kRunningIdx]); + for (let i = 0; i < requests.length; i++) { + const request = requests[i]; + errorRequest(client, request, err); + } + } else if (client[kRunning] > 0 && err.code !== "UND_ERR_INFO") { + const request = client[kQueue][client[kRunningIdx]]; + client[kQueue][client[kRunningIdx]++] = null; + errorRequest(client, request, err); + } + client[kPendingIdx] = client[kRunningIdx]; + assert2(client[kRunning] === 0); + client.emit("disconnect", client[kUrl], [client], err); + resume(client); + } + async function connect(client) { + assert2(!client[kConnecting]); + assert2(!client[kSocket]); + let { host, hostname, protocol, port } = client[kUrl]; + if (hostname[0] === "[") { + const idx = hostname.indexOf("]"); + assert2(idx !== -1); + const ip = hostname.substring(1, idx); + assert2(net.isIP(ip)); + hostname = ip; + } + client[kConnecting] = true; + if (channels.beforeConnect.hasSubscribers) { + channels.beforeConnect.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector] + }); + } + try { + const socket = await new Promise((resolve, reject) => { + client[kConnector]({ + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, (err, socket2) => { + if (err) { + reject(err); + } else { + resolve(socket2); + } + }); + }); + if (client.destroyed) { + util.destroy(socket.on("error", () => { + }), new ClientDestroyedError()); + return; + } + client[kConnecting] = false; + assert2(socket); + const isH2 = socket.alpnProtocol === "h2"; + if (isH2) { + if (!h2ExperimentalWarned) { + h2ExperimentalWarned = true; + process.emitWarning("H2 support is experimental, expect them to change at any time.", { + code: "UNDICI-H2" + }); + } + const session = http2.connect(client[kUrl], { + createConnection: () => socket, + peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams + }); + client[kHTTPConnVersion] = "h2"; + session[kClient] = client; + session[kSocket] = socket; + session.on("error", onHttp2SessionError); + session.on("frameError", onHttp2FrameError); + session.on("end", onHttp2SessionEnd); + session.on("goaway", onHTTP2GoAway); + session.on("close", onSocketClose); + session.unref(); + client[kHTTP2Session] = session; + socket[kHTTP2Session] = session; + } else { + if (!llhttpInstance) { + llhttpInstance = await llhttpPromise; + llhttpPromise = null; + } + socket[kNoRef] = false; + socket[kWriting] = false; + socket[kReset] = false; + socket[kBlocking] = false; + socket[kParser] = new Parser(client, socket, llhttpInstance); + } + socket[kCounter] = 0; + socket[kMaxRequests] = client[kMaxRequests]; + socket[kClient] = client; + socket[kError] = null; + socket.on("error", onSocketError).on("readable", onSocketReadable).on("end", onSocketEnd).on("close", onSocketClose); + client[kSocket] = socket; + if (channels.connected.hasSubscribers) { + channels.connected.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + socket + }); + } + client.emit("connect", client[kUrl], [client]); + } catch (err) { + if (client.destroyed) { + return; + } + client[kConnecting] = false; + if (channels.connectError.hasSubscribers) { + channels.connectError.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + error: err + }); + } + if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { + assert2(client[kRunning] === 0); + while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { + const request = client[kQueue][client[kPendingIdx]++]; + errorRequest(client, request, err); + } + } else { + onError(client, err); + } + client.emit("connectionError", client[kUrl], [client], err); + } + resume(client); + } + function emitDrain(client) { + client[kNeedDrain] = 0; + client.emit("drain", client[kUrl], [client]); + } + function resume(client, sync) { + if (client[kResuming] === 2) { + return; + } + client[kResuming] = 2; + _resume(client, sync); + client[kResuming] = 0; + if (client[kRunningIdx] > 256) { + client[kQueue].splice(0, client[kRunningIdx]); + client[kPendingIdx] -= client[kRunningIdx]; + client[kRunningIdx] = 0; + } + } + function _resume(client, sync) { + while (true) { + if (client.destroyed) { + assert2(client[kPending] === 0); + return; + } + if (client[kClosedResolve] && !client[kSize]) { + client[kClosedResolve](); + client[kClosedResolve] = null; + return; + } + const socket = client[kSocket]; + if (socket && !socket.destroyed && socket.alpnProtocol !== "h2") { + if (client[kSize] === 0) { + if (!socket[kNoRef] && socket.unref) { + socket.unref(); + socket[kNoRef] = true; + } + } else if (socket[kNoRef] && socket.ref) { + socket.ref(); + socket[kNoRef] = false; + } + if (client[kSize] === 0) { + if (socket[kParser].timeoutType !== TIMEOUT_IDLE) { + socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE); + } + } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { + if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { + const request2 = client[kQueue][client[kRunningIdx]]; + const headersTimeout = request2.headersTimeout != null ? request2.headersTimeout : client[kHeadersTimeout]; + socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); + } + } + } + if (client[kBusy]) { + client[kNeedDrain] = 2; + } else if (client[kNeedDrain] === 2) { + if (sync) { + client[kNeedDrain] = 1; + process.nextTick(emitDrain, client); + } else { + emitDrain(client); + } + continue; + } + if (client[kPending] === 0) { + return; + } + if (client[kRunning] >= (client[kPipelining] || 1)) { + return; + } + const request = client[kQueue][client[kPendingIdx]]; + if (client[kUrl].protocol === "https:" && client[kServerName] !== request.servername) { + if (client[kRunning] > 0) { + return; + } + client[kServerName] = request.servername; + if (socket && socket.servername !== request.servername) { + util.destroy(socket, new InformationalError("servername changed")); + return; + } + } + if (client[kConnecting]) { + return; + } + if (!socket && !client[kHTTP2Session]) { + connect(client); + return; + } + if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) { + return; + } + if (client[kRunning] > 0 && !request.idempotent) { + return; + } + if (client[kRunning] > 0 && (request.upgrade || request.method === "CONNECT")) { + return; + } + if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 && (util.isStream(request.body) || util.isAsyncIterable(request.body))) { + return; + } + if (!request.aborted && write(client, request)) { + client[kPendingIdx]++; + } else { + client[kQueue].splice(client[kPendingIdx], 1); + } + } + } + function shouldSendContentLength(method2) { + return method2 !== "GET" && method2 !== "HEAD" && method2 !== "OPTIONS" && method2 !== "TRACE" && method2 !== "CONNECT"; + } + function write(client, request) { + if (client[kHTTPConnVersion] === "h2") { + writeH2(client, client[kHTTP2Session], request); + return; + } + const { body, method: method2, path, host, upgrade, headers, blocking, reset } = request; + const expectsPayload = method2 === "PUT" || method2 === "POST" || method2 === "PATCH"; + if (body && typeof body.read === "function") { + body.read(0); + } + const bodyLength = util.bodyLength(body); + let contentLength = bodyLength; + if (contentLength === null) { + contentLength = request.contentLength; + } + if (contentLength === 0 && !expectsPayload) { + contentLength = null; + } + if (shouldSendContentLength(method2) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { + if (client[kStrictContentLength]) { + errorRequest(client, request, new RequestContentLengthMismatchError()); + return false; + } + process.emitWarning(new RequestContentLengthMismatchError()); + } + const socket = client[kSocket]; + try { + request.onConnect((err) => { + if (request.aborted || request.completed) { + return; + } + errorRequest(client, request, err || new RequestAbortedError()); + util.destroy(socket, new InformationalError("aborted")); + }); + } catch (err) { + errorRequest(client, request, err); + } + if (request.aborted) { + return false; + } + if (method2 === "HEAD") { + socket[kReset] = true; + } + if (upgrade || method2 === "CONNECT") { + socket[kReset] = true; + } + if (reset != null) { + socket[kReset] = reset; + } + if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { + socket[kReset] = true; + } + if (blocking) { + socket[kBlocking] = true; + } + let header = `${method2} ${path} HTTP/1.1\r +`; + if (typeof host === "string") { + header += `host: ${host}\r +`; + } else { + header += client[kHostHeader]; + } + if (upgrade) { + header += `connection: upgrade\r +upgrade: ${upgrade}\r +`; + } else if (client[kPipelining] && !socket[kReset]) { + header += "connection: keep-alive\r\n"; + } else { + header += "connection: close\r\n"; + } + if (headers) { + header += headers; + } + if (channels.sendHeaders.hasSubscribers) { + channels.sendHeaders.publish({ request, headers: header, socket }); + } + if (!body || bodyLength === 0) { + if (contentLength === 0) { + socket.write(`${header}content-length: 0\r +\r +`, "latin1"); + } else { + assert2(contentLength === null, "no body must not have content length"); + socket.write(`${header}\r +`, "latin1"); + } + request.onRequestSent(); + } else if (util.isBuffer(body)) { + assert2(contentLength === body.byteLength, "buffer body must have content length"); + socket.cork(); + socket.write(`${header}content-length: ${contentLength}\r +\r +`, "latin1"); + socket.write(body); + socket.uncork(); + request.onBodySent(body); + request.onRequestSent(); + if (!expectsPayload) { + socket[kReset] = true; + } + } else if (util.isBlobLike(body)) { + if (typeof body.stream === "function") { + writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload }); + } else { + writeBlob({ body, client, request, socket, contentLength, header, expectsPayload }); + } + } else if (util.isStream(body)) { + writeStream({ body, client, request, socket, contentLength, header, expectsPayload }); + } else if (util.isIterable(body)) { + writeIterable({ body, client, request, socket, contentLength, header, expectsPayload }); + } else { + assert2(false); + } + return true; + } + function writeH2(client, session, request) { + const { body, method: method2, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request; + let headers; + if (typeof reqHeaders === "string") headers = Request[kHTTP2CopyHeaders](reqHeaders.trim()); + else headers = reqHeaders; + if (upgrade) { + errorRequest(client, request, new Error("Upgrade not supported for H2")); + return false; + } + try { + request.onConnect((err) => { + if (request.aborted || request.completed) { + return; + } + errorRequest(client, request, err || new RequestAbortedError()); + }); + } catch (err) { + errorRequest(client, request, err); + } + if (request.aborted) { + return false; + } + let stream; + const h2State = client[kHTTP2SessionState]; + headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]; + headers[HTTP2_HEADER_METHOD] = method2; + if (method2 === "CONNECT") { + session.ref(); + stream = session.request(headers, { endStream: false, signal }); + if (stream.id && !stream.pending) { + request.onUpgrade(null, null, stream); + ++h2State.openStreams; + } else { + stream.once("ready", () => { + request.onUpgrade(null, null, stream); + ++h2State.openStreams; + }); + } + stream.once("close", () => { + h2State.openStreams -= 1; + if (h2State.openStreams === 0) session.unref(); + }); + return true; + } + headers[HTTP2_HEADER_PATH] = path; + headers[HTTP2_HEADER_SCHEME] = "https"; + const expectsPayload = method2 === "PUT" || method2 === "POST" || method2 === "PATCH"; + if (body && typeof body.read === "function") { + body.read(0); + } + let contentLength = util.bodyLength(body); + if (contentLength == null) { + contentLength = request.contentLength; + } + if (contentLength === 0 || !expectsPayload) { + contentLength = null; + } + if (shouldSendContentLength(method2) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { + if (client[kStrictContentLength]) { + errorRequest(client, request, new RequestContentLengthMismatchError()); + return false; + } + process.emitWarning(new RequestContentLengthMismatchError()); + } + if (contentLength != null) { + assert2(body, "no body must not have content length"); + headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; + } + session.ref(); + const shouldEndStream = method2 === "GET" || method2 === "HEAD"; + if (expectContinue) { + headers[HTTP2_HEADER_EXPECT] = "100-continue"; + stream = session.request(headers, { endStream: shouldEndStream, signal }); + stream.once("continue", writeBodyH2); + } else { + stream = session.request(headers, { + endStream: shouldEndStream, + signal + }); + writeBodyH2(); + } + ++h2State.openStreams; + stream.once("response", (headers2) => { + const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; + if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), "") === false) { + stream.pause(); + } + }); + stream.once("end", () => { + request.onComplete([]); + }); + stream.on("data", (chunk) => { + if (request.onData(chunk) === false) { + stream.pause(); + } + }); + stream.once("close", () => { + h2State.openStreams -= 1; + if (h2State.openStreams === 0) { + session.unref(); + } + }); + stream.once("error", function(err) { + if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { + h2State.streams -= 1; + util.destroy(stream, err); + } + }); + stream.once("frameError", (type, code) => { + const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); + errorRequest(client, request, err); + if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { + h2State.streams -= 1; + util.destroy(stream, err); + } + }); + return true; + function writeBodyH2() { + if (!body) { + request.onRequestSent(); + } else if (util.isBuffer(body)) { + assert2(contentLength === body.byteLength, "buffer body must have content length"); + stream.cork(); + stream.write(body); + stream.uncork(); + stream.end(); + request.onBodySent(body); + request.onRequestSent(); + } else if (util.isBlobLike(body)) { + if (typeof body.stream === "function") { + writeIterable({ + client, + request, + contentLength, + h2stream: stream, + expectsPayload, + body: body.stream(), + socket: client[kSocket], + header: "" + }); + } else { + writeBlob({ + body, + client, + request, + contentLength, + expectsPayload, + h2stream: stream, + header: "", + socket: client[kSocket] + }); + } + } else if (util.isStream(body)) { + writeStream({ + body, + client, + request, + contentLength, + expectsPayload, + socket: client[kSocket], + h2stream: stream, + header: "" + }); + } else if (util.isIterable(body)) { + writeIterable({ + body, + client, + request, + contentLength, + expectsPayload, + header: "", + h2stream: stream, + socket: client[kSocket] + }); + } else { + assert2(false); + } + } + } + function writeStream({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert2(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); + if (client[kHTTPConnVersion] === "h2") { + let onPipeData = function(chunk) { + request.onBodySent(chunk); + }; + const pipe = pipeline( + body, + h2stream, + (err) => { + if (err) { + util.destroy(body, err); + util.destroy(h2stream, err); + } else { + request.onRequestSent(); + } + } + ); + pipe.on("data", onPipeData); + pipe.once("end", () => { + pipe.removeListener("data", onPipeData); + util.destroy(pipe); + }); + return; + } + let finished = false; + const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }); + const onData = function(chunk) { + if (finished) { + return; + } + try { + if (!writer.write(chunk) && this.pause) { + this.pause(); + } + } catch (err) { + util.destroy(this, err); + } + }; + const onDrain = function() { + if (finished) { + return; + } + if (body.resume) { + body.resume(); + } + }; + const onAbort = function() { + if (finished) { + return; + } + const err = new RequestAbortedError(); + queueMicrotask(() => onFinished(err)); + }; + const onFinished = function(err) { + if (finished) { + return; + } + finished = true; + assert2(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); + socket.off("drain", onDrain).off("error", onFinished); + body.removeListener("data", onData).removeListener("end", onFinished).removeListener("error", onFinished).removeListener("close", onAbort); + if (!err) { + try { + writer.end(); + } catch (er) { + err = er; + } + } + writer.destroy(err); + if (err && (err.code !== "UND_ERR_INFO" || err.message !== "reset")) { + util.destroy(body, err); + } else { + util.destroy(body); + } + }; + body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onAbort); + if (body.resume) { + body.resume(); + } + socket.on("drain", onDrain).on("error", onFinished); + } + async function writeBlob({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert2(contentLength === body.size, "blob body must have content length"); + const isH2 = client[kHTTPConnVersion] === "h2"; + try { + if (contentLength != null && contentLength !== body.size) { + throw new RequestContentLengthMismatchError(); + } + const buffer = Buffer.from(await body.arrayBuffer()); + if (isH2) { + h2stream.cork(); + h2stream.write(buffer); + h2stream.uncork(); + } else { + socket.cork(); + socket.write(`${header}content-length: ${contentLength}\r +\r +`, "latin1"); + socket.write(buffer); + socket.uncork(); + } + request.onBodySent(buffer); + request.onRequestSent(); + if (!expectsPayload) { + socket[kReset] = true; + } + resume(client); + } catch (err) { + util.destroy(isH2 ? h2stream : socket, err); + } + } + async function writeIterable({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert2(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); + let callback = null; + function onDrain() { + if (callback) { + const cb = callback; + callback = null; + cb(); + } + } + const waitForDrain = () => new Promise((resolve, reject) => { + assert2(callback === null); + if (socket[kError]) { + reject(socket[kError]); + } else { + callback = resolve; + } + }); + if (client[kHTTPConnVersion] === "h2") { + h2stream.on("close", onDrain).on("drain", onDrain); + try { + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError]; + } + const res = h2stream.write(chunk); + request.onBodySent(chunk); + if (!res) { + await waitForDrain(); + } + } + } catch (err) { + h2stream.destroy(err); + } finally { + request.onRequestSent(); + h2stream.end(); + h2stream.off("close", onDrain).off("drain", onDrain); + } + return; + } + socket.on("close", onDrain).on("drain", onDrain); + const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }); + try { + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError]; + } + if (!writer.write(chunk)) { + await waitForDrain(); + } + } + writer.end(); + } catch (err) { + writer.destroy(err); + } finally { + socket.off("close", onDrain).off("drain", onDrain); + } + } + var AsyncWriter = class { + constructor({ socket, request, contentLength, client, expectsPayload, header }) { + this.socket = socket; + this.request = request; + this.contentLength = contentLength; + this.client = client; + this.bytesWritten = 0; + this.expectsPayload = expectsPayload; + this.header = header; + socket[kWriting] = true; + } + write(chunk) { + const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this; + if (socket[kError]) { + throw socket[kError]; + } + if (socket.destroyed) { + return false; + } + const len = Buffer.byteLength(chunk); + if (!len) { + return true; + } + if (contentLength !== null && bytesWritten + len > contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError(); + } + process.emitWarning(new RequestContentLengthMismatchError()); + } + socket.cork(); + if (bytesWritten === 0) { + if (!expectsPayload) { + socket[kReset] = true; + } + if (contentLength === null) { + socket.write(`${header}transfer-encoding: chunked\r +`, "latin1"); + } else { + socket.write(`${header}content-length: ${contentLength}\r +\r +`, "latin1"); + } + } + if (contentLength === null) { + socket.write(`\r +${len.toString(16)}\r +`, "latin1"); + } + this.bytesWritten += len; + const ret = socket.write(chunk); + socket.uncork(); + request.onBodySent(chunk); + if (!ret) { + if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh(); + } + } + } + return ret; + } + end() { + const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this; + request.onRequestSent(); + socket[kWriting] = false; + if (socket[kError]) { + throw socket[kError]; + } + if (socket.destroyed) { + return; + } + if (bytesWritten === 0) { + if (expectsPayload) { + socket.write(`${header}content-length: 0\r +\r +`, "latin1"); + } else { + socket.write(`${header}\r +`, "latin1"); + } + } else if (contentLength === null) { + socket.write("\r\n0\r\n\r\n", "latin1"); + } + if (contentLength !== null && bytesWritten !== contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError(); + } else { + process.emitWarning(new RequestContentLengthMismatchError()); + } + } + if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh(); + } + } + resume(client); + } + destroy(err) { + const { socket, client } = this; + socket[kWriting] = false; + if (err) { + assert2(client[kRunning] <= 1, "pipeline should only contain this request"); + util.destroy(socket, err); + } + } + }; + function errorRequest(client, request, err) { + try { + request.onError(err); + assert2(request.aborted); + } catch (err2) { + client.emit("error", err2); + } + } + module2.exports = Client; + } +}); + +// node_modules/undici/lib/node/fixed-queue.js +var require_fixed_queue = __commonJS({ + "node_modules/undici/lib/node/fixed-queue.js"(exports2, module2) { + "use strict"; + var kSize = 2048; + var kMask = kSize - 1; + var FixedCircularBuffer = class { + constructor() { + this.bottom = 0; + this.top = 0; + this.list = new Array(kSize); + this.next = null; + } + isEmpty() { + return this.top === this.bottom; + } + isFull() { + return (this.top + 1 & kMask) === this.bottom; + } + push(data) { + this.list[this.top] = data; + this.top = this.top + 1 & kMask; + } + shift() { + const nextItem = this.list[this.bottom]; + if (nextItem === void 0) + return null; + this.list[this.bottom] = void 0; + this.bottom = this.bottom + 1 & kMask; + return nextItem; + } + }; + module2.exports = class FixedQueue { + constructor() { + this.head = this.tail = new FixedCircularBuffer(); + } + isEmpty() { + return this.head.isEmpty(); + } + push(data) { + if (this.head.isFull()) { + this.head = this.head.next = new FixedCircularBuffer(); + } + this.head.push(data); + } + shift() { + const tail = this.tail; + const next = tail.shift(); + if (tail.isEmpty() && tail.next !== null) { + this.tail = tail.next; + } + return next; + } + }; + } +}); + +// node_modules/undici/lib/pool-stats.js +var require_pool_stats = __commonJS({ + "node_modules/undici/lib/pool-stats.js"(exports2, module2) { + var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(); + var kPool = Symbol("pool"); + var PoolStats = class { + constructor(pool) { + this[kPool] = pool; + } + get connected() { + return this[kPool][kConnected]; + } + get free() { + return this[kPool][kFree]; + } + get pending() { + return this[kPool][kPending]; + } + get queued() { + return this[kPool][kQueued]; + } + get running() { + return this[kPool][kRunning]; + } + get size() { + return this[kPool][kSize]; + } + }; + module2.exports = PoolStats; + } +}); + +// node_modules/undici/lib/pool-base.js +var require_pool_base = __commonJS({ + "node_modules/undici/lib/pool-base.js"(exports2, module2) { + "use strict"; + var DispatcherBase = require_dispatcher_base(); + var FixedQueue = require_fixed_queue(); + var { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require_symbols(); + var PoolStats = require_pool_stats(); + var kClients = Symbol("clients"); + var kNeedDrain = Symbol("needDrain"); + var kQueue = Symbol("queue"); + var kClosedResolve = Symbol("closed resolve"); + var kOnDrain = Symbol("onDrain"); + var kOnConnect = Symbol("onConnect"); + var kOnDisconnect = Symbol("onDisconnect"); + var kOnConnectionError = Symbol("onConnectionError"); + var kGetDispatcher = Symbol("get dispatcher"); + var kAddClient = Symbol("add client"); + var kRemoveClient = Symbol("remove client"); + var kStats = Symbol("stats"); + var PoolBase = class extends DispatcherBase { + constructor() { + super(); + this[kQueue] = new FixedQueue(); + this[kClients] = []; + this[kQueued] = 0; + const pool = this; + this[kOnDrain] = function onDrain(origin, targets) { + const queue = pool[kQueue]; + let needDrain = false; + while (!needDrain) { + const item = queue.shift(); + if (!item) { + break; + } + pool[kQueued]--; + needDrain = !this.dispatch(item.opts, item.handler); + } + this[kNeedDrain] = needDrain; + if (!this[kNeedDrain] && pool[kNeedDrain]) { + pool[kNeedDrain] = false; + pool.emit("drain", origin, [pool, ...targets]); + } + if (pool[kClosedResolve] && queue.isEmpty()) { + Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); + } + }; + this[kOnConnect] = (origin, targets) => { + pool.emit("connect", origin, [pool, ...targets]); + }; + this[kOnDisconnect] = (origin, targets, err) => { + pool.emit("disconnect", origin, [pool, ...targets], err); + }; + this[kOnConnectionError] = (origin, targets, err) => { + pool.emit("connectionError", origin, [pool, ...targets], err); + }; + this[kStats] = new PoolStats(this); + } + get [kBusy]() { + return this[kNeedDrain]; + } + get [kConnected]() { + return this[kClients].filter((client) => client[kConnected]).length; + } + get [kFree]() { + return this[kClients].filter((client) => client[kConnected] && !client[kNeedDrain]).length; + } + get [kPending]() { + let ret = this[kQueued]; + for (const { [kPending]: pending } of this[kClients]) { + ret += pending; + } + return ret; + } + get [kRunning]() { + let ret = 0; + for (const { [kRunning]: running } of this[kClients]) { + ret += running; + } + return ret; + } + get [kSize]() { + let ret = this[kQueued]; + for (const { [kSize]: size } of this[kClients]) { + ret += size; + } + return ret; + } + get stats() { + return this[kStats]; + } + async [kClose]() { + if (this[kQueue].isEmpty()) { + return Promise.all(this[kClients].map((c) => c.close())); + } else { + return new Promise((resolve) => { + this[kClosedResolve] = resolve; + }); + } + } + async [kDestroy](err) { + while (true) { + const item = this[kQueue].shift(); + if (!item) { + break; + } + item.handler.onError(err); + } + return Promise.all(this[kClients].map((c) => c.destroy(err))); + } + [kDispatch](opts, handler) { + const dispatcher = this[kGetDispatcher](); + if (!dispatcher) { + this[kNeedDrain] = true; + this[kQueue].push({ opts, handler }); + this[kQueued]++; + } else if (!dispatcher.dispatch(opts, handler)) { + dispatcher[kNeedDrain] = true; + this[kNeedDrain] = !this[kGetDispatcher](); + } + return !this[kNeedDrain]; + } + [kAddClient](client) { + client.on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); + this[kClients].push(client); + if (this[kNeedDrain]) { + process.nextTick(() => { + if (this[kNeedDrain]) { + this[kOnDrain](client[kUrl], [this, client]); + } + }); + } + return this; + } + [kRemoveClient](client) { + client.close(() => { + const idx = this[kClients].indexOf(client); + if (idx !== -1) { + this[kClients].splice(idx, 1); + } + }); + this[kNeedDrain] = this[kClients].some((dispatcher) => !dispatcher[kNeedDrain] && dispatcher.closed !== true && dispatcher.destroyed !== true); + } + }; + module2.exports = { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher + }; + } +}); + +// node_modules/undici/lib/pool.js +var require_pool = __commonJS({ + "node_modules/undici/lib/pool.js"(exports2, module2) { + "use strict"; + var { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kGetDispatcher + } = require_pool_base(); + var Client = require_client(); + var { + InvalidArgumentError + } = require_errors(); + var util = require_util(); + var { kUrl, kInterceptors } = require_symbols(); + var buildConnector = require_connect(); + var kOptions = Symbol("options"); + var kConnections = Symbol("connections"); + var kFactory = Symbol("factory"); + function defaultFactory(origin, opts) { + return new Client(origin, opts); + } + var Pool = class extends PoolBase { + constructor(origin, { + connections, + factory = defaultFactory, + connect, + connectTimeout, + tls, + maxCachedSessions, + socketPath, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + allowH2, + ...options + } = {}) { + super(); + if (connections != null && (!Number.isFinite(connections) || connections < 0)) { + throw new InvalidArgumentError("invalid connections"); + } + if (typeof factory !== "function") { + throw new InvalidArgumentError("factory must be a function."); + } + if (connect != null && typeof connect !== "function" && typeof connect !== "object") { + throw new InvalidArgumentError("connect must be a function or an object"); + } + if (typeof connect !== "function") { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, + ...connect + }); + } + this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; + this[kConnections] = connections || null; + this[kUrl] = util.parseOrigin(origin); + this[kOptions] = { ...util.deepClone(options), connect, allowH2 }; + this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; + this[kFactory] = factory; + this.on("connectionError", (origin2, targets, error) => { + for (const target of targets) { + const idx = this[kClients].indexOf(target); + if (idx !== -1) { + this[kClients].splice(idx, 1); + } + } + }); + } + [kGetDispatcher]() { + let dispatcher = this[kClients].find((dispatcher2) => !dispatcher2[kNeedDrain]); + if (dispatcher) { + return dispatcher; + } + if (!this[kConnections] || this[kClients].length < this[kConnections]) { + dispatcher = this[kFactory](this[kUrl], this[kOptions]); + this[kAddClient](dispatcher); + } + return dispatcher; + } + }; + module2.exports = Pool; + } +}); + +// node_modules/undici/lib/balanced-pool.js +var require_balanced_pool = __commonJS({ + "node_modules/undici/lib/balanced-pool.js"(exports2, module2) { + "use strict"; + var { + BalancedPoolMissingUpstreamError, + InvalidArgumentError + } = require_errors(); + var { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher + } = require_pool_base(); + var Pool = require_pool(); + var { kUrl, kInterceptors } = require_symbols(); + var { parseOrigin } = require_util(); + var kFactory = Symbol("factory"); + var kOptions = Symbol("options"); + var kGreatestCommonDivisor = Symbol("kGreatestCommonDivisor"); + var kCurrentWeight = Symbol("kCurrentWeight"); + var kIndex = Symbol("kIndex"); + var kWeight = Symbol("kWeight"); + var kMaxWeightPerServer = Symbol("kMaxWeightPerServer"); + var kErrorPenalty = Symbol("kErrorPenalty"); + function getGreatestCommonDivisor(a, b) { + if (b === 0) return a; + return getGreatestCommonDivisor(b, a % b); + } + function defaultFactory(origin, opts) { + return new Pool(origin, opts); + } + var BalancedPool = class extends PoolBase { + constructor(upstreams = [], { factory = defaultFactory, ...opts } = {}) { + super(); + this[kOptions] = opts; + this[kIndex] = -1; + this[kCurrentWeight] = 0; + this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100; + this[kErrorPenalty] = this[kOptions].errorPenalty || 15; + if (!Array.isArray(upstreams)) { + upstreams = [upstreams]; + } + if (typeof factory !== "function") { + throw new InvalidArgumentError("factory must be a function."); + } + this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) ? opts.interceptors.BalancedPool : []; + this[kFactory] = factory; + for (const upstream of upstreams) { + this.addUpstream(upstream); + } + this._updateBalancedPoolStats(); + } + addUpstream(upstream) { + const upstreamOrigin = parseOrigin(upstream).origin; + if (this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true)) { + return this; + } + const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])); + this[kAddClient](pool); + pool.on("connect", () => { + pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]); + }); + pool.on("connectionError", () => { + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); + this._updateBalancedPoolStats(); + }); + pool.on("disconnect", (...args) => { + const err = args[2]; + if (err && err.code === "UND_ERR_SOCKET") { + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); + this._updateBalancedPoolStats(); + } + }); + for (const client of this[kClients]) { + client[kWeight] = this[kMaxWeightPerServer]; + } + this._updateBalancedPoolStats(); + return this; + } + _updateBalancedPoolStats() { + this[kGreatestCommonDivisor] = this[kClients].map((p) => p[kWeight]).reduce(getGreatestCommonDivisor, 0); + } + removeUpstream(upstream) { + const upstreamOrigin = parseOrigin(upstream).origin; + const pool = this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true); + if (pool) { + this[kRemoveClient](pool); + } + return this; + } + get upstreams() { + return this[kClients].filter((dispatcher) => dispatcher.closed !== true && dispatcher.destroyed !== true).map((p) => p[kUrl].origin); + } + [kGetDispatcher]() { + if (this[kClients].length === 0) { + throw new BalancedPoolMissingUpstreamError(); + } + const dispatcher = this[kClients].find((dispatcher2) => !dispatcher2[kNeedDrain] && dispatcher2.closed !== true && dispatcher2.destroyed !== true); + if (!dispatcher) { + return; + } + const allClientsBusy = this[kClients].map((pool) => pool[kNeedDrain]).reduce((a, b) => a && b, true); + if (allClientsBusy) { + return; + } + let counter = 0; + let maxWeightIndex = this[kClients].findIndex((pool) => !pool[kNeedDrain]); + while (counter++ < this[kClients].length) { + this[kIndex] = (this[kIndex] + 1) % this[kClients].length; + const pool = this[kClients][this[kIndex]]; + if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { + maxWeightIndex = this[kIndex]; + } + if (this[kIndex] === 0) { + this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]; + if (this[kCurrentWeight] <= 0) { + this[kCurrentWeight] = this[kMaxWeightPerServer]; + } + } + if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) { + return pool; + } + } + this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]; + this[kIndex] = maxWeightIndex; + return this[kClients][maxWeightIndex]; + } + }; + module2.exports = BalancedPool; + } +}); + +// node_modules/undici/lib/compat/dispatcher-weakref.js +var require_dispatcher_weakref = __commonJS({ + "node_modules/undici/lib/compat/dispatcher-weakref.js"(exports2, module2) { + "use strict"; + var { kConnected, kSize } = require_symbols(); + var CompatWeakRef = class { + constructor(value) { + this.value = value; + } + deref() { + return this.value[kConnected] === 0 && this.value[kSize] === 0 ? void 0 : this.value; + } + }; + var CompatFinalizer = class { + constructor(finalizer) { + this.finalizer = finalizer; + } + register(dispatcher, key) { + if (dispatcher.on) { + dispatcher.on("disconnect", () => { + if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { + this.finalizer(key); + } + }); + } + } + }; + module2.exports = function() { + if (process.env.NODE_V8_COVERAGE) { + return { + WeakRef: CompatWeakRef, + FinalizationRegistry: CompatFinalizer + }; + } + return { + WeakRef: global.WeakRef || CompatWeakRef, + FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer + }; + }; + } +}); + +// node_modules/undici/lib/agent.js +var require_agent = __commonJS({ + "node_modules/undici/lib/agent.js"(exports2, module2) { + "use strict"; + var { InvalidArgumentError } = require_errors(); + var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); + var DispatcherBase = require_dispatcher_base(); + var Pool = require_pool(); + var Client = require_client(); + var util = require_util(); + var createRedirectInterceptor = require_redirectInterceptor(); + var { WeakRef: WeakRef2, FinalizationRegistry } = require_dispatcher_weakref()(); + var kOnConnect = Symbol("onConnect"); + var kOnDisconnect = Symbol("onDisconnect"); + var kOnConnectionError = Symbol("onConnectionError"); + var kMaxRedirections = Symbol("maxRedirections"); + var kOnDrain = Symbol("onDrain"); + var kFactory = Symbol("factory"); + var kFinalizer = Symbol("finalizer"); + var kOptions = Symbol("options"); + function defaultFactory(origin, opts) { + return opts && opts.connections === 1 ? new Client(origin, opts) : new Pool(origin, opts); + } + var Agent = class extends DispatcherBase { + constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { + super(); + if (typeof factory !== "function") { + throw new InvalidArgumentError("factory must be a function."); + } + if (connect != null && typeof connect !== "function" && typeof connect !== "object") { + throw new InvalidArgumentError("connect must be a function or an object"); + } + if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { + throw new InvalidArgumentError("maxRedirections must be a positive number"); + } + if (connect && typeof connect !== "function") { + connect = { ...connect }; + } + this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })]; + this[kOptions] = { ...util.deepClone(options), connect }; + this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; + this[kMaxRedirections] = maxRedirections; + this[kFactory] = factory; + this[kClients] = /* @__PURE__ */ new Map(); + this[kFinalizer] = new FinalizationRegistry( + /* istanbul ignore next: gc is undeterministic */ + (key) => { + const ref = this[kClients].get(key); + if (ref !== void 0 && ref.deref() === void 0) { + this[kClients].delete(key); + } + } + ); + const agent = this; + this[kOnDrain] = (origin, targets) => { + agent.emit("drain", origin, [agent, ...targets]); + }; + this[kOnConnect] = (origin, targets) => { + agent.emit("connect", origin, [agent, ...targets]); + }; + this[kOnDisconnect] = (origin, targets, err) => { + agent.emit("disconnect", origin, [agent, ...targets], err); + }; + this[kOnConnectionError] = (origin, targets, err) => { + agent.emit("connectionError", origin, [agent, ...targets], err); + }; + } + get [kRunning]() { + let ret = 0; + for (const ref of this[kClients].values()) { + const client = ref.deref(); + if (client) { + ret += client[kRunning]; + } + } + return ret; + } + [kDispatch](opts, handler) { + let key; + if (opts.origin && (typeof opts.origin === "string" || opts.origin instanceof URL)) { + key = String(opts.origin); + } else { + throw new InvalidArgumentError("opts.origin must be a non-empty string or URL."); + } + const ref = this[kClients].get(key); + let dispatcher = ref ? ref.deref() : null; + if (!dispatcher) { + dispatcher = this[kFactory](opts.origin, this[kOptions]).on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); + this[kClients].set(key, new WeakRef2(dispatcher)); + this[kFinalizer].register(dispatcher, key); + } + return dispatcher.dispatch(opts, handler); + } + async [kClose]() { + const closePromises = []; + for (const ref of this[kClients].values()) { + const client = ref.deref(); + if (client) { + closePromises.push(client.close()); + } + } + await Promise.all(closePromises); + } + async [kDestroy](err) { + const destroyPromises = []; + for (const ref of this[kClients].values()) { + const client = ref.deref(); + if (client) { + destroyPromises.push(client.destroy(err)); + } + } + await Promise.all(destroyPromises); + } + }; + module2.exports = Agent; + } +}); + +// node_modules/undici/lib/api/readable.js +var require_readable = __commonJS({ + "node_modules/undici/lib/api/readable.js"(exports2, module2) { + "use strict"; + var assert2 = require("assert"); + var { Readable } = require("stream"); + var { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require_errors(); + var util = require_util(); + var { ReadableStreamFrom, toUSVString } = require_util(); + var Blob2; + var kConsume = Symbol("kConsume"); + var kReading = Symbol("kReading"); + var kBody = Symbol("kBody"); + var kAbort = Symbol("abort"); + var kContentType = Symbol("kContentType"); + var noop = () => { + }; + module2.exports = class BodyReadable extends Readable { + constructor({ + resume, + abort, + contentType = "", + highWaterMark = 64 * 1024 + // Same as nodejs fs streams. + }) { + super({ + autoDestroy: true, + read: resume, + highWaterMark + }); + this._readableState.dataEmitted = false; + this[kAbort] = abort; + this[kConsume] = null; + this[kBody] = null; + this[kContentType] = contentType; + this[kReading] = false; + } + destroy(err) { + if (this.destroyed) { + return this; + } + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError(); + } + if (err) { + this[kAbort](); + } + return super.destroy(err); + } + emit(ev, ...args) { + if (ev === "data") { + this._readableState.dataEmitted = true; + } else if (ev === "error") { + this._readableState.errorEmitted = true; + } + return super.emit(ev, ...args); + } + on(ev, ...args) { + if (ev === "data" || ev === "readable") { + this[kReading] = true; + } + return super.on(ev, ...args); + } + addListener(ev, ...args) { + return this.on(ev, ...args); + } + off(ev, ...args) { + const ret = super.off(ev, ...args); + if (ev === "data" || ev === "readable") { + this[kReading] = this.listenerCount("data") > 0 || this.listenerCount("readable") > 0; + } + return ret; + } + removeListener(ev, ...args) { + return this.off(ev, ...args); + } + push(chunk) { + if (this[kConsume] && chunk !== null && this.readableLength === 0) { + consumePush(this[kConsume], chunk); + return this[kReading] ? super.push(chunk) : true; + } + return super.push(chunk); + } + // https://fetch.spec.whatwg.org/#dom-body-text + async text() { + return consume(this, "text"); + } + // https://fetch.spec.whatwg.org/#dom-body-json + async json() { + return consume(this, "json"); + } + // https://fetch.spec.whatwg.org/#dom-body-blob + async blob() { + return consume(this, "blob"); + } + // https://fetch.spec.whatwg.org/#dom-body-arraybuffer + async arrayBuffer() { + return consume(this, "arrayBuffer"); + } + // https://fetch.spec.whatwg.org/#dom-body-formdata + async formData() { + throw new NotSupportedError(); + } + // https://fetch.spec.whatwg.org/#dom-body-bodyused + get bodyUsed() { + return util.isDisturbed(this); + } + // https://fetch.spec.whatwg.org/#dom-body-body + get body() { + if (!this[kBody]) { + this[kBody] = ReadableStreamFrom(this); + if (this[kConsume]) { + this[kBody].getReader(); + assert2(this[kBody].locked); + } + } + return this[kBody]; + } + dump(opts) { + let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144; + const signal = opts && opts.signal; + if (signal) { + try { + if (typeof signal !== "object" || !("aborted" in signal)) { + throw new InvalidArgumentError("signal must be an AbortSignal"); + } + util.throwIfAborted(signal); + } catch (err) { + return Promise.reject(err); + } + } + if (this.closed) { + return Promise.resolve(null); + } + return new Promise((resolve, reject) => { + const signalListenerCleanup = signal ? util.addAbortListener(signal, () => { + this.destroy(); + }) : noop; + this.on("close", function() { + signalListenerCleanup(); + if (signal && signal.aborted) { + reject(signal.reason || Object.assign(new Error("The operation was aborted"), { name: "AbortError" })); + } else { + resolve(null); + } + }).on("error", noop).on("data", function(chunk) { + limit -= chunk.length; + if (limit <= 0) { + this.destroy(); + } + }).resume(); + }); + } + }; + function isLocked(self2) { + return self2[kBody] && self2[kBody].locked === true || self2[kConsume]; + } + function isUnusable(self2) { + return util.isDisturbed(self2) || isLocked(self2); + } + async function consume(stream, type) { + if (isUnusable(stream)) { + throw new TypeError("unusable"); + } + assert2(!stream[kConsume]); + return new Promise((resolve, reject) => { + stream[kConsume] = { + type, + stream, + resolve, + reject, + length: 0, + body: [] + }; + stream.on("error", function(err) { + consumeFinish(this[kConsume], err); + }).on("close", function() { + if (this[kConsume].body !== null) { + consumeFinish(this[kConsume], new RequestAbortedError()); + } + }); + process.nextTick(consumeStart, stream[kConsume]); + }); + } + function consumeStart(consume2) { + if (consume2.body === null) { + return; + } + const { _readableState: state } = consume2.stream; + for (const chunk of state.buffer) { + consumePush(consume2, chunk); + } + if (state.endEmitted) { + consumeEnd(this[kConsume]); + } else { + consume2.stream.on("end", function() { + consumeEnd(this[kConsume]); + }); + } + consume2.stream.resume(); + while (consume2.stream.read() != null) { + } + } + function consumeEnd(consume2) { + const { type, body, resolve, stream, length } = consume2; + try { + if (type === "text") { + resolve(toUSVString(Buffer.concat(body))); + } else if (type === "json") { + resolve(JSON.parse(Buffer.concat(body))); + } else if (type === "arrayBuffer") { + const dst = new Uint8Array(length); + let pos = 0; + for (const buf of body) { + dst.set(buf, pos); + pos += buf.byteLength; + } + resolve(dst.buffer); + } else if (type === "blob") { + if (!Blob2) { + Blob2 = require("buffer").Blob; + } + resolve(new Blob2(body, { type: stream[kContentType] })); + } + consumeFinish(consume2); + } catch (err) { + stream.destroy(err); + } + } + function consumePush(consume2, chunk) { + consume2.length += chunk.length; + consume2.body.push(chunk); + } + function consumeFinish(consume2, err) { + if (consume2.body === null) { + return; + } + if (err) { + consume2.reject(err); + } else { + consume2.resolve(); + } + consume2.type = null; + consume2.stream = null; + consume2.resolve = null; + consume2.reject = null; + consume2.length = 0; + consume2.body = null; + } + } +}); + +// node_modules/undici/lib/api/util.js +var require_util3 = __commonJS({ + "node_modules/undici/lib/api/util.js"(exports2, module2) { + var assert2 = require("assert"); + var { + ResponseStatusCodeError + } = require_errors(); + var { toUSVString } = require_util(); + async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { + assert2(body); + let chunks = []; + let limit = 0; + for await (const chunk of body) { + chunks.push(chunk); + limit += chunk.length; + if (limit > 128 * 1024) { + chunks = null; + break; + } + } + if (statusCode === 204 || !contentType || !chunks) { + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`, statusCode, headers)); + return; + } + try { + if (contentType.startsWith("application/json")) { + const payload = JSON.parse(toUSVString(Buffer.concat(chunks))); + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`, statusCode, headers, payload)); + return; + } + if (contentType.startsWith("text/")) { + const payload = toUSVString(Buffer.concat(chunks)); + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`, statusCode, headers, payload)); + return; + } + } catch (err) { + } + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`, statusCode, headers)); + } + module2.exports = { getResolveErrorBodyCallback }; + } +}); + +// node_modules/undici/lib/api/abort-signal.js +var require_abort_signal = __commonJS({ + "node_modules/undici/lib/api/abort-signal.js"(exports2, module2) { + var { addAbortListener } = require_util(); + var { RequestAbortedError } = require_errors(); + var kListener = Symbol("kListener"); + var kSignal = Symbol("kSignal"); + function abort(self2) { + if (self2.abort) { + self2.abort(); + } else { + self2.onError(new RequestAbortedError()); + } + } + function addSignal(self2, signal) { + self2[kSignal] = null; + self2[kListener] = null; + if (!signal) { + return; + } + if (signal.aborted) { + abort(self2); + return; + } + self2[kSignal] = signal; + self2[kListener] = () => { + abort(self2); + }; + addAbortListener(self2[kSignal], self2[kListener]); + } + function removeSignal(self2) { + if (!self2[kSignal]) { + return; + } + if ("removeEventListener" in self2[kSignal]) { + self2[kSignal].removeEventListener("abort", self2[kListener]); + } else { + self2[kSignal].removeListener("abort", self2[kListener]); + } + self2[kSignal] = null; + self2[kListener] = null; + } + module2.exports = { + addSignal, + removeSignal + }; + } +}); + +// node_modules/undici/lib/api/api-request.js +var require_api_request = __commonJS({ + "node_modules/undici/lib/api/api-request.js"(exports2, module2) { + "use strict"; + var Readable = require_readable(); + var { + InvalidArgumentError, + RequestAbortedError + } = require_errors(); + var util = require_util(); + var { getResolveErrorBodyCallback } = require_util3(); + var { AsyncResource } = require("async_hooks"); + var { addSignal, removeSignal } = require_abort_signal(); + var RequestHandler = class extends AsyncResource { + constructor(opts, callback) { + if (!opts || typeof opts !== "object") { + throw new InvalidArgumentError("invalid opts"); + } + const { signal, method: method2, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts; + try { + if (typeof callback !== "function") { + throw new InvalidArgumentError("invalid callback"); + } + if (highWaterMark && (typeof highWaterMark !== "number" || highWaterMark < 0)) { + throw new InvalidArgumentError("invalid highWaterMark"); + } + if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { + throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); + } + if (method2 === "CONNECT") { + throw new InvalidArgumentError("invalid method"); + } + if (onInfo && typeof onInfo !== "function") { + throw new InvalidArgumentError("invalid onInfo callback"); + } + super("UNDICI_REQUEST"); + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on("error", util.nop), err); + } + throw err; + } + this.responseHeaders = responseHeaders || null; + this.opaque = opaque || null; + this.callback = callback; + this.res = null; + this.abort = null; + this.body = body; + this.trailers = {}; + this.context = null; + this.onInfo = onInfo || null; + this.throwOnError = throwOnError; + this.highWaterMark = highWaterMark; + if (util.isStream(body)) { + body.on("error", (err) => { + this.onError(err); + }); + } + addSignal(this, signal); + } + onConnect(abort, context) { + if (!this.callback) { + throw new RequestAbortedError(); + } + this.abort = abort; + this.context = context; + } + onHeaders(statusCode, rawHeaders, resume, statusMessage) { + const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this; + const headers = responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }); + } + return; + } + const parsedHeaders = responseHeaders === "raw" ? util.parseHeaders(rawHeaders) : headers; + const contentType = parsedHeaders["content-type"]; + const body = new Readable({ resume, abort, contentType, highWaterMark }); + this.callback = null; + this.res = body; + if (callback !== null) { + if (this.throwOnError && statusCode >= 400) { + this.runInAsyncScope( + getResolveErrorBodyCallback, + null, + { callback, body, contentType, statusCode, statusMessage, headers } + ); + } else { + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + trailers: this.trailers, + opaque, + body, + context + }); + } + } + } + onData(chunk) { + const { res } = this; + return res.push(chunk); + } + onComplete(trailers) { + const { res } = this; + removeSignal(this); + util.parseHeaders(trailers, this.trailers); + res.push(null); + } + onError(err) { + const { res, callback, body, opaque } = this; + removeSignal(this); + if (callback) { + this.callback = null; + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }); + }); + } + if (res) { + this.res = null; + queueMicrotask(() => { + util.destroy(res, err); + }); + } + if (body) { + this.body = null; + util.destroy(body, err); + } + } + }; + function request(opts, callback) { + if (callback === void 0) { + return new Promise((resolve, reject) => { + request.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data); + }); + }); + } + try { + this.dispatch(opts, new RequestHandler(opts, callback)); + } catch (err) { + if (typeof callback !== "function") { + throw err; + } + const opaque = opts && opts.opaque; + queueMicrotask(() => callback(err, { opaque })); + } + } + module2.exports = request; + module2.exports.RequestHandler = RequestHandler; + } +}); + +// node_modules/undici/lib/api/api-stream.js +var require_api_stream = __commonJS({ + "node_modules/undici/lib/api/api-stream.js"(exports2, module2) { + "use strict"; + var { finished, PassThrough } = require("stream"); + var { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError + } = require_errors(); + var util = require_util(); + var { getResolveErrorBodyCallback } = require_util3(); + var { AsyncResource } = require("async_hooks"); + var { addSignal, removeSignal } = require_abort_signal(); + var StreamHandler = class extends AsyncResource { + constructor(opts, factory, callback) { + if (!opts || typeof opts !== "object") { + throw new InvalidArgumentError("invalid opts"); + } + const { signal, method: method2, opaque, body, onInfo, responseHeaders, throwOnError } = opts; + try { + if (typeof callback !== "function") { + throw new InvalidArgumentError("invalid callback"); + } + if (typeof factory !== "function") { + throw new InvalidArgumentError("invalid factory"); + } + if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { + throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); + } + if (method2 === "CONNECT") { + throw new InvalidArgumentError("invalid method"); + } + if (onInfo && typeof onInfo !== "function") { + throw new InvalidArgumentError("invalid onInfo callback"); + } + super("UNDICI_STREAM"); + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on("error", util.nop), err); + } + throw err; + } + this.responseHeaders = responseHeaders || null; + this.opaque = opaque || null; + this.factory = factory; + this.callback = callback; + this.res = null; + this.abort = null; + this.context = null; + this.trailers = null; + this.body = body; + this.onInfo = onInfo || null; + this.throwOnError = throwOnError || false; + if (util.isStream(body)) { + body.on("error", (err) => { + this.onError(err); + }); + } + addSignal(this, signal); + } + onConnect(abort, context) { + if (!this.callback) { + throw new RequestAbortedError(); + } + this.abort = abort; + this.context = context; + } + onHeaders(statusCode, rawHeaders, resume, statusMessage) { + const { factory, opaque, context, callback, responseHeaders } = this; + const headers = responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }); + } + return; + } + this.factory = null; + let res; + if (this.throwOnError && statusCode >= 400) { + const parsedHeaders = responseHeaders === "raw" ? util.parseHeaders(rawHeaders) : headers; + const contentType = parsedHeaders["content-type"]; + res = new PassThrough(); + this.callback = null; + this.runInAsyncScope( + getResolveErrorBodyCallback, + null, + { callback, body: res, contentType, statusCode, statusMessage, headers } + ); + } else { + if (factory === null) { + return; + } + res = this.runInAsyncScope(factory, null, { + statusCode, + headers, + opaque, + context + }); + if (!res || typeof res.write !== "function" || typeof res.end !== "function" || typeof res.on !== "function") { + throw new InvalidReturnValueError("expected Writable"); + } + finished(res, { readable: false }, (err) => { + const { callback: callback2, res: res2, opaque: opaque2, trailers, abort } = this; + this.res = null; + if (err || !res2.readable) { + util.destroy(res2, err); + } + this.callback = null; + this.runInAsyncScope(callback2, null, err || null, { opaque: opaque2, trailers }); + if (err) { + abort(); + } + }); + } + res.on("drain", resume); + this.res = res; + const needDrain = res.writableNeedDrain !== void 0 ? res.writableNeedDrain : res._writableState && res._writableState.needDrain; + return needDrain !== true; + } + onData(chunk) { + const { res } = this; + return res ? res.write(chunk) : true; + } + onComplete(trailers) { + const { res } = this; + removeSignal(this); + if (!res) { + return; + } + this.trailers = util.parseHeaders(trailers); + res.end(); + } + onError(err) { + const { res, callback, opaque, body } = this; + removeSignal(this); + this.factory = null; + if (res) { + this.res = null; + util.destroy(res, err); + } else if (callback) { + this.callback = null; + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }); + }); + } + if (body) { + this.body = null; + util.destroy(body, err); + } + } + }; + function stream(opts, factory, callback) { + if (callback === void 0) { + return new Promise((resolve, reject) => { + stream.call(this, opts, factory, (err, data) => { + return err ? reject(err) : resolve(data); + }); + }); + } + try { + this.dispatch(opts, new StreamHandler(opts, factory, callback)); + } catch (err) { + if (typeof callback !== "function") { + throw err; + } + const opaque = opts && opts.opaque; + queueMicrotask(() => callback(err, { opaque })); + } + } + module2.exports = stream; + } +}); + +// node_modules/undici/lib/api/api-pipeline.js +var require_api_pipeline = __commonJS({ + "node_modules/undici/lib/api/api-pipeline.js"(exports2, module2) { + "use strict"; + var { + Readable, + Duplex, + PassThrough + } = require("stream"); + var { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError + } = require_errors(); + var util = require_util(); + var { AsyncResource } = require("async_hooks"); + var { addSignal, removeSignal } = require_abort_signal(); + var assert2 = require("assert"); + var kResume = Symbol("resume"); + var PipelineRequest = class extends Readable { + constructor() { + super({ autoDestroy: true }); + this[kResume] = null; + } + _read() { + const { [kResume]: resume } = this; + if (resume) { + this[kResume] = null; + resume(); + } + } + _destroy(err, callback) { + this._read(); + callback(err); + } + }; + var PipelineResponse = class extends Readable { + constructor(resume) { + super({ autoDestroy: true }); + this[kResume] = resume; + } + _read() { + this[kResume](); + } + _destroy(err, callback) { + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError(); + } + callback(err); + } + }; + var PipelineHandler = class extends AsyncResource { + constructor(opts, handler) { + if (!opts || typeof opts !== "object") { + throw new InvalidArgumentError("invalid opts"); + } + if (typeof handler !== "function") { + throw new InvalidArgumentError("invalid handler"); + } + const { signal, method: method2, opaque, onInfo, responseHeaders } = opts; + if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { + throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); + } + if (method2 === "CONNECT") { + throw new InvalidArgumentError("invalid method"); + } + if (onInfo && typeof onInfo !== "function") { + throw new InvalidArgumentError("invalid onInfo callback"); + } + super("UNDICI_PIPELINE"); + this.opaque = opaque || null; + this.responseHeaders = responseHeaders || null; + this.handler = handler; + this.abort = null; + this.context = null; + this.onInfo = onInfo || null; + this.req = new PipelineRequest().on("error", util.nop); + this.ret = new Duplex({ + readableObjectMode: opts.objectMode, + autoDestroy: true, + read: () => { + const { body } = this; + if (body && body.resume) { + body.resume(); + } + }, + write: (chunk, encoding, callback) => { + const { req } = this; + if (req.push(chunk, encoding) || req._readableState.destroyed) { + callback(); + } else { + req[kResume] = callback; + } + }, + destroy: (err, callback) => { + const { body, req, res, ret, abort } = this; + if (!err && !ret._readableState.endEmitted) { + err = new RequestAbortedError(); + } + if (abort && err) { + abort(); + } + util.destroy(body, err); + util.destroy(req, err); + util.destroy(res, err); + removeSignal(this); + callback(err); + } + }).on("prefinish", () => { + const { req } = this; + req.push(null); + }); + this.res = null; + addSignal(this, signal); + } + onConnect(abort, context) { + const { ret, res } = this; + assert2(!res, "pipeline cannot be retried"); + if (ret.destroyed) { + throw new RequestAbortedError(); + } + this.abort = abort; + this.context = context; + } + onHeaders(statusCode, rawHeaders, resume) { + const { opaque, handler, context } = this; + if (statusCode < 200) { + if (this.onInfo) { + const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + this.onInfo({ statusCode, headers }); + } + return; + } + this.res = new PipelineResponse(resume); + let body; + try { + this.handler = null; + const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + body = this.runInAsyncScope(handler, null, { + statusCode, + headers, + opaque, + body: this.res, + context + }); + } catch (err) { + this.res.on("error", util.nop); + throw err; + } + if (!body || typeof body.on !== "function") { + throw new InvalidReturnValueError("expected Readable"); + } + body.on("data", (chunk) => { + const { ret, body: body2 } = this; + if (!ret.push(chunk) && body2.pause) { + body2.pause(); + } + }).on("error", (err) => { + const { ret } = this; + util.destroy(ret, err); + }).on("end", () => { + const { ret } = this; + ret.push(null); + }).on("close", () => { + const { ret } = this; + if (!ret._readableState.ended) { + util.destroy(ret, new RequestAbortedError()); + } + }); + this.body = body; + } + onData(chunk) { + const { res } = this; + return res.push(chunk); + } + onComplete(trailers) { + const { res } = this; + res.push(null); + } + onError(err) { + const { ret } = this; + this.handler = null; + util.destroy(ret, err); + } + }; + function pipeline(opts, handler) { + try { + const pipelineHandler = new PipelineHandler(opts, handler); + this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler); + return pipelineHandler.ret; + } catch (err) { + return new PassThrough().destroy(err); + } + } + module2.exports = pipeline; + } +}); + +// node_modules/undici/lib/api/api-upgrade.js +var require_api_upgrade = __commonJS({ + "node_modules/undici/lib/api/api-upgrade.js"(exports2, module2) { + "use strict"; + var { InvalidArgumentError, RequestAbortedError, SocketError } = require_errors(); + var { AsyncResource } = require("async_hooks"); + var util = require_util(); + var { addSignal, removeSignal } = require_abort_signal(); + var assert2 = require("assert"); + var UpgradeHandler = class extends AsyncResource { + constructor(opts, callback) { + if (!opts || typeof opts !== "object") { + throw new InvalidArgumentError("invalid opts"); + } + if (typeof callback !== "function") { + throw new InvalidArgumentError("invalid callback"); + } + const { signal, opaque, responseHeaders } = opts; + if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { + throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); + } + super("UNDICI_UPGRADE"); + this.responseHeaders = responseHeaders || null; + this.opaque = opaque || null; + this.callback = callback; + this.abort = null; + this.context = null; + addSignal(this, signal); + } + onConnect(abort, context) { + if (!this.callback) { + throw new RequestAbortedError(); + } + this.abort = abort; + this.context = null; + } + onHeaders() { + throw new SocketError("bad upgrade", null); + } + onUpgrade(statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this; + assert2.strictEqual(statusCode, 101); + removeSignal(this); + this.callback = null; + const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + this.runInAsyncScope(callback, null, null, { + headers, + socket, + opaque, + context + }); + } + onError(err) { + const { callback, opaque } = this; + removeSignal(this); + if (callback) { + this.callback = null; + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }); + }); + } + } + }; + function upgrade(opts, callback) { + if (callback === void 0) { + return new Promise((resolve, reject) => { + upgrade.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data); + }); + }); + } + try { + const upgradeHandler = new UpgradeHandler(opts, callback); + this.dispatch({ + ...opts, + method: opts.method || "GET", + upgrade: opts.protocol || "Websocket" + }, upgradeHandler); + } catch (err) { + if (typeof callback !== "function") { + throw err; + } + const opaque = opts && opts.opaque; + queueMicrotask(() => callback(err, { opaque })); + } + } + module2.exports = upgrade; + } +}); + +// node_modules/undici/lib/api/api-connect.js +var require_api_connect = __commonJS({ + "node_modules/undici/lib/api/api-connect.js"(exports2, module2) { + "use strict"; + var { AsyncResource } = require("async_hooks"); + var { InvalidArgumentError, RequestAbortedError, SocketError } = require_errors(); + var util = require_util(); + var { addSignal, removeSignal } = require_abort_signal(); + var ConnectHandler = class extends AsyncResource { + constructor(opts, callback) { + if (!opts || typeof opts !== "object") { + throw new InvalidArgumentError("invalid opts"); + } + if (typeof callback !== "function") { + throw new InvalidArgumentError("invalid callback"); + } + const { signal, opaque, responseHeaders } = opts; + if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { + throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); + } + super("UNDICI_CONNECT"); + this.opaque = opaque || null; + this.responseHeaders = responseHeaders || null; + this.callback = callback; + this.abort = null; + addSignal(this, signal); + } + onConnect(abort, context) { + if (!this.callback) { + throw new RequestAbortedError(); + } + this.abort = abort; + this.context = context; + } + onHeaders() { + throw new SocketError("bad connect", null); + } + onUpgrade(statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this; + removeSignal(this); + this.callback = null; + let headers = rawHeaders; + if (headers != null) { + headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + } + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + socket, + opaque, + context + }); + } + onError(err) { + const { callback, opaque } = this; + removeSignal(this); + if (callback) { + this.callback = null; + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }); + }); + } + } + }; + function connect(opts, callback) { + if (callback === void 0) { + return new Promise((resolve, reject) => { + connect.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data); + }); + }); + } + try { + const connectHandler = new ConnectHandler(opts, callback); + this.dispatch({ ...opts, method: "CONNECT" }, connectHandler); + } catch (err) { + if (typeof callback !== "function") { + throw err; + } + const opaque = opts && opts.opaque; + queueMicrotask(() => callback(err, { opaque })); + } + } + module2.exports = connect; + } +}); + +// node_modules/undici/lib/api/index.js +var require_api = __commonJS({ + "node_modules/undici/lib/api/index.js"(exports2, module2) { + "use strict"; + module2.exports.request = require_api_request(); + module2.exports.stream = require_api_stream(); + module2.exports.pipeline = require_api_pipeline(); + module2.exports.upgrade = require_api_upgrade(); + module2.exports.connect = require_api_connect(); + } +}); + +// node_modules/undici/lib/mock/mock-errors.js +var require_mock_errors = __commonJS({ + "node_modules/undici/lib/mock/mock-errors.js"(exports2, module2) { + "use strict"; + var { UndiciError } = require_errors(); + var MockNotMatchedError = class _MockNotMatchedError extends UndiciError { + constructor(message) { + super(message); + Error.captureStackTrace(this, _MockNotMatchedError); + this.name = "MockNotMatchedError"; + this.message = message || "The request does not match any registered mock dispatches"; + this.code = "UND_MOCK_ERR_MOCK_NOT_MATCHED"; + } + }; + module2.exports = { + MockNotMatchedError + }; + } +}); + +// node_modules/undici/lib/mock/mock-symbols.js +var require_mock_symbols = __commonJS({ + "node_modules/undici/lib/mock/mock-symbols.js"(exports2, module2) { + "use strict"; + module2.exports = { + kAgent: Symbol("agent"), + kOptions: Symbol("options"), + kFactory: Symbol("factory"), + kDispatches: Symbol("dispatches"), + kDispatchKey: Symbol("dispatch key"), + kDefaultHeaders: Symbol("default headers"), + kDefaultTrailers: Symbol("default trailers"), + kContentLength: Symbol("content length"), + kMockAgent: Symbol("mock agent"), + kMockAgentSet: Symbol("mock agent set"), + kMockAgentGet: Symbol("mock agent get"), + kMockDispatch: Symbol("mock dispatch"), + kClose: Symbol("close"), + kOriginalClose: Symbol("original agent close"), + kOrigin: Symbol("origin"), + kIsMockActive: Symbol("is mock active"), + kNetConnect: Symbol("net connect"), + kGetNetConnect: Symbol("get net connect"), + kConnected: Symbol("connected") + }; + } +}); + +// node_modules/undici/lib/mock/mock-utils.js +var require_mock_utils = __commonJS({ + "node_modules/undici/lib/mock/mock-utils.js"(exports2, module2) { + "use strict"; + var { MockNotMatchedError } = require_mock_errors(); + var { + kDispatches, + kMockAgent, + kOriginalDispatch, + kOrigin, + kGetNetConnect + } = require_mock_symbols(); + var { buildURL, nop } = require_util(); + var { STATUS_CODES } = require("http"); + var { + types: { + isPromise + } + } = require("util"); + function matchValue(match, value) { + if (typeof match === "string") { + return match === value; + } + if (match instanceof RegExp) { + return match.test(value); + } + if (typeof match === "function") { + return match(value) === true; + } + return false; + } + function lowerCaseEntries(headers) { + return Object.fromEntries( + Object.entries(headers).map(([headerName, headerValue]) => { + return [headerName.toLocaleLowerCase(), headerValue]; + }) + ); + } + function getHeaderByName(headers, key) { + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { + return headers[i + 1]; + } + } + return void 0; + } else if (typeof headers.get === "function") { + return headers.get(key); + } else { + return lowerCaseEntries(headers)[key.toLocaleLowerCase()]; + } + } + function buildHeadersFromArray(headers) { + const clone2 = headers.slice(); + const entries = []; + for (let index = 0; index < clone2.length; index += 2) { + entries.push([clone2[index], clone2[index + 1]]); + } + return Object.fromEntries(entries); + } + function matchHeaders(mockDispatch2, headers) { + if (typeof mockDispatch2.headers === "function") { + if (Array.isArray(headers)) { + headers = buildHeadersFromArray(headers); + } + return mockDispatch2.headers(headers ? lowerCaseEntries(headers) : {}); + } + if (typeof mockDispatch2.headers === "undefined") { + return true; + } + if (typeof headers !== "object" || typeof mockDispatch2.headers !== "object") { + return false; + } + for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch2.headers)) { + const headerValue = getHeaderByName(headers, matchHeaderName); + if (!matchValue(matchHeaderValue, headerValue)) { + return false; + } + } + return true; + } + function safeUrl(path) { + if (typeof path !== "string") { + return path; + } + const pathSegments = path.split("?"); + if (pathSegments.length !== 2) { + return path; + } + const qp = new URLSearchParams(pathSegments.pop()); + qp.sort(); + return [...pathSegments, qp.toString()].join("?"); + } + function matchKey(mockDispatch2, { path, method: method2, body, headers }) { + const pathMatch = matchValue(mockDispatch2.path, path); + const methodMatch = matchValue(mockDispatch2.method, method2); + const bodyMatch = typeof mockDispatch2.body !== "undefined" ? matchValue(mockDispatch2.body, body) : true; + const headersMatch = matchHeaders(mockDispatch2, headers); + return pathMatch && methodMatch && bodyMatch && headersMatch; + } + function getResponseData(data) { + if (Buffer.isBuffer(data)) { + return data; + } else if (typeof data === "object") { + return JSON.stringify(data); + } else { + return data.toString(); + } + } + function getMockDispatch(mockDispatches, key) { + const basePath = key.query ? buildURL(key.path, key.query) : key.path; + const resolvedPath = typeof basePath === "string" ? safeUrl(basePath) : basePath; + let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath)); + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`); + } + matchedMockDispatches = matchedMockDispatches.filter(({ method: method2 }) => matchValue(method2, key.method)); + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`); + } + matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== "undefined" ? matchValue(body, key.body) : true); + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`); + } + matchedMockDispatches = matchedMockDispatches.filter((mockDispatch2) => matchHeaders(mockDispatch2, key.headers)); + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === "object" ? JSON.stringify(key.headers) : key.headers}'`); + } + return matchedMockDispatches[0]; + } + function addMockDispatch(mockDispatches, key, data) { + const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }; + const replyData = typeof data === "function" ? { callback: data } : { ...data }; + const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }; + mockDispatches.push(newMockDispatch); + return newMockDispatch; + } + function deleteMockDispatch(mockDispatches, key) { + const index = mockDispatches.findIndex((dispatch) => { + if (!dispatch.consumed) { + return false; + } + return matchKey(dispatch, key); + }); + if (index !== -1) { + mockDispatches.splice(index, 1); + } + } + function buildKey(opts) { + const { path, method: method2, body, headers, query } = opts; + return { + path, + method: method2, + body, + headers, + query + }; + } + function generateKeyValues(data) { + return Object.entries(data).reduce((keyValuePairs, [key, value]) => [ + ...keyValuePairs, + Buffer.from(`${key}`), + Array.isArray(value) ? value.map((x) => Buffer.from(`${x}`)) : Buffer.from(`${value}`) + ], []); + } + function getStatusText(statusCode) { + return STATUS_CODES[statusCode] || "unknown"; + } + async function getResponse(body) { + const buffers = []; + for await (const data of body) { + buffers.push(data); + } + return Buffer.concat(buffers).toString("utf8"); + } + function mockDispatch(opts, handler) { + const key = buildKey(opts); + const mockDispatch2 = getMockDispatch(this[kDispatches], key); + mockDispatch2.timesInvoked++; + if (mockDispatch2.data.callback) { + mockDispatch2.data = { ...mockDispatch2.data, ...mockDispatch2.data.callback(opts) }; + } + const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch2; + const { timesInvoked, times } = mockDispatch2; + mockDispatch2.consumed = !persist && timesInvoked >= times; + mockDispatch2.pending = timesInvoked < times; + if (error !== null) { + deleteMockDispatch(this[kDispatches], key); + handler.onError(error); + return true; + } + if (typeof delay === "number" && delay > 0) { + setTimeout(() => { + handleReply(this[kDispatches]); + }, delay); + } else { + handleReply(this[kDispatches]); + } + function handleReply(mockDispatches, _data = data) { + const optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers; + const body = typeof _data === "function" ? _data({ ...opts, headers: optsHeaders }) : _data; + if (isPromise(body)) { + body.then((newData) => handleReply(mockDispatches, newData)); + return; + } + const responseData = getResponseData(body); + const responseHeaders = generateKeyValues(headers); + const responseTrailers = generateKeyValues(trailers); + handler.abort = nop; + handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)); + handler.onData(Buffer.from(responseData)); + handler.onComplete(responseTrailers); + deleteMockDispatch(mockDispatches, key); + } + function resume() { + } + return true; + } + function buildMockDispatch() { + const agent = this[kMockAgent]; + const origin = this[kOrigin]; + const originalDispatch = this[kOriginalDispatch]; + return function dispatch(opts, handler) { + if (agent.isMockActive) { + try { + mockDispatch.call(this, opts, handler); + } catch (error) { + if (error instanceof MockNotMatchedError) { + const netConnect = agent[kGetNetConnect](); + if (netConnect === false) { + throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); + } + if (checkNetConnect(netConnect, origin)) { + originalDispatch.call(this, opts, handler); + } else { + throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); + } + } else { + throw error; + } + } + } else { + originalDispatch.call(this, opts, handler); + } + }; + } + function checkNetConnect(netConnect, origin) { + const url = new URL(origin); + if (netConnect === true) { + return true; + } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { + return true; + } + return false; + } + function buildMockOptions(opts) { + if (opts) { + const { agent, ...mockOptions } = opts; + return mockOptions; + } + } + module2.exports = { + getResponseData, + getMockDispatch, + addMockDispatch, + deleteMockDispatch, + buildKey, + generateKeyValues, + matchValue, + getResponse, + getStatusText, + mockDispatch, + buildMockDispatch, + checkNetConnect, + buildMockOptions, + getHeaderByName + }; + } +}); + +// node_modules/undici/lib/mock/mock-interceptor.js +var require_mock_interceptor = __commonJS({ + "node_modules/undici/lib/mock/mock-interceptor.js"(exports2, module2) { + "use strict"; + var { getResponseData, buildKey, addMockDispatch } = require_mock_utils(); + var { + kDispatches, + kDispatchKey, + kDefaultHeaders, + kDefaultTrailers, + kContentLength, + kMockDispatch + } = require_mock_symbols(); + var { InvalidArgumentError } = require_errors(); + var { buildURL } = require_util(); + var MockScope = class { + constructor(mockDispatch) { + this[kMockDispatch] = mockDispatch; + } + /** + * Delay a reply by a set amount in ms. + */ + delay(waitInMs) { + if (typeof waitInMs !== "number" || !Number.isInteger(waitInMs) || waitInMs <= 0) { + throw new InvalidArgumentError("waitInMs must be a valid integer > 0"); + } + this[kMockDispatch].delay = waitInMs; + return this; + } + /** + * For a defined reply, never mark as consumed. + */ + persist() { + this[kMockDispatch].persist = true; + return this; + } + /** + * Allow one to define a reply for a set amount of matching requests. + */ + times(repeatTimes) { + if (typeof repeatTimes !== "number" || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { + throw new InvalidArgumentError("repeatTimes must be a valid integer > 0"); + } + this[kMockDispatch].times = repeatTimes; + return this; + } + }; + var MockInterceptor = class { + constructor(opts, mockDispatches) { + if (typeof opts !== "object") { + throw new InvalidArgumentError("opts must be an object"); + } + if (typeof opts.path === "undefined") { + throw new InvalidArgumentError("opts.path must be defined"); + } + if (typeof opts.method === "undefined") { + opts.method = "GET"; + } + if (typeof opts.path === "string") { + if (opts.query) { + opts.path = buildURL(opts.path, opts.query); + } else { + const parsedURL = new URL(opts.path, "data://"); + opts.path = parsedURL.pathname + parsedURL.search; + } + } + if (typeof opts.method === "string") { + opts.method = opts.method.toUpperCase(); + } + this[kDispatchKey] = buildKey(opts); + this[kDispatches] = mockDispatches; + this[kDefaultHeaders] = {}; + this[kDefaultTrailers] = {}; + this[kContentLength] = false; + } + createMockScopeDispatchData(statusCode, data, responseOptions = {}) { + const responseData = getResponseData(data); + const contentLength = this[kContentLength] ? { "content-length": responseData.length } : {}; + const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }; + const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }; + return { statusCode, data, headers, trailers }; + } + validateReplyParameters(statusCode, data, responseOptions) { + if (typeof statusCode === "undefined") { + throw new InvalidArgumentError("statusCode must be defined"); + } + if (typeof data === "undefined") { + throw new InvalidArgumentError("data must be defined"); + } + if (typeof responseOptions !== "object") { + throw new InvalidArgumentError("responseOptions must be an object"); + } + } + /** + * Mock an undici request with a defined reply. + */ + reply(replyData) { + if (typeof replyData === "function") { + const wrappedDefaultsCallback = (opts) => { + const resolvedData = replyData(opts); + if (typeof resolvedData !== "object") { + throw new InvalidArgumentError("reply options callback must return an object"); + } + const { statusCode: statusCode2, data: data2 = "", responseOptions: responseOptions2 = {} } = resolvedData; + this.validateReplyParameters(statusCode2, data2, responseOptions2); + return { + ...this.createMockScopeDispatchData(statusCode2, data2, responseOptions2) + }; + }; + const newMockDispatch2 = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback); + return new MockScope(newMockDispatch2); + } + const [statusCode, data = "", responseOptions = {}] = [...arguments]; + this.validateReplyParameters(statusCode, data, responseOptions); + const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions); + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData); + return new MockScope(newMockDispatch); + } + /** + * Mock an undici request with a defined error. + */ + replyWithError(error) { + if (typeof error === "undefined") { + throw new InvalidArgumentError("error must be defined"); + } + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }); + return new MockScope(newMockDispatch); + } + /** + * Set default reply headers on the interceptor for subsequent replies + */ + defaultReplyHeaders(headers) { + if (typeof headers === "undefined") { + throw new InvalidArgumentError("headers must be defined"); + } + this[kDefaultHeaders] = headers; + return this; + } + /** + * Set default reply trailers on the interceptor for subsequent replies + */ + defaultReplyTrailers(trailers) { + if (typeof trailers === "undefined") { + throw new InvalidArgumentError("trailers must be defined"); + } + this[kDefaultTrailers] = trailers; + return this; + } + /** + * Set reply content length header for replies on the interceptor + */ + replyContentLength() { + this[kContentLength] = true; + return this; + } + }; + module2.exports.MockInterceptor = MockInterceptor; + module2.exports.MockScope = MockScope; + } +}); + +// node_modules/undici/lib/mock/mock-client.js +var require_mock_client = __commonJS({ + "node_modules/undici/lib/mock/mock-client.js"(exports2, module2) { + "use strict"; + var { promisify } = require("util"); + var Client = require_client(); + var { buildMockDispatch } = require_mock_utils(); + var { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected + } = require_mock_symbols(); + var { MockInterceptor } = require_mock_interceptor(); + var Symbols = require_symbols(); + var { InvalidArgumentError } = require_errors(); + var MockClient = class extends Client { + constructor(origin, opts) { + super(origin, opts); + if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { + throw new InvalidArgumentError("Argument opts.agent must implement Agent"); + } + this[kMockAgent] = opts.agent; + this[kOrigin] = origin; + this[kDispatches] = []; + this[kConnected] = 1; + this[kOriginalDispatch] = this.dispatch; + this[kOriginalClose] = this.close.bind(this); + this.dispatch = buildMockDispatch.call(this); + this.close = this[kClose]; + } + get [Symbols.kConnected]() { + return this[kConnected]; + } + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept(opts) { + return new MockInterceptor(opts, this[kDispatches]); + } + async [kClose]() { + await promisify(this[kOriginalClose])(); + this[kConnected] = 0; + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); + } + }; + module2.exports = MockClient; + } +}); + +// node_modules/undici/lib/mock/mock-pool.js +var require_mock_pool = __commonJS({ + "node_modules/undici/lib/mock/mock-pool.js"(exports2, module2) { + "use strict"; + var { promisify } = require("util"); + var Pool = require_pool(); + var { buildMockDispatch } = require_mock_utils(); + var { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected + } = require_mock_symbols(); + var { MockInterceptor } = require_mock_interceptor(); + var Symbols = require_symbols(); + var { InvalidArgumentError } = require_errors(); + var MockPool = class extends Pool { + constructor(origin, opts) { + super(origin, opts); + if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { + throw new InvalidArgumentError("Argument opts.agent must implement Agent"); + } + this[kMockAgent] = opts.agent; + this[kOrigin] = origin; + this[kDispatches] = []; + this[kConnected] = 1; + this[kOriginalDispatch] = this.dispatch; + this[kOriginalClose] = this.close.bind(this); + this.dispatch = buildMockDispatch.call(this); + this.close = this[kClose]; + } + get [Symbols.kConnected]() { + return this[kConnected]; + } + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept(opts) { + return new MockInterceptor(opts, this[kDispatches]); + } + async [kClose]() { + await promisify(this[kOriginalClose])(); + this[kConnected] = 0; + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); + } + }; + module2.exports = MockPool; + } +}); + +// node_modules/undici/lib/mock/pluralizer.js +var require_pluralizer = __commonJS({ + "node_modules/undici/lib/mock/pluralizer.js"(exports2, module2) { + "use strict"; + var singulars = { + pronoun: "it", + is: "is", + was: "was", + this: "this" + }; + var plurals = { + pronoun: "they", + is: "are", + was: "were", + this: "these" + }; + module2.exports = class Pluralizer { + constructor(singular, plural) { + this.singular = singular; + this.plural = plural; + } + pluralize(count) { + const one = count === 1; + const keys = one ? singulars : plurals; + const noun = one ? this.singular : this.plural; + return { ...keys, count, noun }; + } + }; + } +}); + +// node_modules/undici/lib/mock/pending-interceptors-formatter.js +var require_pending_interceptors_formatter = __commonJS({ + "node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports2, module2) { + "use strict"; + var { Transform } = require("stream"); + var { Console } = require("console"); + module2.exports = class PendingInterceptorsFormatter { + constructor({ disableColors } = {}) { + this.transform = new Transform({ + transform(chunk, _enc, cb) { + cb(null, chunk); + } + }); + this.logger = new Console({ + stdout: this.transform, + inspectOptions: { + colors: !disableColors && !process.env.CI + } + }); + } + format(pendingInterceptors) { + const withPrettyHeaders = pendingInterceptors.map( + ({ method: method2, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ + Method: method2, + Origin: origin, + Path: path, + "Status code": statusCode, + Persistent: persist ? "\u2705" : "\u274C", + Invocations: timesInvoked, + Remaining: persist ? Infinity : times - timesInvoked + }) + ); + this.logger.table(withPrettyHeaders); + return this.transform.read().toString(); + } + }; + } +}); + +// node_modules/undici/lib/mock/mock-agent.js +var require_mock_agent = __commonJS({ + "node_modules/undici/lib/mock/mock-agent.js"(exports2, module2) { + "use strict"; + var { kClients } = require_symbols(); + var Agent = require_agent(); + var { + kAgent, + kMockAgentSet, + kMockAgentGet, + kDispatches, + kIsMockActive, + kNetConnect, + kGetNetConnect, + kOptions, + kFactory + } = require_mock_symbols(); + var MockClient = require_mock_client(); + var MockPool = require_mock_pool(); + var { matchValue, buildMockOptions } = require_mock_utils(); + var { InvalidArgumentError, UndiciError } = require_errors(); + var Dispatcher = require_dispatcher(); + var Pluralizer = require_pluralizer(); + var PendingInterceptorsFormatter = require_pending_interceptors_formatter(); + var FakeWeakRef = class { + constructor(value) { + this.value = value; + } + deref() { + return this.value; + } + }; + var MockAgent = class extends Dispatcher { + constructor(opts) { + super(opts); + this[kNetConnect] = true; + this[kIsMockActive] = true; + if (opts && opts.agent && typeof opts.agent.dispatch !== "function") { + throw new InvalidArgumentError("Argument opts.agent must implement Agent"); + } + const agent = opts && opts.agent ? opts.agent : new Agent(opts); + this[kAgent] = agent; + this[kClients] = agent[kClients]; + this[kOptions] = buildMockOptions(opts); + } + get(origin) { + let dispatcher = this[kMockAgentGet](origin); + if (!dispatcher) { + dispatcher = this[kFactory](origin); + this[kMockAgentSet](origin, dispatcher); + } + return dispatcher; + } + dispatch(opts, handler) { + this.get(opts.origin); + return this[kAgent].dispatch(opts, handler); + } + async close() { + await this[kAgent].close(); + this[kClients].clear(); + } + deactivate() { + this[kIsMockActive] = false; + } + activate() { + this[kIsMockActive] = true; + } + enableNetConnect(matcher) { + if (typeof matcher === "string" || typeof matcher === "function" || matcher instanceof RegExp) { + if (Array.isArray(this[kNetConnect])) { + this[kNetConnect].push(matcher); + } else { + this[kNetConnect] = [matcher]; + } + } else if (typeof matcher === "undefined") { + this[kNetConnect] = true; + } else { + throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp."); + } + } + disableNetConnect() { + this[kNetConnect] = false; + } + // This is required to bypass issues caused by using global symbols - see: + // https://github.com/nodejs/undici/issues/1447 + get isMockActive() { + return this[kIsMockActive]; + } + [kMockAgentSet](origin, dispatcher) { + this[kClients].set(origin, new FakeWeakRef(dispatcher)); + } + [kFactory](origin) { + const mockOptions = Object.assign({ agent: this }, this[kOptions]); + return this[kOptions] && this[kOptions].connections === 1 ? new MockClient(origin, mockOptions) : new MockPool(origin, mockOptions); + } + [kMockAgentGet](origin) { + const ref = this[kClients].get(origin); + if (ref) { + return ref.deref(); + } + if (typeof origin !== "string") { + const dispatcher = this[kFactory]("http://localhost:9999"); + this[kMockAgentSet](origin, dispatcher); + return dispatcher; + } + for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) { + const nonExplicitDispatcher = nonExplicitRef.deref(); + if (nonExplicitDispatcher && typeof keyMatcher !== "string" && matchValue(keyMatcher, origin)) { + const dispatcher = this[kFactory](origin); + this[kMockAgentSet](origin, dispatcher); + dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]; + return dispatcher; + } + } + } + [kGetNetConnect]() { + return this[kNetConnect]; + } + pendingInterceptors() { + const mockAgentClients = this[kClients]; + return Array.from(mockAgentClients.entries()).flatMap(([origin, scope]) => scope.deref()[kDispatches].map((dispatch) => ({ ...dispatch, origin }))).filter(({ pending }) => pending); + } + assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { + const pending = this.pendingInterceptors(); + if (pending.length === 0) { + return; + } + const pluralizer = new Pluralizer("interceptor", "interceptors").pluralize(pending.length); + throw new UndiciError(` +${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: + +${pendingInterceptorsFormatter.format(pending)} +`.trim()); + } + }; + module2.exports = MockAgent; + } +}); + +// node_modules/undici/lib/proxy-agent.js +var require_proxy_agent = __commonJS({ + "node_modules/undici/lib/proxy-agent.js"(exports2, module2) { + "use strict"; + var { kProxy, kClose, kDestroy, kInterceptors } = require_symbols(); + var { URL: URL3 } = require("url"); + var Agent = require_agent(); + var Pool = require_pool(); + var DispatcherBase = require_dispatcher_base(); + var { InvalidArgumentError, RequestAbortedError } = require_errors(); + var buildConnector = require_connect(); + var kAgent = Symbol("proxy agent"); + var kClient = Symbol("proxy client"); + var kProxyHeaders = Symbol("proxy headers"); + var kRequestTls = Symbol("request tls settings"); + var kProxyTls = Symbol("proxy tls settings"); + var kConnectEndpoint = Symbol("connect endpoint function"); + function defaultProtocolPort(protocol) { + return protocol === "https:" ? 443 : 80; + } + function buildProxyOptions(opts) { + if (typeof opts === "string") { + opts = { uri: opts }; + } + if (!opts || !opts.uri) { + throw new InvalidArgumentError("Proxy opts.uri is mandatory"); + } + return { + uri: opts.uri, + protocol: opts.protocol || "https" + }; + } + function defaultFactory(origin, opts) { + return new Pool(origin, opts); + } + var ProxyAgent = class extends DispatcherBase { + constructor(opts) { + super(opts); + this[kProxy] = buildProxyOptions(opts); + this[kAgent] = new Agent(opts); + this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; + if (typeof opts === "string") { + opts = { uri: opts }; + } + if (!opts || !opts.uri) { + throw new InvalidArgumentError("Proxy opts.uri is mandatory"); + } + const { clientFactory = defaultFactory } = opts; + if (typeof clientFactory !== "function") { + throw new InvalidArgumentError("Proxy opts.clientFactory must be a function."); + } + this[kRequestTls] = opts.requestTls; + this[kProxyTls] = opts.proxyTls; + this[kProxyHeaders] = opts.headers || {}; + const resolvedUrl = new URL3(opts.uri); + const { origin, port, host, username, password } = resolvedUrl; + if (opts.auth && opts.token) { + throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token"); + } else if (opts.auth) { + this[kProxyHeaders]["proxy-authorization"] = `Basic ${opts.auth}`; + } else if (opts.token) { + this[kProxyHeaders]["proxy-authorization"] = opts.token; + } else if (username && password) { + this[kProxyHeaders]["proxy-authorization"] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`; + } + const connect = buildConnector({ ...opts.proxyTls }); + this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }); + this[kClient] = clientFactory(resolvedUrl, { connect }); + this[kAgent] = new Agent({ + ...opts, + connect: async (opts2, callback) => { + let requestedHost = opts2.host; + if (!opts2.port) { + requestedHost += `:${defaultProtocolPort(opts2.protocol)}`; + } + try { + const { socket, statusCode } = await this[kClient].connect({ + origin, + port, + path: requestedHost, + signal: opts2.signal, + headers: { + ...this[kProxyHeaders], + host + } + }); + if (statusCode !== 200) { + socket.on("error", () => { + }).destroy(); + callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)); + } + if (opts2.protocol !== "https:") { + callback(null, socket); + return; + } + let servername; + if (this[kRequestTls]) { + servername = this[kRequestTls].servername; + } else { + servername = opts2.servername; + } + this[kConnectEndpoint]({ ...opts2, servername, httpSocket: socket }, callback); + } catch (err) { + callback(err); + } + } + }); + } + dispatch(opts, handler) { + const { host } = new URL3(opts.origin); + const headers = buildHeaders(opts.headers); + throwIfProxyAuthIsSent(headers); + return this[kAgent].dispatch( + { + ...opts, + headers: { + ...headers, + host + } + }, + handler + ); + } + async [kClose]() { + await this[kAgent].close(); + await this[kClient].close(); + } + async [kDestroy]() { + await this[kAgent].destroy(); + await this[kClient].destroy(); + } + }; + function buildHeaders(headers) { + if (Array.isArray(headers)) { + const headersPair = {}; + for (let i = 0; i < headers.length; i += 2) { + headersPair[headers[i]] = headers[i + 1]; + } + return headersPair; + } + return headers; + } + function throwIfProxyAuthIsSent(headers) { + const existProxyAuth = headers && Object.keys(headers).find((key) => key.toLowerCase() === "proxy-authorization"); + if (existProxyAuth) { + throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); + } + } + module2.exports = ProxyAgent; + } +}); + +// node_modules/undici/lib/handler/RetryHandler.js +var require_RetryHandler = __commonJS({ + "node_modules/undici/lib/handler/RetryHandler.js"(exports2, module2) { + var assert2 = require("assert"); + var { kRetryHandlerDefaultRetry } = require_symbols(); + var { RequestRetryError } = require_errors(); + var { isDisturbed, parseHeaders, parseRangeHeader } = require_util(); + function calculateRetryAfterHeader(retryAfter) { + const current = Date.now(); + const diff = new Date(retryAfter).getTime() - current; + return diff; + } + var RetryHandler = class _RetryHandler { + constructor(opts, handlers) { + const { retryOptions, ...dispatchOpts } = opts; + const { + // Retry scoped + retry: retryFn, + maxRetries, + maxTimeout, + minTimeout, + timeoutFactor, + // Response scoped + methods, + errorCodes, + retryAfter, + statusCodes + } = retryOptions ?? {}; + this.dispatch = handlers.dispatch; + this.handler = handlers.handler; + this.opts = dispatchOpts; + this.abort = null; + this.aborted = false; + this.retryOpts = { + retry: retryFn ?? _RetryHandler[kRetryHandlerDefaultRetry], + retryAfter: retryAfter ?? true, + maxTimeout: maxTimeout ?? 30 * 1e3, + // 30s, + timeout: minTimeout ?? 500, + // .5s + timeoutFactor: timeoutFactor ?? 2, + maxRetries: maxRetries ?? 5, + // What errors we should retry + methods: methods ?? ["GET", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE"], + // Indicates which errors to retry + statusCodes: statusCodes ?? [500, 502, 503, 504, 429], + // List of errors to retry + errorCodes: errorCodes ?? [ + "ECONNRESET", + "ECONNREFUSED", + "ENOTFOUND", + "ENETDOWN", + "ENETUNREACH", + "EHOSTDOWN", + "EHOSTUNREACH", + "EPIPE" + ] + }; + this.retryCount = 0; + this.start = 0; + this.end = null; + this.etag = null; + this.resume = null; + this.handler.onConnect((reason) => { + this.aborted = true; + if (this.abort) { + this.abort(reason); + } else { + this.reason = reason; + } + }); + } + onRequestSent() { + if (this.handler.onRequestSent) { + this.handler.onRequestSent(); + } + } + onUpgrade(statusCode, headers, socket) { + if (this.handler.onUpgrade) { + this.handler.onUpgrade(statusCode, headers, socket); + } + } + onConnect(abort) { + if (this.aborted) { + abort(this.reason); + } else { + this.abort = abort; + } + } + onBodySent(chunk) { + if (this.handler.onBodySent) return this.handler.onBodySent(chunk); + } + static [kRetryHandlerDefaultRetry](err, { state, opts }, cb) { + const { statusCode, code, headers } = err; + const { method: method2, retryOptions } = opts; + const { + maxRetries, + timeout, + maxTimeout, + timeoutFactor, + statusCodes, + errorCodes, + methods + } = retryOptions; + let { counter, currentTimeout } = state; + currentTimeout = currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout; + if (code && code !== "UND_ERR_REQ_RETRY" && code !== "UND_ERR_SOCKET" && !errorCodes.includes(code)) { + cb(err); + return; + } + if (Array.isArray(methods) && !methods.includes(method2)) { + cb(err); + return; + } + if (statusCode != null && Array.isArray(statusCodes) && !statusCodes.includes(statusCode)) { + cb(err); + return; + } + if (counter > maxRetries) { + cb(err); + return; + } + let retryAfterHeader = headers != null && headers["retry-after"]; + if (retryAfterHeader) { + retryAfterHeader = Number(retryAfterHeader); + retryAfterHeader = isNaN(retryAfterHeader) ? calculateRetryAfterHeader(retryAfterHeader) : retryAfterHeader * 1e3; + } + const retryTimeout = retryAfterHeader > 0 ? Math.min(retryAfterHeader, maxTimeout) : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout); + state.currentTimeout = retryTimeout; + setTimeout(() => cb(null), retryTimeout); + } + onHeaders(statusCode, rawHeaders, resume, statusMessage) { + const headers = parseHeaders(rawHeaders); + this.retryCount += 1; + if (statusCode >= 300) { + this.abort( + new RequestRetryError("Request failed", statusCode, { + headers, + count: this.retryCount + }) + ); + return false; + } + if (this.resume != null) { + this.resume = null; + if (statusCode !== 206) { + return true; + } + const contentRange = parseRangeHeader(headers["content-range"]); + if (!contentRange) { + this.abort( + new RequestRetryError("Content-Range mismatch", statusCode, { + headers, + count: this.retryCount + }) + ); + return false; + } + if (this.etag != null && this.etag !== headers.etag) { + this.abort( + new RequestRetryError("ETag mismatch", statusCode, { + headers, + count: this.retryCount + }) + ); + return false; + } + const { start, size, end = size } = contentRange; + assert2(this.start === start, "content-range mismatch"); + assert2(this.end == null || this.end === end, "content-range mismatch"); + this.resume = resume; + return true; + } + if (this.end == null) { + if (statusCode === 206) { + const range = parseRangeHeader(headers["content-range"]); + if (range == null) { + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ); + } + const { start, size, end = size } = range; + assert2( + start != null && Number.isFinite(start) && this.start !== start, + "content-range mismatch" + ); + assert2(Number.isFinite(start)); + assert2( + end != null && Number.isFinite(end) && this.end !== end, + "invalid content-length" + ); + this.start = start; + this.end = end; + } + if (this.end == null) { + const contentLength = headers["content-length"]; + this.end = contentLength != null ? Number(contentLength) : null; + } + assert2(Number.isFinite(this.start)); + assert2( + this.end == null || Number.isFinite(this.end), + "invalid content-length" + ); + this.resume = resume; + this.etag = headers.etag != null ? headers.etag : null; + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ); + } + const err = new RequestRetryError("Request failed", statusCode, { + headers, + count: this.retryCount + }); + this.abort(err); + return false; + } + onData(chunk) { + this.start += chunk.length; + return this.handler.onData(chunk); + } + onComplete(rawTrailers) { + this.retryCount = 0; + return this.handler.onComplete(rawTrailers); + } + onError(err) { + if (this.aborted || isDisturbed(this.opts.body)) { + return this.handler.onError(err); + } + this.retryOpts.retry( + err, + { + state: { counter: this.retryCount++, currentTimeout: this.retryAfter }, + opts: { retryOptions: this.retryOpts, ...this.opts } + }, + onRetry.bind(this) + ); + function onRetry(err2) { + if (err2 != null || this.aborted || isDisturbed(this.opts.body)) { + return this.handler.onError(err2); + } + if (this.start !== 0) { + this.opts = { + ...this.opts, + headers: { + ...this.opts.headers, + range: `bytes=${this.start}-${this.end ?? ""}` + } + }; + } + try { + this.dispatch(this.opts, this); + } catch (err3) { + this.handler.onError(err3); + } + } + } + }; + module2.exports = RetryHandler; + } +}); + +// node_modules/undici/lib/global.js +var require_global2 = __commonJS({ + "node_modules/undici/lib/global.js"(exports2, module2) { + "use strict"; + var globalDispatcher = Symbol.for("undici.globalDispatcher.1"); + var { InvalidArgumentError } = require_errors(); + var Agent = require_agent(); + if (getGlobalDispatcher() === void 0) { + setGlobalDispatcher(new Agent()); + } + function setGlobalDispatcher(agent) { + if (!agent || typeof agent.dispatch !== "function") { + throw new InvalidArgumentError("Argument agent must implement Agent"); + } + Object.defineProperty(globalThis, globalDispatcher, { + value: agent, + writable: true, + enumerable: false, + configurable: false + }); + } + function getGlobalDispatcher() { + return globalThis[globalDispatcher]; + } + module2.exports = { + setGlobalDispatcher, + getGlobalDispatcher + }; + } +}); + +// node_modules/undici/lib/handler/DecoratorHandler.js +var require_DecoratorHandler = __commonJS({ + "node_modules/undici/lib/handler/DecoratorHandler.js"(exports2, module2) { + "use strict"; + module2.exports = class DecoratorHandler { + constructor(handler) { + this.handler = handler; + } + onConnect(...args) { + return this.handler.onConnect(...args); + } + onError(...args) { + return this.handler.onError(...args); + } + onUpgrade(...args) { + return this.handler.onUpgrade(...args); + } + onHeaders(...args) { + return this.handler.onHeaders(...args); + } + onData(...args) { + return this.handler.onData(...args); + } + onComplete(...args) { + return this.handler.onComplete(...args); + } + onBodySent(...args) { + return this.handler.onBodySent(...args); + } + }; + } +}); + +// node_modules/undici/lib/fetch/headers.js +var require_headers = __commonJS({ + "node_modules/undici/lib/fetch/headers.js"(exports2, module2) { + "use strict"; + var { kHeadersList, kConstruct } = require_symbols(); + var { kGuard } = require_symbols2(); + var { kEnumerableProperty } = require_util(); + var { + makeIterator, + isValidHeaderName, + isValidHeaderValue + } = require_util2(); + var util = require("util"); + var { webidl } = require_webidl(); + var assert2 = require("assert"); + var kHeadersMap = Symbol("headers map"); + var kHeadersSortedMap = Symbol("headers map sorted"); + function isHTTPWhiteSpaceCharCode(code) { + return code === 10 || code === 13 || code === 9 || code === 32; + } + function headerValueNormalize(potentialValue) { + let i = 0; + let j = potentialValue.length; + while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j; + while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i; + return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j); + } + function fill(headers, object) { + if (Array.isArray(object)) { + for (let i = 0; i < object.length; ++i) { + const header = object[i]; + if (header.length !== 2) { + throw webidl.errors.exception({ + header: "Headers constructor", + message: `expected name/value pair to be length 2, found ${header.length}.` + }); + } + appendHeader(headers, header[0], header[1]); + } + } else if (typeof object === "object" && object !== null) { + const keys = Object.keys(object); + for (let i = 0; i < keys.length; ++i) { + appendHeader(headers, keys[i], object[keys[i]]); + } + } else { + throw webidl.errors.conversionFailed({ + prefix: "Headers constructor", + argument: "Argument 1", + types: ["sequence>", "record"] + }); + } + } + function appendHeader(headers, name, value) { + value = headerValueNormalize(value); + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: "Headers.append", + value: name, + type: "header name" + }); + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: "Headers.append", + value, + type: "header value" + }); + } + if (headers[kGuard] === "immutable") { + throw new TypeError("immutable"); + } else if (headers[kGuard] === "request-no-cors") { + } + return headers[kHeadersList].append(name, value); + } + var HeadersList = class _HeadersList { + /** @type {[string, string][]|null} */ + cookies = null; + constructor(init) { + if (init instanceof _HeadersList) { + this[kHeadersMap] = new Map(init[kHeadersMap]); + this[kHeadersSortedMap] = init[kHeadersSortedMap]; + this.cookies = init.cookies === null ? null : [...init.cookies]; + } else { + this[kHeadersMap] = new Map(init); + this[kHeadersSortedMap] = null; + } + } + // https://fetch.spec.whatwg.org/#header-list-contains + contains(name) { + name = name.toLowerCase(); + return this[kHeadersMap].has(name); + } + clear() { + this[kHeadersMap].clear(); + this[kHeadersSortedMap] = null; + this.cookies = null; + } + // https://fetch.spec.whatwg.org/#concept-header-list-append + append(name, value) { + this[kHeadersSortedMap] = null; + const lowercaseName = name.toLowerCase(); + const exists = this[kHeadersMap].get(lowercaseName); + if (exists) { + const delimiter = lowercaseName === "cookie" ? "; " : ", "; + this[kHeadersMap].set(lowercaseName, { + name: exists.name, + value: `${exists.value}${delimiter}${value}` + }); + } else { + this[kHeadersMap].set(lowercaseName, { name, value }); + } + if (lowercaseName === "set-cookie") { + this.cookies ??= []; + this.cookies.push(value); + } + } + // https://fetch.spec.whatwg.org/#concept-header-list-set + set(name, value) { + this[kHeadersSortedMap] = null; + const lowercaseName = name.toLowerCase(); + if (lowercaseName === "set-cookie") { + this.cookies = [value]; + } + this[kHeadersMap].set(lowercaseName, { name, value }); + } + // https://fetch.spec.whatwg.org/#concept-header-list-delete + delete(name) { + this[kHeadersSortedMap] = null; + name = name.toLowerCase(); + if (name === "set-cookie") { + this.cookies = null; + } + this[kHeadersMap].delete(name); + } + // https://fetch.spec.whatwg.org/#concept-header-list-get + get(name) { + const value = this[kHeadersMap].get(name.toLowerCase()); + return value === void 0 ? null : value.value; + } + *[Symbol.iterator]() { + for (const [name, { value }] of this[kHeadersMap]) { + yield [name, value]; + } + } + get entries() { + const headers = {}; + if (this[kHeadersMap].size) { + for (const { name, value } of this[kHeadersMap].values()) { + headers[name] = value; + } + } + return headers; + } + }; + var Headers = class _Headers { + constructor(init = void 0) { + if (init === kConstruct) { + return; + } + this[kHeadersList] = new HeadersList(); + this[kGuard] = "none"; + if (init !== void 0) { + init = webidl.converters.HeadersInit(init); + fill(this, init); + } + } + // https://fetch.spec.whatwg.org/#dom-headers-append + append(name, value) { + webidl.brandCheck(this, _Headers); + webidl.argumentLengthCheck(arguments, 2, { header: "Headers.append" }); + name = webidl.converters.ByteString(name); + value = webidl.converters.ByteString(value); + return appendHeader(this, name, value); + } + // https://fetch.spec.whatwg.org/#dom-headers-delete + delete(name) { + webidl.brandCheck(this, _Headers); + webidl.argumentLengthCheck(arguments, 1, { header: "Headers.delete" }); + name = webidl.converters.ByteString(name); + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: "Headers.delete", + value: name, + type: "header name" + }); + } + if (this[kGuard] === "immutable") { + throw new TypeError("immutable"); + } else if (this[kGuard] === "request-no-cors") { + } + if (!this[kHeadersList].contains(name)) { + return; + } + this[kHeadersList].delete(name); + } + // https://fetch.spec.whatwg.org/#dom-headers-get + get(name) { + webidl.brandCheck(this, _Headers); + webidl.argumentLengthCheck(arguments, 1, { header: "Headers.get" }); + name = webidl.converters.ByteString(name); + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: "Headers.get", + value: name, + type: "header name" + }); + } + return this[kHeadersList].get(name); + } + // https://fetch.spec.whatwg.org/#dom-headers-has + has(name) { + webidl.brandCheck(this, _Headers); + webidl.argumentLengthCheck(arguments, 1, { header: "Headers.has" }); + name = webidl.converters.ByteString(name); + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: "Headers.has", + value: name, + type: "header name" + }); + } + return this[kHeadersList].contains(name); + } + // https://fetch.spec.whatwg.org/#dom-headers-set + set(name, value) { + webidl.brandCheck(this, _Headers); + webidl.argumentLengthCheck(arguments, 2, { header: "Headers.set" }); + name = webidl.converters.ByteString(name); + value = webidl.converters.ByteString(value); + value = headerValueNormalize(value); + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: "Headers.set", + value: name, + type: "header name" + }); + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: "Headers.set", + value, + type: "header value" + }); + } + if (this[kGuard] === "immutable") { + throw new TypeError("immutable"); + } else if (this[kGuard] === "request-no-cors") { + } + this[kHeadersList].set(name, value); + } + // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie + getSetCookie() { + webidl.brandCheck(this, _Headers); + const list = this[kHeadersList].cookies; + if (list) { + return [...list]; + } + return []; + } + // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine + get [kHeadersSortedMap]() { + if (this[kHeadersList][kHeadersSortedMap]) { + return this[kHeadersList][kHeadersSortedMap]; + } + const headers = []; + const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1); + const cookies = this[kHeadersList].cookies; + for (let i = 0; i < names.length; ++i) { + const [name, value] = names[i]; + if (name === "set-cookie") { + for (let j = 0; j < cookies.length; ++j) { + headers.push([name, cookies[j]]); + } + } else { + assert2(value !== null); + headers.push([name, value]); + } + } + this[kHeadersList][kHeadersSortedMap] = headers; + return headers; + } + keys() { + webidl.brandCheck(this, _Headers); + if (this[kGuard] === "immutable") { + const value = this[kHeadersSortedMap]; + return makeIterator( + () => value, + "Headers", + "key" + ); + } + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + "Headers", + "key" + ); + } + values() { + webidl.brandCheck(this, _Headers); + if (this[kGuard] === "immutable") { + const value = this[kHeadersSortedMap]; + return makeIterator( + () => value, + "Headers", + "value" + ); + } + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + "Headers", + "value" + ); + } + entries() { + webidl.brandCheck(this, _Headers); + if (this[kGuard] === "immutable") { + const value = this[kHeadersSortedMap]; + return makeIterator( + () => value, + "Headers", + "key+value" + ); + } + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + "Headers", + "key+value" + ); + } + /** + * @param {(value: string, key: string, self: Headers) => void} callbackFn + * @param {unknown} thisArg + */ + forEach(callbackFn, thisArg = globalThis) { + webidl.brandCheck(this, _Headers); + webidl.argumentLengthCheck(arguments, 1, { header: "Headers.forEach" }); + if (typeof callbackFn !== "function") { + throw new TypeError( + "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'." + ); + } + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]); + } + } + [Symbol.for("nodejs.util.inspect.custom")]() { + webidl.brandCheck(this, _Headers); + return this[kHeadersList]; + } + }; + Headers.prototype[Symbol.iterator] = Headers.prototype.entries; + Object.defineProperties(Headers.prototype, { + append: kEnumerableProperty, + delete: kEnumerableProperty, + get: kEnumerableProperty, + has: kEnumerableProperty, + set: kEnumerableProperty, + getSetCookie: kEnumerableProperty, + keys: kEnumerableProperty, + values: kEnumerableProperty, + entries: kEnumerableProperty, + forEach: kEnumerableProperty, + [Symbol.iterator]: { enumerable: false }, + [Symbol.toStringTag]: { + value: "Headers", + configurable: true + }, + [util.inspect.custom]: { + enumerable: false + } + }); + webidl.converters.HeadersInit = function(V) { + if (webidl.util.Type(V) === "Object") { + if (V[Symbol.iterator]) { + return webidl.converters["sequence>"](V); + } + return webidl.converters["record"](V); + } + throw webidl.errors.conversionFailed({ + prefix: "Headers constructor", + argument: "Argument 1", + types: ["sequence>", "record"] + }); + }; + module2.exports = { + fill, + Headers, + HeadersList + }; + } +}); + +// node_modules/undici/lib/fetch/response.js +var require_response = __commonJS({ + "node_modules/undici/lib/fetch/response.js"(exports2, module2) { + "use strict"; + var { Headers, HeadersList, fill } = require_headers(); + var { extractBody, cloneBody, mixinBody } = require_body(); + var util = require_util(); + var { kEnumerableProperty } = util; + var { + isValidReasonPhrase, + isCancelled, + isAborted, + isBlobLike, + serializeJavascriptValueToJSONString, + isErrorLike, + isomorphicEncode + } = require_util2(); + var { + redirectStatusSet, + nullBodyStatus, + DOMException: DOMException2 + } = require_constants2(); + var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); + var { webidl } = require_webidl(); + var { FormData } = require_formdata(); + var { getGlobalOrigin } = require_global(); + var { URLSerializer } = require_dataURL(); + var { kHeadersList, kConstruct } = require_symbols(); + var assert2 = require("assert"); + var { types } = require("util"); + var ReadableStream = globalThis.ReadableStream || require("stream/web").ReadableStream; + var textEncoder = new TextEncoder("utf-8"); + var Response = class _Response { + // Creates network error Response. + static error() { + const relevantRealm = { settingsObject: {} }; + const responseObject = new _Response(); + responseObject[kState] = makeNetworkError(); + responseObject[kRealm] = relevantRealm; + responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList; + responseObject[kHeaders][kGuard] = "immutable"; + responseObject[kHeaders][kRealm] = relevantRealm; + return responseObject; + } + // https://fetch.spec.whatwg.org/#dom-response-json + static json(data, init = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: "Response.json" }); + if (init !== null) { + init = webidl.converters.ResponseInit(init); + } + const bytes7 = textEncoder.encode( + serializeJavascriptValueToJSONString(data) + ); + const body = extractBody(bytes7); + const relevantRealm = { settingsObject: {} }; + const responseObject = new _Response(); + responseObject[kRealm] = relevantRealm; + responseObject[kHeaders][kGuard] = "response"; + responseObject[kHeaders][kRealm] = relevantRealm; + initializeResponse(responseObject, init, { body: body[0], type: "application/json" }); + return responseObject; + } + // Creates a redirect Response that redirects to url with status status. + static redirect(url, status = 302) { + const relevantRealm = { settingsObject: {} }; + webidl.argumentLengthCheck(arguments, 1, { header: "Response.redirect" }); + url = webidl.converters.USVString(url); + status = webidl.converters["unsigned short"](status); + let parsedURL; + try { + parsedURL = new URL(url, getGlobalOrigin()); + } catch (err) { + throw Object.assign(new TypeError("Failed to parse URL from " + url), { + cause: err + }); + } + if (!redirectStatusSet.has(status)) { + throw new RangeError("Invalid status code " + status); + } + const responseObject = new _Response(); + responseObject[kRealm] = relevantRealm; + responseObject[kHeaders][kGuard] = "immutable"; + responseObject[kHeaders][kRealm] = relevantRealm; + responseObject[kState].status = status; + const value = isomorphicEncode(URLSerializer(parsedURL)); + responseObject[kState].headersList.append("location", value); + return responseObject; + } + // https://fetch.spec.whatwg.org/#dom-response + constructor(body = null, init = {}) { + if (body !== null) { + body = webidl.converters.BodyInit(body); + } + init = webidl.converters.ResponseInit(init); + this[kRealm] = { settingsObject: {} }; + this[kState] = makeResponse({}); + this[kHeaders] = new Headers(kConstruct); + this[kHeaders][kGuard] = "response"; + this[kHeaders][kHeadersList] = this[kState].headersList; + this[kHeaders][kRealm] = this[kRealm]; + let bodyWithType = null; + if (body != null) { + const [extractedBody, type] = extractBody(body); + bodyWithType = { body: extractedBody, type }; + } + initializeResponse(this, init, bodyWithType); + } + // Returns response’s type, e.g., "cors". + get type() { + webidl.brandCheck(this, _Response); + return this[kState].type; + } + // Returns response’s URL, if it has one; otherwise the empty string. + get url() { + webidl.brandCheck(this, _Response); + const urlList = this[kState].urlList; + const url = urlList[urlList.length - 1] ?? null; + if (url === null) { + return ""; + } + return URLSerializer(url, true); + } + // Returns whether response was obtained through a redirect. + get redirected() { + webidl.brandCheck(this, _Response); + return this[kState].urlList.length > 1; + } + // Returns response’s status. + get status() { + webidl.brandCheck(this, _Response); + return this[kState].status; + } + // Returns whether response’s status is an ok status. + get ok() { + webidl.brandCheck(this, _Response); + return this[kState].status >= 200 && this[kState].status <= 299; + } + // Returns response’s status message. + get statusText() { + webidl.brandCheck(this, _Response); + return this[kState].statusText; + } + // Returns response’s headers as Headers. + get headers() { + webidl.brandCheck(this, _Response); + return this[kHeaders]; + } + get body() { + webidl.brandCheck(this, _Response); + return this[kState].body ? this[kState].body.stream : null; + } + get bodyUsed() { + webidl.brandCheck(this, _Response); + return !!this[kState].body && util.isDisturbed(this[kState].body.stream); + } + // Returns a clone of response. + clone() { + webidl.brandCheck(this, _Response); + if (this.bodyUsed || this.body && this.body.locked) { + throw webidl.errors.exception({ + header: "Response.clone", + message: "Body has already been consumed." + }); + } + const clonedResponse = cloneResponse(this[kState]); + const clonedResponseObject = new _Response(); + clonedResponseObject[kState] = clonedResponse; + clonedResponseObject[kRealm] = this[kRealm]; + clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList; + clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]; + clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]; + return clonedResponseObject; + } + }; + mixinBody(Response); + Object.defineProperties(Response.prototype, { + type: kEnumerableProperty, + url: kEnumerableProperty, + status: kEnumerableProperty, + ok: kEnumerableProperty, + redirected: kEnumerableProperty, + statusText: kEnumerableProperty, + headers: kEnumerableProperty, + clone: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + [Symbol.toStringTag]: { + value: "Response", + configurable: true + } + }); + Object.defineProperties(Response, { + json: kEnumerableProperty, + redirect: kEnumerableProperty, + error: kEnumerableProperty + }); + function cloneResponse(response) { + if (response.internalResponse) { + return filterResponse( + cloneResponse(response.internalResponse), + response.type + ); + } + const newResponse = makeResponse({ ...response, body: null }); + if (response.body != null) { + newResponse.body = cloneBody(response.body); + } + return newResponse; + } + function makeResponse(init) { + return { + aborted: false, + rangeRequested: false, + timingAllowPassed: false, + requestIncludesCredentials: false, + type: "default", + status: 200, + timingInfo: null, + cacheState: "", + statusText: "", + ...init, + headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList(), + urlList: init.urlList ? [...init.urlList] : [] + }; + } + function makeNetworkError(reason) { + const isError = isErrorLike(reason); + return makeResponse({ + type: "error", + status: 0, + error: isError ? reason : new Error(reason ? String(reason) : reason), + aborted: reason && reason.name === "AbortError" + }); + } + function makeFilteredResponse(response, state) { + state = { + internalResponse: response, + ...state + }; + return new Proxy(response, { + get(target, p) { + return p in state ? state[p] : target[p]; + }, + set(target, p, value) { + assert2(!(p in state)); + target[p] = value; + return true; + } + }); + } + function filterResponse(response, type) { + if (type === "basic") { + return makeFilteredResponse(response, { + type: "basic", + headersList: response.headersList + }); + } else if (type === "cors") { + return makeFilteredResponse(response, { + type: "cors", + headersList: response.headersList + }); + } else if (type === "opaque") { + return makeFilteredResponse(response, { + type: "opaque", + urlList: Object.freeze([]), + status: 0, + statusText: "", + body: null + }); + } else if (type === "opaqueredirect") { + return makeFilteredResponse(response, { + type: "opaqueredirect", + status: 0, + statusText: "", + headersList: [], + body: null + }); + } else { + assert2(false); + } + } + function makeAppropriateNetworkError(fetchParams, err = null) { + assert2(isCancelled(fetchParams)); + return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException2("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException2("Request was cancelled."), { cause: err })); + } + function initializeResponse(response, init, body) { + if (init.status !== null && (init.status < 200 || init.status > 599)) { + throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); + } + if ("statusText" in init && init.statusText != null) { + if (!isValidReasonPhrase(String(init.statusText))) { + throw new TypeError("Invalid statusText"); + } + } + if ("status" in init && init.status != null) { + response[kState].status = init.status; + } + if ("statusText" in init && init.statusText != null) { + response[kState].statusText = init.statusText; + } + if ("headers" in init && init.headers != null) { + fill(response[kHeaders], init.headers); + } + if (body) { + if (nullBodyStatus.includes(response.status)) { + throw webidl.errors.exception({ + header: "Response constructor", + message: "Invalid response status code " + response.status + }); + } + response[kState].body = body.body; + if (body.type != null && !response[kState].headersList.contains("Content-Type")) { + response[kState].headersList.append("content-type", body.type); + } + } + } + webidl.converters.ReadableStream = webidl.interfaceConverter( + ReadableStream + ); + webidl.converters.FormData = webidl.interfaceConverter( + FormData + ); + webidl.converters.URLSearchParams = webidl.interfaceConverter( + URLSearchParams + ); + webidl.converters.XMLHttpRequestBodyInit = function(V) { + if (typeof V === "string") { + return webidl.converters.USVString(V); + } + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }); + } + if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) { + return webidl.converters.BufferSource(V); + } + if (util.isFormDataLike(V)) { + return webidl.converters.FormData(V, { strict: false }); + } + if (V instanceof URLSearchParams) { + return webidl.converters.URLSearchParams(V); + } + return webidl.converters.DOMString(V); + }; + webidl.converters.BodyInit = function(V) { + if (V instanceof ReadableStream) { + return webidl.converters.ReadableStream(V); + } + if (V?.[Symbol.asyncIterator]) { + return V; + } + return webidl.converters.XMLHttpRequestBodyInit(V); + }; + webidl.converters.ResponseInit = webidl.dictionaryConverter([ + { + key: "status", + converter: webidl.converters["unsigned short"], + defaultValue: 200 + }, + { + key: "statusText", + converter: webidl.converters.ByteString, + defaultValue: "" + }, + { + key: "headers", + converter: webidl.converters.HeadersInit + } + ]); + module2.exports = { + makeNetworkError, + makeResponse, + makeAppropriateNetworkError, + filterResponse, + Response, + cloneResponse + }; + } +}); + +// node_modules/undici/lib/fetch/request.js +var require_request2 = __commonJS({ + "node_modules/undici/lib/fetch/request.js"(exports2, module2) { + "use strict"; + var { extractBody, mixinBody, cloneBody } = require_body(); + var { Headers, fill: fillHeaders, HeadersList } = require_headers(); + var { FinalizationRegistry } = require_dispatcher_weakref()(); + var util = require_util(); + var { + isValidHTTPToken, + sameOrigin, + normalizeMethod, + makePolicyContainer, + normalizeMethodRecord + } = require_util2(); + var { + forbiddenMethodsSet, + corsSafeListedMethodsSet, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + requestDuplex + } = require_constants2(); + var { kEnumerableProperty } = util; + var { kHeaders, kSignal, kState, kGuard, kRealm } = require_symbols2(); + var { webidl } = require_webidl(); + var { getGlobalOrigin } = require_global(); + var { URLSerializer } = require_dataURL(); + var { kHeadersList, kConstruct } = require_symbols(); + var assert2 = require("assert"); + var { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require("events"); + var TransformStream = globalThis.TransformStream; + var kAbortController = Symbol("abortController"); + var requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { + signal.removeEventListener("abort", abort); + }); + var Request = class _Request { + // https://fetch.spec.whatwg.org/#dom-request + constructor(input, init = {}) { + if (input === kConstruct) { + return; + } + webidl.argumentLengthCheck(arguments, 1, { header: "Request constructor" }); + input = webidl.converters.RequestInfo(input); + init = webidl.converters.RequestInit(init); + this[kRealm] = { + settingsObject: { + baseUrl: getGlobalOrigin(), + get origin() { + return this.baseUrl?.origin; + }, + policyContainer: makePolicyContainer() + } + }; + let request = null; + let fallbackMode = null; + const baseUrl = this[kRealm].settingsObject.baseUrl; + let signal = null; + if (typeof input === "string") { + let parsedURL; + try { + parsedURL = new URL(input, baseUrl); + } catch (err) { + throw new TypeError("Failed to parse URL from " + input, { cause: err }); + } + if (parsedURL.username || parsedURL.password) { + throw new TypeError( + "Request cannot be constructed from a URL that includes credentials: " + input + ); + } + request = makeRequest({ urlList: [parsedURL] }); + fallbackMode = "cors"; + } else { + assert2(input instanceof _Request); + request = input[kState]; + signal = input[kSignal]; + } + const origin = this[kRealm].settingsObject.origin; + let window2 = "client"; + if (request.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request.window, origin)) { + window2 = request.window; + } + if (init.window != null) { + throw new TypeError(`'window' option '${window2}' must be null`); + } + if ("window" in init) { + window2 = "no-window"; + } + request = makeRequest({ + // URL request’s URL. + // undici implementation note: this is set as the first item in request's urlList in makeRequest + // method request’s method. + method: request.method, + // header list A copy of request’s header list. + // undici implementation note: headersList is cloned in makeRequest + headersList: request.headersList, + // unsafe-request flag Set. + unsafeRequest: request.unsafeRequest, + // client This’s relevant settings object. + client: this[kRealm].settingsObject, + // window window. + window: window2, + // priority request’s priority. + priority: request.priority, + // origin request’s origin. The propagation of the origin is only significant for navigation requests + // being handled by a service worker. In this scenario a request can have an origin that is different + // from the current client. + origin: request.origin, + // referrer request’s referrer. + referrer: request.referrer, + // referrer policy request’s referrer policy. + referrerPolicy: request.referrerPolicy, + // mode request’s mode. + mode: request.mode, + // credentials mode request’s credentials mode. + credentials: request.credentials, + // cache mode request’s cache mode. + cache: request.cache, + // redirect mode request’s redirect mode. + redirect: request.redirect, + // integrity metadata request’s integrity metadata. + integrity: request.integrity, + // keepalive request’s keepalive. + keepalive: request.keepalive, + // reload-navigation flag request’s reload-navigation flag. + reloadNavigation: request.reloadNavigation, + // history-navigation flag request’s history-navigation flag. + historyNavigation: request.historyNavigation, + // URL list A clone of request’s URL list. + urlList: [...request.urlList] + }); + const initHasKey = Object.keys(init).length !== 0; + if (initHasKey) { + if (request.mode === "navigate") { + request.mode = "same-origin"; + } + request.reloadNavigation = false; + request.historyNavigation = false; + request.origin = "client"; + request.referrer = "client"; + request.referrerPolicy = ""; + request.url = request.urlList[request.urlList.length - 1]; + request.urlList = [request.url]; + } + if (init.referrer !== void 0) { + const referrer = init.referrer; + if (referrer === "") { + request.referrer = "no-referrer"; + } else { + let parsedReferrer; + try { + parsedReferrer = new URL(referrer, baseUrl); + } catch (err) { + throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }); + } + if (parsedReferrer.protocol === "about:" && parsedReferrer.hostname === "client" || origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl)) { + request.referrer = "client"; + } else { + request.referrer = parsedReferrer; + } + } + } + if (init.referrerPolicy !== void 0) { + request.referrerPolicy = init.referrerPolicy; + } + let mode; + if (init.mode !== void 0) { + mode = init.mode; + } else { + mode = fallbackMode; + } + if (mode === "navigate") { + throw webidl.errors.exception({ + header: "Request constructor", + message: "invalid request mode navigate." + }); + } + if (mode != null) { + request.mode = mode; + } + if (init.credentials !== void 0) { + request.credentials = init.credentials; + } + if (init.cache !== void 0) { + request.cache = init.cache; + } + if (request.cache === "only-if-cached" && request.mode !== "same-origin") { + throw new TypeError( + "'only-if-cached' can be set only with 'same-origin' mode" + ); + } + if (init.redirect !== void 0) { + request.redirect = init.redirect; + } + if (init.integrity != null) { + request.integrity = String(init.integrity); + } + if (init.keepalive !== void 0) { + request.keepalive = Boolean(init.keepalive); + } + if (init.method !== void 0) { + let method2 = init.method; + if (!isValidHTTPToken(method2)) { + throw new TypeError(`'${method2}' is not a valid HTTP method.`); + } + if (forbiddenMethodsSet.has(method2.toUpperCase())) { + throw new TypeError(`'${method2}' HTTP method is unsupported.`); + } + method2 = normalizeMethodRecord[method2] ?? normalizeMethod(method2); + request.method = method2; + } + if (init.signal !== void 0) { + signal = init.signal; + } + this[kState] = request; + const ac = new AbortController(); + this[kSignal] = ac.signal; + this[kSignal][kRealm] = this[kRealm]; + if (signal != null) { + if (!signal || typeof signal.aborted !== "boolean" || typeof signal.addEventListener !== "function") { + throw new TypeError( + "Failed to construct 'Request': member signal is not of type AbortSignal." + ); + } + if (signal.aborted) { + ac.abort(signal.reason); + } else { + this[kAbortController] = ac; + const acRef = new WeakRef(ac); + const abort = function() { + const ac2 = acRef.deref(); + if (ac2 !== void 0) { + ac2.abort(this.reason); + } + }; + try { + if (typeof getMaxListeners === "function" && getMaxListeners(signal) === defaultMaxListeners) { + setMaxListeners(100, signal); + } else if (getEventListeners(signal, "abort").length >= defaultMaxListeners) { + setMaxListeners(100, signal); + } + } catch { + } + util.addAbortListener(signal, abort); + requestFinalizer.register(ac, { signal, abort }); + } + } + this[kHeaders] = new Headers(kConstruct); + this[kHeaders][kHeadersList] = request.headersList; + this[kHeaders][kGuard] = "request"; + this[kHeaders][kRealm] = this[kRealm]; + if (mode === "no-cors") { + if (!corsSafeListedMethodsSet.has(request.method)) { + throw new TypeError( + `'${request.method} is unsupported in no-cors mode.` + ); + } + this[kHeaders][kGuard] = "request-no-cors"; + } + if (initHasKey) { + const headersList = this[kHeaders][kHeadersList]; + const headers = init.headers !== void 0 ? init.headers : new HeadersList(headersList); + headersList.clear(); + if (headers instanceof HeadersList) { + for (const [key, val] of headers) { + headersList.append(key, val); + } + headersList.cookies = headers.cookies; + } else { + fillHeaders(this[kHeaders], headers); + } + } + const inputBody = input instanceof _Request ? input[kState].body : null; + if ((init.body != null || inputBody != null) && (request.method === "GET" || request.method === "HEAD")) { + throw new TypeError("Request with GET/HEAD method cannot have body."); + } + let initBody = null; + if (init.body != null) { + const [extractedBody, contentType] = extractBody( + init.body, + request.keepalive + ); + initBody = extractedBody; + if (contentType && !this[kHeaders][kHeadersList].contains("content-type")) { + this[kHeaders].append("content-type", contentType); + } + } + const inputOrInitBody = initBody ?? inputBody; + if (inputOrInitBody != null && inputOrInitBody.source == null) { + if (initBody != null && init.duplex == null) { + throw new TypeError("RequestInit: duplex option is required when sending a body."); + } + if (request.mode !== "same-origin" && request.mode !== "cors") { + throw new TypeError( + 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' + ); + } + request.useCORSPreflightFlag = true; + } + let finalBody = inputOrInitBody; + if (initBody == null && inputBody != null) { + if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) { + throw new TypeError( + "Cannot construct a Request with a Request object that has already been used." + ); + } + if (!TransformStream) { + TransformStream = require("stream/web").TransformStream; + } + const identityTransform = new TransformStream(); + inputBody.stream.pipeThrough(identityTransform); + finalBody = { + source: inputBody.source, + length: inputBody.length, + stream: identityTransform.readable + }; + } + this[kState].body = finalBody; + } + // Returns request’s HTTP method, which is "GET" by default. + get method() { + webidl.brandCheck(this, _Request); + return this[kState].method; + } + // Returns the URL of request as a string. + get url() { + webidl.brandCheck(this, _Request); + return URLSerializer(this[kState].url); + } + // Returns a Headers object consisting of the headers associated with request. + // Note that headers added in the network layer by the user agent will not + // be accounted for in this object, e.g., the "Host" header. + get headers() { + webidl.brandCheck(this, _Request); + return this[kHeaders]; + } + // Returns the kind of resource requested by request, e.g., "document" + // or "script". + get destination() { + webidl.brandCheck(this, _Request); + return this[kState].destination; + } + // Returns the referrer of request. Its value can be a same-origin URL if + // explicitly set in init, the empty string to indicate no referrer, and + // "about:client" when defaulting to the global’s default. This is used + // during fetching to determine the value of the `Referer` header of the + // request being made. + get referrer() { + webidl.brandCheck(this, _Request); + if (this[kState].referrer === "no-referrer") { + return ""; + } + if (this[kState].referrer === "client") { + return "about:client"; + } + return this[kState].referrer.toString(); + } + // Returns the referrer policy associated with request. + // This is used during fetching to compute the value of the request’s + // referrer. + get referrerPolicy() { + webidl.brandCheck(this, _Request); + return this[kState].referrerPolicy; + } + // Returns the mode associated with request, which is a string indicating + // whether the request will use CORS, or will be restricted to same-origin + // URLs. + get mode() { + webidl.brandCheck(this, _Request); + return this[kState].mode; + } + // Returns the credentials mode associated with request, + // which is a string indicating whether credentials will be sent with the + // request always, never, or only when sent to a same-origin URL. + get credentials() { + return this[kState].credentials; + } + // Returns the cache mode associated with request, + // which is a string indicating how the request will + // interact with the browser’s cache when fetching. + get cache() { + webidl.brandCheck(this, _Request); + return this[kState].cache; + } + // Returns the redirect mode associated with request, + // which is a string indicating how redirects for the + // request will be handled during fetching. A request + // will follow redirects by default. + get redirect() { + webidl.brandCheck(this, _Request); + return this[kState].redirect; + } + // Returns request’s subresource integrity metadata, which is a + // cryptographic hash of the resource being fetched. Its value + // consists of multiple hashes separated by whitespace. [SRI] + get integrity() { + webidl.brandCheck(this, _Request); + return this[kState].integrity; + } + // Returns a boolean indicating whether or not request can outlive the + // global in which it was created. + get keepalive() { + webidl.brandCheck(this, _Request); + return this[kState].keepalive; + } + // Returns a boolean indicating whether or not request is for a reload + // navigation. + get isReloadNavigation() { + webidl.brandCheck(this, _Request); + return this[kState].reloadNavigation; + } + // Returns a boolean indicating whether or not request is for a history + // navigation (a.k.a. back-foward navigation). + get isHistoryNavigation() { + webidl.brandCheck(this, _Request); + return this[kState].historyNavigation; + } + // Returns the signal associated with request, which is an AbortSignal + // object indicating whether or not request has been aborted, and its + // abort event handler. + get signal() { + webidl.brandCheck(this, _Request); + return this[kSignal]; + } + get body() { + webidl.brandCheck(this, _Request); + return this[kState].body ? this[kState].body.stream : null; + } + get bodyUsed() { + webidl.brandCheck(this, _Request); + return !!this[kState].body && util.isDisturbed(this[kState].body.stream); + } + get duplex() { + webidl.brandCheck(this, _Request); + return "half"; + } + // Returns a clone of request. + clone() { + webidl.brandCheck(this, _Request); + if (this.bodyUsed || this.body?.locked) { + throw new TypeError("unusable"); + } + const clonedRequest = cloneRequest(this[kState]); + const clonedRequestObject = new _Request(kConstruct); + clonedRequestObject[kState] = clonedRequest; + clonedRequestObject[kRealm] = this[kRealm]; + clonedRequestObject[kHeaders] = new Headers(kConstruct); + clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList; + clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]; + clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]; + const ac = new AbortController(); + if (this.signal.aborted) { + ac.abort(this.signal.reason); + } else { + util.addAbortListener( + this.signal, + () => { + ac.abort(this.signal.reason); + } + ); + } + clonedRequestObject[kSignal] = ac.signal; + return clonedRequestObject; + } + }; + mixinBody(Request); + function makeRequest(init) { + const request = { + method: "GET", + localURLsOnly: false, + unsafeRequest: false, + body: null, + client: null, + reservedClient: null, + replacesClientId: "", + window: "client", + keepalive: false, + serviceWorkers: "all", + initiator: "", + destination: "", + priority: null, + origin: "client", + policyContainer: "client", + referrer: "client", + referrerPolicy: "", + mode: "no-cors", + useCORSPreflightFlag: false, + credentials: "same-origin", + useCredentials: false, + cache: "default", + redirect: "follow", + integrity: "", + cryptoGraphicsNonceMetadata: "", + parserMetadata: "", + reloadNavigation: false, + historyNavigation: false, + userActivation: false, + taintedOrigin: false, + redirectCount: 0, + responseTainting: "basic", + preventNoCacheCacheControlHeaderModification: false, + done: false, + timingAllowFailed: false, + ...init, + headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList() + }; + request.url = request.urlList[0]; + return request; + } + function cloneRequest(request) { + const newRequest = makeRequest({ ...request, body: null }); + if (request.body != null) { + newRequest.body = cloneBody(request.body); + } + return newRequest; + } + Object.defineProperties(Request.prototype, { + method: kEnumerableProperty, + url: kEnumerableProperty, + headers: kEnumerableProperty, + redirect: kEnumerableProperty, + clone: kEnumerableProperty, + signal: kEnumerableProperty, + duplex: kEnumerableProperty, + destination: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + isHistoryNavigation: kEnumerableProperty, + isReloadNavigation: kEnumerableProperty, + keepalive: kEnumerableProperty, + integrity: kEnumerableProperty, + cache: kEnumerableProperty, + credentials: kEnumerableProperty, + attribute: kEnumerableProperty, + referrerPolicy: kEnumerableProperty, + referrer: kEnumerableProperty, + mode: kEnumerableProperty, + [Symbol.toStringTag]: { + value: "Request", + configurable: true + } + }); + webidl.converters.Request = webidl.interfaceConverter( + Request + ); + webidl.converters.RequestInfo = function(V) { + if (typeof V === "string") { + return webidl.converters.USVString(V); + } + if (V instanceof Request) { + return webidl.converters.Request(V); + } + return webidl.converters.USVString(V); + }; + webidl.converters.AbortSignal = webidl.interfaceConverter( + AbortSignal + ); + webidl.converters.RequestInit = webidl.dictionaryConverter([ + { + key: "method", + converter: webidl.converters.ByteString + }, + { + key: "headers", + converter: webidl.converters.HeadersInit + }, + { + key: "body", + converter: webidl.nullableConverter( + webidl.converters.BodyInit + ) + }, + { + key: "referrer", + converter: webidl.converters.USVString + }, + { + key: "referrerPolicy", + converter: webidl.converters.DOMString, + // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy + allowedValues: referrerPolicy + }, + { + key: "mode", + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#concept-request-mode + allowedValues: requestMode + }, + { + key: "credentials", + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcredentials + allowedValues: requestCredentials + }, + { + key: "cache", + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcache + allowedValues: requestCache + }, + { + key: "redirect", + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestredirect + allowedValues: requestRedirect + }, + { + key: "integrity", + converter: webidl.converters.DOMString + }, + { + key: "keepalive", + converter: webidl.converters.boolean + }, + { + key: "signal", + converter: webidl.nullableConverter( + (signal) => webidl.converters.AbortSignal( + signal, + { strict: false } + ) + ) + }, + { + key: "window", + converter: webidl.converters.any + }, + { + key: "duplex", + converter: webidl.converters.DOMString, + allowedValues: requestDuplex + } + ]); + module2.exports = { Request, makeRequest }; + } +}); + +// node_modules/undici/lib/fetch/index.js +var require_fetch = __commonJS({ + "node_modules/undici/lib/fetch/index.js"(exports2, module2) { + "use strict"; + var { + Response, + makeNetworkError, + makeAppropriateNetworkError, + filterResponse, + makeResponse + } = require_response(); + var { Headers } = require_headers(); + var { Request, makeRequest } = require_request2(); + var zlib = require("zlib"); + var { + bytesMatch, + makePolicyContainer, + clonePolicyContainer, + requestBadPort, + TAOCheck, + appendRequestOriginHeader, + responseLocationURL, + requestCurrentURL, + setRequestReferrerPolicyOnRedirect, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + createOpaqueTimingInfo, + appendFetchMetadata, + corsCheck, + crossOriginResourcePolicyCheck, + determineRequestsReferrer, + coarsenedSharedCurrentTime, + createDeferredPromise, + isBlobLike, + sameOrigin, + isCancelled, + isAborted, + isErrorLike, + fullyReadBody, + readableStreamClose, + isomorphicEncode, + urlIsLocal, + urlIsHttpHttpsScheme, + urlHasHttpsScheme + } = require_util2(); + var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); + var assert2 = require("assert"); + var { safelyExtractBody } = require_body(); + var { + redirectStatusSet, + nullBodyStatus, + safeMethodsSet, + requestBodyHeader, + subresourceSet, + DOMException: DOMException2 + } = require_constants2(); + var { kHeadersList } = require_symbols(); + var EE = require("events"); + var { Readable, pipeline } = require("stream"); + var { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require_util(); + var { dataURLProcessor, serializeAMimeType } = require_dataURL(); + var { TransformStream } = require("stream/web"); + var { getGlobalDispatcher } = require_global2(); + var { webidl } = require_webidl(); + var { STATUS_CODES } = require("http"); + var GET_OR_HEAD = ["GET", "HEAD"]; + var resolveObjectURL; + var ReadableStream = globalThis.ReadableStream; + var Fetch = class extends EE { + constructor(dispatcher) { + super(); + this.dispatcher = dispatcher; + this.connection = null; + this.dump = false; + this.state = "ongoing"; + this.setMaxListeners(21); + } + terminate(reason) { + if (this.state !== "ongoing") { + return; + } + this.state = "terminated"; + this.connection?.destroy(reason); + this.emit("terminated", reason); + } + // https://fetch.spec.whatwg.org/#fetch-controller-abort + abort(error) { + if (this.state !== "ongoing") { + return; + } + this.state = "aborted"; + if (!error) { + error = new DOMException2("The operation was aborted.", "AbortError"); + } + this.serializedAbortReason = error; + this.connection?.destroy(error); + this.emit("terminated", error); + } + }; + function fetch2(input, init = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: "globalThis.fetch" }); + const p = createDeferredPromise(); + let requestObject; + try { + requestObject = new Request(input, init); + } catch (e) { + p.reject(e); + return p.promise; + } + const request = requestObject[kState]; + if (requestObject.signal.aborted) { + abortFetch(p, request, null, requestObject.signal.reason); + return p.promise; + } + const globalObject = request.client.globalObject; + if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") { + request.serviceWorkers = "none"; + } + let responseObject = null; + const relevantRealm = null; + let locallyAborted = false; + let controller = null; + addAbortListener( + requestObject.signal, + () => { + locallyAborted = true; + assert2(controller != null); + controller.abort(requestObject.signal.reason); + abortFetch(p, request, responseObject, requestObject.signal.reason); + } + ); + const handleFetchDone = (response) => finalizeAndReportTiming(response, "fetch"); + const processResponse = (response) => { + if (locallyAborted) { + return Promise.resolve(); + } + if (response.aborted) { + abortFetch(p, request, responseObject, controller.serializedAbortReason); + return Promise.resolve(); + } + if (response.type === "error") { + p.reject( + Object.assign(new TypeError("fetch failed"), { cause: response.error }) + ); + return Promise.resolve(); + } + responseObject = new Response(); + responseObject[kState] = response; + responseObject[kRealm] = relevantRealm; + responseObject[kHeaders][kHeadersList] = response.headersList; + responseObject[kHeaders][kGuard] = "immutable"; + responseObject[kHeaders][kRealm] = relevantRealm; + p.resolve(responseObject); + }; + controller = fetching({ + request, + processResponseEndOfBody: handleFetchDone, + processResponse, + dispatcher: init.dispatcher ?? getGlobalDispatcher() + // undici + }); + return p.promise; + } + function finalizeAndReportTiming(response, initiatorType = "other") { + if (response.type === "error" && response.aborted) { + return; + } + if (!response.urlList?.length) { + return; + } + const originalURL = response.urlList[0]; + let timingInfo = response.timingInfo; + let cacheState = response.cacheState; + if (!urlIsHttpHttpsScheme(originalURL)) { + return; + } + if (timingInfo === null) { + return; + } + if (!response.timingAllowPassed) { + timingInfo = createOpaqueTimingInfo({ + startTime: timingInfo.startTime + }); + cacheState = ""; + } + timingInfo.endTime = coarsenedSharedCurrentTime(); + response.timingInfo = timingInfo; + markResourceTiming( + timingInfo, + originalURL, + initiatorType, + globalThis, + cacheState + ); + } + function markResourceTiming(timingInfo, originalURL, initiatorType, globalThis2, cacheState) { + if (nodeMajor > 18 || nodeMajor === 18 && nodeMinor >= 2) { + performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis2, cacheState); + } + } + function abortFetch(p, request, responseObject, error) { + if (!error) { + error = new DOMException2("The operation was aborted.", "AbortError"); + } + p.reject(error); + if (request.body != null && isReadable(request.body?.stream)) { + request.body.stream.cancel(error).catch((err) => { + if (err.code === "ERR_INVALID_STATE") { + return; + } + throw err; + }); + } + if (responseObject == null) { + return; + } + const response = responseObject[kState]; + if (response.body != null && isReadable(response.body?.stream)) { + response.body.stream.cancel(error).catch((err) => { + if (err.code === "ERR_INVALID_STATE") { + return; + } + throw err; + }); + } + } + function fetching({ + request, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseEndOfBody, + processResponseConsumeBody, + useParallelQueue = false, + dispatcher + // undici + }) { + let taskDestination = null; + let crossOriginIsolatedCapability = false; + if (request.client != null) { + taskDestination = request.client.globalObject; + crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability; + } + const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); + const timingInfo = createOpaqueTimingInfo({ + startTime: currenTime + }); + const fetchParams = { + controller: new Fetch(dispatcher), + request, + timingInfo, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseConsumeBody, + processResponseEndOfBody, + taskDestination, + crossOriginIsolatedCapability + }; + assert2(!request.body || request.body.stream); + if (request.window === "client") { + request.window = request.client?.globalObject?.constructor?.name === "Window" ? request.client : "no-window"; + } + if (request.origin === "client") { + request.origin = request.client?.origin; + } + if (request.policyContainer === "client") { + if (request.client != null) { + request.policyContainer = clonePolicyContainer( + request.client.policyContainer + ); + } else { + request.policyContainer = makePolicyContainer(); + } + } + if (!request.headersList.contains("accept")) { + const value = "*/*"; + request.headersList.append("accept", value); + } + if (!request.headersList.contains("accept-language")) { + request.headersList.append("accept-language", "*"); + } + if (request.priority === null) { + } + if (subresourceSet.has(request.destination)) { + } + mainFetch(fetchParams).catch((err) => { + fetchParams.controller.terminate(err); + }); + return fetchParams.controller; + } + async function mainFetch(fetchParams, recursive = false) { + const request = fetchParams.request; + let response = null; + if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { + response = makeNetworkError("local URLs only"); + } + tryUpgradeRequestToAPotentiallyTrustworthyURL(request); + if (requestBadPort(request) === "blocked") { + response = makeNetworkError("bad port"); + } + if (request.referrerPolicy === "") { + request.referrerPolicy = request.policyContainer.referrerPolicy; + } + if (request.referrer !== "no-referrer") { + request.referrer = determineRequestsReferrer(request); + } + if (response === null) { + response = await (async () => { + const currentURL = requestCurrentURL(request); + if ( + // - request’s current URL’s origin is same origin with request’s origin, + // and request’s response tainting is "basic" + sameOrigin(currentURL, request.url) && request.responseTainting === "basic" || // request’s current URL’s scheme is "data" + currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket" + (request.mode === "navigate" || request.mode === "websocket") + ) { + request.responseTainting = "basic"; + return await schemeFetch(fetchParams); + } + if (request.mode === "same-origin") { + return makeNetworkError('request mode cannot be "same-origin"'); + } + if (request.mode === "no-cors") { + if (request.redirect !== "follow") { + return makeNetworkError( + 'redirect mode cannot be "follow" for "no-cors" request' + ); + } + request.responseTainting = "opaque"; + return await schemeFetch(fetchParams); + } + if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { + return makeNetworkError("URL scheme must be a HTTP(S) scheme"); + } + request.responseTainting = "cors"; + return await httpFetch(fetchParams); + })(); + } + if (recursive) { + return response; + } + if (response.status !== 0 && !response.internalResponse) { + if (request.responseTainting === "cors") { + } + if (request.responseTainting === "basic") { + response = filterResponse(response, "basic"); + } else if (request.responseTainting === "cors") { + response = filterResponse(response, "cors"); + } else if (request.responseTainting === "opaque") { + response = filterResponse(response, "opaque"); + } else { + assert2(false); + } + } + let internalResponse = response.status === 0 ? response : response.internalResponse; + if (internalResponse.urlList.length === 0) { + internalResponse.urlList.push(...request.urlList); + } + if (!request.timingAllowFailed) { + response.timingAllowPassed = true; + } + if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request.headers.contains("range")) { + response = internalResponse = makeNetworkError(); + } + if (response.status !== 0 && (request.method === "HEAD" || request.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) { + internalResponse.body = null; + fetchParams.controller.dump = true; + } + if (request.integrity) { + const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason)); + if (request.responseTainting === "opaque" || response.body == null) { + processBodyError(response.error); + return; + } + const processBody = (bytes7) => { + if (!bytesMatch(bytes7, request.integrity)) { + processBodyError("integrity mismatch"); + return; + } + response.body = safelyExtractBody(bytes7)[0]; + fetchFinale(fetchParams, response); + }; + await fullyReadBody(response.body, processBody, processBodyError); + } else { + fetchFinale(fetchParams, response); + } + } + function schemeFetch(fetchParams) { + if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { + return Promise.resolve(makeAppropriateNetworkError(fetchParams)); + } + const { request } = fetchParams; + const { protocol: scheme } = requestCurrentURL(request); + switch (scheme) { + case "about:": { + return Promise.resolve(makeNetworkError("about scheme is not supported")); + } + case "blob:": { + if (!resolveObjectURL) { + resolveObjectURL = require("buffer").resolveObjectURL; + } + const blobURLEntry = requestCurrentURL(request); + if (blobURLEntry.search.length !== 0) { + return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource.")); + } + const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString()); + if (request.method !== "GET" || !isBlobLike(blobURLEntryObject)) { + return Promise.resolve(makeNetworkError("invalid method")); + } + const bodyWithType = safelyExtractBody(blobURLEntryObject); + const body = bodyWithType[0]; + const length = isomorphicEncode(`${body.length}`); + const type = bodyWithType[1] ?? ""; + const response = makeResponse({ + statusText: "OK", + headersList: [ + ["content-length", { name: "Content-Length", value: length }], + ["content-type", { name: "Content-Type", value: type }] + ] + }); + response.body = body; + return Promise.resolve(response); + } + case "data:": { + const currentURL = requestCurrentURL(request); + const dataURLStruct = dataURLProcessor(currentURL); + if (dataURLStruct === "failure") { + return Promise.resolve(makeNetworkError("failed to fetch the data URL")); + } + const mimeType = serializeAMimeType(dataURLStruct.mimeType); + return Promise.resolve(makeResponse({ + statusText: "OK", + headersList: [ + ["content-type", { name: "Content-Type", value: mimeType }] + ], + body: safelyExtractBody(dataURLStruct.body)[0] + })); + } + case "file:": { + return Promise.resolve(makeNetworkError("not implemented... yet...")); + } + case "http:": + case "https:": { + return httpFetch(fetchParams).catch((err) => makeNetworkError(err)); + } + default: { + return Promise.resolve(makeNetworkError("unknown scheme")); + } + } + } + function finalizeResponse(fetchParams, response) { + fetchParams.request.done = true; + if (fetchParams.processResponseDone != null) { + queueMicrotask(() => fetchParams.processResponseDone(response)); + } + } + function fetchFinale(fetchParams, response) { + if (response.type === "error") { + response.urlList = [fetchParams.request.urlList[0]]; + response.timingInfo = createOpaqueTimingInfo({ + startTime: fetchParams.timingInfo.startTime + }); + } + const processResponseEndOfBody = () => { + fetchParams.request.done = true; + if (fetchParams.processResponseEndOfBody != null) { + queueMicrotask(() => fetchParams.processResponseEndOfBody(response)); + } + }; + if (fetchParams.processResponse != null) { + queueMicrotask(() => fetchParams.processResponse(response)); + } + if (response.body == null) { + processResponseEndOfBody(); + } else { + const identityTransformAlgorithm = (chunk, controller) => { + controller.enqueue(chunk); + }; + const transformStream = new TransformStream({ + start() { + }, + transform: identityTransformAlgorithm, + flush: processResponseEndOfBody + }, { + size() { + return 1; + } + }, { + size() { + return 1; + } + }); + response.body = { stream: response.body.stream.pipeThrough(transformStream) }; + } + if (fetchParams.processResponseConsumeBody != null) { + const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes); + const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure); + if (response.body == null) { + queueMicrotask(() => processBody(null)); + } else { + return fullyReadBody(response.body, processBody, processBodyError); + } + return Promise.resolve(); + } + } + async function httpFetch(fetchParams) { + const request = fetchParams.request; + let response = null; + let actualResponse = null; + const timingInfo = fetchParams.timingInfo; + if (request.serviceWorkers === "all") { + } + if (response === null) { + if (request.redirect === "follow") { + request.serviceWorkers = "none"; + } + actualResponse = response = await httpNetworkOrCacheFetch(fetchParams); + if (request.responseTainting === "cors" && corsCheck(request, response) === "failure") { + return makeNetworkError("cors failure"); + } + if (TAOCheck(request, response) === "failure") { + request.timingAllowFailed = true; + } + } + if ((request.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck( + request.origin, + request.client, + request.destination, + actualResponse + ) === "blocked") { + return makeNetworkError("blocked"); + } + if (redirectStatusSet.has(actualResponse.status)) { + if (request.redirect !== "manual") { + fetchParams.controller.connection.destroy(); + } + if (request.redirect === "error") { + response = makeNetworkError("unexpected redirect"); + } else if (request.redirect === "manual") { + response = actualResponse; + } else if (request.redirect === "follow") { + response = await httpRedirectFetch(fetchParams, response); + } else { + assert2(false); + } + } + response.timingInfo = timingInfo; + return response; + } + function httpRedirectFetch(fetchParams, response) { + const request = fetchParams.request; + const actualResponse = response.internalResponse ? response.internalResponse : response; + let locationURL; + try { + locationURL = responseLocationURL( + actualResponse, + requestCurrentURL(request).hash + ); + if (locationURL == null) { + return response; + } + } catch (err) { + return Promise.resolve(makeNetworkError(err)); + } + if (!urlIsHttpHttpsScheme(locationURL)) { + return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme")); + } + if (request.redirectCount === 20) { + return Promise.resolve(makeNetworkError("redirect count exceeded")); + } + request.redirectCount += 1; + if (request.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request, locationURL)) { + return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')); + } + if (request.responseTainting === "cors" && (locationURL.username || locationURL.password)) { + return Promise.resolve(makeNetworkError( + 'URL cannot contain credentials for request mode "cors"' + )); + } + if (actualResponse.status !== 303 && request.body != null && request.body.source == null) { + return Promise.resolve(makeNetworkError()); + } + if ([301, 302].includes(actualResponse.status) && request.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request.method)) { + request.method = "GET"; + request.body = null; + for (const headerName of requestBodyHeader) { + request.headersList.delete(headerName); + } + } + if (!sameOrigin(requestCurrentURL(request), locationURL)) { + request.headersList.delete("authorization"); + request.headersList.delete("proxy-authorization", true); + request.headersList.delete("cookie"); + request.headersList.delete("host"); + } + if (request.body != null) { + assert2(request.body.source != null); + request.body = safelyExtractBody(request.body.source)[0]; + } + const timingInfo = fetchParams.timingInfo; + timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); + if (timingInfo.redirectStartTime === 0) { + timingInfo.redirectStartTime = timingInfo.startTime; + } + request.urlList.push(locationURL); + setRequestReferrerPolicyOnRedirect(request, actualResponse); + return mainFetch(fetchParams, true); + } + async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { + const request = fetchParams.request; + let httpFetchParams = null; + let httpRequest = null; + let response = null; + const httpCache = null; + const revalidatingFlag = false; + if (request.window === "no-window" && request.redirect === "error") { + httpFetchParams = fetchParams; + httpRequest = request; + } else { + httpRequest = makeRequest(request); + httpFetchParams = { ...fetchParams }; + httpFetchParams.request = httpRequest; + } + const includeCredentials = request.credentials === "include" || request.credentials === "same-origin" && request.responseTainting === "basic"; + const contentLength = httpRequest.body ? httpRequest.body.length : null; + let contentLengthHeaderValue = null; + if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method)) { + contentLengthHeaderValue = "0"; + } + if (contentLength != null) { + contentLengthHeaderValue = isomorphicEncode(`${contentLength}`); + } + if (contentLengthHeaderValue != null) { + httpRequest.headersList.append("content-length", contentLengthHeaderValue); + } + if (contentLength != null && httpRequest.keepalive) { + } + if (httpRequest.referrer instanceof URL) { + httpRequest.headersList.append("referer", isomorphicEncode(httpRequest.referrer.href)); + } + appendRequestOriginHeader(httpRequest); + appendFetchMetadata(httpRequest); + if (!httpRequest.headersList.contains("user-agent")) { + httpRequest.headersList.append("user-agent", typeof esbuildDetection === "undefined" ? "undici" : "node"); + } + if (httpRequest.cache === "default" && (httpRequest.headersList.contains("if-modified-since") || httpRequest.headersList.contains("if-none-match") || httpRequest.headersList.contains("if-unmodified-since") || httpRequest.headersList.contains("if-match") || httpRequest.headersList.contains("if-range"))) { + httpRequest.cache = "no-store"; + } + if (httpRequest.cache === "no-cache" && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.contains("cache-control")) { + httpRequest.headersList.append("cache-control", "max-age=0"); + } + if (httpRequest.cache === "no-store" || httpRequest.cache === "reload") { + if (!httpRequest.headersList.contains("pragma")) { + httpRequest.headersList.append("pragma", "no-cache"); + } + if (!httpRequest.headersList.contains("cache-control")) { + httpRequest.headersList.append("cache-control", "no-cache"); + } + } + if (httpRequest.headersList.contains("range")) { + httpRequest.headersList.append("accept-encoding", "identity"); + } + if (!httpRequest.headersList.contains("accept-encoding")) { + if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { + httpRequest.headersList.append("accept-encoding", "br, gzip, deflate"); + } else { + httpRequest.headersList.append("accept-encoding", "gzip, deflate"); + } + } + httpRequest.headersList.delete("host"); + if (includeCredentials) { + } + if (httpCache == null) { + httpRequest.cache = "no-store"; + } + if (httpRequest.mode !== "no-store" && httpRequest.mode !== "reload") { + } + if (response == null) { + if (httpRequest.mode === "only-if-cached") { + return makeNetworkError("only if cached"); + } + const forwardResponse = await httpNetworkFetch( + httpFetchParams, + includeCredentials, + isNewConnectionFetch + ); + if (!safeMethodsSet.has(httpRequest.method) && forwardResponse.status >= 200 && forwardResponse.status <= 399) { + } + if (revalidatingFlag && forwardResponse.status === 304) { + } + if (response == null) { + response = forwardResponse; + } + } + response.urlList = [...httpRequest.urlList]; + if (httpRequest.headersList.contains("range")) { + response.rangeRequested = true; + } + response.requestIncludesCredentials = includeCredentials; + if (response.status === 407) { + if (request.window === "no-window") { + return makeNetworkError(); + } + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams); + } + return makeNetworkError("proxy authentication required"); + } + if ( + // response’s status is 421 + response.status === 421 && // isNewConnectionFetch is false + !isNewConnectionFetch && // request’s body is null, or request’s body is non-null and request’s body’s source is non-null + (request.body == null || request.body.source != null) + ) { + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams); + } + fetchParams.controller.connection.destroy(); + response = await httpNetworkOrCacheFetch( + fetchParams, + isAuthenticationFetch, + true + ); + } + if (isAuthenticationFetch) { + } + return response; + } + async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { + assert2(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); + fetchParams.controller.connection = { + abort: null, + destroyed: false, + destroy(err) { + if (!this.destroyed) { + this.destroyed = true; + this.abort?.(err ?? new DOMException2("The operation was aborted.", "AbortError")); + } + } + }; + const request = fetchParams.request; + let response = null; + const timingInfo = fetchParams.timingInfo; + const httpCache = null; + if (httpCache == null) { + request.cache = "no-store"; + } + const newConnection = forceNewConnection ? "yes" : "no"; + if (request.mode === "websocket") { + } else { + } + let requestBody = null; + if (request.body == null && fetchParams.processRequestEndOfBody) { + queueMicrotask(() => fetchParams.processRequestEndOfBody()); + } else if (request.body != null) { + const processBodyChunk = async function* (bytes7) { + if (isCancelled(fetchParams)) { + return; + } + yield bytes7; + fetchParams.processRequestBodyChunkLength?.(bytes7.byteLength); + }; + const processEndOfBody = () => { + if (isCancelled(fetchParams)) { + return; + } + if (fetchParams.processRequestEndOfBody) { + fetchParams.processRequestEndOfBody(); + } + }; + const processBodyError = (e) => { + if (isCancelled(fetchParams)) { + return; + } + if (e.name === "AbortError") { + fetchParams.controller.abort(); + } else { + fetchParams.controller.terminate(e); + } + }; + requestBody = async function* () { + try { + for await (const bytes7 of request.body.stream) { + yield* processBodyChunk(bytes7); + } + processEndOfBody(); + } catch (err) { + processBodyError(err); + } + }(); + } + try { + const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }); + if (socket) { + response = makeResponse({ status, statusText, headersList, socket }); + } else { + const iterator = body[Symbol.asyncIterator](); + fetchParams.controller.next = () => iterator.next(); + response = makeResponse({ status, statusText, headersList }); + } + } catch (err) { + if (err.name === "AbortError") { + fetchParams.controller.connection.destroy(); + return makeAppropriateNetworkError(fetchParams, err); + } + return makeNetworkError(err); + } + const pullAlgorithm = () => { + fetchParams.controller.resume(); + }; + const cancelAlgorithm = (reason) => { + fetchParams.controller.abort(reason); + }; + if (!ReadableStream) { + ReadableStream = require("stream/web").ReadableStream; + } + const stream = new ReadableStream( + { + async start(controller) { + fetchParams.controller.controller = controller; + }, + async pull(controller) { + await pullAlgorithm(controller); + }, + async cancel(reason) { + await cancelAlgorithm(reason); + } + }, + { + highWaterMark: 0, + size() { + return 1; + } + } + ); + response.body = { stream }; + fetchParams.controller.on("terminated", onAborted); + fetchParams.controller.resume = async () => { + while (true) { + let bytes7; + let isFailure; + try { + const { done, value } = await fetchParams.controller.next(); + if (isAborted(fetchParams)) { + break; + } + bytes7 = done ? void 0 : value; + } catch (err) { + if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { + bytes7 = void 0; + } else { + bytes7 = err; + isFailure = true; + } + } + if (bytes7 === void 0) { + readableStreamClose(fetchParams.controller.controller); + finalizeResponse(fetchParams, response); + return; + } + timingInfo.decodedBodySize += bytes7?.byteLength ?? 0; + if (isFailure) { + fetchParams.controller.terminate(bytes7); + return; + } + fetchParams.controller.controller.enqueue(new Uint8Array(bytes7)); + if (isErrored(stream)) { + fetchParams.controller.terminate(); + return; + } + if (!fetchParams.controller.controller.desiredSize) { + return; + } + } + }; + function onAborted(reason) { + if (isAborted(fetchParams)) { + response.aborted = true; + if (isReadable(stream)) { + fetchParams.controller.controller.error( + fetchParams.controller.serializedAbortReason + ); + } + } else { + if (isReadable(stream)) { + fetchParams.controller.controller.error(new TypeError("terminated", { + cause: isErrorLike(reason) ? reason : void 0 + })); + } + } + fetchParams.controller.connection.destroy(); + } + return response; + async function dispatch({ body }) { + const url = requestCurrentURL(request); + const agent = fetchParams.controller.dispatcher; + return new Promise((resolve, reject) => agent.dispatch( + { + path: url.pathname + url.search, + origin: url.origin, + method: request.method, + body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body, + headers: request.headersList.entries, + maxRedirections: 0, + upgrade: request.mode === "websocket" ? "websocket" : void 0 + }, + { + body: null, + abort: null, + onConnect(abort) { + const { connection } = fetchParams.controller; + if (connection.destroyed) { + abort(new DOMException2("The operation was aborted.", "AbortError")); + } else { + fetchParams.controller.on("terminated", abort); + this.abort = connection.abort = abort; + } + }, + onHeaders(status, headersList, resume, statusText) { + if (status < 200) { + return; + } + let codings = []; + let location = ""; + const headers = new Headers(); + if (Array.isArray(headersList)) { + for (let n = 0; n < headersList.length; n += 2) { + const key = headersList[n + 0].toString("latin1"); + const val = headersList[n + 1].toString("latin1"); + if (key.toLowerCase() === "content-encoding") { + codings = val.toLowerCase().split(",").map((x) => x.trim()); + } else if (key.toLowerCase() === "location") { + location = val; + } + headers[kHeadersList].append(key, val); + } + } else { + const keys = Object.keys(headersList); + for (const key of keys) { + const val = headersList[key]; + if (key.toLowerCase() === "content-encoding") { + codings = val.toLowerCase().split(",").map((x) => x.trim()).reverse(); + } else if (key.toLowerCase() === "location") { + location = val; + } + headers[kHeadersList].append(key, val); + } + } + this.body = new Readable({ read: resume }); + const decoders = []; + const willFollow = request.redirect === "follow" && location && redirectStatusSet.has(status); + if (request.method !== "HEAD" && request.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) { + for (const coding of codings) { + if (coding === "x-gzip" || coding === "gzip") { + decoders.push(zlib.createGunzip({ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH + })); + } else if (coding === "deflate") { + decoders.push(zlib.createInflate()); + } else if (coding === "br") { + decoders.push(zlib.createBrotliDecompress()); + } else { + decoders.length = 0; + break; + } + } + } + resolve({ + status, + statusText, + headersList: headers[kHeadersList], + body: decoders.length ? pipeline(this.body, ...decoders, () => { + }) : this.body.on("error", () => { + }) + }); + return true; + }, + onData(chunk) { + if (fetchParams.controller.dump) { + return; + } + const bytes7 = chunk; + timingInfo.encodedBodySize += bytes7.byteLength; + return this.body.push(bytes7); + }, + onComplete() { + if (this.abort) { + fetchParams.controller.off("terminated", this.abort); + } + fetchParams.controller.ended = true; + this.body.push(null); + }, + onError(error) { + if (this.abort) { + fetchParams.controller.off("terminated", this.abort); + } + this.body?.destroy(error); + fetchParams.controller.terminate(error); + reject(error); + }, + onUpgrade(status, headersList, socket) { + if (status !== 101) { + return; + } + const headers = new Headers(); + for (let n = 0; n < headersList.length; n += 2) { + const key = headersList[n + 0].toString("latin1"); + const val = headersList[n + 1].toString("latin1"); + headers[kHeadersList].append(key, val); + } + resolve({ + status, + statusText: STATUS_CODES[status], + headersList: headers[kHeadersList], + socket + }); + return true; + } + } + )); + } + } + module2.exports = { + fetch: fetch2, + Fetch, + fetching, + finalizeAndReportTiming + }; + } +}); + +// node_modules/undici/lib/fileapi/symbols.js +var require_symbols3 = __commonJS({ + "node_modules/undici/lib/fileapi/symbols.js"(exports2, module2) { + "use strict"; + module2.exports = { + kState: Symbol("FileReader state"), + kResult: Symbol("FileReader result"), + kError: Symbol("FileReader error"), + kLastProgressEventFired: Symbol("FileReader last progress event fired timestamp"), + kEvents: Symbol("FileReader events"), + kAborted: Symbol("FileReader aborted") + }; + } +}); + +// node_modules/undici/lib/fileapi/progressevent.js +var require_progressevent = __commonJS({ + "node_modules/undici/lib/fileapi/progressevent.js"(exports2, module2) { + "use strict"; + var { webidl } = require_webidl(); + var kState = Symbol("ProgressEvent state"); + var ProgressEvent = class _ProgressEvent extends Event { + constructor(type, eventInitDict = {}) { + type = webidl.converters.DOMString(type); + eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}); + super(type, eventInitDict); + this[kState] = { + lengthComputable: eventInitDict.lengthComputable, + loaded: eventInitDict.loaded, + total: eventInitDict.total + }; + } + get lengthComputable() { + webidl.brandCheck(this, _ProgressEvent); + return this[kState].lengthComputable; + } + get loaded() { + webidl.brandCheck(this, _ProgressEvent); + return this[kState].loaded; + } + get total() { + webidl.brandCheck(this, _ProgressEvent); + return this[kState].total; + } + }; + webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ + { + key: "lengthComputable", + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: "loaded", + converter: webidl.converters["unsigned long long"], + defaultValue: 0 + }, + { + key: "total", + converter: webidl.converters["unsigned long long"], + defaultValue: 0 + }, + { + key: "bubbles", + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: "cancelable", + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: "composed", + converter: webidl.converters.boolean, + defaultValue: false + } + ]); + module2.exports = { + ProgressEvent + }; + } +}); + +// node_modules/undici/lib/fileapi/encoding.js +var require_encoding = __commonJS({ + "node_modules/undici/lib/fileapi/encoding.js"(exports2, module2) { + "use strict"; + function getEncoding(label) { + if (!label) { + return "failure"; + } + switch (label.trim().toLowerCase()) { + case "unicode-1-1-utf-8": + case "unicode11utf8": + case "unicode20utf8": + case "utf-8": + case "utf8": + case "x-unicode20utf8": + return "UTF-8"; + case "866": + case "cp866": + case "csibm866": + case "ibm866": + return "IBM866"; + case "csisolatin2": + case "iso-8859-2": + case "iso-ir-101": + case "iso8859-2": + case "iso88592": + case "iso_8859-2": + case "iso_8859-2:1987": + case "l2": + case "latin2": + return "ISO-8859-2"; + case "csisolatin3": + case "iso-8859-3": + case "iso-ir-109": + case "iso8859-3": + case "iso88593": + case "iso_8859-3": + case "iso_8859-3:1988": + case "l3": + case "latin3": + return "ISO-8859-3"; + case "csisolatin4": + case "iso-8859-4": + case "iso-ir-110": + case "iso8859-4": + case "iso88594": + case "iso_8859-4": + case "iso_8859-4:1988": + case "l4": + case "latin4": + return "ISO-8859-4"; + case "csisolatincyrillic": + case "cyrillic": + case "iso-8859-5": + case "iso-ir-144": + case "iso8859-5": + case "iso88595": + case "iso_8859-5": + case "iso_8859-5:1988": + return "ISO-8859-5"; + case "arabic": + case "asmo-708": + case "csiso88596e": + case "csiso88596i": + case "csisolatinarabic": + case "ecma-114": + case "iso-8859-6": + case "iso-8859-6-e": + case "iso-8859-6-i": + case "iso-ir-127": + case "iso8859-6": + case "iso88596": + case "iso_8859-6": + case "iso_8859-6:1987": + return "ISO-8859-6"; + case "csisolatingreek": + case "ecma-118": + case "elot_928": + case "greek": + case "greek8": + case "iso-8859-7": + case "iso-ir-126": + case "iso8859-7": + case "iso88597": + case "iso_8859-7": + case "iso_8859-7:1987": + case "sun_eu_greek": + return "ISO-8859-7"; + case "csiso88598e": + case "csisolatinhebrew": + case "hebrew": + case "iso-8859-8": + case "iso-8859-8-e": + case "iso-ir-138": + case "iso8859-8": + case "iso88598": + case "iso_8859-8": + case "iso_8859-8:1988": + case "visual": + return "ISO-8859-8"; + case "csiso88598i": + case "iso-8859-8-i": + case "logical": + return "ISO-8859-8-I"; + case "csisolatin6": + case "iso-8859-10": + case "iso-ir-157": + case "iso8859-10": + case "iso885910": + case "l6": + case "latin6": + return "ISO-8859-10"; + case "iso-8859-13": + case "iso8859-13": + case "iso885913": + return "ISO-8859-13"; + case "iso-8859-14": + case "iso8859-14": + case "iso885914": + return "ISO-8859-14"; + case "csisolatin9": + case "iso-8859-15": + case "iso8859-15": + case "iso885915": + case "iso_8859-15": + case "l9": + return "ISO-8859-15"; + case "iso-8859-16": + return "ISO-8859-16"; + case "cskoi8r": + case "koi": + case "koi8": + case "koi8-r": + case "koi8_r": + return "KOI8-R"; + case "koi8-ru": + case "koi8-u": + return "KOI8-U"; + case "csmacintosh": + case "mac": + case "macintosh": + case "x-mac-roman": + return "macintosh"; + case "iso-8859-11": + case "iso8859-11": + case "iso885911": + case "tis-620": + case "windows-874": + return "windows-874"; + case "cp1250": + case "windows-1250": + case "x-cp1250": + return "windows-1250"; + case "cp1251": + case "windows-1251": + case "x-cp1251": + return "windows-1251"; + case "ansi_x3.4-1968": + case "ascii": + case "cp1252": + case "cp819": + case "csisolatin1": + case "ibm819": + case "iso-8859-1": + case "iso-ir-100": + case "iso8859-1": + case "iso88591": + case "iso_8859-1": + case "iso_8859-1:1987": + case "l1": + case "latin1": + case "us-ascii": + case "windows-1252": + case "x-cp1252": + return "windows-1252"; + case "cp1253": + case "windows-1253": + case "x-cp1253": + return "windows-1253"; + case "cp1254": + case "csisolatin5": + case "iso-8859-9": + case "iso-ir-148": + case "iso8859-9": + case "iso88599": + case "iso_8859-9": + case "iso_8859-9:1989": + case "l5": + case "latin5": + case "windows-1254": + case "x-cp1254": + return "windows-1254"; + case "cp1255": + case "windows-1255": + case "x-cp1255": + return "windows-1255"; + case "cp1256": + case "windows-1256": + case "x-cp1256": + return "windows-1256"; + case "cp1257": + case "windows-1257": + case "x-cp1257": + return "windows-1257"; + case "cp1258": + case "windows-1258": + case "x-cp1258": + return "windows-1258"; + case "x-mac-cyrillic": + case "x-mac-ukrainian": + return "x-mac-cyrillic"; + case "chinese": + case "csgb2312": + case "csiso58gb231280": + case "gb2312": + case "gb_2312": + case "gb_2312-80": + case "gbk": + case "iso-ir-58": + case "x-gbk": + return "GBK"; + case "gb18030": + return "gb18030"; + case "big5": + case "big5-hkscs": + case "cn-big5": + case "csbig5": + case "x-x-big5": + return "Big5"; + case "cseucpkdfmtjapanese": + case "euc-jp": + case "x-euc-jp": + return "EUC-JP"; + case "csiso2022jp": + case "iso-2022-jp": + return "ISO-2022-JP"; + case "csshiftjis": + case "ms932": + case "ms_kanji": + case "shift-jis": + case "shift_jis": + case "sjis": + case "windows-31j": + case "x-sjis": + return "Shift_JIS"; + case "cseuckr": + case "csksc56011987": + case "euc-kr": + case "iso-ir-149": + case "korean": + case "ks_c_5601-1987": + case "ks_c_5601-1989": + case "ksc5601": + case "ksc_5601": + case "windows-949": + return "EUC-KR"; + case "csiso2022kr": + case "hz-gb-2312": + case "iso-2022-cn": + case "iso-2022-cn-ext": + case "iso-2022-kr": + case "replacement": + return "replacement"; + case "unicodefffe": + case "utf-16be": + return "UTF-16BE"; + case "csunicode": + case "iso-10646-ucs-2": + case "ucs-2": + case "unicode": + case "unicodefeff": + case "utf-16": + case "utf-16le": + return "UTF-16LE"; + case "x-user-defined": + return "x-user-defined"; + default: + return "failure"; + } + } + module2.exports = { + getEncoding + }; + } +}); + +// node_modules/undici/lib/fileapi/util.js +var require_util4 = __commonJS({ + "node_modules/undici/lib/fileapi/util.js"(exports2, module2) { + "use strict"; + var { + kState, + kError, + kResult, + kAborted, + kLastProgressEventFired + } = require_symbols3(); + var { ProgressEvent } = require_progressevent(); + var { getEncoding } = require_encoding(); + var { DOMException: DOMException2 } = require_constants2(); + var { serializeAMimeType, parseMIMEType } = require_dataURL(); + var { types } = require("util"); + var { StringDecoder } = require("string_decoder"); + var { btoa } = require("buffer"); + var staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false + }; + function readOperation(fr, blob3, type, encodingName) { + if (fr[kState] === "loading") { + throw new DOMException2("Invalid state", "InvalidStateError"); + } + fr[kState] = "loading"; + fr[kResult] = null; + fr[kError] = null; + const stream = blob3.stream(); + const reader = stream.getReader(); + const bytes7 = []; + let chunkPromise = reader.read(); + let isFirstChunk = true; + (async () => { + while (!fr[kAborted]) { + try { + const { done, value } = await chunkPromise; + if (isFirstChunk && !fr[kAborted]) { + queueMicrotask(() => { + fireAProgressEvent("loadstart", fr); + }); + } + isFirstChunk = false; + if (!done && types.isUint8Array(value)) { + bytes7.push(value); + if ((fr[kLastProgressEventFired] === void 0 || Date.now() - fr[kLastProgressEventFired] >= 50) && !fr[kAborted]) { + fr[kLastProgressEventFired] = Date.now(); + queueMicrotask(() => { + fireAProgressEvent("progress", fr); + }); + } + chunkPromise = reader.read(); + } else if (done) { + queueMicrotask(() => { + fr[kState] = "done"; + try { + const result = packageData(bytes7, type, blob3.type, encodingName); + if (fr[kAborted]) { + return; + } + fr[kResult] = result; + fireAProgressEvent("load", fr); + } catch (error) { + fr[kError] = error; + fireAProgressEvent("error", fr); + } + if (fr[kState] !== "loading") { + fireAProgressEvent("loadend", fr); + } + }); + break; + } + } catch (error) { + if (fr[kAborted]) { + return; + } + queueMicrotask(() => { + fr[kState] = "done"; + fr[kError] = error; + fireAProgressEvent("error", fr); + if (fr[kState] !== "loading") { + fireAProgressEvent("loadend", fr); + } + }); + break; + } + } + })(); + } + function fireAProgressEvent(e, reader) { + const event = new ProgressEvent(e, { + bubbles: false, + cancelable: false + }); + reader.dispatchEvent(event); + } + function packageData(bytes7, type, mimeType, encodingName) { + switch (type) { + case "DataURL": { + let dataURL = "data:"; + const parsed = parseMIMEType(mimeType || "application/octet-stream"); + if (parsed !== "failure") { + dataURL += serializeAMimeType(parsed); + } + dataURL += ";base64,"; + const decoder = new StringDecoder("latin1"); + for (const chunk of bytes7) { + dataURL += btoa(decoder.write(chunk)); + } + dataURL += btoa(decoder.end()); + return dataURL; + } + case "Text": { + let encoding = "failure"; + if (encodingName) { + encoding = getEncoding(encodingName); + } + if (encoding === "failure" && mimeType) { + const type2 = parseMIMEType(mimeType); + if (type2 !== "failure") { + encoding = getEncoding(type2.parameters.get("charset")); + } + } + if (encoding === "failure") { + encoding = "UTF-8"; + } + return decode(bytes7, encoding); + } + case "ArrayBuffer": { + const sequence = combineByteSequences(bytes7); + return sequence.buffer; + } + case "BinaryString": { + let binaryString = ""; + const decoder = new StringDecoder("latin1"); + for (const chunk of bytes7) { + binaryString += decoder.write(chunk); + } + binaryString += decoder.end(); + return binaryString; + } + } + } + function decode(ioQueue, encoding) { + const bytes7 = combineByteSequences(ioQueue); + const BOMEncoding = BOMSniffing(bytes7); + let slice = 0; + if (BOMEncoding !== null) { + encoding = BOMEncoding; + slice = BOMEncoding === "UTF-8" ? 3 : 2; + } + const sliced = bytes7.slice(slice); + return new TextDecoder(encoding).decode(sliced); + } + function BOMSniffing(ioQueue) { + const [a, b, c] = ioQueue; + if (a === 239 && b === 187 && c === 191) { + return "UTF-8"; + } else if (a === 254 && b === 255) { + return "UTF-16BE"; + } else if (a === 255 && b === 254) { + return "UTF-16LE"; + } + return null; + } + function combineByteSequences(sequences) { + const size = sequences.reduce((a, b) => { + return a + b.byteLength; + }, 0); + let offset = 0; + return sequences.reduce((a, b) => { + a.set(b, offset); + offset += b.byteLength; + return a; + }, new Uint8Array(size)); + } + module2.exports = { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent + }; + } +}); + +// node_modules/undici/lib/fileapi/filereader.js +var require_filereader = __commonJS({ + "node_modules/undici/lib/fileapi/filereader.js"(exports2, module2) { + "use strict"; + var { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent + } = require_util4(); + var { + kState, + kError, + kResult, + kEvents, + kAborted + } = require_symbols3(); + var { webidl } = require_webidl(); + var { kEnumerableProperty } = require_util(); + var FileReader = class _FileReader extends EventTarget { + constructor() { + super(); + this[kState] = "empty"; + this[kResult] = null; + this[kError] = null; + this[kEvents] = { + loadend: null, + error: null, + abort: null, + load: null, + progress: null, + loadstart: null + }; + } + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer + * @param {import('buffer').Blob} blob + */ + readAsArrayBuffer(blob3) { + webidl.brandCheck(this, _FileReader); + webidl.argumentLengthCheck(arguments, 1, { header: "FileReader.readAsArrayBuffer" }); + blob3 = webidl.converters.Blob(blob3, { strict: false }); + readOperation(this, blob3, "ArrayBuffer"); + } + /** + * @see https://w3c.github.io/FileAPI/#readAsBinaryString + * @param {import('buffer').Blob} blob + */ + readAsBinaryString(blob3) { + webidl.brandCheck(this, _FileReader); + webidl.argumentLengthCheck(arguments, 1, { header: "FileReader.readAsBinaryString" }); + blob3 = webidl.converters.Blob(blob3, { strict: false }); + readOperation(this, blob3, "BinaryString"); + } + /** + * @see https://w3c.github.io/FileAPI/#readAsDataText + * @param {import('buffer').Blob} blob + * @param {string?} encoding + */ + readAsText(blob3, encoding = void 0) { + webidl.brandCheck(this, _FileReader); + webidl.argumentLengthCheck(arguments, 1, { header: "FileReader.readAsText" }); + blob3 = webidl.converters.Blob(blob3, { strict: false }); + if (encoding !== void 0) { + encoding = webidl.converters.DOMString(encoding); + } + readOperation(this, blob3, "Text", encoding); + } + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL + * @param {import('buffer').Blob} blob + */ + readAsDataURL(blob3) { + webidl.brandCheck(this, _FileReader); + webidl.argumentLengthCheck(arguments, 1, { header: "FileReader.readAsDataURL" }); + blob3 = webidl.converters.Blob(blob3, { strict: false }); + readOperation(this, blob3, "DataURL"); + } + /** + * @see https://w3c.github.io/FileAPI/#dfn-abort + */ + abort() { + if (this[kState] === "empty" || this[kState] === "done") { + this[kResult] = null; + return; + } + if (this[kState] === "loading") { + this[kState] = "done"; + this[kResult] = null; + } + this[kAborted] = true; + fireAProgressEvent("abort", this); + if (this[kState] !== "loading") { + fireAProgressEvent("loadend", this); + } + } + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate + */ + get readyState() { + webidl.brandCheck(this, _FileReader); + switch (this[kState]) { + case "empty": + return this.EMPTY; + case "loading": + return this.LOADING; + case "done": + return this.DONE; + } + } + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-result + */ + get result() { + webidl.brandCheck(this, _FileReader); + return this[kResult]; + } + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-error + */ + get error() { + webidl.brandCheck(this, _FileReader); + return this[kError]; + } + get onloadend() { + webidl.brandCheck(this, _FileReader); + return this[kEvents].loadend; + } + set onloadend(fn) { + webidl.brandCheck(this, _FileReader); + if (this[kEvents].loadend) { + this.removeEventListener("loadend", this[kEvents].loadend); + } + if (typeof fn === "function") { + this[kEvents].loadend = fn; + this.addEventListener("loadend", fn); + } else { + this[kEvents].loadend = null; + } + } + get onerror() { + webidl.brandCheck(this, _FileReader); + return this[kEvents].error; + } + set onerror(fn) { + webidl.brandCheck(this, _FileReader); + if (this[kEvents].error) { + this.removeEventListener("error", this[kEvents].error); + } + if (typeof fn === "function") { + this[kEvents].error = fn; + this.addEventListener("error", fn); + } else { + this[kEvents].error = null; + } + } + get onloadstart() { + webidl.brandCheck(this, _FileReader); + return this[kEvents].loadstart; + } + set onloadstart(fn) { + webidl.brandCheck(this, _FileReader); + if (this[kEvents].loadstart) { + this.removeEventListener("loadstart", this[kEvents].loadstart); + } + if (typeof fn === "function") { + this[kEvents].loadstart = fn; + this.addEventListener("loadstart", fn); + } else { + this[kEvents].loadstart = null; + } + } + get onprogress() { + webidl.brandCheck(this, _FileReader); + return this[kEvents].progress; + } + set onprogress(fn) { + webidl.brandCheck(this, _FileReader); + if (this[kEvents].progress) { + this.removeEventListener("progress", this[kEvents].progress); + } + if (typeof fn === "function") { + this[kEvents].progress = fn; + this.addEventListener("progress", fn); + } else { + this[kEvents].progress = null; + } + } + get onload() { + webidl.brandCheck(this, _FileReader); + return this[kEvents].load; + } + set onload(fn) { + webidl.brandCheck(this, _FileReader); + if (this[kEvents].load) { + this.removeEventListener("load", this[kEvents].load); + } + if (typeof fn === "function") { + this[kEvents].load = fn; + this.addEventListener("load", fn); + } else { + this[kEvents].load = null; + } + } + get onabort() { + webidl.brandCheck(this, _FileReader); + return this[kEvents].abort; + } + set onabort(fn) { + webidl.brandCheck(this, _FileReader); + if (this[kEvents].abort) { + this.removeEventListener("abort", this[kEvents].abort); + } + if (typeof fn === "function") { + this[kEvents].abort = fn; + this.addEventListener("abort", fn); + } else { + this[kEvents].abort = null; + } + } + }; + FileReader.EMPTY = FileReader.prototype.EMPTY = 0; + FileReader.LOADING = FileReader.prototype.LOADING = 1; + FileReader.DONE = FileReader.prototype.DONE = 2; + Object.defineProperties(FileReader.prototype, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors, + readAsArrayBuffer: kEnumerableProperty, + readAsBinaryString: kEnumerableProperty, + readAsText: kEnumerableProperty, + readAsDataURL: kEnumerableProperty, + abort: kEnumerableProperty, + readyState: kEnumerableProperty, + result: kEnumerableProperty, + error: kEnumerableProperty, + onloadstart: kEnumerableProperty, + onprogress: kEnumerableProperty, + onload: kEnumerableProperty, + onabort: kEnumerableProperty, + onerror: kEnumerableProperty, + onloadend: kEnumerableProperty, + [Symbol.toStringTag]: { + value: "FileReader", + writable: false, + enumerable: false, + configurable: true + } + }); + Object.defineProperties(FileReader, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors + }); + module2.exports = { + FileReader + }; + } +}); + +// node_modules/undici/lib/cache/symbols.js +var require_symbols4 = __commonJS({ + "node_modules/undici/lib/cache/symbols.js"(exports2, module2) { + "use strict"; + module2.exports = { + kConstruct: require_symbols().kConstruct + }; + } +}); + +// node_modules/undici/lib/cache/util.js +var require_util5 = __commonJS({ + "node_modules/undici/lib/cache/util.js"(exports2, module2) { + "use strict"; + var assert2 = require("assert"); + var { URLSerializer } = require_dataURL(); + var { isValidHeaderName } = require_util2(); + function urlEquals(A, B, excludeFragment = false) { + const serializedA = URLSerializer(A, excludeFragment); + const serializedB = URLSerializer(B, excludeFragment); + return serializedA === serializedB; + } + function fieldValues(header) { + assert2(header !== null); + const values = []; + for (let value of header.split(",")) { + value = value.trim(); + if (!value.length) { + continue; + } else if (!isValidHeaderName(value)) { + continue; + } + values.push(value); + } + return values; + } + module2.exports = { + urlEquals, + fieldValues + }; + } +}); + +// node_modules/undici/lib/cache/cache.js +var require_cache = __commonJS({ + "node_modules/undici/lib/cache/cache.js"(exports2, module2) { + "use strict"; + var { kConstruct } = require_symbols4(); + var { urlEquals, fieldValues: getFieldValues } = require_util5(); + var { kEnumerableProperty, isDisturbed } = require_util(); + var { kHeadersList } = require_symbols(); + var { webidl } = require_webidl(); + var { Response, cloneResponse } = require_response(); + var { Request } = require_request2(); + var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); + var { fetching } = require_fetch(); + var { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require_util2(); + var assert2 = require("assert"); + var { getGlobalDispatcher } = require_global2(); + var Cache = class _Cache { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list + * @type {requestResponseList} + */ + #relevantRequestResponseList; + constructor() { + if (arguments[0] !== kConstruct) { + webidl.illegalConstructor(); + } + this.#relevantRequestResponseList = arguments[1]; + } + async match(request, options = {}) { + webidl.brandCheck(this, _Cache); + webidl.argumentLengthCheck(arguments, 1, { header: "Cache.match" }); + request = webidl.converters.RequestInfo(request); + options = webidl.converters.CacheQueryOptions(options); + const p = await this.matchAll(request, options); + if (p.length === 0) { + return; + } + return p[0]; + } + async matchAll(request = void 0, options = {}) { + webidl.brandCheck(this, _Cache); + if (request !== void 0) request = webidl.converters.RequestInfo(request); + options = webidl.converters.CacheQueryOptions(options); + let r = null; + if (request !== void 0) { + if (request instanceof Request) { + r = request[kState]; + if (r.method !== "GET" && !options.ignoreMethod) { + return []; + } + } else if (typeof request === "string") { + r = new Request(request)[kState]; + } + } + const responses = []; + if (request === void 0) { + for (const requestResponse of this.#relevantRequestResponseList) { + responses.push(requestResponse[1]); + } + } else { + const requestResponses = this.#queryCache(r, options); + for (const requestResponse of requestResponses) { + responses.push(requestResponse[1]); + } + } + const responseList = []; + for (const response of responses) { + const responseObject = new Response(response.body?.source ?? null); + const body = responseObject[kState].body; + responseObject[kState] = response; + responseObject[kState].body = body; + responseObject[kHeaders][kHeadersList] = response.headersList; + responseObject[kHeaders][kGuard] = "immutable"; + responseList.push(responseObject); + } + return Object.freeze(responseList); + } + async add(request) { + webidl.brandCheck(this, _Cache); + webidl.argumentLengthCheck(arguments, 1, { header: "Cache.add" }); + request = webidl.converters.RequestInfo(request); + const requests = [request]; + const responseArrayPromise = this.addAll(requests); + return await responseArrayPromise; + } + async addAll(requests) { + webidl.brandCheck(this, _Cache); + webidl.argumentLengthCheck(arguments, 1, { header: "Cache.addAll" }); + requests = webidl.converters["sequence"](requests); + const responsePromises = []; + const requestList = []; + for (const request of requests) { + if (typeof request === "string") { + continue; + } + const r = request[kState]; + if (!urlIsHttpHttpsScheme(r.url) || r.method !== "GET") { + throw webidl.errors.exception({ + header: "Cache.addAll", + message: "Expected http/s scheme when method is not GET." + }); + } + } + const fetchControllers = []; + for (const request of requests) { + const r = new Request(request)[kState]; + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: "Cache.addAll", + message: "Expected http/s scheme." + }); + } + r.initiator = "fetch"; + r.destination = "subresource"; + requestList.push(r); + const responsePromise = createDeferredPromise(); + fetchControllers.push(fetching({ + request: r, + dispatcher: getGlobalDispatcher(), + processResponse(response) { + if (response.type === "error" || response.status === 206 || response.status < 200 || response.status > 299) { + responsePromise.reject(webidl.errors.exception({ + header: "Cache.addAll", + message: "Received an invalid status code or the request failed." + })); + } else if (response.headersList.contains("vary")) { + const fieldValues = getFieldValues(response.headersList.get("vary")); + for (const fieldValue of fieldValues) { + if (fieldValue === "*") { + responsePromise.reject(webidl.errors.exception({ + header: "Cache.addAll", + message: "invalid vary field value" + })); + for (const controller of fetchControllers) { + controller.abort(); + } + return; + } + } + } + }, + processResponseEndOfBody(response) { + if (response.aborted) { + responsePromise.reject(new DOMException("aborted", "AbortError")); + return; + } + responsePromise.resolve(response); + } + })); + responsePromises.push(responsePromise.promise); + } + const p = Promise.all(responsePromises); + const responses = await p; + const operations = []; + let index = 0; + for (const response of responses) { + const operation = { + type: "put", + // 7.3.2 + request: requestList[index], + // 7.3.3 + response + // 7.3.4 + }; + operations.push(operation); + index++; + } + const cacheJobPromise = createDeferredPromise(); + let errorData = null; + try { + this.#batchCacheOperations(operations); + } catch (e) { + errorData = e; + } + queueMicrotask(() => { + if (errorData === null) { + cacheJobPromise.resolve(void 0); + } else { + cacheJobPromise.reject(errorData); + } + }); + return cacheJobPromise.promise; + } + async put(request, response) { + webidl.brandCheck(this, _Cache); + webidl.argumentLengthCheck(arguments, 2, { header: "Cache.put" }); + request = webidl.converters.RequestInfo(request); + response = webidl.converters.Response(response); + let innerRequest = null; + if (request instanceof Request) { + innerRequest = request[kState]; + } else { + innerRequest = new Request(request)[kState]; + } + if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") { + throw webidl.errors.exception({ + header: "Cache.put", + message: "Expected an http/s scheme when method is not GET" + }); + } + const innerResponse = response[kState]; + if (innerResponse.status === 206) { + throw webidl.errors.exception({ + header: "Cache.put", + message: "Got 206 status" + }); + } + if (innerResponse.headersList.contains("vary")) { + const fieldValues = getFieldValues(innerResponse.headersList.get("vary")); + for (const fieldValue of fieldValues) { + if (fieldValue === "*") { + throw webidl.errors.exception({ + header: "Cache.put", + message: "Got * vary field value" + }); + } + } + } + if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { + throw webidl.errors.exception({ + header: "Cache.put", + message: "Response body is locked or disturbed" + }); + } + const clonedResponse = cloneResponse(innerResponse); + const bodyReadPromise = createDeferredPromise(); + if (innerResponse.body != null) { + const stream = innerResponse.body.stream; + const reader = stream.getReader(); + readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject); + } else { + bodyReadPromise.resolve(void 0); + } + const operations = []; + const operation = { + type: "put", + // 14. + request: innerRequest, + // 15. + response: clonedResponse + // 16. + }; + operations.push(operation); + const bytes7 = await bodyReadPromise.promise; + if (clonedResponse.body != null) { + clonedResponse.body.source = bytes7; + } + const cacheJobPromise = createDeferredPromise(); + let errorData = null; + try { + this.#batchCacheOperations(operations); + } catch (e) { + errorData = e; + } + queueMicrotask(() => { + if (errorData === null) { + cacheJobPromise.resolve(); + } else { + cacheJobPromise.reject(errorData); + } + }); + return cacheJobPromise.promise; + } + async delete(request, options = {}) { + webidl.brandCheck(this, _Cache); + webidl.argumentLengthCheck(arguments, 1, { header: "Cache.delete" }); + request = webidl.converters.RequestInfo(request); + options = webidl.converters.CacheQueryOptions(options); + let r = null; + if (request instanceof Request) { + r = request[kState]; + if (r.method !== "GET" && !options.ignoreMethod) { + return false; + } + } else { + assert2(typeof request === "string"); + r = new Request(request)[kState]; + } + const operations = []; + const operation = { + type: "delete", + request: r, + options + }; + operations.push(operation); + const cacheJobPromise = createDeferredPromise(); + let errorData = null; + let requestResponses; + try { + requestResponses = this.#batchCacheOperations(operations); + } catch (e) { + errorData = e; + } + queueMicrotask(() => { + if (errorData === null) { + cacheJobPromise.resolve(!!requestResponses?.length); + } else { + cacheJobPromise.reject(errorData); + } + }); + return cacheJobPromise.promise; + } + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys + * @param {any} request + * @param {import('../../types/cache').CacheQueryOptions} options + * @returns {readonly Request[]} + */ + async keys(request = void 0, options = {}) { + webidl.brandCheck(this, _Cache); + if (request !== void 0) request = webidl.converters.RequestInfo(request); + options = webidl.converters.CacheQueryOptions(options); + let r = null; + if (request !== void 0) { + if (request instanceof Request) { + r = request[kState]; + if (r.method !== "GET" && !options.ignoreMethod) { + return []; + } + } else if (typeof request === "string") { + r = new Request(request)[kState]; + } + } + const promise = createDeferredPromise(); + const requests = []; + if (request === void 0) { + for (const requestResponse of this.#relevantRequestResponseList) { + requests.push(requestResponse[0]); + } + } else { + const requestResponses = this.#queryCache(r, options); + for (const requestResponse of requestResponses) { + requests.push(requestResponse[0]); + } + } + queueMicrotask(() => { + const requestList = []; + for (const request2 of requests) { + const requestObject = new Request("https://a"); + requestObject[kState] = request2; + requestObject[kHeaders][kHeadersList] = request2.headersList; + requestObject[kHeaders][kGuard] = "immutable"; + requestObject[kRealm] = request2.client; + requestList.push(requestObject); + } + promise.resolve(Object.freeze(requestList)); + }); + return promise.promise; + } + /** + * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm + * @param {CacheBatchOperation[]} operations + * @returns {requestResponseList} + */ + #batchCacheOperations(operations) { + const cache = this.#relevantRequestResponseList; + const backupCache = [...cache]; + const addedItems = []; + const resultList = []; + try { + for (const operation of operations) { + if (operation.type !== "delete" && operation.type !== "put") { + throw webidl.errors.exception({ + header: "Cache.#batchCacheOperations", + message: 'operation type does not match "delete" or "put"' + }); + } + if (operation.type === "delete" && operation.response != null) { + throw webidl.errors.exception({ + header: "Cache.#batchCacheOperations", + message: "delete operation should not have an associated response" + }); + } + if (this.#queryCache(operation.request, operation.options, addedItems).length) { + throw new DOMException("???", "InvalidStateError"); + } + let requestResponses; + if (operation.type === "delete") { + requestResponses = this.#queryCache(operation.request, operation.options); + if (requestResponses.length === 0) { + return []; + } + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse); + assert2(idx !== -1); + cache.splice(idx, 1); + } + } else if (operation.type === "put") { + if (operation.response == null) { + throw webidl.errors.exception({ + header: "Cache.#batchCacheOperations", + message: "put operation should have an associated response" + }); + } + const r = operation.request; + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: "Cache.#batchCacheOperations", + message: "expected http or https scheme" + }); + } + if (r.method !== "GET") { + throw webidl.errors.exception({ + header: "Cache.#batchCacheOperations", + message: "not get method" + }); + } + if (operation.options != null) { + throw webidl.errors.exception({ + header: "Cache.#batchCacheOperations", + message: "options must not be defined" + }); + } + requestResponses = this.#queryCache(operation.request); + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse); + assert2(idx !== -1); + cache.splice(idx, 1); + } + cache.push([operation.request, operation.response]); + addedItems.push([operation.request, operation.response]); + } + resultList.push([operation.request, operation.response]); + } + return resultList; + } catch (e) { + this.#relevantRequestResponseList.length = 0; + this.#relevantRequestResponseList = backupCache; + throw e; + } + } + /** + * @see https://w3c.github.io/ServiceWorker/#query-cache + * @param {any} requestQuery + * @param {import('../../types/cache').CacheQueryOptions} options + * @param {requestResponseList} targetStorage + * @returns {requestResponseList} + */ + #queryCache(requestQuery, options, targetStorage) { + const resultList = []; + const storage = targetStorage ?? this.#relevantRequestResponseList; + for (const requestResponse of storage) { + const [cachedRequest, cachedResponse] = requestResponse; + if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { + resultList.push(requestResponse); + } + } + return resultList; + } + /** + * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm + * @param {any} requestQuery + * @param {any} request + * @param {any | null} response + * @param {import('../../types/cache').CacheQueryOptions | undefined} options + * @returns {boolean} + */ + #requestMatchesCachedItem(requestQuery, request, response = null, options) { + const queryURL = new URL(requestQuery.url); + const cachedURL = new URL(request.url); + if (options?.ignoreSearch) { + cachedURL.search = ""; + queryURL.search = ""; + } + if (!urlEquals(queryURL, cachedURL, true)) { + return false; + } + if (response == null || options?.ignoreVary || !response.headersList.contains("vary")) { + return true; + } + const fieldValues = getFieldValues(response.headersList.get("vary")); + for (const fieldValue of fieldValues) { + if (fieldValue === "*") { + return false; + } + const requestValue = request.headersList.get(fieldValue); + const queryValue = requestQuery.headersList.get(fieldValue); + if (requestValue !== queryValue) { + return false; + } + } + return true; + } + }; + Object.defineProperties(Cache.prototype, { + [Symbol.toStringTag]: { + value: "Cache", + configurable: true + }, + match: kEnumerableProperty, + matchAll: kEnumerableProperty, + add: kEnumerableProperty, + addAll: kEnumerableProperty, + put: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty + }); + var cacheQueryOptionConverters = [ + { + key: "ignoreSearch", + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: "ignoreMethod", + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: "ignoreVary", + converter: webidl.converters.boolean, + defaultValue: false + } + ]; + webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters); + webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ + ...cacheQueryOptionConverters, + { + key: "cacheName", + converter: webidl.converters.DOMString + } + ]); + webidl.converters.Response = webidl.interfaceConverter(Response); + webidl.converters["sequence"] = webidl.sequenceConverter( + webidl.converters.RequestInfo + ); + module2.exports = { + Cache + }; + } +}); + +// node_modules/undici/lib/cache/cachestorage.js +var require_cachestorage = __commonJS({ + "node_modules/undici/lib/cache/cachestorage.js"(exports2, module2) { + "use strict"; + var { kConstruct } = require_symbols4(); + var { Cache } = require_cache(); + var { webidl } = require_webidl(); + var { kEnumerableProperty } = require_util(); + var CacheStorage = class _CacheStorage { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map + * @type {Map} + */ + async has(cacheName) { + webidl.brandCheck(this, _CacheStorage); + webidl.argumentLengthCheck(arguments, 1, { header: "CacheStorage.has" }); + cacheName = webidl.converters.DOMString(cacheName); + return this.#caches.has(cacheName); + } + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open + * @param {string} cacheName + * @returns {Promise} + */ + async open(cacheName) { + webidl.brandCheck(this, _CacheStorage); + webidl.argumentLengthCheck(arguments, 1, { header: "CacheStorage.open" }); + cacheName = webidl.converters.DOMString(cacheName); + if (this.#caches.has(cacheName)) { + const cache2 = this.#caches.get(cacheName); + return new Cache(kConstruct, cache2); + } + const cache = []; + this.#caches.set(cacheName, cache); + return new Cache(kConstruct, cache); + } + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete + * @param {string} cacheName + * @returns {Promise} + */ + async delete(cacheName) { + webidl.brandCheck(this, _CacheStorage); + webidl.argumentLengthCheck(arguments, 1, { header: "CacheStorage.delete" }); + cacheName = webidl.converters.DOMString(cacheName); + return this.#caches.delete(cacheName); + } + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys + * @returns {string[]} + */ + async keys() { + webidl.brandCheck(this, _CacheStorage); + const keys = this.#caches.keys(); + return [...keys]; + } + }; + Object.defineProperties(CacheStorage.prototype, { + [Symbol.toStringTag]: { + value: "CacheStorage", + configurable: true + }, + match: kEnumerableProperty, + has: kEnumerableProperty, + open: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty + }); + module2.exports = { + CacheStorage + }; + } +}); + +// node_modules/undici/lib/cookies/constants.js +var require_constants4 = __commonJS({ + "node_modules/undici/lib/cookies/constants.js"(exports2, module2) { + "use strict"; + var maxAttributeValueSize = 1024; + var maxNameValuePairSize = 4096; + module2.exports = { + maxAttributeValueSize, + maxNameValuePairSize + }; + } +}); + +// node_modules/undici/lib/cookies/util.js +var require_util6 = __commonJS({ + "node_modules/undici/lib/cookies/util.js"(exports2, module2) { + "use strict"; + function isCTLExcludingHtab(value) { + if (value.length === 0) { + return false; + } + for (const char of value) { + const code = char.charCodeAt(0); + if (code >= 0 || code <= 8 || (code >= 10 || code <= 31) || code === 127) { + return false; + } + } + } + function validateCookieName(name) { + for (const char of name) { + const code = char.charCodeAt(0); + if (code <= 32 || code > 127 || char === "(" || char === ")" || char === ">" || char === "<" || char === "@" || char === "," || char === ";" || char === ":" || char === "\\" || char === '"' || char === "/" || char === "[" || char === "]" || char === "?" || char === "=" || char === "{" || char === "}") { + throw new Error("Invalid cookie name"); + } + } + } + function validateCookieValue(value) { + for (const char of value) { + const code = char.charCodeAt(0); + if (code < 33 || // exclude CTLs (0-31) + code === 34 || code === 44 || code === 59 || code === 92 || code > 126) { + throw new Error("Invalid header value"); + } + } + } + function validateCookiePath(path) { + for (const char of path) { + const code = char.charCodeAt(0); + if (code < 33 || char === ";") { + throw new Error("Invalid cookie path"); + } + } + } + function validateCookieDomain(domain) { + if (domain.startsWith("-") || domain.endsWith(".") || domain.endsWith("-")) { + throw new Error("Invalid cookie domain"); + } + } + function toIMFDate(date) { + if (typeof date === "number") { + date = new Date(date); + } + const days = [ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" + ]; + const months = [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" + ]; + const dayName = days[date.getUTCDay()]; + const day = date.getUTCDate().toString().padStart(2, "0"); + const month = months[date.getUTCMonth()]; + const year = date.getUTCFullYear(); + const hour = date.getUTCHours().toString().padStart(2, "0"); + const minute = date.getUTCMinutes().toString().padStart(2, "0"); + const second = date.getUTCSeconds().toString().padStart(2, "0"); + return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`; + } + function validateCookieMaxAge(maxAge) { + if (maxAge < 0) { + throw new Error("Invalid cookie max-age"); + } + } + function stringify2(cookie) { + if (cookie.name.length === 0) { + return null; + } + validateCookieName(cookie.name); + validateCookieValue(cookie.value); + const out = [`${cookie.name}=${cookie.value}`]; + if (cookie.name.startsWith("__Secure-")) { + cookie.secure = true; + } + if (cookie.name.startsWith("__Host-")) { + cookie.secure = true; + cookie.domain = null; + cookie.path = "/"; + } + if (cookie.secure) { + out.push("Secure"); + } + if (cookie.httpOnly) { + out.push("HttpOnly"); + } + if (typeof cookie.maxAge === "number") { + validateCookieMaxAge(cookie.maxAge); + out.push(`Max-Age=${cookie.maxAge}`); + } + if (cookie.domain) { + validateCookieDomain(cookie.domain); + out.push(`Domain=${cookie.domain}`); + } + if (cookie.path) { + validateCookiePath(cookie.path); + out.push(`Path=${cookie.path}`); + } + if (cookie.expires && cookie.expires.toString() !== "Invalid Date") { + out.push(`Expires=${toIMFDate(cookie.expires)}`); + } + if (cookie.sameSite) { + out.push(`SameSite=${cookie.sameSite}`); + } + for (const part of cookie.unparsed) { + if (!part.includes("=")) { + throw new Error("Invalid unparsed"); + } + const [key, ...value] = part.split("="); + out.push(`${key.trim()}=${value.join("=")}`); + } + return out.join("; "); + } + module2.exports = { + isCTLExcludingHtab, + validateCookieName, + validateCookiePath, + validateCookieValue, + toIMFDate, + stringify: stringify2 + }; + } +}); + +// node_modules/undici/lib/cookies/parse.js +var require_parse = __commonJS({ + "node_modules/undici/lib/cookies/parse.js"(exports2, module2) { + "use strict"; + var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4(); + var { isCTLExcludingHtab } = require_util6(); + var { collectASequenceOfCodePointsFast } = require_dataURL(); + var assert2 = require("assert"); + function parseSetCookie(header) { + if (isCTLExcludingHtab(header)) { + return null; + } + let nameValuePair = ""; + let unparsedAttributes = ""; + let name = ""; + let value = ""; + if (header.includes(";")) { + const position = { position: 0 }; + nameValuePair = collectASequenceOfCodePointsFast(";", header, position); + unparsedAttributes = header.slice(position.position); + } else { + nameValuePair = header; + } + if (!nameValuePair.includes("=")) { + value = nameValuePair; + } else { + const position = { position: 0 }; + name = collectASequenceOfCodePointsFast( + "=", + nameValuePair, + position + ); + value = nameValuePair.slice(position.position + 1); + } + name = name.trim(); + value = value.trim(); + if (name.length + value.length > maxNameValuePairSize) { + return null; + } + return { + name, + value, + ...parseUnparsedAttributes(unparsedAttributes) + }; + } + function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) { + if (unparsedAttributes.length === 0) { + return cookieAttributeList; + } + assert2(unparsedAttributes[0] === ";"); + unparsedAttributes = unparsedAttributes.slice(1); + let cookieAv = ""; + if (unparsedAttributes.includes(";")) { + cookieAv = collectASequenceOfCodePointsFast( + ";", + unparsedAttributes, + { position: 0 } + ); + unparsedAttributes = unparsedAttributes.slice(cookieAv.length); + } else { + cookieAv = unparsedAttributes; + unparsedAttributes = ""; + } + let attributeName = ""; + let attributeValue = ""; + if (cookieAv.includes("=")) { + const position = { position: 0 }; + attributeName = collectASequenceOfCodePointsFast( + "=", + cookieAv, + position + ); + attributeValue = cookieAv.slice(position.position + 1); + } else { + attributeName = cookieAv; + } + attributeName = attributeName.trim(); + attributeValue = attributeValue.trim(); + if (attributeValue.length > maxAttributeValueSize) { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); + } + const attributeNameLowercase = attributeName.toLowerCase(); + if (attributeNameLowercase === "expires") { + const expiryTime = new Date(attributeValue); + cookieAttributeList.expires = expiryTime; + } else if (attributeNameLowercase === "max-age") { + const charCode = attributeValue.charCodeAt(0); + if ((charCode < 48 || charCode > 57) && attributeValue[0] !== "-") { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); + } + if (!/^\d+$/.test(attributeValue)) { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); + } + const deltaSeconds = Number(attributeValue); + cookieAttributeList.maxAge = deltaSeconds; + } else if (attributeNameLowercase === "domain") { + let cookieDomain = attributeValue; + if (cookieDomain[0] === ".") { + cookieDomain = cookieDomain.slice(1); + } + cookieDomain = cookieDomain.toLowerCase(); + cookieAttributeList.domain = cookieDomain; + } else if (attributeNameLowercase === "path") { + let cookiePath = ""; + if (attributeValue.length === 0 || attributeValue[0] !== "/") { + cookiePath = "/"; + } else { + cookiePath = attributeValue; + } + cookieAttributeList.path = cookiePath; + } else if (attributeNameLowercase === "secure") { + cookieAttributeList.secure = true; + } else if (attributeNameLowercase === "httponly") { + cookieAttributeList.httpOnly = true; + } else if (attributeNameLowercase === "samesite") { + let enforcement = "Default"; + const attributeValueLowercase = attributeValue.toLowerCase(); + if (attributeValueLowercase.includes("none")) { + enforcement = "None"; + } + if (attributeValueLowercase.includes("strict")) { + enforcement = "Strict"; + } + if (attributeValueLowercase.includes("lax")) { + enforcement = "Lax"; + } + cookieAttributeList.sameSite = enforcement; + } else { + cookieAttributeList.unparsed ??= []; + cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`); + } + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); + } + module2.exports = { + parseSetCookie, + parseUnparsedAttributes + }; + } +}); + +// node_modules/undici/lib/cookies/index.js +var require_cookies = __commonJS({ + "node_modules/undici/lib/cookies/index.js"(exports2, module2) { + "use strict"; + var { parseSetCookie } = require_parse(); + var { stringify: stringify2 } = require_util6(); + var { webidl } = require_webidl(); + var { Headers } = require_headers(); + function getCookies(headers) { + webidl.argumentLengthCheck(arguments, 1, { header: "getCookies" }); + webidl.brandCheck(headers, Headers, { strict: false }); + const cookie = headers.get("cookie"); + const out = {}; + if (!cookie) { + return out; + } + for (const piece of cookie.split(";")) { + const [name, ...value] = piece.split("="); + out[name.trim()] = value.join("="); + } + return out; + } + function deleteCookie(headers, name, attributes) { + webidl.argumentLengthCheck(arguments, 2, { header: "deleteCookie" }); + webidl.brandCheck(headers, Headers, { strict: false }); + name = webidl.converters.DOMString(name); + attributes = webidl.converters.DeleteCookieAttributes(attributes); + setCookie(headers, { + name, + value: "", + expires: /* @__PURE__ */ new Date(0), + ...attributes + }); + } + function getSetCookies(headers) { + webidl.argumentLengthCheck(arguments, 1, { header: "getSetCookies" }); + webidl.brandCheck(headers, Headers, { strict: false }); + const cookies = headers.getSetCookie(); + if (!cookies) { + return []; + } + return cookies.map((pair) => parseSetCookie(pair)); + } + function setCookie(headers, cookie) { + webidl.argumentLengthCheck(arguments, 2, { header: "setCookie" }); + webidl.brandCheck(headers, Headers, { strict: false }); + cookie = webidl.converters.Cookie(cookie); + const str = stringify2(cookie); + if (str) { + headers.append("Set-Cookie", stringify2(cookie)); + } + } + webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: "path", + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: "domain", + defaultValue: null + } + ]); + webidl.converters.Cookie = webidl.dictionaryConverter([ + { + converter: webidl.converters.DOMString, + key: "name" + }, + { + converter: webidl.converters.DOMString, + key: "value" + }, + { + converter: webidl.nullableConverter((value) => { + if (typeof value === "number") { + return webidl.converters["unsigned long long"](value); + } + return new Date(value); + }), + key: "expires", + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters["long long"]), + key: "maxAge", + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: "domain", + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: "path", + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: "secure", + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: "httpOnly", + defaultValue: null + }, + { + converter: webidl.converters.USVString, + key: "sameSite", + allowedValues: ["Strict", "Lax", "None"] + }, + { + converter: webidl.sequenceConverter(webidl.converters.DOMString), + key: "unparsed", + defaultValue: [] + } + ]); + module2.exports = { + getCookies, + deleteCookie, + getSetCookies, + setCookie + }; + } +}); + +// node_modules/undici/lib/websocket/constants.js +var require_constants5 = __commonJS({ + "node_modules/undici/lib/websocket/constants.js"(exports2, module2) { + "use strict"; + var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; + var staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false + }; + var states = { + CONNECTING: 0, + OPEN: 1, + CLOSING: 2, + CLOSED: 3 + }; + var opcodes = { + CONTINUATION: 0, + TEXT: 1, + BINARY: 2, + CLOSE: 8, + PING: 9, + PONG: 10 + }; + var maxUnsigned16Bit = 2 ** 16 - 1; + var parserStates = { + INFO: 0, + PAYLOADLENGTH_16: 2, + PAYLOADLENGTH_64: 3, + READ_DATA: 4 + }; + var emptyBuffer = Buffer.allocUnsafe(0); + module2.exports = { + uid, + staticPropertyDescriptors, + states, + opcodes, + maxUnsigned16Bit, + parserStates, + emptyBuffer + }; + } +}); + +// node_modules/undici/lib/websocket/symbols.js +var require_symbols5 = __commonJS({ + "node_modules/undici/lib/websocket/symbols.js"(exports2, module2) { + "use strict"; + module2.exports = { + kWebSocketURL: Symbol("url"), + kReadyState: Symbol("ready state"), + kController: Symbol("controller"), + kResponse: Symbol("response"), + kBinaryType: Symbol("binary type"), + kSentClose: Symbol("sent close"), + kReceivedClose: Symbol("received close"), + kByteParser: Symbol("byte parser") + }; + } +}); + +// node_modules/undici/lib/websocket/events.js +var require_events = __commonJS({ + "node_modules/undici/lib/websocket/events.js"(exports2, module2) { + "use strict"; + var { webidl } = require_webidl(); + var { kEnumerableProperty } = require_util(); + var { MessagePort } = require("worker_threads"); + var MessageEvent = class _MessageEvent extends Event { + #eventInit; + constructor(type, eventInitDict = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: "MessageEvent constructor" }); + type = webidl.converters.DOMString(type); + eventInitDict = webidl.converters.MessageEventInit(eventInitDict); + super(type, eventInitDict); + this.#eventInit = eventInitDict; + } + get data() { + webidl.brandCheck(this, _MessageEvent); + return this.#eventInit.data; + } + get origin() { + webidl.brandCheck(this, _MessageEvent); + return this.#eventInit.origin; + } + get lastEventId() { + webidl.brandCheck(this, _MessageEvent); + return this.#eventInit.lastEventId; + } + get source() { + webidl.brandCheck(this, _MessageEvent); + return this.#eventInit.source; + } + get ports() { + webidl.brandCheck(this, _MessageEvent); + if (!Object.isFrozen(this.#eventInit.ports)) { + Object.freeze(this.#eventInit.ports); + } + return this.#eventInit.ports; + } + initMessageEvent(type, bubbles = false, cancelable = false, data = null, origin = "", lastEventId = "", source = null, ports = []) { + webidl.brandCheck(this, _MessageEvent); + webidl.argumentLengthCheck(arguments, 1, { header: "MessageEvent.initMessageEvent" }); + return new _MessageEvent(type, { + bubbles, + cancelable, + data, + origin, + lastEventId, + source, + ports + }); + } + }; + var CloseEvent = class _CloseEvent extends Event { + #eventInit; + constructor(type, eventInitDict = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: "CloseEvent constructor" }); + type = webidl.converters.DOMString(type); + eventInitDict = webidl.converters.CloseEventInit(eventInitDict); + super(type, eventInitDict); + this.#eventInit = eventInitDict; + } + get wasClean() { + webidl.brandCheck(this, _CloseEvent); + return this.#eventInit.wasClean; + } + get code() { + webidl.brandCheck(this, _CloseEvent); + return this.#eventInit.code; + } + get reason() { + webidl.brandCheck(this, _CloseEvent); + return this.#eventInit.reason; + } + }; + var ErrorEvent = class _ErrorEvent extends Event { + #eventInit; + constructor(type, eventInitDict) { + webidl.argumentLengthCheck(arguments, 1, { header: "ErrorEvent constructor" }); + super(type, eventInitDict); + type = webidl.converters.DOMString(type); + eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}); + this.#eventInit = eventInitDict; + } + get message() { + webidl.brandCheck(this, _ErrorEvent); + return this.#eventInit.message; + } + get filename() { + webidl.brandCheck(this, _ErrorEvent); + return this.#eventInit.filename; + } + get lineno() { + webidl.brandCheck(this, _ErrorEvent); + return this.#eventInit.lineno; + } + get colno() { + webidl.brandCheck(this, _ErrorEvent); + return this.#eventInit.colno; + } + get error() { + webidl.brandCheck(this, _ErrorEvent); + return this.#eventInit.error; + } + }; + Object.defineProperties(MessageEvent.prototype, { + [Symbol.toStringTag]: { + value: "MessageEvent", + configurable: true + }, + data: kEnumerableProperty, + origin: kEnumerableProperty, + lastEventId: kEnumerableProperty, + source: kEnumerableProperty, + ports: kEnumerableProperty, + initMessageEvent: kEnumerableProperty + }); + Object.defineProperties(CloseEvent.prototype, { + [Symbol.toStringTag]: { + value: "CloseEvent", + configurable: true + }, + reason: kEnumerableProperty, + code: kEnumerableProperty, + wasClean: kEnumerableProperty + }); + Object.defineProperties(ErrorEvent.prototype, { + [Symbol.toStringTag]: { + value: "ErrorEvent", + configurable: true + }, + message: kEnumerableProperty, + filename: kEnumerableProperty, + lineno: kEnumerableProperty, + colno: kEnumerableProperty, + error: kEnumerableProperty + }); + webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort); + webidl.converters["sequence"] = webidl.sequenceConverter( + webidl.converters.MessagePort + ); + var eventInit = [ + { + key: "bubbles", + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: "cancelable", + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: "composed", + converter: webidl.converters.boolean, + defaultValue: false + } + ]; + webidl.converters.MessageEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: "data", + converter: webidl.converters.any, + defaultValue: null + }, + { + key: "origin", + converter: webidl.converters.USVString, + defaultValue: "" + }, + { + key: "lastEventId", + converter: webidl.converters.DOMString, + defaultValue: "" + }, + { + key: "source", + // Node doesn't implement WindowProxy or ServiceWorker, so the only + // valid value for source is a MessagePort. + converter: webidl.nullableConverter(webidl.converters.MessagePort), + defaultValue: null + }, + { + key: "ports", + converter: webidl.converters["sequence"], + get defaultValue() { + return []; + } + } + ]); + webidl.converters.CloseEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: "wasClean", + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: "code", + converter: webidl.converters["unsigned short"], + defaultValue: 0 + }, + { + key: "reason", + converter: webidl.converters.USVString, + defaultValue: "" + } + ]); + webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: "message", + converter: webidl.converters.DOMString, + defaultValue: "" + }, + { + key: "filename", + converter: webidl.converters.USVString, + defaultValue: "" + }, + { + key: "lineno", + converter: webidl.converters["unsigned long"], + defaultValue: 0 + }, + { + key: "colno", + converter: webidl.converters["unsigned long"], + defaultValue: 0 + }, + { + key: "error", + converter: webidl.converters.any + } + ]); + module2.exports = { + MessageEvent, + CloseEvent, + ErrorEvent + }; + } +}); + +// node_modules/undici/lib/websocket/util.js +var require_util7 = __commonJS({ + "node_modules/undici/lib/websocket/util.js"(exports2, module2) { + "use strict"; + var { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require_symbols5(); + var { states, opcodes } = require_constants5(); + var { MessageEvent, ErrorEvent } = require_events(); + function isEstablished(ws) { + return ws[kReadyState] === states.OPEN; + } + function isClosing(ws) { + return ws[kReadyState] === states.CLOSING; + } + function isClosed(ws) { + return ws[kReadyState] === states.CLOSED; + } + function fireEvent(e, target, eventConstructor = Event, eventInitDict) { + const event = new eventConstructor(e, eventInitDict); + target.dispatchEvent(event); + } + function websocketMessageReceived(ws, type, data) { + if (ws[kReadyState] !== states.OPEN) { + return; + } + let dataForEvent; + if (type === opcodes.TEXT) { + try { + dataForEvent = new TextDecoder("utf-8", { fatal: true }).decode(data); + } catch { + failWebsocketConnection(ws, "Received invalid UTF-8 in text frame."); + return; + } + } else if (type === opcodes.BINARY) { + if (ws[kBinaryType] === "blob") { + dataForEvent = new Blob([data]); + } else { + dataForEvent = new Uint8Array(data).buffer; + } + } + fireEvent("message", ws, MessageEvent, { + origin: ws[kWebSocketURL].origin, + data: dataForEvent + }); + } + function isValidSubprotocol(protocol) { + if (protocol.length === 0) { + return false; + } + for (const char of protocol) { + const code = char.charCodeAt(0); + if (code < 33 || code > 126 || char === "(" || char === ")" || char === "<" || char === ">" || char === "@" || char === "," || char === ";" || char === ":" || char === "\\" || char === '"' || char === "/" || char === "[" || char === "]" || char === "?" || char === "=" || char === "{" || char === "}" || code === 32 || // SP + code === 9) { + return false; + } + } + return true; + } + function isValidStatusCode(code) { + if (code >= 1e3 && code < 1015) { + return code !== 1004 && // reserved + code !== 1005 && // "MUST NOT be set as a status code" + code !== 1006; + } + return code >= 3e3 && code <= 4999; + } + function failWebsocketConnection(ws, reason) { + const { [kController]: controller, [kResponse]: response } = ws; + controller.abort(); + if (response?.socket && !response.socket.destroyed) { + response.socket.destroy(); + } + if (reason) { + fireEvent("error", ws, ErrorEvent, { + error: new Error(reason) + }); + } + } + module2.exports = { + isEstablished, + isClosing, + isClosed, + fireEvent, + isValidSubprotocol, + isValidStatusCode, + failWebsocketConnection, + websocketMessageReceived + }; + } +}); + +// node_modules/undici/lib/websocket/connection.js +var require_connection = __commonJS({ + "node_modules/undici/lib/websocket/connection.js"(exports2, module2) { + "use strict"; + var diagnosticsChannel = require("diagnostics_channel"); + var { uid, states } = require_constants5(); + var { + kReadyState, + kSentClose, + kByteParser, + kReceivedClose + } = require_symbols5(); + var { fireEvent, failWebsocketConnection } = require_util7(); + var { CloseEvent } = require_events(); + var { makeRequest } = require_request2(); + var { fetching } = require_fetch(); + var { Headers } = require_headers(); + var { getGlobalDispatcher } = require_global2(); + var { kHeadersList } = require_symbols(); + var channels = {}; + channels.open = diagnosticsChannel.channel("undici:websocket:open"); + channels.close = diagnosticsChannel.channel("undici:websocket:close"); + channels.socketError = diagnosticsChannel.channel("undici:websocket:socket_error"); + var crypto5; + try { + crypto5 = require("crypto"); + } catch { + } + function establishWebSocketConnection(url, protocols, ws, onEstablish, options) { + const requestURL = url; + requestURL.protocol = url.protocol === "ws:" ? "http:" : "https:"; + const request = makeRequest({ + urlList: [requestURL], + serviceWorkers: "none", + referrer: "no-referrer", + mode: "websocket", + credentials: "include", + cache: "no-store", + redirect: "error" + }); + if (options.headers) { + const headersList = new Headers(options.headers)[kHeadersList]; + request.headersList = headersList; + } + const keyValue = crypto5.randomBytes(16).toString("base64"); + request.headersList.append("sec-websocket-key", keyValue); + request.headersList.append("sec-websocket-version", "13"); + for (const protocol of protocols) { + request.headersList.append("sec-websocket-protocol", protocol); + } + const permessageDeflate = ""; + const controller = fetching({ + request, + useParallelQueue: true, + dispatcher: options.dispatcher ?? getGlobalDispatcher(), + processResponse(response) { + if (response.type === "error" || response.status !== 101) { + failWebsocketConnection(ws, "Received network error or non-101 status code."); + return; + } + if (protocols.length !== 0 && !response.headersList.get("Sec-WebSocket-Protocol")) { + failWebsocketConnection(ws, "Server did not respond with sent protocols."); + return; + } + if (response.headersList.get("Upgrade")?.toLowerCase() !== "websocket") { + failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".'); + return; + } + if (response.headersList.get("Connection")?.toLowerCase() !== "upgrade") { + failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); + return; + } + const secWSAccept = response.headersList.get("Sec-WebSocket-Accept"); + const digest = crypto5.createHash("sha1").update(keyValue + uid).digest("base64"); + if (secWSAccept !== digest) { + failWebsocketConnection(ws, "Incorrect hash received in Sec-WebSocket-Accept header."); + return; + } + const secExtension = response.headersList.get("Sec-WebSocket-Extensions"); + if (secExtension !== null && secExtension !== permessageDeflate) { + failWebsocketConnection(ws, "Received different permessage-deflate than the one set."); + return; + } + const secProtocol = response.headersList.get("Sec-WebSocket-Protocol"); + if (secProtocol !== null && secProtocol !== request.headersList.get("Sec-WebSocket-Protocol")) { + failWebsocketConnection(ws, "Protocol was not set in the opening handshake."); + return; + } + response.socket.on("data", onSocketData); + response.socket.on("close", onSocketClose); + response.socket.on("error", onSocketError); + if (channels.open.hasSubscribers) { + channels.open.publish({ + address: response.socket.address(), + protocol: secProtocol, + extensions: secExtension + }); + } + onEstablish(response); + } + }); + return controller; + } + function onSocketData(chunk) { + if (!this.ws[kByteParser].write(chunk)) { + this.pause(); + } + } + function onSocketClose() { + const { ws } = this; + const wasClean = ws[kSentClose] && ws[kReceivedClose]; + let code = 1005; + let reason = ""; + const result = ws[kByteParser].closingInfo; + if (result) { + code = result.code ?? 1005; + reason = result.reason; + } else if (!ws[kSentClose]) { + code = 1006; + } + ws[kReadyState] = states.CLOSED; + fireEvent("close", ws, CloseEvent, { + wasClean, + code, + reason + }); + if (channels.close.hasSubscribers) { + channels.close.publish({ + websocket: ws, + code, + reason + }); + } + } + function onSocketError(error) { + const { ws } = this; + ws[kReadyState] = states.CLOSING; + if (channels.socketError.hasSubscribers) { + channels.socketError.publish(error); + } + this.destroy(); + } + module2.exports = { + establishWebSocketConnection + }; + } +}); + +// node_modules/undici/lib/websocket/frame.js +var require_frame = __commonJS({ + "node_modules/undici/lib/websocket/frame.js"(exports2, module2) { + "use strict"; + var { maxUnsigned16Bit } = require_constants5(); + var crypto5; + try { + crypto5 = require("crypto"); + } catch { + } + var WebsocketFrameSend = class { + /** + * @param {Buffer|undefined} data + */ + constructor(data) { + this.frameData = data; + this.maskKey = crypto5.randomBytes(4); + } + createFrame(opcode) { + const bodyLength = this.frameData?.byteLength ?? 0; + let payloadLength = bodyLength; + let offset = 6; + if (bodyLength > maxUnsigned16Bit) { + offset += 8; + payloadLength = 127; + } else if (bodyLength > 125) { + offset += 2; + payloadLength = 126; + } + const buffer = Buffer.allocUnsafe(bodyLength + offset); + buffer[0] = buffer[1] = 0; + buffer[0] |= 128; + buffer[0] = (buffer[0] & 240) + opcode; + buffer[offset - 4] = this.maskKey[0]; + buffer[offset - 3] = this.maskKey[1]; + buffer[offset - 2] = this.maskKey[2]; + buffer[offset - 1] = this.maskKey[3]; + buffer[1] = payloadLength; + if (payloadLength === 126) { + buffer.writeUInt16BE(bodyLength, 2); + } else if (payloadLength === 127) { + buffer[2] = buffer[3] = 0; + buffer.writeUIntBE(bodyLength, 4, 6); + } + buffer[1] |= 128; + for (let i = 0; i < bodyLength; i++) { + buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]; + } + return buffer; + } + }; + module2.exports = { + WebsocketFrameSend + }; + } +}); + +// node_modules/undici/lib/websocket/receiver.js +var require_receiver = __commonJS({ + "node_modules/undici/lib/websocket/receiver.js"(exports2, module2) { + "use strict"; + var { Writable } = require("stream"); + var diagnosticsChannel = require("diagnostics_channel"); + var { parserStates, opcodes, states, emptyBuffer } = require_constants5(); + var { kReadyState, kSentClose, kResponse, kReceivedClose } = require_symbols5(); + var { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require_util7(); + var { WebsocketFrameSend } = require_frame(); + var channels = {}; + channels.ping = diagnosticsChannel.channel("undici:websocket:ping"); + channels.pong = diagnosticsChannel.channel("undici:websocket:pong"); + var ByteParser = class extends Writable { + #buffers = []; + #byteOffset = 0; + #state = parserStates.INFO; + #info = {}; + #fragments = []; + constructor(ws) { + super(); + this.ws = ws; + } + /** + * @param {Buffer} chunk + * @param {() => void} callback + */ + _write(chunk, _, callback) { + this.#buffers.push(chunk); + this.#byteOffset += chunk.length; + this.run(callback); + } + /** + * Runs whenever a new chunk is received. + * Callback is called whenever there are no more chunks buffering, + * or not enough bytes are buffered to parse. + */ + run(callback) { + while (true) { + if (this.#state === parserStates.INFO) { + if (this.#byteOffset < 2) { + return callback(); + } + const buffer = this.consume(2); + this.#info.fin = (buffer[0] & 128) !== 0; + this.#info.opcode = buffer[0] & 15; + this.#info.originalOpcode ??= this.#info.opcode; + this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION; + if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) { + failWebsocketConnection(this.ws, "Invalid frame type was fragmented."); + return; + } + const payloadLength = buffer[1] & 127; + if (payloadLength <= 125) { + this.#info.payloadLength = payloadLength; + this.#state = parserStates.READ_DATA; + } else if (payloadLength === 126) { + this.#state = parserStates.PAYLOADLENGTH_16; + } else if (payloadLength === 127) { + this.#state = parserStates.PAYLOADLENGTH_64; + } + if (this.#info.fragmented && payloadLength > 125) { + failWebsocketConnection(this.ws, "Fragmented frame exceeded 125 bytes."); + return; + } else if ((this.#info.opcode === opcodes.PING || this.#info.opcode === opcodes.PONG || this.#info.opcode === opcodes.CLOSE) && payloadLength > 125) { + failWebsocketConnection(this.ws, "Payload length for control frame exceeded 125 bytes."); + return; + } else if (this.#info.opcode === opcodes.CLOSE) { + if (payloadLength === 1) { + failWebsocketConnection(this.ws, "Received close frame with a 1-byte body."); + return; + } + const body = this.consume(payloadLength); + this.#info.closeInfo = this.parseCloseBody(false, body); + if (!this.ws[kSentClose]) { + const body2 = Buffer.allocUnsafe(2); + body2.writeUInt16BE(this.#info.closeInfo.code, 0); + const closeFrame = new WebsocketFrameSend(body2); + this.ws[kResponse].socket.write( + closeFrame.createFrame(opcodes.CLOSE), + (err) => { + if (!err) { + this.ws[kSentClose] = true; + } + } + ); + } + this.ws[kReadyState] = states.CLOSING; + this.ws[kReceivedClose] = true; + this.end(); + return; + } else if (this.#info.opcode === opcodes.PING) { + const body = this.consume(payloadLength); + if (!this.ws[kReceivedClose]) { + const frame = new WebsocketFrameSend(body); + this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)); + if (channels.ping.hasSubscribers) { + channels.ping.publish({ + payload: body + }); + } + } + this.#state = parserStates.INFO; + if (this.#byteOffset > 0) { + continue; + } else { + callback(); + return; + } + } else if (this.#info.opcode === opcodes.PONG) { + const body = this.consume(payloadLength); + if (channels.pong.hasSubscribers) { + channels.pong.publish({ + payload: body + }); + } + if (this.#byteOffset > 0) { + continue; + } else { + callback(); + return; + } + } + } else if (this.#state === parserStates.PAYLOADLENGTH_16) { + if (this.#byteOffset < 2) { + return callback(); + } + const buffer = this.consume(2); + this.#info.payloadLength = buffer.readUInt16BE(0); + this.#state = parserStates.READ_DATA; + } else if (this.#state === parserStates.PAYLOADLENGTH_64) { + if (this.#byteOffset < 8) { + return callback(); + } + const buffer = this.consume(8); + const upper = buffer.readUInt32BE(0); + if (upper > 2 ** 31 - 1) { + failWebsocketConnection(this.ws, "Received payload length > 2^31 bytes."); + return; + } + const lower = buffer.readUInt32BE(4); + this.#info.payloadLength = (upper << 8) + lower; + this.#state = parserStates.READ_DATA; + } else if (this.#state === parserStates.READ_DATA) { + if (this.#byteOffset < this.#info.payloadLength) { + return callback(); + } else if (this.#byteOffset >= this.#info.payloadLength) { + const body = this.consume(this.#info.payloadLength); + this.#fragments.push(body); + if (!this.#info.fragmented || this.#info.fin && this.#info.opcode === opcodes.CONTINUATION) { + const fullMessage = Buffer.concat(this.#fragments); + websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage); + this.#info = {}; + this.#fragments.length = 0; + } + this.#state = parserStates.INFO; + } + } + if (this.#byteOffset > 0) { + continue; + } else { + callback(); + break; + } + } + } + /** + * Take n bytes from the buffered Buffers + * @param {number} n + * @returns {Buffer|null} + */ + consume(n) { + if (n > this.#byteOffset) { + return null; + } else if (n === 0) { + return emptyBuffer; + } + if (this.#buffers[0].length === n) { + this.#byteOffset -= this.#buffers[0].length; + return this.#buffers.shift(); + } + const buffer = Buffer.allocUnsafe(n); + let offset = 0; + while (offset !== n) { + const next = this.#buffers[0]; + const { length } = next; + if (length + offset === n) { + buffer.set(this.#buffers.shift(), offset); + break; + } else if (length + offset > n) { + buffer.set(next.subarray(0, n - offset), offset); + this.#buffers[0] = next.subarray(n - offset); + break; + } else { + buffer.set(this.#buffers.shift(), offset); + offset += next.length; + } + } + this.#byteOffset -= n; + return buffer; + } + parseCloseBody(onlyCode, data) { + let code; + if (data.length >= 2) { + code = data.readUInt16BE(0); + } + if (onlyCode) { + if (!isValidStatusCode(code)) { + return null; + } + return { code }; + } + let reason = data.subarray(2); + if (reason[0] === 239 && reason[1] === 187 && reason[2] === 191) { + reason = reason.subarray(3); + } + if (code !== void 0 && !isValidStatusCode(code)) { + return null; + } + try { + reason = new TextDecoder("utf-8", { fatal: true }).decode(reason); + } catch { + return null; + } + return { code, reason }; + } + get closingInfo() { + return this.#info.closeInfo; + } + }; + module2.exports = { + ByteParser + }; + } +}); + +// node_modules/undici/lib/websocket/websocket.js +var require_websocket = __commonJS({ + "node_modules/undici/lib/websocket/websocket.js"(exports2, module2) { + "use strict"; + var { webidl } = require_webidl(); + var { DOMException: DOMException2 } = require_constants2(); + var { URLSerializer } = require_dataURL(); + var { getGlobalOrigin } = require_global(); + var { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require_constants5(); + var { + kWebSocketURL, + kReadyState, + kController, + kBinaryType, + kResponse, + kSentClose, + kByteParser + } = require_symbols5(); + var { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require_util7(); + var { establishWebSocketConnection } = require_connection(); + var { WebsocketFrameSend } = require_frame(); + var { ByteParser } = require_receiver(); + var { kEnumerableProperty, isBlobLike } = require_util(); + var { getGlobalDispatcher } = require_global2(); + var { types } = require("util"); + var experimentalWarned = false; + var WebSocket = class _WebSocket extends EventTarget { + #events = { + open: null, + error: null, + close: null, + message: null + }; + #bufferedAmount = 0; + #protocol = ""; + #extensions = ""; + /** + * @param {string} url + * @param {string|string[]} protocols + */ + constructor(url, protocols = []) { + super(); + webidl.argumentLengthCheck(arguments, 1, { header: "WebSocket constructor" }); + if (!experimentalWarned) { + experimentalWarned = true; + process.emitWarning("WebSockets are experimental, expect them to change at any time.", { + code: "UNDICI-WS" + }); + } + const options = webidl.converters["DOMString or sequence or WebSocketInit"](protocols); + url = webidl.converters.USVString(url); + protocols = options.protocols; + const baseURL = getGlobalOrigin(); + let urlRecord; + try { + urlRecord = new URL(url, baseURL); + } catch (e) { + throw new DOMException2(e, "SyntaxError"); + } + if (urlRecord.protocol === "http:") { + urlRecord.protocol = "ws:"; + } else if (urlRecord.protocol === "https:") { + urlRecord.protocol = "wss:"; + } + if (urlRecord.protocol !== "ws:" && urlRecord.protocol !== "wss:") { + throw new DOMException2( + `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, + "SyntaxError" + ); + } + if (urlRecord.hash || urlRecord.href.endsWith("#")) { + throw new DOMException2("Got fragment", "SyntaxError"); + } + if (typeof protocols === "string") { + protocols = [protocols]; + } + if (protocols.length !== new Set(protocols.map((p) => p.toLowerCase())).size) { + throw new DOMException2("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); + } + if (protocols.length > 0 && !protocols.every((p) => isValidSubprotocol(p))) { + throw new DOMException2("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); + } + this[kWebSocketURL] = new URL(urlRecord.href); + this[kController] = establishWebSocketConnection( + urlRecord, + protocols, + this, + (response) => this.#onConnectionEstablished(response), + options + ); + this[kReadyState] = _WebSocket.CONNECTING; + this[kBinaryType] = "blob"; + } + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-close + * @param {number|undefined} code + * @param {string|undefined} reason + */ + close(code = void 0, reason = void 0) { + webidl.brandCheck(this, _WebSocket); + if (code !== void 0) { + code = webidl.converters["unsigned short"](code, { clamp: true }); + } + if (reason !== void 0) { + reason = webidl.converters.USVString(reason); + } + if (code !== void 0) { + if (code !== 1e3 && (code < 3e3 || code > 4999)) { + throw new DOMException2("invalid code", "InvalidAccessError"); + } + } + let reasonByteLength = 0; + if (reason !== void 0) { + reasonByteLength = Buffer.byteLength(reason); + if (reasonByteLength > 123) { + throw new DOMException2( + `Reason must be less than 123 bytes; received ${reasonByteLength}`, + "SyntaxError" + ); + } + } + if (this[kReadyState] === _WebSocket.CLOSING || this[kReadyState] === _WebSocket.CLOSED) { + } else if (!isEstablished(this)) { + failWebsocketConnection(this, "Connection was closed before it was established."); + this[kReadyState] = _WebSocket.CLOSING; + } else if (!isClosing(this)) { + const frame = new WebsocketFrameSend(); + if (code !== void 0 && reason === void 0) { + frame.frameData = Buffer.allocUnsafe(2); + frame.frameData.writeUInt16BE(code, 0); + } else if (code !== void 0 && reason !== void 0) { + frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength); + frame.frameData.writeUInt16BE(code, 0); + frame.frameData.write(reason, 2, "utf-8"); + } else { + frame.frameData = emptyBuffer; + } + const socket = this[kResponse].socket; + socket.write(frame.createFrame(opcodes.CLOSE), (err) => { + if (!err) { + this[kSentClose] = true; + } + }); + this[kReadyState] = states.CLOSING; + } else { + this[kReadyState] = _WebSocket.CLOSING; + } + } + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-send + * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data + */ + send(data) { + webidl.brandCheck(this, _WebSocket); + webidl.argumentLengthCheck(arguments, 1, { header: "WebSocket.send" }); + data = webidl.converters.WebSocketSendData(data); + if (this[kReadyState] === _WebSocket.CONNECTING) { + throw new DOMException2("Sent before connected.", "InvalidStateError"); + } + if (!isEstablished(this) || isClosing(this)) { + return; + } + const socket = this[kResponse].socket; + if (typeof data === "string") { + const value = Buffer.from(data); + const frame = new WebsocketFrameSend(value); + const buffer = frame.createFrame(opcodes.TEXT); + this.#bufferedAmount += value.byteLength; + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength; + }); + } else if (types.isArrayBuffer(data)) { + const value = Buffer.from(data); + const frame = new WebsocketFrameSend(value); + const buffer = frame.createFrame(opcodes.BINARY); + this.#bufferedAmount += value.byteLength; + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength; + }); + } else if (ArrayBuffer.isView(data)) { + const ab = Buffer.from(data, data.byteOffset, data.byteLength); + const frame = new WebsocketFrameSend(ab); + const buffer = frame.createFrame(opcodes.BINARY); + this.#bufferedAmount += ab.byteLength; + socket.write(buffer, () => { + this.#bufferedAmount -= ab.byteLength; + }); + } else if (isBlobLike(data)) { + const frame = new WebsocketFrameSend(); + data.arrayBuffer().then((ab) => { + const value = Buffer.from(ab); + frame.frameData = value; + const buffer = frame.createFrame(opcodes.BINARY); + this.#bufferedAmount += value.byteLength; + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength; + }); + }); + } + } + get readyState() { + webidl.brandCheck(this, _WebSocket); + return this[kReadyState]; + } + get bufferedAmount() { + webidl.brandCheck(this, _WebSocket); + return this.#bufferedAmount; + } + get url() { + webidl.brandCheck(this, _WebSocket); + return URLSerializer(this[kWebSocketURL]); + } + get extensions() { + webidl.brandCheck(this, _WebSocket); + return this.#extensions; + } + get protocol() { + webidl.brandCheck(this, _WebSocket); + return this.#protocol; + } + get onopen() { + webidl.brandCheck(this, _WebSocket); + return this.#events.open; + } + set onopen(fn) { + webidl.brandCheck(this, _WebSocket); + if (this.#events.open) { + this.removeEventListener("open", this.#events.open); + } + if (typeof fn === "function") { + this.#events.open = fn; + this.addEventListener("open", fn); + } else { + this.#events.open = null; + } + } + get onerror() { + webidl.brandCheck(this, _WebSocket); + return this.#events.error; + } + set onerror(fn) { + webidl.brandCheck(this, _WebSocket); + if (this.#events.error) { + this.removeEventListener("error", this.#events.error); + } + if (typeof fn === "function") { + this.#events.error = fn; + this.addEventListener("error", fn); + } else { + this.#events.error = null; + } + } + get onclose() { + webidl.brandCheck(this, _WebSocket); + return this.#events.close; + } + set onclose(fn) { + webidl.brandCheck(this, _WebSocket); + if (this.#events.close) { + this.removeEventListener("close", this.#events.close); + } + if (typeof fn === "function") { + this.#events.close = fn; + this.addEventListener("close", fn); + } else { + this.#events.close = null; + } + } + get onmessage() { + webidl.brandCheck(this, _WebSocket); + return this.#events.message; + } + set onmessage(fn) { + webidl.brandCheck(this, _WebSocket); + if (this.#events.message) { + this.removeEventListener("message", this.#events.message); + } + if (typeof fn === "function") { + this.#events.message = fn; + this.addEventListener("message", fn); + } else { + this.#events.message = null; + } + } + get binaryType() { + webidl.brandCheck(this, _WebSocket); + return this[kBinaryType]; + } + set binaryType(type) { + webidl.brandCheck(this, _WebSocket); + if (type !== "blob" && type !== "arraybuffer") { + this[kBinaryType] = "blob"; + } else { + this[kBinaryType] = type; + } + } + /** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + */ + #onConnectionEstablished(response) { + this[kResponse] = response; + const parser = new ByteParser(this); + parser.on("drain", function onParserDrain() { + this.ws[kResponse].socket.resume(); + }); + response.socket.ws = this; + this[kByteParser] = parser; + this[kReadyState] = states.OPEN; + const extensions = response.headersList.get("sec-websocket-extensions"); + if (extensions !== null) { + this.#extensions = extensions; + } + const protocol = response.headersList.get("sec-websocket-protocol"); + if (protocol !== null) { + this.#protocol = protocol; + } + fireEvent("open", this); + } + }; + WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING; + WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN; + WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING; + WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED; + Object.defineProperties(WebSocket.prototype, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors, + url: kEnumerableProperty, + readyState: kEnumerableProperty, + bufferedAmount: kEnumerableProperty, + onopen: kEnumerableProperty, + onerror: kEnumerableProperty, + onclose: kEnumerableProperty, + close: kEnumerableProperty, + onmessage: kEnumerableProperty, + binaryType: kEnumerableProperty, + send: kEnumerableProperty, + extensions: kEnumerableProperty, + protocol: kEnumerableProperty, + [Symbol.toStringTag]: { + value: "WebSocket", + writable: false, + enumerable: false, + configurable: true + } + }); + Object.defineProperties(WebSocket, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors + }); + webidl.converters["sequence"] = webidl.sequenceConverter( + webidl.converters.DOMString + ); + webidl.converters["DOMString or sequence"] = function(V) { + if (webidl.util.Type(V) === "Object" && Symbol.iterator in V) { + return webidl.converters["sequence"](V); + } + return webidl.converters.DOMString(V); + }; + webidl.converters.WebSocketInit = webidl.dictionaryConverter([ + { + key: "protocols", + converter: webidl.converters["DOMString or sequence"], + get defaultValue() { + return []; + } + }, + { + key: "dispatcher", + converter: (V) => V, + get defaultValue() { + return getGlobalDispatcher(); + } + }, + { + key: "headers", + converter: webidl.nullableConverter(webidl.converters.HeadersInit) + } + ]); + webidl.converters["DOMString or sequence or WebSocketInit"] = function(V) { + if (webidl.util.Type(V) === "Object" && !(Symbol.iterator in V)) { + return webidl.converters.WebSocketInit(V); + } + return { protocols: webidl.converters["DOMString or sequence"](V) }; + }; + webidl.converters.WebSocketSendData = function(V) { + if (webidl.util.Type(V) === "Object") { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }); + } + if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { + return webidl.converters.BufferSource(V); + } + } + return webidl.converters.USVString(V); + }; + module2.exports = { + WebSocket + }; + } +}); + +// node_modules/undici/index.js +var require_undici = __commonJS({ + "node_modules/undici/index.js"(exports2, module2) { + "use strict"; + var Client = require_client(); + var Dispatcher = require_dispatcher(); + var errors = require_errors(); + var Pool = require_pool(); + var BalancedPool = require_balanced_pool(); + var Agent = require_agent(); + var util = require_util(); + var { InvalidArgumentError } = errors; + var api = require_api(); + var buildConnector = require_connect(); + var MockClient = require_mock_client(); + var MockAgent = require_mock_agent(); + var MockPool = require_mock_pool(); + var mockErrors = require_mock_errors(); + var ProxyAgent = require_proxy_agent(); + var RetryHandler = require_RetryHandler(); + var { getGlobalDispatcher, setGlobalDispatcher } = require_global2(); + var DecoratorHandler = require_DecoratorHandler(); + var RedirectHandler = require_RedirectHandler(); + var createRedirectInterceptor = require_redirectInterceptor(); + var hasCrypto; + try { + require("crypto"); + hasCrypto = true; + } catch { + hasCrypto = false; + } + Object.assign(Dispatcher.prototype, api); + module2.exports.Dispatcher = Dispatcher; + module2.exports.Client = Client; + module2.exports.Pool = Pool; + module2.exports.BalancedPool = BalancedPool; + module2.exports.Agent = Agent; + module2.exports.ProxyAgent = ProxyAgent; + module2.exports.RetryHandler = RetryHandler; + module2.exports.DecoratorHandler = DecoratorHandler; + module2.exports.RedirectHandler = RedirectHandler; + module2.exports.createRedirectInterceptor = createRedirectInterceptor; + module2.exports.buildConnector = buildConnector; + module2.exports.errors = errors; + function makeDispatcher(fn) { + return (url, opts, handler) => { + if (typeof opts === "function") { + handler = opts; + opts = null; + } + if (!url || typeof url !== "string" && typeof url !== "object" && !(url instanceof URL)) { + throw new InvalidArgumentError("invalid url"); + } + if (opts != null && typeof opts !== "object") { + throw new InvalidArgumentError("invalid opts"); + } + if (opts && opts.path != null) { + if (typeof opts.path !== "string") { + throw new InvalidArgumentError("invalid opts.path"); + } + let path = opts.path; + if (!opts.path.startsWith("/")) { + path = `/${path}`; + } + url = new URL(util.parseOrigin(url).origin + path); + } else { + if (!opts) { + opts = typeof url === "object" ? url : {}; + } + url = util.parseURL(url); + } + const { agent, dispatcher = getGlobalDispatcher() } = opts; + if (agent) { + throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?"); + } + return fn.call(dispatcher, { + ...opts, + origin: url.origin, + path: url.search ? `${url.pathname}${url.search}` : url.pathname, + method: opts.method || (opts.body ? "PUT" : "GET") + }, handler); + }; + } + module2.exports.setGlobalDispatcher = setGlobalDispatcher; + module2.exports.getGlobalDispatcher = getGlobalDispatcher; + if (util.nodeMajor > 16 || util.nodeMajor === 16 && util.nodeMinor >= 8) { + let fetchImpl = null; + module2.exports.fetch = async function fetch2(resource) { + if (!fetchImpl) { + fetchImpl = require_fetch().fetch; + } + try { + return await fetchImpl(...arguments); + } catch (err) { + if (typeof err === "object") { + Error.captureStackTrace(err, this); + } + throw err; + } + }; + module2.exports.Headers = require_headers().Headers; + module2.exports.Response = require_response().Response; + module2.exports.Request = require_request2().Request; + module2.exports.FormData = require_formdata().FormData; + module2.exports.File = require_file().File; + module2.exports.FileReader = require_filereader().FileReader; + const { setGlobalOrigin, getGlobalOrigin } = require_global(); + module2.exports.setGlobalOrigin = setGlobalOrigin; + module2.exports.getGlobalOrigin = getGlobalOrigin; + const { CacheStorage } = require_cachestorage(); + const { kConstruct } = require_symbols4(); + module2.exports.caches = new CacheStorage(kConstruct); + } + if (util.nodeMajor >= 16) { + const { deleteCookie, getCookies, getSetCookies, setCookie } = require_cookies(); + module2.exports.deleteCookie = deleteCookie; + module2.exports.getCookies = getCookies; + module2.exports.getSetCookies = getSetCookies; + module2.exports.setCookie = setCookie; + const { parseMIMEType, serializeAMimeType } = require_dataURL(); + module2.exports.parseMIMEType = parseMIMEType; + module2.exports.serializeAMimeType = serializeAMimeType; + } + if (util.nodeMajor >= 18 && hasCrypto) { + const { WebSocket } = require_websocket(); + module2.exports.WebSocket = WebSocket; + } + module2.exports.request = makeDispatcher(api.request); + module2.exports.stream = makeDispatcher(api.stream); + module2.exports.pipeline = makeDispatcher(api.pipeline); + module2.exports.connect = makeDispatcher(api.connect); + module2.exports.upgrade = makeDispatcher(api.upgrade); + module2.exports.MockClient = MockClient; + module2.exports.MockPool = MockPool; + module2.exports.MockAgent = MockAgent; + module2.exports.mockErrors = mockErrors; + } +}); + +// node_modules/@actions/http-client/lib/index.js +var require_lib = __commonJS({ + "node_modules/@actions/http-client/lib/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HttpClient = exports2.isHttps = exports2.HttpClientResponse = exports2.HttpClientError = exports2.getProxyUrl = exports2.MediaTypes = exports2.Headers = exports2.HttpCodes = void 0; + var http = __importStar2(require("http")); + var https = __importStar2(require("https")); + var pm = __importStar2(require_proxy()); + var tunnel = __importStar2(require_tunnel2()); + var undici_1 = require_undici(); + var HttpCodes; + (function(HttpCodes2) { + HttpCodes2[HttpCodes2["OK"] = 200] = "OK"; + HttpCodes2[HttpCodes2["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes2[HttpCodes2["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes2[HttpCodes2["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes2[HttpCodes2["SeeOther"] = 303] = "SeeOther"; + HttpCodes2[HttpCodes2["NotModified"] = 304] = "NotModified"; + HttpCodes2[HttpCodes2["UseProxy"] = 305] = "UseProxy"; + HttpCodes2[HttpCodes2["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes2[HttpCodes2["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes2[HttpCodes2["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes2[HttpCodes2["BadRequest"] = 400] = "BadRequest"; + HttpCodes2[HttpCodes2["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes2[HttpCodes2["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes2[HttpCodes2["Forbidden"] = 403] = "Forbidden"; + HttpCodes2[HttpCodes2["NotFound"] = 404] = "NotFound"; + HttpCodes2[HttpCodes2["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes2[HttpCodes2["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes2[HttpCodes2["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes2[HttpCodes2["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes2[HttpCodes2["Conflict"] = 409] = "Conflict"; + HttpCodes2[HttpCodes2["Gone"] = 410] = "Gone"; + HttpCodes2[HttpCodes2["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes2[HttpCodes2["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes2[HttpCodes2["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes2[HttpCodes2["BadGateway"] = 502] = "BadGateway"; + HttpCodes2[HttpCodes2["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes2[HttpCodes2["GatewayTimeout"] = 504] = "GatewayTimeout"; + })(HttpCodes || (exports2.HttpCodes = HttpCodes = {})); + var Headers; + (function(Headers2) { + Headers2["Accept"] = "accept"; + Headers2["ContentType"] = "content-type"; + })(Headers || (exports2.Headers = Headers = {})); + var MediaTypes; + (function(MediaTypes2) { + MediaTypes2["ApplicationJson"] = "application/json"; + })(MediaTypes || (exports2.MediaTypes = MediaTypes = {})); + function getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ""; + } + exports2.getProxyUrl = getProxyUrl; + var HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect + ]; + var HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout + ]; + var RetryableHttpVerbs = ["OPTIONS", "GET", "DELETE", "HEAD"]; + var ExponentialBackoffCeiling = 10; + var ExponentialBackoffTimeSlice = 5; + var HttpClientError = class _HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = "HttpClientError"; + this.statusCode = statusCode; + Object.setPrototypeOf(this, _HttpClientError.prototype); + } + }; + exports2.HttpClientError = HttpClientError; + var HttpClientResponse = class { + constructor(message) { + this.message = message; + } + readBody() { + return __awaiter2(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter2(this, void 0, void 0, function* () { + let output = Buffer.alloc(0); + this.message.on("data", (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on("end", () => { + resolve(output.toString()); + }); + })); + }); + } + readBodyBuffer() { + return __awaiter2(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter2(this, void 0, void 0, function* () { + const chunks = []; + this.message.on("data", (chunk) => { + chunks.push(chunk); + }); + this.message.on("end", () => { + resolve(Buffer.concat(chunks)); + }); + })); + }); + } + }; + exports2.HttpClientResponse = HttpClientResponse; + function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === "https:"; + } + exports2.isHttps = isHttps; + var HttpClient = class { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return __awaiter2(this, void 0, void 0, function* () { + return this.request("OPTIONS", requestUrl, null, additionalHeaders || {}); + }); + } + get(requestUrl, additionalHeaders) { + return __awaiter2(this, void 0, void 0, function* () { + return this.request("GET", requestUrl, null, additionalHeaders || {}); + }); + } + del(requestUrl, additionalHeaders) { + return __awaiter2(this, void 0, void 0, function* () { + return this.request("DELETE", requestUrl, null, additionalHeaders || {}); + }); + } + post(requestUrl, data, additionalHeaders) { + return __awaiter2(this, void 0, void 0, function* () { + return this.request("POST", requestUrl, data, additionalHeaders || {}); + }); + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter2(this, void 0, void 0, function* () { + return this.request("PATCH", requestUrl, data, additionalHeaders || {}); + }); + } + put(requestUrl, data, additionalHeaders) { + return __awaiter2(this, void 0, void 0, function* () { + return this.request("PUT", requestUrl, data, additionalHeaders || {}); + }); + } + head(requestUrl, additionalHeaders) { + return __awaiter2(this, void 0, void 0, function* () { + return this.request("HEAD", requestUrl, null, additionalHeaders || {}); + }); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter2(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream, additionalHeaders); + }); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl, additionalHeaders = {}) { + return __awaiter2(this, void 0, void 0, function* () { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + const res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + postJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter2(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + putJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter2(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + patchJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter2(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter2(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error("Client has already been disposed."); + } + const parsedUrl = new URL(requestUrl); + let info2 = this._prepareRequest(verb, parsedUrl, headers); + const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1; + let numTries = 0; + let response; + do { + response = yield this.requestRaw(info2, data); + if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info2, data); + } else { + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (response.message.statusCode && HttpRedirectCodes.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0) { + const redirectUrl = response.message.headers["location"]; + if (!redirectUrl) { + break; + } + const parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === "https:" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) { + throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true."); + } + yield response.readBody(); + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + if (header.toLowerCase() === "authorization") { + delete headers[header]; + } + } + } + info2 = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info2, data); + redirectsRemaining--; + } + if (!response.message.statusCode || !HttpResponseRetryCodes.includes(response.message.statusCode)) { + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + } while (numTries < maxTries); + return response; + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info2, data) { + return __awaiter2(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + function callbackForResult(err, res) { + if (err) { + reject(err); + } else if (!res) { + reject(new Error("Unknown error")); + } else { + resolve(res); + } + } + this.requestRawWithCallback(info2, data, callbackForResult); + }); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info2, data, onResult) { + if (typeof data === "string") { + if (!info2.options.headers) { + info2.options.headers = {}; + } + info2.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8"); + } + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + } + const req = info2.httpModule.request(info2.options, (msg) => { + const res = new HttpClientResponse(msg); + handleResult(void 0, res); + }); + let socket; + req.on("socket", (sock) => { + socket = sock; + }); + req.setTimeout(this._socketTimeout || 3 * 6e4, () => { + if (socket) { + socket.end(); + } + handleResult(new Error(`Request timeout: ${info2.options.path}`)); + }); + req.on("error", function(err) { + handleResult(err); + }); + if (data && typeof data === "string") { + req.write(data, "utf8"); + } + if (data && typeof data !== "string") { + data.on("close", function() { + req.end(); + }); + data.pipe(req); + } else { + req.end(); + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + getAgentDispatcher(serverUrl) { + const parsedUrl = new URL(serverUrl); + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (!useProxy) { + return; + } + return this._getProxyAgentDispatcher(parsedUrl, proxyUrl); + } + _prepareRequest(method2, requestUrl, headers) { + const info2 = {}; + info2.parsedUrl = requestUrl; + const usingSsl = info2.parsedUrl.protocol === "https:"; + info2.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info2.options = {}; + info2.options.host = info2.parsedUrl.hostname; + info2.options.port = info2.parsedUrl.port ? parseInt(info2.parsedUrl.port) : defaultPort; + info2.options.path = (info2.parsedUrl.pathname || "") + (info2.parsedUrl.search || ""); + info2.options.method = method2; + info2.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info2.options.headers["user-agent"] = this.userAgent; + } + info2.options.agent = this._getAgent(info2.parsedUrl); + if (this.handlers) { + for (const handler of this.handlers) { + handler.prepareRequest(info2.options); + } + } + return info2; + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (!useProxy) { + agent = this._agent; + } + if (agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === "https:"; + let maxSockets = 100; + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + }), { host: proxyUrl.hostname, port: proxyUrl.port }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === "https:"; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + if (!agent) { + const options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + if (usingSsl && this._ignoreSslError) { + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _getProxyAgentDispatcher(parsedUrl, proxyUrl) { + let proxyAgent; + if (this._keepAlive) { + proxyAgent = this._proxyAgentDispatcher; + } + if (proxyAgent) { + return proxyAgent; + } + const usingSsl = parsedUrl.protocol === "https:"; + proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, (proxyUrl.username || proxyUrl.password) && { + token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString("base64")}` + })); + this._proxyAgentDispatcher = proxyAgent; + if (usingSsl && this._ignoreSslError) { + proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { + rejectUnauthorized: false + }); + } + return proxyAgent; + } + _performExponentialBackoff(retryNumber) { + return __awaiter2(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise((resolve) => setTimeout(() => resolve(), ms)); + }); + } + _processResponse(res, options) { + return __awaiter2(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter2(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + if (statusCode === HttpCodes.NotFound) { + resolve(response); + } + function dateTimeDeserializer(key, value) { + if (typeof value === "string") { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } catch (err) { + } + if (statusCode > 299) { + let msg; + if (obj && obj.message) { + msg = obj.message; + } else if (contents && contents.length > 0) { + msg = contents; + } else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } else { + resolve(response); + } + })); + }); + } + }; + exports2.HttpClient = HttpClient; + var lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {}); + } +}); + +// node_modules/@actions/http-client/lib/auth.js +var require_auth = __commonJS({ + "node_modules/@actions/http-client/lib/auth.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PersonalAccessTokenCredentialHandler = exports2.BearerCredentialHandler = exports2.BasicCredentialHandler = void 0; + var BasicCredentialHandler = class { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) { + throw Error("The request has no headers"); + } + options.headers["Authorization"] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter2(this, void 0, void 0, function* () { + throw new Error("not implemented"); + }); + } + }; + exports2.BasicCredentialHandler = BasicCredentialHandler; + var BearerCredentialHandler = class { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error("The request has no headers"); + } + options.headers["Authorization"] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter2(this, void 0, void 0, function* () { + throw new Error("not implemented"); + }); + } + }; + exports2.BearerCredentialHandler = BearerCredentialHandler; + var PersonalAccessTokenCredentialHandler = class { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error("The request has no headers"); + } + options.headers["Authorization"] = `Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter2(this, void 0, void 0, function* () { + throw new Error("not implemented"); + }); + } + }; + exports2.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; + } +}); + +// node_modules/@actions/core/lib/oidc-utils.js +var require_oidc_utils = __commonJS({ + "node_modules/@actions/core/lib/oidc-utils.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.OidcClient = void 0; + var http_client_1 = require_lib(); + var auth_1 = require_auth(); + var core_1 = require_core(); + var OidcClient = class _OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry + }; + return new http_client_1.HttpClient("actions/oidc-client", [new auth_1.BearerCredentialHandler(_OidcClient.getRequestToken())], requestOptions); + } + static getRequestToken() { + const token = process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"]; + if (!token) { + throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable"); + } + return token; + } + static getIDTokenUrl() { + const runtimeUrl = process.env["ACTIONS_ID_TOKEN_REQUEST_URL"]; + if (!runtimeUrl) { + throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable"); + } + return runtimeUrl; + } + static getCall(id_token_url) { + var _a; + return __awaiter2(this, void 0, void 0, function* () { + const httpclient = _OidcClient.createHttpClient(); + const res = yield httpclient.getJson(id_token_url).catch((error) => { + throw new Error(`Failed to get ID Token. + + Error Code : ${error.statusCode} + + Error Message: ${error.message}`); + }); + const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; + if (!id_token) { + throw new Error("Response json body do not have ID Token field"); + } + return id_token; + }); + } + static getIDToken(audience) { + return __awaiter2(this, void 0, void 0, function* () { + try { + let id_token_url = _OidcClient.getIDTokenUrl(); + if (audience) { + const encodedAudience = encodeURIComponent(audience); + id_token_url = `${id_token_url}&audience=${encodedAudience}`; + } + core_1.debug(`ID token url is ${id_token_url}`); + const id_token = yield _OidcClient.getCall(id_token_url); + core_1.setSecret(id_token); + return id_token; + } catch (error) { + throw new Error(`Error message: ${error.message}`); + } + }); + } + }; + exports2.OidcClient = OidcClient; + } +}); + +// node_modules/@actions/core/lib/summary.js +var require_summary = __commonJS({ + "node_modules/@actions/core/lib/summary.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.summary = exports2.markdownSummary = exports2.SUMMARY_DOCS_URL = exports2.SUMMARY_ENV_VAR = void 0; + var os_1 = require("os"); + var fs_1 = require("fs"); + var { access, appendFile, writeFile } = fs_1.promises; + exports2.SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; + exports2.SUMMARY_DOCS_URL = "https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary"; + var Summary = class { + constructor() { + this._buffer = ""; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter2(this, void 0, void 0, function* () { + if (this._filePath) { + return this._filePath; + } + const pathFromEnv = process.env[exports2.SUMMARY_ENV_VAR]; + if (!pathFromEnv) { + throw new Error(`Unable to find environment variable for $${exports2.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + } + try { + yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK); + } catch (_a) { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + this._filePath = pathFromEnv; + return this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`).join(""); + if (!content) { + return `<${tag}${htmlAttrs}>`; + } + return `<${tag}${htmlAttrs}>${content}`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter2(this, void 0, void 0, function* () { + const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? writeFile : appendFile; + yield writeFunc(filePath, this._buffer, { encoding: "utf8" }); + return this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter2(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: true }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + this._buffer = ""; + return this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(os_1.EOL); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + const attrs = Object.assign({}, lang && { lang }); + const element = this.wrap("pre", this.wrap("code", code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = false) { + const tag = ordered ? "ol" : "ul"; + const listItems = items.map((item) => this.wrap("li", item)).join(""); + const element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + const tableBody = rows.map((row) => { + const cells = row.map((cell) => { + if (typeof cell === "string") { + return this.wrap("td", cell); + } + const { header, data, colspan, rowspan } = cell; + const tag = header ? "th" : "td"; + const attrs = Object.assign(Object.assign({}, colspan && { colspan }), rowspan && { rowspan }); + return this.wrap(tag, data, attrs); + }).join(""); + return this.wrap("tr", cells); + }).join(""); + const element = this.wrap("table", tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + const element = this.wrap("details", this.wrap("summary", label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + const { width, height } = options || {}; + const attrs = Object.assign(Object.assign({}, width && { width }), height && { height }); + const element = this.wrap("img", null, Object.assign({ src, alt }, attrs)); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + const tag = `h${level}`; + const allowedTag = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(tag) ? tag : "h1"; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + const element = this.wrap("hr", null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + const element = this.wrap("br", null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + const attrs = Object.assign({}, cite && { cite }); + const element = this.wrap("blockquote", text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + const element = this.wrap("a", text, { href }); + return this.addRaw(element).addEOL(); + } + }; + var _summary = new Summary(); + exports2.markdownSummary = _summary; + exports2.summary = _summary; + } +}); + +// node_modules/@actions/core/lib/path-utils.js +var require_path_utils = __commonJS({ + "node_modules/@actions/core/lib/path-utils.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.toPlatformPath = exports2.toWin32Path = exports2.toPosixPath = void 0; + var path = __importStar2(require("path")); + function toPosixPath(pth) { + return pth.replace(/[\\]/g, "/"); + } + exports2.toPosixPath = toPosixPath; + function toWin32Path(pth) { + return pth.replace(/[/]/g, "\\"); + } + exports2.toWin32Path = toWin32Path; + function toPlatformPath(pth) { + return pth.replace(/[/\\]/g, path.sep); + } + exports2.toPlatformPath = toPlatformPath; + } +}); + +// node_modules/@actions/core/lib/core.js +var require_core = __commonJS({ + "node_modules/@actions/core/lib/core.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getIDToken = exports2.getState = exports2.saveState = exports2.group = exports2.endGroup = exports2.startGroup = exports2.info = exports2.notice = exports2.warning = exports2.error = exports2.debug = exports2.isDebug = exports2.setFailed = exports2.setCommandEcho = exports2.setOutput = exports2.getBooleanInput = exports2.getMultilineInput = exports2.getInput = exports2.addPath = exports2.setSecret = exports2.exportVariable = exports2.ExitCode = void 0; + var command_1 = require_command(); + var file_command_1 = require_file_command(); + var utils_1 = require_utils(); + var os = __importStar2(require("os")); + var path = __importStar2(require("path")); + var oidc_utils_1 = require_oidc_utils(); + var ExitCode; + (function(ExitCode2) { + ExitCode2[ExitCode2["Success"] = 0] = "Success"; + ExitCode2[ExitCode2["Failure"] = 1] = "Failure"; + })(ExitCode = exports2.ExitCode || (exports2.ExitCode = {})); + function exportVariable(name, val) { + const convertedVal = utils_1.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env["GITHUB_ENV"] || ""; + if (filePath) { + return file_command_1.issueFileCommand("ENV", file_command_1.prepareKeyValueMessage(name, val)); + } + command_1.issueCommand("set-env", { name }, convertedVal); + } + exports2.exportVariable = exportVariable; + function setSecret(secret) { + command_1.issueCommand("add-mask", {}, secret); + } + exports2.setSecret = setSecret; + function addPath(inputPath) { + const filePath = process.env["GITHUB_PATH"] || ""; + if (filePath) { + file_command_1.issueFileCommand("PATH", inputPath); + } else { + command_1.issueCommand("add-path", {}, inputPath); + } + process.env["PATH"] = `${inputPath}${path.delimiter}${process.env["PATH"]}`; + } + exports2.addPath = addPath; + function getInput2(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, "_").toUpperCase()}`] || ""; + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`); + } + if (options && options.trimWhitespace === false) { + return val; + } + return val.trim(); + } + exports2.getInput = getInput2; + function getMultilineInput(name, options) { + const inputs = getInput2(name, options).split("\n").filter((x) => x !== ""); + if (options && options.trimWhitespace === false) { + return inputs; + } + return inputs.map((input) => input.trim()); + } + exports2.getMultilineInput = getMultilineInput; + function getBooleanInput(name, options) { + const trueValue = ["true", "True", "TRUE"]; + const falseValue = ["false", "False", "FALSE"]; + const val = getInput2(name, options); + if (trueValue.includes(val)) + return true; + if (falseValue.includes(val)) + return false; + throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name} +Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); + } + exports2.getBooleanInput = getBooleanInput; + function setOutput(name, value) { + const filePath = process.env["GITHUB_OUTPUT"] || ""; + if (filePath) { + return file_command_1.issueFileCommand("OUTPUT", file_command_1.prepareKeyValueMessage(name, value)); + } + process.stdout.write(os.EOL); + command_1.issueCommand("set-output", { name }, utils_1.toCommandValue(value)); + } + exports2.setOutput = setOutput; + function setCommandEcho(enabled) { + command_1.issue("echo", enabled ? "on" : "off"); + } + exports2.setCommandEcho = setCommandEcho; + function setFailed(message) { + process.exitCode = ExitCode.Failure; + error(message); + } + exports2.setFailed = setFailed; + function isDebug() { + return process.env["RUNNER_DEBUG"] === "1"; + } + exports2.isDebug = isDebug; + function debug(message) { + command_1.issueCommand("debug", {}, message); + } + exports2.debug = debug; + function error(message, properties = {}) { + command_1.issueCommand("error", utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); + } + exports2.error = error; + function warning(message, properties = {}) { + command_1.issueCommand("warning", utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); + } + exports2.warning = warning; + function notice(message, properties = {}) { + command_1.issueCommand("notice", utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); + } + exports2.notice = notice; + function info2(message) { + process.stdout.write(message + os.EOL); + } + exports2.info = info2; + function startGroup(name) { + command_1.issue("group", name); + } + exports2.startGroup = startGroup; + function endGroup() { + command_1.issue("endgroup"); + } + exports2.endGroup = endGroup; + function group(name, fn) { + return __awaiter2(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } finally { + endGroup(); + } + return result; + }); + } + exports2.group = group; + function saveState(name, value) { + const filePath = process.env["GITHUB_STATE"] || ""; + if (filePath) { + return file_command_1.issueFileCommand("STATE", file_command_1.prepareKeyValueMessage(name, value)); + } + command_1.issueCommand("save-state", { name }, utils_1.toCommandValue(value)); + } + exports2.saveState = saveState; + function getState(name) { + return process.env[`STATE_${name}`] || ""; + } + exports2.getState = getState; + function getIDToken(aud) { + return __awaiter2(this, void 0, void 0, function* () { + return yield oidc_utils_1.OidcClient.getIDToken(aud); + }); + } + exports2.getIDToken = getIDToken; + var summary_1 = require_summary(); + Object.defineProperty(exports2, "summary", { enumerable: true, get: function() { + return summary_1.summary; + } }); + var summary_2 = require_summary(); + Object.defineProperty(exports2, "markdownSummary", { enumerable: true, get: function() { + return summary_2.markdownSummary; + } }); + var path_utils_1 = require_path_utils(); + Object.defineProperty(exports2, "toPosixPath", { enumerable: true, get: function() { + return path_utils_1.toPosixPath; + } }); + Object.defineProperty(exports2, "toWin32Path", { enumerable: true, get: function() { + return path_utils_1.toWin32Path; + } }); + Object.defineProperty(exports2, "toPlatformPath", { enumerable: true, get: function() { + return path_utils_1.toPlatformPath; + } }); + } +}); + +// node_modules/@noble/hashes/cryptoNode.js +var require_cryptoNode = __commonJS({ + "node_modules/@noble/hashes/cryptoNode.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.crypto = void 0; + var nc = require("node:crypto"); + exports2.crypto = nc && typeof nc === "object" && "webcrypto" in nc ? nc.webcrypto : nc && typeof nc === "object" && "randomBytes" in nc ? nc : void 0; + } +}); + +// node_modules/@noble/hashes/utils.js +var require_utils3 = __commonJS({ + "node_modules/@noble/hashes/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.wrapXOFConstructorWithOpts = exports2.wrapConstructorWithOpts = exports2.wrapConstructor = exports2.Hash = exports2.nextTick = exports2.swap32IfBE = exports2.byteSwapIfBE = exports2.swap8IfBE = exports2.isLE = void 0; + exports2.isBytes = isBytes; + exports2.anumber = anumber; + exports2.abytes = abytes; + exports2.ahash = ahash; + exports2.aexists = aexists; + exports2.aoutput = aoutput; + exports2.u8 = u852; + exports2.u32 = u328; + exports2.clean = clean; + exports2.createView = createView; + exports2.rotr = rotr; + exports2.rotl = rotl; + exports2.byteSwap = byteSwap; + exports2.byteSwap32 = byteSwap32; + exports2.bytesToHex = bytesToHex; + exports2.hexToBytes = hexToBytes; + exports2.asyncLoop = asyncLoop; + exports2.utf8ToBytes = utf8ToBytes; + exports2.bytesToUtf8 = bytesToUtf8; + exports2.toBytes = toBytes; + exports2.kdfInputToBytes = kdfInputToBytes; + exports2.concatBytes = concatBytes; + exports2.checkOpts = checkOpts; + exports2.createHasher = createHasher; + exports2.createOptHasher = createOptHasher; + exports2.createXOFer = createXOFer; + exports2.randomBytes = randomBytes; + var crypto_1 = require_cryptoNode(); + function isBytes(a) { + return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array"; + } + function anumber(n) { + if (!Number.isSafeInteger(n) || n < 0) + throw new Error("positive integer expected, got " + n); + } + function abytes(b, ...lengths) { + if (!isBytes(b)) + throw new Error("Uint8Array expected"); + if (lengths.length > 0 && !lengths.includes(b.length)) + throw new Error("Uint8Array expected of length " + lengths + ", got length=" + b.length); + } + function ahash(h) { + if (typeof h !== "function" || typeof h.create !== "function") + throw new Error("Hash should be wrapped by utils.createHasher"); + anumber(h.outputLen); + anumber(h.blockLen); + } + function aexists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error("Hash instance has been destroyed"); + if (checkFinished && instance.finished) + throw new Error("Hash#digest() has already been called"); + } + function aoutput(out, instance) { + abytes(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error("digestInto() expects output buffer of length at least " + min); + } + } + function u852(arr) { + return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength); + } + function u328(arr) { + return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4)); + } + function clean(...arrays) { + for (let i = 0; i < arrays.length; i++) { + arrays[i].fill(0); + } + } + function createView(arr) { + return new DataView(arr.buffer, arr.byteOffset, arr.byteLength); + } + function rotr(word, shift) { + return word << 32 - shift | word >>> shift; + } + function rotl(word, shift) { + return word << shift | word >>> 32 - shift >>> 0; + } + exports2.isLE = (() => new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68)(); + function byteSwap(word) { + return word << 24 & 4278190080 | word << 8 & 16711680 | word >>> 8 & 65280 | word >>> 24 & 255; + } + exports2.swap8IfBE = exports2.isLE ? (n) => n : (n) => byteSwap(n); + exports2.byteSwapIfBE = exports2.swap8IfBE; + function byteSwap32(arr) { + for (let i = 0; i < arr.length; i++) { + arr[i] = byteSwap(arr[i]); + } + return arr; + } + exports2.swap32IfBE = exports2.isLE ? (u) => u : byteSwap32; + var hasHexBuiltin = /* @__PURE__ */ (() => ( + // @ts-ignore + typeof Uint8Array.from([]).toHex === "function" && typeof Uint8Array.fromHex === "function" + ))(); + var hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0")); + function bytesToHex(bytes7) { + abytes(bytes7); + if (hasHexBuiltin) + return bytes7.toHex(); + let hex = ""; + for (let i = 0; i < bytes7.length; i++) { + hex += hexes[bytes7[i]]; + } + return hex; + } + var asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; + function asciiToBase16(ch) { + if (ch >= asciis._0 && ch <= asciis._9) + return ch - asciis._0; + if (ch >= asciis.A && ch <= asciis.F) + return ch - (asciis.A - 10); + if (ch >= asciis.a && ch <= asciis.f) + return ch - (asciis.a - 10); + return; + } + function hexToBytes(hex) { + if (typeof hex !== "string") + throw new Error("hex string expected, got " + typeof hex); + if (hasHexBuiltin) + return Uint8Array.fromHex(hex); + const hl = hex.length; + const al = hl / 2; + if (hl % 2) + throw new Error("hex string expected, got unpadded hex of length " + hl); + const array11 = new Uint8Array(al); + for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) { + const n1 = asciiToBase16(hex.charCodeAt(hi)); + const n2 = asciiToBase16(hex.charCodeAt(hi + 1)); + if (n1 === void 0 || n2 === void 0) { + const char = hex[hi] + hex[hi + 1]; + throw new Error('hex string expected, got non-hex character "' + char + '" at index ' + hi); + } + array11[ai] = n1 * 16 + n2; + } + return array11; + } + var nextTick = async () => { + }; + exports2.nextTick = nextTick; + async function asyncLoop(iters, tick, cb) { + let ts = Date.now(); + for (let i = 0; i < iters; i++) { + cb(i); + const diff = Date.now() - ts; + if (diff >= 0 && diff < tick) + continue; + await (0, exports2.nextTick)(); + ts += diff; + } + } + function utf8ToBytes(str) { + if (typeof str !== "string") + throw new Error("string expected"); + return new Uint8Array(new TextEncoder().encode(str)); + } + function bytesToUtf8(bytes7) { + return new TextDecoder().decode(bytes7); + } + function toBytes(data) { + if (typeof data === "string") + data = utf8ToBytes(data); + abytes(data); + return data; + } + function kdfInputToBytes(data) { + if (typeof data === "string") + data = utf8ToBytes(data); + abytes(data); + return data; + } + function concatBytes(...arrays) { + let sum = 0; + for (let i = 0; i < arrays.length; i++) { + const a = arrays[i]; + abytes(a); + sum += a.length; + } + const res = new Uint8Array(sum); + for (let i = 0, pad = 0; i < arrays.length; i++) { + const a = arrays[i]; + res.set(a, pad); + pad += a.length; + } + return res; + } + function checkOpts(defaults, opts) { + if (opts !== void 0 && {}.toString.call(opts) !== "[object Object]") + throw new Error("options should be object or undefined"); + const merged = Object.assign(defaults, opts); + return merged; + } + var Hash = class { + }; + exports2.Hash = Hash; + function createHasher(hashCons) { + const hashC = (msg) => hashCons().update(toBytes(msg)).digest(); + const tmp = hashCons(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashCons(); + return hashC; + } + function createOptHasher(hashCons) { + const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest(); + const tmp = hashCons({}); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = (opts) => hashCons(opts); + return hashC; + } + function createXOFer(hashCons) { + const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest(); + const tmp = hashCons({}); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = (opts) => hashCons(opts); + return hashC; + } + exports2.wrapConstructor = createHasher; + exports2.wrapConstructorWithOpts = createOptHasher; + exports2.wrapXOFConstructorWithOpts = createXOFer; + function randomBytes(bytesLength = 32) { + if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === "function") { + return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength)); + } + if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === "function") { + return Uint8Array.from(crypto_1.crypto.randomBytes(bytesLength)); + } + throw new Error("crypto.getRandomValues must be defined"); + } + } +}); + +// node_modules/@noble/hashes/_md.js +var require_md = __commonJS({ + "node_modules/@noble/hashes/_md.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SHA512_IV = exports2.SHA384_IV = exports2.SHA224_IV = exports2.SHA256_IV = exports2.HashMD = void 0; + exports2.setBigUint64 = setBigUint64; + exports2.Chi = Chi; + exports2.Maj = Maj; + var utils_ts_1 = require_utils3(); + function setBigUint64(view, byteOffset, value, isLE) { + if (typeof view.setBigUint64 === "function") + return view.setBigUint64(byteOffset, value, isLE); + const _32n = BigInt(32); + const _u32_max = BigInt(4294967295); + const wh = Number(value >> _32n & _u32_max); + const wl = Number(value & _u32_max); + const h = isLE ? 4 : 0; + const l = isLE ? 0 : 4; + view.setUint32(byteOffset + h, wh, isLE); + view.setUint32(byteOffset + l, wl, isLE); + } + function Chi(a, b, c) { + return a & b ^ ~a & c; + } + function Maj(a, b, c) { + return a & b ^ a & c ^ b & c; + } + var HashMD = class extends utils_ts_1.Hash { + constructor(blockLen, outputLen, padOffset, isLE) { + super(); + this.finished = false; + this.length = 0; + this.pos = 0; + this.destroyed = false; + this.blockLen = blockLen; + this.outputLen = outputLen; + this.padOffset = padOffset; + this.isLE = isLE; + this.buffer = new Uint8Array(blockLen); + this.view = (0, utils_ts_1.createView)(this.buffer); + } + update(data) { + (0, utils_ts_1.aexists)(this); + data = (0, utils_ts_1.toBytes)(data); + (0, utils_ts_1.abytes)(data); + const { view, buffer, blockLen } = this; + const len = data.length; + for (let pos = 0; pos < len; ) { + const take = Math.min(blockLen - this.pos, len - pos); + if (take === blockLen) { + const dataView = (0, utils_ts_1.createView)(data); + for (; blockLen <= len - pos; pos += blockLen) + this.process(dataView, pos); + continue; + } + buffer.set(data.subarray(pos, pos + take), this.pos); + this.pos += take; + pos += take; + if (this.pos === blockLen) { + this.process(view, 0); + this.pos = 0; + } + } + this.length += data.length; + this.roundClean(); + return this; + } + digestInto(out) { + (0, utils_ts_1.aexists)(this); + (0, utils_ts_1.aoutput)(out, this); + this.finished = true; + const { buffer, view, blockLen, isLE } = this; + let { pos } = this; + buffer[pos++] = 128; + (0, utils_ts_1.clean)(this.buffer.subarray(pos)); + if (this.padOffset > blockLen - pos) { + this.process(view, 0); + pos = 0; + } + for (let i = pos; i < blockLen; i++) + buffer[i] = 0; + setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE); + this.process(view, 0); + const oview = (0, utils_ts_1.createView)(out); + const len = this.outputLen; + if (len % 4) + throw new Error("_sha2: outputLen should be aligned to 32bit"); + const outLen = len / 4; + const state = this.get(); + if (outLen > state.length) + throw new Error("_sha2: outputLen bigger than state"); + for (let i = 0; i < outLen; i++) + oview.setUint32(4 * i, state[i], isLE); + } + digest() { + const { buffer, outputLen } = this; + this.digestInto(buffer); + const res = buffer.slice(0, outputLen); + this.destroy(); + return res; + } + _cloneInto(to) { + to || (to = new this.constructor()); + to.set(...this.get()); + const { blockLen, buffer, length, finished, destroyed, pos } = this; + to.destroyed = destroyed; + to.finished = finished; + to.length = length; + to.pos = pos; + if (length % blockLen) + to.buffer.set(buffer); + return to; + } + clone() { + return this._cloneInto(); + } + }; + exports2.HashMD = HashMD; + exports2.SHA256_IV = Uint32Array.from([ + 1779033703, + 3144134277, + 1013904242, + 2773480762, + 1359893119, + 2600822924, + 528734635, + 1541459225 + ]); + exports2.SHA224_IV = Uint32Array.from([ + 3238371032, + 914150663, + 812702999, + 4144912697, + 4290775857, + 1750603025, + 1694076839, + 3204075428 + ]); + exports2.SHA384_IV = Uint32Array.from([ + 3418070365, + 3238371032, + 1654270250, + 914150663, + 2438529370, + 812702999, + 355462360, + 4144912697, + 1731405415, + 4290775857, + 2394180231, + 1750603025, + 3675008525, + 1694076839, + 1203062813, + 3204075428 + ]); + exports2.SHA512_IV = Uint32Array.from([ + 1779033703, + 4089235720, + 3144134277, + 2227873595, + 1013904242, + 4271175723, + 2773480762, + 1595750129, + 1359893119, + 2917565137, + 2600822924, + 725511199, + 528734635, + 4215389547, + 1541459225, + 327033209 + ]); + } +}); + +// node_modules/@noble/hashes/_u64.js +var require_u64 = __commonJS({ + "node_modules/@noble/hashes/_u64.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.toBig = exports2.shrSL = exports2.shrSH = exports2.rotrSL = exports2.rotrSH = exports2.rotrBL = exports2.rotrBH = exports2.rotr32L = exports2.rotr32H = exports2.rotlSL = exports2.rotlSH = exports2.rotlBL = exports2.rotlBH = exports2.add5L = exports2.add5H = exports2.add4L = exports2.add4H = exports2.add3L = exports2.add3H = void 0; + exports2.add = add; + exports2.fromBig = fromBig; + exports2.split = split; + var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1); + var _32n = /* @__PURE__ */ BigInt(32); + function fromBig(n, le = false) { + if (le) + return { h: Number(n & U32_MASK64), l: Number(n >> _32n & U32_MASK64) }; + return { h: Number(n >> _32n & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 }; + } + function split(lst, le = false) { + const len = lst.length; + let Ah = new Uint32Array(len); + let Al = new Uint32Array(len); + for (let i = 0; i < len; i++) { + const { h, l } = fromBig(lst[i], le); + [Ah[i], Al[i]] = [h, l]; + } + return [Ah, Al]; + } + var toBig = (h, l) => BigInt(h >>> 0) << _32n | BigInt(l >>> 0); + exports2.toBig = toBig; + var shrSH = (h, _l, s) => h >>> s; + exports2.shrSH = shrSH; + var shrSL = (h, l, s) => h << 32 - s | l >>> s; + exports2.shrSL = shrSL; + var rotrSH = (h, l, s) => h >>> s | l << 32 - s; + exports2.rotrSH = rotrSH; + var rotrSL = (h, l, s) => h << 32 - s | l >>> s; + exports2.rotrSL = rotrSL; + var rotrBH = (h, l, s) => h << 64 - s | l >>> s - 32; + exports2.rotrBH = rotrBH; + var rotrBL = (h, l, s) => h >>> s - 32 | l << 64 - s; + exports2.rotrBL = rotrBL; + var rotr32H = (_h, l) => l; + exports2.rotr32H = rotr32H; + var rotr32L = (h, _l) => h; + exports2.rotr32L = rotr32L; + var rotlSH = (h, l, s) => h << s | l >>> 32 - s; + exports2.rotlSH = rotlSH; + var rotlSL = (h, l, s) => l << s | h >>> 32 - s; + exports2.rotlSL = rotlSL; + var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s; + exports2.rotlBH = rotlBH; + var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s; + exports2.rotlBL = rotlBL; + function add(Ah, Al, Bh, Bl) { + const l = (Al >>> 0) + (Bl >>> 0); + return { h: Ah + Bh + (l / 2 ** 32 | 0) | 0, l: l | 0 }; + } + var add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0); + exports2.add3L = add3L; + var add3H = (low, Ah, Bh, Ch) => Ah + Bh + Ch + (low / 2 ** 32 | 0) | 0; + exports2.add3H = add3H; + var add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0); + exports2.add4L = add4L; + var add4H = (low, Ah, Bh, Ch, Dh) => Ah + Bh + Ch + Dh + (low / 2 ** 32 | 0) | 0; + exports2.add4H = add4H; + var add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0); + exports2.add5L = add5L; + var add5H = (low, Ah, Bh, Ch, Dh, Eh) => Ah + Bh + Ch + Dh + Eh + (low / 2 ** 32 | 0) | 0; + exports2.add5H = add5H; + var u6415 = { + fromBig, + split, + toBig, + shrSH, + shrSL, + rotrSH, + rotrSL, + rotrBH, + rotrBL, + rotr32H, + rotr32L, + rotlSH, + rotlSL, + rotlBH, + rotlBL, + add, + add3L, + add3H, + add4L, + add4H, + add5H, + add5L + }; + exports2.default = u6415; + } +}); + +// node_modules/@noble/hashes/sha2.js +var require_sha2 = __commonJS({ + "node_modules/@noble/hashes/sha2.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sha512_224 = exports2.sha512_256 = exports2.sha384 = exports2.sha512 = exports2.sha224 = exports2.sha256 = exports2.SHA512_256 = exports2.SHA512_224 = exports2.SHA384 = exports2.SHA512 = exports2.SHA224 = exports2.SHA256 = void 0; + var _md_ts_1 = require_md(); + var u6415 = require_u64(); + var utils_ts_1 = require_utils3(); + var SHA256_K = /* @__PURE__ */ Uint32Array.from([ + 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 + ]); + var SHA256_W = /* @__PURE__ */ new Uint32Array(64); + var SHA256 = class extends _md_ts_1.HashMD { + constructor(outputLen = 32) { + super(64, outputLen, 8, false); + this.A = _md_ts_1.SHA256_IV[0] | 0; + this.B = _md_ts_1.SHA256_IV[1] | 0; + this.C = _md_ts_1.SHA256_IV[2] | 0; + this.D = _md_ts_1.SHA256_IV[3] | 0; + this.E = _md_ts_1.SHA256_IV[4] | 0; + this.F = _md_ts_1.SHA256_IV[5] | 0; + this.G = _md_ts_1.SHA256_IV[6] | 0; + this.H = _md_ts_1.SHA256_IV[7] | 0; + } + get() { + const { A, B, C, D, E, F, G, H } = this; + return [A, B, C, D, E, F, G, H]; + } + // prettier-ignore + set(A, B, C, D, E, F, G, H) { + this.A = A | 0; + this.B = B | 0; + this.C = C | 0; + this.D = D | 0; + this.E = E | 0; + this.F = F | 0; + this.G = G | 0; + this.H = H | 0; + } + process(view, offset) { + for (let i = 0; i < 16; i++, offset += 4) + SHA256_W[i] = view.getUint32(offset, false); + for (let i = 16; i < 64; i++) { + const W15 = SHA256_W[i - 15]; + const W2 = SHA256_W[i - 2]; + const s0 = (0, utils_ts_1.rotr)(W15, 7) ^ (0, utils_ts_1.rotr)(W15, 18) ^ W15 >>> 3; + const s1 = (0, utils_ts_1.rotr)(W2, 17) ^ (0, utils_ts_1.rotr)(W2, 19) ^ W2 >>> 10; + SHA256_W[i] = s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16] | 0; + } + let { A, B, C, D, E, F, G, H } = this; + for (let i = 0; i < 64; i++) { + const sigma1 = (0, utils_ts_1.rotr)(E, 6) ^ (0, utils_ts_1.rotr)(E, 11) ^ (0, utils_ts_1.rotr)(E, 25); + const T1 = H + sigma1 + (0, _md_ts_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i] | 0; + const sigma0 = (0, utils_ts_1.rotr)(A, 2) ^ (0, utils_ts_1.rotr)(A, 13) ^ (0, utils_ts_1.rotr)(A, 22); + const T2 = sigma0 + (0, _md_ts_1.Maj)(A, B, C) | 0; + H = G; + G = F; + F = E; + E = D + T1 | 0; + D = C; + C = B; + B = A; + A = T1 + T2 | 0; + } + A = A + this.A | 0; + B = B + this.B | 0; + C = C + this.C | 0; + D = D + this.D | 0; + E = E + this.E | 0; + F = F + this.F | 0; + G = G + this.G | 0; + H = H + this.H | 0; + this.set(A, B, C, D, E, F, G, H); + } + roundClean() { + (0, utils_ts_1.clean)(SHA256_W); + } + destroy() { + this.set(0, 0, 0, 0, 0, 0, 0, 0); + (0, utils_ts_1.clean)(this.buffer); + } + }; + exports2.SHA256 = SHA256; + var SHA224 = class extends SHA256 { + constructor() { + super(28); + this.A = _md_ts_1.SHA224_IV[0] | 0; + this.B = _md_ts_1.SHA224_IV[1] | 0; + this.C = _md_ts_1.SHA224_IV[2] | 0; + this.D = _md_ts_1.SHA224_IV[3] | 0; + this.E = _md_ts_1.SHA224_IV[4] | 0; + this.F = _md_ts_1.SHA224_IV[5] | 0; + this.G = _md_ts_1.SHA224_IV[6] | 0; + this.H = _md_ts_1.SHA224_IV[7] | 0; + } + }; + exports2.SHA224 = SHA224; + var K512 = /* @__PURE__ */ (() => u6415.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))))(); + var SHA512_Kh = /* @__PURE__ */ (() => K512[0])(); + var SHA512_Kl = /* @__PURE__ */ (() => K512[1])(); + var SHA512_W_H = /* @__PURE__ */ new Uint32Array(80); + var SHA512_W_L = /* @__PURE__ */ new Uint32Array(80); + var SHA512 = class extends _md_ts_1.HashMD { + constructor(outputLen = 64) { + super(128, outputLen, 16, false); + this.Ah = _md_ts_1.SHA512_IV[0] | 0; + this.Al = _md_ts_1.SHA512_IV[1] | 0; + this.Bh = _md_ts_1.SHA512_IV[2] | 0; + this.Bl = _md_ts_1.SHA512_IV[3] | 0; + this.Ch = _md_ts_1.SHA512_IV[4] | 0; + this.Cl = _md_ts_1.SHA512_IV[5] | 0; + this.Dh = _md_ts_1.SHA512_IV[6] | 0; + this.Dl = _md_ts_1.SHA512_IV[7] | 0; + this.Eh = _md_ts_1.SHA512_IV[8] | 0; + this.El = _md_ts_1.SHA512_IV[9] | 0; + this.Fh = _md_ts_1.SHA512_IV[10] | 0; + this.Fl = _md_ts_1.SHA512_IV[11] | 0; + this.Gh = _md_ts_1.SHA512_IV[12] | 0; + this.Gl = _md_ts_1.SHA512_IV[13] | 0; + this.Hh = _md_ts_1.SHA512_IV[14] | 0; + this.Hl = _md_ts_1.SHA512_IV[15] | 0; + } + // prettier-ignore + get() { + const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this; + return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl]; + } + // prettier-ignore + set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) { + this.Ah = Ah | 0; + this.Al = Al | 0; + this.Bh = Bh | 0; + this.Bl = Bl | 0; + this.Ch = Ch | 0; + this.Cl = Cl | 0; + this.Dh = Dh | 0; + this.Dl = Dl | 0; + this.Eh = Eh | 0; + this.El = El | 0; + this.Fh = Fh | 0; + this.Fl = Fl | 0; + this.Gh = Gh | 0; + this.Gl = Gl | 0; + this.Hh = Hh | 0; + this.Hl = Hl | 0; + } + process(view, offset) { + for (let i = 0; i < 16; i++, offset += 4) { + SHA512_W_H[i] = view.getUint32(offset); + SHA512_W_L[i] = view.getUint32(offset += 4); + } + for (let i = 16; i < 80; i++) { + const W15h = SHA512_W_H[i - 15] | 0; + const W15l = SHA512_W_L[i - 15] | 0; + const s0h = u6415.rotrSH(W15h, W15l, 1) ^ u6415.rotrSH(W15h, W15l, 8) ^ u6415.shrSH(W15h, W15l, 7); + const s0l = u6415.rotrSL(W15h, W15l, 1) ^ u6415.rotrSL(W15h, W15l, 8) ^ u6415.shrSL(W15h, W15l, 7); + const W2h = SHA512_W_H[i - 2] | 0; + const W2l = SHA512_W_L[i - 2] | 0; + const s1h = u6415.rotrSH(W2h, W2l, 19) ^ u6415.rotrBH(W2h, W2l, 61) ^ u6415.shrSH(W2h, W2l, 6); + const s1l = u6415.rotrSL(W2h, W2l, 19) ^ u6415.rotrBL(W2h, W2l, 61) ^ u6415.shrSL(W2h, W2l, 6); + const SUMl = u6415.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]); + const SUMh = u6415.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]); + SHA512_W_H[i] = SUMh | 0; + SHA512_W_L[i] = SUMl | 0; + } + let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this; + for (let i = 0; i < 80; i++) { + const sigma1h = u6415.rotrSH(Eh, El, 14) ^ u6415.rotrSH(Eh, El, 18) ^ u6415.rotrBH(Eh, El, 41); + const sigma1l = u6415.rotrSL(Eh, El, 14) ^ u6415.rotrSL(Eh, El, 18) ^ u6415.rotrBL(Eh, El, 41); + const CHIh = Eh & Fh ^ ~Eh & Gh; + const CHIl = El & Fl ^ ~El & Gl; + const T1ll = u6415.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]); + const T1h = u6415.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]); + const T1l = T1ll | 0; + const sigma0h = u6415.rotrSH(Ah, Al, 28) ^ u6415.rotrBH(Ah, Al, 34) ^ u6415.rotrBH(Ah, Al, 39); + const sigma0l = u6415.rotrSL(Ah, Al, 28) ^ u6415.rotrBL(Ah, Al, 34) ^ u6415.rotrBL(Ah, Al, 39); + const MAJh = Ah & Bh ^ Ah & Ch ^ Bh & Ch; + const MAJl = Al & Bl ^ Al & Cl ^ Bl & Cl; + Hh = Gh | 0; + Hl = Gl | 0; + Gh = Fh | 0; + Gl = Fl | 0; + Fh = Eh | 0; + Fl = El | 0; + ({ h: Eh, l: El } = u6415.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0)); + Dh = Ch | 0; + Dl = Cl | 0; + Ch = Bh | 0; + Cl = Bl | 0; + Bh = Ah | 0; + Bl = Al | 0; + const All = u6415.add3L(T1l, sigma0l, MAJl); + Ah = u6415.add3H(All, T1h, sigma0h, MAJh); + Al = All | 0; + } + ({ h: Ah, l: Al } = u6415.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0)); + ({ h: Bh, l: Bl } = u6415.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0)); + ({ h: Ch, l: Cl } = u6415.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0)); + ({ h: Dh, l: Dl } = u6415.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0)); + ({ h: Eh, l: El } = u6415.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0)); + ({ h: Fh, l: Fl } = u6415.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0)); + ({ h: Gh, l: Gl } = u6415.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0)); + ({ h: Hh, l: Hl } = u6415.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0)); + this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl); + } + roundClean() { + (0, utils_ts_1.clean)(SHA512_W_H, SHA512_W_L); + } + destroy() { + (0, utils_ts_1.clean)(this.buffer); + this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + } + }; + exports2.SHA512 = SHA512; + var SHA384 = class extends SHA512 { + constructor() { + super(48); + this.Ah = _md_ts_1.SHA384_IV[0] | 0; + this.Al = _md_ts_1.SHA384_IV[1] | 0; + this.Bh = _md_ts_1.SHA384_IV[2] | 0; + this.Bl = _md_ts_1.SHA384_IV[3] | 0; + this.Ch = _md_ts_1.SHA384_IV[4] | 0; + this.Cl = _md_ts_1.SHA384_IV[5] | 0; + this.Dh = _md_ts_1.SHA384_IV[6] | 0; + this.Dl = _md_ts_1.SHA384_IV[7] | 0; + this.Eh = _md_ts_1.SHA384_IV[8] | 0; + this.El = _md_ts_1.SHA384_IV[9] | 0; + this.Fh = _md_ts_1.SHA384_IV[10] | 0; + this.Fl = _md_ts_1.SHA384_IV[11] | 0; + this.Gh = _md_ts_1.SHA384_IV[12] | 0; + this.Gl = _md_ts_1.SHA384_IV[13] | 0; + this.Hh = _md_ts_1.SHA384_IV[14] | 0; + this.Hl = _md_ts_1.SHA384_IV[15] | 0; + } + }; + exports2.SHA384 = SHA384; + var T224_IV = /* @__PURE__ */ Uint32Array.from([ + 2352822216, + 424955298, + 1944164710, + 2312950998, + 502970286, + 855612546, + 1738396948, + 1479516111, + 258812777, + 2077511080, + 2011393907, + 79989058, + 1067287976, + 1780299464, + 286451373, + 2446758561 + ]); + var T256_IV = /* @__PURE__ */ Uint32Array.from([ + 573645204, + 4230739756, + 2673172387, + 3360449730, + 596883563, + 1867755857, + 2520282905, + 1497426621, + 2519219938, + 2827943907, + 3193839141, + 1401305490, + 721525244, + 746961066, + 246885852, + 2177182882 + ]); + var SHA512_224 = class extends SHA512 { + constructor() { + super(28); + this.Ah = T224_IV[0] | 0; + this.Al = T224_IV[1] | 0; + this.Bh = T224_IV[2] | 0; + this.Bl = T224_IV[3] | 0; + this.Ch = T224_IV[4] | 0; + this.Cl = T224_IV[5] | 0; + this.Dh = T224_IV[6] | 0; + this.Dl = T224_IV[7] | 0; + this.Eh = T224_IV[8] | 0; + this.El = T224_IV[9] | 0; + this.Fh = T224_IV[10] | 0; + this.Fl = T224_IV[11] | 0; + this.Gh = T224_IV[12] | 0; + this.Gl = T224_IV[13] | 0; + this.Hh = T224_IV[14] | 0; + this.Hl = T224_IV[15] | 0; + } + }; + exports2.SHA512_224 = SHA512_224; + var SHA512_256 = class extends SHA512 { + constructor() { + super(32); + this.Ah = T256_IV[0] | 0; + this.Al = T256_IV[1] | 0; + this.Bh = T256_IV[2] | 0; + this.Bl = T256_IV[3] | 0; + this.Ch = T256_IV[4] | 0; + this.Cl = T256_IV[5] | 0; + this.Dh = T256_IV[6] | 0; + this.Dl = T256_IV[7] | 0; + this.Eh = T256_IV[8] | 0; + this.El = T256_IV[9] | 0; + this.Fh = T256_IV[10] | 0; + this.Fl = T256_IV[11] | 0; + this.Gh = T256_IV[12] | 0; + this.Gl = T256_IV[13] | 0; + this.Hh = T256_IV[14] | 0; + this.Hl = T256_IV[15] | 0; + } + }; + exports2.SHA512_256 = SHA512_256; + exports2.sha256 = (0, utils_ts_1.createHasher)(() => new SHA256()); + exports2.sha224 = (0, utils_ts_1.createHasher)(() => new SHA224()); + exports2.sha512 = (0, utils_ts_1.createHasher)(() => new SHA512()); + exports2.sha384 = (0, utils_ts_1.createHasher)(() => new SHA384()); + exports2.sha512_256 = (0, utils_ts_1.createHasher)(() => new SHA512_256()); + exports2.sha512_224 = (0, utils_ts_1.createHasher)(() => new SHA512_224()); + } +}); + +// node_modules/@noble/curves/abstract/utils.js +var require_utils4 = __commonJS({ + "node_modules/@noble/curves/abstract/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.notImplemented = exports2.bitMask = void 0; + exports2.isBytes = isBytes; + exports2.abytes = abytes; + exports2.abool = abool; + exports2.numberToHexUnpadded = numberToHexUnpadded; + exports2.hexToNumber = hexToNumber; + exports2.bytesToHex = bytesToHex; + exports2.hexToBytes = hexToBytes; + exports2.bytesToNumberBE = bytesToNumberBE; + exports2.bytesToNumberLE = bytesToNumberLE; + exports2.numberToBytesBE = numberToBytesBE; + exports2.numberToBytesLE = numberToBytesLE; + exports2.numberToVarBytesBE = numberToVarBytesBE; + exports2.ensureBytes = ensureBytes; + exports2.concatBytes = concatBytes; + exports2.equalBytes = equalBytes; + exports2.utf8ToBytes = utf8ToBytes; + exports2.inRange = inRange; + exports2.aInRange = aInRange; + exports2.bitLen = bitLen; + exports2.bitGet = bitGet; + exports2.bitSet = bitSet; + exports2.createHmacDrbg = createHmacDrbg; + exports2.validateObject = validateObject; + exports2.memoized = memoized; + var _0n = /* @__PURE__ */ BigInt(0); + var _1n = /* @__PURE__ */ BigInt(1); + function isBytes(a) { + return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array"; + } + function abytes(item) { + if (!isBytes(item)) + throw new Error("Uint8Array expected"); + } + function abool(title, value) { + if (typeof value !== "boolean") + throw new Error(title + " boolean expected, got " + value); + } + function numberToHexUnpadded(num) { + const hex = num.toString(16); + return hex.length & 1 ? "0" + hex : hex; + } + function hexToNumber(hex) { + if (typeof hex !== "string") + throw new Error("hex string expected, got " + typeof hex); + return hex === "" ? _0n : BigInt("0x" + hex); + } + var hasHexBuiltin = ( + // @ts-ignore + typeof Uint8Array.from([]).toHex === "function" && typeof Uint8Array.fromHex === "function" + ); + var hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0")); + function bytesToHex(bytes7) { + abytes(bytes7); + if (hasHexBuiltin) + return bytes7.toHex(); + let hex = ""; + for (let i = 0; i < bytes7.length; i++) { + hex += hexes[bytes7[i]]; + } + return hex; + } + var asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; + function asciiToBase16(ch) { + if (ch >= asciis._0 && ch <= asciis._9) + return ch - asciis._0; + if (ch >= asciis.A && ch <= asciis.F) + return ch - (asciis.A - 10); + if (ch >= asciis.a && ch <= asciis.f) + return ch - (asciis.a - 10); + return; + } + function hexToBytes(hex) { + if (typeof hex !== "string") + throw new Error("hex string expected, got " + typeof hex); + if (hasHexBuiltin) + return Uint8Array.fromHex(hex); + const hl = hex.length; + const al = hl / 2; + if (hl % 2) + throw new Error("hex string expected, got unpadded hex of length " + hl); + const array11 = new Uint8Array(al); + for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) { + const n1 = asciiToBase16(hex.charCodeAt(hi)); + const n2 = asciiToBase16(hex.charCodeAt(hi + 1)); + if (n1 === void 0 || n2 === void 0) { + const char = hex[hi] + hex[hi + 1]; + throw new Error('hex string expected, got non-hex character "' + char + '" at index ' + hi); + } + array11[ai] = n1 * 16 + n2; + } + return array11; + } + function bytesToNumberBE(bytes7) { + return hexToNumber(bytesToHex(bytes7)); + } + function bytesToNumberLE(bytes7) { + abytes(bytes7); + return hexToNumber(bytesToHex(Uint8Array.from(bytes7).reverse())); + } + function numberToBytesBE(n, len) { + return hexToBytes(n.toString(16).padStart(len * 2, "0")); + } + function numberToBytesLE(n, len) { + return numberToBytesBE(n, len).reverse(); + } + function numberToVarBytesBE(n) { + return hexToBytes(numberToHexUnpadded(n)); + } + function ensureBytes(title, hex, expectedLength) { + let res; + if (typeof hex === "string") { + try { + res = hexToBytes(hex); + } catch (e) { + throw new Error(title + " must be hex string or Uint8Array, cause: " + e); + } + } else if (isBytes(hex)) { + res = Uint8Array.from(hex); + } else { + throw new Error(title + " must be hex string or Uint8Array"); + } + const len = res.length; + if (typeof expectedLength === "number" && len !== expectedLength) + throw new Error(title + " of length " + expectedLength + " expected, got " + len); + return res; + } + function concatBytes(...arrays) { + let sum = 0; + for (let i = 0; i < arrays.length; i++) { + const a = arrays[i]; + abytes(a); + sum += a.length; + } + const res = new Uint8Array(sum); + for (let i = 0, pad = 0; i < arrays.length; i++) { + const a = arrays[i]; + res.set(a, pad); + pad += a.length; + } + return res; + } + function equalBytes(a, b) { + if (a.length !== b.length) + return false; + let diff = 0; + for (let i = 0; i < a.length; i++) + diff |= a[i] ^ b[i]; + return diff === 0; + } + function utf8ToBytes(str) { + if (typeof str !== "string") + throw new Error("string expected"); + return new Uint8Array(new TextEncoder().encode(str)); + } + var isPosBig = (n) => typeof n === "bigint" && _0n <= n; + function inRange(n, min, max) { + return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max; + } + function aInRange(title, n, min, max) { + if (!inRange(n, min, max)) + throw new Error("expected valid " + title + ": " + min + " <= n < " + max + ", got " + n); + } + function bitLen(n) { + let len; + for (len = 0; n > _0n; n >>= _1n, len += 1) + ; + return len; + } + function bitGet(n, pos) { + return n >> BigInt(pos) & _1n; + } + function bitSet(n, pos, value) { + return n | (value ? _1n : _0n) << BigInt(pos); + } + var bitMask = (n) => (_1n << BigInt(n)) - _1n; + exports2.bitMask = bitMask; + var u8n = (len) => new Uint8Array(len); + var u8fr = (arr) => Uint8Array.from(arr); + function createHmacDrbg(hashLen, qByteLen, hmacFn) { + if (typeof hashLen !== "number" || hashLen < 2) + throw new Error("hashLen must be a number"); + if (typeof qByteLen !== "number" || qByteLen < 2) + throw new Error("qByteLen must be a number"); + if (typeof hmacFn !== "function") + throw new Error("hmacFn must be a function"); + let v = u8n(hashLen); + let k = u8n(hashLen); + let i = 0; + const reset = () => { + v.fill(1); + k.fill(0); + i = 0; + }; + const h = (...b) => hmacFn(k, v, ...b); + const reseed = (seed = u8n(0)) => { + k = h(u8fr([0]), seed); + v = h(); + if (seed.length === 0) + return; + k = h(u8fr([1]), seed); + v = h(); + }; + const gen = () => { + if (i++ >= 1e3) + throw new Error("drbg: tried 1000 values"); + let len = 0; + const out = []; + while (len < qByteLen) { + v = h(); + const sl = v.slice(); + out.push(sl); + len += v.length; + } + return concatBytes(...out); + }; + const genUntil = (seed, pred) => { + reset(); + reseed(seed); + let res = void 0; + while (!(res = pred(gen()))) + reseed(); + reset(); + return res; + }; + return genUntil; + } + var validatorFns = { + bigint: (val) => typeof val === "bigint", + function: (val) => typeof val === "function", + boolean: (val) => typeof val === "boolean", + string: (val) => typeof val === "string", + stringOrUint8Array: (val) => typeof val === "string" || isBytes(val), + isSafeInteger: (val) => Number.isSafeInteger(val), + array: (val) => Array.isArray(val), + field: (val, object) => object.Fp.isValid(val), + hash: (val) => typeof val === "function" && Number.isSafeInteger(val.outputLen) + }; + function validateObject(object, validators, optValidators = {}) { + const checkField = (fieldName, type, isOptional) => { + const checkVal = validatorFns[type]; + if (typeof checkVal !== "function") + throw new Error("invalid validator function"); + const val = object[fieldName]; + if (isOptional && val === void 0) + return; + if (!checkVal(val, object)) { + throw new Error("param " + String(fieldName) + " is invalid. Expected " + type + ", got " + val); + } + }; + for (const [fieldName, type] of Object.entries(validators)) + checkField(fieldName, type, false); + for (const [fieldName, type] of Object.entries(optValidators)) + checkField(fieldName, type, true); + return object; + } + var notImplemented = () => { + throw new Error("not implemented"); + }; + exports2.notImplemented = notImplemented; + function memoized(fn) { + const map = /* @__PURE__ */ new WeakMap(); + return (arg, ...args) => { + const val = map.get(arg); + if (val !== void 0) + return val; + const computed = fn(arg, ...args); + map.set(arg, computed); + return computed; + }; + } + } +}); + +// node_modules/@noble/curves/abstract/modular.js +var require_modular = __commonJS({ + "node_modules/@noble/curves/abstract/modular.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isNegativeLE = void 0; + exports2.mod = mod; + exports2.pow = pow; + exports2.pow2 = pow2; + exports2.invert = invert; + exports2.tonelliShanks = tonelliShanks; + exports2.FpSqrt = FpSqrt; + exports2.validateField = validateField; + exports2.FpPow = FpPow; + exports2.FpInvertBatch = FpInvertBatch; + exports2.FpDiv = FpDiv; + exports2.FpLegendre = FpLegendre; + exports2.FpIsSquare = FpIsSquare; + exports2.nLength = nLength; + exports2.Field = Field; + exports2.FpSqrtOdd = FpSqrtOdd; + exports2.FpSqrtEven = FpSqrtEven; + exports2.hashToPrivateScalar = hashToPrivateScalar; + exports2.getFieldBytesLength = getFieldBytesLength; + exports2.getMinHashLength = getMinHashLength; + exports2.mapHashToField = mapHashToField; + var utils_1 = require_utils3(); + var utils_ts_1 = require_utils4(); + var _0n = BigInt(0); + var _1n = BigInt(1); + var _2n = /* @__PURE__ */ BigInt(2); + var _3n = /* @__PURE__ */ BigInt(3); + var _4n = /* @__PURE__ */ BigInt(4); + var _5n = /* @__PURE__ */ BigInt(5); + var _8n = /* @__PURE__ */ BigInt(8); + var _9n = /* @__PURE__ */ BigInt(9); + var _16n = /* @__PURE__ */ BigInt(16); + function mod(a, b) { + const result = a % b; + return result >= _0n ? result : b + result; + } + function pow(num, power, modulo) { + if (power < _0n) + throw new Error("invalid exponent, negatives unsupported"); + if (modulo <= _0n) + throw new Error("invalid modulus"); + if (modulo === _1n) + return _0n; + let res = _1n; + while (power > _0n) { + if (power & _1n) + res = res * num % modulo; + num = num * num % modulo; + power >>= _1n; + } + return res; + } + function pow2(x, power, modulo) { + let res = x; + while (power-- > _0n) { + res *= res; + res %= modulo; + } + return res; + } + function invert(number, modulo) { + if (number === _0n) + throw new Error("invert: expected non-zero number"); + if (modulo <= _0n) + throw new Error("invert: expected positive modulus, got " + modulo); + let a = mod(number, modulo); + let b = modulo; + let x = _0n, y = _1n, u = _1n, v = _0n; + while (a !== _0n) { + const q = b / a; + const r = b % a; + const m = x - u * q; + const n = y - v * q; + b = a, a = r, x = u, y = v, u = m, v = n; + } + const gcd = b; + if (gcd !== _1n) + throw new Error("invert: does not exist"); + return mod(x, modulo); + } + function tonelliShanks(P) { + let Q = P - _1n; + let S = 0; + while (Q % _2n === _0n) { + Q /= _2n; + S++; + } + let Z = _2n; + const _Fp = Field(P); + while (Z < P && FpIsSquare(_Fp, Z)) { + if (Z++ > 1e3) + throw new Error("Cannot find square root: probably non-prime P"); + } + if (S === 1) { + const p1div4 = (P + _1n) / _4n; + return function tonelliFast(Fp, n) { + const root2 = Fp.pow(n, p1div4); + if (!Fp.eql(Fp.sqr(root2), n)) + throw new Error("Cannot find square root"); + return root2; + }; + } + const Q1div2 = (Q + _1n) / _2n; + return function tonelliSlow(Fp, n) { + if (!FpIsSquare(Fp, n)) + throw new Error("Cannot find square root"); + let r = S; + let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); + let x = Fp.pow(n, Q1div2); + let b = Fp.pow(n, Q); + while (!Fp.eql(b, Fp.ONE)) { + if (Fp.eql(b, Fp.ZERO)) + return Fp.ZERO; + let m = 1; + for (let t2 = Fp.sqr(b); m < r; m++) { + if (Fp.eql(t2, Fp.ONE)) + break; + t2 = Fp.sqr(t2); + } + const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); + g = Fp.sqr(ge); + x = Fp.mul(x, ge); + b = Fp.mul(b, g); + r = m; + } + return x; + }; + } + function FpSqrt(P) { + if (P % _4n === _3n) { + return function sqrt3mod4(Fp, n) { + const p1div4 = (P + _1n) / _4n; + const root2 = Fp.pow(n, p1div4); + if (!Fp.eql(Fp.sqr(root2), n)) + throw new Error("Cannot find square root"); + return root2; + }; + } + if (P % _8n === _5n) { + return function sqrt5mod8(Fp, n) { + const n2 = Fp.mul(n, _2n); + const c1 = (P - _5n) / _8n; + const v = Fp.pow(n2, c1); + const nv = Fp.mul(n, v); + const i = Fp.mul(Fp.mul(nv, _2n), v); + const root2 = Fp.mul(nv, Fp.sub(i, Fp.ONE)); + if (!Fp.eql(Fp.sqr(root2), n)) + throw new Error("Cannot find square root"); + return root2; + }; + } + if (P % _16n === _9n) { + } + return tonelliShanks(P); + } + var isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n; + exports2.isNegativeLE = isNegativeLE; + var FIELD_FIELDS = [ + "create", + "isValid", + "is0", + "neg", + "inv", + "sqrt", + "sqr", + "eql", + "add", + "sub", + "mul", + "pow", + "div", + "addN", + "subN", + "mulN", + "sqrN" + ]; + function validateField(field) { + const initial = { + ORDER: "bigint", + MASK: "bigint", + BYTES: "isSafeInteger", + BITS: "isSafeInteger" + }; + const opts = FIELD_FIELDS.reduce((map, val) => { + map[val] = "function"; + return map; + }, initial); + return (0, utils_ts_1.validateObject)(field, opts); + } + function FpPow(Fp, num, power) { + if (power < _0n) + throw new Error("invalid exponent, negatives unsupported"); + if (power === _0n) + return Fp.ONE; + if (power === _1n) + return num; + let p = Fp.ONE; + let d = num; + while (power > _0n) { + if (power & _1n) + p = Fp.mul(p, d); + d = Fp.sqr(d); + power >>= _1n; + } + return p; + } + function FpInvertBatch(Fp, nums, passZero = false) { + const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : void 0); + const multipliedAcc = nums.reduce((acc, num, i) => { + if (Fp.is0(num)) + return acc; + inverted[i] = acc; + return Fp.mul(acc, num); + }, Fp.ONE); + const invertedAcc = Fp.inv(multipliedAcc); + nums.reduceRight((acc, num, i) => { + if (Fp.is0(num)) + return acc; + inverted[i] = Fp.mul(acc, inverted[i]); + return Fp.mul(acc, num); + }, invertedAcc); + return inverted; + } + function FpDiv(Fp, lhs, rhs) { + return Fp.mul(lhs, typeof rhs === "bigint" ? invert(rhs, Fp.ORDER) : Fp.inv(rhs)); + } + function FpLegendre(Fp, n) { + const legc = (Fp.ORDER - _1n) / _2n; + const powered = Fp.pow(n, legc); + const yes = Fp.eql(powered, Fp.ONE); + const zero = Fp.eql(powered, Fp.ZERO); + const no = Fp.eql(powered, Fp.neg(Fp.ONE)); + if (!yes && !zero && !no) + throw new Error("Cannot find square root: probably non-prime P"); + return yes ? 1 : zero ? 0 : -1; + } + function FpIsSquare(Fp, n) { + const l = FpLegendre(Fp, n); + return l === 0 || l === 1; + } + function nLength(n, nBitLength) { + if (nBitLength !== void 0) + (0, utils_1.anumber)(nBitLength); + const _nBitLength = nBitLength !== void 0 ? nBitLength : n.toString(2).length; + const nByteLength = Math.ceil(_nBitLength / 8); + return { nBitLength: _nBitLength, nByteLength }; + } + function Field(ORDER, bitLen, isLE = false, redef = {}) { + if (ORDER <= _0n) + throw new Error("invalid field: expected ORDER > 0, got " + ORDER); + const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen); + if (BYTES > 2048) + throw new Error("invalid field: expected ORDER of <= 2048 bytes"); + let sqrtP; + const f = Object.freeze({ + ORDER, + isLE, + BITS, + BYTES, + MASK: (0, utils_ts_1.bitMask)(BITS), + ZERO: _0n, + ONE: _1n, + create: (num) => mod(num, ORDER), + isValid: (num) => { + if (typeof num !== "bigint") + throw new Error("invalid field element: expected bigint, got " + typeof num); + return _0n <= num && num < ORDER; + }, + is0: (num) => num === _0n, + isOdd: (num) => (num & _1n) === _1n, + neg: (num) => mod(-num, ORDER), + eql: (lhs, rhs) => lhs === rhs, + sqr: (num) => mod(num * num, ORDER), + add: (lhs, rhs) => mod(lhs + rhs, ORDER), + sub: (lhs, rhs) => mod(lhs - rhs, ORDER), + mul: (lhs, rhs) => mod(lhs * rhs, ORDER), + pow: (num, power) => FpPow(f, num, power), + div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER), + // Same as above, but doesn't normalize + sqrN: (num) => num * num, + addN: (lhs, rhs) => lhs + rhs, + subN: (lhs, rhs) => lhs - rhs, + mulN: (lhs, rhs) => lhs * rhs, + inv: (num) => invert(num, ORDER), + sqrt: redef.sqrt || ((n) => { + if (!sqrtP) + sqrtP = FpSqrt(ORDER); + return sqrtP(f, n); + }), + toBytes: (num) => isLE ? (0, utils_ts_1.numberToBytesLE)(num, BYTES) : (0, utils_ts_1.numberToBytesBE)(num, BYTES), + fromBytes: (bytes7) => { + if (bytes7.length !== BYTES) + throw new Error("Field.fromBytes: expected " + BYTES + " bytes, got " + bytes7.length); + return isLE ? (0, utils_ts_1.bytesToNumberLE)(bytes7) : (0, utils_ts_1.bytesToNumberBE)(bytes7); + }, + // TODO: we don't need it here, move out to separate fn + invertBatch: (lst) => FpInvertBatch(f, lst), + // We can't move this out because Fp6, Fp12 implement it + // and it's unclear what to return in there. + cmov: (a, b, c) => c ? b : a + }); + return Object.freeze(f); + } + function FpSqrtOdd(Fp, elm) { + if (!Fp.isOdd) + throw new Error("Field doesn't have isOdd"); + const root2 = Fp.sqrt(elm); + return Fp.isOdd(root2) ? root2 : Fp.neg(root2); + } + function FpSqrtEven(Fp, elm) { + if (!Fp.isOdd) + throw new Error("Field doesn't have isOdd"); + const root2 = Fp.sqrt(elm); + return Fp.isOdd(root2) ? Fp.neg(root2) : root2; + } + function hashToPrivateScalar(hash, groupOrder, isLE = false) { + hash = (0, utils_ts_1.ensureBytes)("privateHash", hash); + const hashLen = hash.length; + const minLen = nLength(groupOrder).nByteLength + 8; + if (minLen < 24 || hashLen < minLen || hashLen > 1024) + throw new Error("hashToPrivateScalar: expected " + minLen + "-1024 bytes of input, got " + hashLen); + const num = isLE ? (0, utils_ts_1.bytesToNumberLE)(hash) : (0, utils_ts_1.bytesToNumberBE)(hash); + return mod(num, groupOrder - _1n) + _1n; + } + function getFieldBytesLength(fieldOrder) { + if (typeof fieldOrder !== "bigint") + throw new Error("field order must be bigint"); + const bitLength = fieldOrder.toString(2).length; + return Math.ceil(bitLength / 8); + } + function getMinHashLength(fieldOrder) { + const length = getFieldBytesLength(fieldOrder); + return length + Math.ceil(length / 2); + } + function mapHashToField(key, fieldOrder, isLE = false) { + const len = key.length; + const fieldLen = getFieldBytesLength(fieldOrder); + const minLen = getMinHashLength(fieldOrder); + if (len < 16 || len < minLen || len > 1024) + throw new Error("expected " + minLen + "-1024 bytes of input, got " + len); + const num = isLE ? (0, utils_ts_1.bytesToNumberLE)(key) : (0, utils_ts_1.bytesToNumberBE)(key); + const reduced = mod(num, fieldOrder - _1n) + _1n; + return isLE ? (0, utils_ts_1.numberToBytesLE)(reduced, fieldLen) : (0, utils_ts_1.numberToBytesBE)(reduced, fieldLen); + } + } +}); + +// node_modules/@noble/curves/abstract/curve.js +var require_curve = __commonJS({ + "node_modules/@noble/curves/abstract/curve.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.wNAF = wNAF; + exports2.pippenger = pippenger; + exports2.precomputeMSMUnsafe = precomputeMSMUnsafe; + exports2.validateBasic = validateBasic; + var modular_ts_1 = require_modular(); + var utils_ts_1 = require_utils4(); + var _0n = BigInt(0); + var _1n = BigInt(1); + function constTimeNegate(condition, item) { + const neg = item.negate(); + return condition ? neg : item; + } + function validateW(W, bits) { + if (!Number.isSafeInteger(W) || W <= 0 || W > bits) + throw new Error("invalid window size, expected [1.." + bits + "], got W=" + W); + } + function calcWOpts(W, scalarBits) { + validateW(W, scalarBits); + const windows = Math.ceil(scalarBits / W) + 1; + const windowSize = 2 ** (W - 1); + const maxNumber = 2 ** W; + const mask = (0, utils_ts_1.bitMask)(W); + const shiftBy = BigInt(W); + return { windows, windowSize, mask, maxNumber, shiftBy }; + } + function calcOffsets(n, window2, wOpts) { + const { windowSize, mask, maxNumber, shiftBy } = wOpts; + let wbits = Number(n & mask); + let nextN = n >> shiftBy; + if (wbits > windowSize) { + wbits -= maxNumber; + nextN += _1n; + } + const offsetStart = window2 * windowSize; + const offset = offsetStart + Math.abs(wbits) - 1; + const isZero = wbits === 0; + const isNeg = wbits < 0; + const isNegF = window2 % 2 !== 0; + const offsetF = offsetStart; + return { nextN, offset, isZero, isNeg, isNegF, offsetF }; + } + function validateMSMPoints(points, c) { + if (!Array.isArray(points)) + throw new Error("array expected"); + points.forEach((p, i) => { + if (!(p instanceof c)) + throw new Error("invalid point at index " + i); + }); + } + function validateMSMScalars(scalars, field) { + if (!Array.isArray(scalars)) + throw new Error("array of scalars expected"); + scalars.forEach((s, i) => { + if (!field.isValid(s)) + throw new Error("invalid scalar at index " + i); + }); + } + var pointPrecomputes = /* @__PURE__ */ new WeakMap(); + var pointWindowSizes = /* @__PURE__ */ new WeakMap(); + function getW(P) { + return pointWindowSizes.get(P) || 1; + } + function wNAF(c, bits) { + return { + constTimeNegate, + hasPrecomputes(elm) { + return getW(elm) !== 1; + }, + // non-const time multiplication ladder + unsafeLadder(elm, n, p = c.ZERO) { + let d = elm; + while (n > _0n) { + if (n & _1n) + p = p.add(d); + d = d.double(); + n >>= _1n; + } + return p; + }, + /** + * Creates a wNAF precomputation window. Used for caching. + * Default window size is set by `utils.precompute()` and is equal to 8. + * Number of precomputed points depends on the curve size: + * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where: + * - 𝑊 is the window size + * - 𝑛 is the bitlength of the curve order. + * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224. + * @param elm Point instance + * @param W window size + * @returns precomputed point tables flattened to a single array + */ + precomputeWindow(elm, W) { + const { windows, windowSize } = calcWOpts(W, bits); + const points = []; + let p = elm; + let base = p; + for (let window2 = 0; window2 < windows; window2++) { + base = p; + points.push(base); + for (let i = 1; i < windowSize; i++) { + base = base.add(p); + points.push(base); + } + p = base.double(); + } + return points; + }, + /** + * Implements ec multiplication using precomputed tables and w-ary non-adjacent form. + * @param W window size + * @param precomputes precomputed tables + * @param n scalar (we don't check here, but should be less than curve order) + * @returns real and fake (for const-time) points + */ + wNAF(W, precomputes, n) { + let p = c.ZERO; + let f = c.BASE; + const wo = calcWOpts(W, bits); + for (let window2 = 0; window2 < wo.windows; window2++) { + const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window2, wo); + n = nextN; + if (isZero) { + f = f.add(constTimeNegate(isNegF, precomputes[offsetF])); + } else { + p = p.add(constTimeNegate(isNeg, precomputes[offset])); + } + } + return { p, f }; + }, + /** + * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form. + * @param W window size + * @param precomputes precomputed tables + * @param n scalar (we don't check here, but should be less than curve order) + * @param acc accumulator point to add result of multiplication + * @returns point + */ + wNAFUnsafe(W, precomputes, n, acc = c.ZERO) { + const wo = calcWOpts(W, bits); + for (let window2 = 0; window2 < wo.windows; window2++) { + if (n === _0n) + break; + const { nextN, offset, isZero, isNeg } = calcOffsets(n, window2, wo); + n = nextN; + if (isZero) { + continue; + } else { + const item = precomputes[offset]; + acc = acc.add(isNeg ? item.negate() : item); + } + } + return acc; + }, + getPrecomputes(W, P, transform) { + let comp = pointPrecomputes.get(P); + if (!comp) { + comp = this.precomputeWindow(P, W); + if (W !== 1) + pointPrecomputes.set(P, transform(comp)); + } + return comp; + }, + wNAFCached(P, n, transform) { + const W = getW(P); + return this.wNAF(W, this.getPrecomputes(W, P, transform), n); + }, + wNAFCachedUnsafe(P, n, transform, prev) { + const W = getW(P); + if (W === 1) + return this.unsafeLadder(P, n, prev); + return this.wNAFUnsafe(W, this.getPrecomputes(W, P, transform), n, prev); + }, + // We calculate precomputes for elliptic curve point multiplication + // using windowed method. This specifies window size and + // stores precomputed values. Usually only base point would be precomputed. + setWindowSize(P, W) { + validateW(W, bits); + pointWindowSizes.set(P, W); + pointPrecomputes.delete(P); + } + }; + } + function pippenger(c, fieldN, points, scalars) { + validateMSMPoints(points, c); + validateMSMScalars(scalars, fieldN); + if (points.length !== scalars.length) + throw new Error("arrays of points and scalars must have equal length"); + const zero = c.ZERO; + const wbits = (0, utils_ts_1.bitLen)(BigInt(points.length)); + const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; + const MASK = (0, utils_ts_1.bitMask)(windowSize); + const buckets = new Array(Number(MASK) + 1).fill(zero); + const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize; + let sum = zero; + for (let i = lastBits; i >= 0; i -= windowSize) { + buckets.fill(zero); + for (let j = 0; j < scalars.length; j++) { + const scalar = scalars[j]; + const wbits2 = Number(scalar >> BigInt(i) & MASK); + buckets[wbits2] = buckets[wbits2].add(points[j]); + } + let resI = zero; + for (let j = buckets.length - 1, sumI = zero; j > 0; j--) { + sumI = sumI.add(buckets[j]); + resI = resI.add(sumI); + } + sum = sum.add(resI); + if (i !== 0) + for (let j = 0; j < windowSize; j++) + sum = sum.double(); + } + return sum; + } + function precomputeMSMUnsafe(c, fieldN, points, windowSize) { + validateW(windowSize, fieldN.BITS); + validateMSMPoints(points, c); + const zero = c.ZERO; + const tableSize = 2 ** windowSize - 1; + const chunks = Math.ceil(fieldN.BITS / windowSize); + const MASK = (0, utils_ts_1.bitMask)(windowSize); + const tables = points.map((p) => { + const res = []; + for (let i = 0, acc = p; i < tableSize; i++) { + res.push(acc); + acc = acc.add(p); + } + return res; + }); + return (scalars) => { + validateMSMScalars(scalars, fieldN); + if (scalars.length > points.length) + throw new Error("array of scalars must be smaller than array of points"); + let res = zero; + for (let i = 0; i < chunks; i++) { + if (res !== zero) + for (let j = 0; j < windowSize; j++) + res = res.double(); + const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize); + for (let j = 0; j < scalars.length; j++) { + const n = scalars[j]; + const curr = Number(n >> shiftBy & MASK); + if (!curr) + continue; + res = res.add(tables[j][curr - 1]); + } + } + return res; + }; + } + function validateBasic(curve) { + (0, modular_ts_1.validateField)(curve.Fp); + (0, utils_ts_1.validateObject)(curve, { + n: "bigint", + h: "bigint", + Gx: "field", + Gy: "field" + }, { + nBitLength: "isSafeInteger", + nByteLength: "isSafeInteger" + }); + return Object.freeze({ + ...(0, modular_ts_1.nLength)(curve.n, curve.nBitLength), + ...curve, + ...{ p: curve.Fp.ORDER } + }); + } + } +}); + +// node_modules/@noble/curves/abstract/edwards.js +var require_edwards = __commonJS({ + "node_modules/@noble/curves/abstract/edwards.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.twistedEdwards = twistedEdwards; + var curve_ts_1 = require_curve(); + var modular_ts_1 = require_modular(); + var utils_ts_1 = require_utils4(); + var _0n = BigInt(0); + var _1n = BigInt(1); + var _2n = BigInt(2); + var _8n = BigInt(8); + var VERIFY_DEFAULT = { zip215: true }; + function validateOpts(curve) { + const opts = (0, curve_ts_1.validateBasic)(curve); + (0, utils_ts_1.validateObject)(curve, { + hash: "function", + a: "bigint", + d: "bigint", + randomBytes: "function" + }, { + adjustScalarBytes: "function", + domain: "function", + uvRatio: "function", + mapToCurve: "function" + }); + return Object.freeze({ ...opts }); + } + function twistedEdwards(curveDef) { + const CURVE = validateOpts(curveDef); + const { Fp, n: CURVE_ORDER, prehash, hash: cHash, randomBytes, nByteLength, h: cofactor } = CURVE; + const MASK = _2n << BigInt(nByteLength * 8) - _1n; + const modP = Fp.create; + const Fn = (0, modular_ts_1.Field)(CURVE.n, CURVE.nBitLength); + const uvRatio = CURVE.uvRatio || ((u, v) => { + try { + return { isValid: true, value: Fp.sqrt(u * Fp.inv(v)) }; + } catch (e) { + return { isValid: false, value: _0n }; + } + }); + const adjustScalarBytes = CURVE.adjustScalarBytes || ((bytes7) => bytes7); + const domain = CURVE.domain || ((data, ctx, phflag) => { + (0, utils_ts_1.abool)("phflag", phflag); + if (ctx.length || phflag) + throw new Error("Contexts/pre-hash are not supported"); + return data; + }); + function aCoordinate(title, n, banZero = false) { + const min = banZero ? _1n : _0n; + (0, utils_ts_1.aInRange)("coordinate " + title, n, min, MASK); + } + function aextpoint(other) { + if (!(other instanceof Point)) + throw new Error("ExtendedPoint expected"); + } + const toAffineMemo = (0, utils_ts_1.memoized)((p, iz) => { + const { ex: x, ey: y, ez: z } = p; + const is0 = p.is0(); + if (iz == null) + iz = is0 ? _8n : Fp.inv(z); + const ax = modP(x * iz); + const ay = modP(y * iz); + const zz = modP(z * iz); + if (is0) + return { x: _0n, y: _1n }; + if (zz !== _1n) + throw new Error("invZ was invalid"); + return { x: ax, y: ay }; + }); + const assertValidMemo = (0, utils_ts_1.memoized)((p) => { + const { a, d } = CURVE; + if (p.is0()) + throw new Error("bad point: ZERO"); + const { ex: X, ey: Y, ez: Z, et: T } = p; + const X2 = modP(X * X); + const Y2 = modP(Y * Y); + const Z2 = modP(Z * Z); + const Z4 = modP(Z2 * Z2); + const aX2 = modP(X2 * a); + const left = modP(Z2 * modP(aX2 + Y2)); + const right = modP(Z4 + modP(d * modP(X2 * Y2))); + if (left !== right) + throw new Error("bad point: equation left != right (1)"); + const XY = modP(X * Y); + const ZT = modP(Z * T); + if (XY !== ZT) + throw new Error("bad point: equation left != right (2)"); + return true; + }); + class Point { + constructor(ex, ey, ez, et) { + aCoordinate("x", ex); + aCoordinate("y", ey); + aCoordinate("z", ez, true); + aCoordinate("t", et); + this.ex = ex; + this.ey = ey; + this.ez = ez; + this.et = et; + Object.freeze(this); + } + get x() { + return this.toAffine().x; + } + get y() { + return this.toAffine().y; + } + static fromAffine(p) { + if (p instanceof Point) + throw new Error("extended point not allowed"); + const { x, y } = p || {}; + aCoordinate("x", x); + aCoordinate("y", y); + return new Point(x, y, _1n, modP(x * y)); + } + static normalizeZ(points) { + const toInv = (0, modular_ts_1.FpInvertBatch)(Fp, points.map((p) => p.ez)); + return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine); + } + // Multiscalar Multiplication + static msm(points, scalars) { + return (0, curve_ts_1.pippenger)(Point, Fn, points, scalars); + } + // "Private method", don't use it directly + _setWindowSize(windowSize) { + wnaf.setWindowSize(this, windowSize); + } + // Not required for fromHex(), which always creates valid points. + // Could be useful for fromAffine(). + assertValidity() { + assertValidMemo(this); + } + // Compare one point to another. + equals(other) { + aextpoint(other); + const { ex: X1, ey: Y1, ez: Z1 } = this; + const { ex: X2, ey: Y2, ez: Z2 } = other; + const X1Z2 = modP(X1 * Z2); + const X2Z1 = modP(X2 * Z1); + const Y1Z2 = modP(Y1 * Z2); + const Y2Z1 = modP(Y2 * Z1); + return X1Z2 === X2Z1 && Y1Z2 === Y2Z1; + } + is0() { + return this.equals(Point.ZERO); + } + negate() { + return new Point(modP(-this.ex), this.ey, this.ez, modP(-this.et)); + } + // Fast algo for doubling Extended Point. + // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd + // Cost: 4M + 4S + 1*a + 6add + 1*2. + double() { + const { a } = CURVE; + const { ex: X1, ey: Y1, ez: Z1 } = this; + const A = modP(X1 * X1); + const B = modP(Y1 * Y1); + const C = modP(_2n * modP(Z1 * Z1)); + const D = modP(a * A); + const x1y1 = X1 + Y1; + const E = modP(modP(x1y1 * x1y1) - A - B); + const G2 = D + B; + const F = G2 - C; + const H = D - B; + const X3 = modP(E * F); + const Y3 = modP(G2 * H); + const T3 = modP(E * H); + const Z3 = modP(F * G2); + return new Point(X3, Y3, Z3, T3); + } + // Fast algo for adding 2 Extended Points. + // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#addition-add-2008-hwcd + // Cost: 9M + 1*a + 1*d + 7add. + add(other) { + aextpoint(other); + const { a, d } = CURVE; + const { ex: X1, ey: Y1, ez: Z1, et: T1 } = this; + const { ex: X2, ey: Y2, ez: Z2, et: T2 } = other; + const A = modP(X1 * X2); + const B = modP(Y1 * Y2); + const C = modP(T1 * d * T2); + const D = modP(Z1 * Z2); + const E = modP((X1 + Y1) * (X2 + Y2) - A - B); + const F = D - C; + const G2 = D + C; + const H = modP(B - a * A); + const X3 = modP(E * F); + const Y3 = modP(G2 * H); + const T3 = modP(E * H); + const Z3 = modP(F * G2); + return new Point(X3, Y3, Z3, T3); + } + subtract(other) { + return this.add(other.negate()); + } + wNAF(n) { + return wnaf.wNAFCached(this, n, Point.normalizeZ); + } + // Constant-time multiplication. + multiply(scalar) { + const n = scalar; + (0, utils_ts_1.aInRange)("scalar", n, _1n, CURVE_ORDER); + const { p, f } = this.wNAF(n); + return Point.normalizeZ([p, f])[0]; + } + // Non-constant-time multiplication. Uses double-and-add algorithm. + // It's faster, but should only be used when you don't care about + // an exposed private key e.g. sig verification. + // Does NOT allow scalars higher than CURVE.n. + // Accepts optional accumulator to merge with multiply (important for sparse scalars) + multiplyUnsafe(scalar, acc = Point.ZERO) { + const n = scalar; + (0, utils_ts_1.aInRange)("scalar", n, _0n, CURVE_ORDER); + if (n === _0n) + return I; + if (this.is0() || n === _1n) + return this; + return wnaf.wNAFCachedUnsafe(this, n, Point.normalizeZ, acc); + } + // Checks if point is of small order. + // If you add something to small order point, you will have "dirty" + // point with torsion component. + // Multiplies point by cofactor and checks if the result is 0. + isSmallOrder() { + return this.multiplyUnsafe(cofactor).is0(); + } + // Multiplies point by curve order and checks if the result is 0. + // Returns `false` is the point is dirty. + isTorsionFree() { + return wnaf.unsafeLadder(this, CURVE_ORDER).is0(); + } + // Converts Extended point to default (x, y) coordinates. + // Can accept precomputed Z^-1 - for example, from invertBatch. + toAffine(iz) { + return toAffineMemo(this, iz); + } + clearCofactor() { + const { h: cofactor2 } = CURVE; + if (cofactor2 === _1n) + return this; + return this.multiplyUnsafe(cofactor2); + } + // Converts hash string or Uint8Array to Point. + // Uses algo from RFC8032 5.1.3. + static fromHex(hex, zip215 = false) { + const { d, a } = CURVE; + const len = Fp.BYTES; + hex = (0, utils_ts_1.ensureBytes)("pointHex", hex, len); + (0, utils_ts_1.abool)("zip215", zip215); + const normed = hex.slice(); + const lastByte = hex[len - 1]; + normed[len - 1] = lastByte & ~128; + const y = (0, utils_ts_1.bytesToNumberLE)(normed); + const max = zip215 ? MASK : Fp.ORDER; + (0, utils_ts_1.aInRange)("pointHex.y", y, _0n, max); + const y2 = modP(y * y); + const u = modP(y2 - _1n); + const v = modP(d * y2 - a); + let { isValid, value: x } = uvRatio(u, v); + if (!isValid) + throw new Error("Point.fromHex: invalid y coordinate"); + const isXOdd = (x & _1n) === _1n; + const isLastByteOdd = (lastByte & 128) !== 0; + if (!zip215 && x === _0n && isLastByteOdd) + throw new Error("Point.fromHex: x=0 and x_0=1"); + if (isLastByteOdd !== isXOdd) + x = modP(-x); + return Point.fromAffine({ x, y }); + } + static fromPrivateKey(privKey) { + const { scalar } = getPrivateScalar(privKey); + return G.multiply(scalar); + } + toRawBytes() { + const { x, y } = this.toAffine(); + const bytes7 = (0, utils_ts_1.numberToBytesLE)(y, Fp.BYTES); + bytes7[bytes7.length - 1] |= x & _1n ? 128 : 0; + return bytes7; + } + toHex() { + return (0, utils_ts_1.bytesToHex)(this.toRawBytes()); + } + } + Point.BASE = new Point(CURVE.Gx, CURVE.Gy, _1n, modP(CURVE.Gx * CURVE.Gy)); + Point.ZERO = new Point(_0n, _1n, _1n, _0n); + const { BASE: G, ZERO: I } = Point; + const wnaf = (0, curve_ts_1.wNAF)(Point, nByteLength * 8); + function modN(a) { + return (0, modular_ts_1.mod)(a, CURVE_ORDER); + } + function modN_LE(hash) { + return modN((0, utils_ts_1.bytesToNumberLE)(hash)); + } + function getPrivateScalar(key) { + const len = Fp.BYTES; + key = (0, utils_ts_1.ensureBytes)("private key", key, len); + const hashed = (0, utils_ts_1.ensureBytes)("hashed private key", cHash(key), 2 * len); + const head = adjustScalarBytes(hashed.slice(0, len)); + const prefix = hashed.slice(len, 2 * len); + const scalar = modN_LE(head); + return { head, prefix, scalar }; + } + function getExtendedPublicKey(key) { + const { head, prefix, scalar } = getPrivateScalar(key); + const point = G.multiply(scalar); + const pointBytes = point.toRawBytes(); + return { head, prefix, scalar, point, pointBytes }; + } + function getPublicKey(privKey) { + return getExtendedPublicKey(privKey).pointBytes; + } + function hashDomainToScalar(context = Uint8Array.of(), ...msgs) { + const msg = (0, utils_ts_1.concatBytes)(...msgs); + return modN_LE(cHash(domain(msg, (0, utils_ts_1.ensureBytes)("context", context), !!prehash))); + } + function sign(msg, privKey, options = {}) { + msg = (0, utils_ts_1.ensureBytes)("message", msg); + if (prehash) + msg = prehash(msg); + const { prefix, scalar, pointBytes } = getExtendedPublicKey(privKey); + const r = hashDomainToScalar(options.context, prefix, msg); + const R = G.multiply(r).toRawBytes(); + const k = hashDomainToScalar(options.context, R, pointBytes, msg); + const s = modN(r + k * scalar); + (0, utils_ts_1.aInRange)("signature.s", s, _0n, CURVE_ORDER); + const res = (0, utils_ts_1.concatBytes)(R, (0, utils_ts_1.numberToBytesLE)(s, Fp.BYTES)); + return (0, utils_ts_1.ensureBytes)("result", res, Fp.BYTES * 2); + } + const verifyOpts = VERIFY_DEFAULT; + function verify(sig, msg, publicKey23, options = verifyOpts) { + const { context, zip215 } = options; + const len = Fp.BYTES; + sig = (0, utils_ts_1.ensureBytes)("signature", sig, 2 * len); + msg = (0, utils_ts_1.ensureBytes)("message", msg); + publicKey23 = (0, utils_ts_1.ensureBytes)("publicKey", publicKey23, len); + if (zip215 !== void 0) + (0, utils_ts_1.abool)("zip215", zip215); + if (prehash) + msg = prehash(msg); + const s = (0, utils_ts_1.bytesToNumberLE)(sig.slice(len, 2 * len)); + let A, R, SB; + try { + A = Point.fromHex(publicKey23, zip215); + R = Point.fromHex(sig.slice(0, len), zip215); + SB = G.multiplyUnsafe(s); + } catch (error) { + return false; + } + if (!zip215 && A.isSmallOrder()) + return false; + const k = hashDomainToScalar(context, R.toRawBytes(), A.toRawBytes(), msg); + const RkA = R.add(A.multiplyUnsafe(k)); + return RkA.subtract(SB).clearCofactor().equals(Point.ZERO); + } + G._setWindowSize(8); + const utils2 = { + getExtendedPublicKey, + /** ed25519 priv keys are uniform 32b. No need to check for modulo bias, like in secp256k1. */ + randomPrivateKey: () => randomBytes(Fp.BYTES), + /** + * We're doing scalar multiplication (used in getPublicKey etc) with precomputed BASE_POINT + * values. This slows down first getPublicKey() by milliseconds (see Speed section), + * but allows to speed-up subsequent getPublicKey() calls up to 20x. + * @param windowSize 2, 4, 8, 16 + */ + precompute(windowSize = 8, point = Point.BASE) { + point._setWindowSize(windowSize); + point.multiply(BigInt(3)); + return point; + } + }; + return { + CURVE, + getPublicKey, + sign, + verify, + ExtendedPoint: Point, + utils: utils2 + }; + } + } +}); + +// node_modules/@noble/curves/abstract/hash-to-curve.js +var require_hash_to_curve = __commonJS({ + "node_modules/@noble/curves/abstract/hash-to-curve.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.expand_message_xmd = expand_message_xmd; + exports2.expand_message_xof = expand_message_xof; + exports2.hash_to_field = hash_to_field; + exports2.isogenyMap = isogenyMap; + exports2.createHasher = createHasher; + var modular_ts_1 = require_modular(); + var utils_ts_1 = require_utils4(); + var os2ip = utils_ts_1.bytesToNumberBE; + function i2osp(value, length) { + anum(value); + anum(length); + if (value < 0 || value >= 1 << 8 * length) + throw new Error("invalid I2OSP input: " + value); + const res = Array.from({ length }).fill(0); + for (let i = length - 1; i >= 0; i--) { + res[i] = value & 255; + value >>>= 8; + } + return new Uint8Array(res); + } + function strxor(a, b) { + const arr = new Uint8Array(a.length); + for (let i = 0; i < a.length; i++) { + arr[i] = a[i] ^ b[i]; + } + return arr; + } + function anum(item) { + if (!Number.isSafeInteger(item)) + throw new Error("number expected"); + } + function expand_message_xmd(msg, DST, lenInBytes, H) { + (0, utils_ts_1.abytes)(msg); + (0, utils_ts_1.abytes)(DST); + anum(lenInBytes); + if (DST.length > 255) + DST = H((0, utils_ts_1.concatBytes)((0, utils_ts_1.utf8ToBytes)("H2C-OVERSIZE-DST-"), DST)); + const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H; + const ell = Math.ceil(lenInBytes / b_in_bytes); + if (lenInBytes > 65535 || ell > 255) + throw new Error("expand_message_xmd: invalid lenInBytes"); + const DST_prime = (0, utils_ts_1.concatBytes)(DST, i2osp(DST.length, 1)); + const Z_pad = i2osp(0, r_in_bytes); + const l_i_b_str = i2osp(lenInBytes, 2); + const b = new Array(ell); + const b_0 = H((0, utils_ts_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime)); + b[0] = H((0, utils_ts_1.concatBytes)(b_0, i2osp(1, 1), DST_prime)); + for (let i = 1; i <= ell; i++) { + const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime]; + b[i] = H((0, utils_ts_1.concatBytes)(...args)); + } + const pseudo_random_bytes = (0, utils_ts_1.concatBytes)(...b); + return pseudo_random_bytes.slice(0, lenInBytes); + } + function expand_message_xof(msg, DST, lenInBytes, k, H) { + (0, utils_ts_1.abytes)(msg); + (0, utils_ts_1.abytes)(DST); + anum(lenInBytes); + if (DST.length > 255) { + const dkLen = Math.ceil(2 * k / 8); + DST = H.create({ dkLen }).update((0, utils_ts_1.utf8ToBytes)("H2C-OVERSIZE-DST-")).update(DST).digest(); + } + if (lenInBytes > 65535 || DST.length > 255) + throw new Error("expand_message_xof: invalid lenInBytes"); + return H.create({ dkLen: lenInBytes }).update(msg).update(i2osp(lenInBytes, 2)).update(DST).update(i2osp(DST.length, 1)).digest(); + } + function hash_to_field(msg, count, options) { + (0, utils_ts_1.validateObject)(options, { + DST: "stringOrUint8Array", + p: "bigint", + m: "isSafeInteger", + k: "isSafeInteger", + hash: "hash" + }); + const { p, k, m, hash, expand, DST: _DST } = options; + (0, utils_ts_1.abytes)(msg); + anum(count); + const DST = typeof _DST === "string" ? (0, utils_ts_1.utf8ToBytes)(_DST) : _DST; + const log2p = p.toString(2).length; + const L = Math.ceil((log2p + k) / 8); + const len_in_bytes = count * m * L; + let prb; + if (expand === "xmd") { + prb = expand_message_xmd(msg, DST, len_in_bytes, hash); + } else if (expand === "xof") { + prb = expand_message_xof(msg, DST, len_in_bytes, k, hash); + } else if (expand === "_internal_pass") { + prb = msg; + } else { + throw new Error('expand must be "xmd" or "xof"'); + } + const u = new Array(count); + for (let i = 0; i < count; i++) { + const e = new Array(m); + for (let j = 0; j < m; j++) { + const elm_offset = L * (j + i * m); + const tv = prb.subarray(elm_offset, elm_offset + L); + e[j] = (0, modular_ts_1.mod)(os2ip(tv), p); + } + u[i] = e; + } + return u; + } + function isogenyMap(field, map) { + const coeff = map.map((i) => Array.from(i).reverse()); + return (x, y) => { + const [xn, xd, yn, yd] = coeff.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i))); + const [xd_inv, yd_inv] = (0, modular_ts_1.FpInvertBatch)(field, [xd, yd], true); + x = field.mul(xn, xd_inv); + y = field.mul(y, field.mul(yn, yd_inv)); + return { x, y }; + }; + } + function createHasher(Point, mapToCurve, defaults) { + if (typeof mapToCurve !== "function") + throw new Error("mapToCurve() must be defined"); + function map(num) { + return Point.fromAffine(mapToCurve(num)); + } + function clear(initial) { + const P = initial.clearCofactor(); + if (P.equals(Point.ZERO)) + return Point.ZERO; + P.assertValidity(); + return P; + } + return { + defaults, + // Encodes byte string to elliptic curve. + // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3 + hashToCurve(msg, options) { + const u = hash_to_field(msg, 2, { ...defaults, DST: defaults.DST, ...options }); + const u0 = map(u[0]); + const u1 = map(u[1]); + return clear(u0.add(u1)); + }, + // Encodes byte string to elliptic curve. + // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3 + encodeToCurve(msg, options) { + const u = hash_to_field(msg, 1, { ...defaults, DST: defaults.encodeDST, ...options }); + return clear(map(u[0])); + }, + // Same as encodeToCurve, but without hash + mapToCurve(scalars) { + if (!Array.isArray(scalars)) + throw new Error("expected array of bigints"); + for (const i of scalars) + if (typeof i !== "bigint") + throw new Error("expected array of bigints"); + return clear(map(scalars)); + } + }; + } + } +}); + +// node_modules/@noble/curves/abstract/montgomery.js +var require_montgomery = __commonJS({ + "node_modules/@noble/curves/abstract/montgomery.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.montgomery = montgomery; + var modular_ts_1 = require_modular(); + var utils_ts_1 = require_utils4(); + var _0n = BigInt(0); + var _1n = BigInt(1); + function validateOpts(curve) { + (0, utils_ts_1.validateObject)(curve, { + a: "bigint" + }, { + montgomeryBits: "isSafeInteger", + nByteLength: "isSafeInteger", + adjustScalarBytes: "function", + domain: "function", + powPminus2: "function", + Gu: "bigint" + }); + return Object.freeze({ ...curve }); + } + function montgomery(curveDef) { + const CURVE = validateOpts(curveDef); + const { P } = CURVE; + const Fp = (0, modular_ts_1.Field)(P); + const modP = (n) => (0, modular_ts_1.mod)(n, P); + const montgomeryBits = CURVE.montgomeryBits; + const montgomeryBytes = Math.ceil(montgomeryBits / 8); + const fieldLen = CURVE.nByteLength; + const adjustScalarBytes = CURVE.adjustScalarBytes || ((bytes7) => bytes7); + const powPminus2 = CURVE.powPminus2 || ((x) => Fp.pow(x, P - BigInt(2))); + function cswap(swap, x_2, x_3) { + const dummy = modP(swap * (x_2 - x_3)); + x_2 = modP(x_2 - dummy); + x_3 = modP(x_3 + dummy); + return [x_2, x_3]; + } + const a24 = (CURVE.a - BigInt(2)) / BigInt(4); + function montgomeryLadder(u, scalar) { + (0, utils_ts_1.aInRange)("u", u, _0n, P); + (0, utils_ts_1.aInRange)("scalar", scalar, _0n, P); + const k = scalar; + const x_1 = u; + let x_2 = _1n; + let z_2 = _0n; + let x_3 = u; + let z_3 = _1n; + let swap = _0n; + let sw; + for (let t = BigInt(montgomeryBits - 1); t >= _0n; t--) { + const k_t = k >> t & _1n; + swap ^= k_t; + sw = cswap(swap, x_2, x_3); + x_2 = sw[0]; + x_3 = sw[1]; + sw = cswap(swap, z_2, z_3); + z_2 = sw[0]; + z_3 = sw[1]; + swap = k_t; + const A = x_2 + z_2; + const AA = modP(A * A); + const B = x_2 - z_2; + const BB = modP(B * B); + const E = AA - BB; + const C = x_3 + z_3; + const D = x_3 - z_3; + const DA = modP(D * A); + const CB = modP(C * B); + const dacb = DA + CB; + const da_cb = DA - CB; + x_3 = modP(dacb * dacb); + z_3 = modP(x_1 * modP(da_cb * da_cb)); + x_2 = modP(AA * BB); + z_2 = modP(E * (AA + modP(a24 * E))); + } + sw = cswap(swap, x_2, x_3); + x_2 = sw[0]; + x_3 = sw[1]; + sw = cswap(swap, z_2, z_3); + z_2 = sw[0]; + z_3 = sw[1]; + const z2 = powPminus2(z_2); + return modP(x_2 * z2); + } + function encodeUCoordinate(u) { + return (0, utils_ts_1.numberToBytesLE)(modP(u), montgomeryBytes); + } + function decodeUCoordinate(uEnc) { + const u = (0, utils_ts_1.ensureBytes)("u coordinate", uEnc, montgomeryBytes); + if (fieldLen === 32) + u[31] &= 127; + return (0, utils_ts_1.bytesToNumberLE)(u); + } + function decodeScalar(n) { + const bytes7 = (0, utils_ts_1.ensureBytes)("scalar", n); + const len = bytes7.length; + if (len !== montgomeryBytes && len !== fieldLen) { + let valid = "" + montgomeryBytes + " or " + fieldLen; + throw new Error("invalid scalar, expected " + valid + " bytes, got " + len); + } + return (0, utils_ts_1.bytesToNumberLE)(adjustScalarBytes(bytes7)); + } + function scalarMult(scalar, u) { + const pointU = decodeUCoordinate(u); + const _scalar = decodeScalar(scalar); + const pu = montgomeryLadder(pointU, _scalar); + if (pu === _0n) + throw new Error("invalid private or public key received"); + return encodeUCoordinate(pu); + } + const GuBytes = encodeUCoordinate(CURVE.Gu); + function scalarMultBase(scalar) { + return scalarMult(scalar, GuBytes); + } + return { + scalarMult, + scalarMultBase, + getSharedSecret: (privateKey, publicKey23) => scalarMult(privateKey, publicKey23), + getPublicKey: (privateKey) => scalarMultBase(privateKey), + utils: { randomPrivateKey: () => CURVE.randomBytes(CURVE.nByteLength) }, + GuBytes + }; + } + } +}); + +// node_modules/@noble/curves/ed25519.js +var require_ed25519 = __commonJS({ + "node_modules/@noble/curves/ed25519.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.hash_to_ristretto255 = exports2.hashToRistretto255 = exports2.RistrettoPoint = exports2.encodeToCurve = exports2.hashToCurve = exports2.ed25519_hasher = exports2.edwardsToMontgomery = exports2.x25519 = exports2.ed25519ph = exports2.ed25519ctx = exports2.ed25519 = exports2.ED25519_TORSION_SUBGROUP = void 0; + exports2.edwardsToMontgomeryPub = edwardsToMontgomeryPub; + exports2.edwardsToMontgomeryPriv = edwardsToMontgomeryPriv; + var sha2_1 = require_sha2(); + var utils_1 = require_utils3(); + var curve_ts_1 = require_curve(); + var edwards_ts_1 = require_edwards(); + var hash_to_curve_ts_1 = require_hash_to_curve(); + var modular_ts_1 = require_modular(); + var montgomery_ts_1 = require_montgomery(); + var utils_ts_1 = require_utils4(); + var ED25519_P = BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"); + var ED25519_SQRT_M1 = /* @__PURE__ */ BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"); + var _0n = BigInt(0); + var _1n = BigInt(1); + var _2n = BigInt(2); + var _3n = BigInt(3); + var _5n = BigInt(5); + var _8n = BigInt(8); + function ed25519_pow_2_252_3(x) { + const _10n = BigInt(10), _20n = BigInt(20), _40n = BigInt(40), _80n = BigInt(80); + const P = ED25519_P; + const x2 = x * x % P; + const b2 = x2 * x % P; + const b4 = (0, modular_ts_1.pow2)(b2, _2n, P) * b2 % P; + const b5 = (0, modular_ts_1.pow2)(b4, _1n, P) * x % P; + const b10 = (0, modular_ts_1.pow2)(b5, _5n, P) * b5 % P; + const b20 = (0, modular_ts_1.pow2)(b10, _10n, P) * b10 % P; + const b40 = (0, modular_ts_1.pow2)(b20, _20n, P) * b20 % P; + const b80 = (0, modular_ts_1.pow2)(b40, _40n, P) * b40 % P; + const b160 = (0, modular_ts_1.pow2)(b80, _80n, P) * b80 % P; + const b240 = (0, modular_ts_1.pow2)(b160, _80n, P) * b80 % P; + const b250 = (0, modular_ts_1.pow2)(b240, _10n, P) * b10 % P; + const pow_p_5_8 = (0, modular_ts_1.pow2)(b250, _2n, P) * x % P; + return { pow_p_5_8, b2 }; + } + function adjustScalarBytes(bytes7) { + bytes7[0] &= 248; + bytes7[31] &= 127; + bytes7[31] |= 64; + return bytes7; + } + function uvRatio(u, v) { + const P = ED25519_P; + const v32 = (0, modular_ts_1.mod)(v * v * v, P); + const v7 = (0, modular_ts_1.mod)(v32 * v32 * v, P); + const pow = ed25519_pow_2_252_3(u * v7).pow_p_5_8; + let x = (0, modular_ts_1.mod)(u * v32 * pow, P); + const vx2 = (0, modular_ts_1.mod)(v * x * x, P); + const root1 = x; + const root2 = (0, modular_ts_1.mod)(x * ED25519_SQRT_M1, P); + const useRoot1 = vx2 === u; + const useRoot2 = vx2 === (0, modular_ts_1.mod)(-u, P); + const noRoot = vx2 === (0, modular_ts_1.mod)(-u * ED25519_SQRT_M1, P); + if (useRoot1) + x = root1; + if (useRoot2 || noRoot) + x = root2; + if ((0, modular_ts_1.isNegativeLE)(x, P)) + x = (0, modular_ts_1.mod)(-x, P); + return { isValid: useRoot1 || useRoot2, value: x }; + } + exports2.ED25519_TORSION_SUBGROUP = [ + "0100000000000000000000000000000000000000000000000000000000000000", + "c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a", + "0000000000000000000000000000000000000000000000000000000000000080", + "26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05", + "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85", + "0000000000000000000000000000000000000000000000000000000000000000", + "c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa" + ]; + var Fp = /* @__PURE__ */ (() => (0, modular_ts_1.Field)(ED25519_P, void 0, true))(); + var ed25519Defaults = /* @__PURE__ */ (() => ({ + // Removing Fp.create() will still work, and is 10% faster on sign + a: Fp.create(BigInt(-1)), + // d is -121665/121666 a.k.a. Fp.neg(121665 * Fp.inv(121666)) + d: BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"), + // Finite field 2n**255n - 19n + Fp, + // Subgroup order 2n**252n + 27742317777372353535851937790883648493n; + n: BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"), + h: _8n, + Gx: BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"), + Gy: BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"), + hash: sha2_1.sha512, + randomBytes: utils_1.randomBytes, + adjustScalarBytes, + // dom2 + // Ratio of u to v. Allows us to combine inversion and square root. Uses algo from RFC8032 5.1.3. + // Constant-time, u/√v + uvRatio + }))(); + exports2.ed25519 = (() => (0, edwards_ts_1.twistedEdwards)(ed25519Defaults))(); + function ed25519_domain(data, ctx, phflag) { + if (ctx.length > 255) + throw new Error("Context is too big"); + return (0, utils_1.concatBytes)((0, utils_1.utf8ToBytes)("SigEd25519 no Ed25519 collisions"), new Uint8Array([phflag ? 1 : 0, ctx.length]), ctx, data); + } + exports2.ed25519ctx = (() => (0, edwards_ts_1.twistedEdwards)({ + ...ed25519Defaults, + domain: ed25519_domain + }))(); + exports2.ed25519ph = (() => (0, edwards_ts_1.twistedEdwards)(Object.assign({}, ed25519Defaults, { + domain: ed25519_domain, + prehash: sha2_1.sha512 + })))(); + exports2.x25519 = (() => (0, montgomery_ts_1.montgomery)({ + P: ED25519_P, + a: BigInt(486662), + montgomeryBits: 255, + // n is 253 bits + nByteLength: 32, + Gu: BigInt(9), + powPminus2: (x) => { + const P = ED25519_P; + const { pow_p_5_8, b2 } = ed25519_pow_2_252_3(x); + return (0, modular_ts_1.mod)((0, modular_ts_1.pow2)(pow_p_5_8, _3n, P) * b2, P); + }, + adjustScalarBytes, + randomBytes: utils_1.randomBytes + }))(); + function edwardsToMontgomeryPub(edwardsPub) { + const { y } = exports2.ed25519.ExtendedPoint.fromHex(edwardsPub); + const _1n2 = BigInt(1); + return Fp.toBytes(Fp.create((_1n2 + y) * Fp.inv(_1n2 - y))); + } + exports2.edwardsToMontgomery = edwardsToMontgomeryPub; + function edwardsToMontgomeryPriv(edwardsPriv) { + const hashed = ed25519Defaults.hash(edwardsPriv.subarray(0, 32)); + return ed25519Defaults.adjustScalarBytes(hashed).subarray(0, 32); + } + var ELL2_C1 = /* @__PURE__ */ (() => (Fp.ORDER + _3n) / _8n)(); + var ELL2_C2 = /* @__PURE__ */ (() => Fp.pow(_2n, ELL2_C1))(); + var ELL2_C3 = /* @__PURE__ */ (() => Fp.sqrt(Fp.neg(Fp.ONE)))(); + function map_to_curve_elligator2_curve25519(u) { + const ELL2_C4 = (Fp.ORDER - _5n) / _8n; + const ELL2_J = BigInt(486662); + let tv1 = Fp.sqr(u); + tv1 = Fp.mul(tv1, _2n); + let xd = Fp.add(tv1, Fp.ONE); + let x1n = Fp.neg(ELL2_J); + let tv2 = Fp.sqr(xd); + let gxd = Fp.mul(tv2, xd); + let gx1 = Fp.mul(tv1, ELL2_J); + gx1 = Fp.mul(gx1, x1n); + gx1 = Fp.add(gx1, tv2); + gx1 = Fp.mul(gx1, x1n); + let tv3 = Fp.sqr(gxd); + tv2 = Fp.sqr(tv3); + tv3 = Fp.mul(tv3, gxd); + tv3 = Fp.mul(tv3, gx1); + tv2 = Fp.mul(tv2, tv3); + let y11 = Fp.pow(tv2, ELL2_C4); + y11 = Fp.mul(y11, tv3); + let y12 = Fp.mul(y11, ELL2_C3); + tv2 = Fp.sqr(y11); + tv2 = Fp.mul(tv2, gxd); + let e1 = Fp.eql(tv2, gx1); + let y1 = Fp.cmov(y12, y11, e1); + let x2n = Fp.mul(x1n, tv1); + let y21 = Fp.mul(y11, u); + y21 = Fp.mul(y21, ELL2_C2); + let y22 = Fp.mul(y21, ELL2_C3); + let gx2 = Fp.mul(gx1, tv1); + tv2 = Fp.sqr(y21); + tv2 = Fp.mul(tv2, gxd); + let e2 = Fp.eql(tv2, gx2); + let y2 = Fp.cmov(y22, y21, e2); + tv2 = Fp.sqr(y1); + tv2 = Fp.mul(tv2, gxd); + let e3 = Fp.eql(tv2, gx1); + let xn = Fp.cmov(x2n, x1n, e3); + let y = Fp.cmov(y2, y1, e3); + let e4 = Fp.isOdd(y); + y = Fp.cmov(y, Fp.neg(y), e3 !== e4); + return { xMn: xn, xMd: xd, yMn: y, yMd: _1n }; + } + var ELL2_C1_EDWARDS = /* @__PURE__ */ (() => (0, modular_ts_1.FpSqrtEven)(Fp, Fp.neg(BigInt(486664))))(); + function map_to_curve_elligator2_edwards25519(u) { + const { xMn, xMd, yMn, yMd } = map_to_curve_elligator2_curve25519(u); + let xn = Fp.mul(xMn, yMd); + xn = Fp.mul(xn, ELL2_C1_EDWARDS); + let xd = Fp.mul(xMd, yMn); + let yn = Fp.sub(xMn, xMd); + let yd = Fp.add(xMn, xMd); + let tv1 = Fp.mul(xd, yd); + let e = Fp.eql(tv1, Fp.ZERO); + xn = Fp.cmov(xn, Fp.ZERO, e); + xd = Fp.cmov(xd, Fp.ONE, e); + yn = Fp.cmov(yn, Fp.ONE, e); + yd = Fp.cmov(yd, Fp.ONE, e); + const [xd_inv, yd_inv] = (0, modular_ts_1.FpInvertBatch)(Fp, [xd, yd], true); + return { x: Fp.mul(xn, xd_inv), y: Fp.mul(yn, yd_inv) }; + } + exports2.ed25519_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports2.ed25519.ExtendedPoint, (scalars) => map_to_curve_elligator2_edwards25519(scalars[0]), { + DST: "edwards25519_XMD:SHA-512_ELL2_RO_", + encodeDST: "edwards25519_XMD:SHA-512_ELL2_NU_", + p: Fp.ORDER, + m: 1, + k: 128, + expand: "xmd", + hash: sha2_1.sha512 + }))(); + exports2.hashToCurve = (() => exports2.ed25519_hasher.hashToCurve)(); + exports2.encodeToCurve = (() => exports2.ed25519_hasher.encodeToCurve)(); + function aristp(other) { + if (!(other instanceof RistPoint)) + throw new Error("RistrettoPoint expected"); + } + var SQRT_M1 = ED25519_SQRT_M1; + var SQRT_AD_MINUS_ONE = /* @__PURE__ */ BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"); + var INVSQRT_A_MINUS_D = /* @__PURE__ */ BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"); + var ONE_MINUS_D_SQ = /* @__PURE__ */ BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"); + var D_MINUS_ONE_SQ = /* @__PURE__ */ BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"); + var invertSqrt = (number) => uvRatio(_1n, number); + var MAX_255B = /* @__PURE__ */ BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); + var bytes255ToNumberLE = (bytes7) => exports2.ed25519.CURVE.Fp.create((0, utils_ts_1.bytesToNumberLE)(bytes7) & MAX_255B); + function calcElligatorRistrettoMap(r0) { + const { d } = exports2.ed25519.CURVE; + const P = exports2.ed25519.CURVE.Fp.ORDER; + const mod = exports2.ed25519.CURVE.Fp.create; + const r = mod(SQRT_M1 * r0 * r0); + const Ns = mod((r + _1n) * ONE_MINUS_D_SQ); + let c = BigInt(-1); + const D = mod((c - d * r) * mod(r + d)); + let { isValid: Ns_D_is_sq, value: s } = uvRatio(Ns, D); + let s_ = mod(s * r0); + if (!(0, modular_ts_1.isNegativeLE)(s_, P)) + s_ = mod(-s_); + if (!Ns_D_is_sq) + s = s_; + if (!Ns_D_is_sq) + c = r; + const Nt = mod(c * (r - _1n) * D_MINUS_ONE_SQ - D); + const s2 = s * s; + const W0 = mod((s + s) * D); + const W1 = mod(Nt * SQRT_AD_MINUS_ONE); + const W2 = mod(_1n - s2); + const W3 = mod(_1n + s2); + return new exports2.ed25519.ExtendedPoint(mod(W0 * W3), mod(W2 * W1), mod(W1 * W3), mod(W0 * W2)); + } + var RistPoint = class _RistPoint { + // Private property to discourage combining ExtendedPoint + RistrettoPoint + // Always use Ristretto encoding/decoding instead. + constructor(ep) { + this.ep = ep; + } + static fromAffine(ap) { + return new _RistPoint(exports2.ed25519.ExtendedPoint.fromAffine(ap)); + } + /** + * Takes uniform output of 64-byte hash function like sha512 and converts it to `RistrettoPoint`. + * The hash-to-group operation applies Elligator twice and adds the results. + * **Note:** this is one-way map, there is no conversion from point to hash. + * https://ristretto.group/formulas/elligator.html + * @param hex 64-byte output of a hash function + */ + static hashToCurve(hex) { + hex = (0, utils_ts_1.ensureBytes)("ristrettoHash", hex, 64); + const r1 = bytes255ToNumberLE(hex.slice(0, 32)); + const R1 = calcElligatorRistrettoMap(r1); + const r2 = bytes255ToNumberLE(hex.slice(32, 64)); + const R2 = calcElligatorRistrettoMap(r2); + return new _RistPoint(R1.add(R2)); + } + /** + * Converts ristretto-encoded string to ristretto point. + * https://ristretto.group/formulas/decoding.html + * @param hex Ristretto-encoded 32 bytes. Not every 32-byte string is valid ristretto encoding + */ + static fromHex(hex) { + hex = (0, utils_ts_1.ensureBytes)("ristrettoHex", hex, 32); + const { a, d } = exports2.ed25519.CURVE; + const P = exports2.ed25519.CURVE.Fp.ORDER; + const mod = exports2.ed25519.CURVE.Fp.create; + const emsg = "RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint"; + const s = bytes255ToNumberLE(hex); + if (!(0, utils_ts_1.equalBytes)((0, utils_ts_1.numberToBytesLE)(s, 32), hex) || (0, modular_ts_1.isNegativeLE)(s, P)) + throw new Error(emsg); + const s2 = mod(s * s); + const u1 = mod(_1n + a * s2); + const u2 = mod(_1n - a * s2); + const u1_2 = mod(u1 * u1); + const u2_2 = mod(u2 * u2); + const v = mod(a * d * u1_2 - u2_2); + const { isValid, value: I } = invertSqrt(mod(v * u2_2)); + const Dx = mod(I * u2); + const Dy = mod(I * Dx * v); + let x = mod((s + s) * Dx); + if ((0, modular_ts_1.isNegativeLE)(x, P)) + x = mod(-x); + const y = mod(u1 * Dy); + const t = mod(x * y); + if (!isValid || (0, modular_ts_1.isNegativeLE)(t, P) || y === _0n) + throw new Error(emsg); + return new _RistPoint(new exports2.ed25519.ExtendedPoint(x, y, _1n, t)); + } + static msm(points, scalars) { + const Fn = (0, modular_ts_1.Field)(exports2.ed25519.CURVE.n, exports2.ed25519.CURVE.nBitLength); + return (0, curve_ts_1.pippenger)(_RistPoint, Fn, points, scalars); + } + /** + * Encodes ristretto point to Uint8Array. + * https://ristretto.group/formulas/encoding.html + */ + toRawBytes() { + let { ex: x, ey: y, ez: z, et: t } = this.ep; + const P = exports2.ed25519.CURVE.Fp.ORDER; + const mod = exports2.ed25519.CURVE.Fp.create; + const u1 = mod(mod(z + y) * mod(z - y)); + const u2 = mod(x * y); + const u2sq = mod(u2 * u2); + const { value: invsqrt } = invertSqrt(mod(u1 * u2sq)); + const D1 = mod(invsqrt * u1); + const D2 = mod(invsqrt * u2); + const zInv = mod(D1 * D2 * t); + let D; + if ((0, modular_ts_1.isNegativeLE)(t * zInv, P)) { + let _x = mod(y * SQRT_M1); + let _y = mod(x * SQRT_M1); + x = _x; + y = _y; + D = mod(D1 * INVSQRT_A_MINUS_D); + } else { + D = D2; + } + if ((0, modular_ts_1.isNegativeLE)(x * zInv, P)) + y = mod(-y); + let s = mod((z - y) * D); + if ((0, modular_ts_1.isNegativeLE)(s, P)) + s = mod(-s); + return (0, utils_ts_1.numberToBytesLE)(s, 32); + } + toHex() { + return (0, utils_ts_1.bytesToHex)(this.toRawBytes()); + } + toString() { + return this.toHex(); + } + // Compare one point to another. + equals(other) { + aristp(other); + const { ex: X1, ey: Y1 } = this.ep; + const { ex: X2, ey: Y2 } = other.ep; + const mod = exports2.ed25519.CURVE.Fp.create; + const one = mod(X1 * Y2) === mod(Y1 * X2); + const two = mod(Y1 * Y2) === mod(X1 * X2); + return one || two; + } + add(other) { + aristp(other); + return new _RistPoint(this.ep.add(other.ep)); + } + subtract(other) { + aristp(other); + return new _RistPoint(this.ep.subtract(other.ep)); + } + multiply(scalar) { + return new _RistPoint(this.ep.multiply(scalar)); + } + multiplyUnsafe(scalar) { + return new _RistPoint(this.ep.multiplyUnsafe(scalar)); + } + double() { + return new _RistPoint(this.ep.double()); + } + negate() { + return new _RistPoint(this.ep.negate()); + } + }; + exports2.RistrettoPoint = (() => { + if (!RistPoint.BASE) + RistPoint.BASE = new RistPoint(exports2.ed25519.ExtendedPoint.BASE); + if (!RistPoint.ZERO) + RistPoint.ZERO = new RistPoint(exports2.ed25519.ExtendedPoint.ZERO); + return RistPoint; + })(); + var hashToRistretto255 = (msg, options) => { + const d = options.DST; + const DST = typeof d === "string" ? (0, utils_1.utf8ToBytes)(d) : d; + const uniform_bytes = (0, hash_to_curve_ts_1.expand_message_xmd)(msg, DST, 64, sha2_1.sha512); + const P = RistPoint.hashToCurve(uniform_bytes); + return P; + }; + exports2.hashToRistretto255 = hashToRistretto255; + exports2.hash_to_ristretto255 = exports2.hashToRistretto255; + } +}); + +// node_modules/bn.js/lib/bn.js +var require_bn = __commonJS({ + "node_modules/bn.js/lib/bn.js"(exports2, module2) { + (function(module3, exports3) { + "use strict"; + function assert2(val, msg) { + if (!val) throw new Error(msg || "Assertion failed"); + } + function inherits(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN3(number, base, endian) { + if (BN3.isBN(number)) { + return number; + } + this.negative = 0; + this.words = null; + this.length = 0; + this.red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module3 === "object") { + module3.exports = BN3; + } else { + exports3.BN = BN3; + } + BN3.BN = BN3; + BN3.wordSize = 26; + var Buffer3; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer3 = window.Buffer; + } else { + Buffer3 = require("buffer").Buffer; + } + } catch (e) { + } + BN3.isBN = function isBN(num) { + if (num instanceof BN3) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN3.wordSize && Array.isArray(num.words); + }; + BN3.max = function max(left, right) { + if (left.cmp(right) > 0) return left; + return right; + }; + BN3.min = function min(left, right) { + if (left.cmp(right) < 0) return left; + return right; + }; + BN3.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert2(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + this.negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN3.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + this.negative = 1; + number = -number; + } + if (number < 67108864) { + this.words = [number & 67108863]; + this.length = 1; + } else if (number < 4503599627370496) { + this.words = [ + number & 67108863, + number / 67108864 & 67108863 + ]; + this.length = 2; + } else { + assert2(number < 9007199254740992); + this.words = [ + number & 67108863, + number / 67108864 & 67108863, + 1 + ]; + this.length = 3; + } + if (endian !== "le") return; + this._initArray(this.toArray(), base, endian); + }; + BN3.prototype._initArray = function _initArray(number, base, endian) { + assert2(typeof number.length === "number"); + if (number.length <= 0) { + this.words = [0]; + this.length = 1; + return this; + } + this.length = Math.ceil(number.length / 3); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } + var j, w; + var off = 0; + if (endian === "be") { + for (i = number.length - 1, j = 0; i >= 0; i -= 3) { + w = number[i] | number[i - 1] << 8 | number[i - 2] << 16; + this.words[j] |= w << off & 67108863; + this.words[j + 1] = w >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + } else if (endian === "le") { + for (i = 0, j = 0; i < number.length; i += 3) { + w = number[i] | number[i + 1] << 8 | number[i + 2] << 16; + this.words[j] |= w << off & 67108863; + this.words[j + 1] = w >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + } + return this._strip(); + }; + function parseHex4Bits(string, index) { + var c = string.charCodeAt(index); + if (c >= 48 && c <= 57) { + return c - 48; + } else if (c >= 65 && c <= 70) { + return c - 55; + } else if (c >= 97 && c <= 102) { + return c - 87; + } else { + assert2(false, "Invalid character in " + string); + } + } + function parseHexByte(string, lowerBound, index) { + var r = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r |= parseHex4Bits(string, index - 1) << 4; + } + return r; + } + BN3.prototype._parseHex = function _parseHex(number, start, endian) { + this.length = Math.ceil((number.length - start) / 6); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } + var off = 0; + var j = 0; + var w; + if (endian === "be") { + for (i = number.length - 1; i >= start; i -= 2) { + w = parseHexByte(number, start, i) << off; + this.words[j] |= w & 67108863; + if (off >= 18) { + off -= 18; + j += 1; + this.words[j] |= w >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) { + w = parseHexByte(number, start, i) << off; + this.words[j] |= w & 67108863; + if (off >= 18) { + off -= 18; + j += 1; + this.words[j] |= w >>> 26; + } else { + off += 8; + } + } + } + this._strip(); + }; + function parseBase(str, start, end, mul) { + var r = 0; + var b = 0; + var len = Math.min(str.length, end); + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48; + r *= mul; + if (c >= 49) { + b = c - 49 + 10; + } else if (c >= 17) { + b = c - 17 + 10; + } else { + b = c; + } + assert2(c >= 0 && b < mul, "Invalid character"); + r += b; + } + return r; + } + BN3.prototype._parseBase = function _parseBase(number, base, start) { + this.words = [0]; + this.length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i = start; i < end; i += limbLen) { + word = parseBase(number, i, i + limbLen, base); + this.imuln(limbPow); + if (this.words[0] + word < 67108864) { + this.words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i, number.length, base); + for (i = 0; i < mod; i++) { + pow *= base; + } + this.imuln(pow); + if (this.words[0] + word < 67108864) { + this.words[0] += word; + } else { + this._iaddn(word); + } + } + this._strip(); + }; + BN3.prototype.copy = function copy(dest) { + dest.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + dest.words[i] = this.words[i]; + } + dest.length = this.length; + dest.negative = this.negative; + dest.red = this.red; + }; + function move(dest, src) { + dest.words = src.words; + dest.length = src.length; + dest.negative = src.negative; + dest.red = src.red; + } + BN3.prototype._move = function _move(dest) { + move(dest, this); + }; + BN3.prototype.clone = function clone2() { + var r = new BN3(null); + this.copy(r); + return r; + }; + BN3.prototype._expand = function _expand(size) { + while (this.length < size) { + this.words[this.length++] = 0; + } + return this; + }; + BN3.prototype._strip = function strip() { + while (this.length > 1 && this.words[this.length - 1] === 0) { + this.length--; + } + return this._normSign(); + }; + BN3.prototype._normSign = function _normSign() { + if (this.length === 1 && this.words[0] === 0) { + this.negative = 0; + } + return this; + }; + if (typeof Symbol !== "undefined" && typeof Symbol.for === "function") { + try { + BN3.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspect; + } catch (e) { + BN3.prototype.inspect = inspect; + } + } else { + BN3.prototype.inspect = inspect; + } + function inspect() { + return (this.red ? ""; + } + var zeros = [ + "", + "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" + ]; + var groupSizes = [ + 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 + ]; + var groupBases = [ + 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 + ]; + BN3.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = this.words[i]; + var word = ((w << off | carry) & 16777215).toString(16); + carry = w >>> 24 - off & 16777215; + off += 2; + if (off >= 26) { + off -= 26; + i--; + } + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if (this.negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c = this.clone(); + c.negative = 0; + while (!c.isZero()) { + var r = c.modrn(groupBase).toString(base); + c = c.idivn(groupBase); + if (!c.isZero()) { + out = zeros[groupSize - r.length] + r + out; + } else { + out = r + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if (this.negative !== 0) { + out = "-" + out; + } + return out; + } + assert2(false, "Base should be between 2 and 36"); + }; + BN3.prototype.toNumber = function toNumber() { + var ret = this.words[0]; + if (this.length === 2) { + ret += this.words[1] * 67108864; + } else if (this.length === 3 && this.words[2] === 1) { + ret += 4503599627370496 + this.words[1] * 67108864; + } else if (this.length > 2) { + assert2(false, "Number can only safely store up to 53 bits"); + } + return this.negative !== 0 ? -ret : ret; + }; + BN3.prototype.toJSON = function toJSON() { + return this.toString(16, 2); + }; + if (Buffer3) { + BN3.prototype.toBuffer = function toBuffer(endian, length) { + return this.toArrayLike(Buffer3, endian, length); + }; + } + BN3.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + var allocate = function allocate2(ArrayType, size) { + if (ArrayType.allocUnsafe) { + return ArrayType.allocUnsafe(size); + } + return new ArrayType(size); + }; + BN3.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + this._strip(); + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert2(byteLength <= reqLength, "byte array longer than desired length"); + assert2(reqLength > 0, "Requested array length <= 0"); + var res = allocate(ArrayType, reqLength); + var postfix = endian === "le" ? "LE" : "BE"; + this["_toArrayLike" + postfix](res, byteLength); + return res; + }; + BN3.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) { + var position = 0; + var carry = 0; + for (var i = 0, shift = 0; i < this.length; i++) { + var word = this.words[i] << shift | carry; + res[position++] = word & 255; + if (position < res.length) { + res[position++] = word >> 8 & 255; + } + if (position < res.length) { + res[position++] = word >> 16 & 255; + } + if (shift === 6) { + if (position < res.length) { + res[position++] = word >> 24 & 255; + } + carry = 0; + shift = 0; + } else { + carry = word >>> 24; + shift += 2; + } + } + if (position < res.length) { + res[position++] = carry; + while (position < res.length) { + res[position++] = 0; + } + } + }; + BN3.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) { + var position = res.length - 1; + var carry = 0; + for (var i = 0, shift = 0; i < this.length; i++) { + var word = this.words[i] << shift | carry; + res[position--] = word & 255; + if (position >= 0) { + res[position--] = word >> 8 & 255; + } + if (position >= 0) { + res[position--] = word >> 16 & 255; + } + if (shift === 6) { + if (position >= 0) { + res[position--] = word >> 24 & 255; + } + carry = 0; + shift = 0; + } else { + carry = word >>> 24; + shift += 2; + } + } + if (position >= 0) { + res[position--] = carry; + while (position >= 0) { + res[position--] = 0; + } + } + }; + if (Math.clz32) { + BN3.prototype._countBits = function _countBits(w) { + return 32 - Math.clz32(w); + }; + } else { + BN3.prototype._countBits = function _countBits(w) { + var t = w; + var r = 0; + if (t >= 4096) { + r += 13; + t >>>= 13; + } + if (t >= 64) { + r += 7; + t >>>= 7; + } + if (t >= 8) { + r += 4; + t >>>= 4; + } + if (t >= 2) { + r += 2; + t >>>= 2; + } + return r + t; + }; + } + BN3.prototype._zeroBits = function _zeroBits(w) { + if (w === 0) return 26; + var t = w; + var r = 0; + if ((t & 8191) === 0) { + r += 13; + t >>>= 13; + } + if ((t & 127) === 0) { + r += 7; + t >>>= 7; + } + if ((t & 15) === 0) { + r += 4; + t >>>= 4; + } + if ((t & 3) === 0) { + r += 2; + t >>>= 2; + } + if ((t & 1) === 0) { + r++; + } + return r; + }; + BN3.prototype.bitLength = function bitLength() { + var w = this.words[this.length - 1]; + var hi = this._countBits(w); + return (this.length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w = new Array(num.bitLength()); + for (var bit = 0; bit < w.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w[bit] = num.words[off] >>> wbit & 1; + } + return w; + } + BN3.prototype.zeroBits = function zeroBits() { + if (this.isZero()) return 0; + var r = 0; + for (var i = 0; i < this.length; i++) { + var b = this._zeroBits(this.words[i]); + r += b; + if (b !== 26) break; + } + return r; + }; + BN3.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN3.prototype.toTwos = function toTwos(width) { + if (this.negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN3.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN3.prototype.isNeg = function isNeg() { + return this.negative !== 0; + }; + BN3.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN3.prototype.ineg = function ineg() { + if (!this.isZero()) { + this.negative ^= 1; + } + return this; + }; + BN3.prototype.iuor = function iuor(num) { + while (this.length < num.length) { + this.words[this.length++] = 0; + } + for (var i = 0; i < num.length; i++) { + this.words[i] = this.words[i] | num.words[i]; + } + return this._strip(); + }; + BN3.prototype.ior = function ior(num) { + assert2((this.negative | num.negative) === 0); + return this.iuor(num); + }; + BN3.prototype.or = function or(num) { + if (this.length > num.length) return this.clone().ior(num); + return num.clone().ior(this); + }; + BN3.prototype.uor = function uor(num) { + if (this.length > num.length) return this.clone().iuor(num); + return num.clone().iuor(this); + }; + BN3.prototype.iuand = function iuand(num) { + var b; + if (this.length > num.length) { + b = num; + } else { + b = this; + } + for (var i = 0; i < b.length; i++) { + this.words[i] = this.words[i] & num.words[i]; + } + this.length = b.length; + return this._strip(); + }; + BN3.prototype.iand = function iand(num) { + assert2((this.negative | num.negative) === 0); + return this.iuand(num); + }; + BN3.prototype.and = function and(num) { + if (this.length > num.length) return this.clone().iand(num); + return num.clone().iand(this); + }; + BN3.prototype.uand = function uand(num) { + if (this.length > num.length) return this.clone().iuand(num); + return num.clone().iuand(this); + }; + BN3.prototype.iuxor = function iuxor(num) { + var a; + var b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } + for (var i = 0; i < b.length; i++) { + this.words[i] = a.words[i] ^ b.words[i]; + } + if (this !== a) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + this.length = a.length; + return this._strip(); + }; + BN3.prototype.ixor = function ixor(num) { + assert2((this.negative | num.negative) === 0); + return this.iuxor(num); + }; + BN3.prototype.xor = function xor(num) { + if (this.length > num.length) return this.clone().ixor(num); + return num.clone().ixor(this); + }; + BN3.prototype.uxor = function uxor(num) { + if (this.length > num.length) return this.clone().iuxor(num); + return num.clone().iuxor(this); + }; + BN3.prototype.inotn = function inotn(width) { + assert2(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i = 0; i < bytesNeeded; i++) { + this.words[i] = ~this.words[i] & 67108863; + } + if (bitsLeft > 0) { + this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft; + } + return this._strip(); + }; + BN3.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN3.prototype.setn = function setn(bit, val) { + assert2(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + this.words[off] = this.words[off] | 1 << wbit; + } else { + this.words[off] = this.words[off] & ~(1 << wbit); + } + return this._strip(); + }; + BN3.prototype.iadd = function iadd(num) { + var r; + if (this.negative !== 0 && num.negative === 0) { + this.negative = 0; + r = this.isub(num); + this.negative ^= 1; + return this._normSign(); + } else if (this.negative === 0 && num.negative !== 0) { + num.negative = 0; + r = this.isub(num); + num.negative = 1; + return r._normSign(); + } + var a, b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) + (b.words[i] | 0) + carry; + this.words[i] = r & 67108863; + carry = r >>> 26; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + this.words[i] = r & 67108863; + carry = r >>> 26; + } + this.length = a.length; + if (carry !== 0) { + this.words[this.length] = carry; + this.length++; + } else if (a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + return this; + }; + BN3.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && this.negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && this.negative !== 0) { + this.negative = 0; + res = num.sub(this); + this.negative = 1; + return res; + } + if (this.length > num.length) return this.clone().iadd(num); + return num.clone().iadd(this); + }; + BN3.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r = this.iadd(num); + num.negative = 1; + return r._normSign(); + } else if (this.negative !== 0) { + this.negative = 0; + this.iadd(num); + this.negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + this.negative = 0; + this.length = 1; + this.words[0] = 0; + return this; + } + var a, b; + if (cmp > 0) { + a = this; + b = num; + } else { + a = num; + b = this; + } + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) - (b.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 67108863; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 67108863; + } + if (carry === 0 && i < a.length && a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + this.length = Math.max(this.length, i); + if (a !== this) { + this.negative = 1; + } + return this._strip(); + }; + BN3.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a = self2.words[0] | 0; + var b = num.words[0] | 0; + var r = a * b; + var lo = r & 67108863; + var carry = r / 67108864 | 0; + out.words[0] = lo; + for (var k = 1; k < len; k++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) { + var i = k - j | 0; + a = self2.words[i] | 0; + b = num.words[j] | 0; + r = a * b + rword; + ncarry += r / 67108864 | 0; + rword = r & 67108863; + } + out.words[k] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k] = carry | 0; + } else { + out.length--; + } + return out._strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a = self2.words; + var b = num.words; + var o = out.words; + var c = 0; + var lo; + var mid; + var hi; + var a0 = a[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a2 = a[2] | 0; + var al2 = a2 & 8191; + var ah2 = a2 >>> 13; + var a3 = a[3] | 0; + var al3 = a3 & 8191; + var ah3 = a3 >>> 13; + var a4 = a[4] | 0; + var al4 = a4 & 8191; + var ah4 = a4 >>> 13; + var a5 = a[5] | 0; + var al5 = a5 & 8191; + var ah5 = a5 >>> 13; + var a6 = a[6] | 0; + var al6 = a6 & 8191; + var ah6 = a6 >>> 13; + var a7 = a[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b2 = b[2] | 0; + var bl2 = b2 & 8191; + var bh2 = b2 >>> 13; + var b3 = b[3] | 0; + var bl3 = b3 & 8191; + var bh3 = b3 >>> 13; + var b4 = b[4] | 0; + var bl4 = b4 & 8191; + var bh4 = b4 >>> 13; + var b5 = b[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0; + w2 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0; + w3 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0; + c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o[0] = w0; + o[1] = w1; + o[2] = w2; + o[3] = w3; + o[4] = w4; + o[5] = w5; + o[6] = w6; + o[7] = w7; + o[8] = w8; + o[9] = w9; + o[10] = w10; + o[11] = w11; + o[12] = w12; + o[13] = w13; + o[14] = w14; + o[15] = w15; + o[16] = w16; + o[17] = w17; + o[18] = w18; + if (c !== 0) { + o[19] = c; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k = 0; k < out.length - 1; k++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) { + var i = k - j; + var a = self2.words[i] | 0; + var b = num.words[j] | 0; + var r = a * b; + var lo = r & 67108863; + ncarry = ncarry + (r / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k] = carry; + } else { + out.length--; + } + return out._strip(); + } + function jumboMulTo(self2, num, out) { + return bigMulTo(self2, num, out); + } + BN3.prototype.mulTo = function mulTo(num, out) { + var res; + var len = this.length + num.length; + if (this.length === 10 && num.length === 10) { + res = comb10MulTo(this, num, out); + } else if (len < 63) { + res = smallMulTo(this, num, out); + } else if (len < 1024) { + res = bigMulTo(this, num, out); + } else { + res = jumboMulTo(this, num, out); + } + return res; + }; + function FFTM(x, y) { + this.x = x; + this.y = y; + } + FFTM.prototype.makeRBT = function makeRBT(N) { + var t = new Array(N); + var l = BN3.prototype._countBits(N) - 1; + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N); + } + return t; + }; + FFTM.prototype.revBin = function revBin(x, l, N) { + if (x === 0 || x === N - 1) return x; + var rb = 0; + for (var i = 0; i < l; i++) { + rb |= (x & 1) << l - i - 1; + x >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]]; + itws[i] = iws[rbt[i]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N); + for (var s = 1; s < N; s <<= 1) { + var l = s << 1; + var rtwdf = Math.cos(2 * Math.PI / l); + var itwdf = Math.sin(2 * Math.PI / l); + for (var p = 0; p < N; p += l) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j = 0; j < s; j++) { + var re = rtws[p + j]; + var ie = itws[p + j]; + var ro = rtws[p + j + s]; + var io = itws[p + j + s]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p + j] = re + ro; + itws[p + j] = ie + io; + rtws[p + j + s] = re - ro; + itws[p + j + s] = ie - io; + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n, m) { + var N = Math.max(m, n) | 1; + var odd = N & 1; + var i = 0; + for (N = N / 2 | 0; N; N = N >>> 1) { + i++; + } + return 1 << i + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N) { + if (N <= 1) return; + for (var i = 0; i < N / 2; i++) { + var t = rws[i]; + rws[i] = rws[N - i - 1]; + rws[N - i - 1] = t; + t = iws[i]; + iws[i] = -iws[N - i - 1]; + iws[N - i - 1] = -t; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N) { + var carry = 0; + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry; + ws[i] = w & 67108863; + if (w < 67108864) { + carry = 0; + } else { + carry = w / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { + var carry = 0; + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0); + rws[2 * i] = carry & 8191; + carry = carry >>> 13; + rws[2 * i + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i = 2 * len; i < N; ++i) { + rws[i] = 0; + } + assert2(carry === 0); + assert2((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N) { + var ph = new Array(N); + for (var i = 0; i < N; i++) { + ph[i] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length); + var rbt = this.makeRBT(N); + var _ = this.stub(N); + var rws = new Array(N); + var rwst = new Array(N); + var iwst = new Array(N); + var nrws = new Array(N); + var nrwst = new Array(N); + var niwst = new Array(N); + var rmws = out.words; + rmws.length = N; + this.convert13b(x.words, x.length, rws, N); + this.convert13b(y.words, y.length, nrws, N); + this.transform(rws, _, rwst, iwst, N, rbt); + this.transform(nrws, _, nrwst, niwst, N, rbt); + for (var i = 0; i < N; i++) { + var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; + iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; + rwst[i] = rx; + } + this.conjugate(rwst, iwst, N); + this.transform(rwst, iwst, rmws, _, N, rbt); + this.conjugate(rmws, _, N); + this.normalize13b(rmws, N); + out.negative = x.negative ^ y.negative; + out.length = x.length + y.length; + return out._strip(); + }; + BN3.prototype.mul = function mul(num) { + var out = new BN3(null); + out.words = new Array(this.length + num.length); + return this.mulTo(num, out); + }; + BN3.prototype.mulf = function mulf(num) { + var out = new BN3(null); + out.words = new Array(this.length + num.length); + return jumboMulTo(this, num, out); + }; + BN3.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this); + }; + BN3.prototype.imuln = function imuln(num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + assert2(typeof num === "number"); + assert2(num < 67108864); + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num; + var lo = (w & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w / 67108864 | 0; + carry += lo >>> 26; + this.words[i] = lo & 67108863; + } + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + return isNegNum ? this.ineg() : this; + }; + BN3.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN3.prototype.sqr = function sqr() { + return this.mul(this); + }; + BN3.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN3.prototype.pow = function pow(num) { + var w = toBitArray(num); + if (w.length === 0) return new BN3(1); + var res = this; + for (var i = 0; i < w.length; i++, res = res.sqr()) { + if (w[i] !== 0) break; + } + if (++i < w.length) { + for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { + if (w[i] === 0) continue; + res = res.mul(q); + } + } + return res; + }; + BN3.prototype.iushln = function iushln(bits) { + assert2(typeof bits === "number" && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + var carryMask = 67108863 >>> 26 - r << 26 - r; + var i; + if (r !== 0) { + var carry = 0; + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask; + var c = (this.words[i] | 0) - newCarry << r; + this.words[i] = c | carry; + carry = newCarry >>> 26 - r; + } + if (carry) { + this.words[i] = carry; + this.length++; + } + } + if (s !== 0) { + for (i = this.length - 1; i >= 0; i--) { + this.words[i + s] = this.words[i]; + } + for (i = 0; i < s; i++) { + this.words[i] = 0; + } + this.length += s; + } + return this._strip(); + }; + BN3.prototype.ishln = function ishln(bits) { + assert2(this.negative === 0); + return this.iushln(bits); + }; + BN3.prototype.iushrn = function iushrn(bits, hint, extended) { + assert2(typeof bits === "number" && bits >= 0); + var h; + if (hint) { + h = (hint - hint % 26) / 26; + } else { + h = 0; + } + var r = bits % 26; + var s = Math.min((bits - r) / 26, this.length); + var mask = 67108863 ^ 67108863 >>> r << r; + var maskedWords = extended; + h -= s; + h = Math.max(0, h); + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i]; + } + maskedWords.length = s; + } + if (s === 0) { + } else if (this.length > s) { + this.length -= s; + for (i = 0; i < this.length; i++) { + this.words[i] = this.words[i + s]; + } + } else { + this.words[0] = 0; + this.length = 1; + } + var carry = 0; + for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { + var word = this.words[i] | 0; + this.words[i] = carry << 26 - r | word >>> r; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if (this.length === 0) { + this.words[0] = 0; + this.length = 1; + } + return this._strip(); + }; + BN3.prototype.ishrn = function ishrn(bits, hint, extended) { + assert2(this.negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN3.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN3.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN3.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN3.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN3.prototype.testn = function testn(bit) { + assert2(typeof bit === "number" && bit >= 0); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; + if (this.length <= s) return false; + var w = this.words[s]; + return !!(w & q); + }; + BN3.prototype.imaskn = function imaskn(bits) { + assert2(typeof bits === "number" && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + assert2(this.negative === 0, "imaskn works only with positive numbers"); + if (this.length <= s) { + return this; + } + if (r !== 0) { + s++; + } + this.length = Math.min(s, this.length); + if (r !== 0) { + var mask = 67108863 ^ 67108863 >>> r << r; + this.words[this.length - 1] &= mask; + } + return this._strip(); + }; + BN3.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN3.prototype.iaddn = function iaddn(num) { + assert2(typeof num === "number"); + assert2(num < 67108864); + if (num < 0) return this.isubn(-num); + if (this.negative !== 0) { + if (this.length === 1 && (this.words[0] | 0) <= num) { + this.words[0] = num - (this.words[0] | 0); + this.negative = 0; + return this; + } + this.negative = 0; + this.isubn(num); + this.negative = 1; + return this; + } + return this._iaddn(num); + }; + BN3.prototype._iaddn = function _iaddn(num) { + this.words[0] += num; + for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { + this.words[i] -= 67108864; + if (i === this.length - 1) { + this.words[i + 1] = 1; + } else { + this.words[i + 1]++; + } + } + this.length = Math.max(this.length, i + 1); + return this; + }; + BN3.prototype.isubn = function isubn(num) { + assert2(typeof num === "number"); + assert2(num < 67108864); + if (num < 0) return this.iaddn(-num); + if (this.negative !== 0) { + this.negative = 0; + this.iaddn(num); + this.negative = 1; + return this; + } + this.words[0] -= num; + if (this.length === 1 && this.words[0] < 0) { + this.words[0] = -this.words[0]; + this.negative = 1; + } else { + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 67108864; + this.words[i + 1] -= 1; + } + } + return this._strip(); + }; + BN3.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN3.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN3.prototype.iabs = function iabs() { + this.negative = 0; + return this; + }; + BN3.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN3.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i; + this._expand(len); + var w; + var carry = 0; + for (i = 0; i < num.length; i++) { + w = (this.words[i + shift] | 0) + carry; + var right = (num.words[i] | 0) * mul; + w -= right & 67108863; + carry = (w >> 26) - (right / 67108864 | 0); + this.words[i + shift] = w & 67108863; + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry; + carry = w >> 26; + this.words[i + shift] = w & 67108863; + } + if (carry === 0) return this._strip(); + assert2(carry === -1); + carry = 0; + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry; + carry = w >> 26; + this.words[i] = w & 67108863; + } + this.negative = 1; + return this._strip(); + }; + BN3.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = this.length - num.length; + var a = this.clone(); + var b = num; + var bhi = b.words[b.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b = b.ushln(shift); + a.iushln(shift); + bhi = b.words[b.length - 1] | 0; + } + var m = a.length - b.length; + var q; + if (mode !== "mod") { + q = new BN3(null); + q.length = m + 1; + q.words = new Array(q.length); + for (var i = 0; i < q.length; i++) { + q.words[i] = 0; + } + } + var diff = a.clone()._ishlnsubmul(b, 1, m); + if (diff.negative === 0) { + a = diff; + if (q) { + q.words[m] = 1; + } + } + for (var j = m - 1; j >= 0; j--) { + var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a._ishlnsubmul(b, qj, j); + while (a.negative !== 0) { + qj--; + a.negative = 0; + a._ishlnsubmul(b, 1, j); + if (!a.isZero()) { + a.negative ^= 1; + } + } + if (q) { + q.words[j] = qj; + } + } + if (q) { + q._strip(); + } + a._strip(); + if (mode !== "div" && shift !== 0) { + a.iushrn(shift); + } + return { + div: q || null, + mod: a + }; + }; + BN3.prototype.divmod = function divmod(num, mode, positive) { + assert2(!num.isZero()); + if (this.isZero()) { + return { + div: new BN3(0), + mod: new BN3(0) + }; + } + var div, mod, res; + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > this.length || this.cmp(num) < 0) { + return { + div: new BN3(0), + mod: this + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN3(this.modrn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN3(this.modrn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN3.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN3.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN3.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN3.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r2 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN3.prototype.modrn = function modrn(num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + assert2(num <= 67108863); + var p = (1 << 26) % num; + var acc = 0; + for (var i = this.length - 1; i >= 0; i--) { + acc = (p * acc + (this.words[i] | 0)) % num; + } + return isNegNum ? -acc : acc; + }; + BN3.prototype.modn = function modn(num) { + return this.modrn(num); + }; + BN3.prototype.idivn = function idivn(num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + assert2(num <= 67108863); + var carry = 0; + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 67108864; + this.words[i] = w / num | 0; + carry = w % num; + } + this._strip(); + return isNegNum ? this.ineg() : this; + }; + BN3.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN3.prototype.egcd = function egcd(p) { + assert2(p.negative === 0); + assert2(!p.isZero()); + var x = this; + var y = p.clone(); + if (x.negative !== 0) { + x = x.umod(p); + } else { + x = x.clone(); + } + var A = new BN3(1); + var B = new BN3(0); + var C = new BN3(0); + var D = new BN3(1); + var g = 0; + while (x.isEven() && y.isEven()) { + x.iushrn(1); + y.iushrn(1); + ++g; + } + var yp = y.clone(); + var xp = x.clone(); + while (!x.isZero()) { + for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) ; + if (i > 0) { + x.iushrn(i); + while (i-- > 0) { + if (A.isOdd() || B.isOdd()) { + A.iadd(yp); + B.isub(xp); + } + A.iushrn(1); + B.iushrn(1); + } + } + for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) ; + if (j > 0) { + y.iushrn(j); + while (j-- > 0) { + if (C.isOdd() || D.isOdd()) { + C.iadd(yp); + D.isub(xp); + } + C.iushrn(1); + D.iushrn(1); + } + } + if (x.cmp(y) >= 0) { + x.isub(y); + A.isub(C); + B.isub(D); + } else { + y.isub(x); + C.isub(A); + D.isub(B); + } + } + return { + a: C, + b: D, + gcd: y.iushln(g) + }; + }; + BN3.prototype._invmp = function _invmp(p) { + assert2(p.negative === 0); + assert2(!p.isZero()); + var a = this; + var b = p.clone(); + if (a.negative !== 0) { + a = a.umod(p); + } else { + a = a.clone(); + } + var x1 = new BN3(1); + var x2 = new BN3(0); + var delta = b.clone(); + while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { + for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) ; + if (i > 0) { + a.iushrn(i); + while (i-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) ; + if (j > 0) { + b.iushrn(j); + while (j-- > 0) { + if (x2.isOdd()) { + x2.iadd(delta); + } + x2.iushrn(1); + } + } + if (a.cmp(b) >= 0) { + a.isub(b); + x1.isub(x2); + } else { + b.isub(a); + x2.isub(x1); + } + } + var res; + if (a.cmpn(1) === 0) { + res = x1; + } else { + res = x2; + } + if (res.cmpn(0) < 0) { + res.iadd(p); + } + return res; + }; + BN3.prototype.gcd = function gcd(num) { + if (this.isZero()) return num.abs(); + if (num.isZero()) return this.abs(); + var a = this.clone(); + var b = num.clone(); + a.negative = 0; + b.negative = 0; + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1); + b.iushrn(1); + } + do { + while (a.isEven()) { + a.iushrn(1); + } + while (b.isEven()) { + b.iushrn(1); + } + var r = a.cmp(b); + if (r < 0) { + var t = a; + a = b; + b = t; + } else if (r === 0 || b.cmpn(1) === 0) { + break; + } + a.isub(b); + } while (true); + return b.iushln(shift); + }; + BN3.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN3.prototype.isEven = function isEven() { + return (this.words[0] & 1) === 0; + }; + BN3.prototype.isOdd = function isOdd2() { + return (this.words[0] & 1) === 1; + }; + BN3.prototype.andln = function andln(num) { + return this.words[0] & num; + }; + BN3.prototype.bincn = function bincn(bit) { + assert2(typeof bit === "number"); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; + if (this.length <= s) { + this._expand(s + 1); + this.words[s] |= q; + return this; + } + var carry = q; + for (var i = s; carry !== 0 && i < this.length; i++) { + var w = this.words[i] | 0; + w += carry; + carry = w >>> 26; + w &= 67108863; + this.words[i] = w; + } + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + return this; + }; + BN3.prototype.isZero = function isZero() { + return this.length === 1 && this.words[0] === 0; + }; + BN3.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if (this.negative !== 0 && !negative) return -1; + if (this.negative === 0 && negative) return 1; + this._strip(); + var res; + if (this.length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert2(num <= 67108863, "Number is too big"); + var w = this.words[0] | 0; + res = w === num ? 0 : w < num ? -1 : 1; + } + if (this.negative !== 0) return -res | 0; + return res; + }; + BN3.prototype.cmp = function cmp(num) { + if (this.negative !== 0 && num.negative === 0) return -1; + if (this.negative === 0 && num.negative !== 0) return 1; + var res = this.ucmp(num); + if (this.negative !== 0) return -res | 0; + return res; + }; + BN3.prototype.ucmp = function ucmp(num) { + if (this.length > num.length) return 1; + if (this.length < num.length) return -1; + var res = 0; + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0; + var b = num.words[i] | 0; + if (a === b) continue; + if (a < b) { + res = -1; + } else if (a > b) { + res = 1; + } + break; + } + return res; + }; + BN3.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN3.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN3.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN3.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN3.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN3.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN3.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN3.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN3.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN3.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN3.red = function red(num) { + return new Red(num); + }; + BN3.prototype.toRed = function toRed(ctx) { + assert2(!this.red, "Already a number in reduction context"); + assert2(this.negative === 0, "red works only with positives"); + return ctx.convertTo(this)._forceRed(ctx); + }; + BN3.prototype.fromRed = function fromRed() { + assert2(this.red, "fromRed works only with numbers in reduction context"); + return this.red.convertFrom(this); + }; + BN3.prototype._forceRed = function _forceRed(ctx) { + this.red = ctx; + return this; + }; + BN3.prototype.forceRed = function forceRed(ctx) { + assert2(!this.red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN3.prototype.redAdd = function redAdd(num) { + assert2(this.red, "redAdd works only with red numbers"); + return this.red.add(this, num); + }; + BN3.prototype.redIAdd = function redIAdd(num) { + assert2(this.red, "redIAdd works only with red numbers"); + return this.red.iadd(this, num); + }; + BN3.prototype.redSub = function redSub(num) { + assert2(this.red, "redSub works only with red numbers"); + return this.red.sub(this, num); + }; + BN3.prototype.redISub = function redISub(num) { + assert2(this.red, "redISub works only with red numbers"); + return this.red.isub(this, num); + }; + BN3.prototype.redShl = function redShl(num) { + assert2(this.red, "redShl works only with red numbers"); + return this.red.shl(this, num); + }; + BN3.prototype.redMul = function redMul(num) { + assert2(this.red, "redMul works only with red numbers"); + this.red._verify2(this, num); + return this.red.mul(this, num); + }; + BN3.prototype.redIMul = function redIMul(num) { + assert2(this.red, "redMul works only with red numbers"); + this.red._verify2(this, num); + return this.red.imul(this, num); + }; + BN3.prototype.redSqr = function redSqr() { + assert2(this.red, "redSqr works only with red numbers"); + this.red._verify1(this); + return this.red.sqr(this); + }; + BN3.prototype.redISqr = function redISqr() { + assert2(this.red, "redISqr works only with red numbers"); + this.red._verify1(this); + return this.red.isqr(this); + }; + BN3.prototype.redSqrt = function redSqrt() { + assert2(this.red, "redSqrt works only with red numbers"); + this.red._verify1(this); + return this.red.sqrt(this); + }; + BN3.prototype.redInvm = function redInvm() { + assert2(this.red, "redInvm works only with red numbers"); + this.red._verify1(this); + return this.red.invm(this); + }; + BN3.prototype.redNeg = function redNeg() { + assert2(this.red, "redNeg works only with red numbers"); + this.red._verify1(this); + return this.red.neg(this); + }; + BN3.prototype.redPow = function redPow(num) { + assert2(this.red && !num.red, "redPow(normalNum)"); + this.red._verify1(this); + return this.red.pow(this, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p) { + this.name = name; + this.p = new BN3(p, 16); + this.n = this.p.bitLength(); + this.k = new BN3(1).iushln(this.n).isub(this.p); + this.tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN3(null); + tmp.words = new Array(Math.ceil(this.n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r = num; + var rlen; + do { + this.split(r, this.tmp); + r = this.imulK(r); + r = r.iadd(this.tmp); + rlen = r.bitLength(); + } while (rlen > this.n); + var cmp = rlen < this.n ? -1 : r.ucmp(this.p); + if (cmp === 0) { + r.words[0] = 0; + r.length = 1; + } else if (cmp > 0) { + r.isub(this.p); + } else { + if (r.strip !== void 0) { + r.strip(); + } else { + r._strip(); + } + } + return r; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn(this.n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul(this.k); + }; + function K256() { + MPrime.call( + this, + "k256", + "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f" + ); + } + inherits(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i = 10; i < input.length; i++) { + var next = input.words[i] | 0; + input.words[i - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0; + lo += w * 977; + num.words[i] = lo & 67108863; + lo = w * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call( + this, + "p224", + "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001" + ); + } + inherits(P224, MPrime); + function P192() { + MPrime.call( + this, + "p192", + "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff" + ); + } + inherits(P192, MPrime); + function P25519() { + MPrime.call( + this, + "25519", + "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed" + ); + } + inherits(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN3._prime = function prime(name) { + if (primes[name]) return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m) { + if (typeof m === "string") { + var prime = BN3._prime(m); + this.m = prime.p; + this.prime = prime; + } else { + assert2(m.gtn(1), "modulus must be greater than 1"); + this.m = m; + this.prime = null; + } + } + Red.prototype._verify1 = function _verify1(a) { + assert2(a.negative === 0, "red works only with positives"); + assert2(a.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a, b) { + assert2((a.negative | b.negative) === 0, "red works only with positives"); + assert2( + a.red && a.red === b.red, + "red works only with red numbers" + ); + }; + Red.prototype.imod = function imod(a) { + if (this.prime) return this.prime.ireduce(a)._forceRed(this); + move(a, a.umod(this.m)._forceRed(this)); + return a; + }; + Red.prototype.neg = function neg(a) { + if (a.isZero()) { + return a.clone(); + } + return this.m.sub(a)._forceRed(this); + }; + Red.prototype.add = function add(a, b) { + this._verify2(a, b); + var res = a.add(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); + } + return res._forceRed(this); + }; + Red.prototype.iadd = function iadd(a, b) { + this._verify2(a, b); + var res = a.iadd(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); + } + return res; + }; + Red.prototype.sub = function sub(a, b) { + this._verify2(a, b); + var res = a.sub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res._forceRed(this); + }; + Red.prototype.isub = function isub(a, b) { + this._verify2(a, b); + var res = a.isub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res; + }; + Red.prototype.shl = function shl(a, num) { + this._verify1(a); + return this.imod(a.ushln(num)); + }; + Red.prototype.imul = function imul(a, b) { + this._verify2(a, b); + return this.imod(a.imul(b)); + }; + Red.prototype.mul = function mul(a, b) { + this._verify2(a, b); + return this.imod(a.mul(b)); + }; + Red.prototype.isqr = function isqr(a) { + return this.imul(a, a.clone()); + }; + Red.prototype.sqr = function sqr(a) { + return this.mul(a, a); + }; + Red.prototype.sqrt = function sqrt(a) { + if (a.isZero()) return a.clone(); + var mod3 = this.m.andln(3); + assert2(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = this.m.add(new BN3(1)).iushrn(2); + return this.pow(a, pow); + } + var q = this.m.subn(1); + var s = 0; + while (!q.isZero() && q.andln(1) === 0) { + s++; + q.iushrn(1); + } + assert2(!q.isZero()); + var one = new BN3(1).toRed(this); + var nOne = one.redNeg(); + var lpow = this.m.subn(1).iushrn(1); + var z = this.m.bitLength(); + z = new BN3(2 * z * z).toRed(this); + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne); + } + var c = this.pow(z, q); + var r = this.pow(a, q.addn(1).iushrn(1)); + var t = this.pow(a, q); + var m = s; + while (t.cmp(one) !== 0) { + var tmp = t; + for (var i = 0; tmp.cmp(one) !== 0; i++) { + tmp = tmp.redSqr(); + } + assert2(i < m); + var b = this.pow(c, new BN3(1).iushln(m - i - 1)); + r = r.redMul(b); + c = b.redSqr(); + t = t.redMul(c); + m = i; + } + return r; + }; + Red.prototype.invm = function invm(a) { + var inv = a._invmp(this.m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a, num) { + if (num.isZero()) return new BN3(1).toRed(this); + if (num.cmpn(1) === 0) return a.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN3(1).toRed(this); + wnd[1] = a; + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i = num.length - 1; i >= 0; i--) { + var word = num.words[i]; + for (var j = start - 1; j >= 0; j--) { + var bit = word >> j & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r = num.umod(this.m); + return r === num ? r.clone() : r; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN3.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m) { + Red.call(this, m); + this.shift = this.m.bitLength(); + if (this.shift % 26 !== 0) { + this.shift += 26 - this.shift % 26; + } + this.r = new BN3(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); + } + inherits(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln(this.shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r = this.imod(num.mul(this.rinv)); + r.red = null; + return r; + }; + Mont.prototype.imul = function imul(a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0; + a.length = 1; + return a; + } + var t = a.imul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); + } + return res._forceRed(this); + }; + Mont.prototype.mul = function mul(a, b) { + if (a.isZero() || b.isZero()) return new BN3(0)._forceRed(this); + var t = a.mul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); + } + return res._forceRed(this); + }; + Mont.prototype.invm = function invm(a) { + var res = this.imod(a._invmp(this.m).mul(this.r2)); + return res._forceRed(this); + }; + })(typeof module2 === "undefined" || module2, exports2); + } +}); + +// node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS({ + "node_modules/safe-buffer/index.js"(exports2, module2) { + var buffer = require("buffer"); + var Buffer3 = buffer.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) { + module2.exports = buffer; + } else { + copyProps(buffer, exports2); + exports2.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer3(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer3.prototype); + copyProps(Buffer3, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer3(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer3(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer3(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer.SlowBuffer(size); + }; + } +}); + +// node_modules/@solana/web3.js/node_modules/bs58/node_modules/base-x/src/index.js +var require_src = __commonJS({ + "node_modules/@solana/web3.js/node_modules/bs58/node_modules/base-x/src/index.js"(exports2, module2) { + "use strict"; + var _Buffer = require_safe_buffer().Buffer; + function base(ALPHABET) { + if (ALPHABET.length >= 255) { + throw new TypeError("Alphabet too long"); + } + var BASE_MAP = new Uint8Array(256); + for (var j = 0; j < BASE_MAP.length; j++) { + BASE_MAP[j] = 255; + } + for (var i = 0; i < ALPHABET.length; i++) { + var x = ALPHABET.charAt(i); + var xc = x.charCodeAt(0); + if (BASE_MAP[xc] !== 255) { + throw new TypeError(x + " is ambiguous"); + } + BASE_MAP[xc] = i; + } + var BASE2 = ALPHABET.length; + var LEADER = ALPHABET.charAt(0); + var FACTOR = Math.log(BASE2) / Math.log(256); + var iFACTOR = Math.log(256) / Math.log(BASE2); + function encode(source) { + if (Array.isArray(source) || source instanceof Uint8Array) { + source = _Buffer.from(source); + } + if (!_Buffer.isBuffer(source)) { + throw new TypeError("Expected Buffer"); + } + if (source.length === 0) { + return ""; + } + var zeroes = 0; + var length = 0; + var pbegin = 0; + var pend = source.length; + while (pbegin !== pend && source[pbegin] === 0) { + pbegin++; + zeroes++; + } + var size = (pend - pbegin) * iFACTOR + 1 >>> 0; + var b58 = new Uint8Array(size); + while (pbegin !== pend) { + var carry = source[pbegin]; + var i2 = 0; + for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) { + carry += 256 * b58[it1] >>> 0; + b58[it1] = carry % BASE2 >>> 0; + carry = carry / BASE2 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + pbegin++; + } + var it2 = size - length; + while (it2 !== size && b58[it2] === 0) { + it2++; + } + var str = LEADER.repeat(zeroes); + for (; it2 < size; ++it2) { + str += ALPHABET.charAt(b58[it2]); + } + return str; + } + function decodeUnsafe(source) { + if (typeof source !== "string") { + throw new TypeError("Expected String"); + } + if (source.length === 0) { + return _Buffer.alloc(0); + } + var psz = 0; + var zeroes = 0; + var length = 0; + while (source[psz] === LEADER) { + zeroes++; + psz++; + } + var size = (source.length - psz) * FACTOR + 1 >>> 0; + var b256 = new Uint8Array(size); + while (psz < source.length) { + var charCode = source.charCodeAt(psz); + if (charCode > 255) { + return; + } + var carry = BASE_MAP[charCode]; + if (carry === 255) { + return; + } + var i2 = 0; + for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) { + carry += BASE2 * b256[it3] >>> 0; + b256[it3] = carry % 256 >>> 0; + carry = carry / 256 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + psz++; + } + var it4 = size - length; + while (it4 !== size && b256[it4] === 0) { + it4++; + } + var vch = _Buffer.allocUnsafe(zeroes + (size - it4)); + vch.fill(0, 0, zeroes); + var j2 = zeroes; + while (it4 !== size) { + vch[j2++] = b256[it4++]; + } + return vch; + } + function decode(string) { + var buffer = decodeUnsafe(string); + if (buffer) { + return buffer; + } + throw new Error("Non-base" + BASE2 + " character"); + } + return { + encode, + decodeUnsafe, + decode + }; + } + module2.exports = base; + } +}); + +// node_modules/@solana/web3.js/node_modules/bs58/index.js +var require_bs58 = __commonJS({ + "node_modules/@solana/web3.js/node_modules/bs58/index.js"(exports2, module2) { + var basex = require_src(); + var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; + module2.exports = basex(ALPHABET); + } +}); + +// node_modules/@noble/hashes/sha256.js +var require_sha256 = __commonJS({ + "node_modules/@noble/hashes/sha256.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sha224 = exports2.SHA224 = exports2.sha256 = exports2.SHA256 = void 0; + var sha2_ts_1 = require_sha2(); + exports2.SHA256 = sha2_ts_1.SHA256; + exports2.sha256 = sha2_ts_1.sha256; + exports2.SHA224 = sha2_ts_1.SHA224; + exports2.sha224 = sha2_ts_1.sha224; + } +}); + +// node_modules/borsh/node_modules/bs58/node_modules/base-x/src/index.js +var require_src2 = __commonJS({ + "node_modules/borsh/node_modules/bs58/node_modules/base-x/src/index.js"(exports2, module2) { + "use strict"; + var _Buffer = require_safe_buffer().Buffer; + function base(ALPHABET) { + if (ALPHABET.length >= 255) { + throw new TypeError("Alphabet too long"); + } + var BASE_MAP = new Uint8Array(256); + for (var j = 0; j < BASE_MAP.length; j++) { + BASE_MAP[j] = 255; + } + for (var i = 0; i < ALPHABET.length; i++) { + var x = ALPHABET.charAt(i); + var xc = x.charCodeAt(0); + if (BASE_MAP[xc] !== 255) { + throw new TypeError(x + " is ambiguous"); + } + BASE_MAP[xc] = i; + } + var BASE2 = ALPHABET.length; + var LEADER = ALPHABET.charAt(0); + var FACTOR = Math.log(BASE2) / Math.log(256); + var iFACTOR = Math.log(256) / Math.log(BASE2); + function encode(source) { + if (Array.isArray(source) || source instanceof Uint8Array) { + source = _Buffer.from(source); + } + if (!_Buffer.isBuffer(source)) { + throw new TypeError("Expected Buffer"); + } + if (source.length === 0) { + return ""; + } + var zeroes = 0; + var length = 0; + var pbegin = 0; + var pend = source.length; + while (pbegin !== pend && source[pbegin] === 0) { + pbegin++; + zeroes++; + } + var size = (pend - pbegin) * iFACTOR + 1 >>> 0; + var b58 = new Uint8Array(size); + while (pbegin !== pend) { + var carry = source[pbegin]; + var i2 = 0; + for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) { + carry += 256 * b58[it1] >>> 0; + b58[it1] = carry % BASE2 >>> 0; + carry = carry / BASE2 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + pbegin++; + } + var it2 = size - length; + while (it2 !== size && b58[it2] === 0) { + it2++; + } + var str = LEADER.repeat(zeroes); + for (; it2 < size; ++it2) { + str += ALPHABET.charAt(b58[it2]); + } + return str; + } + function decodeUnsafe(source) { + if (typeof source !== "string") { + throw new TypeError("Expected String"); + } + if (source.length === 0) { + return _Buffer.alloc(0); + } + var psz = 0; + var zeroes = 0; + var length = 0; + while (source[psz] === LEADER) { + zeroes++; + psz++; + } + var size = (source.length - psz) * FACTOR + 1 >>> 0; + var b256 = new Uint8Array(size); + while (psz < source.length) { + var charCode = source.charCodeAt(psz); + if (charCode > 255) { + return; + } + var carry = BASE_MAP[charCode]; + if (carry === 255) { + return; + } + var i2 = 0; + for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) { + carry += BASE2 * b256[it3] >>> 0; + b256[it3] = carry % 256 >>> 0; + carry = carry / 256 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + psz++; + } + var it4 = size - length; + while (it4 !== size && b256[it4] === 0) { + it4++; + } + var vch = _Buffer.allocUnsafe(zeroes + (size - it4)); + vch.fill(0, 0, zeroes); + var j2 = zeroes; + while (it4 !== size) { + vch[j2++] = b256[it4++]; + } + return vch; + } + function decode(string) { + var buffer = decodeUnsafe(string); + if (buffer) { + return buffer; + } + throw new Error("Non-base" + BASE2 + " character"); + } + return { + encode, + decodeUnsafe, + decode + }; + } + module2.exports = base; + } +}); + +// node_modules/borsh/node_modules/bs58/index.js +var require_bs582 = __commonJS({ + "node_modules/borsh/node_modules/bs58/index.js"(exports2, module2) { + var basex = require_src2(); + var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; + module2.exports = basex(ALPHABET); + } +}); + +// node_modules/text-encoding-utf-8/lib/encoding.lib.js +var require_encoding_lib = __commonJS({ + "node_modules/text-encoding-utf-8/lib/encoding.lib.js"(exports2) { + "use strict"; + function inRange(a, min, max) { + return min <= a && a <= max; + } + function ToDictionary(o) { + if (o === void 0) return {}; + if (o === Object(o)) return o; + throw TypeError("Could not convert argument to dictionary"); + } + function stringToCodePoints(string) { + var s = String(string); + var n = s.length; + var i = 0; + var u = []; + while (i < n) { + var c = s.charCodeAt(i); + if (c < 55296 || c > 57343) { + u.push(c); + } else if (56320 <= c && c <= 57343) { + u.push(65533); + } else if (55296 <= c && c <= 56319) { + if (i === n - 1) { + u.push(65533); + } else { + var d = string.charCodeAt(i + 1); + if (56320 <= d && d <= 57343) { + var a = c & 1023; + var b = d & 1023; + u.push(65536 + (a << 10) + b); + i += 1; + } else { + u.push(65533); + } + } + } + i += 1; + } + return u; + } + function codePointsToString(code_points) { + var s = ""; + for (var i = 0; i < code_points.length; ++i) { + var cp = code_points[i]; + if (cp <= 65535) { + s += String.fromCharCode(cp); + } else { + cp -= 65536; + s += String.fromCharCode( + (cp >> 10) + 55296, + (cp & 1023) + 56320 + ); + } + } + return s; + } + var end_of_stream = -1; + function Stream(tokens) { + this.tokens = [].slice.call(tokens); + } + Stream.prototype = { + /** + * @return {boolean} True if end-of-stream has been hit. + */ + endOfStream: function() { + return !this.tokens.length; + }, + /** + * When a token is read from a stream, the first token in the + * stream must be returned and subsequently removed, and + * end-of-stream must be returned otherwise. + * + * @return {number} Get the next token from the stream, or + * end_of_stream. + */ + read: function() { + if (!this.tokens.length) + return end_of_stream; + return this.tokens.shift(); + }, + /** + * When one or more tokens are prepended to a stream, those tokens + * must be inserted, in given order, before the first token in the + * stream. + * + * @param {(number|!Array.)} token The token(s) to prepend to the stream. + */ + prepend: function(token) { + if (Array.isArray(token)) { + var tokens = ( + /**@type {!Array.}*/ + token + ); + while (tokens.length) + this.tokens.unshift(tokens.pop()); + } else { + this.tokens.unshift(token); + } + }, + /** + * When one or more tokens are pushed to a stream, those tokens + * must be inserted, in given order, after the last token in the + * stream. + * + * @param {(number|!Array.)} token The tokens(s) to prepend to the stream. + */ + push: function(token) { + if (Array.isArray(token)) { + var tokens = ( + /**@type {!Array.}*/ + token + ); + while (tokens.length) + this.tokens.push(tokens.shift()); + } else { + this.tokens.push(token); + } + } + }; + var finished = -1; + function decoderError(fatal, opt_code_point) { + if (fatal) + throw TypeError("Decoder error"); + return opt_code_point || 65533; + } + var DEFAULT_ENCODING = "utf-8"; + function TextDecoder2(encoding, options) { + if (!(this instanceof TextDecoder2)) { + return new TextDecoder2(encoding, options); + } + encoding = encoding !== void 0 ? String(encoding).toLowerCase() : DEFAULT_ENCODING; + if (encoding !== DEFAULT_ENCODING) { + throw new Error("Encoding not supported. Only utf-8 is supported"); + } + options = ToDictionary(options); + this._streaming = false; + this._BOMseen = false; + this._decoder = null; + this._fatal = Boolean(options["fatal"]); + this._ignoreBOM = Boolean(options["ignoreBOM"]); + Object.defineProperty(this, "encoding", { value: "utf-8" }); + Object.defineProperty(this, "fatal", { value: this._fatal }); + Object.defineProperty(this, "ignoreBOM", { value: this._ignoreBOM }); + } + TextDecoder2.prototype = { + /** + * @param {ArrayBufferView=} input The buffer of bytes to decode. + * @param {Object=} options + * @return {string} The decoded string. + */ + decode: function decode(input, options) { + var bytes7; + if (typeof input === "object" && input instanceof ArrayBuffer) { + bytes7 = new Uint8Array(input); + } else if (typeof input === "object" && "buffer" in input && input.buffer instanceof ArrayBuffer) { + bytes7 = new Uint8Array( + input.buffer, + input.byteOffset, + input.byteLength + ); + } else { + bytes7 = new Uint8Array(0); + } + options = ToDictionary(options); + if (!this._streaming) { + this._decoder = new UTF8Decoder({ fatal: this._fatal }); + this._BOMseen = false; + } + this._streaming = Boolean(options["stream"]); + var input_stream = new Stream(bytes7); + var code_points = []; + var result; + while (!input_stream.endOfStream()) { + result = this._decoder.handler(input_stream, input_stream.read()); + if (result === finished) + break; + if (result === null) + continue; + if (Array.isArray(result)) + code_points.push.apply( + code_points, + /**@type {!Array.}*/ + result + ); + else + code_points.push(result); + } + if (!this._streaming) { + do { + result = this._decoder.handler(input_stream, input_stream.read()); + if (result === finished) + break; + if (result === null) + continue; + if (Array.isArray(result)) + code_points.push.apply( + code_points, + /**@type {!Array.}*/ + result + ); + else + code_points.push(result); + } while (!input_stream.endOfStream()); + this._decoder = null; + } + if (code_points.length) { + if (["utf-8"].indexOf(this.encoding) !== -1 && !this._ignoreBOM && !this._BOMseen) { + if (code_points[0] === 65279) { + this._BOMseen = true; + code_points.shift(); + } else { + this._BOMseen = true; + } + } + } + return codePointsToString(code_points); + } + }; + function TextEncoder2(encoding, options) { + if (!(this instanceof TextEncoder2)) + return new TextEncoder2(encoding, options); + encoding = encoding !== void 0 ? String(encoding).toLowerCase() : DEFAULT_ENCODING; + if (encoding !== DEFAULT_ENCODING) { + throw new Error("Encoding not supported. Only utf-8 is supported"); + } + options = ToDictionary(options); + this._streaming = false; + this._encoder = null; + this._options = { fatal: Boolean(options["fatal"]) }; + Object.defineProperty(this, "encoding", { value: "utf-8" }); + } + TextEncoder2.prototype = { + /** + * @param {string=} opt_string The string to encode. + * @param {Object=} options + * @return {Uint8Array} Encoded bytes, as a Uint8Array. + */ + encode: function encode(opt_string, options) { + opt_string = opt_string ? String(opt_string) : ""; + options = ToDictionary(options); + if (!this._streaming) + this._encoder = new UTF8Encoder(this._options); + this._streaming = Boolean(options["stream"]); + var bytes7 = []; + var input_stream = new Stream(stringToCodePoints(opt_string)); + var result; + while (!input_stream.endOfStream()) { + result = this._encoder.handler(input_stream, input_stream.read()); + if (result === finished) + break; + if (Array.isArray(result)) + bytes7.push.apply( + bytes7, + /**@type {!Array.}*/ + result + ); + else + bytes7.push(result); + } + if (!this._streaming) { + while (true) { + result = this._encoder.handler(input_stream, input_stream.read()); + if (result === finished) + break; + if (Array.isArray(result)) + bytes7.push.apply( + bytes7, + /**@type {!Array.}*/ + result + ); + else + bytes7.push(result); + } + this._encoder = null; + } + return new Uint8Array(bytes7); + } + }; + function UTF8Decoder(options) { + var fatal = options.fatal; + var utf8_code_point = 0, utf8_bytes_seen = 0, utf8_bytes_needed = 0, utf8_lower_boundary = 128, utf8_upper_boundary = 191; + this.handler = function(stream, bite) { + if (bite === end_of_stream && utf8_bytes_needed !== 0) { + utf8_bytes_needed = 0; + return decoderError(fatal); + } + if (bite === end_of_stream) + return finished; + if (utf8_bytes_needed === 0) { + if (inRange(bite, 0, 127)) { + return bite; + } + if (inRange(bite, 194, 223)) { + utf8_bytes_needed = 1; + utf8_code_point = bite - 192; + } else if (inRange(bite, 224, 239)) { + if (bite === 224) + utf8_lower_boundary = 160; + if (bite === 237) + utf8_upper_boundary = 159; + utf8_bytes_needed = 2; + utf8_code_point = bite - 224; + } else if (inRange(bite, 240, 244)) { + if (bite === 240) + utf8_lower_boundary = 144; + if (bite === 244) + utf8_upper_boundary = 143; + utf8_bytes_needed = 3; + utf8_code_point = bite - 240; + } else { + return decoderError(fatal); + } + utf8_code_point = utf8_code_point << 6 * utf8_bytes_needed; + return null; + } + if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) { + utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0; + utf8_lower_boundary = 128; + utf8_upper_boundary = 191; + stream.prepend(bite); + return decoderError(fatal); + } + utf8_lower_boundary = 128; + utf8_upper_boundary = 191; + utf8_bytes_seen += 1; + utf8_code_point += bite - 128 << 6 * (utf8_bytes_needed - utf8_bytes_seen); + if (utf8_bytes_seen !== utf8_bytes_needed) + return null; + var code_point = utf8_code_point; + utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0; + return code_point; + }; + } + function UTF8Encoder(options) { + var fatal = options.fatal; + this.handler = function(stream, code_point) { + if (code_point === end_of_stream) + return finished; + if (inRange(code_point, 0, 127)) + return code_point; + var count, offset; + if (inRange(code_point, 128, 2047)) { + count = 1; + offset = 192; + } else if (inRange(code_point, 2048, 65535)) { + count = 2; + offset = 224; + } else if (inRange(code_point, 65536, 1114111)) { + count = 3; + offset = 240; + } + var bytes7 = [(code_point >> 6 * count) + offset]; + while (count > 0) { + var temp = code_point >> 6 * (count - 1); + bytes7.push(128 | temp & 63); + count -= 1; + } + return bytes7; + }; + } + exports2.TextEncoder = TextEncoder2; + exports2.TextDecoder = TextDecoder2; + } +}); + +// node_modules/borsh/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/borsh/lib/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.deserializeUnchecked = exports2.deserialize = exports2.serialize = exports2.BinaryReader = exports2.BinaryWriter = exports2.BorshError = exports2.baseDecode = exports2.baseEncode = void 0; + var bn_js_1 = __importDefault2(require_bn()); + var bs58_1 = __importDefault2(require_bs582()); + var encoding = __importStar2(require_encoding_lib()); + var ResolvedTextDecoder = typeof TextDecoder !== "function" ? encoding.TextDecoder : TextDecoder; + var textDecoder = new ResolvedTextDecoder("utf-8", { fatal: true }); + function baseEncode(value) { + if (typeof value === "string") { + value = Buffer.from(value, "utf8"); + } + return bs58_1.default.encode(Buffer.from(value)); + } + exports2.baseEncode = baseEncode; + function baseDecode(value) { + return Buffer.from(bs58_1.default.decode(value)); + } + exports2.baseDecode = baseDecode; + var INITIAL_LENGTH = 1024; + var BorshError = class extends Error { + constructor(message) { + super(message); + this.fieldPath = []; + this.originalMessage = message; + } + addToFieldPath(fieldName) { + this.fieldPath.splice(0, 0, fieldName); + this.message = this.originalMessage + ": " + this.fieldPath.join("."); + } + }; + exports2.BorshError = BorshError; + var BinaryWriter = class { + constructor() { + this.buf = Buffer.alloc(INITIAL_LENGTH); + this.length = 0; + } + maybeResize() { + if (this.buf.length < 16 + this.length) { + this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]); + } + } + writeU8(value) { + this.maybeResize(); + this.buf.writeUInt8(value, this.length); + this.length += 1; + } + writeU16(value) { + this.maybeResize(); + this.buf.writeUInt16LE(value, this.length); + this.length += 2; + } + writeU32(value) { + this.maybeResize(); + this.buf.writeUInt32LE(value, this.length); + this.length += 4; + } + writeU64(value) { + this.maybeResize(); + this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray("le", 8))); + } + writeU128(value) { + this.maybeResize(); + this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray("le", 16))); + } + writeU256(value) { + this.maybeResize(); + this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray("le", 32))); + } + writeU512(value) { + this.maybeResize(); + this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray("le", 64))); + } + writeBuffer(buffer) { + this.buf = Buffer.concat([ + Buffer.from(this.buf.subarray(0, this.length)), + buffer, + Buffer.alloc(INITIAL_LENGTH) + ]); + this.length += buffer.length; + } + writeString(str) { + this.maybeResize(); + const b = Buffer.from(str, "utf8"); + this.writeU32(b.length); + this.writeBuffer(b); + } + writeFixedArray(array11) { + this.writeBuffer(Buffer.from(array11)); + } + writeArray(array11, fn) { + this.maybeResize(); + this.writeU32(array11.length); + for (const elem of array11) { + this.maybeResize(); + fn(elem); + } + } + toArray() { + return this.buf.subarray(0, this.length); + } + }; + exports2.BinaryWriter = BinaryWriter; + function handlingRangeError(target, propertyKey, propertyDescriptor) { + const originalMethod = propertyDescriptor.value; + propertyDescriptor.value = function(...args) { + try { + return originalMethod.apply(this, args); + } catch (e) { + if (e instanceof RangeError) { + const code = e.code; + if (["ERR_BUFFER_OUT_OF_BOUNDS", "ERR_OUT_OF_RANGE"].indexOf(code) >= 0) { + throw new BorshError("Reached the end of buffer when deserializing"); + } + } + throw e; + } + }; + } + var BinaryReader = class { + constructor(buf) { + this.buf = buf; + this.offset = 0; + } + readU8() { + const value = this.buf.readUInt8(this.offset); + this.offset += 1; + return value; + } + readU16() { + const value = this.buf.readUInt16LE(this.offset); + this.offset += 2; + return value; + } + readU32() { + const value = this.buf.readUInt32LE(this.offset); + this.offset += 4; + return value; + } + readU64() { + const buf = this.readBuffer(8); + return new bn_js_1.default(buf, "le"); + } + readU128() { + const buf = this.readBuffer(16); + return new bn_js_1.default(buf, "le"); + } + readU256() { + const buf = this.readBuffer(32); + return new bn_js_1.default(buf, "le"); + } + readU512() { + const buf = this.readBuffer(64); + return new bn_js_1.default(buf, "le"); + } + readBuffer(len) { + if (this.offset + len > this.buf.length) { + throw new BorshError(`Expected buffer length ${len} isn't within bounds`); + } + const result = this.buf.slice(this.offset, this.offset + len); + this.offset += len; + return result; + } + readString() { + const len = this.readU32(); + const buf = this.readBuffer(len); + try { + return textDecoder.decode(buf); + } catch (e) { + throw new BorshError(`Error decoding UTF-8 string: ${e}`); + } + } + readFixedArray(len) { + return new Uint8Array(this.readBuffer(len)); + } + readArray(fn) { + const len = this.readU32(); + const result = Array(); + for (let i = 0; i < len; ++i) { + result.push(fn()); + } + return result; + } + }; + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readU8", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readU16", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readU32", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readU64", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readU128", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readU256", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readU512", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readString", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readFixedArray", null); + __decorate2([ + handlingRangeError + ], BinaryReader.prototype, "readArray", null); + exports2.BinaryReader = BinaryReader; + function capitalizeFirstLetter(string) { + return string.charAt(0).toUpperCase() + string.slice(1); + } + function serializeField(schema, fieldName, value, fieldType, writer) { + try { + if (typeof fieldType === "string") { + writer[`write${capitalizeFirstLetter(fieldType)}`](value); + } else if (fieldType instanceof Array) { + if (typeof fieldType[0] === "number") { + if (value.length !== fieldType[0]) { + throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`); + } + writer.writeFixedArray(value); + } else if (fieldType.length === 2 && typeof fieldType[1] === "number") { + if (value.length !== fieldType[1]) { + throw new BorshError(`Expecting byte array of length ${fieldType[1]}, but got ${value.length} bytes`); + } + for (let i = 0; i < fieldType[1]; i++) { + serializeField(schema, null, value[i], fieldType[0], writer); + } + } else { + writer.writeArray(value, (item) => { + serializeField(schema, fieldName, item, fieldType[0], writer); + }); + } + } else if (fieldType.kind !== void 0) { + switch (fieldType.kind) { + case "option": { + if (value === null || value === void 0) { + writer.writeU8(0); + } else { + writer.writeU8(1); + serializeField(schema, fieldName, value, fieldType.type, writer); + } + break; + } + case "map": { + writer.writeU32(value.size); + value.forEach((val, key) => { + serializeField(schema, fieldName, key, fieldType.key, writer); + serializeField(schema, fieldName, val, fieldType.value, writer); + }); + break; + } + default: + throw new BorshError(`FieldType ${fieldType} unrecognized`); + } + } else { + serializeStruct(schema, value, writer); + } + } catch (error) { + if (error instanceof BorshError) { + error.addToFieldPath(fieldName); + } + throw error; + } + } + function serializeStruct(schema, obj, writer) { + if (typeof obj.borshSerialize === "function") { + obj.borshSerialize(writer); + return; + } + const structSchema = schema.get(obj.constructor); + if (!structSchema) { + throw new BorshError(`Class ${obj.constructor.name} is missing in schema`); + } + if (structSchema.kind === "struct") { + structSchema.fields.map(([fieldName, fieldType]) => { + serializeField(schema, fieldName, obj[fieldName], fieldType, writer); + }); + } else if (structSchema.kind === "enum") { + const name = obj[structSchema.field]; + for (let idx = 0; idx < structSchema.values.length; ++idx) { + const [fieldName, fieldType] = structSchema.values[idx]; + if (fieldName === name) { + writer.writeU8(idx); + serializeField(schema, fieldName, obj[fieldName], fieldType, writer); + break; + } + } + } else { + throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`); + } + } + function serialize(schema, obj, Writer = BinaryWriter) { + const writer = new Writer(); + serializeStruct(schema, obj, writer); + return writer.toArray(); + } + exports2.serialize = serialize; + function deserializeField(schema, fieldName, fieldType, reader) { + try { + if (typeof fieldType === "string") { + return reader[`read${capitalizeFirstLetter(fieldType)}`](); + } + if (fieldType instanceof Array) { + if (typeof fieldType[0] === "number") { + return reader.readFixedArray(fieldType[0]); + } else if (typeof fieldType[1] === "number") { + const arr = []; + for (let i = 0; i < fieldType[1]; i++) { + arr.push(deserializeField(schema, null, fieldType[0], reader)); + } + return arr; + } else { + return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader)); + } + } + if (fieldType.kind === "option") { + const option = reader.readU8(); + if (option) { + return deserializeField(schema, fieldName, fieldType.type, reader); + } + return void 0; + } + if (fieldType.kind === "map") { + let map = /* @__PURE__ */ new Map(); + const length = reader.readU32(); + for (let i = 0; i < length; i++) { + const key = deserializeField(schema, fieldName, fieldType.key, reader); + const val = deserializeField(schema, fieldName, fieldType.value, reader); + map.set(key, val); + } + return map; + } + return deserializeStruct(schema, fieldType, reader); + } catch (error) { + if (error instanceof BorshError) { + error.addToFieldPath(fieldName); + } + throw error; + } + } + function deserializeStruct(schema, classType, reader) { + if (typeof classType.borshDeserialize === "function") { + return classType.borshDeserialize(reader); + } + const structSchema = schema.get(classType); + if (!structSchema) { + throw new BorshError(`Class ${classType.name} is missing in schema`); + } + if (structSchema.kind === "struct") { + const result = {}; + for (const [fieldName, fieldType] of schema.get(classType).fields) { + result[fieldName] = deserializeField(schema, fieldName, fieldType, reader); + } + return new classType(result); + } + if (structSchema.kind === "enum") { + const idx = reader.readU8(); + if (idx >= structSchema.values.length) { + throw new BorshError(`Enum index: ${idx} is out of range`); + } + const [fieldName, fieldType] = structSchema.values[idx]; + const fieldValue = deserializeField(schema, fieldName, fieldType, reader); + return new classType({ [fieldName]: fieldValue }); + } + throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`); + } + function deserialize(schema, classType, buffer, Reader = BinaryReader) { + const reader = new Reader(buffer); + const result = deserializeStruct(schema, classType, reader); + if (reader.offset < buffer.length) { + throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`); + } + return result; + } + exports2.deserialize = deserialize; + function deserializeUnchecked(schema, classType, buffer, Reader = BinaryReader) { + const reader = new Reader(buffer); + return deserializeStruct(schema, classType, reader); + } + exports2.deserializeUnchecked = deserializeUnchecked; + } +}); + +// node_modules/@solana/buffer-layout/lib/Layout.js +var require_Layout = __commonJS({ + "node_modules/@solana/buffer-layout/lib/Layout.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.s16 = exports2.s8 = exports2.nu64be = exports2.u48be = exports2.u40be = exports2.u32be = exports2.u24be = exports2.u16be = exports2.nu64 = exports2.u48 = exports2.u40 = exports2.u32 = exports2.u24 = exports2.u16 = exports2.u8 = exports2.offset = exports2.greedy = exports2.Constant = exports2.UTF8 = exports2.CString = exports2.Blob = exports2.Boolean = exports2.BitField = exports2.BitStructure = exports2.VariantLayout = exports2.Union = exports2.UnionLayoutDiscriminator = exports2.UnionDiscriminator = exports2.Structure = exports2.Sequence = exports2.DoubleBE = exports2.Double = exports2.FloatBE = exports2.Float = exports2.NearInt64BE = exports2.NearInt64 = exports2.NearUInt64BE = exports2.NearUInt64 = exports2.IntBE = exports2.Int = exports2.UIntBE = exports2.UInt = exports2.OffsetLayout = exports2.GreedyCount = exports2.ExternalLayout = exports2.bindConstructorLayout = exports2.nameWithProperty = exports2.Layout = exports2.uint8ArrayToBuffer = exports2.checkUint8Array = void 0; + exports2.constant = exports2.utf8 = exports2.cstr = exports2.blob = exports2.unionLayoutDiscriminator = exports2.union = exports2.seq = exports2.bits = exports2.struct = exports2.f64be = exports2.f64 = exports2.f32be = exports2.f32 = exports2.ns64be = exports2.s48be = exports2.s40be = exports2.s32be = exports2.s24be = exports2.s16be = exports2.ns64 = exports2.s48 = exports2.s40 = exports2.s32 = exports2.s24 = void 0; + var buffer_1 = require("buffer"); + function checkUint8Array(b) { + if (!(b instanceof Uint8Array)) { + throw new TypeError("b must be a Uint8Array"); + } + } + exports2.checkUint8Array = checkUint8Array; + function uint8ArrayToBuffer(b) { + checkUint8Array(b); + return buffer_1.Buffer.from(b.buffer, b.byteOffset, b.length); + } + exports2.uint8ArrayToBuffer = uint8ArrayToBuffer; + var Layout = class { + constructor(span, property) { + if (!Number.isInteger(span)) { + throw new TypeError("span must be an integer"); + } + this.span = span; + this.property = property; + } + /** Function to create an Object into which decoded properties will + * be written. + * + * Used only for layouts that {@link Layout#decode|decode} to Object + * instances, which means: + * * {@link Structure} + * * {@link Union} + * * {@link VariantLayout} + * * {@link BitStructure} + * + * If left undefined the JavaScript representation of these layouts + * will be Object instances. + * + * See {@link bindConstructorLayout}. + */ + makeDestinationObject() { + return {}; + } + /** + * Calculate the span of a specific instance of a layout. + * + * @param {Uint8Array} b - the buffer that contains an encoded instance. + * + * @param {Number} [offset] - the offset at which the encoded instance + * starts. If absent a zero offset is inferred. + * + * @return {Number} - the number of bytes covered by the layout + * instance. If this method is not overridden in a subclass the + * definition-time constant {@link Layout#span|span} will be + * returned. + * + * @throws {RangeError} - if the length of the value cannot be + * determined. + */ + getSpan(b, offset) { + if (0 > this.span) { + throw new RangeError("indeterminate span"); + } + return this.span; + } + /** + * Replicate the layout using a new property. + * + * This function must be used to get a structurally-equivalent layout + * with a different name since all {@link Layout} instances are + * immutable. + * + * **NOTE** This is a shallow copy. All fields except {@link + * Layout#property|property} are strictly equal to the origin layout. + * + * @param {String} property - the value for {@link + * Layout#property|property} in the replica. + * + * @returns {Layout} - the copy with {@link Layout#property|property} + * set to `property`. + */ + replicate(property) { + const rv = Object.create(this.constructor.prototype); + Object.assign(rv, this); + rv.property = property; + return rv; + } + /** + * Create an object from layout properties and an array of values. + * + * **NOTE** This function returns `undefined` if invoked on a layout + * that does not return its value as an Object. Objects are + * returned for things that are a {@link Structure}, which includes + * {@link VariantLayout|variant layouts} if they are structures, and + * excludes {@link Union}s. If you want this feature for a union + * you must use {@link Union.getVariant|getVariant} to select the + * desired layout. + * + * @param {Array} values - an array of values that correspond to the + * default order for properties. As with {@link Layout#decode|decode} + * layout elements that have no property name are skipped when + * iterating over the array values. Only the top-level properties are + * assigned; arguments are not assigned to properties of contained + * layouts. Any unused values are ignored. + * + * @return {(Object|undefined)} + */ + fromArray(values) { + return void 0; + } + }; + exports2.Layout = Layout; + function nameWithProperty(name, lo) { + if (lo.property) { + return name + "[" + lo.property + "]"; + } + return name; + } + exports2.nameWithProperty = nameWithProperty; + function bindConstructorLayout(Class, layout) { + if ("function" !== typeof Class) { + throw new TypeError("Class must be constructor"); + } + if (Object.prototype.hasOwnProperty.call(Class, "layout_")) { + throw new Error("Class is already bound to a layout"); + } + if (!(layout && layout instanceof Layout)) { + throw new TypeError("layout must be a Layout"); + } + if (Object.prototype.hasOwnProperty.call(layout, "boundConstructor_")) { + throw new Error("layout is already bound to a constructor"); + } + Class.layout_ = layout; + layout.boundConstructor_ = Class; + layout.makeDestinationObject = () => new Class(); + Object.defineProperty(Class.prototype, "encode", { + value(b, offset) { + return layout.encode(this, b, offset); + }, + writable: true + }); + Object.defineProperty(Class, "decode", { + value(b, offset) { + return layout.decode(b, offset); + }, + writable: true + }); + } + exports2.bindConstructorLayout = bindConstructorLayout; + var ExternalLayout = class extends Layout { + /** + * Return `true` iff the external layout decodes to an unsigned + * integer layout. + * + * In that case it can be used as the source of {@link + * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths}, + * or as {@link UnionLayoutDiscriminator#layout|external union + * discriminators}. + * + * @abstract + */ + isCount() { + throw new Error("ExternalLayout is abstract"); + } + }; + exports2.ExternalLayout = ExternalLayout; + var GreedyCount = class extends ExternalLayout { + constructor(elementSpan = 1, property) { + if (!Number.isInteger(elementSpan) || 0 >= elementSpan) { + throw new TypeError("elementSpan must be a (positive) integer"); + } + super(-1, property); + this.elementSpan = elementSpan; + } + /** @override */ + isCount() { + return true; + } + /** @override */ + decode(b, offset = 0) { + checkUint8Array(b); + const rem = b.length - offset; + return Math.floor(rem / this.elementSpan); + } + /** @override */ + encode(src, b, offset) { + return 0; + } + }; + exports2.GreedyCount = GreedyCount; + var OffsetLayout = class extends ExternalLayout { + constructor(layout, offset = 0, property) { + if (!(layout instanceof Layout)) { + throw new TypeError("layout must be a Layout"); + } + if (!Number.isInteger(offset)) { + throw new TypeError("offset must be integer or undefined"); + } + super(layout.span, property || layout.property); + this.layout = layout; + this.offset = offset; + } + /** @override */ + isCount() { + return this.layout instanceof UInt || this.layout instanceof UIntBE; + } + /** @override */ + decode(b, offset = 0) { + return this.layout.decode(b, offset + this.offset); + } + /** @override */ + encode(src, b, offset = 0) { + return this.layout.encode(src, b, offset + this.offset); + } + }; + exports2.OffsetLayout = OffsetLayout; + var UInt = class extends Layout { + constructor(span, property) { + super(span, property); + if (6 < this.span) { + throw new RangeError("span must not exceed 6 bytes"); + } + } + /** @override */ + decode(b, offset = 0) { + return uint8ArrayToBuffer(b).readUIntLE(offset, this.span); + } + /** @override */ + encode(src, b, offset = 0) { + uint8ArrayToBuffer(b).writeUIntLE(src, offset, this.span); + return this.span; + } + }; + exports2.UInt = UInt; + var UIntBE = class extends Layout { + constructor(span, property) { + super(span, property); + if (6 < this.span) { + throw new RangeError("span must not exceed 6 bytes"); + } + } + /** @override */ + decode(b, offset = 0) { + return uint8ArrayToBuffer(b).readUIntBE(offset, this.span); + } + /** @override */ + encode(src, b, offset = 0) { + uint8ArrayToBuffer(b).writeUIntBE(src, offset, this.span); + return this.span; + } + }; + exports2.UIntBE = UIntBE; + var Int = class extends Layout { + constructor(span, property) { + super(span, property); + if (6 < this.span) { + throw new RangeError("span must not exceed 6 bytes"); + } + } + /** @override */ + decode(b, offset = 0) { + return uint8ArrayToBuffer(b).readIntLE(offset, this.span); + } + /** @override */ + encode(src, b, offset = 0) { + uint8ArrayToBuffer(b).writeIntLE(src, offset, this.span); + return this.span; + } + }; + exports2.Int = Int; + var IntBE = class extends Layout { + constructor(span, property) { + super(span, property); + if (6 < this.span) { + throw new RangeError("span must not exceed 6 bytes"); + } + } + /** @override */ + decode(b, offset = 0) { + return uint8ArrayToBuffer(b).readIntBE(offset, this.span); + } + /** @override */ + encode(src, b, offset = 0) { + uint8ArrayToBuffer(b).writeIntBE(src, offset, this.span); + return this.span; + } + }; + exports2.IntBE = IntBE; + var V2E32 = Math.pow(2, 32); + function divmodInt64(src) { + const hi32 = Math.floor(src / V2E32); + const lo32 = src - hi32 * V2E32; + return { hi32, lo32 }; + } + function roundedInt64(hi32, lo32) { + return hi32 * V2E32 + lo32; + } + var NearUInt64 = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset = 0) { + const buffer = uint8ArrayToBuffer(b); + const lo32 = buffer.readUInt32LE(offset); + const hi32 = buffer.readUInt32LE(offset + 4); + return roundedInt64(hi32, lo32); + } + /** @override */ + encode(src, b, offset = 0) { + const split = divmodInt64(src); + const buffer = uint8ArrayToBuffer(b); + buffer.writeUInt32LE(split.lo32, offset); + buffer.writeUInt32LE(split.hi32, offset + 4); + return 8; + } + }; + exports2.NearUInt64 = NearUInt64; + var NearUInt64BE = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset = 0) { + const buffer = uint8ArrayToBuffer(b); + const hi32 = buffer.readUInt32BE(offset); + const lo32 = buffer.readUInt32BE(offset + 4); + return roundedInt64(hi32, lo32); + } + /** @override */ + encode(src, b, offset = 0) { + const split = divmodInt64(src); + const buffer = uint8ArrayToBuffer(b); + buffer.writeUInt32BE(split.hi32, offset); + buffer.writeUInt32BE(split.lo32, offset + 4); + return 8; + } + }; + exports2.NearUInt64BE = NearUInt64BE; + var NearInt64 = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset = 0) { + const buffer = uint8ArrayToBuffer(b); + const lo32 = buffer.readUInt32LE(offset); + const hi32 = buffer.readInt32LE(offset + 4); + return roundedInt64(hi32, lo32); + } + /** @override */ + encode(src, b, offset = 0) { + const split = divmodInt64(src); + const buffer = uint8ArrayToBuffer(b); + buffer.writeUInt32LE(split.lo32, offset); + buffer.writeInt32LE(split.hi32, offset + 4); + return 8; + } + }; + exports2.NearInt64 = NearInt64; + var NearInt64BE = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset = 0) { + const buffer = uint8ArrayToBuffer(b); + const hi32 = buffer.readInt32BE(offset); + const lo32 = buffer.readUInt32BE(offset + 4); + return roundedInt64(hi32, lo32); + } + /** @override */ + encode(src, b, offset = 0) { + const split = divmodInt64(src); + const buffer = uint8ArrayToBuffer(b); + buffer.writeInt32BE(split.hi32, offset); + buffer.writeUInt32BE(split.lo32, offset + 4); + return 8; + } + }; + exports2.NearInt64BE = NearInt64BE; + var Float = class extends Layout { + constructor(property) { + super(4, property); + } + /** @override */ + decode(b, offset = 0) { + return uint8ArrayToBuffer(b).readFloatLE(offset); + } + /** @override */ + encode(src, b, offset = 0) { + uint8ArrayToBuffer(b).writeFloatLE(src, offset); + return 4; + } + }; + exports2.Float = Float; + var FloatBE = class extends Layout { + constructor(property) { + super(4, property); + } + /** @override */ + decode(b, offset = 0) { + return uint8ArrayToBuffer(b).readFloatBE(offset); + } + /** @override */ + encode(src, b, offset = 0) { + uint8ArrayToBuffer(b).writeFloatBE(src, offset); + return 4; + } + }; + exports2.FloatBE = FloatBE; + var Double = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset = 0) { + return uint8ArrayToBuffer(b).readDoubleLE(offset); + } + /** @override */ + encode(src, b, offset = 0) { + uint8ArrayToBuffer(b).writeDoubleLE(src, offset); + return 8; + } + }; + exports2.Double = Double; + var DoubleBE = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset = 0) { + return uint8ArrayToBuffer(b).readDoubleBE(offset); + } + /** @override */ + encode(src, b, offset = 0) { + uint8ArrayToBuffer(b).writeDoubleBE(src, offset); + return 8; + } + }; + exports2.DoubleBE = DoubleBE; + var Sequence = class extends Layout { + constructor(elementLayout, count, property) { + if (!(elementLayout instanceof Layout)) { + throw new TypeError("elementLayout must be a Layout"); + } + if (!(count instanceof ExternalLayout && count.isCount() || Number.isInteger(count) && 0 <= count)) { + throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout"); + } + let span = -1; + if (!(count instanceof ExternalLayout) && 0 < elementLayout.span) { + span = count * elementLayout.span; + } + super(span, property); + this.elementLayout = elementLayout; + this.count = count; + } + /** @override */ + getSpan(b, offset = 0) { + if (0 <= this.span) { + return this.span; + } + let span = 0; + let count = this.count; + if (count instanceof ExternalLayout) { + count = count.decode(b, offset); + } + if (0 < this.elementLayout.span) { + span = count * this.elementLayout.span; + } else { + let idx = 0; + while (idx < count) { + span += this.elementLayout.getSpan(b, offset + span); + ++idx; + } + } + return span; + } + /** @override */ + decode(b, offset = 0) { + const rv = []; + let i = 0; + let count = this.count; + if (count instanceof ExternalLayout) { + count = count.decode(b, offset); + } + while (i < count) { + rv.push(this.elementLayout.decode(b, offset)); + offset += this.elementLayout.getSpan(b, offset); + i += 1; + } + return rv; + } + /** Implement {@link Layout#encode|encode} for {@link Sequence}. + * + * **NOTE** If `src` is shorter than {@link Sequence#count|count} then + * the unused space in the buffer is left unchanged. If `src` is + * longer than {@link Sequence#count|count} the unneeded elements are + * ignored. + * + * **NOTE** If {@link Layout#count|count} is an instance of {@link + * ExternalLayout} then the length of `src` will be encoded as the + * count after `src` is encoded. */ + encode(src, b, offset = 0) { + const elo = this.elementLayout; + const span = src.reduce((span2, v) => { + return span2 + elo.encode(v, b, offset + span2); + }, 0); + if (this.count instanceof ExternalLayout) { + this.count.encode(src.length, b, offset); + } + return span; + } + }; + exports2.Sequence = Sequence; + var Structure = class extends Layout { + constructor(fields, property, decodePrefixes) { + if (!(Array.isArray(fields) && fields.reduce((acc, v) => acc && v instanceof Layout, true))) { + throw new TypeError("fields must be array of Layout instances"); + } + if ("boolean" === typeof property && void 0 === decodePrefixes) { + decodePrefixes = property; + property = void 0; + } + for (const fd of fields) { + if (0 > fd.span && void 0 === fd.property) { + throw new Error("fields cannot contain unnamed variable-length layout"); + } + } + let span = -1; + try { + span = fields.reduce((span2, fd) => span2 + fd.getSpan(), 0); + } catch (e) { + } + super(span, property); + this.fields = fields; + this.decodePrefixes = !!decodePrefixes; + } + /** @override */ + getSpan(b, offset = 0) { + if (0 <= this.span) { + return this.span; + } + let span = 0; + try { + span = this.fields.reduce((span2, fd) => { + const fsp = fd.getSpan(b, offset); + offset += fsp; + return span2 + fsp; + }, 0); + } catch (e) { + throw new RangeError("indeterminate span"); + } + return span; + } + /** @override */ + decode(b, offset = 0) { + checkUint8Array(b); + const dest = this.makeDestinationObject(); + for (const fd of this.fields) { + if (void 0 !== fd.property) { + dest[fd.property] = fd.decode(b, offset); + } + offset += fd.getSpan(b, offset); + if (this.decodePrefixes && b.length === offset) { + break; + } + } + return dest; + } + /** Implement {@link Layout#encode|encode} for {@link Structure}. + * + * If `src` is missing a property for a member with a defined {@link + * Layout#property|property} the corresponding region of the buffer is + * left unmodified. */ + encode(src, b, offset = 0) { + const firstOffset = offset; + let lastOffset = 0; + let lastWrote = 0; + for (const fd of this.fields) { + let span = fd.span; + lastWrote = 0 < span ? span : 0; + if (void 0 !== fd.property) { + const fv = src[fd.property]; + if (void 0 !== fv) { + lastWrote = fd.encode(fv, b, offset); + if (0 > span) { + span = fd.getSpan(b, offset); + } + } + } + lastOffset = offset; + offset += span; + } + return lastOffset + lastWrote - firstOffset; + } + /** @override */ + fromArray(values) { + const dest = this.makeDestinationObject(); + for (const fd of this.fields) { + if (void 0 !== fd.property && 0 < values.length) { + dest[fd.property] = values.shift(); + } + } + return dest; + } + /** + * Get access to the layout of a given property. + * + * @param {String} property - the structure member of interest. + * + * @return {Layout} - the layout associated with `property`, or + * undefined if there is no such property. + */ + layoutFor(property) { + if ("string" !== typeof property) { + throw new TypeError("property must be string"); + } + for (const fd of this.fields) { + if (fd.property === property) { + return fd; + } + } + return void 0; + } + /** + * Get the offset of a structure member. + * + * @param {String} property - the structure member of interest. + * + * @return {Number} - the offset in bytes to the start of `property` + * within the structure, or undefined if `property` is not a field + * within the structure. If the property is a member but follows a + * variable-length structure member a negative number will be + * returned. + */ + offsetOf(property) { + if ("string" !== typeof property) { + throw new TypeError("property must be string"); + } + let offset = 0; + for (const fd of this.fields) { + if (fd.property === property) { + return offset; + } + if (0 > fd.span) { + offset = -1; + } else if (0 <= offset) { + offset += fd.span; + } + } + return void 0; + } + }; + exports2.Structure = Structure; + var UnionDiscriminator = class { + constructor(property) { + this.property = property; + } + /** Analog to {@link Layout#decode|Layout decode} for union discriminators. + * + * The implementation of this method need not reference the buffer if + * variant information is available through other means. */ + decode(b, offset) { + throw new Error("UnionDiscriminator is abstract"); + } + /** Analog to {@link Layout#decode|Layout encode} for union discriminators. + * + * The implementation of this method need not store the value if + * variant information is maintained through other means. */ + encode(src, b, offset) { + throw new Error("UnionDiscriminator is abstract"); + } + }; + exports2.UnionDiscriminator = UnionDiscriminator; + var UnionLayoutDiscriminator = class extends UnionDiscriminator { + constructor(layout, property) { + if (!(layout instanceof ExternalLayout && layout.isCount())) { + throw new TypeError("layout must be an unsigned integer ExternalLayout"); + } + super(property || layout.property || "variant"); + this.layout = layout; + } + /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */ + decode(b, offset) { + return this.layout.decode(b, offset); + } + /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */ + encode(src, b, offset) { + return this.layout.encode(src, b, offset); + } + }; + exports2.UnionLayoutDiscriminator = UnionLayoutDiscriminator; + var Union = class extends Layout { + constructor(discr, defaultLayout, property) { + let discriminator; + if (discr instanceof UInt || discr instanceof UIntBE) { + discriminator = new UnionLayoutDiscriminator(new OffsetLayout(discr)); + } else if (discr instanceof ExternalLayout && discr.isCount()) { + discriminator = new UnionLayoutDiscriminator(discr); + } else if (!(discr instanceof UnionDiscriminator)) { + throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout"); + } else { + discriminator = discr; + } + if (void 0 === defaultLayout) { + defaultLayout = null; + } + if (!(null === defaultLayout || defaultLayout instanceof Layout)) { + throw new TypeError("defaultLayout must be null or a Layout"); + } + if (null !== defaultLayout) { + if (0 > defaultLayout.span) { + throw new Error("defaultLayout must have constant span"); + } + if (void 0 === defaultLayout.property) { + defaultLayout = defaultLayout.replicate("content"); + } + } + let span = -1; + if (defaultLayout) { + span = defaultLayout.span; + if (0 <= span && (discr instanceof UInt || discr instanceof UIntBE)) { + span += discriminator.layout.span; + } + } + super(span, property); + this.discriminator = discriminator; + this.usesPrefixDiscriminator = discr instanceof UInt || discr instanceof UIntBE; + this.defaultLayout = defaultLayout; + this.registry = {}; + let boundGetSourceVariant = this.defaultGetSourceVariant.bind(this); + this.getSourceVariant = function(src) { + return boundGetSourceVariant(src); + }; + this.configGetSourceVariant = function(gsv) { + boundGetSourceVariant = gsv.bind(this); + }; + } + /** @override */ + getSpan(b, offset = 0) { + if (0 <= this.span) { + return this.span; + } + const vlo = this.getVariant(b, offset); + if (!vlo) { + throw new Error("unable to determine span for unrecognized variant"); + } + return vlo.getSpan(b, offset); + } + /** + * Method to infer a registered Union variant compatible with `src`. + * + * The first satisfied rule in the following sequence defines the + * return value: + * * If `src` has properties matching the Union discriminator and + * the default layout, `undefined` is returned regardless of the + * value of the discriminator property (this ensures the default + * layout will be used); + * * If `src` has a property matching the Union discriminator, the + * value of the discriminator identifies a registered variant, and + * either (a) the variant has no layout, or (b) `src` has the + * variant's property, then the variant is returned (because the + * source satisfies the constraints of the variant it identifies); + * * If `src` does not have a property matching the Union + * discriminator, but does have a property matching a registered + * variant, then the variant is returned (because the source + * matches a variant without an explicit conflict); + * * An error is thrown (because we either can't identify a variant, + * or we were explicitly told the variant but can't satisfy it). + * + * @param {Object} src - an object presumed to be compatible with + * the content of the Union. + * + * @return {(undefined|VariantLayout)} - as described above. + * + * @throws {Error} - if `src` cannot be associated with a default or + * registered variant. + */ + defaultGetSourceVariant(src) { + if (Object.prototype.hasOwnProperty.call(src, this.discriminator.property)) { + if (this.defaultLayout && this.defaultLayout.property && Object.prototype.hasOwnProperty.call(src, this.defaultLayout.property)) { + return void 0; + } + const vlo = this.registry[src[this.discriminator.property]]; + if (vlo && (!vlo.layout || vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property))) { + return vlo; + } + } else { + for (const tag in this.registry) { + const vlo = this.registry[tag]; + if (vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property)) { + return vlo; + } + } + } + throw new Error("unable to infer src variant"); + } + /** Implement {@link Layout#decode|decode} for {@link Union}. + * + * If the variant is {@link Union#addVariant|registered} the return + * value is an instance of that variant, with no explicit + * discriminator. Otherwise the {@link Union#defaultLayout|default + * layout} is used to decode the content. */ + decode(b, offset = 0) { + let dest; + const dlo = this.discriminator; + const discr = dlo.decode(b, offset); + const clo = this.registry[discr]; + if (void 0 === clo) { + const defaultLayout = this.defaultLayout; + let contentOffset = 0; + if (this.usesPrefixDiscriminator) { + contentOffset = dlo.layout.span; + } + dest = this.makeDestinationObject(); + dest[dlo.property] = discr; + dest[defaultLayout.property] = defaultLayout.decode(b, offset + contentOffset); + } else { + dest = clo.decode(b, offset); + } + return dest; + } + /** Implement {@link Layout#encode|encode} for {@link Union}. + * + * This API assumes the `src` object is consistent with the union's + * {@link Union#defaultLayout|default layout}. To encode variants + * use the appropriate variant-specific {@link VariantLayout#encode} + * method. */ + encode(src, b, offset = 0) { + const vlo = this.getSourceVariant(src); + if (void 0 === vlo) { + const dlo = this.discriminator; + const clo = this.defaultLayout; + let contentOffset = 0; + if (this.usesPrefixDiscriminator) { + contentOffset = dlo.layout.span; + } + dlo.encode(src[dlo.property], b, offset); + return contentOffset + clo.encode(src[clo.property], b, offset + contentOffset); + } + return vlo.encode(src, b, offset); + } + /** Register a new variant structure within a union. The newly + * created variant is returned. + * + * @param {Number} variant - initializer for {@link + * VariantLayout#variant|variant}. + * + * @param {Layout} layout - initializer for {@link + * VariantLayout#layout|layout}. + * + * @param {String} property - initializer for {@link + * Layout#property|property}. + * + * @return {VariantLayout} */ + addVariant(variant, layout, property) { + const rv = new VariantLayout(this, variant, layout, property); + this.registry[variant] = rv; + return rv; + } + /** + * Get the layout associated with a registered variant. + * + * If `vb` does not produce a registered variant the function returns + * `undefined`. + * + * @param {(Number|Uint8Array)} vb - either the variant number, or a + * buffer from which the discriminator is to be read. + * + * @param {Number} offset - offset into `vb` for the start of the + * union. Used only when `vb` is an instance of {Uint8Array}. + * + * @return {({VariantLayout}|undefined)} + */ + getVariant(vb, offset = 0) { + let variant; + if (vb instanceof Uint8Array) { + variant = this.discriminator.decode(vb, offset); + } else { + variant = vb; + } + return this.registry[variant]; + } + }; + exports2.Union = Union; + var VariantLayout = class extends Layout { + constructor(union, variant, layout, property) { + if (!(union instanceof Union)) { + throw new TypeError("union must be a Union"); + } + if (!Number.isInteger(variant) || 0 > variant) { + throw new TypeError("variant must be a (non-negative) integer"); + } + if ("string" === typeof layout && void 0 === property) { + property = layout; + layout = null; + } + if (layout) { + if (!(layout instanceof Layout)) { + throw new TypeError("layout must be a Layout"); + } + if (null !== union.defaultLayout && 0 <= layout.span && layout.span > union.defaultLayout.span) { + throw new Error("variant span exceeds span of containing union"); + } + if ("string" !== typeof property) { + throw new TypeError("variant must have a String property"); + } + } + let span = union.span; + if (0 > union.span) { + span = layout ? layout.span : 0; + if (0 <= span && union.usesPrefixDiscriminator) { + span += union.discriminator.layout.span; + } + } + super(span, property); + this.union = union; + this.variant = variant; + this.layout = layout || null; + } + /** @override */ + getSpan(b, offset = 0) { + if (0 <= this.span) { + return this.span; + } + let contentOffset = 0; + if (this.union.usesPrefixDiscriminator) { + contentOffset = this.union.discriminator.layout.span; + } + let span = 0; + if (this.layout) { + span = this.layout.getSpan(b, offset + contentOffset); + } + return contentOffset + span; + } + /** @override */ + decode(b, offset = 0) { + const dest = this.makeDestinationObject(); + if (this !== this.union.getVariant(b, offset)) { + throw new Error("variant mismatch"); + } + let contentOffset = 0; + if (this.union.usesPrefixDiscriminator) { + contentOffset = this.union.discriminator.layout.span; + } + if (this.layout) { + dest[this.property] = this.layout.decode(b, offset + contentOffset); + } else if (this.property) { + dest[this.property] = true; + } else if (this.union.usesPrefixDiscriminator) { + dest[this.union.discriminator.property] = this.variant; + } + return dest; + } + /** @override */ + encode(src, b, offset = 0) { + let contentOffset = 0; + if (this.union.usesPrefixDiscriminator) { + contentOffset = this.union.discriminator.layout.span; + } + if (this.layout && !Object.prototype.hasOwnProperty.call(src, this.property)) { + throw new TypeError("variant lacks property " + this.property); + } + this.union.discriminator.encode(this.variant, b, offset); + let span = contentOffset; + if (this.layout) { + this.layout.encode(src[this.property], b, offset + contentOffset); + span += this.layout.getSpan(b, offset + contentOffset); + if (0 <= this.union.span && span > this.union.span) { + throw new Error("encoded variant overruns containing union"); + } + } + return span; + } + /** Delegate {@link Layout#fromArray|fromArray} to {@link + * VariantLayout#layout|layout}. */ + fromArray(values) { + if (this.layout) { + return this.layout.fromArray(values); + } + return void 0; + } + }; + exports2.VariantLayout = VariantLayout; + function fixBitwiseResult(v) { + if (0 > v) { + v += 4294967296; + } + return v; + } + var BitStructure = class extends Layout { + constructor(word, msb, property) { + if (!(word instanceof UInt || word instanceof UIntBE)) { + throw new TypeError("word must be a UInt or UIntBE layout"); + } + if ("string" === typeof msb && void 0 === property) { + property = msb; + msb = false; + } + if (4 < word.span) { + throw new RangeError("word cannot exceed 32 bits"); + } + super(word.span, property); + this.word = word; + this.msb = !!msb; + this.fields = []; + let value = 0; + this._packedSetValue = function(v) { + value = fixBitwiseResult(v); + return this; + }; + this._packedGetValue = function() { + return value; + }; + } + /** @override */ + decode(b, offset = 0) { + const dest = this.makeDestinationObject(); + const value = this.word.decode(b, offset); + this._packedSetValue(value); + for (const fd of this.fields) { + if (void 0 !== fd.property) { + dest[fd.property] = fd.decode(b); + } + } + return dest; + } + /** Implement {@link Layout#encode|encode} for {@link BitStructure}. + * + * If `src` is missing a property for a member with a defined {@link + * Layout#property|property} the corresponding region of the packed + * value is left unmodified. Unused bits are also left unmodified. */ + encode(src, b, offset = 0) { + const value = this.word.decode(b, offset); + this._packedSetValue(value); + for (const fd of this.fields) { + if (void 0 !== fd.property) { + const fv = src[fd.property]; + if (void 0 !== fv) { + fd.encode(fv); + } + } + } + return this.word.encode(this._packedGetValue(), b, offset); + } + /** Register a new bitfield with a containing bit structure. The + * resulting bitfield is returned. + * + * @param {Number} bits - initializer for {@link BitField#bits|bits}. + * + * @param {string} property - initializer for {@link + * Layout#property|property}. + * + * @return {BitField} */ + addField(bits, property) { + const bf = new BitField(this, bits, property); + this.fields.push(bf); + return bf; + } + /** As with {@link BitStructure#addField|addField} for single-bit + * fields with `boolean` value representation. + * + * @param {string} property - initializer for {@link + * Layout#property|property}. + * + * @return {Boolean} */ + // `Boolean` conflicts with the native primitive type + // eslint-disable-next-line @typescript-eslint/ban-types + addBoolean(property) { + const bf = new Boolean2(this, property); + this.fields.push(bf); + return bf; + } + /** + * Get access to the bit field for a given property. + * + * @param {String} property - the bit field of interest. + * + * @return {BitField} - the field associated with `property`, or + * undefined if there is no such property. + */ + fieldFor(property) { + if ("string" !== typeof property) { + throw new TypeError("property must be string"); + } + for (const fd of this.fields) { + if (fd.property === property) { + return fd; + } + } + return void 0; + } + }; + exports2.BitStructure = BitStructure; + var BitField = class { + constructor(container, bits, property) { + if (!(container instanceof BitStructure)) { + throw new TypeError("container must be a BitStructure"); + } + if (!Number.isInteger(bits) || 0 >= bits) { + throw new TypeError("bits must be positive integer"); + } + const totalBits = 8 * container.span; + const usedBits = container.fields.reduce((sum, fd) => sum + fd.bits, 0); + if (bits + usedBits > totalBits) { + throw new Error("bits too long for span remainder (" + (totalBits - usedBits) + " of " + totalBits + " remain)"); + } + this.container = container; + this.bits = bits; + this.valueMask = (1 << bits) - 1; + if (32 === bits) { + this.valueMask = 4294967295; + } + this.start = usedBits; + if (this.container.msb) { + this.start = totalBits - usedBits - bits; + } + this.wordMask = fixBitwiseResult(this.valueMask << this.start); + this.property = property; + } + /** Store a value into the corresponding subsequence of the containing + * bit field. */ + decode(b, offset) { + const word = this.container._packedGetValue(); + const wordValue = fixBitwiseResult(word & this.wordMask); + const value = wordValue >>> this.start; + return value; + } + /** Store a value into the corresponding subsequence of the containing + * bit field. + * + * **NOTE** This is not a specialization of {@link + * Layout#encode|Layout.encode} and there is no return value. */ + encode(value) { + if ("number" !== typeof value || !Number.isInteger(value) || value !== fixBitwiseResult(value & this.valueMask)) { + throw new TypeError(nameWithProperty("BitField.encode", this) + " value must be integer not exceeding " + this.valueMask); + } + const word = this.container._packedGetValue(); + const wordValue = fixBitwiseResult(value << this.start); + this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask) | wordValue); + } + }; + exports2.BitField = BitField; + var Boolean2 = class extends BitField { + constructor(container, property) { + super(container, 1, property); + } + /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}. + * + * @returns {boolean} */ + decode(b, offset) { + return !!super.decode(b, offset); + } + /** @override */ + encode(value) { + if ("boolean" === typeof value) { + value = +value; + } + super.encode(value); + } + }; + exports2.Boolean = Boolean2; + var Blob2 = class extends Layout { + constructor(length, property) { + if (!(length instanceof ExternalLayout && length.isCount() || Number.isInteger(length) && 0 <= length)) { + throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout"); + } + let span = -1; + if (!(length instanceof ExternalLayout)) { + span = length; + } + super(span, property); + this.length = length; + } + /** @override */ + getSpan(b, offset) { + let span = this.span; + if (0 > span) { + span = this.length.decode(b, offset); + } + return span; + } + /** @override */ + decode(b, offset = 0) { + let span = this.span; + if (0 > span) { + span = this.length.decode(b, offset); + } + return uint8ArrayToBuffer(b).slice(offset, offset + span); + } + /** Implement {@link Layout#encode|encode} for {@link Blob}. + * + * **NOTE** If {@link Layout#count|count} is an instance of {@link + * ExternalLayout} then the length of `src` will be encoded as the + * count after `src` is encoded. */ + encode(src, b, offset) { + let span = this.length; + if (this.length instanceof ExternalLayout) { + span = src.length; + } + if (!(src instanceof Uint8Array && span === src.length)) { + throw new TypeError(nameWithProperty("Blob.encode", this) + " requires (length " + span + ") Uint8Array as src"); + } + if (offset + span > b.length) { + throw new RangeError("encoding overruns Uint8Array"); + } + const srcBuffer = uint8ArrayToBuffer(src); + uint8ArrayToBuffer(b).write(srcBuffer.toString("hex"), offset, span, "hex"); + if (this.length instanceof ExternalLayout) { + this.length.encode(span, b, offset); + } + return span; + } + }; + exports2.Blob = Blob2; + var CString = class extends Layout { + constructor(property) { + super(-1, property); + } + /** @override */ + getSpan(b, offset = 0) { + checkUint8Array(b); + let idx = offset; + while (idx < b.length && 0 !== b[idx]) { + idx += 1; + } + return 1 + idx - offset; + } + /** @override */ + decode(b, offset = 0) { + const span = this.getSpan(b, offset); + return uint8ArrayToBuffer(b).slice(offset, offset + span - 1).toString("utf-8"); + } + /** @override */ + encode(src, b, offset = 0) { + if ("string" !== typeof src) { + src = String(src); + } + const srcb = buffer_1.Buffer.from(src, "utf8"); + const span = srcb.length; + if (offset + span > b.length) { + throw new RangeError("encoding overruns Buffer"); + } + const buffer = uint8ArrayToBuffer(b); + srcb.copy(buffer, offset); + buffer[offset + span] = 0; + return span + 1; + } + }; + exports2.CString = CString; + var UTF8 = class extends Layout { + constructor(maxSpan, property) { + if ("string" === typeof maxSpan && void 0 === property) { + property = maxSpan; + maxSpan = void 0; + } + if (void 0 === maxSpan) { + maxSpan = -1; + } else if (!Number.isInteger(maxSpan)) { + throw new TypeError("maxSpan must be an integer"); + } + super(-1, property); + this.maxSpan = maxSpan; + } + /** @override */ + getSpan(b, offset = 0) { + checkUint8Array(b); + return b.length - offset; + } + /** @override */ + decode(b, offset = 0) { + const span = this.getSpan(b, offset); + if (0 <= this.maxSpan && this.maxSpan < span) { + throw new RangeError("text length exceeds maxSpan"); + } + return uint8ArrayToBuffer(b).slice(offset, offset + span).toString("utf-8"); + } + /** @override */ + encode(src, b, offset = 0) { + if ("string" !== typeof src) { + src = String(src); + } + const srcb = buffer_1.Buffer.from(src, "utf8"); + const span = srcb.length; + if (0 <= this.maxSpan && this.maxSpan < span) { + throw new RangeError("text length exceeds maxSpan"); + } + if (offset + span > b.length) { + throw new RangeError("encoding overruns Buffer"); + } + srcb.copy(uint8ArrayToBuffer(b), offset); + return span; + } + }; + exports2.UTF8 = UTF8; + var Constant = class extends Layout { + constructor(value, property) { + super(0, property); + this.value = value; + } + /** @override */ + decode(b, offset) { + return this.value; + } + /** @override */ + encode(src, b, offset) { + return 0; + } + }; + exports2.Constant = Constant; + exports2.greedy = (elementSpan, property) => new GreedyCount(elementSpan, property); + exports2.offset = (layout, offset, property) => new OffsetLayout(layout, offset, property); + exports2.u8 = (property) => new UInt(1, property); + exports2.u16 = (property) => new UInt(2, property); + exports2.u24 = (property) => new UInt(3, property); + exports2.u32 = (property) => new UInt(4, property); + exports2.u40 = (property) => new UInt(5, property); + exports2.u48 = (property) => new UInt(6, property); + exports2.nu64 = (property) => new NearUInt64(property); + exports2.u16be = (property) => new UIntBE(2, property); + exports2.u24be = (property) => new UIntBE(3, property); + exports2.u32be = (property) => new UIntBE(4, property); + exports2.u40be = (property) => new UIntBE(5, property); + exports2.u48be = (property) => new UIntBE(6, property); + exports2.nu64be = (property) => new NearUInt64BE(property); + exports2.s8 = (property) => new Int(1, property); + exports2.s16 = (property) => new Int(2, property); + exports2.s24 = (property) => new Int(3, property); + exports2.s32 = (property) => new Int(4, property); + exports2.s40 = (property) => new Int(5, property); + exports2.s48 = (property) => new Int(6, property); + exports2.ns64 = (property) => new NearInt64(property); + exports2.s16be = (property) => new IntBE(2, property); + exports2.s24be = (property) => new IntBE(3, property); + exports2.s32be = (property) => new IntBE(4, property); + exports2.s40be = (property) => new IntBE(5, property); + exports2.s48be = (property) => new IntBE(6, property); + exports2.ns64be = (property) => new NearInt64BE(property); + exports2.f32 = (property) => new Float(property); + exports2.f32be = (property) => new FloatBE(property); + exports2.f64 = (property) => new Double(property); + exports2.f64be = (property) => new DoubleBE(property); + exports2.struct = (fields, property, decodePrefixes) => new Structure(fields, property, decodePrefixes); + exports2.bits = (word, msb, property) => new BitStructure(word, msb, property); + exports2.seq = (elementLayout, count, property) => new Sequence(elementLayout, count, property); + exports2.union = (discr, defaultLayout, property) => new Union(discr, defaultLayout, property); + exports2.unionLayoutDiscriminator = (layout, property) => new UnionLayoutDiscriminator(layout, property); + exports2.blob = (length, property) => new Blob2(length, property); + exports2.cstr = (property) => new CString(property); + exports2.utf8 = (maxSpan, property) => new UTF8(maxSpan, property); + exports2.constant = (value, property) => new Constant(value, property); + } +}); + +// node_modules/@solana/errors/dist/index.node.cjs +var require_index_node = __commonJS({ + "node_modules/@solana/errors/dist/index.node.cjs"(exports2) { + "use strict"; + var SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = 1; + var SOLANA_ERROR__INVALID_NONCE = 2; + var SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = 3; + var SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = 4; + var SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = 5; + var SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = 6; + var SOLANA_ERROR__MALFORMED_BIGINT_STRING = 7; + var SOLANA_ERROR__MALFORMED_NUMBER_STRING = 8; + var SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = 9; + var SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR = 10; + var SOLANA_ERROR__JSON_RPC__PARSE_ERROR = -32700; + var SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603; + var SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602; + var SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601; + var SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = -32016; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = -32015; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = -32014; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = -32013; + var SOLANA_ERROR__JSON_RPC__SCAN_ERROR = -32012; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = -32011; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = -32010; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = -32009; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = -32008; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = -32007; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = -32006; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = -32005; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = -32004; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = -32003; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = -32002; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = -32001; + var SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = 28e5; + var SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = 2800001; + var SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = 2800002; + var SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = 2800003; + var SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = 2800004; + var SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = 2800005; + var SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = 2800006; + var SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = 2800007; + var SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = 2800008; + var SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = 2800009; + var SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = 2800010; + var SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = 323e4; + var SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = 32300001; + var SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = 3230002; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = 3230003; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = 3230004; + var SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = 361e4; + var SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = 3610001; + var SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = 3610002; + var SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = 3610003; + var SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = 3610004; + var SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = 3610005; + var SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = 3610006; + var SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = 3610007; + var SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = 3611e3; + var SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = 3704e3; + var SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = 3704001; + var SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = 3704002; + var SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = 3704003; + var SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = 3704004; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = 4128e3; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = 4128001; + var SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = 4128002; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = 4615e3; + var SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = 4615001; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = 4615002; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = 4615003; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = 4615004; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = 4615005; + var SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = 4615006; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = 4615007; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = 4615008; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = 4615009; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = 4615010; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = 4615011; + var SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = 4615012; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = 4615013; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = 4615014; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = 4615015; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = 4615016; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = 4615017; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = 4615018; + var SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = 4615019; + var SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = 4615020; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = 4615021; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = 4615022; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = 4615023; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 4615024; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = 4615025; + var SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = 4615026; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = 4615027; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = 4615028; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = 4615029; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = 4615030; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = 4615031; + var SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = 4615032; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = 4615033; + var SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = 4615034; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = 4615035; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = 4615036; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = 4615037; + var SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = 4615038; + var SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = 4615039; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = 4615040; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = 4615041; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = 4615042; + var SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = 4615043; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = 4615044; + var SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = 4615045; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = 4615046; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = 4615047; + var SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = 4615048; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = 4615049; + var SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = 4615050; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = 4615051; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = 4615052; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = 4615053; + var SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = 4615054; + var SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = 5508e3; + var SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = 5508001; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = 5508002; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = 5508003; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = 5508004; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = 5508005; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = 5508006; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = 5508007; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = 5508008; + var SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = 5508009; + var SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = 5508010; + var SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = 5508011; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = 5663e3; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = 5663001; + var SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = 5663002; + var SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = 5663003; + var SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = 5663004; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = 5663005; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = 5663006; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = 5663007; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = 5663008; + var SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = 5663009; + var SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = 5663010; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = 5663011; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = 5663012; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = 5663013; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = 5663014; + var SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = 5663015; + var SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = 5663016; + var SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = 5663017; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = 5663018; + var SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT = 5663019; + var SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = 705e4; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = 7050001; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = 7050002; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = 7050003; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = 7050004; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 7050005; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = 7050006; + var SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = 7050007; + var SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = 7050008; + var SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = 7050009; + var SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = 7050010; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = 7050011; + var SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = 7050012; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = 7050013; + var SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = 7050014; + var SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = 7050015; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 7050016; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = 7050017; + var SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = 7050018; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = 7050019; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = 7050020; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = 7050021; + var SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = 7050022; + var SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = 7050023; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = 7050024; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = 7050025; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = 7050026; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = 7050027; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = 7050028; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = 7050029; + var SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = 7050030; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = 7050031; + var SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = 7050032; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 7050033; + var SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = 7050034; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = 7050035; + var SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = 7050036; + var SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = 8078e3; + var SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = 8078001; + var SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = 8078002; + var SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = 8078003; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = 8078004; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = 8078005; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = 8078006; + var SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = 8078007; + var SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = 8078008; + var SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = 8078009; + var SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = 8078010; + var SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = 8078011; + var SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = 8078012; + var SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = 8078013; + var SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = 8078014; + var SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = 8078015; + var SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = 8078016; + var SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = 8078017; + var SOLANA_ERROR__CODECS__INVALID_CONSTANT = 8078018; + var SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = 8078019; + var SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = 8078020; + var SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = 8078021; + var SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = 8078022; + var SOLANA_ERROR__RPC__INTEGER_OVERFLOW = 81e5; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = 8100001; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = 8100002; + var SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD = 8100003; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN = 819e4; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = 8190001; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED = 8190002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED = 8190003; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT = 8190004; + var SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING = 99e5; + var SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = 9900001; + var SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = 9900002; + var SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = 9900003; + var SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED = 9900004; + function encodeValue(value) { + if (Array.isArray(value)) { + const commaSeparatedValues = value.map(encodeValue).join( + "%2C%20" + /* ", " */ + ); + return "%5B" + commaSeparatedValues + /* "]" */ + "%5D"; + } else if (typeof value === "bigint") { + return `${value}n`; + } else { + return encodeURIComponent( + String( + value != null && Object.getPrototypeOf(value) === null ? ( + // Plain objects with no prototype don't have a `toString` method. + // Convert them before stringifying them. + { ...value } + ) : value + ) + ); + } + } + function encodeObjectContextEntry([key, value]) { + return `${key}=${encodeValue(value)}`; + } + function encodeContextObject(context) { + const searchParamsString = Object.entries(context).map(encodeObjectContextEntry).join("&"); + return Buffer.from(searchParamsString, "utf8").toString("base64"); + } + var SolanaErrorMessages = { + [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: "Account not found at address: $address", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]: "Not all accounts were decoded. Encoded accounts found at addresses: $addresses.", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: "Expected decoded account at address: $address", + [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: "Failed to decode account data at address: $address", + [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: "Accounts not found at addresses: $addresses", + [SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED]: "Unable to find a viable program address bump seed.", + [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: "$putativeAddress is not a base58-encoded address.", + [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]: "Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY]: "The `CryptoKey` must be an `Ed25519` public key.", + [SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE]: "Invalid seeds; point must fall off the Ed25519 curve.", + [SOLANA_ERROR__ADDRESSES__MALFORMED_PDA]: "Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].", + [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]: "A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.", + [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]: "The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.", + [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]: "Expected program derived address bump to be in the range [0, 255], got: $bump.", + [SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER]: "Program address cannot end with PDA marker.", + [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]: "The network has progressed past the last block for which this transaction could have been committed.", + [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]: "Codec [$codecDescription] cannot decode empty byte arrays.", + [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]: "Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.", + [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]: "Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]: "Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]: "Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH]: "Encoder and decoder must either both be fixed-size or variable-size.", + [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]: "Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.", + [SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH]: "Expected a fixed-size codec, got a variable-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]: "Codec [$codecDescription] expected a positive byte length, got $bytesLength.", + [SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH]: "Expected a variable-size codec, got a fixed-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]: "Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].", + [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]: "Codec [$codecDescription] expected $expected bytes, got $bytesLength.", + [SOLANA_ERROR__CODECS__INVALID_CONSTANT]: "Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].", + [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]: "Invalid discriminated union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]: "Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.", + [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]: "Invalid literal union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]: "Expected [$codecDescription] to have $expected items, got $actual.", + [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: "Invalid value $value for base $base with alphabet $alphabet.", + [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]: "Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.", + [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]: "Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.", + [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]: "Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.", + [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]: "Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].", + [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]: "Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.", + [SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED]: "No random values implementation could be found.", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED]: "instruction requires an uninitialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED]: "instruction tries to borrow reference for an account which is already borrowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "instruction left account with an outstanding borrowed reference", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED]: "program other than the account's owner changed the size of the account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL]: "account data too small for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE]: "instruction expected an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT]: "An account does not have enough lamports to be rent-exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW]: "Program arithmetic overflowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: "Failed to serialize or deserialize account data: $encodedData", + [SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS]: "Builtin programs must consume compute units", + [SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH]: "Cross-program invocation call depth too deep", + [SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED]: "Computational budget exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: "custom program error: #$code", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX]: "instruction contains duplicate accounts", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC]: "instruction modifications of multiply-passed account differ", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT]: "executable accounts must be rent exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED]: "instruction changed executable accounts data", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE]: "instruction changed the balance of an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED]: "instruction changed executable bit of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED]: "instruction modified data of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND]: "instruction spent from the balance of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR]: "generic instruction error", + [SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER]: "Provided owner is not allowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE]: "Account is immutable", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY]: "Incorrect authority provided", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID]: "incorrect program id for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS]: "insufficient funds for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA]: "invalid account data for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER]: "Invalid account owner", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT]: "invalid program argument", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR]: "program returned invalid error code", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA]: "invalid instruction data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC]: "Failed to reallocate account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS]: "Provided seeds do not result in a valid address", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED]: "Accounts data allocations exceeded the maximum allowed per transaction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED]: "Max accounts exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED]: "Max instruction trace length exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED]: "Length of the seed is too long for address generation", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT]: "An account required by the instruction is missing", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE]: "missing required signature for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID]: "instruction illegally modified the program id of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS]: "insufficient account keys for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION]: "Cross-program invocation with unauthorized signer or writable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE]: "Failed to create program execution environment", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE]: "Program failed to compile", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE]: "Program failed to complete", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED]: "instruction modified data of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE]: "instruction changed the balance of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED]: "Cross-program invocation reentrancy not allowed for this instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED]: "instruction modified rent epoch of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION]: "sum of account balances before and after instruction do not match", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT]: "instruction requires an initialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: "", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID]: "Unsupported program id", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR]: "Unsupported sysvar", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: "The instruction does not have any accounts.", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: "The instruction does not have any data.", + [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]: "Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.", + [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]: "Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__INVALID_NONCE]: "The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`", + [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]: "Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED]: "Invariant violation: This data publisher does not publish to the channel named `$channelName`. Supported channels include $supportedChannelNames.", + [SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE]: "Invariant violation: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING]: "Invariant violation: WebSocket message iterator is missing state storage. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]: "Invariant violation: Switch statement non-exhaustive. Received unexpected value `$unexpectedValue`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: "JSON-RPC error: Internal JSON-RPC error ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: "JSON-RPC error: Invalid method parameter(s) ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]: "JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]: "JSON-RPC error: The method does not exist / is not available ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]: "JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: "Minimum context slot has not been reached", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: "Node is unhealthy; behind by $numSlotsBehind slots", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT]: "No snapshot", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: "Transaction simulation failed", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE]: "Transaction history is not available from this node", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH]: "Transaction signature length mismatch", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE]: "Transaction signature verification failure", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: "$__serverMessage", + [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: "Key pair bytes must be of length 64, got $byteLength.", + [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]: "Expected private key bytes with length 32. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]: "Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY]: "The provided private key does not match the provided public key.", + [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.", + [SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE]: "Lamports value must be in the range [0, 2e64-1]", + [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: "`$value` cannot be parsed as a `BigInt`", + [SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR]: "$message", + [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: "`$value` cannot be parsed as a `Number`", + [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: "No nonce account could be found at address `$nonceAccountAddress`", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN]: "The notification name must end in 'Notifications' and the API must supply a subscription plan creator function for the notification '$notificationName'.", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED]: "WebSocket was closed before payload could be added to the send buffer", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED]: "WebSocket connection closed", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT]: "WebSocket failed to connect", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID]: "Failed to obtain a subscription id from the server", + [SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD]: "Could not find an API plan for RPC method: `$method`", + [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]: "The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was `$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds `Number.MAX_SAFE_INTEGER`.", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: "HTTP error ($statusCode): $message", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]: "HTTP header(s) forbidden: $headers. Learn more at https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.", + [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]: "Multiple distinct signers were identified for address `$address`. Please ensure that you are using the same signer instance for each address.", + [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]: "The provided value does not implement the `KeyPairSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]: "The provided value does not implement the `MessageModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]: "The provided value does not implement the `MessagePartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]: "The provided value does not implement any of the `MessageSigner` interfaces", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]: "The provided value does not implement the `TransactionModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]: "The provided value does not implement the `TransactionPartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]: "The provided value does not implement the `TransactionSendingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]: "The provided value does not implement any of the `TransactionSigner` interfaces", + [SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS]: "More than one `TransactionSendingSigner` was identified.", + [SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING]: "No `TransactionSendingSigner` was identified. Please provide a valid `ITransactionWithSingleSendingSigner` transaction.", + [SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED]: "Wallet account signers do not support signing multiple messages/transactions in a single operation", + [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: "Cannot export a non-extractable key.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED]: "No digest implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT]: "Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.", + [SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED]: "This runtime does not support the generation of Ed25519 key pairs.\n\nInstall @solana/webcrypto-ed25519-polyfill and call its `install` function before generating keys in environments that do not support Ed25519.\n\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.", + [SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED]: "No signature verification implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED]: "No key generation implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED]: "No signing implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED]: "No key export implementation could be found.", + [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]: "Timestamp value must be in the range [-(2n ** 63n), (2n ** 63n) - 1]. `$value` given", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "Transaction processing left an account with an outstanding borrowed reference", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE]: "Account in use", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE]: "Account loaded twice", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND]: "Attempt to debit an account but found no record of a prior credit.", + [SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND]: "Transaction loads an address table account that doesn't exist", + [SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED]: "This transaction has already been processed", + [SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND]: "Blockhash not found", + [SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP]: "Loader call chain is too deep", + [SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE]: "Transactions are currently disabled due to cluster maintenance", + [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]: "Transaction contains a duplicate instruction ($index) that is not allowed", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: "Insufficient funds for fee", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]: "Transaction results in an account ($accountIndex) with insufficient funds for rent", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE]: "This account may not be used to pay transaction fees", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX]: "Transaction contains an invalid account reference", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA]: "Transaction loads an address table account with invalid data", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX]: "Transaction address table lookup uses an invalid index", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER]: "Transaction loads an address table account with an invalid owner", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT]: "LoadedAccountsDataSizeLimit set for transaction must be greater than 0.", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION]: "This program may not be used for executing instructions", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT]: "Transaction leaves an account with a lower balance than rent-exempt minimum", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT]: "Transaction loads a writable account that cannot be written", + [SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED]: "Transaction exceeded max loaded accounts data size cap", + [SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE]: "Transaction requires a fee but has no signature present", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND]: "Attempt to load a program that does not exist", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]: "Execution of the program referenced by account at index $accountIndex is temporarily restricted.", + [SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED]: "ResanitizationNeeded", + [SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE]: "Transaction failed to sanitize accounts offsets correctly", + [SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE]: "Transaction did not pass signature verification", + [SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS]: "Transaction locked too many accounts", + [SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION]: "Sum of account balances before and after transaction do not match", + [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: "The transaction failed with the error `$errorName`", + [SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION]: "Transaction version is unsupported", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT]: "Transaction would exceed account data limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT]: "Transaction would exceed total account data limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT]: "Transaction would exceed max account limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT]: "Transaction would exceed max Block Cost Limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT]: "Transaction would exceed max Vote Cost Limit", + [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]: "Attempted to sign a transaction with an address that is not a signer for it", + [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: "Transaction is missing an address at index: $index.", + [SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES]: "Transaction has no expected signers therefore it cannot be encoded", + [SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME]: "Transaction does not have a blockhash lifetime", + [SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME]: "Transaction is not a durable nonce transaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]: "Contents of these address lookup tables unknown: $lookupTableAddresses", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]: "Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING]: "No fee payer set in CompiledTransaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]: "Could not find program address at index $index", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT]: "Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more", + [SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT]: "Transaction failed when it was simulated in order to estimate the compute unit consumption. The compute unit estimate provided is for a transaction that failed when simulated and may not be representative of the compute units this transaction would consume if successful. Inspect the `cause` property of this error to learn more", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING]: "Transaction is missing a fee payer.", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING]: "Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE]: "Transaction first instruction is not advance nonce account instruction.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING]: "Transaction with no instructions cannot be durable nonce transaction.", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]: "This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]: "This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable", + [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]: "The transaction message expected the transaction to have $signerAddressesLength signatures, got $signaturesLength.", + [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: "Transaction is missing signatures for addresses: $addresses.", + [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]: "Transaction version must be in the range [0, 127]. `$actualVersion` given" + }; + var START_INDEX = "i"; + var TYPE = "t"; + function getHumanReadableErrorMessage(code, context = {}) { + const messageFormatString = SolanaErrorMessages[code]; + if (messageFormatString.length === 0) { + return ""; + } + let state; + function commitStateUpTo(endIndex) { + if (state[TYPE] === 2) { + const variableName = messageFormatString.slice(state[START_INDEX] + 1, endIndex); + fragments.push( + variableName in context ? ( + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + `${context[variableName]}` + ) : `$${variableName}` + ); + } else if (state[TYPE] === 1) { + fragments.push(messageFormatString.slice(state[START_INDEX], endIndex)); + } + } + const fragments = []; + messageFormatString.split("").forEach((char, ii) => { + if (ii === 0) { + state = { + [START_INDEX]: 0, + [TYPE]: messageFormatString[0] === "\\" ? 0 : messageFormatString[0] === "$" ? 2 : 1 + /* Text */ + }; + return; + } + let nextState; + switch (state[TYPE]) { + case 0: + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + break; + case 1: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } + break; + case 2: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } else if (!char.match(/\w/)) { + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + } + break; + } + if (nextState) { + if (state !== nextState) { + commitStateUpTo(ii); + } + state = nextState; + } + }); + commitStateUpTo(); + return fragments.join(""); + } + function getErrorMessage(code, context = {}) { + if (process.env.NODE_ENV !== "production") { + return getHumanReadableErrorMessage(code, context); + } else { + let decodingAdviceMessage = `Solana error #${code}; Decode this error by running \`npx @solana/errors decode -- ${code}`; + if (Object.keys(context).length) { + decodingAdviceMessage += ` '${encodeContextObject(context)}'`; + } + return `${decodingAdviceMessage}\``; + } + } + function isSolanaError(e, code) { + const isSolanaError2 = e instanceof Error && e.name === "SolanaError"; + if (isSolanaError2) { + if (code !== void 0) { + return e.context.__code === code; + } + return true; + } + return false; + } + var SolanaError = class extends Error { + /** + * Indicates the root cause of this {@link SolanaError}, if any. + * + * For example, a transaction error might have an instruction error as its root cause. In this + * case, you will be able to access the instruction error on the transaction error as `cause`. + */ + cause = this.cause; + /** + * Contains context that can assist in understanding or recovering from a {@link SolanaError}. + */ + context; + constructor(...[code, contextAndErrorOptions]) { + let context; + let errorOptions; + if (contextAndErrorOptions) { + const { cause, ...contextRest } = contextAndErrorOptions; + if (cause) { + errorOptions = { cause }; + } + if (Object.keys(contextRest).length > 0) { + context = contextRest; + } + } + const message = getErrorMessage(code, context); + super(message, errorOptions); + this.context = { + __code: code, + ...context + }; + this.name = "SolanaError"; + } + }; + function safeCaptureStackTrace(...args) { + if ("captureStackTrace" in Error && typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(...args); + } + } + function getSolanaErrorFromRpcError({ errorCodeBaseOffset, getErrorContext, orderedErrorNames, rpcEnumError }, constructorOpt) { + let rpcErrorName; + let rpcErrorContext; + if (typeof rpcEnumError === "string") { + rpcErrorName = rpcEnumError; + } else { + rpcErrorName = Object.keys(rpcEnumError)[0]; + rpcErrorContext = rpcEnumError[rpcErrorName]; + } + const codeOffset = orderedErrorNames.indexOf(rpcErrorName); + const errorCode = errorCodeBaseOffset + codeOffset; + const errorContext = getErrorContext(errorCode, rpcErrorName, rpcErrorContext); + const err = new SolanaError(errorCode, errorContext); + safeCaptureStackTrace(err, constructorOpt); + return err; + } + var ORDERED_ERROR_NAMES = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/program/src/instruction.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "GenericError", + "InvalidArgument", + "InvalidInstructionData", + "InvalidAccountData", + "AccountDataTooSmall", + "InsufficientFunds", + "IncorrectProgramId", + "MissingRequiredSignature", + "AccountAlreadyInitialized", + "UninitializedAccount", + "UnbalancedInstruction", + "ModifiedProgramId", + "ExternalAccountLamportSpend", + "ExternalAccountDataModified", + "ReadonlyLamportChange", + "ReadonlyDataModified", + "DuplicateAccountIndex", + "ExecutableModified", + "RentEpochModified", + "NotEnoughAccountKeys", + "AccountDataSizeChanged", + "AccountNotExecutable", + "AccountBorrowFailed", + "AccountBorrowOutstanding", + "DuplicateAccountOutOfSync", + "Custom", + "InvalidError", + "ExecutableDataModified", + "ExecutableLamportChange", + "ExecutableAccountNotRentExempt", + "UnsupportedProgramId", + "CallDepth", + "MissingAccount", + "ReentrancyNotAllowed", + "MaxSeedLengthExceeded", + "InvalidSeeds", + "InvalidRealloc", + "ComputationalBudgetExceeded", + "PrivilegeEscalation", + "ProgramEnvironmentSetupFailure", + "ProgramFailedToComplete", + "ProgramFailedToCompile", + "Immutable", + "IncorrectAuthority", + "BorshIoError", + "AccountNotRentExempt", + "InvalidAccountOwner", + "ArithmeticOverflow", + "UnsupportedSysvar", + "IllegalOwner", + "MaxAccountsDataAllocationsExceeded", + "MaxAccountsExceeded", + "MaxInstructionTraceLengthExceeded", + "BuiltinProgramsMustConsumeComputeUnits" + ]; + function getSolanaErrorFromInstructionError(index, instructionError) { + const numberIndex = Number(index); + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 4615001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + index: numberIndex, + ...rpcErrorContext !== void 0 ? { instructionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM) { + return { + code: Number(rpcErrorContext), + index: numberIndex + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR) { + return { + encodedData: rpcErrorContext, + index: numberIndex + }; + } + return { index: numberIndex }; + }, + orderedErrorNames: ORDERED_ERROR_NAMES, + rpcEnumError: instructionError + }, + getSolanaErrorFromInstructionError + ); + } + var ORDERED_ERROR_NAMES2 = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/src/transaction/error.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "AccountInUse", + "AccountLoadedTwice", + "AccountNotFound", + "ProgramAccountNotFound", + "InsufficientFundsForFee", + "InvalidAccountForFee", + "AlreadyProcessed", + "BlockhashNotFound", + // `InstructionError` intentionally omitted; delegated to `getSolanaErrorFromInstructionError` + "CallChainTooDeep", + "MissingSignatureForFee", + "InvalidAccountIndex", + "SignatureFailure", + "InvalidProgramForExecution", + "SanitizeFailure", + "ClusterMaintenance", + "AccountBorrowOutstanding", + "WouldExceedMaxBlockCostLimit", + "UnsupportedVersion", + "InvalidWritableAccount", + "WouldExceedMaxAccountCostLimit", + "WouldExceedAccountDataBlockLimit", + "TooManyAccountLocks", + "AddressLookupTableNotFound", + "InvalidAddressLookupTableOwner", + "InvalidAddressLookupTableData", + "InvalidAddressLookupTableIndex", + "InvalidRentPayingAccount", + "WouldExceedMaxVoteCostLimit", + "WouldExceedAccountDataTotalLimit", + "DuplicateInstruction", + "InsufficientFundsForRent", + "MaxLoadedAccountsDataSizeExceeded", + "InvalidLoadedAccountsDataSizeLimit", + "ResanitizationNeeded", + "ProgramExecutionTemporarilyRestricted", + "UnbalancedTransaction" + ]; + function getSolanaErrorFromTransactionError(transactionError) { + if (typeof transactionError === "object" && "InstructionError" in transactionError) { + return getSolanaErrorFromInstructionError( + ...transactionError.InstructionError + ); + } + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 7050001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + ...rpcErrorContext !== void 0 ? { transactionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION) { + return { + index: Number(rpcErrorContext) + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT || errorCode === SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED) { + return { + accountIndex: Number(rpcErrorContext.account_index) + }; + } + }, + orderedErrorNames: ORDERED_ERROR_NAMES2, + rpcEnumError: transactionError + }, + getSolanaErrorFromTransactionError + ); + } + function getSolanaErrorFromJsonRpcError(putativeErrorResponse) { + let out; + if (isRpcErrorResponse(putativeErrorResponse)) { + const { code: rawCode, data, message } = putativeErrorResponse; + const code = Number(rawCode); + if (code === SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE) { + const { err, ...preflightErrorContext } = data; + const causeObject = err ? { cause: getSolanaErrorFromTransactionError(err) } : null; + out = new SolanaError(SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, { + ...preflightErrorContext, + ...causeObject + }); + } else { + let errorContext; + switch (code) { + case SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR: + case SOLANA_ERROR__JSON_RPC__INVALID_PARAMS: + case SOLANA_ERROR__JSON_RPC__INVALID_REQUEST: + case SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND: + case SOLANA_ERROR__JSON_RPC__PARSE_ERROR: + case SOLANA_ERROR__JSON_RPC__SCAN_ERROR: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: + errorContext = { __serverMessage: message }; + break; + default: + if (typeof data === "object" && !Array.isArray(data)) { + errorContext = data; + } + } + out = new SolanaError(code, errorContext); + } + } else { + const message = typeof putativeErrorResponse === "object" && putativeErrorResponse !== null && "message" in putativeErrorResponse && typeof putativeErrorResponse.message === "string" ? putativeErrorResponse.message : "Malformed JSON-RPC error with no message attribute"; + out = new SolanaError(SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR, { error: putativeErrorResponse, message }); + } + safeCaptureStackTrace(out, getSolanaErrorFromJsonRpcError); + return out; + } + function isRpcErrorResponse(value) { + return typeof value === "object" && value !== null && "code" in value && "message" in value && (typeof value.code === "number" || typeof value.code === "bigint") && typeof value.message === "string"; + } + exports2.SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND; + exports2.SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE; + exports2.SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = SOLANA_ERROR__ADDRESSES__MALFORMED_PDA; + exports2.SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE; + exports2.SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER; + exports2.SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED; + exports2.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY; + exports2.SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS; + exports2.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE; + exports2.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__INVALID_CONSTANT = SOLANA_ERROR__CODECS__INVALID_CONSTANT; + exports2.SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS; + exports2.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE; + exports2.SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES; + exports2.SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA; + exports2.SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH; + exports2.SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH; + exports2.SOLANA_ERROR__INVALID_NONCE = SOLANA_ERROR__INVALID_NONCE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED = SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE; + exports2.SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = SOLANA_ERROR__JSON_RPC__INVALID_PARAMS; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = SOLANA_ERROR__JSON_RPC__INVALID_REQUEST; + exports2.SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND; + exports2.SOLANA_ERROR__JSON_RPC__PARSE_ERROR = SOLANA_ERROR__JSON_RPC__PARSE_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SCAN_ERROR = SOLANA_ERROR__JSON_RPC__SCAN_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION; + exports2.SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY; + exports2.SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE; + exports2.SOLANA_ERROR__MALFORMED_BIGINT_STRING = SOLANA_ERROR__MALFORMED_BIGINT_STRING; + exports2.SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR = SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR; + exports2.SOLANA_ERROR__MALFORMED_NUMBER_STRING = SOLANA_ERROR__MALFORMED_NUMBER_STRING; + exports2.SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID; + exports2.SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD = SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD; + exports2.SOLANA_ERROR__RPC__INTEGER_OVERFLOW = SOLANA_ERROR__RPC__INTEGER_OVERFLOW; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN; + exports2.SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING; + exports2.SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT = SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE; + exports2.SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH; + exports2.SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE; + exports2.SolanaError = SolanaError; + exports2.getSolanaErrorFromInstructionError = getSolanaErrorFromInstructionError; + exports2.getSolanaErrorFromJsonRpcError = getSolanaErrorFromJsonRpcError; + exports2.getSolanaErrorFromTransactionError = getSolanaErrorFromTransactionError; + exports2.isSolanaError = isSolanaError; + exports2.safeCaptureStackTrace = safeCaptureStackTrace; + } +}); + +// node_modules/@solana/codecs-core/dist/index.node.cjs +var require_index_node2 = __commonJS({ + "node_modules/@solana/codecs-core/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node(); + var mergeBytes = (byteArrays) => { + const nonEmptyByteArrays = byteArrays.filter((arr) => arr.length); + if (nonEmptyByteArrays.length === 0) { + return byteArrays.length ? byteArrays[0] : new Uint8Array(); + } + if (nonEmptyByteArrays.length === 1) { + return nonEmptyByteArrays[0]; + } + const totalLength = nonEmptyByteArrays.reduce((total, arr) => total + arr.length, 0); + const result = new Uint8Array(totalLength); + let offset = 0; + nonEmptyByteArrays.forEach((arr) => { + result.set(arr, offset); + offset += arr.length; + }); + return result; + }; + var padBytes = (bytes7, length) => { + if (bytes7.length >= length) return bytes7; + const paddedBytes = new Uint8Array(length).fill(0); + paddedBytes.set(bytes7); + return paddedBytes; + }; + var fixBytes = (bytes7, length) => padBytes(bytes7.length <= length ? bytes7 : bytes7.slice(0, length), length); + function containsBytes(data, bytes7, offset) { + const slice = offset === 0 && data.length === bytes7.length ? data : data.slice(offset, offset + bytes7.length); + if (slice.length !== bytes7.length) return false; + return bytes7.every((b, i) => b === slice[i]); + } + function getEncodedSize(value, encoder) { + return "fixedSize" in encoder ? encoder.fixedSize : encoder.getSizeFromValue(value); + } + function createEncoder(encoder) { + return Object.freeze({ + ...encoder, + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, encoder)); + encoder.write(value, bytes7, 0); + return bytes7; + } + }); + } + function createDecoder(decoder) { + return Object.freeze({ + ...decoder, + decode: (bytes7, offset = 0) => decoder.read(bytes7, offset)[0] + }); + } + function createCodec(codec) { + return Object.freeze({ + ...codec, + decode: (bytes7, offset = 0) => codec.read(bytes7, offset)[0], + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, codec)); + codec.write(value, bytes7, 0); + return bytes7; + } + }); + } + function isFixedSize(codec) { + return "fixedSize" in codec && typeof codec.fixedSize === "number"; + } + function assertIsFixedSize(codec) { + if (!isFixedSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH); + } + } + function isVariableSize(codec) { + return !isFixedSize(codec); + } + function assertIsVariableSize(codec) { + if (!isVariableSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH); + } + } + function combineCodec(encoder, decoder) { + if (isFixedSize(encoder) !== isFixedSize(decoder)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH); + } + if (isFixedSize(encoder) && isFixedSize(decoder) && encoder.fixedSize !== decoder.fixedSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH, { + decoderFixedSize: decoder.fixedSize, + encoderFixedSize: encoder.fixedSize + }); + } + if (!isFixedSize(encoder) && !isFixedSize(decoder) && encoder.maxSize !== decoder.maxSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH, { + decoderMaxSize: decoder.maxSize, + encoderMaxSize: encoder.maxSize + }); + } + return { + ...decoder, + ...encoder, + decode: decoder.decode, + encode: encoder.encode, + read: decoder.read, + write: encoder.write + }; + } + function addEncoderSentinel(encoder, sentinel) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + if (findSentinelIndex(encoderBytes, sentinel) >= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL, { + encodedBytes: encoderBytes, + hexEncodedBytes: hexBytes(encoderBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + bytes7.set(encoderBytes, offset); + offset += encoderBytes.length; + bytes7.set(sentinel, offset); + offset += sentinel.length; + return offset; + }; + if (isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: encoder.fixedSize + sentinel.length, write }); + } + return createEncoder({ + ...encoder, + ...encoder.maxSize != null ? { maxSize: encoder.maxSize + sentinel.length } : {}, + getSizeFromValue: (value) => encoder.getSizeFromValue(value) + sentinel.length, + write + }); + } + function addDecoderSentinel(decoder, sentinel) { + const read = (bytes7, offset) => { + const candidateBytes = offset === 0 ? bytes7 : bytes7.slice(offset); + const sentinelIndex = findSentinelIndex(candidateBytes, sentinel); + if (sentinelIndex === -1) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES, { + decodedBytes: candidateBytes, + hexDecodedBytes: hexBytes(candidateBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + const preSentinelBytes = candidateBytes.slice(0, sentinelIndex); + return [decoder.decode(preSentinelBytes), offset + preSentinelBytes.length + sentinel.length]; + }; + if (isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: decoder.fixedSize + sentinel.length, read }); + } + return createDecoder({ + ...decoder, + ...decoder.maxSize != null ? { maxSize: decoder.maxSize + sentinel.length } : {}, + read + }); + } + function addCodecSentinel(codec, sentinel) { + return combineCodec(addEncoderSentinel(codec, sentinel), addDecoderSentinel(codec, sentinel)); + } + function findSentinelIndex(bytes7, sentinel) { + return bytes7.findIndex((byte, index, arr) => { + if (sentinel.length === 1) return byte === sentinel[0]; + return containsBytes(arr, sentinel, index); + }); + } + function hexBytes(bytes7) { + return bytes7.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); + } + function assertByteArrayIsNotEmptyForCodec(codecDescription, bytes7, offset = 0) { + if (bytes7.length - offset <= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY, { + codecDescription + }); + } + } + function assertByteArrayHasEnoughBytesForCodec(codecDescription, expected, bytes7, offset = 0) { + const bytesLength = bytes7.length - offset; + if (bytesLength < expected) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH, { + bytesLength, + codecDescription, + expected + }); + } + } + function assertByteArrayOffsetIsNotOutOfRange(codecDescription, offset, bytesLength) { + if (offset < 0 || offset > bytesLength) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE, { + bytesLength, + codecDescription, + offset + }); + } + } + function addEncoderSizePrefix(encoder, prefix) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + offset = prefix.write(encoderBytes.length, bytes7, offset); + bytes7.set(encoderBytes, offset); + return offset + encoderBytes.length; + }; + if (isFixedSize(prefix) && isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: prefix.fixedSize + encoder.fixedSize, write }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const encoderMaxSize = isFixedSize(encoder) ? encoder.fixedSize : encoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && encoderMaxSize !== null ? prefixMaxSize + encoderMaxSize : null; + return createEncoder({ + ...encoder, + ...maxSize !== null ? { maxSize } : {}, + getSizeFromValue: (value) => { + const encoderSize = getEncodedSize(value, encoder); + return getEncodedSize(encoderSize, prefix) + encoderSize; + }, + write + }); + } + function addDecoderSizePrefix(decoder, prefix) { + const read = (bytes7, offset) => { + const [bigintSize, decoderOffset] = prefix.read(bytes7, offset); + const size = Number(bigintSize); + offset = decoderOffset; + if (offset > 0 || bytes7.length > size) { + bytes7 = bytes7.slice(offset, offset + size); + } + assertByteArrayHasEnoughBytesForCodec("addDecoderSizePrefix", size, bytes7); + return [decoder.decode(bytes7), offset + size]; + }; + if (isFixedSize(prefix) && isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: prefix.fixedSize + decoder.fixedSize, read }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const decoderMaxSize = isFixedSize(decoder) ? decoder.fixedSize : decoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && decoderMaxSize !== null ? prefixMaxSize + decoderMaxSize : null; + return createDecoder({ ...decoder, ...maxSize !== null ? { maxSize } : {}, read }); + } + function addCodecSizePrefix(codec, prefix) { + return combineCodec(addEncoderSizePrefix(codec, prefix), addDecoderSizePrefix(codec, prefix)); + } + function fixEncoderSize(encoder, fixedBytes) { + return createEncoder({ + fixedSize: fixedBytes, + write: (value, bytes7, offset) => { + const variableByteArray = encoder.encode(value); + const fixedByteArray = variableByteArray.length > fixedBytes ? variableByteArray.slice(0, fixedBytes) : variableByteArray; + bytes7.set(fixedByteArray, offset); + return offset + fixedBytes; + } + }); + } + function fixDecoderSize(decoder, fixedBytes) { + return createDecoder({ + fixedSize: fixedBytes, + read: (bytes7, offset) => { + assertByteArrayHasEnoughBytesForCodec("fixCodecSize", fixedBytes, bytes7, offset); + if (offset > 0 || bytes7.length > fixedBytes) { + bytes7 = bytes7.slice(offset, offset + fixedBytes); + } + if (isFixedSize(decoder)) { + bytes7 = fixBytes(bytes7, decoder.fixedSize); + } + const [value] = decoder.read(bytes7, 0); + return [value, offset + fixedBytes]; + } + }); + } + function fixCodecSize(codec, fixedBytes) { + return combineCodec(fixEncoderSize(codec, fixedBytes), fixDecoderSize(codec, fixedBytes)); + } + function offsetEncoder(encoder, config) { + return createEncoder({ + ...encoder, + write: (value, bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPreOffset, bytes7.length); + const postOffset = encoder.write(value, bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPostOffset, bytes7.length); + return newPostOffset; + } + }); + } + function offsetDecoder(decoder, config) { + return createDecoder({ + ...decoder, + read: (bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPreOffset, bytes7.length); + const [value, postOffset] = decoder.read(bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPostOffset, bytes7.length); + return [value, newPostOffset]; + } + }); + } + function offsetCodec(codec, config) { + return combineCodec(offsetEncoder(codec, config), offsetDecoder(codec, config)); + } + function modulo(dividend, divisor) { + if (divisor === 0) return 0; + return (dividend % divisor + divisor) % divisor; + } + function resizeEncoder(encoder, resize) { + if (isFixedSize(encoder)) { + const fixedSize = resize(encoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeEncoder" + }); + } + return createEncoder({ ...encoder, fixedSize }); + } + return createEncoder({ + ...encoder, + getSizeFromValue: (value) => { + const newSize = resize(encoder.getSizeFromValue(value)); + if (newSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: newSize, + codecDescription: "resizeEncoder" + }); + } + return newSize; + } + }); + } + function resizeDecoder(decoder, resize) { + if (isFixedSize(decoder)) { + const fixedSize = resize(decoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeDecoder" + }); + } + return createDecoder({ ...decoder, fixedSize }); + } + return decoder; + } + function resizeCodec(codec, resize) { + return combineCodec(resizeEncoder(codec, resize), resizeDecoder(codec, resize)); + } + function padLeftEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftCodec(codec, offset) { + return combineCodec(padLeftEncoder(codec, offset), padLeftDecoder(codec, offset)); + } + function padRightCodec(codec, offset) { + return combineCodec(padRightEncoder(codec, offset), padRightDecoder(codec, offset)); + } + function copySourceToTargetInReverse(source, target_WILL_MUTATE, sourceOffset, sourceLength, targetOffset = 0) { + while (sourceOffset < --sourceLength) { + const leftValue = source[sourceOffset]; + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceLength]; + target_WILL_MUTATE[sourceLength + targetOffset] = leftValue; + sourceOffset++; + } + if (sourceOffset === sourceLength) { + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceOffset]; + } + } + function reverseEncoder(encoder) { + assertIsFixedSize(encoder); + return createEncoder({ + ...encoder, + write: (value, bytes7, offset) => { + const newOffset = encoder.write(value, bytes7, offset); + copySourceToTargetInReverse( + bytes7, + bytes7, + offset, + offset + encoder.fixedSize + ); + return newOffset; + } + }); + } + function reverseDecoder(decoder) { + assertIsFixedSize(decoder); + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const reversedBytes = bytes7.slice(); + copySourceToTargetInReverse( + bytes7, + reversedBytes, + offset, + offset + decoder.fixedSize + ); + return decoder.read(reversedBytes, offset); + } + }); + } + function reverseCodec(codec) { + return combineCodec(reverseEncoder(codec), reverseDecoder(codec)); + } + function transformEncoder(encoder, unmap) { + return createEncoder({ + ...isVariableSize(encoder) ? { ...encoder, getSizeFromValue: (value) => encoder.getSizeFromValue(unmap(value)) } : encoder, + write: (value, bytes7, offset) => encoder.write(unmap(value), bytes7, offset) + }); + } + function transformDecoder(decoder, map) { + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const [value, newOffset] = decoder.read(bytes7, offset); + return [map(value, bytes7, offset), newOffset]; + } + }); + } + function transformCodec(codec, unmap, map) { + return createCodec({ + ...transformEncoder(codec, unmap), + read: map ? transformDecoder(codec, map).read : codec.read + }); + } + exports2.addCodecSentinel = addCodecSentinel; + exports2.addCodecSizePrefix = addCodecSizePrefix; + exports2.addDecoderSentinel = addDecoderSentinel; + exports2.addDecoderSizePrefix = addDecoderSizePrefix; + exports2.addEncoderSentinel = addEncoderSentinel; + exports2.addEncoderSizePrefix = addEncoderSizePrefix; + exports2.assertByteArrayHasEnoughBytesForCodec = assertByteArrayHasEnoughBytesForCodec; + exports2.assertByteArrayIsNotEmptyForCodec = assertByteArrayIsNotEmptyForCodec; + exports2.assertByteArrayOffsetIsNotOutOfRange = assertByteArrayOffsetIsNotOutOfRange; + exports2.assertIsFixedSize = assertIsFixedSize; + exports2.assertIsVariableSize = assertIsVariableSize; + exports2.combineCodec = combineCodec; + exports2.containsBytes = containsBytes; + exports2.createCodec = createCodec; + exports2.createDecoder = createDecoder; + exports2.createEncoder = createEncoder; + exports2.fixBytes = fixBytes; + exports2.fixCodecSize = fixCodecSize; + exports2.fixDecoderSize = fixDecoderSize; + exports2.fixEncoderSize = fixEncoderSize; + exports2.getEncodedSize = getEncodedSize; + exports2.isFixedSize = isFixedSize; + exports2.isVariableSize = isVariableSize; + exports2.mergeBytes = mergeBytes; + exports2.offsetCodec = offsetCodec; + exports2.offsetDecoder = offsetDecoder; + exports2.offsetEncoder = offsetEncoder; + exports2.padBytes = padBytes; + exports2.padLeftCodec = padLeftCodec; + exports2.padLeftDecoder = padLeftDecoder; + exports2.padLeftEncoder = padLeftEncoder; + exports2.padRightCodec = padRightCodec; + exports2.padRightDecoder = padRightDecoder; + exports2.padRightEncoder = padRightEncoder; + exports2.resizeCodec = resizeCodec; + exports2.resizeDecoder = resizeDecoder; + exports2.resizeEncoder = resizeEncoder; + exports2.reverseCodec = reverseCodec; + exports2.reverseDecoder = reverseDecoder; + exports2.reverseEncoder = reverseEncoder; + exports2.transformCodec = transformCodec; + exports2.transformDecoder = transformDecoder; + exports2.transformEncoder = transformEncoder; + } +}); + +// node_modules/@solana/codecs-numbers/dist/index.node.cjs +var require_index_node3 = __commonJS({ + "node_modules/@solana/codecs-numbers/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node(); + var codecsCore = require_index_node2(); + function assertNumberIsBetweenForCodec(codecDescription, min, max, value) { + if (value < min || value > max) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE, { + codecDescription, + max, + min, + value + }); + } + } + var Endian = /* @__PURE__ */ ((Endian2) => { + Endian2[Endian2["Little"] = 0] = "Little"; + Endian2[Endian2["Big"] = 1] = "Big"; + return Endian2; + })(Endian || {}); + function isLittleEndian(config) { + return config?.endian === 1 ? false : true; + } + function numberEncoderFactory(input) { + return codecsCore.createEncoder({ + fixedSize: input.size, + write(value, bytes7, offset) { + if (input.range) { + assertNumberIsBetweenForCodec(input.name, input.range[0], input.range[1], value); + } + const arrayBuffer = new ArrayBuffer(input.size); + input.set(new DataView(arrayBuffer), value, isLittleEndian(input.config)); + bytes7.set(new Uint8Array(arrayBuffer), offset); + return offset + input.size; + } + }); + } + function numberDecoderFactory(input) { + return codecsCore.createDecoder({ + fixedSize: input.size, + read(bytes7, offset = 0) { + codecsCore.assertByteArrayIsNotEmptyForCodec(input.name, bytes7, offset); + codecsCore.assertByteArrayHasEnoughBytesForCodec(input.name, input.size, bytes7, offset); + const view = new DataView(toArrayBuffer(bytes7, offset, input.size)); + return [input.get(view, isLittleEndian(input.config)), offset + input.size]; + } + }); + } + function toArrayBuffer(bytes7, offset, length) { + const bytesOffset = bytes7.byteOffset + (offset ?? 0); + const bytesLength = length ?? bytes7.byteLength; + return bytes7.buffer.slice(bytesOffset, bytesOffset + bytesLength); + } + var getF32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "f32", + set: (view, value, le) => view.setFloat32(0, Number(value), le), + size: 4 + }); + var getF32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getFloat32(0, le), + name: "f32", + size: 4 + }); + var getF32Codec = (config = {}) => codecsCore.combineCodec(getF32Encoder(config), getF32Decoder(config)); + var getF64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "f64", + set: (view, value, le) => view.setFloat64(0, Number(value), le), + size: 8 + }); + var getF64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getFloat64(0, le), + name: "f64", + size: 8 + }); + var getF64Codec = (config = {}) => codecsCore.combineCodec(getF64Encoder(config), getF64Decoder(config)); + var getI128Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i128", + range: [-BigInt("0x7fffffffffffffffffffffffffffffff") - 1n, BigInt("0x7fffffffffffffffffffffffffffffff")], + set: (view, value, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const rightMask = 0xffffffffffffffffn; + view.setBigInt64(leftOffset, BigInt(value) >> 64n, le); + view.setBigUint64(rightOffset, BigInt(value) & rightMask, le); + }, + size: 16 + }); + var getI128Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const left = view.getBigInt64(leftOffset, le); + const right = view.getBigUint64(rightOffset, le); + return (left << 64n) + right; + }, + name: "i128", + size: 16 + }); + var getI128Codec = (config = {}) => codecsCore.combineCodec(getI128Encoder(config), getI128Decoder(config)); + var getI16Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i16", + range: [-Number("0x7fff") - 1, Number("0x7fff")], + set: (view, value, le) => view.setInt16(0, Number(value), le), + size: 2 + }); + var getI16Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getInt16(0, le), + name: "i16", + size: 2 + }); + var getI16Codec = (config = {}) => codecsCore.combineCodec(getI16Encoder(config), getI16Decoder(config)); + var getI32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i32", + range: [-Number("0x7fffffff") - 1, Number("0x7fffffff")], + set: (view, value, le) => view.setInt32(0, Number(value), le), + size: 4 + }); + var getI32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getInt32(0, le), + name: "i32", + size: 4 + }); + var getI32Codec = (config = {}) => codecsCore.combineCodec(getI32Encoder(config), getI32Decoder(config)); + var getI64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i64", + range: [-BigInt("0x7fffffffffffffff") - 1n, BigInt("0x7fffffffffffffff")], + set: (view, value, le) => view.setBigInt64(0, BigInt(value), le), + size: 8 + }); + var getI64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getBigInt64(0, le), + name: "i64", + size: 8 + }); + var getI64Codec = (config = {}) => codecsCore.combineCodec(getI64Encoder(config), getI64Decoder(config)); + var getI8Encoder = () => numberEncoderFactory({ + name: "i8", + range: [-Number("0x7f") - 1, Number("0x7f")], + set: (view, value) => view.setInt8(0, Number(value)), + size: 1 + }); + var getI8Decoder = () => numberDecoderFactory({ + get: (view) => view.getInt8(0), + name: "i8", + size: 1 + }); + var getI8Codec = () => codecsCore.combineCodec(getI8Encoder(), getI8Decoder()); + var getShortU16Encoder = () => codecsCore.createEncoder({ + getSizeFromValue: (value) => { + if (value <= 127) return 1; + if (value <= 16383) return 2; + return 3; + }, + maxSize: 3, + write: (value, bytes7, offset) => { + assertNumberIsBetweenForCodec("shortU16", 0, 65535, value); + const shortU16Bytes = [0]; + for (let ii = 0; ; ii += 1) { + const alignedValue = Number(value) >> ii * 7; + if (alignedValue === 0) { + break; + } + const nextSevenBits = 127 & alignedValue; + shortU16Bytes[ii] = nextSevenBits; + if (ii > 0) { + shortU16Bytes[ii - 1] |= 128; + } + } + bytes7.set(shortU16Bytes, offset); + return offset + shortU16Bytes.length; + } + }); + var getShortU16Decoder = () => codecsCore.createDecoder({ + maxSize: 3, + read: (bytes7, offset) => { + let value = 0; + let byteCount = 0; + while (++byteCount) { + const byteIndex = byteCount - 1; + const currentByte = bytes7[offset + byteIndex]; + const nextSevenBits = 127 & currentByte; + value |= nextSevenBits << byteIndex * 7; + if ((currentByte & 128) === 0) { + break; + } + } + return [value, offset + byteCount]; + } + }); + var getShortU16Codec = () => codecsCore.combineCodec(getShortU16Encoder(), getShortU16Decoder()); + var getU128Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u128", + range: [0n, BigInt("0xffffffffffffffffffffffffffffffff")], + set: (view, value, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const rightMask = 0xffffffffffffffffn; + view.setBigUint64(leftOffset, BigInt(value) >> 64n, le); + view.setBigUint64(rightOffset, BigInt(value) & rightMask, le); + }, + size: 16 + }); + var getU128Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const left = view.getBigUint64(leftOffset, le); + const right = view.getBigUint64(rightOffset, le); + return (left << 64n) + right; + }, + name: "u128", + size: 16 + }); + var getU128Codec = (config = {}) => codecsCore.combineCodec(getU128Encoder(config), getU128Decoder(config)); + var getU16Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u16", + range: [0, Number("0xffff")], + set: (view, value, le) => view.setUint16(0, Number(value), le), + size: 2 + }); + var getU16Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getUint16(0, le), + name: "u16", + size: 2 + }); + var getU16Codec = (config = {}) => codecsCore.combineCodec(getU16Encoder(config), getU16Decoder(config)); + var getU32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u32", + range: [0, Number("0xffffffff")], + set: (view, value, le) => view.setUint32(0, Number(value), le), + size: 4 + }); + var getU32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getUint32(0, le), + name: "u32", + size: 4 + }); + var getU32Codec = (config = {}) => codecsCore.combineCodec(getU32Encoder(config), getU32Decoder(config)); + var getU64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u64", + range: [0n, BigInt("0xffffffffffffffff")], + set: (view, value, le) => view.setBigUint64(0, BigInt(value), le), + size: 8 + }); + var getU64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getBigUint64(0, le), + name: "u64", + size: 8 + }); + var getU64Codec = (config = {}) => codecsCore.combineCodec(getU64Encoder(config), getU64Decoder(config)); + var getU8Encoder = () => numberEncoderFactory({ + name: "u8", + range: [0, Number("0xff")], + set: (view, value) => view.setUint8(0, Number(value)), + size: 1 + }); + var getU8Decoder = () => numberDecoderFactory({ + get: (view) => view.getUint8(0), + name: "u8", + size: 1 + }); + var getU8Codec = () => codecsCore.combineCodec(getU8Encoder(), getU8Decoder()); + exports2.Endian = Endian; + exports2.assertNumberIsBetweenForCodec = assertNumberIsBetweenForCodec; + exports2.getF32Codec = getF32Codec; + exports2.getF32Decoder = getF32Decoder; + exports2.getF32Encoder = getF32Encoder; + exports2.getF64Codec = getF64Codec; + exports2.getF64Decoder = getF64Decoder; + exports2.getF64Encoder = getF64Encoder; + exports2.getI128Codec = getI128Codec; + exports2.getI128Decoder = getI128Decoder; + exports2.getI128Encoder = getI128Encoder; + exports2.getI16Codec = getI16Codec; + exports2.getI16Decoder = getI16Decoder; + exports2.getI16Encoder = getI16Encoder; + exports2.getI32Codec = getI32Codec; + exports2.getI32Decoder = getI32Decoder; + exports2.getI32Encoder = getI32Encoder; + exports2.getI64Codec = getI64Codec; + exports2.getI64Decoder = getI64Decoder; + exports2.getI64Encoder = getI64Encoder; + exports2.getI8Codec = getI8Codec; + exports2.getI8Decoder = getI8Decoder; + exports2.getI8Encoder = getI8Encoder; + exports2.getShortU16Codec = getShortU16Codec; + exports2.getShortU16Decoder = getShortU16Decoder; + exports2.getShortU16Encoder = getShortU16Encoder; + exports2.getU128Codec = getU128Codec; + exports2.getU128Decoder = getU128Decoder; + exports2.getU128Encoder = getU128Encoder; + exports2.getU16Codec = getU16Codec; + exports2.getU16Decoder = getU16Decoder; + exports2.getU16Encoder = getU16Encoder; + exports2.getU32Codec = getU32Codec; + exports2.getU32Decoder = getU32Decoder; + exports2.getU32Encoder = getU32Encoder; + exports2.getU64Codec = getU64Codec; + exports2.getU64Decoder = getU64Decoder; + exports2.getU64Encoder = getU64Encoder; + exports2.getU8Codec = getU8Codec; + exports2.getU8Decoder = getU8Decoder; + exports2.getU8Encoder = getU8Encoder; + } +}); + +// node_modules/superstruct/dist/index.cjs +var require_dist = __commonJS({ + "node_modules/superstruct/dist/index.cjs"(exports2, module2) { + (function(global2, factory) { + typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.Superstruct = {})); + })(exports2, function(exports3) { + "use strict"; + class StructError extends TypeError { + constructor(failure, failures) { + let cached; + const { message, explanation, ...rest } = failure; + const { path } = failure; + const msg = path.length === 0 ? message : `At path: ${path.join(".")} -- ${message}`; + super(explanation ?? msg); + if (explanation != null) + this.cause = msg; + Object.assign(this, rest); + this.name = this.constructor.name; + this.failures = () => { + return cached ?? (cached = [failure, ...failures()]); + }; + } + } + function isIterable(x) { + return isObject(x) && typeof x[Symbol.iterator] === "function"; + } + function isObject(x) { + return typeof x === "object" && x != null; + } + function isNonArrayObject(x) { + return isObject(x) && !Array.isArray(x); + } + function isPlainObject(x) { + if (Object.prototype.toString.call(x) !== "[object Object]") { + return false; + } + const prototype = Object.getPrototypeOf(x); + return prototype === null || prototype === Object.prototype; + } + function print(value) { + if (typeof value === "symbol") { + return value.toString(); + } + return typeof value === "string" ? JSON.stringify(value) : `${value}`; + } + function shiftIterator(input) { + const { done, value } = input.next(); + return done ? void 0 : value; + } + function toFailure(result, context, struct3, value) { + if (result === true) { + return; + } else if (result === false) { + result = {}; + } else if (typeof result === "string") { + result = { message: result }; + } + const { path, branch } = context; + const { type: type2 } = struct3; + const { refinement, message = `Expected a value of type \`${type2}\`${refinement ? ` with refinement \`${refinement}\`` : ""}, but received: \`${print(value)}\`` } = result; + return { + value, + type: type2, + refinement, + key: path[path.length - 1], + path, + branch, + ...result, + message + }; + } + function* toFailures(result, context, struct3, value) { + if (!isIterable(result)) { + result = [result]; + } + for (const r of result) { + const failure = toFailure(r, context, struct3, value); + if (failure) { + yield failure; + } + } + } + function* run(value, struct3, options = {}) { + const { path = [], branch = [value], coerce: coerce2 = false, mask: mask2 = false } = options; + const ctx = { path, branch, mask: mask2 }; + if (coerce2) { + value = struct3.coercer(value, ctx); + } + let status = "valid"; + for (const failure of struct3.validator(value, ctx)) { + failure.explanation = options.message; + status = "not_valid"; + yield [failure, void 0]; + } + for (let [k, v, s] of struct3.entries(value, ctx)) { + const ts = run(v, s, { + path: k === void 0 ? path : [...path, k], + branch: k === void 0 ? branch : [...branch, v], + coerce: coerce2, + mask: mask2, + message: options.message + }); + for (const t of ts) { + if (t[0]) { + status = t[0].refinement != null ? "not_refined" : "not_valid"; + yield [t[0], void 0]; + } else if (coerce2) { + v = t[1]; + if (k === void 0) { + value = v; + } else if (value instanceof Map) { + value.set(k, v); + } else if (value instanceof Set) { + value.add(v); + } else if (isObject(value)) { + if (v !== void 0 || k in value) + value[k] = v; + } + } + } + } + if (status !== "not_valid") { + for (const failure of struct3.refiner(value, ctx)) { + failure.explanation = options.message; + status = "not_refined"; + yield [failure, void 0]; + } + } + if (status === "valid") { + yield [void 0, value]; + } + } + class Struct { + constructor(props) { + const { type: type2, schema, validator, refiner, coercer = (value) => value, entries = function* () { + } } = props; + this.type = type2; + this.schema = schema; + this.entries = entries; + this.coercer = coercer; + if (validator) { + this.validator = (value, context) => { + const result = validator(value, context); + return toFailures(result, context, this, value); + }; + } else { + this.validator = () => []; + } + if (refiner) { + this.refiner = (value, context) => { + const result = refiner(value, context); + return toFailures(result, context, this, value); + }; + } else { + this.refiner = () => []; + } + } + /** + * Assert that a value passes the struct's validation, throwing if it doesn't. + */ + assert(value, message) { + return assert2(value, this, message); + } + /** + * Create a value with the struct's coercion logic, then validate it. + */ + create(value, message) { + return create(value, this, message); + } + /** + * Check if a value passes the struct's validation. + */ + is(value) { + return is(value, this); + } + /** + * Mask a value, coercing and validating it, but returning only the subset of + * properties defined by the struct's schema. Masking applies recursively to + * props of `object` structs only. + */ + mask(value, message) { + return mask(value, this, message); + } + /** + * Validate a value with the struct's validation logic, returning a tuple + * representing the result. + * + * You may optionally pass `true` for the `coerce` argument to coerce + * the value before attempting to validate it. If you do, the result will + * contain the coerced result when successful. Also, `mask` will turn on + * masking of the unknown `object` props recursively if passed. + */ + validate(value, options = {}) { + return validate2(value, this, options); + } + } + function assert2(value, struct3, message) { + const result = validate2(value, struct3, { message }); + if (result[0]) { + throw result[0]; + } + } + function create(value, struct3, message) { + const result = validate2(value, struct3, { coerce: true, message }); + if (result[0]) { + throw result[0]; + } else { + return result[1]; + } + } + function mask(value, struct3, message) { + const result = validate2(value, struct3, { coerce: true, mask: true, message }); + if (result[0]) { + throw result[0]; + } else { + return result[1]; + } + } + function is(value, struct3) { + const result = validate2(value, struct3); + return !result[0]; + } + function validate2(value, struct3, options = {}) { + const tuples = run(value, struct3, options); + const tuple2 = shiftIterator(tuples); + if (tuple2[0]) { + const error = new StructError(tuple2[0], function* () { + for (const t of tuples) { + if (t[0]) { + yield t[0]; + } + } + }); + return [error, void 0]; + } else { + const v = tuple2[1]; + return [void 0, v]; + } + } + function assign(...Structs) { + const isType = Structs[0].type === "type"; + const schemas = Structs.map((s) => s.schema); + const schema = Object.assign({}, ...schemas); + return isType ? type(schema) : object(schema); + } + function define2(name, validator) { + return new Struct({ type: name, schema: null, validator }); + } + function deprecated(struct3, log) { + return new Struct({ + ...struct3, + refiner: (value, ctx) => value === void 0 || struct3.refiner(value, ctx), + validator(value, ctx) { + if (value === void 0) { + return true; + } else { + log(value, ctx); + return struct3.validator(value, ctx); + } + } + }); + } + function dynamic(fn) { + return new Struct({ + type: "dynamic", + schema: null, + *entries(value, ctx) { + const struct3 = fn(value, ctx); + yield* struct3.entries(value, ctx); + }, + validator(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.validator(value, ctx); + }, + coercer(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.coercer(value, ctx); + }, + refiner(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.refiner(value, ctx); + } + }); + } + function lazy(fn) { + let struct3; + return new Struct({ + type: "lazy", + schema: null, + *entries(value, ctx) { + struct3 ?? (struct3 = fn()); + yield* struct3.entries(value, ctx); + }, + validator(value, ctx) { + struct3 ?? (struct3 = fn()); + return struct3.validator(value, ctx); + }, + coercer(value, ctx) { + struct3 ?? (struct3 = fn()); + return struct3.coercer(value, ctx); + }, + refiner(value, ctx) { + struct3 ?? (struct3 = fn()); + return struct3.refiner(value, ctx); + } + }); + } + function omit(struct3, keys) { + const { schema } = struct3; + const subschema = { ...schema }; + for (const key of keys) { + delete subschema[key]; + } + switch (struct3.type) { + case "type": + return type(subschema); + default: + return object(subschema); + } + } + function partial(struct3) { + const isStruct = struct3 instanceof Struct; + const schema = isStruct ? { ...struct3.schema } : { ...struct3 }; + for (const key in schema) { + schema[key] = optional(schema[key]); + } + if (isStruct && struct3.type === "type") { + return type(schema); + } + return object(schema); + } + function pick(struct3, keys) { + const { schema } = struct3; + const subschema = {}; + for (const key of keys) { + subschema[key] = schema[key]; + } + switch (struct3.type) { + case "type": + return type(subschema); + default: + return object(subschema); + } + } + function struct2(name, validator) { + console.warn("superstruct@0.11 - The `struct` helper has been renamed to `define`."); + return define2(name, validator); + } + function any() { + return define2("any", () => true); + } + function array11(Element) { + return new Struct({ + type: "array", + schema: Element, + *entries(value) { + if (Element && Array.isArray(value)) { + for (const [i, v] of value.entries()) { + yield [i, v, Element]; + } + } + }, + coercer(value) { + return Array.isArray(value) ? value.slice() : value; + }, + validator(value) { + return Array.isArray(value) || `Expected an array value, but received: ${print(value)}`; + } + }); + } + function bigint() { + return define2("bigint", (value) => { + return typeof value === "bigint"; + }); + } + function boolean() { + return define2("boolean", (value) => { + return typeof value === "boolean"; + }); + } + function date() { + return define2("date", (value) => { + return value instanceof Date && !isNaN(value.getTime()) || `Expected a valid \`Date\` object, but received: ${print(value)}`; + }); + } + function enums(values) { + const schema = {}; + const description = values.map((v) => print(v)).join(); + for (const key of values) { + schema[key] = key; + } + return new Struct({ + type: "enums", + schema, + validator(value) { + return values.includes(value) || `Expected one of \`${description}\`, but received: ${print(value)}`; + } + }); + } + function func() { + return define2("func", (value) => { + return typeof value === "function" || `Expected a function, but received: ${print(value)}`; + }); + } + function instance(Class) { + return define2("instance", (value) => { + return value instanceof Class || `Expected a \`${Class.name}\` instance, but received: ${print(value)}`; + }); + } + function integer() { + return define2("integer", (value) => { + return typeof value === "number" && !isNaN(value) && Number.isInteger(value) || `Expected an integer, but received: ${print(value)}`; + }); + } + function intersection(Structs) { + return new Struct({ + type: "intersection", + schema: null, + *entries(value, ctx) { + for (const S of Structs) { + yield* S.entries(value, ctx); + } + }, + *validator(value, ctx) { + for (const S of Structs) { + yield* S.validator(value, ctx); + } + }, + *refiner(value, ctx) { + for (const S of Structs) { + yield* S.refiner(value, ctx); + } + } + }); + } + function literal(constant) { + const description = print(constant); + const t = typeof constant; + return new Struct({ + type: "literal", + schema: t === "string" || t === "number" || t === "boolean" ? constant : null, + validator(value) { + return value === constant || `Expected the literal \`${description}\`, but received: ${print(value)}`; + } + }); + } + function map(Key, Value) { + return new Struct({ + type: "map", + schema: null, + *entries(value) { + if (Key && Value && value instanceof Map) { + for (const [k, v] of value.entries()) { + yield [k, k, Key]; + yield [k, v, Value]; + } + } + }, + coercer(value) { + return value instanceof Map ? new Map(value) : value; + }, + validator(value) { + return value instanceof Map || `Expected a \`Map\` object, but received: ${print(value)}`; + } + }); + } + function never() { + return define2("never", () => false); + } + function nullable(struct3) { + return new Struct({ + ...struct3, + validator: (value, ctx) => value === null || struct3.validator(value, ctx), + refiner: (value, ctx) => value === null || struct3.refiner(value, ctx) + }); + } + function number() { + return define2("number", (value) => { + return typeof value === "number" && !isNaN(value) || `Expected a number, but received: ${print(value)}`; + }); + } + function object(schema) { + const knowns = schema ? Object.keys(schema) : []; + const Never = never(); + return new Struct({ + type: "object", + schema: schema ? schema : null, + *entries(value) { + if (schema && isObject(value)) { + const unknowns = new Set(Object.keys(value)); + for (const key of knowns) { + unknowns.delete(key); + yield [key, value[key], schema[key]]; + } + for (const key of unknowns) { + yield [key, value[key], Never]; + } + } + }, + validator(value) { + return isNonArrayObject(value) || `Expected an object, but received: ${print(value)}`; + }, + coercer(value, ctx) { + if (!isNonArrayObject(value)) { + return value; + } + const coerced = { ...value }; + if (ctx.mask && schema) { + for (const key in coerced) { + if (schema[key] === void 0) { + delete coerced[key]; + } + } + } + return coerced; + } + }); + } + function optional(struct3) { + return new Struct({ + ...struct3, + validator: (value, ctx) => value === void 0 || struct3.validator(value, ctx), + refiner: (value, ctx) => value === void 0 || struct3.refiner(value, ctx) + }); + } + function record(Key, Value) { + return new Struct({ + type: "record", + schema: null, + *entries(value) { + if (isObject(value)) { + for (const k in value) { + const v = value[k]; + yield [k, k, Key]; + yield [k, v, Value]; + } + } + }, + validator(value) { + return isNonArrayObject(value) || `Expected an object, but received: ${print(value)}`; + }, + coercer(value) { + return isNonArrayObject(value) ? { ...value } : value; + } + }); + } + function regexp() { + return define2("regexp", (value) => { + return value instanceof RegExp; + }); + } + function set(Element) { + return new Struct({ + type: "set", + schema: null, + *entries(value) { + if (Element && value instanceof Set) { + for (const v of value) { + yield [v, v, Element]; + } + } + }, + coercer(value) { + return value instanceof Set ? new Set(value) : value; + }, + validator(value) { + return value instanceof Set || `Expected a \`Set\` object, but received: ${print(value)}`; + } + }); + } + function string() { + return define2("string", (value) => { + return typeof value === "string" || `Expected a string, but received: ${print(value)}`; + }); + } + function tuple(Structs) { + const Never = never(); + return new Struct({ + type: "tuple", + schema: null, + *entries(value) { + if (Array.isArray(value)) { + const length = Math.max(Structs.length, value.length); + for (let i = 0; i < length; i++) { + yield [i, value[i], Structs[i] || Never]; + } + } + }, + validator(value) { + return Array.isArray(value) || `Expected an array, but received: ${print(value)}`; + }, + coercer(value) { + return Array.isArray(value) ? value.slice() : value; + } + }); + } + function type(schema) { + const keys = Object.keys(schema); + return new Struct({ + type: "type", + schema, + *entries(value) { + if (isObject(value)) { + for (const k of keys) { + yield [k, value[k], schema[k]]; + } + } + }, + validator(value) { + return isNonArrayObject(value) || `Expected an object, but received: ${print(value)}`; + }, + coercer(value) { + return isNonArrayObject(value) ? { ...value } : value; + } + }); + } + function union(Structs) { + const description = Structs.map((s) => s.type).join(" | "); + return new Struct({ + type: "union", + schema: null, + coercer(value, ctx) { + for (const S of Structs) { + const [error, coerced] = S.validate(value, { + coerce: true, + mask: ctx.mask + }); + if (!error) { + return coerced; + } + } + return value; + }, + validator(value, ctx) { + const failures = []; + for (const S of Structs) { + const [...tuples] = run(value, S, ctx); + const [first] = tuples; + if (!first[0]) { + return []; + } else { + for (const [failure] of tuples) { + if (failure) { + failures.push(failure); + } + } + } + } + return [ + `Expected the value to satisfy a union of \`${description}\`, but received: ${print(value)}`, + ...failures + ]; + } + }); + } + function unknown() { + return define2("unknown", () => true); + } + function coerce(struct3, condition, coercer) { + return new Struct({ + ...struct3, + coercer: (value, ctx) => { + return is(value, condition) ? struct3.coercer(coercer(value, ctx), ctx) : struct3.coercer(value, ctx); + } + }); + } + function defaulted(struct3, fallback, options = {}) { + return coerce(struct3, unknown(), (x) => { + const f = typeof fallback === "function" ? fallback() : fallback; + if (x === void 0) { + return f; + } + if (!options.strict && isPlainObject(x) && isPlainObject(f)) { + const ret = { ...x }; + let changed = false; + for (const key in f) { + if (ret[key] === void 0) { + ret[key] = f[key]; + changed = true; + } + } + if (changed) { + return ret; + } + } + return x; + }); + } + function trimmed(struct3) { + return coerce(struct3, string(), (x) => x.trim()); + } + function empty(struct3) { + return refine(struct3, "empty", (value) => { + const size2 = getSize(value); + return size2 === 0 || `Expected an empty ${struct3.type} but received one with a size of \`${size2}\``; + }); + } + function getSize(value) { + if (value instanceof Map || value instanceof Set) { + return value.size; + } else { + return value.length; + } + } + function max(struct3, threshold, options = {}) { + const { exclusive } = options; + return refine(struct3, "max", (value) => { + return exclusive ? value < threshold : value <= threshold || `Expected a ${struct3.type} less than ${exclusive ? "" : "or equal to "}${threshold} but received \`${value}\``; + }); + } + function min(struct3, threshold, options = {}) { + const { exclusive } = options; + return refine(struct3, "min", (value) => { + return exclusive ? value > threshold : value >= threshold || `Expected a ${struct3.type} greater than ${exclusive ? "" : "or equal to "}${threshold} but received \`${value}\``; + }); + } + function nonempty(struct3) { + return refine(struct3, "nonempty", (value) => { + const size2 = getSize(value); + return size2 > 0 || `Expected a nonempty ${struct3.type} but received an empty one`; + }); + } + function pattern(struct3, regexp2) { + return refine(struct3, "pattern", (value) => { + return regexp2.test(value) || `Expected a ${struct3.type} matching \`/${regexp2.source}/\` but received "${value}"`; + }); + } + function size(struct3, min2, max2 = min2) { + const expected = `Expected a ${struct3.type}`; + const of = min2 === max2 ? `of \`${min2}\`` : `between \`${min2}\` and \`${max2}\``; + return refine(struct3, "size", (value) => { + if (typeof value === "number" || value instanceof Date) { + return min2 <= value && value <= max2 || `${expected} ${of} but received \`${value}\``; + } else if (value instanceof Map || value instanceof Set) { + const { size: size2 } = value; + return min2 <= size2 && size2 <= max2 || `${expected} with a size ${of} but received one with a size of \`${size2}\``; + } else { + const { length } = value; + return min2 <= length && length <= max2 || `${expected} with a length ${of} but received one with a length of \`${length}\``; + } + }); + } + function refine(struct3, name, refiner) { + return new Struct({ + ...struct3, + *refiner(value, ctx) { + yield* struct3.refiner(value, ctx); + const result = refiner(value, ctx); + const failures = toFailures(result, ctx, struct3, value); + for (const failure of failures) { + yield { ...failure, refinement: name }; + } + } + }); + } + exports3.Struct = Struct; + exports3.StructError = StructError; + exports3.any = any; + exports3.array = array11; + exports3.assert = assert2; + exports3.assign = assign; + exports3.bigint = bigint; + exports3.boolean = boolean; + exports3.coerce = coerce; + exports3.create = create; + exports3.date = date; + exports3.defaulted = defaulted; + exports3.define = define2; + exports3.deprecated = deprecated; + exports3.dynamic = dynamic; + exports3.empty = empty; + exports3.enums = enums; + exports3.func = func; + exports3.instance = instance; + exports3.integer = integer; + exports3.intersection = intersection; + exports3.is = is; + exports3.lazy = lazy; + exports3.literal = literal; + exports3.map = map; + exports3.mask = mask; + exports3.max = max; + exports3.min = min; + exports3.never = never; + exports3.nonempty = nonempty; + exports3.nullable = nullable; + exports3.number = number; + exports3.object = object; + exports3.omit = omit; + exports3.optional = optional; + exports3.partial = partial; + exports3.pattern = pattern; + exports3.pick = pick; + exports3.record = record; + exports3.refine = refine; + exports3.regexp = regexp; + exports3.set = set; + exports3.size = size; + exports3.string = string; + exports3.struct = struct2; + exports3.trimmed = trimmed; + exports3.tuple = tuple; + exports3.type = type; + exports3.union = union; + exports3.unknown = unknown; + exports3.validate = validate2; + }); + } +}); + +// node_modules/jayson/lib/generateRequest.js +var require_generateRequest = __commonJS({ + "node_modules/jayson/lib/generateRequest.js"(exports2, module2) { + "use strict"; + var uuid = (init_esm_node(), __toCommonJS(esm_node_exports)).v4; + var generateRequest = function(method2, params, id, options) { + if (typeof method2 !== "string") { + throw new TypeError(method2 + " must be a string"); + } + options = options || {}; + const version2 = typeof options.version === "number" ? options.version : 2; + if (version2 !== 1 && version2 !== 2) { + throw new TypeError(version2 + " must be 1 or 2"); + } + const request = { + method: method2 + }; + if (version2 === 2) { + request.jsonrpc = "2.0"; + } + if (params) { + if (typeof params !== "object" && !Array.isArray(params)) { + throw new TypeError(params + " must be an object, array or omitted"); + } + request.params = params; + } + if (typeof id === "undefined") { + const generator = typeof options.generator === "function" ? options.generator : function() { + return uuid(); + }; + request.id = generator(request, options); + } else if (version2 === 2 && id === null) { + if (options.notificationIdNull) { + request.id = null; + } + } else { + request.id = id; + } + return request; + }; + module2.exports = generateRequest; + } +}); + +// node_modules/jayson/lib/client/browser/index.js +var require_browser = __commonJS({ + "node_modules/jayson/lib/client/browser/index.js"(exports2, module2) { + "use strict"; + var uuid = (init_esm_node(), __toCommonJS(esm_node_exports)).v4; + var generateRequest = require_generateRequest(); + var ClientBrowser = function(callServer, options) { + if (!(this instanceof ClientBrowser)) { + return new ClientBrowser(callServer, options); + } + if (!options) { + options = {}; + } + this.options = { + reviver: typeof options.reviver !== "undefined" ? options.reviver : null, + replacer: typeof options.replacer !== "undefined" ? options.replacer : null, + generator: typeof options.generator !== "undefined" ? options.generator : function() { + return uuid(); + }, + version: typeof options.version !== "undefined" ? options.version : 2, + notificationIdNull: typeof options.notificationIdNull === "boolean" ? options.notificationIdNull : false + }; + this.callServer = callServer; + }; + module2.exports = ClientBrowser; + ClientBrowser.prototype.request = function(method2, params, id, callback) { + const self2 = this; + let request = null; + const isBatch = Array.isArray(method2) && typeof params === "function"; + if (this.options.version === 1 && isBatch) { + throw new TypeError("JSON-RPC 1.0 does not support batching"); + } + const isRaw = !isBatch && method2 && typeof method2 === "object" && typeof params === "function"; + if (isBatch || isRaw) { + callback = params; + request = method2; + } else { + if (typeof id === "function") { + callback = id; + id = void 0; + } + const hasCallback = typeof callback === "function"; + try { + request = generateRequest(method2, params, id, { + generator: this.options.generator, + version: this.options.version, + notificationIdNull: this.options.notificationIdNull + }); + } catch (err) { + if (hasCallback) { + return callback(err); + } + throw err; + } + if (!hasCallback) { + return request; + } + } + let message; + try { + message = JSON.stringify(request, this.options.replacer); + } catch (err) { + return callback(err); + } + this.callServer(message, function(err, response) { + self2._parseResponse(err, response, callback); + }); + return request; + }; + ClientBrowser.prototype._parseResponse = function(err, responseText, callback) { + if (err) { + callback(err); + return; + } + if (!responseText) { + return callback(); + } + let response; + try { + response = JSON.parse(responseText, this.options.reviver); + } catch (err2) { + return callback(err2); + } + if (callback.length === 3) { + if (Array.isArray(response)) { + const isError = function(res) { + return typeof res.error !== "undefined"; + }; + const isNotError = function(res) { + return !isError(res); + }; + return callback(null, response.filter(isError), response.filter(isNotError)); + } else { + return callback(null, response.error, response.result); + } + } + callback(null, response); + }; + } +}); + +// node_modules/webidl-conversions/lib/index.js +var require_lib3 = __commonJS({ + "node_modules/webidl-conversions/lib/index.js"(exports2, module2) { + "use strict"; + var conversions = {}; + module2.exports = conversions; + function sign(x) { + return x < 0 ? -1 : 1; + } + function evenRound(x) { + if (x % 1 === 0.5 && (x & 1) === 0) { + return Math.floor(x); + } else { + return Math.round(x); + } + } + function createNumberConversion(bitLength, typeOpts) { + if (!typeOpts.unsigned) { + --bitLength; + } + const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); + const upperBound = Math.pow(2, bitLength) - 1; + const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); + const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); + return function(V, opts) { + if (!opts) opts = {}; + let x = +V; + if (opts.enforceRange) { + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite number"); + } + x = sign(x) * Math.floor(Math.abs(x)); + if (x < lowerBound || x > upperBound) { + throw new TypeError("Argument is not in byte range"); + } + return x; + } + if (!isNaN(x) && opts.clamp) { + x = evenRound(x); + if (x < lowerBound) x = lowerBound; + if (x > upperBound) x = upperBound; + return x; + } + if (!Number.isFinite(x) || x === 0) { + return 0; + } + x = sign(x) * Math.floor(Math.abs(x)); + x = x % moduloVal; + if (!typeOpts.unsigned && x >= moduloBound) { + return x - moduloVal; + } else if (typeOpts.unsigned) { + if (x < 0) { + x += moduloVal; + } else if (x === -0) { + return 0; + } + } + return x; + }; + } + conversions["void"] = function() { + return void 0; + }; + conversions["boolean"] = function(val) { + return !!val; + }; + conversions["byte"] = createNumberConversion(8, { unsigned: false }); + conversions["octet"] = createNumberConversion(8, { unsigned: true }); + conversions["short"] = createNumberConversion(16, { unsigned: false }); + conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); + conversions["long"] = createNumberConversion(32, { unsigned: false }); + conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); + conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); + conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); + conversions["double"] = function(V) { + const x = +V; + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite floating-point value"); + } + return x; + }; + conversions["unrestricted double"] = function(V) { + const x = +V; + if (isNaN(x)) { + throw new TypeError("Argument is NaN"); + } + return x; + }; + conversions["float"] = conversions["double"]; + conversions["unrestricted float"] = conversions["unrestricted double"]; + conversions["DOMString"] = function(V, opts) { + if (!opts) opts = {}; + if (opts.treatNullAsEmptyString && V === null) { + return ""; + } + return String(V); + }; + conversions["ByteString"] = function(V, opts) { + const x = String(V); + let c = void 0; + for (let i = 0; (c = x.codePointAt(i)) !== void 0; ++i) { + if (c > 255) { + throw new TypeError("Argument is not a valid bytestring"); + } + } + return x; + }; + conversions["USVString"] = function(V) { + const S = String(V); + const n = S.length; + const U = []; + for (let i = 0; i < n; ++i) { + const c = S.charCodeAt(i); + if (c < 55296 || c > 57343) { + U.push(String.fromCodePoint(c)); + } else if (56320 <= c && c <= 57343) { + U.push(String.fromCodePoint(65533)); + } else { + if (i === n - 1) { + U.push(String.fromCodePoint(65533)); + } else { + const d = S.charCodeAt(i + 1); + if (56320 <= d && d <= 57343) { + const a = c & 1023; + const b = d & 1023; + U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); + ++i; + } else { + U.push(String.fromCodePoint(65533)); + } + } + } + } + return U.join(""); + }; + conversions["Date"] = function(V, opts) { + if (!(V instanceof Date)) { + throw new TypeError("Argument is not a Date object"); + } + if (isNaN(V)) { + return void 0; + } + return V; + }; + conversions["RegExp"] = function(V, opts) { + if (!(V instanceof RegExp)) { + V = new RegExp(V); + } + return V; + }; + } +}); + +// node_modules/whatwg-url/lib/utils.js +var require_utils5 = __commonJS({ + "node_modules/whatwg-url/lib/utils.js"(exports2, module2) { + "use strict"; + module2.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); + } + }; + module2.exports.wrapperSymbol = Symbol("wrapper"); + module2.exports.implSymbol = Symbol("impl"); + module2.exports.wrapperForImpl = function(impl) { + return impl[module2.exports.wrapperSymbol]; + }; + module2.exports.implForWrapper = function(wrapper) { + return wrapper[module2.exports.implSymbol]; + }; + } +}); + +// node_modules/tr46/lib/mappingTable.json +var require_mappingTable = __commonJS({ + "node_modules/tr46/lib/mappingTable.json"(exports2, module2) { + module2.exports = [[[0, 44], "disallowed_STD3_valid"], [[45, 46], "valid"], [[47, 47], "disallowed_STD3_valid"], [[48, 57], "valid"], [[58, 64], "disallowed_STD3_valid"], [[65, 65], "mapped", [97]], [[66, 66], "mapped", [98]], [[67, 67], "mapped", [99]], [[68, 68], "mapped", [100]], [[69, 69], "mapped", [101]], [[70, 70], "mapped", [102]], [[71, 71], "mapped", [103]], [[72, 72], "mapped", [104]], [[73, 73], "mapped", [105]], [[74, 74], "mapped", [106]], [[75, 75], "mapped", [107]], [[76, 76], "mapped", [108]], [[77, 77], "mapped", [109]], [[78, 78], "mapped", [110]], [[79, 79], "mapped", [111]], [[80, 80], "mapped", [112]], [[81, 81], "mapped", [113]], [[82, 82], "mapped", [114]], [[83, 83], "mapped", [115]], [[84, 84], "mapped", [116]], [[85, 85], "mapped", [117]], [[86, 86], "mapped", [118]], [[87, 87], "mapped", [119]], [[88, 88], "mapped", [120]], [[89, 89], "mapped", [121]], [[90, 90], "mapped", [122]], [[91, 96], "disallowed_STD3_valid"], [[97, 122], "valid"], [[123, 127], "disallowed_STD3_valid"], [[128, 159], "disallowed"], [[160, 160], "disallowed_STD3_mapped", [32]], [[161, 167], "valid", [], "NV8"], [[168, 168], "disallowed_STD3_mapped", [32, 776]], [[169, 169], "valid", [], "NV8"], [[170, 170], "mapped", [97]], [[171, 172], "valid", [], "NV8"], [[173, 173], "ignored"], [[174, 174], "valid", [], "NV8"], [[175, 175], "disallowed_STD3_mapped", [32, 772]], [[176, 177], "valid", [], "NV8"], [[178, 178], "mapped", [50]], [[179, 179], "mapped", [51]], [[180, 180], "disallowed_STD3_mapped", [32, 769]], [[181, 181], "mapped", [956]], [[182, 182], "valid", [], "NV8"], [[183, 183], "valid"], [[184, 184], "disallowed_STD3_mapped", [32, 807]], [[185, 185], "mapped", [49]], [[186, 186], "mapped", [111]], [[187, 187], "valid", [], "NV8"], [[188, 188], "mapped", [49, 8260, 52]], [[189, 189], "mapped", [49, 8260, 50]], [[190, 190], "mapped", [51, 8260, 52]], [[191, 191], "valid", [], "NV8"], [[192, 192], "mapped", [224]], [[193, 193], "mapped", [225]], [[194, 194], "mapped", [226]], [[195, 195], "mapped", [227]], [[196, 196], "mapped", [228]], [[197, 197], "mapped", [229]], [[198, 198], "mapped", [230]], [[199, 199], "mapped", [231]], [[200, 200], "mapped", [232]], [[201, 201], "mapped", [233]], [[202, 202], "mapped", [234]], [[203, 203], "mapped", [235]], [[204, 204], "mapped", [236]], [[205, 205], "mapped", [237]], [[206, 206], "mapped", [238]], [[207, 207], "mapped", [239]], [[208, 208], "mapped", [240]], [[209, 209], "mapped", [241]], [[210, 210], "mapped", [242]], [[211, 211], "mapped", [243]], [[212, 212], "mapped", [244]], [[213, 213], "mapped", [245]], [[214, 214], "mapped", [246]], [[215, 215], "valid", [], "NV8"], [[216, 216], "mapped", [248]], [[217, 217], "mapped", [249]], [[218, 218], "mapped", [250]], [[219, 219], "mapped", [251]], [[220, 220], "mapped", [252]], [[221, 221], "mapped", [253]], [[222, 222], "mapped", [254]], [[223, 223], "deviation", [115, 115]], [[224, 246], "valid"], [[247, 247], "valid", [], "NV8"], [[248, 255], "valid"], [[256, 256], "mapped", [257]], [[257, 257], "valid"], [[258, 258], "mapped", [259]], [[259, 259], "valid"], [[260, 260], "mapped", [261]], [[261, 261], "valid"], [[262, 262], "mapped", [263]], [[263, 263], "valid"], [[264, 264], "mapped", [265]], [[265, 265], "valid"], [[266, 266], "mapped", [267]], [[267, 267], "valid"], [[268, 268], "mapped", [269]], [[269, 269], "valid"], [[270, 270], "mapped", [271]], [[271, 271], "valid"], [[272, 272], "mapped", [273]], [[273, 273], "valid"], [[274, 274], "mapped", [275]], [[275, 275], "valid"], [[276, 276], "mapped", [277]], [[277, 277], "valid"], [[278, 278], "mapped", [279]], [[279, 279], "valid"], [[280, 280], "mapped", [281]], [[281, 281], "valid"], [[282, 282], "mapped", [283]], [[283, 283], "valid"], [[284, 284], "mapped", [285]], [[285, 285], "valid"], [[286, 286], "mapped", [287]], [[287, 287], "valid"], [[288, 288], "mapped", [289]], [[289, 289], "valid"], [[290, 290], "mapped", [291]], [[291, 291], "valid"], [[292, 292], "mapped", [293]], [[293, 293], "valid"], [[294, 294], "mapped", [295]], [[295, 295], "valid"], [[296, 296], "mapped", [297]], [[297, 297], "valid"], [[298, 298], "mapped", [299]], [[299, 299], "valid"], [[300, 300], "mapped", [301]], [[301, 301], "valid"], [[302, 302], "mapped", [303]], [[303, 303], "valid"], [[304, 304], "mapped", [105, 775]], [[305, 305], "valid"], [[306, 307], "mapped", [105, 106]], [[308, 308], "mapped", [309]], [[309, 309], "valid"], [[310, 310], "mapped", [311]], [[311, 312], "valid"], [[313, 313], "mapped", [314]], [[314, 314], "valid"], [[315, 315], "mapped", [316]], [[316, 316], "valid"], [[317, 317], "mapped", [318]], [[318, 318], "valid"], [[319, 320], "mapped", [108, 183]], [[321, 321], "mapped", [322]], [[322, 322], "valid"], [[323, 323], "mapped", [324]], [[324, 324], "valid"], [[325, 325], "mapped", [326]], [[326, 326], "valid"], [[327, 327], "mapped", [328]], [[328, 328], "valid"], [[329, 329], "mapped", [700, 110]], [[330, 330], "mapped", [331]], [[331, 331], "valid"], [[332, 332], "mapped", [333]], [[333, 333], "valid"], [[334, 334], "mapped", [335]], [[335, 335], "valid"], [[336, 336], "mapped", [337]], [[337, 337], "valid"], [[338, 338], "mapped", [339]], [[339, 339], "valid"], [[340, 340], "mapped", [341]], [[341, 341], "valid"], [[342, 342], "mapped", [343]], [[343, 343], "valid"], [[344, 344], "mapped", [345]], [[345, 345], "valid"], [[346, 346], "mapped", [347]], [[347, 347], "valid"], [[348, 348], "mapped", [349]], [[349, 349], "valid"], [[350, 350], "mapped", [351]], [[351, 351], "valid"], [[352, 352], "mapped", [353]], [[353, 353], "valid"], [[354, 354], "mapped", [355]], [[355, 355], "valid"], [[356, 356], "mapped", [357]], [[357, 357], "valid"], [[358, 358], "mapped", [359]], [[359, 359], "valid"], [[360, 360], "mapped", [361]], [[361, 361], "valid"], [[362, 362], "mapped", [363]], [[363, 363], "valid"], [[364, 364], "mapped", [365]], [[365, 365], "valid"], [[366, 366], "mapped", [367]], [[367, 367], "valid"], [[368, 368], "mapped", [369]], [[369, 369], "valid"], [[370, 370], "mapped", [371]], [[371, 371], "valid"], [[372, 372], "mapped", [373]], [[373, 373], "valid"], [[374, 374], "mapped", [375]], [[375, 375], "valid"], [[376, 376], "mapped", [255]], [[377, 377], "mapped", [378]], [[378, 378], "valid"], [[379, 379], "mapped", [380]], [[380, 380], "valid"], [[381, 381], "mapped", [382]], [[382, 382], "valid"], [[383, 383], "mapped", [115]], [[384, 384], "valid"], [[385, 385], "mapped", [595]], [[386, 386], "mapped", [387]], [[387, 387], "valid"], [[388, 388], "mapped", [389]], [[389, 389], "valid"], [[390, 390], "mapped", [596]], [[391, 391], "mapped", [392]], [[392, 392], "valid"], [[393, 393], "mapped", [598]], [[394, 394], "mapped", [599]], [[395, 395], "mapped", [396]], [[396, 397], "valid"], [[398, 398], "mapped", [477]], [[399, 399], "mapped", [601]], [[400, 400], "mapped", [603]], [[401, 401], "mapped", [402]], [[402, 402], "valid"], [[403, 403], "mapped", [608]], [[404, 404], "mapped", [611]], [[405, 405], "valid"], [[406, 406], "mapped", [617]], [[407, 407], "mapped", [616]], [[408, 408], "mapped", [409]], [[409, 411], "valid"], [[412, 412], "mapped", [623]], [[413, 413], "mapped", [626]], [[414, 414], "valid"], [[415, 415], "mapped", [629]], [[416, 416], "mapped", [417]], [[417, 417], "valid"], [[418, 418], "mapped", [419]], [[419, 419], "valid"], [[420, 420], "mapped", [421]], [[421, 421], "valid"], [[422, 422], "mapped", [640]], [[423, 423], "mapped", [424]], [[424, 424], "valid"], [[425, 425], "mapped", [643]], [[426, 427], "valid"], [[428, 428], "mapped", [429]], [[429, 429], "valid"], [[430, 430], "mapped", [648]], [[431, 431], "mapped", [432]], [[432, 432], "valid"], [[433, 433], "mapped", [650]], [[434, 434], "mapped", [651]], [[435, 435], "mapped", [436]], [[436, 436], "valid"], [[437, 437], "mapped", [438]], [[438, 438], "valid"], [[439, 439], "mapped", [658]], [[440, 440], "mapped", [441]], [[441, 443], "valid"], [[444, 444], "mapped", [445]], [[445, 451], "valid"], [[452, 454], "mapped", [100, 382]], [[455, 457], "mapped", [108, 106]], [[458, 460], "mapped", [110, 106]], [[461, 461], "mapped", [462]], [[462, 462], "valid"], [[463, 463], "mapped", [464]], [[464, 464], "valid"], [[465, 465], "mapped", [466]], [[466, 466], "valid"], [[467, 467], "mapped", [468]], [[468, 468], "valid"], [[469, 469], "mapped", [470]], [[470, 470], "valid"], [[471, 471], "mapped", [472]], [[472, 472], "valid"], [[473, 473], "mapped", [474]], [[474, 474], "valid"], [[475, 475], "mapped", [476]], [[476, 477], "valid"], [[478, 478], "mapped", [479]], [[479, 479], "valid"], [[480, 480], "mapped", [481]], [[481, 481], "valid"], [[482, 482], "mapped", [483]], [[483, 483], "valid"], [[484, 484], "mapped", [485]], [[485, 485], "valid"], [[486, 486], "mapped", [487]], [[487, 487], "valid"], [[488, 488], "mapped", [489]], [[489, 489], "valid"], [[490, 490], "mapped", [491]], [[491, 491], "valid"], [[492, 492], "mapped", [493]], [[493, 493], "valid"], [[494, 494], "mapped", [495]], [[495, 496], "valid"], [[497, 499], "mapped", [100, 122]], [[500, 500], "mapped", [501]], [[501, 501], "valid"], [[502, 502], "mapped", [405]], [[503, 503], "mapped", [447]], [[504, 504], "mapped", [505]], [[505, 505], "valid"], [[506, 506], "mapped", [507]], [[507, 507], "valid"], [[508, 508], "mapped", [509]], [[509, 509], "valid"], [[510, 510], "mapped", [511]], [[511, 511], "valid"], [[512, 512], "mapped", [513]], [[513, 513], "valid"], [[514, 514], "mapped", [515]], [[515, 515], "valid"], [[516, 516], "mapped", [517]], [[517, 517], "valid"], [[518, 518], "mapped", [519]], [[519, 519], "valid"], [[520, 520], "mapped", [521]], [[521, 521], "valid"], [[522, 522], "mapped", [523]], [[523, 523], "valid"], [[524, 524], "mapped", [525]], [[525, 525], "valid"], [[526, 526], "mapped", [527]], [[527, 527], "valid"], [[528, 528], "mapped", [529]], [[529, 529], "valid"], [[530, 530], "mapped", [531]], [[531, 531], "valid"], [[532, 532], "mapped", [533]], [[533, 533], "valid"], [[534, 534], "mapped", [535]], [[535, 535], "valid"], [[536, 536], "mapped", [537]], [[537, 537], "valid"], [[538, 538], "mapped", [539]], [[539, 539], "valid"], [[540, 540], "mapped", [541]], [[541, 541], "valid"], [[542, 542], "mapped", [543]], [[543, 543], "valid"], [[544, 544], "mapped", [414]], [[545, 545], "valid"], [[546, 546], "mapped", [547]], [[547, 547], "valid"], [[548, 548], "mapped", [549]], [[549, 549], "valid"], [[550, 550], "mapped", [551]], [[551, 551], "valid"], [[552, 552], "mapped", [553]], [[553, 553], "valid"], [[554, 554], "mapped", [555]], [[555, 555], "valid"], [[556, 556], "mapped", [557]], [[557, 557], "valid"], [[558, 558], "mapped", [559]], [[559, 559], "valid"], [[560, 560], "mapped", [561]], [[561, 561], "valid"], [[562, 562], "mapped", [563]], [[563, 563], "valid"], [[564, 566], "valid"], [[567, 569], "valid"], [[570, 570], "mapped", [11365]], [[571, 571], "mapped", [572]], [[572, 572], "valid"], [[573, 573], "mapped", [410]], [[574, 574], "mapped", [11366]], [[575, 576], "valid"], [[577, 577], "mapped", [578]], [[578, 578], "valid"], [[579, 579], "mapped", [384]], [[580, 580], "mapped", [649]], [[581, 581], "mapped", [652]], [[582, 582], "mapped", [583]], [[583, 583], "valid"], [[584, 584], "mapped", [585]], [[585, 585], "valid"], [[586, 586], "mapped", [587]], [[587, 587], "valid"], [[588, 588], "mapped", [589]], [[589, 589], "valid"], [[590, 590], "mapped", [591]], [[591, 591], "valid"], [[592, 680], "valid"], [[681, 685], "valid"], [[686, 687], "valid"], [[688, 688], "mapped", [104]], [[689, 689], "mapped", [614]], [[690, 690], "mapped", [106]], [[691, 691], "mapped", [114]], [[692, 692], "mapped", [633]], [[693, 693], "mapped", [635]], [[694, 694], "mapped", [641]], [[695, 695], "mapped", [119]], [[696, 696], "mapped", [121]], [[697, 705], "valid"], [[706, 709], "valid", [], "NV8"], [[710, 721], "valid"], [[722, 727], "valid", [], "NV8"], [[728, 728], "disallowed_STD3_mapped", [32, 774]], [[729, 729], "disallowed_STD3_mapped", [32, 775]], [[730, 730], "disallowed_STD3_mapped", [32, 778]], [[731, 731], "disallowed_STD3_mapped", [32, 808]], [[732, 732], "disallowed_STD3_mapped", [32, 771]], [[733, 733], "disallowed_STD3_mapped", [32, 779]], [[734, 734], "valid", [], "NV8"], [[735, 735], "valid", [], "NV8"], [[736, 736], "mapped", [611]], [[737, 737], "mapped", [108]], [[738, 738], "mapped", [115]], [[739, 739], "mapped", [120]], [[740, 740], "mapped", [661]], [[741, 745], "valid", [], "NV8"], [[746, 747], "valid", [], "NV8"], [[748, 748], "valid"], [[749, 749], "valid", [], "NV8"], [[750, 750], "valid"], [[751, 767], "valid", [], "NV8"], [[768, 831], "valid"], [[832, 832], "mapped", [768]], [[833, 833], "mapped", [769]], [[834, 834], "valid"], [[835, 835], "mapped", [787]], [[836, 836], "mapped", [776, 769]], [[837, 837], "mapped", [953]], [[838, 846], "valid"], [[847, 847], "ignored"], [[848, 855], "valid"], [[856, 860], "valid"], [[861, 863], "valid"], [[864, 865], "valid"], [[866, 866], "valid"], [[867, 879], "valid"], [[880, 880], "mapped", [881]], [[881, 881], "valid"], [[882, 882], "mapped", [883]], [[883, 883], "valid"], [[884, 884], "mapped", [697]], [[885, 885], "valid"], [[886, 886], "mapped", [887]], [[887, 887], "valid"], [[888, 889], "disallowed"], [[890, 890], "disallowed_STD3_mapped", [32, 953]], [[891, 893], "valid"], [[894, 894], "disallowed_STD3_mapped", [59]], [[895, 895], "mapped", [1011]], [[896, 899], "disallowed"], [[900, 900], "disallowed_STD3_mapped", [32, 769]], [[901, 901], "disallowed_STD3_mapped", [32, 776, 769]], [[902, 902], "mapped", [940]], [[903, 903], "mapped", [183]], [[904, 904], "mapped", [941]], [[905, 905], "mapped", [942]], [[906, 906], "mapped", [943]], [[907, 907], "disallowed"], [[908, 908], "mapped", [972]], [[909, 909], "disallowed"], [[910, 910], "mapped", [973]], [[911, 911], "mapped", [974]], [[912, 912], "valid"], [[913, 913], "mapped", [945]], [[914, 914], "mapped", [946]], [[915, 915], "mapped", [947]], [[916, 916], "mapped", [948]], [[917, 917], "mapped", [949]], [[918, 918], "mapped", [950]], [[919, 919], "mapped", [951]], [[920, 920], "mapped", [952]], [[921, 921], "mapped", [953]], [[922, 922], "mapped", [954]], [[923, 923], "mapped", [955]], [[924, 924], "mapped", [956]], [[925, 925], "mapped", [957]], [[926, 926], "mapped", [958]], [[927, 927], "mapped", [959]], [[928, 928], "mapped", [960]], [[929, 929], "mapped", [961]], [[930, 930], "disallowed"], [[931, 931], "mapped", [963]], [[932, 932], "mapped", [964]], [[933, 933], "mapped", [965]], [[934, 934], "mapped", [966]], [[935, 935], "mapped", [967]], [[936, 936], "mapped", [968]], [[937, 937], "mapped", [969]], [[938, 938], "mapped", [970]], [[939, 939], "mapped", [971]], [[940, 961], "valid"], [[962, 962], "deviation", [963]], [[963, 974], "valid"], [[975, 975], "mapped", [983]], [[976, 976], "mapped", [946]], [[977, 977], "mapped", [952]], [[978, 978], "mapped", [965]], [[979, 979], "mapped", [973]], [[980, 980], "mapped", [971]], [[981, 981], "mapped", [966]], [[982, 982], "mapped", [960]], [[983, 983], "valid"], [[984, 984], "mapped", [985]], [[985, 985], "valid"], [[986, 986], "mapped", [987]], [[987, 987], "valid"], [[988, 988], "mapped", [989]], [[989, 989], "valid"], [[990, 990], "mapped", [991]], [[991, 991], "valid"], [[992, 992], "mapped", [993]], [[993, 993], "valid"], [[994, 994], "mapped", [995]], [[995, 995], "valid"], [[996, 996], "mapped", [997]], [[997, 997], "valid"], [[998, 998], "mapped", [999]], [[999, 999], "valid"], [[1e3, 1e3], "mapped", [1001]], [[1001, 1001], "valid"], [[1002, 1002], "mapped", [1003]], [[1003, 1003], "valid"], [[1004, 1004], "mapped", [1005]], [[1005, 1005], "valid"], [[1006, 1006], "mapped", [1007]], [[1007, 1007], "valid"], [[1008, 1008], "mapped", [954]], [[1009, 1009], "mapped", [961]], [[1010, 1010], "mapped", [963]], [[1011, 1011], "valid"], [[1012, 1012], "mapped", [952]], [[1013, 1013], "mapped", [949]], [[1014, 1014], "valid", [], "NV8"], [[1015, 1015], "mapped", [1016]], [[1016, 1016], "valid"], [[1017, 1017], "mapped", [963]], [[1018, 1018], "mapped", [1019]], [[1019, 1019], "valid"], [[1020, 1020], "valid"], [[1021, 1021], "mapped", [891]], [[1022, 1022], "mapped", [892]], [[1023, 1023], "mapped", [893]], [[1024, 1024], "mapped", [1104]], [[1025, 1025], "mapped", [1105]], [[1026, 1026], "mapped", [1106]], [[1027, 1027], "mapped", [1107]], [[1028, 1028], "mapped", [1108]], [[1029, 1029], "mapped", [1109]], [[1030, 1030], "mapped", [1110]], [[1031, 1031], "mapped", [1111]], [[1032, 1032], "mapped", [1112]], [[1033, 1033], "mapped", [1113]], [[1034, 1034], "mapped", [1114]], [[1035, 1035], "mapped", [1115]], [[1036, 1036], "mapped", [1116]], [[1037, 1037], "mapped", [1117]], [[1038, 1038], "mapped", [1118]], [[1039, 1039], "mapped", [1119]], [[1040, 1040], "mapped", [1072]], [[1041, 1041], "mapped", [1073]], [[1042, 1042], "mapped", [1074]], [[1043, 1043], "mapped", [1075]], [[1044, 1044], "mapped", [1076]], [[1045, 1045], "mapped", [1077]], [[1046, 1046], "mapped", [1078]], [[1047, 1047], "mapped", [1079]], [[1048, 1048], "mapped", [1080]], [[1049, 1049], "mapped", [1081]], [[1050, 1050], "mapped", [1082]], [[1051, 1051], "mapped", [1083]], [[1052, 1052], "mapped", [1084]], [[1053, 1053], "mapped", [1085]], [[1054, 1054], "mapped", [1086]], [[1055, 1055], "mapped", [1087]], [[1056, 1056], "mapped", [1088]], [[1057, 1057], "mapped", [1089]], [[1058, 1058], "mapped", [1090]], [[1059, 1059], "mapped", [1091]], [[1060, 1060], "mapped", [1092]], [[1061, 1061], "mapped", [1093]], [[1062, 1062], "mapped", [1094]], [[1063, 1063], "mapped", [1095]], [[1064, 1064], "mapped", [1096]], [[1065, 1065], "mapped", [1097]], [[1066, 1066], "mapped", [1098]], [[1067, 1067], "mapped", [1099]], [[1068, 1068], "mapped", [1100]], [[1069, 1069], "mapped", [1101]], [[1070, 1070], "mapped", [1102]], [[1071, 1071], "mapped", [1103]], [[1072, 1103], "valid"], [[1104, 1104], "valid"], [[1105, 1116], "valid"], [[1117, 1117], "valid"], [[1118, 1119], "valid"], [[1120, 1120], "mapped", [1121]], [[1121, 1121], "valid"], [[1122, 1122], "mapped", [1123]], [[1123, 1123], "valid"], [[1124, 1124], "mapped", [1125]], [[1125, 1125], "valid"], [[1126, 1126], "mapped", [1127]], [[1127, 1127], "valid"], [[1128, 1128], "mapped", [1129]], [[1129, 1129], "valid"], [[1130, 1130], "mapped", [1131]], [[1131, 1131], "valid"], [[1132, 1132], "mapped", [1133]], [[1133, 1133], "valid"], [[1134, 1134], "mapped", [1135]], [[1135, 1135], "valid"], [[1136, 1136], "mapped", [1137]], [[1137, 1137], "valid"], [[1138, 1138], "mapped", [1139]], [[1139, 1139], "valid"], [[1140, 1140], "mapped", [1141]], [[1141, 1141], "valid"], [[1142, 1142], "mapped", [1143]], [[1143, 1143], "valid"], [[1144, 1144], "mapped", [1145]], [[1145, 1145], "valid"], [[1146, 1146], "mapped", [1147]], [[1147, 1147], "valid"], [[1148, 1148], "mapped", [1149]], [[1149, 1149], "valid"], [[1150, 1150], "mapped", [1151]], [[1151, 1151], "valid"], [[1152, 1152], "mapped", [1153]], [[1153, 1153], "valid"], [[1154, 1154], "valid", [], "NV8"], [[1155, 1158], "valid"], [[1159, 1159], "valid"], [[1160, 1161], "valid", [], "NV8"], [[1162, 1162], "mapped", [1163]], [[1163, 1163], "valid"], [[1164, 1164], "mapped", [1165]], [[1165, 1165], "valid"], [[1166, 1166], "mapped", [1167]], [[1167, 1167], "valid"], [[1168, 1168], "mapped", [1169]], [[1169, 1169], "valid"], [[1170, 1170], "mapped", [1171]], [[1171, 1171], "valid"], [[1172, 1172], "mapped", [1173]], [[1173, 1173], "valid"], [[1174, 1174], "mapped", [1175]], [[1175, 1175], "valid"], [[1176, 1176], "mapped", [1177]], [[1177, 1177], "valid"], [[1178, 1178], "mapped", [1179]], [[1179, 1179], "valid"], [[1180, 1180], "mapped", [1181]], [[1181, 1181], "valid"], [[1182, 1182], "mapped", [1183]], [[1183, 1183], "valid"], [[1184, 1184], "mapped", [1185]], [[1185, 1185], "valid"], [[1186, 1186], "mapped", [1187]], [[1187, 1187], "valid"], [[1188, 1188], "mapped", [1189]], [[1189, 1189], "valid"], [[1190, 1190], "mapped", [1191]], [[1191, 1191], "valid"], [[1192, 1192], "mapped", [1193]], [[1193, 1193], "valid"], [[1194, 1194], "mapped", [1195]], [[1195, 1195], "valid"], [[1196, 1196], "mapped", [1197]], [[1197, 1197], "valid"], [[1198, 1198], "mapped", [1199]], [[1199, 1199], "valid"], [[1200, 1200], "mapped", [1201]], [[1201, 1201], "valid"], [[1202, 1202], "mapped", [1203]], [[1203, 1203], "valid"], [[1204, 1204], "mapped", [1205]], [[1205, 1205], "valid"], [[1206, 1206], "mapped", [1207]], [[1207, 1207], "valid"], [[1208, 1208], "mapped", [1209]], [[1209, 1209], "valid"], [[1210, 1210], "mapped", [1211]], [[1211, 1211], "valid"], [[1212, 1212], "mapped", [1213]], [[1213, 1213], "valid"], [[1214, 1214], "mapped", [1215]], [[1215, 1215], "valid"], [[1216, 1216], "disallowed"], [[1217, 1217], "mapped", [1218]], [[1218, 1218], "valid"], [[1219, 1219], "mapped", [1220]], [[1220, 1220], "valid"], [[1221, 1221], "mapped", [1222]], [[1222, 1222], "valid"], [[1223, 1223], "mapped", [1224]], [[1224, 1224], "valid"], [[1225, 1225], "mapped", [1226]], [[1226, 1226], "valid"], [[1227, 1227], "mapped", [1228]], [[1228, 1228], "valid"], [[1229, 1229], "mapped", [1230]], [[1230, 1230], "valid"], [[1231, 1231], "valid"], [[1232, 1232], "mapped", [1233]], [[1233, 1233], "valid"], [[1234, 1234], "mapped", [1235]], [[1235, 1235], "valid"], [[1236, 1236], "mapped", [1237]], [[1237, 1237], "valid"], [[1238, 1238], "mapped", [1239]], [[1239, 1239], "valid"], [[1240, 1240], "mapped", [1241]], [[1241, 1241], "valid"], [[1242, 1242], "mapped", [1243]], [[1243, 1243], "valid"], [[1244, 1244], "mapped", [1245]], [[1245, 1245], "valid"], [[1246, 1246], "mapped", [1247]], [[1247, 1247], "valid"], [[1248, 1248], "mapped", [1249]], [[1249, 1249], "valid"], [[1250, 1250], "mapped", [1251]], [[1251, 1251], "valid"], [[1252, 1252], "mapped", [1253]], [[1253, 1253], "valid"], [[1254, 1254], "mapped", [1255]], [[1255, 1255], "valid"], [[1256, 1256], "mapped", [1257]], [[1257, 1257], "valid"], [[1258, 1258], "mapped", [1259]], [[1259, 1259], "valid"], [[1260, 1260], "mapped", [1261]], [[1261, 1261], "valid"], [[1262, 1262], "mapped", [1263]], [[1263, 1263], "valid"], [[1264, 1264], "mapped", [1265]], [[1265, 1265], "valid"], [[1266, 1266], "mapped", [1267]], [[1267, 1267], "valid"], [[1268, 1268], "mapped", [1269]], [[1269, 1269], "valid"], [[1270, 1270], "mapped", [1271]], [[1271, 1271], "valid"], [[1272, 1272], "mapped", [1273]], [[1273, 1273], "valid"], [[1274, 1274], "mapped", [1275]], [[1275, 1275], "valid"], [[1276, 1276], "mapped", [1277]], [[1277, 1277], "valid"], [[1278, 1278], "mapped", [1279]], [[1279, 1279], "valid"], [[1280, 1280], "mapped", [1281]], [[1281, 1281], "valid"], [[1282, 1282], "mapped", [1283]], [[1283, 1283], "valid"], [[1284, 1284], "mapped", [1285]], [[1285, 1285], "valid"], [[1286, 1286], "mapped", [1287]], [[1287, 1287], "valid"], [[1288, 1288], "mapped", [1289]], [[1289, 1289], "valid"], [[1290, 1290], "mapped", [1291]], [[1291, 1291], "valid"], [[1292, 1292], "mapped", [1293]], [[1293, 1293], "valid"], [[1294, 1294], "mapped", [1295]], [[1295, 1295], "valid"], [[1296, 1296], "mapped", [1297]], [[1297, 1297], "valid"], [[1298, 1298], "mapped", [1299]], [[1299, 1299], "valid"], [[1300, 1300], "mapped", [1301]], [[1301, 1301], "valid"], [[1302, 1302], "mapped", [1303]], [[1303, 1303], "valid"], [[1304, 1304], "mapped", [1305]], [[1305, 1305], "valid"], [[1306, 1306], "mapped", [1307]], [[1307, 1307], "valid"], [[1308, 1308], "mapped", [1309]], [[1309, 1309], "valid"], [[1310, 1310], "mapped", [1311]], [[1311, 1311], "valid"], [[1312, 1312], "mapped", [1313]], [[1313, 1313], "valid"], [[1314, 1314], "mapped", [1315]], [[1315, 1315], "valid"], [[1316, 1316], "mapped", [1317]], [[1317, 1317], "valid"], [[1318, 1318], "mapped", [1319]], [[1319, 1319], "valid"], [[1320, 1320], "mapped", [1321]], [[1321, 1321], "valid"], [[1322, 1322], "mapped", [1323]], [[1323, 1323], "valid"], [[1324, 1324], "mapped", [1325]], [[1325, 1325], "valid"], [[1326, 1326], "mapped", [1327]], [[1327, 1327], "valid"], [[1328, 1328], "disallowed"], [[1329, 1329], "mapped", [1377]], [[1330, 1330], "mapped", [1378]], [[1331, 1331], "mapped", [1379]], [[1332, 1332], "mapped", [1380]], [[1333, 1333], "mapped", [1381]], [[1334, 1334], "mapped", [1382]], [[1335, 1335], "mapped", [1383]], [[1336, 1336], "mapped", [1384]], [[1337, 1337], "mapped", [1385]], [[1338, 1338], "mapped", [1386]], [[1339, 1339], "mapped", [1387]], [[1340, 1340], "mapped", [1388]], [[1341, 1341], "mapped", [1389]], [[1342, 1342], "mapped", [1390]], [[1343, 1343], "mapped", [1391]], [[1344, 1344], "mapped", [1392]], [[1345, 1345], "mapped", [1393]], [[1346, 1346], "mapped", [1394]], [[1347, 1347], "mapped", [1395]], [[1348, 1348], "mapped", [1396]], [[1349, 1349], "mapped", [1397]], [[1350, 1350], "mapped", [1398]], [[1351, 1351], "mapped", [1399]], [[1352, 1352], "mapped", [1400]], [[1353, 1353], "mapped", [1401]], [[1354, 1354], "mapped", [1402]], [[1355, 1355], "mapped", [1403]], [[1356, 1356], "mapped", [1404]], [[1357, 1357], "mapped", [1405]], [[1358, 1358], "mapped", [1406]], [[1359, 1359], "mapped", [1407]], [[1360, 1360], "mapped", [1408]], [[1361, 1361], "mapped", [1409]], [[1362, 1362], "mapped", [1410]], [[1363, 1363], "mapped", [1411]], [[1364, 1364], "mapped", [1412]], [[1365, 1365], "mapped", [1413]], [[1366, 1366], "mapped", [1414]], [[1367, 1368], "disallowed"], [[1369, 1369], "valid"], [[1370, 1375], "valid", [], "NV8"], [[1376, 1376], "disallowed"], [[1377, 1414], "valid"], [[1415, 1415], "mapped", [1381, 1410]], [[1416, 1416], "disallowed"], [[1417, 1417], "valid", [], "NV8"], [[1418, 1418], "valid", [], "NV8"], [[1419, 1420], "disallowed"], [[1421, 1422], "valid", [], "NV8"], [[1423, 1423], "valid", [], "NV8"], [[1424, 1424], "disallowed"], [[1425, 1441], "valid"], [[1442, 1442], "valid"], [[1443, 1455], "valid"], [[1456, 1465], "valid"], [[1466, 1466], "valid"], [[1467, 1469], "valid"], [[1470, 1470], "valid", [], "NV8"], [[1471, 1471], "valid"], [[1472, 1472], "valid", [], "NV8"], [[1473, 1474], "valid"], [[1475, 1475], "valid", [], "NV8"], [[1476, 1476], "valid"], [[1477, 1477], "valid"], [[1478, 1478], "valid", [], "NV8"], [[1479, 1479], "valid"], [[1480, 1487], "disallowed"], [[1488, 1514], "valid"], [[1515, 1519], "disallowed"], [[1520, 1524], "valid"], [[1525, 1535], "disallowed"], [[1536, 1539], "disallowed"], [[1540, 1540], "disallowed"], [[1541, 1541], "disallowed"], [[1542, 1546], "valid", [], "NV8"], [[1547, 1547], "valid", [], "NV8"], [[1548, 1548], "valid", [], "NV8"], [[1549, 1551], "valid", [], "NV8"], [[1552, 1557], "valid"], [[1558, 1562], "valid"], [[1563, 1563], "valid", [], "NV8"], [[1564, 1564], "disallowed"], [[1565, 1565], "disallowed"], [[1566, 1566], "valid", [], "NV8"], [[1567, 1567], "valid", [], "NV8"], [[1568, 1568], "valid"], [[1569, 1594], "valid"], [[1595, 1599], "valid"], [[1600, 1600], "valid", [], "NV8"], [[1601, 1618], "valid"], [[1619, 1621], "valid"], [[1622, 1624], "valid"], [[1625, 1630], "valid"], [[1631, 1631], "valid"], [[1632, 1641], "valid"], [[1642, 1645], "valid", [], "NV8"], [[1646, 1647], "valid"], [[1648, 1652], "valid"], [[1653, 1653], "mapped", [1575, 1652]], [[1654, 1654], "mapped", [1608, 1652]], [[1655, 1655], "mapped", [1735, 1652]], [[1656, 1656], "mapped", [1610, 1652]], [[1657, 1719], "valid"], [[1720, 1721], "valid"], [[1722, 1726], "valid"], [[1727, 1727], "valid"], [[1728, 1742], "valid"], [[1743, 1743], "valid"], [[1744, 1747], "valid"], [[1748, 1748], "valid", [], "NV8"], [[1749, 1756], "valid"], [[1757, 1757], "disallowed"], [[1758, 1758], "valid", [], "NV8"], [[1759, 1768], "valid"], [[1769, 1769], "valid", [], "NV8"], [[1770, 1773], "valid"], [[1774, 1775], "valid"], [[1776, 1785], "valid"], [[1786, 1790], "valid"], [[1791, 1791], "valid"], [[1792, 1805], "valid", [], "NV8"], [[1806, 1806], "disallowed"], [[1807, 1807], "disallowed"], [[1808, 1836], "valid"], [[1837, 1839], "valid"], [[1840, 1866], "valid"], [[1867, 1868], "disallowed"], [[1869, 1871], "valid"], [[1872, 1901], "valid"], [[1902, 1919], "valid"], [[1920, 1968], "valid"], [[1969, 1969], "valid"], [[1970, 1983], "disallowed"], [[1984, 2037], "valid"], [[2038, 2042], "valid", [], "NV8"], [[2043, 2047], "disallowed"], [[2048, 2093], "valid"], [[2094, 2095], "disallowed"], [[2096, 2110], "valid", [], "NV8"], [[2111, 2111], "disallowed"], [[2112, 2139], "valid"], [[2140, 2141], "disallowed"], [[2142, 2142], "valid", [], "NV8"], [[2143, 2207], "disallowed"], [[2208, 2208], "valid"], [[2209, 2209], "valid"], [[2210, 2220], "valid"], [[2221, 2226], "valid"], [[2227, 2228], "valid"], [[2229, 2274], "disallowed"], [[2275, 2275], "valid"], [[2276, 2302], "valid"], [[2303, 2303], "valid"], [[2304, 2304], "valid"], [[2305, 2307], "valid"], [[2308, 2308], "valid"], [[2309, 2361], "valid"], [[2362, 2363], "valid"], [[2364, 2381], "valid"], [[2382, 2382], "valid"], [[2383, 2383], "valid"], [[2384, 2388], "valid"], [[2389, 2389], "valid"], [[2390, 2391], "valid"], [[2392, 2392], "mapped", [2325, 2364]], [[2393, 2393], "mapped", [2326, 2364]], [[2394, 2394], "mapped", [2327, 2364]], [[2395, 2395], "mapped", [2332, 2364]], [[2396, 2396], "mapped", [2337, 2364]], [[2397, 2397], "mapped", [2338, 2364]], [[2398, 2398], "mapped", [2347, 2364]], [[2399, 2399], "mapped", [2351, 2364]], [[2400, 2403], "valid"], [[2404, 2405], "valid", [], "NV8"], [[2406, 2415], "valid"], [[2416, 2416], "valid", [], "NV8"], [[2417, 2418], "valid"], [[2419, 2423], "valid"], [[2424, 2424], "valid"], [[2425, 2426], "valid"], [[2427, 2428], "valid"], [[2429, 2429], "valid"], [[2430, 2431], "valid"], [[2432, 2432], "valid"], [[2433, 2435], "valid"], [[2436, 2436], "disallowed"], [[2437, 2444], "valid"], [[2445, 2446], "disallowed"], [[2447, 2448], "valid"], [[2449, 2450], "disallowed"], [[2451, 2472], "valid"], [[2473, 2473], "disallowed"], [[2474, 2480], "valid"], [[2481, 2481], "disallowed"], [[2482, 2482], "valid"], [[2483, 2485], "disallowed"], [[2486, 2489], "valid"], [[2490, 2491], "disallowed"], [[2492, 2492], "valid"], [[2493, 2493], "valid"], [[2494, 2500], "valid"], [[2501, 2502], "disallowed"], [[2503, 2504], "valid"], [[2505, 2506], "disallowed"], [[2507, 2509], "valid"], [[2510, 2510], "valid"], [[2511, 2518], "disallowed"], [[2519, 2519], "valid"], [[2520, 2523], "disallowed"], [[2524, 2524], "mapped", [2465, 2492]], [[2525, 2525], "mapped", [2466, 2492]], [[2526, 2526], "disallowed"], [[2527, 2527], "mapped", [2479, 2492]], [[2528, 2531], "valid"], [[2532, 2533], "disallowed"], [[2534, 2545], "valid"], [[2546, 2554], "valid", [], "NV8"], [[2555, 2555], "valid", [], "NV8"], [[2556, 2560], "disallowed"], [[2561, 2561], "valid"], [[2562, 2562], "valid"], [[2563, 2563], "valid"], [[2564, 2564], "disallowed"], [[2565, 2570], "valid"], [[2571, 2574], "disallowed"], [[2575, 2576], "valid"], [[2577, 2578], "disallowed"], [[2579, 2600], "valid"], [[2601, 2601], "disallowed"], [[2602, 2608], "valid"], [[2609, 2609], "disallowed"], [[2610, 2610], "valid"], [[2611, 2611], "mapped", [2610, 2620]], [[2612, 2612], "disallowed"], [[2613, 2613], "valid"], [[2614, 2614], "mapped", [2616, 2620]], [[2615, 2615], "disallowed"], [[2616, 2617], "valid"], [[2618, 2619], "disallowed"], [[2620, 2620], "valid"], [[2621, 2621], "disallowed"], [[2622, 2626], "valid"], [[2627, 2630], "disallowed"], [[2631, 2632], "valid"], [[2633, 2634], "disallowed"], [[2635, 2637], "valid"], [[2638, 2640], "disallowed"], [[2641, 2641], "valid"], [[2642, 2648], "disallowed"], [[2649, 2649], "mapped", [2582, 2620]], [[2650, 2650], "mapped", [2583, 2620]], [[2651, 2651], "mapped", [2588, 2620]], [[2652, 2652], "valid"], [[2653, 2653], "disallowed"], [[2654, 2654], "mapped", [2603, 2620]], [[2655, 2661], "disallowed"], [[2662, 2676], "valid"], [[2677, 2677], "valid"], [[2678, 2688], "disallowed"], [[2689, 2691], "valid"], [[2692, 2692], "disallowed"], [[2693, 2699], "valid"], [[2700, 2700], "valid"], [[2701, 2701], "valid"], [[2702, 2702], "disallowed"], [[2703, 2705], "valid"], [[2706, 2706], "disallowed"], [[2707, 2728], "valid"], [[2729, 2729], "disallowed"], [[2730, 2736], "valid"], [[2737, 2737], "disallowed"], [[2738, 2739], "valid"], [[2740, 2740], "disallowed"], [[2741, 2745], "valid"], [[2746, 2747], "disallowed"], [[2748, 2757], "valid"], [[2758, 2758], "disallowed"], [[2759, 2761], "valid"], [[2762, 2762], "disallowed"], [[2763, 2765], "valid"], [[2766, 2767], "disallowed"], [[2768, 2768], "valid"], [[2769, 2783], "disallowed"], [[2784, 2784], "valid"], [[2785, 2787], "valid"], [[2788, 2789], "disallowed"], [[2790, 2799], "valid"], [[2800, 2800], "valid", [], "NV8"], [[2801, 2801], "valid", [], "NV8"], [[2802, 2808], "disallowed"], [[2809, 2809], "valid"], [[2810, 2816], "disallowed"], [[2817, 2819], "valid"], [[2820, 2820], "disallowed"], [[2821, 2828], "valid"], [[2829, 2830], "disallowed"], [[2831, 2832], "valid"], [[2833, 2834], "disallowed"], [[2835, 2856], "valid"], [[2857, 2857], "disallowed"], [[2858, 2864], "valid"], [[2865, 2865], "disallowed"], [[2866, 2867], "valid"], [[2868, 2868], "disallowed"], [[2869, 2869], "valid"], [[2870, 2873], "valid"], [[2874, 2875], "disallowed"], [[2876, 2883], "valid"], [[2884, 2884], "valid"], [[2885, 2886], "disallowed"], [[2887, 2888], "valid"], [[2889, 2890], "disallowed"], [[2891, 2893], "valid"], [[2894, 2901], "disallowed"], [[2902, 2903], "valid"], [[2904, 2907], "disallowed"], [[2908, 2908], "mapped", [2849, 2876]], [[2909, 2909], "mapped", [2850, 2876]], [[2910, 2910], "disallowed"], [[2911, 2913], "valid"], [[2914, 2915], "valid"], [[2916, 2917], "disallowed"], [[2918, 2927], "valid"], [[2928, 2928], "valid", [], "NV8"], [[2929, 2929], "valid"], [[2930, 2935], "valid", [], "NV8"], [[2936, 2945], "disallowed"], [[2946, 2947], "valid"], [[2948, 2948], "disallowed"], [[2949, 2954], "valid"], [[2955, 2957], "disallowed"], [[2958, 2960], "valid"], [[2961, 2961], "disallowed"], [[2962, 2965], "valid"], [[2966, 2968], "disallowed"], [[2969, 2970], "valid"], [[2971, 2971], "disallowed"], [[2972, 2972], "valid"], [[2973, 2973], "disallowed"], [[2974, 2975], "valid"], [[2976, 2978], "disallowed"], [[2979, 2980], "valid"], [[2981, 2983], "disallowed"], [[2984, 2986], "valid"], [[2987, 2989], "disallowed"], [[2990, 2997], "valid"], [[2998, 2998], "valid"], [[2999, 3001], "valid"], [[3002, 3005], "disallowed"], [[3006, 3010], "valid"], [[3011, 3013], "disallowed"], [[3014, 3016], "valid"], [[3017, 3017], "disallowed"], [[3018, 3021], "valid"], [[3022, 3023], "disallowed"], [[3024, 3024], "valid"], [[3025, 3030], "disallowed"], [[3031, 3031], "valid"], [[3032, 3045], "disallowed"], [[3046, 3046], "valid"], [[3047, 3055], "valid"], [[3056, 3058], "valid", [], "NV8"], [[3059, 3066], "valid", [], "NV8"], [[3067, 3071], "disallowed"], [[3072, 3072], "valid"], [[3073, 3075], "valid"], [[3076, 3076], "disallowed"], [[3077, 3084], "valid"], [[3085, 3085], "disallowed"], [[3086, 3088], "valid"], [[3089, 3089], "disallowed"], [[3090, 3112], "valid"], [[3113, 3113], "disallowed"], [[3114, 3123], "valid"], [[3124, 3124], "valid"], [[3125, 3129], "valid"], [[3130, 3132], "disallowed"], [[3133, 3133], "valid"], [[3134, 3140], "valid"], [[3141, 3141], "disallowed"], [[3142, 3144], "valid"], [[3145, 3145], "disallowed"], [[3146, 3149], "valid"], [[3150, 3156], "disallowed"], [[3157, 3158], "valid"], [[3159, 3159], "disallowed"], [[3160, 3161], "valid"], [[3162, 3162], "valid"], [[3163, 3167], "disallowed"], [[3168, 3169], "valid"], [[3170, 3171], "valid"], [[3172, 3173], "disallowed"], [[3174, 3183], "valid"], [[3184, 3191], "disallowed"], [[3192, 3199], "valid", [], "NV8"], [[3200, 3200], "disallowed"], [[3201, 3201], "valid"], [[3202, 3203], "valid"], [[3204, 3204], "disallowed"], [[3205, 3212], "valid"], [[3213, 3213], "disallowed"], [[3214, 3216], "valid"], [[3217, 3217], "disallowed"], [[3218, 3240], "valid"], [[3241, 3241], "disallowed"], [[3242, 3251], "valid"], [[3252, 3252], "disallowed"], [[3253, 3257], "valid"], [[3258, 3259], "disallowed"], [[3260, 3261], "valid"], [[3262, 3268], "valid"], [[3269, 3269], "disallowed"], [[3270, 3272], "valid"], [[3273, 3273], "disallowed"], [[3274, 3277], "valid"], [[3278, 3284], "disallowed"], [[3285, 3286], "valid"], [[3287, 3293], "disallowed"], [[3294, 3294], "valid"], [[3295, 3295], "disallowed"], [[3296, 3297], "valid"], [[3298, 3299], "valid"], [[3300, 3301], "disallowed"], [[3302, 3311], "valid"], [[3312, 3312], "disallowed"], [[3313, 3314], "valid"], [[3315, 3328], "disallowed"], [[3329, 3329], "valid"], [[3330, 3331], "valid"], [[3332, 3332], "disallowed"], [[3333, 3340], "valid"], [[3341, 3341], "disallowed"], [[3342, 3344], "valid"], [[3345, 3345], "disallowed"], [[3346, 3368], "valid"], [[3369, 3369], "valid"], [[3370, 3385], "valid"], [[3386, 3386], "valid"], [[3387, 3388], "disallowed"], [[3389, 3389], "valid"], [[3390, 3395], "valid"], [[3396, 3396], "valid"], [[3397, 3397], "disallowed"], [[3398, 3400], "valid"], [[3401, 3401], "disallowed"], [[3402, 3405], "valid"], [[3406, 3406], "valid"], [[3407, 3414], "disallowed"], [[3415, 3415], "valid"], [[3416, 3422], "disallowed"], [[3423, 3423], "valid"], [[3424, 3425], "valid"], [[3426, 3427], "valid"], [[3428, 3429], "disallowed"], [[3430, 3439], "valid"], [[3440, 3445], "valid", [], "NV8"], [[3446, 3448], "disallowed"], [[3449, 3449], "valid", [], "NV8"], [[3450, 3455], "valid"], [[3456, 3457], "disallowed"], [[3458, 3459], "valid"], [[3460, 3460], "disallowed"], [[3461, 3478], "valid"], [[3479, 3481], "disallowed"], [[3482, 3505], "valid"], [[3506, 3506], "disallowed"], [[3507, 3515], "valid"], [[3516, 3516], "disallowed"], [[3517, 3517], "valid"], [[3518, 3519], "disallowed"], [[3520, 3526], "valid"], [[3527, 3529], "disallowed"], [[3530, 3530], "valid"], [[3531, 3534], "disallowed"], [[3535, 3540], "valid"], [[3541, 3541], "disallowed"], [[3542, 3542], "valid"], [[3543, 3543], "disallowed"], [[3544, 3551], "valid"], [[3552, 3557], "disallowed"], [[3558, 3567], "valid"], [[3568, 3569], "disallowed"], [[3570, 3571], "valid"], [[3572, 3572], "valid", [], "NV8"], [[3573, 3584], "disallowed"], [[3585, 3634], "valid"], [[3635, 3635], "mapped", [3661, 3634]], [[3636, 3642], "valid"], [[3643, 3646], "disallowed"], [[3647, 3647], "valid", [], "NV8"], [[3648, 3662], "valid"], [[3663, 3663], "valid", [], "NV8"], [[3664, 3673], "valid"], [[3674, 3675], "valid", [], "NV8"], [[3676, 3712], "disallowed"], [[3713, 3714], "valid"], [[3715, 3715], "disallowed"], [[3716, 3716], "valid"], [[3717, 3718], "disallowed"], [[3719, 3720], "valid"], [[3721, 3721], "disallowed"], [[3722, 3722], "valid"], [[3723, 3724], "disallowed"], [[3725, 3725], "valid"], [[3726, 3731], "disallowed"], [[3732, 3735], "valid"], [[3736, 3736], "disallowed"], [[3737, 3743], "valid"], [[3744, 3744], "disallowed"], [[3745, 3747], "valid"], [[3748, 3748], "disallowed"], [[3749, 3749], "valid"], [[3750, 3750], "disallowed"], [[3751, 3751], "valid"], [[3752, 3753], "disallowed"], [[3754, 3755], "valid"], [[3756, 3756], "disallowed"], [[3757, 3762], "valid"], [[3763, 3763], "mapped", [3789, 3762]], [[3764, 3769], "valid"], [[3770, 3770], "disallowed"], [[3771, 3773], "valid"], [[3774, 3775], "disallowed"], [[3776, 3780], "valid"], [[3781, 3781], "disallowed"], [[3782, 3782], "valid"], [[3783, 3783], "disallowed"], [[3784, 3789], "valid"], [[3790, 3791], "disallowed"], [[3792, 3801], "valid"], [[3802, 3803], "disallowed"], [[3804, 3804], "mapped", [3755, 3737]], [[3805, 3805], "mapped", [3755, 3745]], [[3806, 3807], "valid"], [[3808, 3839], "disallowed"], [[3840, 3840], "valid"], [[3841, 3850], "valid", [], "NV8"], [[3851, 3851], "valid"], [[3852, 3852], "mapped", [3851]], [[3853, 3863], "valid", [], "NV8"], [[3864, 3865], "valid"], [[3866, 3871], "valid", [], "NV8"], [[3872, 3881], "valid"], [[3882, 3892], "valid", [], "NV8"], [[3893, 3893], "valid"], [[3894, 3894], "valid", [], "NV8"], [[3895, 3895], "valid"], [[3896, 3896], "valid", [], "NV8"], [[3897, 3897], "valid"], [[3898, 3901], "valid", [], "NV8"], [[3902, 3906], "valid"], [[3907, 3907], "mapped", [3906, 4023]], [[3908, 3911], "valid"], [[3912, 3912], "disallowed"], [[3913, 3916], "valid"], [[3917, 3917], "mapped", [3916, 4023]], [[3918, 3921], "valid"], [[3922, 3922], "mapped", [3921, 4023]], [[3923, 3926], "valid"], [[3927, 3927], "mapped", [3926, 4023]], [[3928, 3931], "valid"], [[3932, 3932], "mapped", [3931, 4023]], [[3933, 3944], "valid"], [[3945, 3945], "mapped", [3904, 4021]], [[3946, 3946], "valid"], [[3947, 3948], "valid"], [[3949, 3952], "disallowed"], [[3953, 3954], "valid"], [[3955, 3955], "mapped", [3953, 3954]], [[3956, 3956], "valid"], [[3957, 3957], "mapped", [3953, 3956]], [[3958, 3958], "mapped", [4018, 3968]], [[3959, 3959], "mapped", [4018, 3953, 3968]], [[3960, 3960], "mapped", [4019, 3968]], [[3961, 3961], "mapped", [4019, 3953, 3968]], [[3962, 3968], "valid"], [[3969, 3969], "mapped", [3953, 3968]], [[3970, 3972], "valid"], [[3973, 3973], "valid", [], "NV8"], [[3974, 3979], "valid"], [[3980, 3983], "valid"], [[3984, 3986], "valid"], [[3987, 3987], "mapped", [3986, 4023]], [[3988, 3989], "valid"], [[3990, 3990], "valid"], [[3991, 3991], "valid"], [[3992, 3992], "disallowed"], [[3993, 3996], "valid"], [[3997, 3997], "mapped", [3996, 4023]], [[3998, 4001], "valid"], [[4002, 4002], "mapped", [4001, 4023]], [[4003, 4006], "valid"], [[4007, 4007], "mapped", [4006, 4023]], [[4008, 4011], "valid"], [[4012, 4012], "mapped", [4011, 4023]], [[4013, 4013], "valid"], [[4014, 4016], "valid"], [[4017, 4023], "valid"], [[4024, 4024], "valid"], [[4025, 4025], "mapped", [3984, 4021]], [[4026, 4028], "valid"], [[4029, 4029], "disallowed"], [[4030, 4037], "valid", [], "NV8"], [[4038, 4038], "valid"], [[4039, 4044], "valid", [], "NV8"], [[4045, 4045], "disallowed"], [[4046, 4046], "valid", [], "NV8"], [[4047, 4047], "valid", [], "NV8"], [[4048, 4049], "valid", [], "NV8"], [[4050, 4052], "valid", [], "NV8"], [[4053, 4056], "valid", [], "NV8"], [[4057, 4058], "valid", [], "NV8"], [[4059, 4095], "disallowed"], [[4096, 4129], "valid"], [[4130, 4130], "valid"], [[4131, 4135], "valid"], [[4136, 4136], "valid"], [[4137, 4138], "valid"], [[4139, 4139], "valid"], [[4140, 4146], "valid"], [[4147, 4149], "valid"], [[4150, 4153], "valid"], [[4154, 4159], "valid"], [[4160, 4169], "valid"], [[4170, 4175], "valid", [], "NV8"], [[4176, 4185], "valid"], [[4186, 4249], "valid"], [[4250, 4253], "valid"], [[4254, 4255], "valid", [], "NV8"], [[4256, 4293], "disallowed"], [[4294, 4294], "disallowed"], [[4295, 4295], "mapped", [11559]], [[4296, 4300], "disallowed"], [[4301, 4301], "mapped", [11565]], [[4302, 4303], "disallowed"], [[4304, 4342], "valid"], [[4343, 4344], "valid"], [[4345, 4346], "valid"], [[4347, 4347], "valid", [], "NV8"], [[4348, 4348], "mapped", [4316]], [[4349, 4351], "valid"], [[4352, 4441], "valid", [], "NV8"], [[4442, 4446], "valid", [], "NV8"], [[4447, 4448], "disallowed"], [[4449, 4514], "valid", [], "NV8"], [[4515, 4519], "valid", [], "NV8"], [[4520, 4601], "valid", [], "NV8"], [[4602, 4607], "valid", [], "NV8"], [[4608, 4614], "valid"], [[4615, 4615], "valid"], [[4616, 4678], "valid"], [[4679, 4679], "valid"], [[4680, 4680], "valid"], [[4681, 4681], "disallowed"], [[4682, 4685], "valid"], [[4686, 4687], "disallowed"], [[4688, 4694], "valid"], [[4695, 4695], "disallowed"], [[4696, 4696], "valid"], [[4697, 4697], "disallowed"], [[4698, 4701], "valid"], [[4702, 4703], "disallowed"], [[4704, 4742], "valid"], [[4743, 4743], "valid"], [[4744, 4744], "valid"], [[4745, 4745], "disallowed"], [[4746, 4749], "valid"], [[4750, 4751], "disallowed"], [[4752, 4782], "valid"], [[4783, 4783], "valid"], [[4784, 4784], "valid"], [[4785, 4785], "disallowed"], [[4786, 4789], "valid"], [[4790, 4791], "disallowed"], [[4792, 4798], "valid"], [[4799, 4799], "disallowed"], [[4800, 4800], "valid"], [[4801, 4801], "disallowed"], [[4802, 4805], "valid"], [[4806, 4807], "disallowed"], [[4808, 4814], "valid"], [[4815, 4815], "valid"], [[4816, 4822], "valid"], [[4823, 4823], "disallowed"], [[4824, 4846], "valid"], [[4847, 4847], "valid"], [[4848, 4878], "valid"], [[4879, 4879], "valid"], [[4880, 4880], "valid"], [[4881, 4881], "disallowed"], [[4882, 4885], "valid"], [[4886, 4887], "disallowed"], [[4888, 4894], "valid"], [[4895, 4895], "valid"], [[4896, 4934], "valid"], [[4935, 4935], "valid"], [[4936, 4954], "valid"], [[4955, 4956], "disallowed"], [[4957, 4958], "valid"], [[4959, 4959], "valid"], [[4960, 4960], "valid", [], "NV8"], [[4961, 4988], "valid", [], "NV8"], [[4989, 4991], "disallowed"], [[4992, 5007], "valid"], [[5008, 5017], "valid", [], "NV8"], [[5018, 5023], "disallowed"], [[5024, 5108], "valid"], [[5109, 5109], "valid"], [[5110, 5111], "disallowed"], [[5112, 5112], "mapped", [5104]], [[5113, 5113], "mapped", [5105]], [[5114, 5114], "mapped", [5106]], [[5115, 5115], "mapped", [5107]], [[5116, 5116], "mapped", [5108]], [[5117, 5117], "mapped", [5109]], [[5118, 5119], "disallowed"], [[5120, 5120], "valid", [], "NV8"], [[5121, 5740], "valid"], [[5741, 5742], "valid", [], "NV8"], [[5743, 5750], "valid"], [[5751, 5759], "valid"], [[5760, 5760], "disallowed"], [[5761, 5786], "valid"], [[5787, 5788], "valid", [], "NV8"], [[5789, 5791], "disallowed"], [[5792, 5866], "valid"], [[5867, 5872], "valid", [], "NV8"], [[5873, 5880], "valid"], [[5881, 5887], "disallowed"], [[5888, 5900], "valid"], [[5901, 5901], "disallowed"], [[5902, 5908], "valid"], [[5909, 5919], "disallowed"], [[5920, 5940], "valid"], [[5941, 5942], "valid", [], "NV8"], [[5943, 5951], "disallowed"], [[5952, 5971], "valid"], [[5972, 5983], "disallowed"], [[5984, 5996], "valid"], [[5997, 5997], "disallowed"], [[5998, 6e3], "valid"], [[6001, 6001], "disallowed"], [[6002, 6003], "valid"], [[6004, 6015], "disallowed"], [[6016, 6067], "valid"], [[6068, 6069], "disallowed"], [[6070, 6099], "valid"], [[6100, 6102], "valid", [], "NV8"], [[6103, 6103], "valid"], [[6104, 6107], "valid", [], "NV8"], [[6108, 6108], "valid"], [[6109, 6109], "valid"], [[6110, 6111], "disallowed"], [[6112, 6121], "valid"], [[6122, 6127], "disallowed"], [[6128, 6137], "valid", [], "NV8"], [[6138, 6143], "disallowed"], [[6144, 6149], "valid", [], "NV8"], [[6150, 6150], "disallowed"], [[6151, 6154], "valid", [], "NV8"], [[6155, 6157], "ignored"], [[6158, 6158], "disallowed"], [[6159, 6159], "disallowed"], [[6160, 6169], "valid"], [[6170, 6175], "disallowed"], [[6176, 6263], "valid"], [[6264, 6271], "disallowed"], [[6272, 6313], "valid"], [[6314, 6314], "valid"], [[6315, 6319], "disallowed"], [[6320, 6389], "valid"], [[6390, 6399], "disallowed"], [[6400, 6428], "valid"], [[6429, 6430], "valid"], [[6431, 6431], "disallowed"], [[6432, 6443], "valid"], [[6444, 6447], "disallowed"], [[6448, 6459], "valid"], [[6460, 6463], "disallowed"], [[6464, 6464], "valid", [], "NV8"], [[6465, 6467], "disallowed"], [[6468, 6469], "valid", [], "NV8"], [[6470, 6509], "valid"], [[6510, 6511], "disallowed"], [[6512, 6516], "valid"], [[6517, 6527], "disallowed"], [[6528, 6569], "valid"], [[6570, 6571], "valid"], [[6572, 6575], "disallowed"], [[6576, 6601], "valid"], [[6602, 6607], "disallowed"], [[6608, 6617], "valid"], [[6618, 6618], "valid", [], "XV8"], [[6619, 6621], "disallowed"], [[6622, 6623], "valid", [], "NV8"], [[6624, 6655], "valid", [], "NV8"], [[6656, 6683], "valid"], [[6684, 6685], "disallowed"], [[6686, 6687], "valid", [], "NV8"], [[6688, 6750], "valid"], [[6751, 6751], "disallowed"], [[6752, 6780], "valid"], [[6781, 6782], "disallowed"], [[6783, 6793], "valid"], [[6794, 6799], "disallowed"], [[6800, 6809], "valid"], [[6810, 6815], "disallowed"], [[6816, 6822], "valid", [], "NV8"], [[6823, 6823], "valid"], [[6824, 6829], "valid", [], "NV8"], [[6830, 6831], "disallowed"], [[6832, 6845], "valid"], [[6846, 6846], "valid", [], "NV8"], [[6847, 6911], "disallowed"], [[6912, 6987], "valid"], [[6988, 6991], "disallowed"], [[6992, 7001], "valid"], [[7002, 7018], "valid", [], "NV8"], [[7019, 7027], "valid"], [[7028, 7036], "valid", [], "NV8"], [[7037, 7039], "disallowed"], [[7040, 7082], "valid"], [[7083, 7085], "valid"], [[7086, 7097], "valid"], [[7098, 7103], "valid"], [[7104, 7155], "valid"], [[7156, 7163], "disallowed"], [[7164, 7167], "valid", [], "NV8"], [[7168, 7223], "valid"], [[7224, 7226], "disallowed"], [[7227, 7231], "valid", [], "NV8"], [[7232, 7241], "valid"], [[7242, 7244], "disallowed"], [[7245, 7293], "valid"], [[7294, 7295], "valid", [], "NV8"], [[7296, 7359], "disallowed"], [[7360, 7367], "valid", [], "NV8"], [[7368, 7375], "disallowed"], [[7376, 7378], "valid"], [[7379, 7379], "valid", [], "NV8"], [[7380, 7410], "valid"], [[7411, 7414], "valid"], [[7415, 7415], "disallowed"], [[7416, 7417], "valid"], [[7418, 7423], "disallowed"], [[7424, 7467], "valid"], [[7468, 7468], "mapped", [97]], [[7469, 7469], "mapped", [230]], [[7470, 7470], "mapped", [98]], [[7471, 7471], "valid"], [[7472, 7472], "mapped", [100]], [[7473, 7473], "mapped", [101]], [[7474, 7474], "mapped", [477]], [[7475, 7475], "mapped", [103]], [[7476, 7476], "mapped", [104]], [[7477, 7477], "mapped", [105]], [[7478, 7478], "mapped", [106]], [[7479, 7479], "mapped", [107]], [[7480, 7480], "mapped", [108]], [[7481, 7481], "mapped", [109]], [[7482, 7482], "mapped", [110]], [[7483, 7483], "valid"], [[7484, 7484], "mapped", [111]], [[7485, 7485], "mapped", [547]], [[7486, 7486], "mapped", [112]], [[7487, 7487], "mapped", [114]], [[7488, 7488], "mapped", [116]], [[7489, 7489], "mapped", [117]], [[7490, 7490], "mapped", [119]], [[7491, 7491], "mapped", [97]], [[7492, 7492], "mapped", [592]], [[7493, 7493], "mapped", [593]], [[7494, 7494], "mapped", [7426]], [[7495, 7495], "mapped", [98]], [[7496, 7496], "mapped", [100]], [[7497, 7497], "mapped", [101]], [[7498, 7498], "mapped", [601]], [[7499, 7499], "mapped", [603]], [[7500, 7500], "mapped", [604]], [[7501, 7501], "mapped", [103]], [[7502, 7502], "valid"], [[7503, 7503], "mapped", [107]], [[7504, 7504], "mapped", [109]], [[7505, 7505], "mapped", [331]], [[7506, 7506], "mapped", [111]], [[7507, 7507], "mapped", [596]], [[7508, 7508], "mapped", [7446]], [[7509, 7509], "mapped", [7447]], [[7510, 7510], "mapped", [112]], [[7511, 7511], "mapped", [116]], [[7512, 7512], "mapped", [117]], [[7513, 7513], "mapped", [7453]], [[7514, 7514], "mapped", [623]], [[7515, 7515], "mapped", [118]], [[7516, 7516], "mapped", [7461]], [[7517, 7517], "mapped", [946]], [[7518, 7518], "mapped", [947]], [[7519, 7519], "mapped", [948]], [[7520, 7520], "mapped", [966]], [[7521, 7521], "mapped", [967]], [[7522, 7522], "mapped", [105]], [[7523, 7523], "mapped", [114]], [[7524, 7524], "mapped", [117]], [[7525, 7525], "mapped", [118]], [[7526, 7526], "mapped", [946]], [[7527, 7527], "mapped", [947]], [[7528, 7528], "mapped", [961]], [[7529, 7529], "mapped", [966]], [[7530, 7530], "mapped", [967]], [[7531, 7531], "valid"], [[7532, 7543], "valid"], [[7544, 7544], "mapped", [1085]], [[7545, 7578], "valid"], [[7579, 7579], "mapped", [594]], [[7580, 7580], "mapped", [99]], [[7581, 7581], "mapped", [597]], [[7582, 7582], "mapped", [240]], [[7583, 7583], "mapped", [604]], [[7584, 7584], "mapped", [102]], [[7585, 7585], "mapped", [607]], [[7586, 7586], "mapped", [609]], [[7587, 7587], "mapped", [613]], [[7588, 7588], "mapped", [616]], [[7589, 7589], "mapped", [617]], [[7590, 7590], "mapped", [618]], [[7591, 7591], "mapped", [7547]], [[7592, 7592], "mapped", [669]], [[7593, 7593], "mapped", [621]], [[7594, 7594], "mapped", [7557]], [[7595, 7595], "mapped", [671]], [[7596, 7596], "mapped", [625]], [[7597, 7597], "mapped", [624]], [[7598, 7598], "mapped", [626]], [[7599, 7599], "mapped", [627]], [[7600, 7600], "mapped", [628]], [[7601, 7601], "mapped", [629]], [[7602, 7602], "mapped", [632]], [[7603, 7603], "mapped", [642]], [[7604, 7604], "mapped", [643]], [[7605, 7605], "mapped", [427]], [[7606, 7606], "mapped", [649]], [[7607, 7607], "mapped", [650]], [[7608, 7608], "mapped", [7452]], [[7609, 7609], "mapped", [651]], [[7610, 7610], "mapped", [652]], [[7611, 7611], "mapped", [122]], [[7612, 7612], "mapped", [656]], [[7613, 7613], "mapped", [657]], [[7614, 7614], "mapped", [658]], [[7615, 7615], "mapped", [952]], [[7616, 7619], "valid"], [[7620, 7626], "valid"], [[7627, 7654], "valid"], [[7655, 7669], "valid"], [[7670, 7675], "disallowed"], [[7676, 7676], "valid"], [[7677, 7677], "valid"], [[7678, 7679], "valid"], [[7680, 7680], "mapped", [7681]], [[7681, 7681], "valid"], [[7682, 7682], "mapped", [7683]], [[7683, 7683], "valid"], [[7684, 7684], "mapped", [7685]], [[7685, 7685], "valid"], [[7686, 7686], "mapped", [7687]], [[7687, 7687], "valid"], [[7688, 7688], "mapped", [7689]], [[7689, 7689], "valid"], [[7690, 7690], "mapped", [7691]], [[7691, 7691], "valid"], [[7692, 7692], "mapped", [7693]], [[7693, 7693], "valid"], [[7694, 7694], "mapped", [7695]], [[7695, 7695], "valid"], [[7696, 7696], "mapped", [7697]], [[7697, 7697], "valid"], [[7698, 7698], "mapped", [7699]], [[7699, 7699], "valid"], [[7700, 7700], "mapped", [7701]], [[7701, 7701], "valid"], [[7702, 7702], "mapped", [7703]], [[7703, 7703], "valid"], [[7704, 7704], "mapped", [7705]], [[7705, 7705], "valid"], [[7706, 7706], "mapped", [7707]], [[7707, 7707], "valid"], [[7708, 7708], "mapped", [7709]], [[7709, 7709], "valid"], [[7710, 7710], "mapped", [7711]], [[7711, 7711], "valid"], [[7712, 7712], "mapped", [7713]], [[7713, 7713], "valid"], [[7714, 7714], "mapped", [7715]], [[7715, 7715], "valid"], [[7716, 7716], "mapped", [7717]], [[7717, 7717], "valid"], [[7718, 7718], "mapped", [7719]], [[7719, 7719], "valid"], [[7720, 7720], "mapped", [7721]], [[7721, 7721], "valid"], [[7722, 7722], "mapped", [7723]], [[7723, 7723], "valid"], [[7724, 7724], "mapped", [7725]], [[7725, 7725], "valid"], [[7726, 7726], "mapped", [7727]], [[7727, 7727], "valid"], [[7728, 7728], "mapped", [7729]], [[7729, 7729], "valid"], [[7730, 7730], "mapped", [7731]], [[7731, 7731], "valid"], [[7732, 7732], "mapped", [7733]], [[7733, 7733], "valid"], [[7734, 7734], "mapped", [7735]], [[7735, 7735], "valid"], [[7736, 7736], "mapped", [7737]], [[7737, 7737], "valid"], [[7738, 7738], "mapped", [7739]], [[7739, 7739], "valid"], [[7740, 7740], "mapped", [7741]], [[7741, 7741], "valid"], [[7742, 7742], "mapped", [7743]], [[7743, 7743], "valid"], [[7744, 7744], "mapped", [7745]], [[7745, 7745], "valid"], [[7746, 7746], "mapped", [7747]], [[7747, 7747], "valid"], [[7748, 7748], "mapped", [7749]], [[7749, 7749], "valid"], [[7750, 7750], "mapped", [7751]], [[7751, 7751], "valid"], [[7752, 7752], "mapped", [7753]], [[7753, 7753], "valid"], [[7754, 7754], "mapped", [7755]], [[7755, 7755], "valid"], [[7756, 7756], "mapped", [7757]], [[7757, 7757], "valid"], [[7758, 7758], "mapped", [7759]], [[7759, 7759], "valid"], [[7760, 7760], "mapped", [7761]], [[7761, 7761], "valid"], [[7762, 7762], "mapped", [7763]], [[7763, 7763], "valid"], [[7764, 7764], "mapped", [7765]], [[7765, 7765], "valid"], [[7766, 7766], "mapped", [7767]], [[7767, 7767], "valid"], [[7768, 7768], "mapped", [7769]], [[7769, 7769], "valid"], [[7770, 7770], "mapped", [7771]], [[7771, 7771], "valid"], [[7772, 7772], "mapped", [7773]], [[7773, 7773], "valid"], [[7774, 7774], "mapped", [7775]], [[7775, 7775], "valid"], [[7776, 7776], "mapped", [7777]], [[7777, 7777], "valid"], [[7778, 7778], "mapped", [7779]], [[7779, 7779], "valid"], [[7780, 7780], "mapped", [7781]], [[7781, 7781], "valid"], [[7782, 7782], "mapped", [7783]], [[7783, 7783], "valid"], [[7784, 7784], "mapped", [7785]], [[7785, 7785], "valid"], [[7786, 7786], "mapped", [7787]], [[7787, 7787], "valid"], [[7788, 7788], "mapped", [7789]], [[7789, 7789], "valid"], [[7790, 7790], "mapped", [7791]], [[7791, 7791], "valid"], [[7792, 7792], "mapped", [7793]], [[7793, 7793], "valid"], [[7794, 7794], "mapped", [7795]], [[7795, 7795], "valid"], [[7796, 7796], "mapped", [7797]], [[7797, 7797], "valid"], [[7798, 7798], "mapped", [7799]], [[7799, 7799], "valid"], [[7800, 7800], "mapped", [7801]], [[7801, 7801], "valid"], [[7802, 7802], "mapped", [7803]], [[7803, 7803], "valid"], [[7804, 7804], "mapped", [7805]], [[7805, 7805], "valid"], [[7806, 7806], "mapped", [7807]], [[7807, 7807], "valid"], [[7808, 7808], "mapped", [7809]], [[7809, 7809], "valid"], [[7810, 7810], "mapped", [7811]], [[7811, 7811], "valid"], [[7812, 7812], "mapped", [7813]], [[7813, 7813], "valid"], [[7814, 7814], "mapped", [7815]], [[7815, 7815], "valid"], [[7816, 7816], "mapped", [7817]], [[7817, 7817], "valid"], [[7818, 7818], "mapped", [7819]], [[7819, 7819], "valid"], [[7820, 7820], "mapped", [7821]], [[7821, 7821], "valid"], [[7822, 7822], "mapped", [7823]], [[7823, 7823], "valid"], [[7824, 7824], "mapped", [7825]], [[7825, 7825], "valid"], [[7826, 7826], "mapped", [7827]], [[7827, 7827], "valid"], [[7828, 7828], "mapped", [7829]], [[7829, 7833], "valid"], [[7834, 7834], "mapped", [97, 702]], [[7835, 7835], "mapped", [7777]], [[7836, 7837], "valid"], [[7838, 7838], "mapped", [115, 115]], [[7839, 7839], "valid"], [[7840, 7840], "mapped", [7841]], [[7841, 7841], "valid"], [[7842, 7842], "mapped", [7843]], [[7843, 7843], "valid"], [[7844, 7844], "mapped", [7845]], [[7845, 7845], "valid"], [[7846, 7846], "mapped", [7847]], [[7847, 7847], "valid"], [[7848, 7848], "mapped", [7849]], [[7849, 7849], "valid"], [[7850, 7850], "mapped", [7851]], [[7851, 7851], "valid"], [[7852, 7852], "mapped", [7853]], [[7853, 7853], "valid"], [[7854, 7854], "mapped", [7855]], [[7855, 7855], "valid"], [[7856, 7856], "mapped", [7857]], [[7857, 7857], "valid"], [[7858, 7858], "mapped", [7859]], [[7859, 7859], "valid"], [[7860, 7860], "mapped", [7861]], [[7861, 7861], "valid"], [[7862, 7862], "mapped", [7863]], [[7863, 7863], "valid"], [[7864, 7864], "mapped", [7865]], [[7865, 7865], "valid"], [[7866, 7866], "mapped", [7867]], [[7867, 7867], "valid"], [[7868, 7868], "mapped", [7869]], [[7869, 7869], "valid"], [[7870, 7870], "mapped", [7871]], [[7871, 7871], "valid"], [[7872, 7872], "mapped", [7873]], [[7873, 7873], "valid"], [[7874, 7874], "mapped", [7875]], [[7875, 7875], "valid"], [[7876, 7876], "mapped", [7877]], [[7877, 7877], "valid"], [[7878, 7878], "mapped", [7879]], [[7879, 7879], "valid"], [[7880, 7880], "mapped", [7881]], [[7881, 7881], "valid"], [[7882, 7882], "mapped", [7883]], [[7883, 7883], "valid"], [[7884, 7884], "mapped", [7885]], [[7885, 7885], "valid"], [[7886, 7886], "mapped", [7887]], [[7887, 7887], "valid"], [[7888, 7888], "mapped", [7889]], [[7889, 7889], "valid"], [[7890, 7890], "mapped", [7891]], [[7891, 7891], "valid"], [[7892, 7892], "mapped", [7893]], [[7893, 7893], "valid"], [[7894, 7894], "mapped", [7895]], [[7895, 7895], "valid"], [[7896, 7896], "mapped", [7897]], [[7897, 7897], "valid"], [[7898, 7898], "mapped", [7899]], [[7899, 7899], "valid"], [[7900, 7900], "mapped", [7901]], [[7901, 7901], "valid"], [[7902, 7902], "mapped", [7903]], [[7903, 7903], "valid"], [[7904, 7904], "mapped", [7905]], [[7905, 7905], "valid"], [[7906, 7906], "mapped", [7907]], [[7907, 7907], "valid"], [[7908, 7908], "mapped", [7909]], [[7909, 7909], "valid"], [[7910, 7910], "mapped", [7911]], [[7911, 7911], "valid"], [[7912, 7912], "mapped", [7913]], [[7913, 7913], "valid"], [[7914, 7914], "mapped", [7915]], [[7915, 7915], "valid"], [[7916, 7916], "mapped", [7917]], [[7917, 7917], "valid"], [[7918, 7918], "mapped", [7919]], [[7919, 7919], "valid"], [[7920, 7920], "mapped", [7921]], [[7921, 7921], "valid"], [[7922, 7922], "mapped", [7923]], [[7923, 7923], "valid"], [[7924, 7924], "mapped", [7925]], [[7925, 7925], "valid"], [[7926, 7926], "mapped", [7927]], [[7927, 7927], "valid"], [[7928, 7928], "mapped", [7929]], [[7929, 7929], "valid"], [[7930, 7930], "mapped", [7931]], [[7931, 7931], "valid"], [[7932, 7932], "mapped", [7933]], [[7933, 7933], "valid"], [[7934, 7934], "mapped", [7935]], [[7935, 7935], "valid"], [[7936, 7943], "valid"], [[7944, 7944], "mapped", [7936]], [[7945, 7945], "mapped", [7937]], [[7946, 7946], "mapped", [7938]], [[7947, 7947], "mapped", [7939]], [[7948, 7948], "mapped", [7940]], [[7949, 7949], "mapped", [7941]], [[7950, 7950], "mapped", [7942]], [[7951, 7951], "mapped", [7943]], [[7952, 7957], "valid"], [[7958, 7959], "disallowed"], [[7960, 7960], "mapped", [7952]], [[7961, 7961], "mapped", [7953]], [[7962, 7962], "mapped", [7954]], [[7963, 7963], "mapped", [7955]], [[7964, 7964], "mapped", [7956]], [[7965, 7965], "mapped", [7957]], [[7966, 7967], "disallowed"], [[7968, 7975], "valid"], [[7976, 7976], "mapped", [7968]], [[7977, 7977], "mapped", [7969]], [[7978, 7978], "mapped", [7970]], [[7979, 7979], "mapped", [7971]], [[7980, 7980], "mapped", [7972]], [[7981, 7981], "mapped", [7973]], [[7982, 7982], "mapped", [7974]], [[7983, 7983], "mapped", [7975]], [[7984, 7991], "valid"], [[7992, 7992], "mapped", [7984]], [[7993, 7993], "mapped", [7985]], [[7994, 7994], "mapped", [7986]], [[7995, 7995], "mapped", [7987]], [[7996, 7996], "mapped", [7988]], [[7997, 7997], "mapped", [7989]], [[7998, 7998], "mapped", [7990]], [[7999, 7999], "mapped", [7991]], [[8e3, 8005], "valid"], [[8006, 8007], "disallowed"], [[8008, 8008], "mapped", [8e3]], [[8009, 8009], "mapped", [8001]], [[8010, 8010], "mapped", [8002]], [[8011, 8011], "mapped", [8003]], [[8012, 8012], "mapped", [8004]], [[8013, 8013], "mapped", [8005]], [[8014, 8015], "disallowed"], [[8016, 8023], "valid"], [[8024, 8024], "disallowed"], [[8025, 8025], "mapped", [8017]], [[8026, 8026], "disallowed"], [[8027, 8027], "mapped", [8019]], [[8028, 8028], "disallowed"], [[8029, 8029], "mapped", [8021]], [[8030, 8030], "disallowed"], [[8031, 8031], "mapped", [8023]], [[8032, 8039], "valid"], [[8040, 8040], "mapped", [8032]], [[8041, 8041], "mapped", [8033]], [[8042, 8042], "mapped", [8034]], [[8043, 8043], "mapped", [8035]], [[8044, 8044], "mapped", [8036]], [[8045, 8045], "mapped", [8037]], [[8046, 8046], "mapped", [8038]], [[8047, 8047], "mapped", [8039]], [[8048, 8048], "valid"], [[8049, 8049], "mapped", [940]], [[8050, 8050], "valid"], [[8051, 8051], "mapped", [941]], [[8052, 8052], "valid"], [[8053, 8053], "mapped", [942]], [[8054, 8054], "valid"], [[8055, 8055], "mapped", [943]], [[8056, 8056], "valid"], [[8057, 8057], "mapped", [972]], [[8058, 8058], "valid"], [[8059, 8059], "mapped", [973]], [[8060, 8060], "valid"], [[8061, 8061], "mapped", [974]], [[8062, 8063], "disallowed"], [[8064, 8064], "mapped", [7936, 953]], [[8065, 8065], "mapped", [7937, 953]], [[8066, 8066], "mapped", [7938, 953]], [[8067, 8067], "mapped", [7939, 953]], [[8068, 8068], "mapped", [7940, 953]], [[8069, 8069], "mapped", [7941, 953]], [[8070, 8070], "mapped", [7942, 953]], [[8071, 8071], "mapped", [7943, 953]], [[8072, 8072], "mapped", [7936, 953]], [[8073, 8073], "mapped", [7937, 953]], [[8074, 8074], "mapped", [7938, 953]], [[8075, 8075], "mapped", [7939, 953]], [[8076, 8076], "mapped", [7940, 953]], [[8077, 8077], "mapped", [7941, 953]], [[8078, 8078], "mapped", [7942, 953]], [[8079, 8079], "mapped", [7943, 953]], [[8080, 8080], "mapped", [7968, 953]], [[8081, 8081], "mapped", [7969, 953]], [[8082, 8082], "mapped", [7970, 953]], [[8083, 8083], "mapped", [7971, 953]], [[8084, 8084], "mapped", [7972, 953]], [[8085, 8085], "mapped", [7973, 953]], [[8086, 8086], "mapped", [7974, 953]], [[8087, 8087], "mapped", [7975, 953]], [[8088, 8088], "mapped", [7968, 953]], [[8089, 8089], "mapped", [7969, 953]], [[8090, 8090], "mapped", [7970, 953]], [[8091, 8091], "mapped", [7971, 953]], [[8092, 8092], "mapped", [7972, 953]], [[8093, 8093], "mapped", [7973, 953]], [[8094, 8094], "mapped", [7974, 953]], [[8095, 8095], "mapped", [7975, 953]], [[8096, 8096], "mapped", [8032, 953]], [[8097, 8097], "mapped", [8033, 953]], [[8098, 8098], "mapped", [8034, 953]], [[8099, 8099], "mapped", [8035, 953]], [[8100, 8100], "mapped", [8036, 953]], [[8101, 8101], "mapped", [8037, 953]], [[8102, 8102], "mapped", [8038, 953]], [[8103, 8103], "mapped", [8039, 953]], [[8104, 8104], "mapped", [8032, 953]], [[8105, 8105], "mapped", [8033, 953]], [[8106, 8106], "mapped", [8034, 953]], [[8107, 8107], "mapped", [8035, 953]], [[8108, 8108], "mapped", [8036, 953]], [[8109, 8109], "mapped", [8037, 953]], [[8110, 8110], "mapped", [8038, 953]], [[8111, 8111], "mapped", [8039, 953]], [[8112, 8113], "valid"], [[8114, 8114], "mapped", [8048, 953]], [[8115, 8115], "mapped", [945, 953]], [[8116, 8116], "mapped", [940, 953]], [[8117, 8117], "disallowed"], [[8118, 8118], "valid"], [[8119, 8119], "mapped", [8118, 953]], [[8120, 8120], "mapped", [8112]], [[8121, 8121], "mapped", [8113]], [[8122, 8122], "mapped", [8048]], [[8123, 8123], "mapped", [940]], [[8124, 8124], "mapped", [945, 953]], [[8125, 8125], "disallowed_STD3_mapped", [32, 787]], [[8126, 8126], "mapped", [953]], [[8127, 8127], "disallowed_STD3_mapped", [32, 787]], [[8128, 8128], "disallowed_STD3_mapped", [32, 834]], [[8129, 8129], "disallowed_STD3_mapped", [32, 776, 834]], [[8130, 8130], "mapped", [8052, 953]], [[8131, 8131], "mapped", [951, 953]], [[8132, 8132], "mapped", [942, 953]], [[8133, 8133], "disallowed"], [[8134, 8134], "valid"], [[8135, 8135], "mapped", [8134, 953]], [[8136, 8136], "mapped", [8050]], [[8137, 8137], "mapped", [941]], [[8138, 8138], "mapped", [8052]], [[8139, 8139], "mapped", [942]], [[8140, 8140], "mapped", [951, 953]], [[8141, 8141], "disallowed_STD3_mapped", [32, 787, 768]], [[8142, 8142], "disallowed_STD3_mapped", [32, 787, 769]], [[8143, 8143], "disallowed_STD3_mapped", [32, 787, 834]], [[8144, 8146], "valid"], [[8147, 8147], "mapped", [912]], [[8148, 8149], "disallowed"], [[8150, 8151], "valid"], [[8152, 8152], "mapped", [8144]], [[8153, 8153], "mapped", [8145]], [[8154, 8154], "mapped", [8054]], [[8155, 8155], "mapped", [943]], [[8156, 8156], "disallowed"], [[8157, 8157], "disallowed_STD3_mapped", [32, 788, 768]], [[8158, 8158], "disallowed_STD3_mapped", [32, 788, 769]], [[8159, 8159], "disallowed_STD3_mapped", [32, 788, 834]], [[8160, 8162], "valid"], [[8163, 8163], "mapped", [944]], [[8164, 8167], "valid"], [[8168, 8168], "mapped", [8160]], [[8169, 8169], "mapped", [8161]], [[8170, 8170], "mapped", [8058]], [[8171, 8171], "mapped", [973]], [[8172, 8172], "mapped", [8165]], [[8173, 8173], "disallowed_STD3_mapped", [32, 776, 768]], [[8174, 8174], "disallowed_STD3_mapped", [32, 776, 769]], [[8175, 8175], "disallowed_STD3_mapped", [96]], [[8176, 8177], "disallowed"], [[8178, 8178], "mapped", [8060, 953]], [[8179, 8179], "mapped", [969, 953]], [[8180, 8180], "mapped", [974, 953]], [[8181, 8181], "disallowed"], [[8182, 8182], "valid"], [[8183, 8183], "mapped", [8182, 953]], [[8184, 8184], "mapped", [8056]], [[8185, 8185], "mapped", [972]], [[8186, 8186], "mapped", [8060]], [[8187, 8187], "mapped", [974]], [[8188, 8188], "mapped", [969, 953]], [[8189, 8189], "disallowed_STD3_mapped", [32, 769]], [[8190, 8190], "disallowed_STD3_mapped", [32, 788]], [[8191, 8191], "disallowed"], [[8192, 8202], "disallowed_STD3_mapped", [32]], [[8203, 8203], "ignored"], [[8204, 8205], "deviation", []], [[8206, 8207], "disallowed"], [[8208, 8208], "valid", [], "NV8"], [[8209, 8209], "mapped", [8208]], [[8210, 8214], "valid", [], "NV8"], [[8215, 8215], "disallowed_STD3_mapped", [32, 819]], [[8216, 8227], "valid", [], "NV8"], [[8228, 8230], "disallowed"], [[8231, 8231], "valid", [], "NV8"], [[8232, 8238], "disallowed"], [[8239, 8239], "disallowed_STD3_mapped", [32]], [[8240, 8242], "valid", [], "NV8"], [[8243, 8243], "mapped", [8242, 8242]], [[8244, 8244], "mapped", [8242, 8242, 8242]], [[8245, 8245], "valid", [], "NV8"], [[8246, 8246], "mapped", [8245, 8245]], [[8247, 8247], "mapped", [8245, 8245, 8245]], [[8248, 8251], "valid", [], "NV8"], [[8252, 8252], "disallowed_STD3_mapped", [33, 33]], [[8253, 8253], "valid", [], "NV8"], [[8254, 8254], "disallowed_STD3_mapped", [32, 773]], [[8255, 8262], "valid", [], "NV8"], [[8263, 8263], "disallowed_STD3_mapped", [63, 63]], [[8264, 8264], "disallowed_STD3_mapped", [63, 33]], [[8265, 8265], "disallowed_STD3_mapped", [33, 63]], [[8266, 8269], "valid", [], "NV8"], [[8270, 8274], "valid", [], "NV8"], [[8275, 8276], "valid", [], "NV8"], [[8277, 8278], "valid", [], "NV8"], [[8279, 8279], "mapped", [8242, 8242, 8242, 8242]], [[8280, 8286], "valid", [], "NV8"], [[8287, 8287], "disallowed_STD3_mapped", [32]], [[8288, 8288], "ignored"], [[8289, 8291], "disallowed"], [[8292, 8292], "ignored"], [[8293, 8293], "disallowed"], [[8294, 8297], "disallowed"], [[8298, 8303], "disallowed"], [[8304, 8304], "mapped", [48]], [[8305, 8305], "mapped", [105]], [[8306, 8307], "disallowed"], [[8308, 8308], "mapped", [52]], [[8309, 8309], "mapped", [53]], [[8310, 8310], "mapped", [54]], [[8311, 8311], "mapped", [55]], [[8312, 8312], "mapped", [56]], [[8313, 8313], "mapped", [57]], [[8314, 8314], "disallowed_STD3_mapped", [43]], [[8315, 8315], "mapped", [8722]], [[8316, 8316], "disallowed_STD3_mapped", [61]], [[8317, 8317], "disallowed_STD3_mapped", [40]], [[8318, 8318], "disallowed_STD3_mapped", [41]], [[8319, 8319], "mapped", [110]], [[8320, 8320], "mapped", [48]], [[8321, 8321], "mapped", [49]], [[8322, 8322], "mapped", [50]], [[8323, 8323], "mapped", [51]], [[8324, 8324], "mapped", [52]], [[8325, 8325], "mapped", [53]], [[8326, 8326], "mapped", [54]], [[8327, 8327], "mapped", [55]], [[8328, 8328], "mapped", [56]], [[8329, 8329], "mapped", [57]], [[8330, 8330], "disallowed_STD3_mapped", [43]], [[8331, 8331], "mapped", [8722]], [[8332, 8332], "disallowed_STD3_mapped", [61]], [[8333, 8333], "disallowed_STD3_mapped", [40]], [[8334, 8334], "disallowed_STD3_mapped", [41]], [[8335, 8335], "disallowed"], [[8336, 8336], "mapped", [97]], [[8337, 8337], "mapped", [101]], [[8338, 8338], "mapped", [111]], [[8339, 8339], "mapped", [120]], [[8340, 8340], "mapped", [601]], [[8341, 8341], "mapped", [104]], [[8342, 8342], "mapped", [107]], [[8343, 8343], "mapped", [108]], [[8344, 8344], "mapped", [109]], [[8345, 8345], "mapped", [110]], [[8346, 8346], "mapped", [112]], [[8347, 8347], "mapped", [115]], [[8348, 8348], "mapped", [116]], [[8349, 8351], "disallowed"], [[8352, 8359], "valid", [], "NV8"], [[8360, 8360], "mapped", [114, 115]], [[8361, 8362], "valid", [], "NV8"], [[8363, 8363], "valid", [], "NV8"], [[8364, 8364], "valid", [], "NV8"], [[8365, 8367], "valid", [], "NV8"], [[8368, 8369], "valid", [], "NV8"], [[8370, 8373], "valid", [], "NV8"], [[8374, 8376], "valid", [], "NV8"], [[8377, 8377], "valid", [], "NV8"], [[8378, 8378], "valid", [], "NV8"], [[8379, 8381], "valid", [], "NV8"], [[8382, 8382], "valid", [], "NV8"], [[8383, 8399], "disallowed"], [[8400, 8417], "valid", [], "NV8"], [[8418, 8419], "valid", [], "NV8"], [[8420, 8426], "valid", [], "NV8"], [[8427, 8427], "valid", [], "NV8"], [[8428, 8431], "valid", [], "NV8"], [[8432, 8432], "valid", [], "NV8"], [[8433, 8447], "disallowed"], [[8448, 8448], "disallowed_STD3_mapped", [97, 47, 99]], [[8449, 8449], "disallowed_STD3_mapped", [97, 47, 115]], [[8450, 8450], "mapped", [99]], [[8451, 8451], "mapped", [176, 99]], [[8452, 8452], "valid", [], "NV8"], [[8453, 8453], "disallowed_STD3_mapped", [99, 47, 111]], [[8454, 8454], "disallowed_STD3_mapped", [99, 47, 117]], [[8455, 8455], "mapped", [603]], [[8456, 8456], "valid", [], "NV8"], [[8457, 8457], "mapped", [176, 102]], [[8458, 8458], "mapped", [103]], [[8459, 8462], "mapped", [104]], [[8463, 8463], "mapped", [295]], [[8464, 8465], "mapped", [105]], [[8466, 8467], "mapped", [108]], [[8468, 8468], "valid", [], "NV8"], [[8469, 8469], "mapped", [110]], [[8470, 8470], "mapped", [110, 111]], [[8471, 8472], "valid", [], "NV8"], [[8473, 8473], "mapped", [112]], [[8474, 8474], "mapped", [113]], [[8475, 8477], "mapped", [114]], [[8478, 8479], "valid", [], "NV8"], [[8480, 8480], "mapped", [115, 109]], [[8481, 8481], "mapped", [116, 101, 108]], [[8482, 8482], "mapped", [116, 109]], [[8483, 8483], "valid", [], "NV8"], [[8484, 8484], "mapped", [122]], [[8485, 8485], "valid", [], "NV8"], [[8486, 8486], "mapped", [969]], [[8487, 8487], "valid", [], "NV8"], [[8488, 8488], "mapped", [122]], [[8489, 8489], "valid", [], "NV8"], [[8490, 8490], "mapped", [107]], [[8491, 8491], "mapped", [229]], [[8492, 8492], "mapped", [98]], [[8493, 8493], "mapped", [99]], [[8494, 8494], "valid", [], "NV8"], [[8495, 8496], "mapped", [101]], [[8497, 8497], "mapped", [102]], [[8498, 8498], "disallowed"], [[8499, 8499], "mapped", [109]], [[8500, 8500], "mapped", [111]], [[8501, 8501], "mapped", [1488]], [[8502, 8502], "mapped", [1489]], [[8503, 8503], "mapped", [1490]], [[8504, 8504], "mapped", [1491]], [[8505, 8505], "mapped", [105]], [[8506, 8506], "valid", [], "NV8"], [[8507, 8507], "mapped", [102, 97, 120]], [[8508, 8508], "mapped", [960]], [[8509, 8510], "mapped", [947]], [[8511, 8511], "mapped", [960]], [[8512, 8512], "mapped", [8721]], [[8513, 8516], "valid", [], "NV8"], [[8517, 8518], "mapped", [100]], [[8519, 8519], "mapped", [101]], [[8520, 8520], "mapped", [105]], [[8521, 8521], "mapped", [106]], [[8522, 8523], "valid", [], "NV8"], [[8524, 8524], "valid", [], "NV8"], [[8525, 8525], "valid", [], "NV8"], [[8526, 8526], "valid"], [[8527, 8527], "valid", [], "NV8"], [[8528, 8528], "mapped", [49, 8260, 55]], [[8529, 8529], "mapped", [49, 8260, 57]], [[8530, 8530], "mapped", [49, 8260, 49, 48]], [[8531, 8531], "mapped", [49, 8260, 51]], [[8532, 8532], "mapped", [50, 8260, 51]], [[8533, 8533], "mapped", [49, 8260, 53]], [[8534, 8534], "mapped", [50, 8260, 53]], [[8535, 8535], "mapped", [51, 8260, 53]], [[8536, 8536], "mapped", [52, 8260, 53]], [[8537, 8537], "mapped", [49, 8260, 54]], [[8538, 8538], "mapped", [53, 8260, 54]], [[8539, 8539], "mapped", [49, 8260, 56]], [[8540, 8540], "mapped", [51, 8260, 56]], [[8541, 8541], "mapped", [53, 8260, 56]], [[8542, 8542], "mapped", [55, 8260, 56]], [[8543, 8543], "mapped", [49, 8260]], [[8544, 8544], "mapped", [105]], [[8545, 8545], "mapped", [105, 105]], [[8546, 8546], "mapped", [105, 105, 105]], [[8547, 8547], "mapped", [105, 118]], [[8548, 8548], "mapped", [118]], [[8549, 8549], "mapped", [118, 105]], [[8550, 8550], "mapped", [118, 105, 105]], [[8551, 8551], "mapped", [118, 105, 105, 105]], [[8552, 8552], "mapped", [105, 120]], [[8553, 8553], "mapped", [120]], [[8554, 8554], "mapped", [120, 105]], [[8555, 8555], "mapped", [120, 105, 105]], [[8556, 8556], "mapped", [108]], [[8557, 8557], "mapped", [99]], [[8558, 8558], "mapped", [100]], [[8559, 8559], "mapped", [109]], [[8560, 8560], "mapped", [105]], [[8561, 8561], "mapped", [105, 105]], [[8562, 8562], "mapped", [105, 105, 105]], [[8563, 8563], "mapped", [105, 118]], [[8564, 8564], "mapped", [118]], [[8565, 8565], "mapped", [118, 105]], [[8566, 8566], "mapped", [118, 105, 105]], [[8567, 8567], "mapped", [118, 105, 105, 105]], [[8568, 8568], "mapped", [105, 120]], [[8569, 8569], "mapped", [120]], [[8570, 8570], "mapped", [120, 105]], [[8571, 8571], "mapped", [120, 105, 105]], [[8572, 8572], "mapped", [108]], [[8573, 8573], "mapped", [99]], [[8574, 8574], "mapped", [100]], [[8575, 8575], "mapped", [109]], [[8576, 8578], "valid", [], "NV8"], [[8579, 8579], "disallowed"], [[8580, 8580], "valid"], [[8581, 8584], "valid", [], "NV8"], [[8585, 8585], "mapped", [48, 8260, 51]], [[8586, 8587], "valid", [], "NV8"], [[8588, 8591], "disallowed"], [[8592, 8682], "valid", [], "NV8"], [[8683, 8691], "valid", [], "NV8"], [[8692, 8703], "valid", [], "NV8"], [[8704, 8747], "valid", [], "NV8"], [[8748, 8748], "mapped", [8747, 8747]], [[8749, 8749], "mapped", [8747, 8747, 8747]], [[8750, 8750], "valid", [], "NV8"], [[8751, 8751], "mapped", [8750, 8750]], [[8752, 8752], "mapped", [8750, 8750, 8750]], [[8753, 8799], "valid", [], "NV8"], [[8800, 8800], "disallowed_STD3_valid"], [[8801, 8813], "valid", [], "NV8"], [[8814, 8815], "disallowed_STD3_valid"], [[8816, 8945], "valid", [], "NV8"], [[8946, 8959], "valid", [], "NV8"], [[8960, 8960], "valid", [], "NV8"], [[8961, 8961], "valid", [], "NV8"], [[8962, 9e3], "valid", [], "NV8"], [[9001, 9001], "mapped", [12296]], [[9002, 9002], "mapped", [12297]], [[9003, 9082], "valid", [], "NV8"], [[9083, 9083], "valid", [], "NV8"], [[9084, 9084], "valid", [], "NV8"], [[9085, 9114], "valid", [], "NV8"], [[9115, 9166], "valid", [], "NV8"], [[9167, 9168], "valid", [], "NV8"], [[9169, 9179], "valid", [], "NV8"], [[9180, 9191], "valid", [], "NV8"], [[9192, 9192], "valid", [], "NV8"], [[9193, 9203], "valid", [], "NV8"], [[9204, 9210], "valid", [], "NV8"], [[9211, 9215], "disallowed"], [[9216, 9252], "valid", [], "NV8"], [[9253, 9254], "valid", [], "NV8"], [[9255, 9279], "disallowed"], [[9280, 9290], "valid", [], "NV8"], [[9291, 9311], "disallowed"], [[9312, 9312], "mapped", [49]], [[9313, 9313], "mapped", [50]], [[9314, 9314], "mapped", [51]], [[9315, 9315], "mapped", [52]], [[9316, 9316], "mapped", [53]], [[9317, 9317], "mapped", [54]], [[9318, 9318], "mapped", [55]], [[9319, 9319], "mapped", [56]], [[9320, 9320], "mapped", [57]], [[9321, 9321], "mapped", [49, 48]], [[9322, 9322], "mapped", [49, 49]], [[9323, 9323], "mapped", [49, 50]], [[9324, 9324], "mapped", [49, 51]], [[9325, 9325], "mapped", [49, 52]], [[9326, 9326], "mapped", [49, 53]], [[9327, 9327], "mapped", [49, 54]], [[9328, 9328], "mapped", [49, 55]], [[9329, 9329], "mapped", [49, 56]], [[9330, 9330], "mapped", [49, 57]], [[9331, 9331], "mapped", [50, 48]], [[9332, 9332], "disallowed_STD3_mapped", [40, 49, 41]], [[9333, 9333], "disallowed_STD3_mapped", [40, 50, 41]], [[9334, 9334], "disallowed_STD3_mapped", [40, 51, 41]], [[9335, 9335], "disallowed_STD3_mapped", [40, 52, 41]], [[9336, 9336], "disallowed_STD3_mapped", [40, 53, 41]], [[9337, 9337], "disallowed_STD3_mapped", [40, 54, 41]], [[9338, 9338], "disallowed_STD3_mapped", [40, 55, 41]], [[9339, 9339], "disallowed_STD3_mapped", [40, 56, 41]], [[9340, 9340], "disallowed_STD3_mapped", [40, 57, 41]], [[9341, 9341], "disallowed_STD3_mapped", [40, 49, 48, 41]], [[9342, 9342], "disallowed_STD3_mapped", [40, 49, 49, 41]], [[9343, 9343], "disallowed_STD3_mapped", [40, 49, 50, 41]], [[9344, 9344], "disallowed_STD3_mapped", [40, 49, 51, 41]], [[9345, 9345], "disallowed_STD3_mapped", [40, 49, 52, 41]], [[9346, 9346], "disallowed_STD3_mapped", [40, 49, 53, 41]], [[9347, 9347], "disallowed_STD3_mapped", [40, 49, 54, 41]], [[9348, 9348], "disallowed_STD3_mapped", [40, 49, 55, 41]], [[9349, 9349], "disallowed_STD3_mapped", [40, 49, 56, 41]], [[9350, 9350], "disallowed_STD3_mapped", [40, 49, 57, 41]], [[9351, 9351], "disallowed_STD3_mapped", [40, 50, 48, 41]], [[9352, 9371], "disallowed"], [[9372, 9372], "disallowed_STD3_mapped", [40, 97, 41]], [[9373, 9373], "disallowed_STD3_mapped", [40, 98, 41]], [[9374, 9374], "disallowed_STD3_mapped", [40, 99, 41]], [[9375, 9375], "disallowed_STD3_mapped", [40, 100, 41]], [[9376, 9376], "disallowed_STD3_mapped", [40, 101, 41]], [[9377, 9377], "disallowed_STD3_mapped", [40, 102, 41]], [[9378, 9378], "disallowed_STD3_mapped", [40, 103, 41]], [[9379, 9379], "disallowed_STD3_mapped", [40, 104, 41]], [[9380, 9380], "disallowed_STD3_mapped", [40, 105, 41]], [[9381, 9381], "disallowed_STD3_mapped", [40, 106, 41]], [[9382, 9382], "disallowed_STD3_mapped", [40, 107, 41]], [[9383, 9383], "disallowed_STD3_mapped", [40, 108, 41]], [[9384, 9384], "disallowed_STD3_mapped", [40, 109, 41]], [[9385, 9385], "disallowed_STD3_mapped", [40, 110, 41]], [[9386, 9386], "disallowed_STD3_mapped", [40, 111, 41]], [[9387, 9387], "disallowed_STD3_mapped", [40, 112, 41]], [[9388, 9388], "disallowed_STD3_mapped", [40, 113, 41]], [[9389, 9389], "disallowed_STD3_mapped", [40, 114, 41]], [[9390, 9390], "disallowed_STD3_mapped", [40, 115, 41]], [[9391, 9391], "disallowed_STD3_mapped", [40, 116, 41]], [[9392, 9392], "disallowed_STD3_mapped", [40, 117, 41]], [[9393, 9393], "disallowed_STD3_mapped", [40, 118, 41]], [[9394, 9394], "disallowed_STD3_mapped", [40, 119, 41]], [[9395, 9395], "disallowed_STD3_mapped", [40, 120, 41]], [[9396, 9396], "disallowed_STD3_mapped", [40, 121, 41]], [[9397, 9397], "disallowed_STD3_mapped", [40, 122, 41]], [[9398, 9398], "mapped", [97]], [[9399, 9399], "mapped", [98]], [[9400, 9400], "mapped", [99]], [[9401, 9401], "mapped", [100]], [[9402, 9402], "mapped", [101]], [[9403, 9403], "mapped", [102]], [[9404, 9404], "mapped", [103]], [[9405, 9405], "mapped", [104]], [[9406, 9406], "mapped", [105]], [[9407, 9407], "mapped", [106]], [[9408, 9408], "mapped", [107]], [[9409, 9409], "mapped", [108]], [[9410, 9410], "mapped", [109]], [[9411, 9411], "mapped", [110]], [[9412, 9412], "mapped", [111]], [[9413, 9413], "mapped", [112]], [[9414, 9414], "mapped", [113]], [[9415, 9415], "mapped", [114]], [[9416, 9416], "mapped", [115]], [[9417, 9417], "mapped", [116]], [[9418, 9418], "mapped", [117]], [[9419, 9419], "mapped", [118]], [[9420, 9420], "mapped", [119]], [[9421, 9421], "mapped", [120]], [[9422, 9422], "mapped", [121]], [[9423, 9423], "mapped", [122]], [[9424, 9424], "mapped", [97]], [[9425, 9425], "mapped", [98]], [[9426, 9426], "mapped", [99]], [[9427, 9427], "mapped", [100]], [[9428, 9428], "mapped", [101]], [[9429, 9429], "mapped", [102]], [[9430, 9430], "mapped", [103]], [[9431, 9431], "mapped", [104]], [[9432, 9432], "mapped", [105]], [[9433, 9433], "mapped", [106]], [[9434, 9434], "mapped", [107]], [[9435, 9435], "mapped", [108]], [[9436, 9436], "mapped", [109]], [[9437, 9437], "mapped", [110]], [[9438, 9438], "mapped", [111]], [[9439, 9439], "mapped", [112]], [[9440, 9440], "mapped", [113]], [[9441, 9441], "mapped", [114]], [[9442, 9442], "mapped", [115]], [[9443, 9443], "mapped", [116]], [[9444, 9444], "mapped", [117]], [[9445, 9445], "mapped", [118]], [[9446, 9446], "mapped", [119]], [[9447, 9447], "mapped", [120]], [[9448, 9448], "mapped", [121]], [[9449, 9449], "mapped", [122]], [[9450, 9450], "mapped", [48]], [[9451, 9470], "valid", [], "NV8"], [[9471, 9471], "valid", [], "NV8"], [[9472, 9621], "valid", [], "NV8"], [[9622, 9631], "valid", [], "NV8"], [[9632, 9711], "valid", [], "NV8"], [[9712, 9719], "valid", [], "NV8"], [[9720, 9727], "valid", [], "NV8"], [[9728, 9747], "valid", [], "NV8"], [[9748, 9749], "valid", [], "NV8"], [[9750, 9751], "valid", [], "NV8"], [[9752, 9752], "valid", [], "NV8"], [[9753, 9753], "valid", [], "NV8"], [[9754, 9839], "valid", [], "NV8"], [[9840, 9841], "valid", [], "NV8"], [[9842, 9853], "valid", [], "NV8"], [[9854, 9855], "valid", [], "NV8"], [[9856, 9865], "valid", [], "NV8"], [[9866, 9873], "valid", [], "NV8"], [[9874, 9884], "valid", [], "NV8"], [[9885, 9885], "valid", [], "NV8"], [[9886, 9887], "valid", [], "NV8"], [[9888, 9889], "valid", [], "NV8"], [[9890, 9905], "valid", [], "NV8"], [[9906, 9906], "valid", [], "NV8"], [[9907, 9916], "valid", [], "NV8"], [[9917, 9919], "valid", [], "NV8"], [[9920, 9923], "valid", [], "NV8"], [[9924, 9933], "valid", [], "NV8"], [[9934, 9934], "valid", [], "NV8"], [[9935, 9953], "valid", [], "NV8"], [[9954, 9954], "valid", [], "NV8"], [[9955, 9955], "valid", [], "NV8"], [[9956, 9959], "valid", [], "NV8"], [[9960, 9983], "valid", [], "NV8"], [[9984, 9984], "valid", [], "NV8"], [[9985, 9988], "valid", [], "NV8"], [[9989, 9989], "valid", [], "NV8"], [[9990, 9993], "valid", [], "NV8"], [[9994, 9995], "valid", [], "NV8"], [[9996, 10023], "valid", [], "NV8"], [[10024, 10024], "valid", [], "NV8"], [[10025, 10059], "valid", [], "NV8"], [[10060, 10060], "valid", [], "NV8"], [[10061, 10061], "valid", [], "NV8"], [[10062, 10062], "valid", [], "NV8"], [[10063, 10066], "valid", [], "NV8"], [[10067, 10069], "valid", [], "NV8"], [[10070, 10070], "valid", [], "NV8"], [[10071, 10071], "valid", [], "NV8"], [[10072, 10078], "valid", [], "NV8"], [[10079, 10080], "valid", [], "NV8"], [[10081, 10087], "valid", [], "NV8"], [[10088, 10101], "valid", [], "NV8"], [[10102, 10132], "valid", [], "NV8"], [[10133, 10135], "valid", [], "NV8"], [[10136, 10159], "valid", [], "NV8"], [[10160, 10160], "valid", [], "NV8"], [[10161, 10174], "valid", [], "NV8"], [[10175, 10175], "valid", [], "NV8"], [[10176, 10182], "valid", [], "NV8"], [[10183, 10186], "valid", [], "NV8"], [[10187, 10187], "valid", [], "NV8"], [[10188, 10188], "valid", [], "NV8"], [[10189, 10189], "valid", [], "NV8"], [[10190, 10191], "valid", [], "NV8"], [[10192, 10219], "valid", [], "NV8"], [[10220, 10223], "valid", [], "NV8"], [[10224, 10239], "valid", [], "NV8"], [[10240, 10495], "valid", [], "NV8"], [[10496, 10763], "valid", [], "NV8"], [[10764, 10764], "mapped", [8747, 8747, 8747, 8747]], [[10765, 10867], "valid", [], "NV8"], [[10868, 10868], "disallowed_STD3_mapped", [58, 58, 61]], [[10869, 10869], "disallowed_STD3_mapped", [61, 61]], [[10870, 10870], "disallowed_STD3_mapped", [61, 61, 61]], [[10871, 10971], "valid", [], "NV8"], [[10972, 10972], "mapped", [10973, 824]], [[10973, 11007], "valid", [], "NV8"], [[11008, 11021], "valid", [], "NV8"], [[11022, 11027], "valid", [], "NV8"], [[11028, 11034], "valid", [], "NV8"], [[11035, 11039], "valid", [], "NV8"], [[11040, 11043], "valid", [], "NV8"], [[11044, 11084], "valid", [], "NV8"], [[11085, 11087], "valid", [], "NV8"], [[11088, 11092], "valid", [], "NV8"], [[11093, 11097], "valid", [], "NV8"], [[11098, 11123], "valid", [], "NV8"], [[11124, 11125], "disallowed"], [[11126, 11157], "valid", [], "NV8"], [[11158, 11159], "disallowed"], [[11160, 11193], "valid", [], "NV8"], [[11194, 11196], "disallowed"], [[11197, 11208], "valid", [], "NV8"], [[11209, 11209], "disallowed"], [[11210, 11217], "valid", [], "NV8"], [[11218, 11243], "disallowed"], [[11244, 11247], "valid", [], "NV8"], [[11248, 11263], "disallowed"], [[11264, 11264], "mapped", [11312]], [[11265, 11265], "mapped", [11313]], [[11266, 11266], "mapped", [11314]], [[11267, 11267], "mapped", [11315]], [[11268, 11268], "mapped", [11316]], [[11269, 11269], "mapped", [11317]], [[11270, 11270], "mapped", [11318]], [[11271, 11271], "mapped", [11319]], [[11272, 11272], "mapped", [11320]], [[11273, 11273], "mapped", [11321]], [[11274, 11274], "mapped", [11322]], [[11275, 11275], "mapped", [11323]], [[11276, 11276], "mapped", [11324]], [[11277, 11277], "mapped", [11325]], [[11278, 11278], "mapped", [11326]], [[11279, 11279], "mapped", [11327]], [[11280, 11280], "mapped", [11328]], [[11281, 11281], "mapped", [11329]], [[11282, 11282], "mapped", [11330]], [[11283, 11283], "mapped", [11331]], [[11284, 11284], "mapped", [11332]], [[11285, 11285], "mapped", [11333]], [[11286, 11286], "mapped", [11334]], [[11287, 11287], "mapped", [11335]], [[11288, 11288], "mapped", [11336]], [[11289, 11289], "mapped", [11337]], [[11290, 11290], "mapped", [11338]], [[11291, 11291], "mapped", [11339]], [[11292, 11292], "mapped", [11340]], [[11293, 11293], "mapped", [11341]], [[11294, 11294], "mapped", [11342]], [[11295, 11295], "mapped", [11343]], [[11296, 11296], "mapped", [11344]], [[11297, 11297], "mapped", [11345]], [[11298, 11298], "mapped", [11346]], [[11299, 11299], "mapped", [11347]], [[11300, 11300], "mapped", [11348]], [[11301, 11301], "mapped", [11349]], [[11302, 11302], "mapped", [11350]], [[11303, 11303], "mapped", [11351]], [[11304, 11304], "mapped", [11352]], [[11305, 11305], "mapped", [11353]], [[11306, 11306], "mapped", [11354]], [[11307, 11307], "mapped", [11355]], [[11308, 11308], "mapped", [11356]], [[11309, 11309], "mapped", [11357]], [[11310, 11310], "mapped", [11358]], [[11311, 11311], "disallowed"], [[11312, 11358], "valid"], [[11359, 11359], "disallowed"], [[11360, 11360], "mapped", [11361]], [[11361, 11361], "valid"], [[11362, 11362], "mapped", [619]], [[11363, 11363], "mapped", [7549]], [[11364, 11364], "mapped", [637]], [[11365, 11366], "valid"], [[11367, 11367], "mapped", [11368]], [[11368, 11368], "valid"], [[11369, 11369], "mapped", [11370]], [[11370, 11370], "valid"], [[11371, 11371], "mapped", [11372]], [[11372, 11372], "valid"], [[11373, 11373], "mapped", [593]], [[11374, 11374], "mapped", [625]], [[11375, 11375], "mapped", [592]], [[11376, 11376], "mapped", [594]], [[11377, 11377], "valid"], [[11378, 11378], "mapped", [11379]], [[11379, 11379], "valid"], [[11380, 11380], "valid"], [[11381, 11381], "mapped", [11382]], [[11382, 11383], "valid"], [[11384, 11387], "valid"], [[11388, 11388], "mapped", [106]], [[11389, 11389], "mapped", [118]], [[11390, 11390], "mapped", [575]], [[11391, 11391], "mapped", [576]], [[11392, 11392], "mapped", [11393]], [[11393, 11393], "valid"], [[11394, 11394], "mapped", [11395]], [[11395, 11395], "valid"], [[11396, 11396], "mapped", [11397]], [[11397, 11397], "valid"], [[11398, 11398], "mapped", [11399]], [[11399, 11399], "valid"], [[11400, 11400], "mapped", [11401]], [[11401, 11401], "valid"], [[11402, 11402], "mapped", [11403]], [[11403, 11403], "valid"], [[11404, 11404], "mapped", [11405]], [[11405, 11405], "valid"], [[11406, 11406], "mapped", [11407]], [[11407, 11407], "valid"], [[11408, 11408], "mapped", [11409]], [[11409, 11409], "valid"], [[11410, 11410], "mapped", [11411]], [[11411, 11411], "valid"], [[11412, 11412], "mapped", [11413]], [[11413, 11413], "valid"], [[11414, 11414], "mapped", [11415]], [[11415, 11415], "valid"], [[11416, 11416], "mapped", [11417]], [[11417, 11417], "valid"], [[11418, 11418], "mapped", [11419]], [[11419, 11419], "valid"], [[11420, 11420], "mapped", [11421]], [[11421, 11421], "valid"], [[11422, 11422], "mapped", [11423]], [[11423, 11423], "valid"], [[11424, 11424], "mapped", [11425]], [[11425, 11425], "valid"], [[11426, 11426], "mapped", [11427]], [[11427, 11427], "valid"], [[11428, 11428], "mapped", [11429]], [[11429, 11429], "valid"], [[11430, 11430], "mapped", [11431]], [[11431, 11431], "valid"], [[11432, 11432], "mapped", [11433]], [[11433, 11433], "valid"], [[11434, 11434], "mapped", [11435]], [[11435, 11435], "valid"], [[11436, 11436], "mapped", [11437]], [[11437, 11437], "valid"], [[11438, 11438], "mapped", [11439]], [[11439, 11439], "valid"], [[11440, 11440], "mapped", [11441]], [[11441, 11441], "valid"], [[11442, 11442], "mapped", [11443]], [[11443, 11443], "valid"], [[11444, 11444], "mapped", [11445]], [[11445, 11445], "valid"], [[11446, 11446], "mapped", [11447]], [[11447, 11447], "valid"], [[11448, 11448], "mapped", [11449]], [[11449, 11449], "valid"], [[11450, 11450], "mapped", [11451]], [[11451, 11451], "valid"], [[11452, 11452], "mapped", [11453]], [[11453, 11453], "valid"], [[11454, 11454], "mapped", [11455]], [[11455, 11455], "valid"], [[11456, 11456], "mapped", [11457]], [[11457, 11457], "valid"], [[11458, 11458], "mapped", [11459]], [[11459, 11459], "valid"], [[11460, 11460], "mapped", [11461]], [[11461, 11461], "valid"], [[11462, 11462], "mapped", [11463]], [[11463, 11463], "valid"], [[11464, 11464], "mapped", [11465]], [[11465, 11465], "valid"], [[11466, 11466], "mapped", [11467]], [[11467, 11467], "valid"], [[11468, 11468], "mapped", [11469]], [[11469, 11469], "valid"], [[11470, 11470], "mapped", [11471]], [[11471, 11471], "valid"], [[11472, 11472], "mapped", [11473]], [[11473, 11473], "valid"], [[11474, 11474], "mapped", [11475]], [[11475, 11475], "valid"], [[11476, 11476], "mapped", [11477]], [[11477, 11477], "valid"], [[11478, 11478], "mapped", [11479]], [[11479, 11479], "valid"], [[11480, 11480], "mapped", [11481]], [[11481, 11481], "valid"], [[11482, 11482], "mapped", [11483]], [[11483, 11483], "valid"], [[11484, 11484], "mapped", [11485]], [[11485, 11485], "valid"], [[11486, 11486], "mapped", [11487]], [[11487, 11487], "valid"], [[11488, 11488], "mapped", [11489]], [[11489, 11489], "valid"], [[11490, 11490], "mapped", [11491]], [[11491, 11492], "valid"], [[11493, 11498], "valid", [], "NV8"], [[11499, 11499], "mapped", [11500]], [[11500, 11500], "valid"], [[11501, 11501], "mapped", [11502]], [[11502, 11505], "valid"], [[11506, 11506], "mapped", [11507]], [[11507, 11507], "valid"], [[11508, 11512], "disallowed"], [[11513, 11519], "valid", [], "NV8"], [[11520, 11557], "valid"], [[11558, 11558], "disallowed"], [[11559, 11559], "valid"], [[11560, 11564], "disallowed"], [[11565, 11565], "valid"], [[11566, 11567], "disallowed"], [[11568, 11621], "valid"], [[11622, 11623], "valid"], [[11624, 11630], "disallowed"], [[11631, 11631], "mapped", [11617]], [[11632, 11632], "valid", [], "NV8"], [[11633, 11646], "disallowed"], [[11647, 11647], "valid"], [[11648, 11670], "valid"], [[11671, 11679], "disallowed"], [[11680, 11686], "valid"], [[11687, 11687], "disallowed"], [[11688, 11694], "valid"], [[11695, 11695], "disallowed"], [[11696, 11702], "valid"], [[11703, 11703], "disallowed"], [[11704, 11710], "valid"], [[11711, 11711], "disallowed"], [[11712, 11718], "valid"], [[11719, 11719], "disallowed"], [[11720, 11726], "valid"], [[11727, 11727], "disallowed"], [[11728, 11734], "valid"], [[11735, 11735], "disallowed"], [[11736, 11742], "valid"], [[11743, 11743], "disallowed"], [[11744, 11775], "valid"], [[11776, 11799], "valid", [], "NV8"], [[11800, 11803], "valid", [], "NV8"], [[11804, 11805], "valid", [], "NV8"], [[11806, 11822], "valid", [], "NV8"], [[11823, 11823], "valid"], [[11824, 11824], "valid", [], "NV8"], [[11825, 11825], "valid", [], "NV8"], [[11826, 11835], "valid", [], "NV8"], [[11836, 11842], "valid", [], "NV8"], [[11843, 11903], "disallowed"], [[11904, 11929], "valid", [], "NV8"], [[11930, 11930], "disallowed"], [[11931, 11934], "valid", [], "NV8"], [[11935, 11935], "mapped", [27597]], [[11936, 12018], "valid", [], "NV8"], [[12019, 12019], "mapped", [40863]], [[12020, 12031], "disallowed"], [[12032, 12032], "mapped", [19968]], [[12033, 12033], "mapped", [20008]], [[12034, 12034], "mapped", [20022]], [[12035, 12035], "mapped", [20031]], [[12036, 12036], "mapped", [20057]], [[12037, 12037], "mapped", [20101]], [[12038, 12038], "mapped", [20108]], [[12039, 12039], "mapped", [20128]], [[12040, 12040], "mapped", [20154]], [[12041, 12041], "mapped", [20799]], [[12042, 12042], "mapped", [20837]], [[12043, 12043], "mapped", [20843]], [[12044, 12044], "mapped", [20866]], [[12045, 12045], "mapped", [20886]], [[12046, 12046], "mapped", [20907]], [[12047, 12047], "mapped", [20960]], [[12048, 12048], "mapped", [20981]], [[12049, 12049], "mapped", [20992]], [[12050, 12050], "mapped", [21147]], [[12051, 12051], "mapped", [21241]], [[12052, 12052], "mapped", [21269]], [[12053, 12053], "mapped", [21274]], [[12054, 12054], "mapped", [21304]], [[12055, 12055], "mapped", [21313]], [[12056, 12056], "mapped", [21340]], [[12057, 12057], "mapped", [21353]], [[12058, 12058], "mapped", [21378]], [[12059, 12059], "mapped", [21430]], [[12060, 12060], "mapped", [21448]], [[12061, 12061], "mapped", [21475]], [[12062, 12062], "mapped", [22231]], [[12063, 12063], "mapped", [22303]], [[12064, 12064], "mapped", [22763]], [[12065, 12065], "mapped", [22786]], [[12066, 12066], "mapped", [22794]], [[12067, 12067], "mapped", [22805]], [[12068, 12068], "mapped", [22823]], [[12069, 12069], "mapped", [22899]], [[12070, 12070], "mapped", [23376]], [[12071, 12071], "mapped", [23424]], [[12072, 12072], "mapped", [23544]], [[12073, 12073], "mapped", [23567]], [[12074, 12074], "mapped", [23586]], [[12075, 12075], "mapped", [23608]], [[12076, 12076], "mapped", [23662]], [[12077, 12077], "mapped", [23665]], [[12078, 12078], "mapped", [24027]], [[12079, 12079], "mapped", [24037]], [[12080, 12080], "mapped", [24049]], [[12081, 12081], "mapped", [24062]], [[12082, 12082], "mapped", [24178]], [[12083, 12083], "mapped", [24186]], [[12084, 12084], "mapped", [24191]], [[12085, 12085], "mapped", [24308]], [[12086, 12086], "mapped", [24318]], [[12087, 12087], "mapped", [24331]], [[12088, 12088], "mapped", [24339]], [[12089, 12089], "mapped", [24400]], [[12090, 12090], "mapped", [24417]], [[12091, 12091], "mapped", [24435]], [[12092, 12092], "mapped", [24515]], [[12093, 12093], "mapped", [25096]], [[12094, 12094], "mapped", [25142]], [[12095, 12095], "mapped", [25163]], [[12096, 12096], "mapped", [25903]], [[12097, 12097], "mapped", [25908]], [[12098, 12098], "mapped", [25991]], [[12099, 12099], "mapped", [26007]], [[12100, 12100], "mapped", [26020]], [[12101, 12101], "mapped", [26041]], [[12102, 12102], "mapped", [26080]], [[12103, 12103], "mapped", [26085]], [[12104, 12104], "mapped", [26352]], [[12105, 12105], "mapped", [26376]], [[12106, 12106], "mapped", [26408]], [[12107, 12107], "mapped", [27424]], [[12108, 12108], "mapped", [27490]], [[12109, 12109], "mapped", [27513]], [[12110, 12110], "mapped", [27571]], [[12111, 12111], "mapped", [27595]], [[12112, 12112], "mapped", [27604]], [[12113, 12113], "mapped", [27611]], [[12114, 12114], "mapped", [27663]], [[12115, 12115], "mapped", [27668]], [[12116, 12116], "mapped", [27700]], [[12117, 12117], "mapped", [28779]], [[12118, 12118], "mapped", [29226]], [[12119, 12119], "mapped", [29238]], [[12120, 12120], "mapped", [29243]], [[12121, 12121], "mapped", [29247]], [[12122, 12122], "mapped", [29255]], [[12123, 12123], "mapped", [29273]], [[12124, 12124], "mapped", [29275]], [[12125, 12125], "mapped", [29356]], [[12126, 12126], "mapped", [29572]], [[12127, 12127], "mapped", [29577]], [[12128, 12128], "mapped", [29916]], [[12129, 12129], "mapped", [29926]], [[12130, 12130], "mapped", [29976]], [[12131, 12131], "mapped", [29983]], [[12132, 12132], "mapped", [29992]], [[12133, 12133], "mapped", [3e4]], [[12134, 12134], "mapped", [30091]], [[12135, 12135], "mapped", [30098]], [[12136, 12136], "mapped", [30326]], [[12137, 12137], "mapped", [30333]], [[12138, 12138], "mapped", [30382]], [[12139, 12139], "mapped", [30399]], [[12140, 12140], "mapped", [30446]], [[12141, 12141], "mapped", [30683]], [[12142, 12142], "mapped", [30690]], [[12143, 12143], "mapped", [30707]], [[12144, 12144], "mapped", [31034]], [[12145, 12145], "mapped", [31160]], [[12146, 12146], "mapped", [31166]], [[12147, 12147], "mapped", [31348]], [[12148, 12148], "mapped", [31435]], [[12149, 12149], "mapped", [31481]], [[12150, 12150], "mapped", [31859]], [[12151, 12151], "mapped", [31992]], [[12152, 12152], "mapped", [32566]], [[12153, 12153], "mapped", [32593]], [[12154, 12154], "mapped", [32650]], [[12155, 12155], "mapped", [32701]], [[12156, 12156], "mapped", [32769]], [[12157, 12157], "mapped", [32780]], [[12158, 12158], "mapped", [32786]], [[12159, 12159], "mapped", [32819]], [[12160, 12160], "mapped", [32895]], [[12161, 12161], "mapped", [32905]], [[12162, 12162], "mapped", [33251]], [[12163, 12163], "mapped", [33258]], [[12164, 12164], "mapped", [33267]], [[12165, 12165], "mapped", [33276]], [[12166, 12166], "mapped", [33292]], [[12167, 12167], "mapped", [33307]], [[12168, 12168], "mapped", [33311]], [[12169, 12169], "mapped", [33390]], [[12170, 12170], "mapped", [33394]], [[12171, 12171], "mapped", [33400]], [[12172, 12172], "mapped", [34381]], [[12173, 12173], "mapped", [34411]], [[12174, 12174], "mapped", [34880]], [[12175, 12175], "mapped", [34892]], [[12176, 12176], "mapped", [34915]], [[12177, 12177], "mapped", [35198]], [[12178, 12178], "mapped", [35211]], [[12179, 12179], "mapped", [35282]], [[12180, 12180], "mapped", [35328]], [[12181, 12181], "mapped", [35895]], [[12182, 12182], "mapped", [35910]], [[12183, 12183], "mapped", [35925]], [[12184, 12184], "mapped", [35960]], [[12185, 12185], "mapped", [35997]], [[12186, 12186], "mapped", [36196]], [[12187, 12187], "mapped", [36208]], [[12188, 12188], "mapped", [36275]], [[12189, 12189], "mapped", [36523]], [[12190, 12190], "mapped", [36554]], [[12191, 12191], "mapped", [36763]], [[12192, 12192], "mapped", [36784]], [[12193, 12193], "mapped", [36789]], [[12194, 12194], "mapped", [37009]], [[12195, 12195], "mapped", [37193]], [[12196, 12196], "mapped", [37318]], [[12197, 12197], "mapped", [37324]], [[12198, 12198], "mapped", [37329]], [[12199, 12199], "mapped", [38263]], [[12200, 12200], "mapped", [38272]], [[12201, 12201], "mapped", [38428]], [[12202, 12202], "mapped", [38582]], [[12203, 12203], "mapped", [38585]], [[12204, 12204], "mapped", [38632]], [[12205, 12205], "mapped", [38737]], [[12206, 12206], "mapped", [38750]], [[12207, 12207], "mapped", [38754]], [[12208, 12208], "mapped", [38761]], [[12209, 12209], "mapped", [38859]], [[12210, 12210], "mapped", [38893]], [[12211, 12211], "mapped", [38899]], [[12212, 12212], "mapped", [38913]], [[12213, 12213], "mapped", [39080]], [[12214, 12214], "mapped", [39131]], [[12215, 12215], "mapped", [39135]], [[12216, 12216], "mapped", [39318]], [[12217, 12217], "mapped", [39321]], [[12218, 12218], "mapped", [39340]], [[12219, 12219], "mapped", [39592]], [[12220, 12220], "mapped", [39640]], [[12221, 12221], "mapped", [39647]], [[12222, 12222], "mapped", [39717]], [[12223, 12223], "mapped", [39727]], [[12224, 12224], "mapped", [39730]], [[12225, 12225], "mapped", [39740]], [[12226, 12226], "mapped", [39770]], [[12227, 12227], "mapped", [40165]], [[12228, 12228], "mapped", [40565]], [[12229, 12229], "mapped", [40575]], [[12230, 12230], "mapped", [40613]], [[12231, 12231], "mapped", [40635]], [[12232, 12232], "mapped", [40643]], [[12233, 12233], "mapped", [40653]], [[12234, 12234], "mapped", [40657]], [[12235, 12235], "mapped", [40697]], [[12236, 12236], "mapped", [40701]], [[12237, 12237], "mapped", [40718]], [[12238, 12238], "mapped", [40723]], [[12239, 12239], "mapped", [40736]], [[12240, 12240], "mapped", [40763]], [[12241, 12241], "mapped", [40778]], [[12242, 12242], "mapped", [40786]], [[12243, 12243], "mapped", [40845]], [[12244, 12244], "mapped", [40860]], [[12245, 12245], "mapped", [40864]], [[12246, 12271], "disallowed"], [[12272, 12283], "disallowed"], [[12284, 12287], "disallowed"], [[12288, 12288], "disallowed_STD3_mapped", [32]], [[12289, 12289], "valid", [], "NV8"], [[12290, 12290], "mapped", [46]], [[12291, 12292], "valid", [], "NV8"], [[12293, 12295], "valid"], [[12296, 12329], "valid", [], "NV8"], [[12330, 12333], "valid"], [[12334, 12341], "valid", [], "NV8"], [[12342, 12342], "mapped", [12306]], [[12343, 12343], "valid", [], "NV8"], [[12344, 12344], "mapped", [21313]], [[12345, 12345], "mapped", [21316]], [[12346, 12346], "mapped", [21317]], [[12347, 12347], "valid", [], "NV8"], [[12348, 12348], "valid"], [[12349, 12349], "valid", [], "NV8"], [[12350, 12350], "valid", [], "NV8"], [[12351, 12351], "valid", [], "NV8"], [[12352, 12352], "disallowed"], [[12353, 12436], "valid"], [[12437, 12438], "valid"], [[12439, 12440], "disallowed"], [[12441, 12442], "valid"], [[12443, 12443], "disallowed_STD3_mapped", [32, 12441]], [[12444, 12444], "disallowed_STD3_mapped", [32, 12442]], [[12445, 12446], "valid"], [[12447, 12447], "mapped", [12424, 12426]], [[12448, 12448], "valid", [], "NV8"], [[12449, 12542], "valid"], [[12543, 12543], "mapped", [12467, 12488]], [[12544, 12548], "disallowed"], [[12549, 12588], "valid"], [[12589, 12589], "valid"], [[12590, 12592], "disallowed"], [[12593, 12593], "mapped", [4352]], [[12594, 12594], "mapped", [4353]], [[12595, 12595], "mapped", [4522]], [[12596, 12596], "mapped", [4354]], [[12597, 12597], "mapped", [4524]], [[12598, 12598], "mapped", [4525]], [[12599, 12599], "mapped", [4355]], [[12600, 12600], "mapped", [4356]], [[12601, 12601], "mapped", [4357]], [[12602, 12602], "mapped", [4528]], [[12603, 12603], "mapped", [4529]], [[12604, 12604], "mapped", [4530]], [[12605, 12605], "mapped", [4531]], [[12606, 12606], "mapped", [4532]], [[12607, 12607], "mapped", [4533]], [[12608, 12608], "mapped", [4378]], [[12609, 12609], "mapped", [4358]], [[12610, 12610], "mapped", [4359]], [[12611, 12611], "mapped", [4360]], [[12612, 12612], "mapped", [4385]], [[12613, 12613], "mapped", [4361]], [[12614, 12614], "mapped", [4362]], [[12615, 12615], "mapped", [4363]], [[12616, 12616], "mapped", [4364]], [[12617, 12617], "mapped", [4365]], [[12618, 12618], "mapped", [4366]], [[12619, 12619], "mapped", [4367]], [[12620, 12620], "mapped", [4368]], [[12621, 12621], "mapped", [4369]], [[12622, 12622], "mapped", [4370]], [[12623, 12623], "mapped", [4449]], [[12624, 12624], "mapped", [4450]], [[12625, 12625], "mapped", [4451]], [[12626, 12626], "mapped", [4452]], [[12627, 12627], "mapped", [4453]], [[12628, 12628], "mapped", [4454]], [[12629, 12629], "mapped", [4455]], [[12630, 12630], "mapped", [4456]], [[12631, 12631], "mapped", [4457]], [[12632, 12632], "mapped", [4458]], [[12633, 12633], "mapped", [4459]], [[12634, 12634], "mapped", [4460]], [[12635, 12635], "mapped", [4461]], [[12636, 12636], "mapped", [4462]], [[12637, 12637], "mapped", [4463]], [[12638, 12638], "mapped", [4464]], [[12639, 12639], "mapped", [4465]], [[12640, 12640], "mapped", [4466]], [[12641, 12641], "mapped", [4467]], [[12642, 12642], "mapped", [4468]], [[12643, 12643], "mapped", [4469]], [[12644, 12644], "disallowed"], [[12645, 12645], "mapped", [4372]], [[12646, 12646], "mapped", [4373]], [[12647, 12647], "mapped", [4551]], [[12648, 12648], "mapped", [4552]], [[12649, 12649], "mapped", [4556]], [[12650, 12650], "mapped", [4558]], [[12651, 12651], "mapped", [4563]], [[12652, 12652], "mapped", [4567]], [[12653, 12653], "mapped", [4569]], [[12654, 12654], "mapped", [4380]], [[12655, 12655], "mapped", [4573]], [[12656, 12656], "mapped", [4575]], [[12657, 12657], "mapped", [4381]], [[12658, 12658], "mapped", [4382]], [[12659, 12659], "mapped", [4384]], [[12660, 12660], "mapped", [4386]], [[12661, 12661], "mapped", [4387]], [[12662, 12662], "mapped", [4391]], [[12663, 12663], "mapped", [4393]], [[12664, 12664], "mapped", [4395]], [[12665, 12665], "mapped", [4396]], [[12666, 12666], "mapped", [4397]], [[12667, 12667], "mapped", [4398]], [[12668, 12668], "mapped", [4399]], [[12669, 12669], "mapped", [4402]], [[12670, 12670], "mapped", [4406]], [[12671, 12671], "mapped", [4416]], [[12672, 12672], "mapped", [4423]], [[12673, 12673], "mapped", [4428]], [[12674, 12674], "mapped", [4593]], [[12675, 12675], "mapped", [4594]], [[12676, 12676], "mapped", [4439]], [[12677, 12677], "mapped", [4440]], [[12678, 12678], "mapped", [4441]], [[12679, 12679], "mapped", [4484]], [[12680, 12680], "mapped", [4485]], [[12681, 12681], "mapped", [4488]], [[12682, 12682], "mapped", [4497]], [[12683, 12683], "mapped", [4498]], [[12684, 12684], "mapped", [4500]], [[12685, 12685], "mapped", [4510]], [[12686, 12686], "mapped", [4513]], [[12687, 12687], "disallowed"], [[12688, 12689], "valid", [], "NV8"], [[12690, 12690], "mapped", [19968]], [[12691, 12691], "mapped", [20108]], [[12692, 12692], "mapped", [19977]], [[12693, 12693], "mapped", [22235]], [[12694, 12694], "mapped", [19978]], [[12695, 12695], "mapped", [20013]], [[12696, 12696], "mapped", [19979]], [[12697, 12697], "mapped", [30002]], [[12698, 12698], "mapped", [20057]], [[12699, 12699], "mapped", [19993]], [[12700, 12700], "mapped", [19969]], [[12701, 12701], "mapped", [22825]], [[12702, 12702], "mapped", [22320]], [[12703, 12703], "mapped", [20154]], [[12704, 12727], "valid"], [[12728, 12730], "valid"], [[12731, 12735], "disallowed"], [[12736, 12751], "valid", [], "NV8"], [[12752, 12771], "valid", [], "NV8"], [[12772, 12783], "disallowed"], [[12784, 12799], "valid"], [[12800, 12800], "disallowed_STD3_mapped", [40, 4352, 41]], [[12801, 12801], "disallowed_STD3_mapped", [40, 4354, 41]], [[12802, 12802], "disallowed_STD3_mapped", [40, 4355, 41]], [[12803, 12803], "disallowed_STD3_mapped", [40, 4357, 41]], [[12804, 12804], "disallowed_STD3_mapped", [40, 4358, 41]], [[12805, 12805], "disallowed_STD3_mapped", [40, 4359, 41]], [[12806, 12806], "disallowed_STD3_mapped", [40, 4361, 41]], [[12807, 12807], "disallowed_STD3_mapped", [40, 4363, 41]], [[12808, 12808], "disallowed_STD3_mapped", [40, 4364, 41]], [[12809, 12809], "disallowed_STD3_mapped", [40, 4366, 41]], [[12810, 12810], "disallowed_STD3_mapped", [40, 4367, 41]], [[12811, 12811], "disallowed_STD3_mapped", [40, 4368, 41]], [[12812, 12812], "disallowed_STD3_mapped", [40, 4369, 41]], [[12813, 12813], "disallowed_STD3_mapped", [40, 4370, 41]], [[12814, 12814], "disallowed_STD3_mapped", [40, 44032, 41]], [[12815, 12815], "disallowed_STD3_mapped", [40, 45208, 41]], [[12816, 12816], "disallowed_STD3_mapped", [40, 45796, 41]], [[12817, 12817], "disallowed_STD3_mapped", [40, 46972, 41]], [[12818, 12818], "disallowed_STD3_mapped", [40, 47560, 41]], [[12819, 12819], "disallowed_STD3_mapped", [40, 48148, 41]], [[12820, 12820], "disallowed_STD3_mapped", [40, 49324, 41]], [[12821, 12821], "disallowed_STD3_mapped", [40, 50500, 41]], [[12822, 12822], "disallowed_STD3_mapped", [40, 51088, 41]], [[12823, 12823], "disallowed_STD3_mapped", [40, 52264, 41]], [[12824, 12824], "disallowed_STD3_mapped", [40, 52852, 41]], [[12825, 12825], "disallowed_STD3_mapped", [40, 53440, 41]], [[12826, 12826], "disallowed_STD3_mapped", [40, 54028, 41]], [[12827, 12827], "disallowed_STD3_mapped", [40, 54616, 41]], [[12828, 12828], "disallowed_STD3_mapped", [40, 51452, 41]], [[12829, 12829], "disallowed_STD3_mapped", [40, 50724, 51204, 41]], [[12830, 12830], "disallowed_STD3_mapped", [40, 50724, 54980, 41]], [[12831, 12831], "disallowed"], [[12832, 12832], "disallowed_STD3_mapped", [40, 19968, 41]], [[12833, 12833], "disallowed_STD3_mapped", [40, 20108, 41]], [[12834, 12834], "disallowed_STD3_mapped", [40, 19977, 41]], [[12835, 12835], "disallowed_STD3_mapped", [40, 22235, 41]], [[12836, 12836], "disallowed_STD3_mapped", [40, 20116, 41]], [[12837, 12837], "disallowed_STD3_mapped", [40, 20845, 41]], [[12838, 12838], "disallowed_STD3_mapped", [40, 19971, 41]], [[12839, 12839], "disallowed_STD3_mapped", [40, 20843, 41]], [[12840, 12840], "disallowed_STD3_mapped", [40, 20061, 41]], [[12841, 12841], "disallowed_STD3_mapped", [40, 21313, 41]], [[12842, 12842], "disallowed_STD3_mapped", [40, 26376, 41]], [[12843, 12843], "disallowed_STD3_mapped", [40, 28779, 41]], [[12844, 12844], "disallowed_STD3_mapped", [40, 27700, 41]], [[12845, 12845], "disallowed_STD3_mapped", [40, 26408, 41]], [[12846, 12846], "disallowed_STD3_mapped", [40, 37329, 41]], [[12847, 12847], "disallowed_STD3_mapped", [40, 22303, 41]], [[12848, 12848], "disallowed_STD3_mapped", [40, 26085, 41]], [[12849, 12849], "disallowed_STD3_mapped", [40, 26666, 41]], [[12850, 12850], "disallowed_STD3_mapped", [40, 26377, 41]], [[12851, 12851], "disallowed_STD3_mapped", [40, 31038, 41]], [[12852, 12852], "disallowed_STD3_mapped", [40, 21517, 41]], [[12853, 12853], "disallowed_STD3_mapped", [40, 29305, 41]], [[12854, 12854], "disallowed_STD3_mapped", [40, 36001, 41]], [[12855, 12855], "disallowed_STD3_mapped", [40, 31069, 41]], [[12856, 12856], "disallowed_STD3_mapped", [40, 21172, 41]], [[12857, 12857], "disallowed_STD3_mapped", [40, 20195, 41]], [[12858, 12858], "disallowed_STD3_mapped", [40, 21628, 41]], [[12859, 12859], "disallowed_STD3_mapped", [40, 23398, 41]], [[12860, 12860], "disallowed_STD3_mapped", [40, 30435, 41]], [[12861, 12861], "disallowed_STD3_mapped", [40, 20225, 41]], [[12862, 12862], "disallowed_STD3_mapped", [40, 36039, 41]], [[12863, 12863], "disallowed_STD3_mapped", [40, 21332, 41]], [[12864, 12864], "disallowed_STD3_mapped", [40, 31085, 41]], [[12865, 12865], "disallowed_STD3_mapped", [40, 20241, 41]], [[12866, 12866], "disallowed_STD3_mapped", [40, 33258, 41]], [[12867, 12867], "disallowed_STD3_mapped", [40, 33267, 41]], [[12868, 12868], "mapped", [21839]], [[12869, 12869], "mapped", [24188]], [[12870, 12870], "mapped", [25991]], [[12871, 12871], "mapped", [31631]], [[12872, 12879], "valid", [], "NV8"], [[12880, 12880], "mapped", [112, 116, 101]], [[12881, 12881], "mapped", [50, 49]], [[12882, 12882], "mapped", [50, 50]], [[12883, 12883], "mapped", [50, 51]], [[12884, 12884], "mapped", [50, 52]], [[12885, 12885], "mapped", [50, 53]], [[12886, 12886], "mapped", [50, 54]], [[12887, 12887], "mapped", [50, 55]], [[12888, 12888], "mapped", [50, 56]], [[12889, 12889], "mapped", [50, 57]], [[12890, 12890], "mapped", [51, 48]], [[12891, 12891], "mapped", [51, 49]], [[12892, 12892], "mapped", [51, 50]], [[12893, 12893], "mapped", [51, 51]], [[12894, 12894], "mapped", [51, 52]], [[12895, 12895], "mapped", [51, 53]], [[12896, 12896], "mapped", [4352]], [[12897, 12897], "mapped", [4354]], [[12898, 12898], "mapped", [4355]], [[12899, 12899], "mapped", [4357]], [[12900, 12900], "mapped", [4358]], [[12901, 12901], "mapped", [4359]], [[12902, 12902], "mapped", [4361]], [[12903, 12903], "mapped", [4363]], [[12904, 12904], "mapped", [4364]], [[12905, 12905], "mapped", [4366]], [[12906, 12906], "mapped", [4367]], [[12907, 12907], "mapped", [4368]], [[12908, 12908], "mapped", [4369]], [[12909, 12909], "mapped", [4370]], [[12910, 12910], "mapped", [44032]], [[12911, 12911], "mapped", [45208]], [[12912, 12912], "mapped", [45796]], [[12913, 12913], "mapped", [46972]], [[12914, 12914], "mapped", [47560]], [[12915, 12915], "mapped", [48148]], [[12916, 12916], "mapped", [49324]], [[12917, 12917], "mapped", [50500]], [[12918, 12918], "mapped", [51088]], [[12919, 12919], "mapped", [52264]], [[12920, 12920], "mapped", [52852]], [[12921, 12921], "mapped", [53440]], [[12922, 12922], "mapped", [54028]], [[12923, 12923], "mapped", [54616]], [[12924, 12924], "mapped", [52280, 44256]], [[12925, 12925], "mapped", [51452, 51032]], [[12926, 12926], "mapped", [50864]], [[12927, 12927], "valid", [], "NV8"], [[12928, 12928], "mapped", [19968]], [[12929, 12929], "mapped", [20108]], [[12930, 12930], "mapped", [19977]], [[12931, 12931], "mapped", [22235]], [[12932, 12932], "mapped", [20116]], [[12933, 12933], "mapped", [20845]], [[12934, 12934], "mapped", [19971]], [[12935, 12935], "mapped", [20843]], [[12936, 12936], "mapped", [20061]], [[12937, 12937], "mapped", [21313]], [[12938, 12938], "mapped", [26376]], [[12939, 12939], "mapped", [28779]], [[12940, 12940], "mapped", [27700]], [[12941, 12941], "mapped", [26408]], [[12942, 12942], "mapped", [37329]], [[12943, 12943], "mapped", [22303]], [[12944, 12944], "mapped", [26085]], [[12945, 12945], "mapped", [26666]], [[12946, 12946], "mapped", [26377]], [[12947, 12947], "mapped", [31038]], [[12948, 12948], "mapped", [21517]], [[12949, 12949], "mapped", [29305]], [[12950, 12950], "mapped", [36001]], [[12951, 12951], "mapped", [31069]], [[12952, 12952], "mapped", [21172]], [[12953, 12953], "mapped", [31192]], [[12954, 12954], "mapped", [30007]], [[12955, 12955], "mapped", [22899]], [[12956, 12956], "mapped", [36969]], [[12957, 12957], "mapped", [20778]], [[12958, 12958], "mapped", [21360]], [[12959, 12959], "mapped", [27880]], [[12960, 12960], "mapped", [38917]], [[12961, 12961], "mapped", [20241]], [[12962, 12962], "mapped", [20889]], [[12963, 12963], "mapped", [27491]], [[12964, 12964], "mapped", [19978]], [[12965, 12965], "mapped", [20013]], [[12966, 12966], "mapped", [19979]], [[12967, 12967], "mapped", [24038]], [[12968, 12968], "mapped", [21491]], [[12969, 12969], "mapped", [21307]], [[12970, 12970], "mapped", [23447]], [[12971, 12971], "mapped", [23398]], [[12972, 12972], "mapped", [30435]], [[12973, 12973], "mapped", [20225]], [[12974, 12974], "mapped", [36039]], [[12975, 12975], "mapped", [21332]], [[12976, 12976], "mapped", [22812]], [[12977, 12977], "mapped", [51, 54]], [[12978, 12978], "mapped", [51, 55]], [[12979, 12979], "mapped", [51, 56]], [[12980, 12980], "mapped", [51, 57]], [[12981, 12981], "mapped", [52, 48]], [[12982, 12982], "mapped", [52, 49]], [[12983, 12983], "mapped", [52, 50]], [[12984, 12984], "mapped", [52, 51]], [[12985, 12985], "mapped", [52, 52]], [[12986, 12986], "mapped", [52, 53]], [[12987, 12987], "mapped", [52, 54]], [[12988, 12988], "mapped", [52, 55]], [[12989, 12989], "mapped", [52, 56]], [[12990, 12990], "mapped", [52, 57]], [[12991, 12991], "mapped", [53, 48]], [[12992, 12992], "mapped", [49, 26376]], [[12993, 12993], "mapped", [50, 26376]], [[12994, 12994], "mapped", [51, 26376]], [[12995, 12995], "mapped", [52, 26376]], [[12996, 12996], "mapped", [53, 26376]], [[12997, 12997], "mapped", [54, 26376]], [[12998, 12998], "mapped", [55, 26376]], [[12999, 12999], "mapped", [56, 26376]], [[13e3, 13e3], "mapped", [57, 26376]], [[13001, 13001], "mapped", [49, 48, 26376]], [[13002, 13002], "mapped", [49, 49, 26376]], [[13003, 13003], "mapped", [49, 50, 26376]], [[13004, 13004], "mapped", [104, 103]], [[13005, 13005], "mapped", [101, 114, 103]], [[13006, 13006], "mapped", [101, 118]], [[13007, 13007], "mapped", [108, 116, 100]], [[13008, 13008], "mapped", [12450]], [[13009, 13009], "mapped", [12452]], [[13010, 13010], "mapped", [12454]], [[13011, 13011], "mapped", [12456]], [[13012, 13012], "mapped", [12458]], [[13013, 13013], "mapped", [12459]], [[13014, 13014], "mapped", [12461]], [[13015, 13015], "mapped", [12463]], [[13016, 13016], "mapped", [12465]], [[13017, 13017], "mapped", [12467]], [[13018, 13018], "mapped", [12469]], [[13019, 13019], "mapped", [12471]], [[13020, 13020], "mapped", [12473]], [[13021, 13021], "mapped", [12475]], [[13022, 13022], "mapped", [12477]], [[13023, 13023], "mapped", [12479]], [[13024, 13024], "mapped", [12481]], [[13025, 13025], "mapped", [12484]], [[13026, 13026], "mapped", [12486]], [[13027, 13027], "mapped", [12488]], [[13028, 13028], "mapped", [12490]], [[13029, 13029], "mapped", [12491]], [[13030, 13030], "mapped", [12492]], [[13031, 13031], "mapped", [12493]], [[13032, 13032], "mapped", [12494]], [[13033, 13033], "mapped", [12495]], [[13034, 13034], "mapped", [12498]], [[13035, 13035], "mapped", [12501]], [[13036, 13036], "mapped", [12504]], [[13037, 13037], "mapped", [12507]], [[13038, 13038], "mapped", [12510]], [[13039, 13039], "mapped", [12511]], [[13040, 13040], "mapped", [12512]], [[13041, 13041], "mapped", [12513]], [[13042, 13042], "mapped", [12514]], [[13043, 13043], "mapped", [12516]], [[13044, 13044], "mapped", [12518]], [[13045, 13045], "mapped", [12520]], [[13046, 13046], "mapped", [12521]], [[13047, 13047], "mapped", [12522]], [[13048, 13048], "mapped", [12523]], [[13049, 13049], "mapped", [12524]], [[13050, 13050], "mapped", [12525]], [[13051, 13051], "mapped", [12527]], [[13052, 13052], "mapped", [12528]], [[13053, 13053], "mapped", [12529]], [[13054, 13054], "mapped", [12530]], [[13055, 13055], "disallowed"], [[13056, 13056], "mapped", [12450, 12497, 12540, 12488]], [[13057, 13057], "mapped", [12450, 12523, 12501, 12449]], [[13058, 13058], "mapped", [12450, 12531, 12506, 12450]], [[13059, 13059], "mapped", [12450, 12540, 12523]], [[13060, 13060], "mapped", [12452, 12491, 12531, 12464]], [[13061, 13061], "mapped", [12452, 12531, 12481]], [[13062, 13062], "mapped", [12454, 12457, 12531]], [[13063, 13063], "mapped", [12456, 12473, 12463, 12540, 12489]], [[13064, 13064], "mapped", [12456, 12540, 12459, 12540]], [[13065, 13065], "mapped", [12458, 12531, 12473]], [[13066, 13066], "mapped", [12458, 12540, 12512]], [[13067, 13067], "mapped", [12459, 12452, 12522]], [[13068, 13068], "mapped", [12459, 12521, 12483, 12488]], [[13069, 13069], "mapped", [12459, 12525, 12522, 12540]], [[13070, 13070], "mapped", [12460, 12525, 12531]], [[13071, 13071], "mapped", [12460, 12531, 12510]], [[13072, 13072], "mapped", [12462, 12460]], [[13073, 13073], "mapped", [12462, 12491, 12540]], [[13074, 13074], "mapped", [12461, 12517, 12522, 12540]], [[13075, 13075], "mapped", [12462, 12523, 12480, 12540]], [[13076, 13076], "mapped", [12461, 12525]], [[13077, 13077], "mapped", [12461, 12525, 12464, 12521, 12512]], [[13078, 13078], "mapped", [12461, 12525, 12513, 12540, 12488, 12523]], [[13079, 13079], "mapped", [12461, 12525, 12527, 12483, 12488]], [[13080, 13080], "mapped", [12464, 12521, 12512]], [[13081, 13081], "mapped", [12464, 12521, 12512, 12488, 12531]], [[13082, 13082], "mapped", [12463, 12523, 12476, 12452, 12525]], [[13083, 13083], "mapped", [12463, 12525, 12540, 12493]], [[13084, 13084], "mapped", [12465, 12540, 12473]], [[13085, 13085], "mapped", [12467, 12523, 12490]], [[13086, 13086], "mapped", [12467, 12540, 12509]], [[13087, 13087], "mapped", [12469, 12452, 12463, 12523]], [[13088, 13088], "mapped", [12469, 12531, 12481, 12540, 12512]], [[13089, 13089], "mapped", [12471, 12522, 12531, 12464]], [[13090, 13090], "mapped", [12475, 12531, 12481]], [[13091, 13091], "mapped", [12475, 12531, 12488]], [[13092, 13092], "mapped", [12480, 12540, 12473]], [[13093, 13093], "mapped", [12487, 12471]], [[13094, 13094], "mapped", [12489, 12523]], [[13095, 13095], "mapped", [12488, 12531]], [[13096, 13096], "mapped", [12490, 12494]], [[13097, 13097], "mapped", [12494, 12483, 12488]], [[13098, 13098], "mapped", [12495, 12452, 12484]], [[13099, 13099], "mapped", [12497, 12540, 12475, 12531, 12488]], [[13100, 13100], "mapped", [12497, 12540, 12484]], [[13101, 13101], "mapped", [12496, 12540, 12524, 12523]], [[13102, 13102], "mapped", [12500, 12450, 12473, 12488, 12523]], [[13103, 13103], "mapped", [12500, 12463, 12523]], [[13104, 13104], "mapped", [12500, 12467]], [[13105, 13105], "mapped", [12499, 12523]], [[13106, 13106], "mapped", [12501, 12449, 12521, 12483, 12489]], [[13107, 13107], "mapped", [12501, 12451, 12540, 12488]], [[13108, 13108], "mapped", [12502, 12483, 12471, 12455, 12523]], [[13109, 13109], "mapped", [12501, 12521, 12531]], [[13110, 13110], "mapped", [12504, 12463, 12479, 12540, 12523]], [[13111, 13111], "mapped", [12506, 12477]], [[13112, 13112], "mapped", [12506, 12491, 12498]], [[13113, 13113], "mapped", [12504, 12523, 12484]], [[13114, 13114], "mapped", [12506, 12531, 12473]], [[13115, 13115], "mapped", [12506, 12540, 12472]], [[13116, 13116], "mapped", [12505, 12540, 12479]], [[13117, 13117], "mapped", [12509, 12452, 12531, 12488]], [[13118, 13118], "mapped", [12508, 12523, 12488]], [[13119, 13119], "mapped", [12507, 12531]], [[13120, 13120], "mapped", [12509, 12531, 12489]], [[13121, 13121], "mapped", [12507, 12540, 12523]], [[13122, 13122], "mapped", [12507, 12540, 12531]], [[13123, 13123], "mapped", [12510, 12452, 12463, 12525]], [[13124, 13124], "mapped", [12510, 12452, 12523]], [[13125, 13125], "mapped", [12510, 12483, 12495]], [[13126, 13126], "mapped", [12510, 12523, 12463]], [[13127, 13127], "mapped", [12510, 12531, 12471, 12519, 12531]], [[13128, 13128], "mapped", [12511, 12463, 12525, 12531]], [[13129, 13129], "mapped", [12511, 12522]], [[13130, 13130], "mapped", [12511, 12522, 12496, 12540, 12523]], [[13131, 13131], "mapped", [12513, 12460]], [[13132, 13132], "mapped", [12513, 12460, 12488, 12531]], [[13133, 13133], "mapped", [12513, 12540, 12488, 12523]], [[13134, 13134], "mapped", [12516, 12540, 12489]], [[13135, 13135], "mapped", [12516, 12540, 12523]], [[13136, 13136], "mapped", [12518, 12450, 12531]], [[13137, 13137], "mapped", [12522, 12483, 12488, 12523]], [[13138, 13138], "mapped", [12522, 12521]], [[13139, 13139], "mapped", [12523, 12500, 12540]], [[13140, 13140], "mapped", [12523, 12540, 12502, 12523]], [[13141, 13141], "mapped", [12524, 12512]], [[13142, 13142], "mapped", [12524, 12531, 12488, 12466, 12531]], [[13143, 13143], "mapped", [12527, 12483, 12488]], [[13144, 13144], "mapped", [48, 28857]], [[13145, 13145], "mapped", [49, 28857]], [[13146, 13146], "mapped", [50, 28857]], [[13147, 13147], "mapped", [51, 28857]], [[13148, 13148], "mapped", [52, 28857]], [[13149, 13149], "mapped", [53, 28857]], [[13150, 13150], "mapped", [54, 28857]], [[13151, 13151], "mapped", [55, 28857]], [[13152, 13152], "mapped", [56, 28857]], [[13153, 13153], "mapped", [57, 28857]], [[13154, 13154], "mapped", [49, 48, 28857]], [[13155, 13155], "mapped", [49, 49, 28857]], [[13156, 13156], "mapped", [49, 50, 28857]], [[13157, 13157], "mapped", [49, 51, 28857]], [[13158, 13158], "mapped", [49, 52, 28857]], [[13159, 13159], "mapped", [49, 53, 28857]], [[13160, 13160], "mapped", [49, 54, 28857]], [[13161, 13161], "mapped", [49, 55, 28857]], [[13162, 13162], "mapped", [49, 56, 28857]], [[13163, 13163], "mapped", [49, 57, 28857]], [[13164, 13164], "mapped", [50, 48, 28857]], [[13165, 13165], "mapped", [50, 49, 28857]], [[13166, 13166], "mapped", [50, 50, 28857]], [[13167, 13167], "mapped", [50, 51, 28857]], [[13168, 13168], "mapped", [50, 52, 28857]], [[13169, 13169], "mapped", [104, 112, 97]], [[13170, 13170], "mapped", [100, 97]], [[13171, 13171], "mapped", [97, 117]], [[13172, 13172], "mapped", [98, 97, 114]], [[13173, 13173], "mapped", [111, 118]], [[13174, 13174], "mapped", [112, 99]], [[13175, 13175], "mapped", [100, 109]], [[13176, 13176], "mapped", [100, 109, 50]], [[13177, 13177], "mapped", [100, 109, 51]], [[13178, 13178], "mapped", [105, 117]], [[13179, 13179], "mapped", [24179, 25104]], [[13180, 13180], "mapped", [26157, 21644]], [[13181, 13181], "mapped", [22823, 27491]], [[13182, 13182], "mapped", [26126, 27835]], [[13183, 13183], "mapped", [26666, 24335, 20250, 31038]], [[13184, 13184], "mapped", [112, 97]], [[13185, 13185], "mapped", [110, 97]], [[13186, 13186], "mapped", [956, 97]], [[13187, 13187], "mapped", [109, 97]], [[13188, 13188], "mapped", [107, 97]], [[13189, 13189], "mapped", [107, 98]], [[13190, 13190], "mapped", [109, 98]], [[13191, 13191], "mapped", [103, 98]], [[13192, 13192], "mapped", [99, 97, 108]], [[13193, 13193], "mapped", [107, 99, 97, 108]], [[13194, 13194], "mapped", [112, 102]], [[13195, 13195], "mapped", [110, 102]], [[13196, 13196], "mapped", [956, 102]], [[13197, 13197], "mapped", [956, 103]], [[13198, 13198], "mapped", [109, 103]], [[13199, 13199], "mapped", [107, 103]], [[13200, 13200], "mapped", [104, 122]], [[13201, 13201], "mapped", [107, 104, 122]], [[13202, 13202], "mapped", [109, 104, 122]], [[13203, 13203], "mapped", [103, 104, 122]], [[13204, 13204], "mapped", [116, 104, 122]], [[13205, 13205], "mapped", [956, 108]], [[13206, 13206], "mapped", [109, 108]], [[13207, 13207], "mapped", [100, 108]], [[13208, 13208], "mapped", [107, 108]], [[13209, 13209], "mapped", [102, 109]], [[13210, 13210], "mapped", [110, 109]], [[13211, 13211], "mapped", [956, 109]], [[13212, 13212], "mapped", [109, 109]], [[13213, 13213], "mapped", [99, 109]], [[13214, 13214], "mapped", [107, 109]], [[13215, 13215], "mapped", [109, 109, 50]], [[13216, 13216], "mapped", [99, 109, 50]], [[13217, 13217], "mapped", [109, 50]], [[13218, 13218], "mapped", [107, 109, 50]], [[13219, 13219], "mapped", [109, 109, 51]], [[13220, 13220], "mapped", [99, 109, 51]], [[13221, 13221], "mapped", [109, 51]], [[13222, 13222], "mapped", [107, 109, 51]], [[13223, 13223], "mapped", [109, 8725, 115]], [[13224, 13224], "mapped", [109, 8725, 115, 50]], [[13225, 13225], "mapped", [112, 97]], [[13226, 13226], "mapped", [107, 112, 97]], [[13227, 13227], "mapped", [109, 112, 97]], [[13228, 13228], "mapped", [103, 112, 97]], [[13229, 13229], "mapped", [114, 97, 100]], [[13230, 13230], "mapped", [114, 97, 100, 8725, 115]], [[13231, 13231], "mapped", [114, 97, 100, 8725, 115, 50]], [[13232, 13232], "mapped", [112, 115]], [[13233, 13233], "mapped", [110, 115]], [[13234, 13234], "mapped", [956, 115]], [[13235, 13235], "mapped", [109, 115]], [[13236, 13236], "mapped", [112, 118]], [[13237, 13237], "mapped", [110, 118]], [[13238, 13238], "mapped", [956, 118]], [[13239, 13239], "mapped", [109, 118]], [[13240, 13240], "mapped", [107, 118]], [[13241, 13241], "mapped", [109, 118]], [[13242, 13242], "mapped", [112, 119]], [[13243, 13243], "mapped", [110, 119]], [[13244, 13244], "mapped", [956, 119]], [[13245, 13245], "mapped", [109, 119]], [[13246, 13246], "mapped", [107, 119]], [[13247, 13247], "mapped", [109, 119]], [[13248, 13248], "mapped", [107, 969]], [[13249, 13249], "mapped", [109, 969]], [[13250, 13250], "disallowed"], [[13251, 13251], "mapped", [98, 113]], [[13252, 13252], "mapped", [99, 99]], [[13253, 13253], "mapped", [99, 100]], [[13254, 13254], "mapped", [99, 8725, 107, 103]], [[13255, 13255], "disallowed"], [[13256, 13256], "mapped", [100, 98]], [[13257, 13257], "mapped", [103, 121]], [[13258, 13258], "mapped", [104, 97]], [[13259, 13259], "mapped", [104, 112]], [[13260, 13260], "mapped", [105, 110]], [[13261, 13261], "mapped", [107, 107]], [[13262, 13262], "mapped", [107, 109]], [[13263, 13263], "mapped", [107, 116]], [[13264, 13264], "mapped", [108, 109]], [[13265, 13265], "mapped", [108, 110]], [[13266, 13266], "mapped", [108, 111, 103]], [[13267, 13267], "mapped", [108, 120]], [[13268, 13268], "mapped", [109, 98]], [[13269, 13269], "mapped", [109, 105, 108]], [[13270, 13270], "mapped", [109, 111, 108]], [[13271, 13271], "mapped", [112, 104]], [[13272, 13272], "disallowed"], [[13273, 13273], "mapped", [112, 112, 109]], [[13274, 13274], "mapped", [112, 114]], [[13275, 13275], "mapped", [115, 114]], [[13276, 13276], "mapped", [115, 118]], [[13277, 13277], "mapped", [119, 98]], [[13278, 13278], "mapped", [118, 8725, 109]], [[13279, 13279], "mapped", [97, 8725, 109]], [[13280, 13280], "mapped", [49, 26085]], [[13281, 13281], "mapped", [50, 26085]], [[13282, 13282], "mapped", [51, 26085]], [[13283, 13283], "mapped", [52, 26085]], [[13284, 13284], "mapped", [53, 26085]], [[13285, 13285], "mapped", [54, 26085]], [[13286, 13286], "mapped", [55, 26085]], [[13287, 13287], "mapped", [56, 26085]], [[13288, 13288], "mapped", [57, 26085]], [[13289, 13289], "mapped", [49, 48, 26085]], [[13290, 13290], "mapped", [49, 49, 26085]], [[13291, 13291], "mapped", [49, 50, 26085]], [[13292, 13292], "mapped", [49, 51, 26085]], [[13293, 13293], "mapped", [49, 52, 26085]], [[13294, 13294], "mapped", [49, 53, 26085]], [[13295, 13295], "mapped", [49, 54, 26085]], [[13296, 13296], "mapped", [49, 55, 26085]], [[13297, 13297], "mapped", [49, 56, 26085]], [[13298, 13298], "mapped", [49, 57, 26085]], [[13299, 13299], "mapped", [50, 48, 26085]], [[13300, 13300], "mapped", [50, 49, 26085]], [[13301, 13301], "mapped", [50, 50, 26085]], [[13302, 13302], "mapped", [50, 51, 26085]], [[13303, 13303], "mapped", [50, 52, 26085]], [[13304, 13304], "mapped", [50, 53, 26085]], [[13305, 13305], "mapped", [50, 54, 26085]], [[13306, 13306], "mapped", [50, 55, 26085]], [[13307, 13307], "mapped", [50, 56, 26085]], [[13308, 13308], "mapped", [50, 57, 26085]], [[13309, 13309], "mapped", [51, 48, 26085]], [[13310, 13310], "mapped", [51, 49, 26085]], [[13311, 13311], "mapped", [103, 97, 108]], [[13312, 19893], "valid"], [[19894, 19903], "disallowed"], [[19904, 19967], "valid", [], "NV8"], [[19968, 40869], "valid"], [[40870, 40891], "valid"], [[40892, 40899], "valid"], [[40900, 40907], "valid"], [[40908, 40908], "valid"], [[40909, 40917], "valid"], [[40918, 40959], "disallowed"], [[40960, 42124], "valid"], [[42125, 42127], "disallowed"], [[42128, 42145], "valid", [], "NV8"], [[42146, 42147], "valid", [], "NV8"], [[42148, 42163], "valid", [], "NV8"], [[42164, 42164], "valid", [], "NV8"], [[42165, 42176], "valid", [], "NV8"], [[42177, 42177], "valid", [], "NV8"], [[42178, 42180], "valid", [], "NV8"], [[42181, 42181], "valid", [], "NV8"], [[42182, 42182], "valid", [], "NV8"], [[42183, 42191], "disallowed"], [[42192, 42237], "valid"], [[42238, 42239], "valid", [], "NV8"], [[42240, 42508], "valid"], [[42509, 42511], "valid", [], "NV8"], [[42512, 42539], "valid"], [[42540, 42559], "disallowed"], [[42560, 42560], "mapped", [42561]], [[42561, 42561], "valid"], [[42562, 42562], "mapped", [42563]], [[42563, 42563], "valid"], [[42564, 42564], "mapped", [42565]], [[42565, 42565], "valid"], [[42566, 42566], "mapped", [42567]], [[42567, 42567], "valid"], [[42568, 42568], "mapped", [42569]], [[42569, 42569], "valid"], [[42570, 42570], "mapped", [42571]], [[42571, 42571], "valid"], [[42572, 42572], "mapped", [42573]], [[42573, 42573], "valid"], [[42574, 42574], "mapped", [42575]], [[42575, 42575], "valid"], [[42576, 42576], "mapped", [42577]], [[42577, 42577], "valid"], [[42578, 42578], "mapped", [42579]], [[42579, 42579], "valid"], [[42580, 42580], "mapped", [42581]], [[42581, 42581], "valid"], [[42582, 42582], "mapped", [42583]], [[42583, 42583], "valid"], [[42584, 42584], "mapped", [42585]], [[42585, 42585], "valid"], [[42586, 42586], "mapped", [42587]], [[42587, 42587], "valid"], [[42588, 42588], "mapped", [42589]], [[42589, 42589], "valid"], [[42590, 42590], "mapped", [42591]], [[42591, 42591], "valid"], [[42592, 42592], "mapped", [42593]], [[42593, 42593], "valid"], [[42594, 42594], "mapped", [42595]], [[42595, 42595], "valid"], [[42596, 42596], "mapped", [42597]], [[42597, 42597], "valid"], [[42598, 42598], "mapped", [42599]], [[42599, 42599], "valid"], [[42600, 42600], "mapped", [42601]], [[42601, 42601], "valid"], [[42602, 42602], "mapped", [42603]], [[42603, 42603], "valid"], [[42604, 42604], "mapped", [42605]], [[42605, 42607], "valid"], [[42608, 42611], "valid", [], "NV8"], [[42612, 42619], "valid"], [[42620, 42621], "valid"], [[42622, 42622], "valid", [], "NV8"], [[42623, 42623], "valid"], [[42624, 42624], "mapped", [42625]], [[42625, 42625], "valid"], [[42626, 42626], "mapped", [42627]], [[42627, 42627], "valid"], [[42628, 42628], "mapped", [42629]], [[42629, 42629], "valid"], [[42630, 42630], "mapped", [42631]], [[42631, 42631], "valid"], [[42632, 42632], "mapped", [42633]], [[42633, 42633], "valid"], [[42634, 42634], "mapped", [42635]], [[42635, 42635], "valid"], [[42636, 42636], "mapped", [42637]], [[42637, 42637], "valid"], [[42638, 42638], "mapped", [42639]], [[42639, 42639], "valid"], [[42640, 42640], "mapped", [42641]], [[42641, 42641], "valid"], [[42642, 42642], "mapped", [42643]], [[42643, 42643], "valid"], [[42644, 42644], "mapped", [42645]], [[42645, 42645], "valid"], [[42646, 42646], "mapped", [42647]], [[42647, 42647], "valid"], [[42648, 42648], "mapped", [42649]], [[42649, 42649], "valid"], [[42650, 42650], "mapped", [42651]], [[42651, 42651], "valid"], [[42652, 42652], "mapped", [1098]], [[42653, 42653], "mapped", [1100]], [[42654, 42654], "valid"], [[42655, 42655], "valid"], [[42656, 42725], "valid"], [[42726, 42735], "valid", [], "NV8"], [[42736, 42737], "valid"], [[42738, 42743], "valid", [], "NV8"], [[42744, 42751], "disallowed"], [[42752, 42774], "valid", [], "NV8"], [[42775, 42778], "valid"], [[42779, 42783], "valid"], [[42784, 42785], "valid", [], "NV8"], [[42786, 42786], "mapped", [42787]], [[42787, 42787], "valid"], [[42788, 42788], "mapped", [42789]], [[42789, 42789], "valid"], [[42790, 42790], "mapped", [42791]], [[42791, 42791], "valid"], [[42792, 42792], "mapped", [42793]], [[42793, 42793], "valid"], [[42794, 42794], "mapped", [42795]], [[42795, 42795], "valid"], [[42796, 42796], "mapped", [42797]], [[42797, 42797], "valid"], [[42798, 42798], "mapped", [42799]], [[42799, 42801], "valid"], [[42802, 42802], "mapped", [42803]], [[42803, 42803], "valid"], [[42804, 42804], "mapped", [42805]], [[42805, 42805], "valid"], [[42806, 42806], "mapped", [42807]], [[42807, 42807], "valid"], [[42808, 42808], "mapped", [42809]], [[42809, 42809], "valid"], [[42810, 42810], "mapped", [42811]], [[42811, 42811], "valid"], [[42812, 42812], "mapped", [42813]], [[42813, 42813], "valid"], [[42814, 42814], "mapped", [42815]], [[42815, 42815], "valid"], [[42816, 42816], "mapped", [42817]], [[42817, 42817], "valid"], [[42818, 42818], "mapped", [42819]], [[42819, 42819], "valid"], [[42820, 42820], "mapped", [42821]], [[42821, 42821], "valid"], [[42822, 42822], "mapped", [42823]], [[42823, 42823], "valid"], [[42824, 42824], "mapped", [42825]], [[42825, 42825], "valid"], [[42826, 42826], "mapped", [42827]], [[42827, 42827], "valid"], [[42828, 42828], "mapped", [42829]], [[42829, 42829], "valid"], [[42830, 42830], "mapped", [42831]], [[42831, 42831], "valid"], [[42832, 42832], "mapped", [42833]], [[42833, 42833], "valid"], [[42834, 42834], "mapped", [42835]], [[42835, 42835], "valid"], [[42836, 42836], "mapped", [42837]], [[42837, 42837], "valid"], [[42838, 42838], "mapped", [42839]], [[42839, 42839], "valid"], [[42840, 42840], "mapped", [42841]], [[42841, 42841], "valid"], [[42842, 42842], "mapped", [42843]], [[42843, 42843], "valid"], [[42844, 42844], "mapped", [42845]], [[42845, 42845], "valid"], [[42846, 42846], "mapped", [42847]], [[42847, 42847], "valid"], [[42848, 42848], "mapped", [42849]], [[42849, 42849], "valid"], [[42850, 42850], "mapped", [42851]], [[42851, 42851], "valid"], [[42852, 42852], "mapped", [42853]], [[42853, 42853], "valid"], [[42854, 42854], "mapped", [42855]], [[42855, 42855], "valid"], [[42856, 42856], "mapped", [42857]], [[42857, 42857], "valid"], [[42858, 42858], "mapped", [42859]], [[42859, 42859], "valid"], [[42860, 42860], "mapped", [42861]], [[42861, 42861], "valid"], [[42862, 42862], "mapped", [42863]], [[42863, 42863], "valid"], [[42864, 42864], "mapped", [42863]], [[42865, 42872], "valid"], [[42873, 42873], "mapped", [42874]], [[42874, 42874], "valid"], [[42875, 42875], "mapped", [42876]], [[42876, 42876], "valid"], [[42877, 42877], "mapped", [7545]], [[42878, 42878], "mapped", [42879]], [[42879, 42879], "valid"], [[42880, 42880], "mapped", [42881]], [[42881, 42881], "valid"], [[42882, 42882], "mapped", [42883]], [[42883, 42883], "valid"], [[42884, 42884], "mapped", [42885]], [[42885, 42885], "valid"], [[42886, 42886], "mapped", [42887]], [[42887, 42888], "valid"], [[42889, 42890], "valid", [], "NV8"], [[42891, 42891], "mapped", [42892]], [[42892, 42892], "valid"], [[42893, 42893], "mapped", [613]], [[42894, 42894], "valid"], [[42895, 42895], "valid"], [[42896, 42896], "mapped", [42897]], [[42897, 42897], "valid"], [[42898, 42898], "mapped", [42899]], [[42899, 42899], "valid"], [[42900, 42901], "valid"], [[42902, 42902], "mapped", [42903]], [[42903, 42903], "valid"], [[42904, 42904], "mapped", [42905]], [[42905, 42905], "valid"], [[42906, 42906], "mapped", [42907]], [[42907, 42907], "valid"], [[42908, 42908], "mapped", [42909]], [[42909, 42909], "valid"], [[42910, 42910], "mapped", [42911]], [[42911, 42911], "valid"], [[42912, 42912], "mapped", [42913]], [[42913, 42913], "valid"], [[42914, 42914], "mapped", [42915]], [[42915, 42915], "valid"], [[42916, 42916], "mapped", [42917]], [[42917, 42917], "valid"], [[42918, 42918], "mapped", [42919]], [[42919, 42919], "valid"], [[42920, 42920], "mapped", [42921]], [[42921, 42921], "valid"], [[42922, 42922], "mapped", [614]], [[42923, 42923], "mapped", [604]], [[42924, 42924], "mapped", [609]], [[42925, 42925], "mapped", [620]], [[42926, 42927], "disallowed"], [[42928, 42928], "mapped", [670]], [[42929, 42929], "mapped", [647]], [[42930, 42930], "mapped", [669]], [[42931, 42931], "mapped", [43859]], [[42932, 42932], "mapped", [42933]], [[42933, 42933], "valid"], [[42934, 42934], "mapped", [42935]], [[42935, 42935], "valid"], [[42936, 42998], "disallowed"], [[42999, 42999], "valid"], [[43e3, 43e3], "mapped", [295]], [[43001, 43001], "mapped", [339]], [[43002, 43002], "valid"], [[43003, 43007], "valid"], [[43008, 43047], "valid"], [[43048, 43051], "valid", [], "NV8"], [[43052, 43055], "disallowed"], [[43056, 43065], "valid", [], "NV8"], [[43066, 43071], "disallowed"], [[43072, 43123], "valid"], [[43124, 43127], "valid", [], "NV8"], [[43128, 43135], "disallowed"], [[43136, 43204], "valid"], [[43205, 43213], "disallowed"], [[43214, 43215], "valid", [], "NV8"], [[43216, 43225], "valid"], [[43226, 43231], "disallowed"], [[43232, 43255], "valid"], [[43256, 43258], "valid", [], "NV8"], [[43259, 43259], "valid"], [[43260, 43260], "valid", [], "NV8"], [[43261, 43261], "valid"], [[43262, 43263], "disallowed"], [[43264, 43309], "valid"], [[43310, 43311], "valid", [], "NV8"], [[43312, 43347], "valid"], [[43348, 43358], "disallowed"], [[43359, 43359], "valid", [], "NV8"], [[43360, 43388], "valid", [], "NV8"], [[43389, 43391], "disallowed"], [[43392, 43456], "valid"], [[43457, 43469], "valid", [], "NV8"], [[43470, 43470], "disallowed"], [[43471, 43481], "valid"], [[43482, 43485], "disallowed"], [[43486, 43487], "valid", [], "NV8"], [[43488, 43518], "valid"], [[43519, 43519], "disallowed"], [[43520, 43574], "valid"], [[43575, 43583], "disallowed"], [[43584, 43597], "valid"], [[43598, 43599], "disallowed"], [[43600, 43609], "valid"], [[43610, 43611], "disallowed"], [[43612, 43615], "valid", [], "NV8"], [[43616, 43638], "valid"], [[43639, 43641], "valid", [], "NV8"], [[43642, 43643], "valid"], [[43644, 43647], "valid"], [[43648, 43714], "valid"], [[43715, 43738], "disallowed"], [[43739, 43741], "valid"], [[43742, 43743], "valid", [], "NV8"], [[43744, 43759], "valid"], [[43760, 43761], "valid", [], "NV8"], [[43762, 43766], "valid"], [[43767, 43776], "disallowed"], [[43777, 43782], "valid"], [[43783, 43784], "disallowed"], [[43785, 43790], "valid"], [[43791, 43792], "disallowed"], [[43793, 43798], "valid"], [[43799, 43807], "disallowed"], [[43808, 43814], "valid"], [[43815, 43815], "disallowed"], [[43816, 43822], "valid"], [[43823, 43823], "disallowed"], [[43824, 43866], "valid"], [[43867, 43867], "valid", [], "NV8"], [[43868, 43868], "mapped", [42791]], [[43869, 43869], "mapped", [43831]], [[43870, 43870], "mapped", [619]], [[43871, 43871], "mapped", [43858]], [[43872, 43875], "valid"], [[43876, 43877], "valid"], [[43878, 43887], "disallowed"], [[43888, 43888], "mapped", [5024]], [[43889, 43889], "mapped", [5025]], [[43890, 43890], "mapped", [5026]], [[43891, 43891], "mapped", [5027]], [[43892, 43892], "mapped", [5028]], [[43893, 43893], "mapped", [5029]], [[43894, 43894], "mapped", [5030]], [[43895, 43895], "mapped", [5031]], [[43896, 43896], "mapped", [5032]], [[43897, 43897], "mapped", [5033]], [[43898, 43898], "mapped", [5034]], [[43899, 43899], "mapped", [5035]], [[43900, 43900], "mapped", [5036]], [[43901, 43901], "mapped", [5037]], [[43902, 43902], "mapped", [5038]], [[43903, 43903], "mapped", [5039]], [[43904, 43904], "mapped", [5040]], [[43905, 43905], "mapped", [5041]], [[43906, 43906], "mapped", [5042]], [[43907, 43907], "mapped", [5043]], [[43908, 43908], "mapped", [5044]], [[43909, 43909], "mapped", [5045]], [[43910, 43910], "mapped", [5046]], [[43911, 43911], "mapped", [5047]], [[43912, 43912], "mapped", [5048]], [[43913, 43913], "mapped", [5049]], [[43914, 43914], "mapped", [5050]], [[43915, 43915], "mapped", [5051]], [[43916, 43916], "mapped", [5052]], [[43917, 43917], "mapped", [5053]], [[43918, 43918], "mapped", [5054]], [[43919, 43919], "mapped", [5055]], [[43920, 43920], "mapped", [5056]], [[43921, 43921], "mapped", [5057]], [[43922, 43922], "mapped", [5058]], [[43923, 43923], "mapped", [5059]], [[43924, 43924], "mapped", [5060]], [[43925, 43925], "mapped", [5061]], [[43926, 43926], "mapped", [5062]], [[43927, 43927], "mapped", [5063]], [[43928, 43928], "mapped", [5064]], [[43929, 43929], "mapped", [5065]], [[43930, 43930], "mapped", [5066]], [[43931, 43931], "mapped", [5067]], [[43932, 43932], "mapped", [5068]], [[43933, 43933], "mapped", [5069]], [[43934, 43934], "mapped", [5070]], [[43935, 43935], "mapped", [5071]], [[43936, 43936], "mapped", [5072]], [[43937, 43937], "mapped", [5073]], [[43938, 43938], "mapped", [5074]], [[43939, 43939], "mapped", [5075]], [[43940, 43940], "mapped", [5076]], [[43941, 43941], "mapped", [5077]], [[43942, 43942], "mapped", [5078]], [[43943, 43943], "mapped", [5079]], [[43944, 43944], "mapped", [5080]], [[43945, 43945], "mapped", [5081]], [[43946, 43946], "mapped", [5082]], [[43947, 43947], "mapped", [5083]], [[43948, 43948], "mapped", [5084]], [[43949, 43949], "mapped", [5085]], [[43950, 43950], "mapped", [5086]], [[43951, 43951], "mapped", [5087]], [[43952, 43952], "mapped", [5088]], [[43953, 43953], "mapped", [5089]], [[43954, 43954], "mapped", [5090]], [[43955, 43955], "mapped", [5091]], [[43956, 43956], "mapped", [5092]], [[43957, 43957], "mapped", [5093]], [[43958, 43958], "mapped", [5094]], [[43959, 43959], "mapped", [5095]], [[43960, 43960], "mapped", [5096]], [[43961, 43961], "mapped", [5097]], [[43962, 43962], "mapped", [5098]], [[43963, 43963], "mapped", [5099]], [[43964, 43964], "mapped", [5100]], [[43965, 43965], "mapped", [5101]], [[43966, 43966], "mapped", [5102]], [[43967, 43967], "mapped", [5103]], [[43968, 44010], "valid"], [[44011, 44011], "valid", [], "NV8"], [[44012, 44013], "valid"], [[44014, 44015], "disallowed"], [[44016, 44025], "valid"], [[44026, 44031], "disallowed"], [[44032, 55203], "valid"], [[55204, 55215], "disallowed"], [[55216, 55238], "valid", [], "NV8"], [[55239, 55242], "disallowed"], [[55243, 55291], "valid", [], "NV8"], [[55292, 55295], "disallowed"], [[55296, 57343], "disallowed"], [[57344, 63743], "disallowed"], [[63744, 63744], "mapped", [35912]], [[63745, 63745], "mapped", [26356]], [[63746, 63746], "mapped", [36554]], [[63747, 63747], "mapped", [36040]], [[63748, 63748], "mapped", [28369]], [[63749, 63749], "mapped", [20018]], [[63750, 63750], "mapped", [21477]], [[63751, 63752], "mapped", [40860]], [[63753, 63753], "mapped", [22865]], [[63754, 63754], "mapped", [37329]], [[63755, 63755], "mapped", [21895]], [[63756, 63756], "mapped", [22856]], [[63757, 63757], "mapped", [25078]], [[63758, 63758], "mapped", [30313]], [[63759, 63759], "mapped", [32645]], [[63760, 63760], "mapped", [34367]], [[63761, 63761], "mapped", [34746]], [[63762, 63762], "mapped", [35064]], [[63763, 63763], "mapped", [37007]], [[63764, 63764], "mapped", [27138]], [[63765, 63765], "mapped", [27931]], [[63766, 63766], "mapped", [28889]], [[63767, 63767], "mapped", [29662]], [[63768, 63768], "mapped", [33853]], [[63769, 63769], "mapped", [37226]], [[63770, 63770], "mapped", [39409]], [[63771, 63771], "mapped", [20098]], [[63772, 63772], "mapped", [21365]], [[63773, 63773], "mapped", [27396]], [[63774, 63774], "mapped", [29211]], [[63775, 63775], "mapped", [34349]], [[63776, 63776], "mapped", [40478]], [[63777, 63777], "mapped", [23888]], [[63778, 63778], "mapped", [28651]], [[63779, 63779], "mapped", [34253]], [[63780, 63780], "mapped", [35172]], [[63781, 63781], "mapped", [25289]], [[63782, 63782], "mapped", [33240]], [[63783, 63783], "mapped", [34847]], [[63784, 63784], "mapped", [24266]], [[63785, 63785], "mapped", [26391]], [[63786, 63786], "mapped", [28010]], [[63787, 63787], "mapped", [29436]], [[63788, 63788], "mapped", [37070]], [[63789, 63789], "mapped", [20358]], [[63790, 63790], "mapped", [20919]], [[63791, 63791], "mapped", [21214]], [[63792, 63792], "mapped", [25796]], [[63793, 63793], "mapped", [27347]], [[63794, 63794], "mapped", [29200]], [[63795, 63795], "mapped", [30439]], [[63796, 63796], "mapped", [32769]], [[63797, 63797], "mapped", [34310]], [[63798, 63798], "mapped", [34396]], [[63799, 63799], "mapped", [36335]], [[63800, 63800], "mapped", [38706]], [[63801, 63801], "mapped", [39791]], [[63802, 63802], "mapped", [40442]], [[63803, 63803], "mapped", [30860]], [[63804, 63804], "mapped", [31103]], [[63805, 63805], "mapped", [32160]], [[63806, 63806], "mapped", [33737]], [[63807, 63807], "mapped", [37636]], [[63808, 63808], "mapped", [40575]], [[63809, 63809], "mapped", [35542]], [[63810, 63810], "mapped", [22751]], [[63811, 63811], "mapped", [24324]], [[63812, 63812], "mapped", [31840]], [[63813, 63813], "mapped", [32894]], [[63814, 63814], "mapped", [29282]], [[63815, 63815], "mapped", [30922]], [[63816, 63816], "mapped", [36034]], [[63817, 63817], "mapped", [38647]], [[63818, 63818], "mapped", [22744]], [[63819, 63819], "mapped", [23650]], [[63820, 63820], "mapped", [27155]], [[63821, 63821], "mapped", [28122]], [[63822, 63822], "mapped", [28431]], [[63823, 63823], "mapped", [32047]], [[63824, 63824], "mapped", [32311]], [[63825, 63825], "mapped", [38475]], [[63826, 63826], "mapped", [21202]], [[63827, 63827], "mapped", [32907]], [[63828, 63828], "mapped", [20956]], [[63829, 63829], "mapped", [20940]], [[63830, 63830], "mapped", [31260]], [[63831, 63831], "mapped", [32190]], [[63832, 63832], "mapped", [33777]], [[63833, 63833], "mapped", [38517]], [[63834, 63834], "mapped", [35712]], [[63835, 63835], "mapped", [25295]], [[63836, 63836], "mapped", [27138]], [[63837, 63837], "mapped", [35582]], [[63838, 63838], "mapped", [20025]], [[63839, 63839], "mapped", [23527]], [[63840, 63840], "mapped", [24594]], [[63841, 63841], "mapped", [29575]], [[63842, 63842], "mapped", [30064]], [[63843, 63843], "mapped", [21271]], [[63844, 63844], "mapped", [30971]], [[63845, 63845], "mapped", [20415]], [[63846, 63846], "mapped", [24489]], [[63847, 63847], "mapped", [19981]], [[63848, 63848], "mapped", [27852]], [[63849, 63849], "mapped", [25976]], [[63850, 63850], "mapped", [32034]], [[63851, 63851], "mapped", [21443]], [[63852, 63852], "mapped", [22622]], [[63853, 63853], "mapped", [30465]], [[63854, 63854], "mapped", [33865]], [[63855, 63855], "mapped", [35498]], [[63856, 63856], "mapped", [27578]], [[63857, 63857], "mapped", [36784]], [[63858, 63858], "mapped", [27784]], [[63859, 63859], "mapped", [25342]], [[63860, 63860], "mapped", [33509]], [[63861, 63861], "mapped", [25504]], [[63862, 63862], "mapped", [30053]], [[63863, 63863], "mapped", [20142]], [[63864, 63864], "mapped", [20841]], [[63865, 63865], "mapped", [20937]], [[63866, 63866], "mapped", [26753]], [[63867, 63867], "mapped", [31975]], [[63868, 63868], "mapped", [33391]], [[63869, 63869], "mapped", [35538]], [[63870, 63870], "mapped", [37327]], [[63871, 63871], "mapped", [21237]], [[63872, 63872], "mapped", [21570]], [[63873, 63873], "mapped", [22899]], [[63874, 63874], "mapped", [24300]], [[63875, 63875], "mapped", [26053]], [[63876, 63876], "mapped", [28670]], [[63877, 63877], "mapped", [31018]], [[63878, 63878], "mapped", [38317]], [[63879, 63879], "mapped", [39530]], [[63880, 63880], "mapped", [40599]], [[63881, 63881], "mapped", [40654]], [[63882, 63882], "mapped", [21147]], [[63883, 63883], "mapped", [26310]], [[63884, 63884], "mapped", [27511]], [[63885, 63885], "mapped", [36706]], [[63886, 63886], "mapped", [24180]], [[63887, 63887], "mapped", [24976]], [[63888, 63888], "mapped", [25088]], [[63889, 63889], "mapped", [25754]], [[63890, 63890], "mapped", [28451]], [[63891, 63891], "mapped", [29001]], [[63892, 63892], "mapped", [29833]], [[63893, 63893], "mapped", [31178]], [[63894, 63894], "mapped", [32244]], [[63895, 63895], "mapped", [32879]], [[63896, 63896], "mapped", [36646]], [[63897, 63897], "mapped", [34030]], [[63898, 63898], "mapped", [36899]], [[63899, 63899], "mapped", [37706]], [[63900, 63900], "mapped", [21015]], [[63901, 63901], "mapped", [21155]], [[63902, 63902], "mapped", [21693]], [[63903, 63903], "mapped", [28872]], [[63904, 63904], "mapped", [35010]], [[63905, 63905], "mapped", [35498]], [[63906, 63906], "mapped", [24265]], [[63907, 63907], "mapped", [24565]], [[63908, 63908], "mapped", [25467]], [[63909, 63909], "mapped", [27566]], [[63910, 63910], "mapped", [31806]], [[63911, 63911], "mapped", [29557]], [[63912, 63912], "mapped", [20196]], [[63913, 63913], "mapped", [22265]], [[63914, 63914], "mapped", [23527]], [[63915, 63915], "mapped", [23994]], [[63916, 63916], "mapped", [24604]], [[63917, 63917], "mapped", [29618]], [[63918, 63918], "mapped", [29801]], [[63919, 63919], "mapped", [32666]], [[63920, 63920], "mapped", [32838]], [[63921, 63921], "mapped", [37428]], [[63922, 63922], "mapped", [38646]], [[63923, 63923], "mapped", [38728]], [[63924, 63924], "mapped", [38936]], [[63925, 63925], "mapped", [20363]], [[63926, 63926], "mapped", [31150]], [[63927, 63927], "mapped", [37300]], [[63928, 63928], "mapped", [38584]], [[63929, 63929], "mapped", [24801]], [[63930, 63930], "mapped", [20102]], [[63931, 63931], "mapped", [20698]], [[63932, 63932], "mapped", [23534]], [[63933, 63933], "mapped", [23615]], [[63934, 63934], "mapped", [26009]], [[63935, 63935], "mapped", [27138]], [[63936, 63936], "mapped", [29134]], [[63937, 63937], "mapped", [30274]], [[63938, 63938], "mapped", [34044]], [[63939, 63939], "mapped", [36988]], [[63940, 63940], "mapped", [40845]], [[63941, 63941], "mapped", [26248]], [[63942, 63942], "mapped", [38446]], [[63943, 63943], "mapped", [21129]], [[63944, 63944], "mapped", [26491]], [[63945, 63945], "mapped", [26611]], [[63946, 63946], "mapped", [27969]], [[63947, 63947], "mapped", [28316]], [[63948, 63948], "mapped", [29705]], [[63949, 63949], "mapped", [30041]], [[63950, 63950], "mapped", [30827]], [[63951, 63951], "mapped", [32016]], [[63952, 63952], "mapped", [39006]], [[63953, 63953], "mapped", [20845]], [[63954, 63954], "mapped", [25134]], [[63955, 63955], "mapped", [38520]], [[63956, 63956], "mapped", [20523]], [[63957, 63957], "mapped", [23833]], [[63958, 63958], "mapped", [28138]], [[63959, 63959], "mapped", [36650]], [[63960, 63960], "mapped", [24459]], [[63961, 63961], "mapped", [24900]], [[63962, 63962], "mapped", [26647]], [[63963, 63963], "mapped", [29575]], [[63964, 63964], "mapped", [38534]], [[63965, 63965], "mapped", [21033]], [[63966, 63966], "mapped", [21519]], [[63967, 63967], "mapped", [23653]], [[63968, 63968], "mapped", [26131]], [[63969, 63969], "mapped", [26446]], [[63970, 63970], "mapped", [26792]], [[63971, 63971], "mapped", [27877]], [[63972, 63972], "mapped", [29702]], [[63973, 63973], "mapped", [30178]], [[63974, 63974], "mapped", [32633]], [[63975, 63975], "mapped", [35023]], [[63976, 63976], "mapped", [35041]], [[63977, 63977], "mapped", [37324]], [[63978, 63978], "mapped", [38626]], [[63979, 63979], "mapped", [21311]], [[63980, 63980], "mapped", [28346]], [[63981, 63981], "mapped", [21533]], [[63982, 63982], "mapped", [29136]], [[63983, 63983], "mapped", [29848]], [[63984, 63984], "mapped", [34298]], [[63985, 63985], "mapped", [38563]], [[63986, 63986], "mapped", [40023]], [[63987, 63987], "mapped", [40607]], [[63988, 63988], "mapped", [26519]], [[63989, 63989], "mapped", [28107]], [[63990, 63990], "mapped", [33256]], [[63991, 63991], "mapped", [31435]], [[63992, 63992], "mapped", [31520]], [[63993, 63993], "mapped", [31890]], [[63994, 63994], "mapped", [29376]], [[63995, 63995], "mapped", [28825]], [[63996, 63996], "mapped", [35672]], [[63997, 63997], "mapped", [20160]], [[63998, 63998], "mapped", [33590]], [[63999, 63999], "mapped", [21050]], [[64e3, 64e3], "mapped", [20999]], [[64001, 64001], "mapped", [24230]], [[64002, 64002], "mapped", [25299]], [[64003, 64003], "mapped", [31958]], [[64004, 64004], "mapped", [23429]], [[64005, 64005], "mapped", [27934]], [[64006, 64006], "mapped", [26292]], [[64007, 64007], "mapped", [36667]], [[64008, 64008], "mapped", [34892]], [[64009, 64009], "mapped", [38477]], [[64010, 64010], "mapped", [35211]], [[64011, 64011], "mapped", [24275]], [[64012, 64012], "mapped", [20800]], [[64013, 64013], "mapped", [21952]], [[64014, 64015], "valid"], [[64016, 64016], "mapped", [22618]], [[64017, 64017], "valid"], [[64018, 64018], "mapped", [26228]], [[64019, 64020], "valid"], [[64021, 64021], "mapped", [20958]], [[64022, 64022], "mapped", [29482]], [[64023, 64023], "mapped", [30410]], [[64024, 64024], "mapped", [31036]], [[64025, 64025], "mapped", [31070]], [[64026, 64026], "mapped", [31077]], [[64027, 64027], "mapped", [31119]], [[64028, 64028], "mapped", [38742]], [[64029, 64029], "mapped", [31934]], [[64030, 64030], "mapped", [32701]], [[64031, 64031], "valid"], [[64032, 64032], "mapped", [34322]], [[64033, 64033], "valid"], [[64034, 64034], "mapped", [35576]], [[64035, 64036], "valid"], [[64037, 64037], "mapped", [36920]], [[64038, 64038], "mapped", [37117]], [[64039, 64041], "valid"], [[64042, 64042], "mapped", [39151]], [[64043, 64043], "mapped", [39164]], [[64044, 64044], "mapped", [39208]], [[64045, 64045], "mapped", [40372]], [[64046, 64046], "mapped", [37086]], [[64047, 64047], "mapped", [38583]], [[64048, 64048], "mapped", [20398]], [[64049, 64049], "mapped", [20711]], [[64050, 64050], "mapped", [20813]], [[64051, 64051], "mapped", [21193]], [[64052, 64052], "mapped", [21220]], [[64053, 64053], "mapped", [21329]], [[64054, 64054], "mapped", [21917]], [[64055, 64055], "mapped", [22022]], [[64056, 64056], "mapped", [22120]], [[64057, 64057], "mapped", [22592]], [[64058, 64058], "mapped", [22696]], [[64059, 64059], "mapped", [23652]], [[64060, 64060], "mapped", [23662]], [[64061, 64061], "mapped", [24724]], [[64062, 64062], "mapped", [24936]], [[64063, 64063], "mapped", [24974]], [[64064, 64064], "mapped", [25074]], [[64065, 64065], "mapped", [25935]], [[64066, 64066], "mapped", [26082]], [[64067, 64067], "mapped", [26257]], [[64068, 64068], "mapped", [26757]], [[64069, 64069], "mapped", [28023]], [[64070, 64070], "mapped", [28186]], [[64071, 64071], "mapped", [28450]], [[64072, 64072], "mapped", [29038]], [[64073, 64073], "mapped", [29227]], [[64074, 64074], "mapped", [29730]], [[64075, 64075], "mapped", [30865]], [[64076, 64076], "mapped", [31038]], [[64077, 64077], "mapped", [31049]], [[64078, 64078], "mapped", [31048]], [[64079, 64079], "mapped", [31056]], [[64080, 64080], "mapped", [31062]], [[64081, 64081], "mapped", [31069]], [[64082, 64082], "mapped", [31117]], [[64083, 64083], "mapped", [31118]], [[64084, 64084], "mapped", [31296]], [[64085, 64085], "mapped", [31361]], [[64086, 64086], "mapped", [31680]], [[64087, 64087], "mapped", [32244]], [[64088, 64088], "mapped", [32265]], [[64089, 64089], "mapped", [32321]], [[64090, 64090], "mapped", [32626]], [[64091, 64091], "mapped", [32773]], [[64092, 64092], "mapped", [33261]], [[64093, 64094], "mapped", [33401]], [[64095, 64095], "mapped", [33879]], [[64096, 64096], "mapped", [35088]], [[64097, 64097], "mapped", [35222]], [[64098, 64098], "mapped", [35585]], [[64099, 64099], "mapped", [35641]], [[64100, 64100], "mapped", [36051]], [[64101, 64101], "mapped", [36104]], [[64102, 64102], "mapped", [36790]], [[64103, 64103], "mapped", [36920]], [[64104, 64104], "mapped", [38627]], [[64105, 64105], "mapped", [38911]], [[64106, 64106], "mapped", [38971]], [[64107, 64107], "mapped", [24693]], [[64108, 64108], "mapped", [148206]], [[64109, 64109], "mapped", [33304]], [[64110, 64111], "disallowed"], [[64112, 64112], "mapped", [20006]], [[64113, 64113], "mapped", [20917]], [[64114, 64114], "mapped", [20840]], [[64115, 64115], "mapped", [20352]], [[64116, 64116], "mapped", [20805]], [[64117, 64117], "mapped", [20864]], [[64118, 64118], "mapped", [21191]], [[64119, 64119], "mapped", [21242]], [[64120, 64120], "mapped", [21917]], [[64121, 64121], "mapped", [21845]], [[64122, 64122], "mapped", [21913]], [[64123, 64123], "mapped", [21986]], [[64124, 64124], "mapped", [22618]], [[64125, 64125], "mapped", [22707]], [[64126, 64126], "mapped", [22852]], [[64127, 64127], "mapped", [22868]], [[64128, 64128], "mapped", [23138]], [[64129, 64129], "mapped", [23336]], [[64130, 64130], "mapped", [24274]], [[64131, 64131], "mapped", [24281]], [[64132, 64132], "mapped", [24425]], [[64133, 64133], "mapped", [24493]], [[64134, 64134], "mapped", [24792]], [[64135, 64135], "mapped", [24910]], [[64136, 64136], "mapped", [24840]], [[64137, 64137], "mapped", [24974]], [[64138, 64138], "mapped", [24928]], [[64139, 64139], "mapped", [25074]], [[64140, 64140], "mapped", [25140]], [[64141, 64141], "mapped", [25540]], [[64142, 64142], "mapped", [25628]], [[64143, 64143], "mapped", [25682]], [[64144, 64144], "mapped", [25942]], [[64145, 64145], "mapped", [26228]], [[64146, 64146], "mapped", [26391]], [[64147, 64147], "mapped", [26395]], [[64148, 64148], "mapped", [26454]], [[64149, 64149], "mapped", [27513]], [[64150, 64150], "mapped", [27578]], [[64151, 64151], "mapped", [27969]], [[64152, 64152], "mapped", [28379]], [[64153, 64153], "mapped", [28363]], [[64154, 64154], "mapped", [28450]], [[64155, 64155], "mapped", [28702]], [[64156, 64156], "mapped", [29038]], [[64157, 64157], "mapped", [30631]], [[64158, 64158], "mapped", [29237]], [[64159, 64159], "mapped", [29359]], [[64160, 64160], "mapped", [29482]], [[64161, 64161], "mapped", [29809]], [[64162, 64162], "mapped", [29958]], [[64163, 64163], "mapped", [30011]], [[64164, 64164], "mapped", [30237]], [[64165, 64165], "mapped", [30239]], [[64166, 64166], "mapped", [30410]], [[64167, 64167], "mapped", [30427]], [[64168, 64168], "mapped", [30452]], [[64169, 64169], "mapped", [30538]], [[64170, 64170], "mapped", [30528]], [[64171, 64171], "mapped", [30924]], [[64172, 64172], "mapped", [31409]], [[64173, 64173], "mapped", [31680]], [[64174, 64174], "mapped", [31867]], [[64175, 64175], "mapped", [32091]], [[64176, 64176], "mapped", [32244]], [[64177, 64177], "mapped", [32574]], [[64178, 64178], "mapped", [32773]], [[64179, 64179], "mapped", [33618]], [[64180, 64180], "mapped", [33775]], [[64181, 64181], "mapped", [34681]], [[64182, 64182], "mapped", [35137]], [[64183, 64183], "mapped", [35206]], [[64184, 64184], "mapped", [35222]], [[64185, 64185], "mapped", [35519]], [[64186, 64186], "mapped", [35576]], [[64187, 64187], "mapped", [35531]], [[64188, 64188], "mapped", [35585]], [[64189, 64189], "mapped", [35582]], [[64190, 64190], "mapped", [35565]], [[64191, 64191], "mapped", [35641]], [[64192, 64192], "mapped", [35722]], [[64193, 64193], "mapped", [36104]], [[64194, 64194], "mapped", [36664]], [[64195, 64195], "mapped", [36978]], [[64196, 64196], "mapped", [37273]], [[64197, 64197], "mapped", [37494]], [[64198, 64198], "mapped", [38524]], [[64199, 64199], "mapped", [38627]], [[64200, 64200], "mapped", [38742]], [[64201, 64201], "mapped", [38875]], [[64202, 64202], "mapped", [38911]], [[64203, 64203], "mapped", [38923]], [[64204, 64204], "mapped", [38971]], [[64205, 64205], "mapped", [39698]], [[64206, 64206], "mapped", [40860]], [[64207, 64207], "mapped", [141386]], [[64208, 64208], "mapped", [141380]], [[64209, 64209], "mapped", [144341]], [[64210, 64210], "mapped", [15261]], [[64211, 64211], "mapped", [16408]], [[64212, 64212], "mapped", [16441]], [[64213, 64213], "mapped", [152137]], [[64214, 64214], "mapped", [154832]], [[64215, 64215], "mapped", [163539]], [[64216, 64216], "mapped", [40771]], [[64217, 64217], "mapped", [40846]], [[64218, 64255], "disallowed"], [[64256, 64256], "mapped", [102, 102]], [[64257, 64257], "mapped", [102, 105]], [[64258, 64258], "mapped", [102, 108]], [[64259, 64259], "mapped", [102, 102, 105]], [[64260, 64260], "mapped", [102, 102, 108]], [[64261, 64262], "mapped", [115, 116]], [[64263, 64274], "disallowed"], [[64275, 64275], "mapped", [1396, 1398]], [[64276, 64276], "mapped", [1396, 1381]], [[64277, 64277], "mapped", [1396, 1387]], [[64278, 64278], "mapped", [1406, 1398]], [[64279, 64279], "mapped", [1396, 1389]], [[64280, 64284], "disallowed"], [[64285, 64285], "mapped", [1497, 1460]], [[64286, 64286], "valid"], [[64287, 64287], "mapped", [1522, 1463]], [[64288, 64288], "mapped", [1506]], [[64289, 64289], "mapped", [1488]], [[64290, 64290], "mapped", [1491]], [[64291, 64291], "mapped", [1492]], [[64292, 64292], "mapped", [1499]], [[64293, 64293], "mapped", [1500]], [[64294, 64294], "mapped", [1501]], [[64295, 64295], "mapped", [1512]], [[64296, 64296], "mapped", [1514]], [[64297, 64297], "disallowed_STD3_mapped", [43]], [[64298, 64298], "mapped", [1513, 1473]], [[64299, 64299], "mapped", [1513, 1474]], [[64300, 64300], "mapped", [1513, 1468, 1473]], [[64301, 64301], "mapped", [1513, 1468, 1474]], [[64302, 64302], "mapped", [1488, 1463]], [[64303, 64303], "mapped", [1488, 1464]], [[64304, 64304], "mapped", [1488, 1468]], [[64305, 64305], "mapped", [1489, 1468]], [[64306, 64306], "mapped", [1490, 1468]], [[64307, 64307], "mapped", [1491, 1468]], [[64308, 64308], "mapped", [1492, 1468]], [[64309, 64309], "mapped", [1493, 1468]], [[64310, 64310], "mapped", [1494, 1468]], [[64311, 64311], "disallowed"], [[64312, 64312], "mapped", [1496, 1468]], [[64313, 64313], "mapped", [1497, 1468]], [[64314, 64314], "mapped", [1498, 1468]], [[64315, 64315], "mapped", [1499, 1468]], [[64316, 64316], "mapped", [1500, 1468]], [[64317, 64317], "disallowed"], [[64318, 64318], "mapped", [1502, 1468]], [[64319, 64319], "disallowed"], [[64320, 64320], "mapped", [1504, 1468]], [[64321, 64321], "mapped", [1505, 1468]], [[64322, 64322], "disallowed"], [[64323, 64323], "mapped", [1507, 1468]], [[64324, 64324], "mapped", [1508, 1468]], [[64325, 64325], "disallowed"], [[64326, 64326], "mapped", [1510, 1468]], [[64327, 64327], "mapped", [1511, 1468]], [[64328, 64328], "mapped", [1512, 1468]], [[64329, 64329], "mapped", [1513, 1468]], [[64330, 64330], "mapped", [1514, 1468]], [[64331, 64331], "mapped", [1493, 1465]], [[64332, 64332], "mapped", [1489, 1471]], [[64333, 64333], "mapped", [1499, 1471]], [[64334, 64334], "mapped", [1508, 1471]], [[64335, 64335], "mapped", [1488, 1500]], [[64336, 64337], "mapped", [1649]], [[64338, 64341], "mapped", [1659]], [[64342, 64345], "mapped", [1662]], [[64346, 64349], "mapped", [1664]], [[64350, 64353], "mapped", [1658]], [[64354, 64357], "mapped", [1663]], [[64358, 64361], "mapped", [1657]], [[64362, 64365], "mapped", [1700]], [[64366, 64369], "mapped", [1702]], [[64370, 64373], "mapped", [1668]], [[64374, 64377], "mapped", [1667]], [[64378, 64381], "mapped", [1670]], [[64382, 64385], "mapped", [1671]], [[64386, 64387], "mapped", [1677]], [[64388, 64389], "mapped", [1676]], [[64390, 64391], "mapped", [1678]], [[64392, 64393], "mapped", [1672]], [[64394, 64395], "mapped", [1688]], [[64396, 64397], "mapped", [1681]], [[64398, 64401], "mapped", [1705]], [[64402, 64405], "mapped", [1711]], [[64406, 64409], "mapped", [1715]], [[64410, 64413], "mapped", [1713]], [[64414, 64415], "mapped", [1722]], [[64416, 64419], "mapped", [1723]], [[64420, 64421], "mapped", [1728]], [[64422, 64425], "mapped", [1729]], [[64426, 64429], "mapped", [1726]], [[64430, 64431], "mapped", [1746]], [[64432, 64433], "mapped", [1747]], [[64434, 64449], "valid", [], "NV8"], [[64450, 64466], "disallowed"], [[64467, 64470], "mapped", [1709]], [[64471, 64472], "mapped", [1735]], [[64473, 64474], "mapped", [1734]], [[64475, 64476], "mapped", [1736]], [[64477, 64477], "mapped", [1735, 1652]], [[64478, 64479], "mapped", [1739]], [[64480, 64481], "mapped", [1733]], [[64482, 64483], "mapped", [1737]], [[64484, 64487], "mapped", [1744]], [[64488, 64489], "mapped", [1609]], [[64490, 64491], "mapped", [1574, 1575]], [[64492, 64493], "mapped", [1574, 1749]], [[64494, 64495], "mapped", [1574, 1608]], [[64496, 64497], "mapped", [1574, 1735]], [[64498, 64499], "mapped", [1574, 1734]], [[64500, 64501], "mapped", [1574, 1736]], [[64502, 64504], "mapped", [1574, 1744]], [[64505, 64507], "mapped", [1574, 1609]], [[64508, 64511], "mapped", [1740]], [[64512, 64512], "mapped", [1574, 1580]], [[64513, 64513], "mapped", [1574, 1581]], [[64514, 64514], "mapped", [1574, 1605]], [[64515, 64515], "mapped", [1574, 1609]], [[64516, 64516], "mapped", [1574, 1610]], [[64517, 64517], "mapped", [1576, 1580]], [[64518, 64518], "mapped", [1576, 1581]], [[64519, 64519], "mapped", [1576, 1582]], [[64520, 64520], "mapped", [1576, 1605]], [[64521, 64521], "mapped", [1576, 1609]], [[64522, 64522], "mapped", [1576, 1610]], [[64523, 64523], "mapped", [1578, 1580]], [[64524, 64524], "mapped", [1578, 1581]], [[64525, 64525], "mapped", [1578, 1582]], [[64526, 64526], "mapped", [1578, 1605]], [[64527, 64527], "mapped", [1578, 1609]], [[64528, 64528], "mapped", [1578, 1610]], [[64529, 64529], "mapped", [1579, 1580]], [[64530, 64530], "mapped", [1579, 1605]], [[64531, 64531], "mapped", [1579, 1609]], [[64532, 64532], "mapped", [1579, 1610]], [[64533, 64533], "mapped", [1580, 1581]], [[64534, 64534], "mapped", [1580, 1605]], [[64535, 64535], "mapped", [1581, 1580]], [[64536, 64536], "mapped", [1581, 1605]], [[64537, 64537], "mapped", [1582, 1580]], [[64538, 64538], "mapped", [1582, 1581]], [[64539, 64539], "mapped", [1582, 1605]], [[64540, 64540], "mapped", [1587, 1580]], [[64541, 64541], "mapped", [1587, 1581]], [[64542, 64542], "mapped", [1587, 1582]], [[64543, 64543], "mapped", [1587, 1605]], [[64544, 64544], "mapped", [1589, 1581]], [[64545, 64545], "mapped", [1589, 1605]], [[64546, 64546], "mapped", [1590, 1580]], [[64547, 64547], "mapped", [1590, 1581]], [[64548, 64548], "mapped", [1590, 1582]], [[64549, 64549], "mapped", [1590, 1605]], [[64550, 64550], "mapped", [1591, 1581]], [[64551, 64551], "mapped", [1591, 1605]], [[64552, 64552], "mapped", [1592, 1605]], [[64553, 64553], "mapped", [1593, 1580]], [[64554, 64554], "mapped", [1593, 1605]], [[64555, 64555], "mapped", [1594, 1580]], [[64556, 64556], "mapped", [1594, 1605]], [[64557, 64557], "mapped", [1601, 1580]], [[64558, 64558], "mapped", [1601, 1581]], [[64559, 64559], "mapped", [1601, 1582]], [[64560, 64560], "mapped", [1601, 1605]], [[64561, 64561], "mapped", [1601, 1609]], [[64562, 64562], "mapped", [1601, 1610]], [[64563, 64563], "mapped", [1602, 1581]], [[64564, 64564], "mapped", [1602, 1605]], [[64565, 64565], "mapped", [1602, 1609]], [[64566, 64566], "mapped", [1602, 1610]], [[64567, 64567], "mapped", [1603, 1575]], [[64568, 64568], "mapped", [1603, 1580]], [[64569, 64569], "mapped", [1603, 1581]], [[64570, 64570], "mapped", [1603, 1582]], [[64571, 64571], "mapped", [1603, 1604]], [[64572, 64572], "mapped", [1603, 1605]], [[64573, 64573], "mapped", [1603, 1609]], [[64574, 64574], "mapped", [1603, 1610]], [[64575, 64575], "mapped", [1604, 1580]], [[64576, 64576], "mapped", [1604, 1581]], [[64577, 64577], "mapped", [1604, 1582]], [[64578, 64578], "mapped", [1604, 1605]], [[64579, 64579], "mapped", [1604, 1609]], [[64580, 64580], "mapped", [1604, 1610]], [[64581, 64581], "mapped", [1605, 1580]], [[64582, 64582], "mapped", [1605, 1581]], [[64583, 64583], "mapped", [1605, 1582]], [[64584, 64584], "mapped", [1605, 1605]], [[64585, 64585], "mapped", [1605, 1609]], [[64586, 64586], "mapped", [1605, 1610]], [[64587, 64587], "mapped", [1606, 1580]], [[64588, 64588], "mapped", [1606, 1581]], [[64589, 64589], "mapped", [1606, 1582]], [[64590, 64590], "mapped", [1606, 1605]], [[64591, 64591], "mapped", [1606, 1609]], [[64592, 64592], "mapped", [1606, 1610]], [[64593, 64593], "mapped", [1607, 1580]], [[64594, 64594], "mapped", [1607, 1605]], [[64595, 64595], "mapped", [1607, 1609]], [[64596, 64596], "mapped", [1607, 1610]], [[64597, 64597], "mapped", [1610, 1580]], [[64598, 64598], "mapped", [1610, 1581]], [[64599, 64599], "mapped", [1610, 1582]], [[64600, 64600], "mapped", [1610, 1605]], [[64601, 64601], "mapped", [1610, 1609]], [[64602, 64602], "mapped", [1610, 1610]], [[64603, 64603], "mapped", [1584, 1648]], [[64604, 64604], "mapped", [1585, 1648]], [[64605, 64605], "mapped", [1609, 1648]], [[64606, 64606], "disallowed_STD3_mapped", [32, 1612, 1617]], [[64607, 64607], "disallowed_STD3_mapped", [32, 1613, 1617]], [[64608, 64608], "disallowed_STD3_mapped", [32, 1614, 1617]], [[64609, 64609], "disallowed_STD3_mapped", [32, 1615, 1617]], [[64610, 64610], "disallowed_STD3_mapped", [32, 1616, 1617]], [[64611, 64611], "disallowed_STD3_mapped", [32, 1617, 1648]], [[64612, 64612], "mapped", [1574, 1585]], [[64613, 64613], "mapped", [1574, 1586]], [[64614, 64614], "mapped", [1574, 1605]], [[64615, 64615], "mapped", [1574, 1606]], [[64616, 64616], "mapped", [1574, 1609]], [[64617, 64617], "mapped", [1574, 1610]], [[64618, 64618], "mapped", [1576, 1585]], [[64619, 64619], "mapped", [1576, 1586]], [[64620, 64620], "mapped", [1576, 1605]], [[64621, 64621], "mapped", [1576, 1606]], [[64622, 64622], "mapped", [1576, 1609]], [[64623, 64623], "mapped", [1576, 1610]], [[64624, 64624], "mapped", [1578, 1585]], [[64625, 64625], "mapped", [1578, 1586]], [[64626, 64626], "mapped", [1578, 1605]], [[64627, 64627], "mapped", [1578, 1606]], [[64628, 64628], "mapped", [1578, 1609]], [[64629, 64629], "mapped", [1578, 1610]], [[64630, 64630], "mapped", [1579, 1585]], [[64631, 64631], "mapped", [1579, 1586]], [[64632, 64632], "mapped", [1579, 1605]], [[64633, 64633], "mapped", [1579, 1606]], [[64634, 64634], "mapped", [1579, 1609]], [[64635, 64635], "mapped", [1579, 1610]], [[64636, 64636], "mapped", [1601, 1609]], [[64637, 64637], "mapped", [1601, 1610]], [[64638, 64638], "mapped", [1602, 1609]], [[64639, 64639], "mapped", [1602, 1610]], [[64640, 64640], "mapped", [1603, 1575]], [[64641, 64641], "mapped", [1603, 1604]], [[64642, 64642], "mapped", [1603, 1605]], [[64643, 64643], "mapped", [1603, 1609]], [[64644, 64644], "mapped", [1603, 1610]], [[64645, 64645], "mapped", [1604, 1605]], [[64646, 64646], "mapped", [1604, 1609]], [[64647, 64647], "mapped", [1604, 1610]], [[64648, 64648], "mapped", [1605, 1575]], [[64649, 64649], "mapped", [1605, 1605]], [[64650, 64650], "mapped", [1606, 1585]], [[64651, 64651], "mapped", [1606, 1586]], [[64652, 64652], "mapped", [1606, 1605]], [[64653, 64653], "mapped", [1606, 1606]], [[64654, 64654], "mapped", [1606, 1609]], [[64655, 64655], "mapped", [1606, 1610]], [[64656, 64656], "mapped", [1609, 1648]], [[64657, 64657], "mapped", [1610, 1585]], [[64658, 64658], "mapped", [1610, 1586]], [[64659, 64659], "mapped", [1610, 1605]], [[64660, 64660], "mapped", [1610, 1606]], [[64661, 64661], "mapped", [1610, 1609]], [[64662, 64662], "mapped", [1610, 1610]], [[64663, 64663], "mapped", [1574, 1580]], [[64664, 64664], "mapped", [1574, 1581]], [[64665, 64665], "mapped", [1574, 1582]], [[64666, 64666], "mapped", [1574, 1605]], [[64667, 64667], "mapped", [1574, 1607]], [[64668, 64668], "mapped", [1576, 1580]], [[64669, 64669], "mapped", [1576, 1581]], [[64670, 64670], "mapped", [1576, 1582]], [[64671, 64671], "mapped", [1576, 1605]], [[64672, 64672], "mapped", [1576, 1607]], [[64673, 64673], "mapped", [1578, 1580]], [[64674, 64674], "mapped", [1578, 1581]], [[64675, 64675], "mapped", [1578, 1582]], [[64676, 64676], "mapped", [1578, 1605]], [[64677, 64677], "mapped", [1578, 1607]], [[64678, 64678], "mapped", [1579, 1605]], [[64679, 64679], "mapped", [1580, 1581]], [[64680, 64680], "mapped", [1580, 1605]], [[64681, 64681], "mapped", [1581, 1580]], [[64682, 64682], "mapped", [1581, 1605]], [[64683, 64683], "mapped", [1582, 1580]], [[64684, 64684], "mapped", [1582, 1605]], [[64685, 64685], "mapped", [1587, 1580]], [[64686, 64686], "mapped", [1587, 1581]], [[64687, 64687], "mapped", [1587, 1582]], [[64688, 64688], "mapped", [1587, 1605]], [[64689, 64689], "mapped", [1589, 1581]], [[64690, 64690], "mapped", [1589, 1582]], [[64691, 64691], "mapped", [1589, 1605]], [[64692, 64692], "mapped", [1590, 1580]], [[64693, 64693], "mapped", [1590, 1581]], [[64694, 64694], "mapped", [1590, 1582]], [[64695, 64695], "mapped", [1590, 1605]], [[64696, 64696], "mapped", [1591, 1581]], [[64697, 64697], "mapped", [1592, 1605]], [[64698, 64698], "mapped", [1593, 1580]], [[64699, 64699], "mapped", [1593, 1605]], [[64700, 64700], "mapped", [1594, 1580]], [[64701, 64701], "mapped", [1594, 1605]], [[64702, 64702], "mapped", [1601, 1580]], [[64703, 64703], "mapped", [1601, 1581]], [[64704, 64704], "mapped", [1601, 1582]], [[64705, 64705], "mapped", [1601, 1605]], [[64706, 64706], "mapped", [1602, 1581]], [[64707, 64707], "mapped", [1602, 1605]], [[64708, 64708], "mapped", [1603, 1580]], [[64709, 64709], "mapped", [1603, 1581]], [[64710, 64710], "mapped", [1603, 1582]], [[64711, 64711], "mapped", [1603, 1604]], [[64712, 64712], "mapped", [1603, 1605]], [[64713, 64713], "mapped", [1604, 1580]], [[64714, 64714], "mapped", [1604, 1581]], [[64715, 64715], "mapped", [1604, 1582]], [[64716, 64716], "mapped", [1604, 1605]], [[64717, 64717], "mapped", [1604, 1607]], [[64718, 64718], "mapped", [1605, 1580]], [[64719, 64719], "mapped", [1605, 1581]], [[64720, 64720], "mapped", [1605, 1582]], [[64721, 64721], "mapped", [1605, 1605]], [[64722, 64722], "mapped", [1606, 1580]], [[64723, 64723], "mapped", [1606, 1581]], [[64724, 64724], "mapped", [1606, 1582]], [[64725, 64725], "mapped", [1606, 1605]], [[64726, 64726], "mapped", [1606, 1607]], [[64727, 64727], "mapped", [1607, 1580]], [[64728, 64728], "mapped", [1607, 1605]], [[64729, 64729], "mapped", [1607, 1648]], [[64730, 64730], "mapped", [1610, 1580]], [[64731, 64731], "mapped", [1610, 1581]], [[64732, 64732], "mapped", [1610, 1582]], [[64733, 64733], "mapped", [1610, 1605]], [[64734, 64734], "mapped", [1610, 1607]], [[64735, 64735], "mapped", [1574, 1605]], [[64736, 64736], "mapped", [1574, 1607]], [[64737, 64737], "mapped", [1576, 1605]], [[64738, 64738], "mapped", [1576, 1607]], [[64739, 64739], "mapped", [1578, 1605]], [[64740, 64740], "mapped", [1578, 1607]], [[64741, 64741], "mapped", [1579, 1605]], [[64742, 64742], "mapped", [1579, 1607]], [[64743, 64743], "mapped", [1587, 1605]], [[64744, 64744], "mapped", [1587, 1607]], [[64745, 64745], "mapped", [1588, 1605]], [[64746, 64746], "mapped", [1588, 1607]], [[64747, 64747], "mapped", [1603, 1604]], [[64748, 64748], "mapped", [1603, 1605]], [[64749, 64749], "mapped", [1604, 1605]], [[64750, 64750], "mapped", [1606, 1605]], [[64751, 64751], "mapped", [1606, 1607]], [[64752, 64752], "mapped", [1610, 1605]], [[64753, 64753], "mapped", [1610, 1607]], [[64754, 64754], "mapped", [1600, 1614, 1617]], [[64755, 64755], "mapped", [1600, 1615, 1617]], [[64756, 64756], "mapped", [1600, 1616, 1617]], [[64757, 64757], "mapped", [1591, 1609]], [[64758, 64758], "mapped", [1591, 1610]], [[64759, 64759], "mapped", [1593, 1609]], [[64760, 64760], "mapped", [1593, 1610]], [[64761, 64761], "mapped", [1594, 1609]], [[64762, 64762], "mapped", [1594, 1610]], [[64763, 64763], "mapped", [1587, 1609]], [[64764, 64764], "mapped", [1587, 1610]], [[64765, 64765], "mapped", [1588, 1609]], [[64766, 64766], "mapped", [1588, 1610]], [[64767, 64767], "mapped", [1581, 1609]], [[64768, 64768], "mapped", [1581, 1610]], [[64769, 64769], "mapped", [1580, 1609]], [[64770, 64770], "mapped", [1580, 1610]], [[64771, 64771], "mapped", [1582, 1609]], [[64772, 64772], "mapped", [1582, 1610]], [[64773, 64773], "mapped", [1589, 1609]], [[64774, 64774], "mapped", [1589, 1610]], [[64775, 64775], "mapped", [1590, 1609]], [[64776, 64776], "mapped", [1590, 1610]], [[64777, 64777], "mapped", [1588, 1580]], [[64778, 64778], "mapped", [1588, 1581]], [[64779, 64779], "mapped", [1588, 1582]], [[64780, 64780], "mapped", [1588, 1605]], [[64781, 64781], "mapped", [1588, 1585]], [[64782, 64782], "mapped", [1587, 1585]], [[64783, 64783], "mapped", [1589, 1585]], [[64784, 64784], "mapped", [1590, 1585]], [[64785, 64785], "mapped", [1591, 1609]], [[64786, 64786], "mapped", [1591, 1610]], [[64787, 64787], "mapped", [1593, 1609]], [[64788, 64788], "mapped", [1593, 1610]], [[64789, 64789], "mapped", [1594, 1609]], [[64790, 64790], "mapped", [1594, 1610]], [[64791, 64791], "mapped", [1587, 1609]], [[64792, 64792], "mapped", [1587, 1610]], [[64793, 64793], "mapped", [1588, 1609]], [[64794, 64794], "mapped", [1588, 1610]], [[64795, 64795], "mapped", [1581, 1609]], [[64796, 64796], "mapped", [1581, 1610]], [[64797, 64797], "mapped", [1580, 1609]], [[64798, 64798], "mapped", [1580, 1610]], [[64799, 64799], "mapped", [1582, 1609]], [[64800, 64800], "mapped", [1582, 1610]], [[64801, 64801], "mapped", [1589, 1609]], [[64802, 64802], "mapped", [1589, 1610]], [[64803, 64803], "mapped", [1590, 1609]], [[64804, 64804], "mapped", [1590, 1610]], [[64805, 64805], "mapped", [1588, 1580]], [[64806, 64806], "mapped", [1588, 1581]], [[64807, 64807], "mapped", [1588, 1582]], [[64808, 64808], "mapped", [1588, 1605]], [[64809, 64809], "mapped", [1588, 1585]], [[64810, 64810], "mapped", [1587, 1585]], [[64811, 64811], "mapped", [1589, 1585]], [[64812, 64812], "mapped", [1590, 1585]], [[64813, 64813], "mapped", [1588, 1580]], [[64814, 64814], "mapped", [1588, 1581]], [[64815, 64815], "mapped", [1588, 1582]], [[64816, 64816], "mapped", [1588, 1605]], [[64817, 64817], "mapped", [1587, 1607]], [[64818, 64818], "mapped", [1588, 1607]], [[64819, 64819], "mapped", [1591, 1605]], [[64820, 64820], "mapped", [1587, 1580]], [[64821, 64821], "mapped", [1587, 1581]], [[64822, 64822], "mapped", [1587, 1582]], [[64823, 64823], "mapped", [1588, 1580]], [[64824, 64824], "mapped", [1588, 1581]], [[64825, 64825], "mapped", [1588, 1582]], [[64826, 64826], "mapped", [1591, 1605]], [[64827, 64827], "mapped", [1592, 1605]], [[64828, 64829], "mapped", [1575, 1611]], [[64830, 64831], "valid", [], "NV8"], [[64832, 64847], "disallowed"], [[64848, 64848], "mapped", [1578, 1580, 1605]], [[64849, 64850], "mapped", [1578, 1581, 1580]], [[64851, 64851], "mapped", [1578, 1581, 1605]], [[64852, 64852], "mapped", [1578, 1582, 1605]], [[64853, 64853], "mapped", [1578, 1605, 1580]], [[64854, 64854], "mapped", [1578, 1605, 1581]], [[64855, 64855], "mapped", [1578, 1605, 1582]], [[64856, 64857], "mapped", [1580, 1605, 1581]], [[64858, 64858], "mapped", [1581, 1605, 1610]], [[64859, 64859], "mapped", [1581, 1605, 1609]], [[64860, 64860], "mapped", [1587, 1581, 1580]], [[64861, 64861], "mapped", [1587, 1580, 1581]], [[64862, 64862], "mapped", [1587, 1580, 1609]], [[64863, 64864], "mapped", [1587, 1605, 1581]], [[64865, 64865], "mapped", [1587, 1605, 1580]], [[64866, 64867], "mapped", [1587, 1605, 1605]], [[64868, 64869], "mapped", [1589, 1581, 1581]], [[64870, 64870], "mapped", [1589, 1605, 1605]], [[64871, 64872], "mapped", [1588, 1581, 1605]], [[64873, 64873], "mapped", [1588, 1580, 1610]], [[64874, 64875], "mapped", [1588, 1605, 1582]], [[64876, 64877], "mapped", [1588, 1605, 1605]], [[64878, 64878], "mapped", [1590, 1581, 1609]], [[64879, 64880], "mapped", [1590, 1582, 1605]], [[64881, 64882], "mapped", [1591, 1605, 1581]], [[64883, 64883], "mapped", [1591, 1605, 1605]], [[64884, 64884], "mapped", [1591, 1605, 1610]], [[64885, 64885], "mapped", [1593, 1580, 1605]], [[64886, 64887], "mapped", [1593, 1605, 1605]], [[64888, 64888], "mapped", [1593, 1605, 1609]], [[64889, 64889], "mapped", [1594, 1605, 1605]], [[64890, 64890], "mapped", [1594, 1605, 1610]], [[64891, 64891], "mapped", [1594, 1605, 1609]], [[64892, 64893], "mapped", [1601, 1582, 1605]], [[64894, 64894], "mapped", [1602, 1605, 1581]], [[64895, 64895], "mapped", [1602, 1605, 1605]], [[64896, 64896], "mapped", [1604, 1581, 1605]], [[64897, 64897], "mapped", [1604, 1581, 1610]], [[64898, 64898], "mapped", [1604, 1581, 1609]], [[64899, 64900], "mapped", [1604, 1580, 1580]], [[64901, 64902], "mapped", [1604, 1582, 1605]], [[64903, 64904], "mapped", [1604, 1605, 1581]], [[64905, 64905], "mapped", [1605, 1581, 1580]], [[64906, 64906], "mapped", [1605, 1581, 1605]], [[64907, 64907], "mapped", [1605, 1581, 1610]], [[64908, 64908], "mapped", [1605, 1580, 1581]], [[64909, 64909], "mapped", [1605, 1580, 1605]], [[64910, 64910], "mapped", [1605, 1582, 1580]], [[64911, 64911], "mapped", [1605, 1582, 1605]], [[64912, 64913], "disallowed"], [[64914, 64914], "mapped", [1605, 1580, 1582]], [[64915, 64915], "mapped", [1607, 1605, 1580]], [[64916, 64916], "mapped", [1607, 1605, 1605]], [[64917, 64917], "mapped", [1606, 1581, 1605]], [[64918, 64918], "mapped", [1606, 1581, 1609]], [[64919, 64920], "mapped", [1606, 1580, 1605]], [[64921, 64921], "mapped", [1606, 1580, 1609]], [[64922, 64922], "mapped", [1606, 1605, 1610]], [[64923, 64923], "mapped", [1606, 1605, 1609]], [[64924, 64925], "mapped", [1610, 1605, 1605]], [[64926, 64926], "mapped", [1576, 1582, 1610]], [[64927, 64927], "mapped", [1578, 1580, 1610]], [[64928, 64928], "mapped", [1578, 1580, 1609]], [[64929, 64929], "mapped", [1578, 1582, 1610]], [[64930, 64930], "mapped", [1578, 1582, 1609]], [[64931, 64931], "mapped", [1578, 1605, 1610]], [[64932, 64932], "mapped", [1578, 1605, 1609]], [[64933, 64933], "mapped", [1580, 1605, 1610]], [[64934, 64934], "mapped", [1580, 1581, 1609]], [[64935, 64935], "mapped", [1580, 1605, 1609]], [[64936, 64936], "mapped", [1587, 1582, 1609]], [[64937, 64937], "mapped", [1589, 1581, 1610]], [[64938, 64938], "mapped", [1588, 1581, 1610]], [[64939, 64939], "mapped", [1590, 1581, 1610]], [[64940, 64940], "mapped", [1604, 1580, 1610]], [[64941, 64941], "mapped", [1604, 1605, 1610]], [[64942, 64942], "mapped", [1610, 1581, 1610]], [[64943, 64943], "mapped", [1610, 1580, 1610]], [[64944, 64944], "mapped", [1610, 1605, 1610]], [[64945, 64945], "mapped", [1605, 1605, 1610]], [[64946, 64946], "mapped", [1602, 1605, 1610]], [[64947, 64947], "mapped", [1606, 1581, 1610]], [[64948, 64948], "mapped", [1602, 1605, 1581]], [[64949, 64949], "mapped", [1604, 1581, 1605]], [[64950, 64950], "mapped", [1593, 1605, 1610]], [[64951, 64951], "mapped", [1603, 1605, 1610]], [[64952, 64952], "mapped", [1606, 1580, 1581]], [[64953, 64953], "mapped", [1605, 1582, 1610]], [[64954, 64954], "mapped", [1604, 1580, 1605]], [[64955, 64955], "mapped", [1603, 1605, 1605]], [[64956, 64956], "mapped", [1604, 1580, 1605]], [[64957, 64957], "mapped", [1606, 1580, 1581]], [[64958, 64958], "mapped", [1580, 1581, 1610]], [[64959, 64959], "mapped", [1581, 1580, 1610]], [[64960, 64960], "mapped", [1605, 1580, 1610]], [[64961, 64961], "mapped", [1601, 1605, 1610]], [[64962, 64962], "mapped", [1576, 1581, 1610]], [[64963, 64963], "mapped", [1603, 1605, 1605]], [[64964, 64964], "mapped", [1593, 1580, 1605]], [[64965, 64965], "mapped", [1589, 1605, 1605]], [[64966, 64966], "mapped", [1587, 1582, 1610]], [[64967, 64967], "mapped", [1606, 1580, 1610]], [[64968, 64975], "disallowed"], [[64976, 65007], "disallowed"], [[65008, 65008], "mapped", [1589, 1604, 1746]], [[65009, 65009], "mapped", [1602, 1604, 1746]], [[65010, 65010], "mapped", [1575, 1604, 1604, 1607]], [[65011, 65011], "mapped", [1575, 1603, 1576, 1585]], [[65012, 65012], "mapped", [1605, 1581, 1605, 1583]], [[65013, 65013], "mapped", [1589, 1604, 1593, 1605]], [[65014, 65014], "mapped", [1585, 1587, 1608, 1604]], [[65015, 65015], "mapped", [1593, 1604, 1610, 1607]], [[65016, 65016], "mapped", [1608, 1587, 1604, 1605]], [[65017, 65017], "mapped", [1589, 1604, 1609]], [[65018, 65018], "disallowed_STD3_mapped", [1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605]], [[65019, 65019], "disallowed_STD3_mapped", [1580, 1604, 32, 1580, 1604, 1575, 1604, 1607]], [[65020, 65020], "mapped", [1585, 1740, 1575, 1604]], [[65021, 65021], "valid", [], "NV8"], [[65022, 65023], "disallowed"], [[65024, 65039], "ignored"], [[65040, 65040], "disallowed_STD3_mapped", [44]], [[65041, 65041], "mapped", [12289]], [[65042, 65042], "disallowed"], [[65043, 65043], "disallowed_STD3_mapped", [58]], [[65044, 65044], "disallowed_STD3_mapped", [59]], [[65045, 65045], "disallowed_STD3_mapped", [33]], [[65046, 65046], "disallowed_STD3_mapped", [63]], [[65047, 65047], "mapped", [12310]], [[65048, 65048], "mapped", [12311]], [[65049, 65049], "disallowed"], [[65050, 65055], "disallowed"], [[65056, 65059], "valid"], [[65060, 65062], "valid"], [[65063, 65069], "valid"], [[65070, 65071], "valid"], [[65072, 65072], "disallowed"], [[65073, 65073], "mapped", [8212]], [[65074, 65074], "mapped", [8211]], [[65075, 65076], "disallowed_STD3_mapped", [95]], [[65077, 65077], "disallowed_STD3_mapped", [40]], [[65078, 65078], "disallowed_STD3_mapped", [41]], [[65079, 65079], "disallowed_STD3_mapped", [123]], [[65080, 65080], "disallowed_STD3_mapped", [125]], [[65081, 65081], "mapped", [12308]], [[65082, 65082], "mapped", [12309]], [[65083, 65083], "mapped", [12304]], [[65084, 65084], "mapped", [12305]], [[65085, 65085], "mapped", [12298]], [[65086, 65086], "mapped", [12299]], [[65087, 65087], "mapped", [12296]], [[65088, 65088], "mapped", [12297]], [[65089, 65089], "mapped", [12300]], [[65090, 65090], "mapped", [12301]], [[65091, 65091], "mapped", [12302]], [[65092, 65092], "mapped", [12303]], [[65093, 65094], "valid", [], "NV8"], [[65095, 65095], "disallowed_STD3_mapped", [91]], [[65096, 65096], "disallowed_STD3_mapped", [93]], [[65097, 65100], "disallowed_STD3_mapped", [32, 773]], [[65101, 65103], "disallowed_STD3_mapped", [95]], [[65104, 65104], "disallowed_STD3_mapped", [44]], [[65105, 65105], "mapped", [12289]], [[65106, 65106], "disallowed"], [[65107, 65107], "disallowed"], [[65108, 65108], "disallowed_STD3_mapped", [59]], [[65109, 65109], "disallowed_STD3_mapped", [58]], [[65110, 65110], "disallowed_STD3_mapped", [63]], [[65111, 65111], "disallowed_STD3_mapped", [33]], [[65112, 65112], "mapped", [8212]], [[65113, 65113], "disallowed_STD3_mapped", [40]], [[65114, 65114], "disallowed_STD3_mapped", [41]], [[65115, 65115], "disallowed_STD3_mapped", [123]], [[65116, 65116], "disallowed_STD3_mapped", [125]], [[65117, 65117], "mapped", [12308]], [[65118, 65118], "mapped", [12309]], [[65119, 65119], "disallowed_STD3_mapped", [35]], [[65120, 65120], "disallowed_STD3_mapped", [38]], [[65121, 65121], "disallowed_STD3_mapped", [42]], [[65122, 65122], "disallowed_STD3_mapped", [43]], [[65123, 65123], "mapped", [45]], [[65124, 65124], "disallowed_STD3_mapped", [60]], [[65125, 65125], "disallowed_STD3_mapped", [62]], [[65126, 65126], "disallowed_STD3_mapped", [61]], [[65127, 65127], "disallowed"], [[65128, 65128], "disallowed_STD3_mapped", [92]], [[65129, 65129], "disallowed_STD3_mapped", [36]], [[65130, 65130], "disallowed_STD3_mapped", [37]], [[65131, 65131], "disallowed_STD3_mapped", [64]], [[65132, 65135], "disallowed"], [[65136, 65136], "disallowed_STD3_mapped", [32, 1611]], [[65137, 65137], "mapped", [1600, 1611]], [[65138, 65138], "disallowed_STD3_mapped", [32, 1612]], [[65139, 65139], "valid"], [[65140, 65140], "disallowed_STD3_mapped", [32, 1613]], [[65141, 65141], "disallowed"], [[65142, 65142], "disallowed_STD3_mapped", [32, 1614]], [[65143, 65143], "mapped", [1600, 1614]], [[65144, 65144], "disallowed_STD3_mapped", [32, 1615]], [[65145, 65145], "mapped", [1600, 1615]], [[65146, 65146], "disallowed_STD3_mapped", [32, 1616]], [[65147, 65147], "mapped", [1600, 1616]], [[65148, 65148], "disallowed_STD3_mapped", [32, 1617]], [[65149, 65149], "mapped", [1600, 1617]], [[65150, 65150], "disallowed_STD3_mapped", [32, 1618]], [[65151, 65151], "mapped", [1600, 1618]], [[65152, 65152], "mapped", [1569]], [[65153, 65154], "mapped", [1570]], [[65155, 65156], "mapped", [1571]], [[65157, 65158], "mapped", [1572]], [[65159, 65160], "mapped", [1573]], [[65161, 65164], "mapped", [1574]], [[65165, 65166], "mapped", [1575]], [[65167, 65170], "mapped", [1576]], [[65171, 65172], "mapped", [1577]], [[65173, 65176], "mapped", [1578]], [[65177, 65180], "mapped", [1579]], [[65181, 65184], "mapped", [1580]], [[65185, 65188], "mapped", [1581]], [[65189, 65192], "mapped", [1582]], [[65193, 65194], "mapped", [1583]], [[65195, 65196], "mapped", [1584]], [[65197, 65198], "mapped", [1585]], [[65199, 65200], "mapped", [1586]], [[65201, 65204], "mapped", [1587]], [[65205, 65208], "mapped", [1588]], [[65209, 65212], "mapped", [1589]], [[65213, 65216], "mapped", [1590]], [[65217, 65220], "mapped", [1591]], [[65221, 65224], "mapped", [1592]], [[65225, 65228], "mapped", [1593]], [[65229, 65232], "mapped", [1594]], [[65233, 65236], "mapped", [1601]], [[65237, 65240], "mapped", [1602]], [[65241, 65244], "mapped", [1603]], [[65245, 65248], "mapped", [1604]], [[65249, 65252], "mapped", [1605]], [[65253, 65256], "mapped", [1606]], [[65257, 65260], "mapped", [1607]], [[65261, 65262], "mapped", [1608]], [[65263, 65264], "mapped", [1609]], [[65265, 65268], "mapped", [1610]], [[65269, 65270], "mapped", [1604, 1570]], [[65271, 65272], "mapped", [1604, 1571]], [[65273, 65274], "mapped", [1604, 1573]], [[65275, 65276], "mapped", [1604, 1575]], [[65277, 65278], "disallowed"], [[65279, 65279], "ignored"], [[65280, 65280], "disallowed"], [[65281, 65281], "disallowed_STD3_mapped", [33]], [[65282, 65282], "disallowed_STD3_mapped", [34]], [[65283, 65283], "disallowed_STD3_mapped", [35]], [[65284, 65284], "disallowed_STD3_mapped", [36]], [[65285, 65285], "disallowed_STD3_mapped", [37]], [[65286, 65286], "disallowed_STD3_mapped", [38]], [[65287, 65287], "disallowed_STD3_mapped", [39]], [[65288, 65288], "disallowed_STD3_mapped", [40]], [[65289, 65289], "disallowed_STD3_mapped", [41]], [[65290, 65290], "disallowed_STD3_mapped", [42]], [[65291, 65291], "disallowed_STD3_mapped", [43]], [[65292, 65292], "disallowed_STD3_mapped", [44]], [[65293, 65293], "mapped", [45]], [[65294, 65294], "mapped", [46]], [[65295, 65295], "disallowed_STD3_mapped", [47]], [[65296, 65296], "mapped", [48]], [[65297, 65297], "mapped", [49]], [[65298, 65298], "mapped", [50]], [[65299, 65299], "mapped", [51]], [[65300, 65300], "mapped", [52]], [[65301, 65301], "mapped", [53]], [[65302, 65302], "mapped", [54]], [[65303, 65303], "mapped", [55]], [[65304, 65304], "mapped", [56]], [[65305, 65305], "mapped", [57]], [[65306, 65306], "disallowed_STD3_mapped", [58]], [[65307, 65307], "disallowed_STD3_mapped", [59]], [[65308, 65308], "disallowed_STD3_mapped", [60]], [[65309, 65309], "disallowed_STD3_mapped", [61]], [[65310, 65310], "disallowed_STD3_mapped", [62]], [[65311, 65311], "disallowed_STD3_mapped", [63]], [[65312, 65312], "disallowed_STD3_mapped", [64]], [[65313, 65313], "mapped", [97]], [[65314, 65314], "mapped", [98]], [[65315, 65315], "mapped", [99]], [[65316, 65316], "mapped", [100]], [[65317, 65317], "mapped", [101]], [[65318, 65318], "mapped", [102]], [[65319, 65319], "mapped", [103]], [[65320, 65320], "mapped", [104]], [[65321, 65321], "mapped", [105]], [[65322, 65322], "mapped", [106]], [[65323, 65323], "mapped", [107]], [[65324, 65324], "mapped", [108]], [[65325, 65325], "mapped", [109]], [[65326, 65326], "mapped", [110]], [[65327, 65327], "mapped", [111]], [[65328, 65328], "mapped", [112]], [[65329, 65329], "mapped", [113]], [[65330, 65330], "mapped", [114]], [[65331, 65331], "mapped", [115]], [[65332, 65332], "mapped", [116]], [[65333, 65333], "mapped", [117]], [[65334, 65334], "mapped", [118]], [[65335, 65335], "mapped", [119]], [[65336, 65336], "mapped", [120]], [[65337, 65337], "mapped", [121]], [[65338, 65338], "mapped", [122]], [[65339, 65339], "disallowed_STD3_mapped", [91]], [[65340, 65340], "disallowed_STD3_mapped", [92]], [[65341, 65341], "disallowed_STD3_mapped", [93]], [[65342, 65342], "disallowed_STD3_mapped", [94]], [[65343, 65343], "disallowed_STD3_mapped", [95]], [[65344, 65344], "disallowed_STD3_mapped", [96]], [[65345, 65345], "mapped", [97]], [[65346, 65346], "mapped", [98]], [[65347, 65347], "mapped", [99]], [[65348, 65348], "mapped", [100]], [[65349, 65349], "mapped", [101]], [[65350, 65350], "mapped", [102]], [[65351, 65351], "mapped", [103]], [[65352, 65352], "mapped", [104]], [[65353, 65353], "mapped", [105]], [[65354, 65354], "mapped", [106]], [[65355, 65355], "mapped", [107]], [[65356, 65356], "mapped", [108]], [[65357, 65357], "mapped", [109]], [[65358, 65358], "mapped", [110]], [[65359, 65359], "mapped", [111]], [[65360, 65360], "mapped", [112]], [[65361, 65361], "mapped", [113]], [[65362, 65362], "mapped", [114]], [[65363, 65363], "mapped", [115]], [[65364, 65364], "mapped", [116]], [[65365, 65365], "mapped", [117]], [[65366, 65366], "mapped", [118]], [[65367, 65367], "mapped", [119]], [[65368, 65368], "mapped", [120]], [[65369, 65369], "mapped", [121]], [[65370, 65370], "mapped", [122]], [[65371, 65371], "disallowed_STD3_mapped", [123]], [[65372, 65372], "disallowed_STD3_mapped", [124]], [[65373, 65373], "disallowed_STD3_mapped", [125]], [[65374, 65374], "disallowed_STD3_mapped", [126]], [[65375, 65375], "mapped", [10629]], [[65376, 65376], "mapped", [10630]], [[65377, 65377], "mapped", [46]], [[65378, 65378], "mapped", [12300]], [[65379, 65379], "mapped", [12301]], [[65380, 65380], "mapped", [12289]], [[65381, 65381], "mapped", [12539]], [[65382, 65382], "mapped", [12530]], [[65383, 65383], "mapped", [12449]], [[65384, 65384], "mapped", [12451]], [[65385, 65385], "mapped", [12453]], [[65386, 65386], "mapped", [12455]], [[65387, 65387], "mapped", [12457]], [[65388, 65388], "mapped", [12515]], [[65389, 65389], "mapped", [12517]], [[65390, 65390], "mapped", [12519]], [[65391, 65391], "mapped", [12483]], [[65392, 65392], "mapped", [12540]], [[65393, 65393], "mapped", [12450]], [[65394, 65394], "mapped", [12452]], [[65395, 65395], "mapped", [12454]], [[65396, 65396], "mapped", [12456]], [[65397, 65397], "mapped", [12458]], [[65398, 65398], "mapped", [12459]], [[65399, 65399], "mapped", [12461]], [[65400, 65400], "mapped", [12463]], [[65401, 65401], "mapped", [12465]], [[65402, 65402], "mapped", [12467]], [[65403, 65403], "mapped", [12469]], [[65404, 65404], "mapped", [12471]], [[65405, 65405], "mapped", [12473]], [[65406, 65406], "mapped", [12475]], [[65407, 65407], "mapped", [12477]], [[65408, 65408], "mapped", [12479]], [[65409, 65409], "mapped", [12481]], [[65410, 65410], "mapped", [12484]], [[65411, 65411], "mapped", [12486]], [[65412, 65412], "mapped", [12488]], [[65413, 65413], "mapped", [12490]], [[65414, 65414], "mapped", [12491]], [[65415, 65415], "mapped", [12492]], [[65416, 65416], "mapped", [12493]], [[65417, 65417], "mapped", [12494]], [[65418, 65418], "mapped", [12495]], [[65419, 65419], "mapped", [12498]], [[65420, 65420], "mapped", [12501]], [[65421, 65421], "mapped", [12504]], [[65422, 65422], "mapped", [12507]], [[65423, 65423], "mapped", [12510]], [[65424, 65424], "mapped", [12511]], [[65425, 65425], "mapped", [12512]], [[65426, 65426], "mapped", [12513]], [[65427, 65427], "mapped", [12514]], [[65428, 65428], "mapped", [12516]], [[65429, 65429], "mapped", [12518]], [[65430, 65430], "mapped", [12520]], [[65431, 65431], "mapped", [12521]], [[65432, 65432], "mapped", [12522]], [[65433, 65433], "mapped", [12523]], [[65434, 65434], "mapped", [12524]], [[65435, 65435], "mapped", [12525]], [[65436, 65436], "mapped", [12527]], [[65437, 65437], "mapped", [12531]], [[65438, 65438], "mapped", [12441]], [[65439, 65439], "mapped", [12442]], [[65440, 65440], "disallowed"], [[65441, 65441], "mapped", [4352]], [[65442, 65442], "mapped", [4353]], [[65443, 65443], "mapped", [4522]], [[65444, 65444], "mapped", [4354]], [[65445, 65445], "mapped", [4524]], [[65446, 65446], "mapped", [4525]], [[65447, 65447], "mapped", [4355]], [[65448, 65448], "mapped", [4356]], [[65449, 65449], "mapped", [4357]], [[65450, 65450], "mapped", [4528]], [[65451, 65451], "mapped", [4529]], [[65452, 65452], "mapped", [4530]], [[65453, 65453], "mapped", [4531]], [[65454, 65454], "mapped", [4532]], [[65455, 65455], "mapped", [4533]], [[65456, 65456], "mapped", [4378]], [[65457, 65457], "mapped", [4358]], [[65458, 65458], "mapped", [4359]], [[65459, 65459], "mapped", [4360]], [[65460, 65460], "mapped", [4385]], [[65461, 65461], "mapped", [4361]], [[65462, 65462], "mapped", [4362]], [[65463, 65463], "mapped", [4363]], [[65464, 65464], "mapped", [4364]], [[65465, 65465], "mapped", [4365]], [[65466, 65466], "mapped", [4366]], [[65467, 65467], "mapped", [4367]], [[65468, 65468], "mapped", [4368]], [[65469, 65469], "mapped", [4369]], [[65470, 65470], "mapped", [4370]], [[65471, 65473], "disallowed"], [[65474, 65474], "mapped", [4449]], [[65475, 65475], "mapped", [4450]], [[65476, 65476], "mapped", [4451]], [[65477, 65477], "mapped", [4452]], [[65478, 65478], "mapped", [4453]], [[65479, 65479], "mapped", [4454]], [[65480, 65481], "disallowed"], [[65482, 65482], "mapped", [4455]], [[65483, 65483], "mapped", [4456]], [[65484, 65484], "mapped", [4457]], [[65485, 65485], "mapped", [4458]], [[65486, 65486], "mapped", [4459]], [[65487, 65487], "mapped", [4460]], [[65488, 65489], "disallowed"], [[65490, 65490], "mapped", [4461]], [[65491, 65491], "mapped", [4462]], [[65492, 65492], "mapped", [4463]], [[65493, 65493], "mapped", [4464]], [[65494, 65494], "mapped", [4465]], [[65495, 65495], "mapped", [4466]], [[65496, 65497], "disallowed"], [[65498, 65498], "mapped", [4467]], [[65499, 65499], "mapped", [4468]], [[65500, 65500], "mapped", [4469]], [[65501, 65503], "disallowed"], [[65504, 65504], "mapped", [162]], [[65505, 65505], "mapped", [163]], [[65506, 65506], "mapped", [172]], [[65507, 65507], "disallowed_STD3_mapped", [32, 772]], [[65508, 65508], "mapped", [166]], [[65509, 65509], "mapped", [165]], [[65510, 65510], "mapped", [8361]], [[65511, 65511], "disallowed"], [[65512, 65512], "mapped", [9474]], [[65513, 65513], "mapped", [8592]], [[65514, 65514], "mapped", [8593]], [[65515, 65515], "mapped", [8594]], [[65516, 65516], "mapped", [8595]], [[65517, 65517], "mapped", [9632]], [[65518, 65518], "mapped", [9675]], [[65519, 65528], "disallowed"], [[65529, 65531], "disallowed"], [[65532, 65532], "disallowed"], [[65533, 65533], "disallowed"], [[65534, 65535], "disallowed"], [[65536, 65547], "valid"], [[65548, 65548], "disallowed"], [[65549, 65574], "valid"], [[65575, 65575], "disallowed"], [[65576, 65594], "valid"], [[65595, 65595], "disallowed"], [[65596, 65597], "valid"], [[65598, 65598], "disallowed"], [[65599, 65613], "valid"], [[65614, 65615], "disallowed"], [[65616, 65629], "valid"], [[65630, 65663], "disallowed"], [[65664, 65786], "valid"], [[65787, 65791], "disallowed"], [[65792, 65794], "valid", [], "NV8"], [[65795, 65798], "disallowed"], [[65799, 65843], "valid", [], "NV8"], [[65844, 65846], "disallowed"], [[65847, 65855], "valid", [], "NV8"], [[65856, 65930], "valid", [], "NV8"], [[65931, 65932], "valid", [], "NV8"], [[65933, 65935], "disallowed"], [[65936, 65947], "valid", [], "NV8"], [[65948, 65951], "disallowed"], [[65952, 65952], "valid", [], "NV8"], [[65953, 65999], "disallowed"], [[66e3, 66044], "valid", [], "NV8"], [[66045, 66045], "valid"], [[66046, 66175], "disallowed"], [[66176, 66204], "valid"], [[66205, 66207], "disallowed"], [[66208, 66256], "valid"], [[66257, 66271], "disallowed"], [[66272, 66272], "valid"], [[66273, 66299], "valid", [], "NV8"], [[66300, 66303], "disallowed"], [[66304, 66334], "valid"], [[66335, 66335], "valid"], [[66336, 66339], "valid", [], "NV8"], [[66340, 66351], "disallowed"], [[66352, 66368], "valid"], [[66369, 66369], "valid", [], "NV8"], [[66370, 66377], "valid"], [[66378, 66378], "valid", [], "NV8"], [[66379, 66383], "disallowed"], [[66384, 66426], "valid"], [[66427, 66431], "disallowed"], [[66432, 66461], "valid"], [[66462, 66462], "disallowed"], [[66463, 66463], "valid", [], "NV8"], [[66464, 66499], "valid"], [[66500, 66503], "disallowed"], [[66504, 66511], "valid"], [[66512, 66517], "valid", [], "NV8"], [[66518, 66559], "disallowed"], [[66560, 66560], "mapped", [66600]], [[66561, 66561], "mapped", [66601]], [[66562, 66562], "mapped", [66602]], [[66563, 66563], "mapped", [66603]], [[66564, 66564], "mapped", [66604]], [[66565, 66565], "mapped", [66605]], [[66566, 66566], "mapped", [66606]], [[66567, 66567], "mapped", [66607]], [[66568, 66568], "mapped", [66608]], [[66569, 66569], "mapped", [66609]], [[66570, 66570], "mapped", [66610]], [[66571, 66571], "mapped", [66611]], [[66572, 66572], "mapped", [66612]], [[66573, 66573], "mapped", [66613]], [[66574, 66574], "mapped", [66614]], [[66575, 66575], "mapped", [66615]], [[66576, 66576], "mapped", [66616]], [[66577, 66577], "mapped", [66617]], [[66578, 66578], "mapped", [66618]], [[66579, 66579], "mapped", [66619]], [[66580, 66580], "mapped", [66620]], [[66581, 66581], "mapped", [66621]], [[66582, 66582], "mapped", [66622]], [[66583, 66583], "mapped", [66623]], [[66584, 66584], "mapped", [66624]], [[66585, 66585], "mapped", [66625]], [[66586, 66586], "mapped", [66626]], [[66587, 66587], "mapped", [66627]], [[66588, 66588], "mapped", [66628]], [[66589, 66589], "mapped", [66629]], [[66590, 66590], "mapped", [66630]], [[66591, 66591], "mapped", [66631]], [[66592, 66592], "mapped", [66632]], [[66593, 66593], "mapped", [66633]], [[66594, 66594], "mapped", [66634]], [[66595, 66595], "mapped", [66635]], [[66596, 66596], "mapped", [66636]], [[66597, 66597], "mapped", [66637]], [[66598, 66598], "mapped", [66638]], [[66599, 66599], "mapped", [66639]], [[66600, 66637], "valid"], [[66638, 66717], "valid"], [[66718, 66719], "disallowed"], [[66720, 66729], "valid"], [[66730, 66815], "disallowed"], [[66816, 66855], "valid"], [[66856, 66863], "disallowed"], [[66864, 66915], "valid"], [[66916, 66926], "disallowed"], [[66927, 66927], "valid", [], "NV8"], [[66928, 67071], "disallowed"], [[67072, 67382], "valid"], [[67383, 67391], "disallowed"], [[67392, 67413], "valid"], [[67414, 67423], "disallowed"], [[67424, 67431], "valid"], [[67432, 67583], "disallowed"], [[67584, 67589], "valid"], [[67590, 67591], "disallowed"], [[67592, 67592], "valid"], [[67593, 67593], "disallowed"], [[67594, 67637], "valid"], [[67638, 67638], "disallowed"], [[67639, 67640], "valid"], [[67641, 67643], "disallowed"], [[67644, 67644], "valid"], [[67645, 67646], "disallowed"], [[67647, 67647], "valid"], [[67648, 67669], "valid"], [[67670, 67670], "disallowed"], [[67671, 67679], "valid", [], "NV8"], [[67680, 67702], "valid"], [[67703, 67711], "valid", [], "NV8"], [[67712, 67742], "valid"], [[67743, 67750], "disallowed"], [[67751, 67759], "valid", [], "NV8"], [[67760, 67807], "disallowed"], [[67808, 67826], "valid"], [[67827, 67827], "disallowed"], [[67828, 67829], "valid"], [[67830, 67834], "disallowed"], [[67835, 67839], "valid", [], "NV8"], [[67840, 67861], "valid"], [[67862, 67865], "valid", [], "NV8"], [[67866, 67867], "valid", [], "NV8"], [[67868, 67870], "disallowed"], [[67871, 67871], "valid", [], "NV8"], [[67872, 67897], "valid"], [[67898, 67902], "disallowed"], [[67903, 67903], "valid", [], "NV8"], [[67904, 67967], "disallowed"], [[67968, 68023], "valid"], [[68024, 68027], "disallowed"], [[68028, 68029], "valid", [], "NV8"], [[68030, 68031], "valid"], [[68032, 68047], "valid", [], "NV8"], [[68048, 68049], "disallowed"], [[68050, 68095], "valid", [], "NV8"], [[68096, 68099], "valid"], [[68100, 68100], "disallowed"], [[68101, 68102], "valid"], [[68103, 68107], "disallowed"], [[68108, 68115], "valid"], [[68116, 68116], "disallowed"], [[68117, 68119], "valid"], [[68120, 68120], "disallowed"], [[68121, 68147], "valid"], [[68148, 68151], "disallowed"], [[68152, 68154], "valid"], [[68155, 68158], "disallowed"], [[68159, 68159], "valid"], [[68160, 68167], "valid", [], "NV8"], [[68168, 68175], "disallowed"], [[68176, 68184], "valid", [], "NV8"], [[68185, 68191], "disallowed"], [[68192, 68220], "valid"], [[68221, 68223], "valid", [], "NV8"], [[68224, 68252], "valid"], [[68253, 68255], "valid", [], "NV8"], [[68256, 68287], "disallowed"], [[68288, 68295], "valid"], [[68296, 68296], "valid", [], "NV8"], [[68297, 68326], "valid"], [[68327, 68330], "disallowed"], [[68331, 68342], "valid", [], "NV8"], [[68343, 68351], "disallowed"], [[68352, 68405], "valid"], [[68406, 68408], "disallowed"], [[68409, 68415], "valid", [], "NV8"], [[68416, 68437], "valid"], [[68438, 68439], "disallowed"], [[68440, 68447], "valid", [], "NV8"], [[68448, 68466], "valid"], [[68467, 68471], "disallowed"], [[68472, 68479], "valid", [], "NV8"], [[68480, 68497], "valid"], [[68498, 68504], "disallowed"], [[68505, 68508], "valid", [], "NV8"], [[68509, 68520], "disallowed"], [[68521, 68527], "valid", [], "NV8"], [[68528, 68607], "disallowed"], [[68608, 68680], "valid"], [[68681, 68735], "disallowed"], [[68736, 68736], "mapped", [68800]], [[68737, 68737], "mapped", [68801]], [[68738, 68738], "mapped", [68802]], [[68739, 68739], "mapped", [68803]], [[68740, 68740], "mapped", [68804]], [[68741, 68741], "mapped", [68805]], [[68742, 68742], "mapped", [68806]], [[68743, 68743], "mapped", [68807]], [[68744, 68744], "mapped", [68808]], [[68745, 68745], "mapped", [68809]], [[68746, 68746], "mapped", [68810]], [[68747, 68747], "mapped", [68811]], [[68748, 68748], "mapped", [68812]], [[68749, 68749], "mapped", [68813]], [[68750, 68750], "mapped", [68814]], [[68751, 68751], "mapped", [68815]], [[68752, 68752], "mapped", [68816]], [[68753, 68753], "mapped", [68817]], [[68754, 68754], "mapped", [68818]], [[68755, 68755], "mapped", [68819]], [[68756, 68756], "mapped", [68820]], [[68757, 68757], "mapped", [68821]], [[68758, 68758], "mapped", [68822]], [[68759, 68759], "mapped", [68823]], [[68760, 68760], "mapped", [68824]], [[68761, 68761], "mapped", [68825]], [[68762, 68762], "mapped", [68826]], [[68763, 68763], "mapped", [68827]], [[68764, 68764], "mapped", [68828]], [[68765, 68765], "mapped", [68829]], [[68766, 68766], "mapped", [68830]], [[68767, 68767], "mapped", [68831]], [[68768, 68768], "mapped", [68832]], [[68769, 68769], "mapped", [68833]], [[68770, 68770], "mapped", [68834]], [[68771, 68771], "mapped", [68835]], [[68772, 68772], "mapped", [68836]], [[68773, 68773], "mapped", [68837]], [[68774, 68774], "mapped", [68838]], [[68775, 68775], "mapped", [68839]], [[68776, 68776], "mapped", [68840]], [[68777, 68777], "mapped", [68841]], [[68778, 68778], "mapped", [68842]], [[68779, 68779], "mapped", [68843]], [[68780, 68780], "mapped", [68844]], [[68781, 68781], "mapped", [68845]], [[68782, 68782], "mapped", [68846]], [[68783, 68783], "mapped", [68847]], [[68784, 68784], "mapped", [68848]], [[68785, 68785], "mapped", [68849]], [[68786, 68786], "mapped", [68850]], [[68787, 68799], "disallowed"], [[68800, 68850], "valid"], [[68851, 68857], "disallowed"], [[68858, 68863], "valid", [], "NV8"], [[68864, 69215], "disallowed"], [[69216, 69246], "valid", [], "NV8"], [[69247, 69631], "disallowed"], [[69632, 69702], "valid"], [[69703, 69709], "valid", [], "NV8"], [[69710, 69713], "disallowed"], [[69714, 69733], "valid", [], "NV8"], [[69734, 69743], "valid"], [[69744, 69758], "disallowed"], [[69759, 69759], "valid"], [[69760, 69818], "valid"], [[69819, 69820], "valid", [], "NV8"], [[69821, 69821], "disallowed"], [[69822, 69825], "valid", [], "NV8"], [[69826, 69839], "disallowed"], [[69840, 69864], "valid"], [[69865, 69871], "disallowed"], [[69872, 69881], "valid"], [[69882, 69887], "disallowed"], [[69888, 69940], "valid"], [[69941, 69941], "disallowed"], [[69942, 69951], "valid"], [[69952, 69955], "valid", [], "NV8"], [[69956, 69967], "disallowed"], [[69968, 70003], "valid"], [[70004, 70005], "valid", [], "NV8"], [[70006, 70006], "valid"], [[70007, 70015], "disallowed"], [[70016, 70084], "valid"], [[70085, 70088], "valid", [], "NV8"], [[70089, 70089], "valid", [], "NV8"], [[70090, 70092], "valid"], [[70093, 70093], "valid", [], "NV8"], [[70094, 70095], "disallowed"], [[70096, 70105], "valid"], [[70106, 70106], "valid"], [[70107, 70107], "valid", [], "NV8"], [[70108, 70108], "valid"], [[70109, 70111], "valid", [], "NV8"], [[70112, 70112], "disallowed"], [[70113, 70132], "valid", [], "NV8"], [[70133, 70143], "disallowed"], [[70144, 70161], "valid"], [[70162, 70162], "disallowed"], [[70163, 70199], "valid"], [[70200, 70205], "valid", [], "NV8"], [[70206, 70271], "disallowed"], [[70272, 70278], "valid"], [[70279, 70279], "disallowed"], [[70280, 70280], "valid"], [[70281, 70281], "disallowed"], [[70282, 70285], "valid"], [[70286, 70286], "disallowed"], [[70287, 70301], "valid"], [[70302, 70302], "disallowed"], [[70303, 70312], "valid"], [[70313, 70313], "valid", [], "NV8"], [[70314, 70319], "disallowed"], [[70320, 70378], "valid"], [[70379, 70383], "disallowed"], [[70384, 70393], "valid"], [[70394, 70399], "disallowed"], [[70400, 70400], "valid"], [[70401, 70403], "valid"], [[70404, 70404], "disallowed"], [[70405, 70412], "valid"], [[70413, 70414], "disallowed"], [[70415, 70416], "valid"], [[70417, 70418], "disallowed"], [[70419, 70440], "valid"], [[70441, 70441], "disallowed"], [[70442, 70448], "valid"], [[70449, 70449], "disallowed"], [[70450, 70451], "valid"], [[70452, 70452], "disallowed"], [[70453, 70457], "valid"], [[70458, 70459], "disallowed"], [[70460, 70468], "valid"], [[70469, 70470], "disallowed"], [[70471, 70472], "valid"], [[70473, 70474], "disallowed"], [[70475, 70477], "valid"], [[70478, 70479], "disallowed"], [[70480, 70480], "valid"], [[70481, 70486], "disallowed"], [[70487, 70487], "valid"], [[70488, 70492], "disallowed"], [[70493, 70499], "valid"], [[70500, 70501], "disallowed"], [[70502, 70508], "valid"], [[70509, 70511], "disallowed"], [[70512, 70516], "valid"], [[70517, 70783], "disallowed"], [[70784, 70853], "valid"], [[70854, 70854], "valid", [], "NV8"], [[70855, 70855], "valid"], [[70856, 70863], "disallowed"], [[70864, 70873], "valid"], [[70874, 71039], "disallowed"], [[71040, 71093], "valid"], [[71094, 71095], "disallowed"], [[71096, 71104], "valid"], [[71105, 71113], "valid", [], "NV8"], [[71114, 71127], "valid", [], "NV8"], [[71128, 71133], "valid"], [[71134, 71167], "disallowed"], [[71168, 71232], "valid"], [[71233, 71235], "valid", [], "NV8"], [[71236, 71236], "valid"], [[71237, 71247], "disallowed"], [[71248, 71257], "valid"], [[71258, 71295], "disallowed"], [[71296, 71351], "valid"], [[71352, 71359], "disallowed"], [[71360, 71369], "valid"], [[71370, 71423], "disallowed"], [[71424, 71449], "valid"], [[71450, 71452], "disallowed"], [[71453, 71467], "valid"], [[71468, 71471], "disallowed"], [[71472, 71481], "valid"], [[71482, 71487], "valid", [], "NV8"], [[71488, 71839], "disallowed"], [[71840, 71840], "mapped", [71872]], [[71841, 71841], "mapped", [71873]], [[71842, 71842], "mapped", [71874]], [[71843, 71843], "mapped", [71875]], [[71844, 71844], "mapped", [71876]], [[71845, 71845], "mapped", [71877]], [[71846, 71846], "mapped", [71878]], [[71847, 71847], "mapped", [71879]], [[71848, 71848], "mapped", [71880]], [[71849, 71849], "mapped", [71881]], [[71850, 71850], "mapped", [71882]], [[71851, 71851], "mapped", [71883]], [[71852, 71852], "mapped", [71884]], [[71853, 71853], "mapped", [71885]], [[71854, 71854], "mapped", [71886]], [[71855, 71855], "mapped", [71887]], [[71856, 71856], "mapped", [71888]], [[71857, 71857], "mapped", [71889]], [[71858, 71858], "mapped", [71890]], [[71859, 71859], "mapped", [71891]], [[71860, 71860], "mapped", [71892]], [[71861, 71861], "mapped", [71893]], [[71862, 71862], "mapped", [71894]], [[71863, 71863], "mapped", [71895]], [[71864, 71864], "mapped", [71896]], [[71865, 71865], "mapped", [71897]], [[71866, 71866], "mapped", [71898]], [[71867, 71867], "mapped", [71899]], [[71868, 71868], "mapped", [71900]], [[71869, 71869], "mapped", [71901]], [[71870, 71870], "mapped", [71902]], [[71871, 71871], "mapped", [71903]], [[71872, 71913], "valid"], [[71914, 71922], "valid", [], "NV8"], [[71923, 71934], "disallowed"], [[71935, 71935], "valid"], [[71936, 72383], "disallowed"], [[72384, 72440], "valid"], [[72441, 73727], "disallowed"], [[73728, 74606], "valid"], [[74607, 74648], "valid"], [[74649, 74649], "valid"], [[74650, 74751], "disallowed"], [[74752, 74850], "valid", [], "NV8"], [[74851, 74862], "valid", [], "NV8"], [[74863, 74863], "disallowed"], [[74864, 74867], "valid", [], "NV8"], [[74868, 74868], "valid", [], "NV8"], [[74869, 74879], "disallowed"], [[74880, 75075], "valid"], [[75076, 77823], "disallowed"], [[77824, 78894], "valid"], [[78895, 82943], "disallowed"], [[82944, 83526], "valid"], [[83527, 92159], "disallowed"], [[92160, 92728], "valid"], [[92729, 92735], "disallowed"], [[92736, 92766], "valid"], [[92767, 92767], "disallowed"], [[92768, 92777], "valid"], [[92778, 92781], "disallowed"], [[92782, 92783], "valid", [], "NV8"], [[92784, 92879], "disallowed"], [[92880, 92909], "valid"], [[92910, 92911], "disallowed"], [[92912, 92916], "valid"], [[92917, 92917], "valid", [], "NV8"], [[92918, 92927], "disallowed"], [[92928, 92982], "valid"], [[92983, 92991], "valid", [], "NV8"], [[92992, 92995], "valid"], [[92996, 92997], "valid", [], "NV8"], [[92998, 93007], "disallowed"], [[93008, 93017], "valid"], [[93018, 93018], "disallowed"], [[93019, 93025], "valid", [], "NV8"], [[93026, 93026], "disallowed"], [[93027, 93047], "valid"], [[93048, 93052], "disallowed"], [[93053, 93071], "valid"], [[93072, 93951], "disallowed"], [[93952, 94020], "valid"], [[94021, 94031], "disallowed"], [[94032, 94078], "valid"], [[94079, 94094], "disallowed"], [[94095, 94111], "valid"], [[94112, 110591], "disallowed"], [[110592, 110593], "valid"], [[110594, 113663], "disallowed"], [[113664, 113770], "valid"], [[113771, 113775], "disallowed"], [[113776, 113788], "valid"], [[113789, 113791], "disallowed"], [[113792, 113800], "valid"], [[113801, 113807], "disallowed"], [[113808, 113817], "valid"], [[113818, 113819], "disallowed"], [[113820, 113820], "valid", [], "NV8"], [[113821, 113822], "valid"], [[113823, 113823], "valid", [], "NV8"], [[113824, 113827], "ignored"], [[113828, 118783], "disallowed"], [[118784, 119029], "valid", [], "NV8"], [[119030, 119039], "disallowed"], [[119040, 119078], "valid", [], "NV8"], [[119079, 119080], "disallowed"], [[119081, 119081], "valid", [], "NV8"], [[119082, 119133], "valid", [], "NV8"], [[119134, 119134], "mapped", [119127, 119141]], [[119135, 119135], "mapped", [119128, 119141]], [[119136, 119136], "mapped", [119128, 119141, 119150]], [[119137, 119137], "mapped", [119128, 119141, 119151]], [[119138, 119138], "mapped", [119128, 119141, 119152]], [[119139, 119139], "mapped", [119128, 119141, 119153]], [[119140, 119140], "mapped", [119128, 119141, 119154]], [[119141, 119154], "valid", [], "NV8"], [[119155, 119162], "disallowed"], [[119163, 119226], "valid", [], "NV8"], [[119227, 119227], "mapped", [119225, 119141]], [[119228, 119228], "mapped", [119226, 119141]], [[119229, 119229], "mapped", [119225, 119141, 119150]], [[119230, 119230], "mapped", [119226, 119141, 119150]], [[119231, 119231], "mapped", [119225, 119141, 119151]], [[119232, 119232], "mapped", [119226, 119141, 119151]], [[119233, 119261], "valid", [], "NV8"], [[119262, 119272], "valid", [], "NV8"], [[119273, 119295], "disallowed"], [[119296, 119365], "valid", [], "NV8"], [[119366, 119551], "disallowed"], [[119552, 119638], "valid", [], "NV8"], [[119639, 119647], "disallowed"], [[119648, 119665], "valid", [], "NV8"], [[119666, 119807], "disallowed"], [[119808, 119808], "mapped", [97]], [[119809, 119809], "mapped", [98]], [[119810, 119810], "mapped", [99]], [[119811, 119811], "mapped", [100]], [[119812, 119812], "mapped", [101]], [[119813, 119813], "mapped", [102]], [[119814, 119814], "mapped", [103]], [[119815, 119815], "mapped", [104]], [[119816, 119816], "mapped", [105]], [[119817, 119817], "mapped", [106]], [[119818, 119818], "mapped", [107]], [[119819, 119819], "mapped", [108]], [[119820, 119820], "mapped", [109]], [[119821, 119821], "mapped", [110]], [[119822, 119822], "mapped", [111]], [[119823, 119823], "mapped", [112]], [[119824, 119824], "mapped", [113]], [[119825, 119825], "mapped", [114]], [[119826, 119826], "mapped", [115]], [[119827, 119827], "mapped", [116]], [[119828, 119828], "mapped", [117]], [[119829, 119829], "mapped", [118]], [[119830, 119830], "mapped", [119]], [[119831, 119831], "mapped", [120]], [[119832, 119832], "mapped", [121]], [[119833, 119833], "mapped", [122]], [[119834, 119834], "mapped", [97]], [[119835, 119835], "mapped", [98]], [[119836, 119836], "mapped", [99]], [[119837, 119837], "mapped", [100]], [[119838, 119838], "mapped", [101]], [[119839, 119839], "mapped", [102]], [[119840, 119840], "mapped", [103]], [[119841, 119841], "mapped", [104]], [[119842, 119842], "mapped", [105]], [[119843, 119843], "mapped", [106]], [[119844, 119844], "mapped", [107]], [[119845, 119845], "mapped", [108]], [[119846, 119846], "mapped", [109]], [[119847, 119847], "mapped", [110]], [[119848, 119848], "mapped", [111]], [[119849, 119849], "mapped", [112]], [[119850, 119850], "mapped", [113]], [[119851, 119851], "mapped", [114]], [[119852, 119852], "mapped", [115]], [[119853, 119853], "mapped", [116]], [[119854, 119854], "mapped", [117]], [[119855, 119855], "mapped", [118]], [[119856, 119856], "mapped", [119]], [[119857, 119857], "mapped", [120]], [[119858, 119858], "mapped", [121]], [[119859, 119859], "mapped", [122]], [[119860, 119860], "mapped", [97]], [[119861, 119861], "mapped", [98]], [[119862, 119862], "mapped", [99]], [[119863, 119863], "mapped", [100]], [[119864, 119864], "mapped", [101]], [[119865, 119865], "mapped", [102]], [[119866, 119866], "mapped", [103]], [[119867, 119867], "mapped", [104]], [[119868, 119868], "mapped", [105]], [[119869, 119869], "mapped", [106]], [[119870, 119870], "mapped", [107]], [[119871, 119871], "mapped", [108]], [[119872, 119872], "mapped", [109]], [[119873, 119873], "mapped", [110]], [[119874, 119874], "mapped", [111]], [[119875, 119875], "mapped", [112]], [[119876, 119876], "mapped", [113]], [[119877, 119877], "mapped", [114]], [[119878, 119878], "mapped", [115]], [[119879, 119879], "mapped", [116]], [[119880, 119880], "mapped", [117]], [[119881, 119881], "mapped", [118]], [[119882, 119882], "mapped", [119]], [[119883, 119883], "mapped", [120]], [[119884, 119884], "mapped", [121]], [[119885, 119885], "mapped", [122]], [[119886, 119886], "mapped", [97]], [[119887, 119887], "mapped", [98]], [[119888, 119888], "mapped", [99]], [[119889, 119889], "mapped", [100]], [[119890, 119890], "mapped", [101]], [[119891, 119891], "mapped", [102]], [[119892, 119892], "mapped", [103]], [[119893, 119893], "disallowed"], [[119894, 119894], "mapped", [105]], [[119895, 119895], "mapped", [106]], [[119896, 119896], "mapped", [107]], [[119897, 119897], "mapped", [108]], [[119898, 119898], "mapped", [109]], [[119899, 119899], "mapped", [110]], [[119900, 119900], "mapped", [111]], [[119901, 119901], "mapped", [112]], [[119902, 119902], "mapped", [113]], [[119903, 119903], "mapped", [114]], [[119904, 119904], "mapped", [115]], [[119905, 119905], "mapped", [116]], [[119906, 119906], "mapped", [117]], [[119907, 119907], "mapped", [118]], [[119908, 119908], "mapped", [119]], [[119909, 119909], "mapped", [120]], [[119910, 119910], "mapped", [121]], [[119911, 119911], "mapped", [122]], [[119912, 119912], "mapped", [97]], [[119913, 119913], "mapped", [98]], [[119914, 119914], "mapped", [99]], [[119915, 119915], "mapped", [100]], [[119916, 119916], "mapped", [101]], [[119917, 119917], "mapped", [102]], [[119918, 119918], "mapped", [103]], [[119919, 119919], "mapped", [104]], [[119920, 119920], "mapped", [105]], [[119921, 119921], "mapped", [106]], [[119922, 119922], "mapped", [107]], [[119923, 119923], "mapped", [108]], [[119924, 119924], "mapped", [109]], [[119925, 119925], "mapped", [110]], [[119926, 119926], "mapped", [111]], [[119927, 119927], "mapped", [112]], [[119928, 119928], "mapped", [113]], [[119929, 119929], "mapped", [114]], [[119930, 119930], "mapped", [115]], [[119931, 119931], "mapped", [116]], [[119932, 119932], "mapped", [117]], [[119933, 119933], "mapped", [118]], [[119934, 119934], "mapped", [119]], [[119935, 119935], "mapped", [120]], [[119936, 119936], "mapped", [121]], [[119937, 119937], "mapped", [122]], [[119938, 119938], "mapped", [97]], [[119939, 119939], "mapped", [98]], [[119940, 119940], "mapped", [99]], [[119941, 119941], "mapped", [100]], [[119942, 119942], "mapped", [101]], [[119943, 119943], "mapped", [102]], [[119944, 119944], "mapped", [103]], [[119945, 119945], "mapped", [104]], [[119946, 119946], "mapped", [105]], [[119947, 119947], "mapped", [106]], [[119948, 119948], "mapped", [107]], [[119949, 119949], "mapped", [108]], [[119950, 119950], "mapped", [109]], [[119951, 119951], "mapped", [110]], [[119952, 119952], "mapped", [111]], [[119953, 119953], "mapped", [112]], [[119954, 119954], "mapped", [113]], [[119955, 119955], "mapped", [114]], [[119956, 119956], "mapped", [115]], [[119957, 119957], "mapped", [116]], [[119958, 119958], "mapped", [117]], [[119959, 119959], "mapped", [118]], [[119960, 119960], "mapped", [119]], [[119961, 119961], "mapped", [120]], [[119962, 119962], "mapped", [121]], [[119963, 119963], "mapped", [122]], [[119964, 119964], "mapped", [97]], [[119965, 119965], "disallowed"], [[119966, 119966], "mapped", [99]], [[119967, 119967], "mapped", [100]], [[119968, 119969], "disallowed"], [[119970, 119970], "mapped", [103]], [[119971, 119972], "disallowed"], [[119973, 119973], "mapped", [106]], [[119974, 119974], "mapped", [107]], [[119975, 119976], "disallowed"], [[119977, 119977], "mapped", [110]], [[119978, 119978], "mapped", [111]], [[119979, 119979], "mapped", [112]], [[119980, 119980], "mapped", [113]], [[119981, 119981], "disallowed"], [[119982, 119982], "mapped", [115]], [[119983, 119983], "mapped", [116]], [[119984, 119984], "mapped", [117]], [[119985, 119985], "mapped", [118]], [[119986, 119986], "mapped", [119]], [[119987, 119987], "mapped", [120]], [[119988, 119988], "mapped", [121]], [[119989, 119989], "mapped", [122]], [[119990, 119990], "mapped", [97]], [[119991, 119991], "mapped", [98]], [[119992, 119992], "mapped", [99]], [[119993, 119993], "mapped", [100]], [[119994, 119994], "disallowed"], [[119995, 119995], "mapped", [102]], [[119996, 119996], "disallowed"], [[119997, 119997], "mapped", [104]], [[119998, 119998], "mapped", [105]], [[119999, 119999], "mapped", [106]], [[12e4, 12e4], "mapped", [107]], [[120001, 120001], "mapped", [108]], [[120002, 120002], "mapped", [109]], [[120003, 120003], "mapped", [110]], [[120004, 120004], "disallowed"], [[120005, 120005], "mapped", [112]], [[120006, 120006], "mapped", [113]], [[120007, 120007], "mapped", [114]], [[120008, 120008], "mapped", [115]], [[120009, 120009], "mapped", [116]], [[120010, 120010], "mapped", [117]], [[120011, 120011], "mapped", [118]], [[120012, 120012], "mapped", [119]], [[120013, 120013], "mapped", [120]], [[120014, 120014], "mapped", [121]], [[120015, 120015], "mapped", [122]], [[120016, 120016], "mapped", [97]], [[120017, 120017], "mapped", [98]], [[120018, 120018], "mapped", [99]], [[120019, 120019], "mapped", [100]], [[120020, 120020], "mapped", [101]], [[120021, 120021], "mapped", [102]], [[120022, 120022], "mapped", [103]], [[120023, 120023], "mapped", [104]], [[120024, 120024], "mapped", [105]], [[120025, 120025], "mapped", [106]], [[120026, 120026], "mapped", [107]], [[120027, 120027], "mapped", [108]], [[120028, 120028], "mapped", [109]], [[120029, 120029], "mapped", [110]], [[120030, 120030], "mapped", [111]], [[120031, 120031], "mapped", [112]], [[120032, 120032], "mapped", [113]], [[120033, 120033], "mapped", [114]], [[120034, 120034], "mapped", [115]], [[120035, 120035], "mapped", [116]], [[120036, 120036], "mapped", [117]], [[120037, 120037], "mapped", [118]], [[120038, 120038], "mapped", [119]], [[120039, 120039], "mapped", [120]], [[120040, 120040], "mapped", [121]], [[120041, 120041], "mapped", [122]], [[120042, 120042], "mapped", [97]], [[120043, 120043], "mapped", [98]], [[120044, 120044], "mapped", [99]], [[120045, 120045], "mapped", [100]], [[120046, 120046], "mapped", [101]], [[120047, 120047], "mapped", [102]], [[120048, 120048], "mapped", [103]], [[120049, 120049], "mapped", [104]], [[120050, 120050], "mapped", [105]], [[120051, 120051], "mapped", [106]], [[120052, 120052], "mapped", [107]], [[120053, 120053], "mapped", [108]], [[120054, 120054], "mapped", [109]], [[120055, 120055], "mapped", [110]], [[120056, 120056], "mapped", [111]], [[120057, 120057], "mapped", [112]], [[120058, 120058], "mapped", [113]], [[120059, 120059], "mapped", [114]], [[120060, 120060], "mapped", [115]], [[120061, 120061], "mapped", [116]], [[120062, 120062], "mapped", [117]], [[120063, 120063], "mapped", [118]], [[120064, 120064], "mapped", [119]], [[120065, 120065], "mapped", [120]], [[120066, 120066], "mapped", [121]], [[120067, 120067], "mapped", [122]], [[120068, 120068], "mapped", [97]], [[120069, 120069], "mapped", [98]], [[120070, 120070], "disallowed"], [[120071, 120071], "mapped", [100]], [[120072, 120072], "mapped", [101]], [[120073, 120073], "mapped", [102]], [[120074, 120074], "mapped", [103]], [[120075, 120076], "disallowed"], [[120077, 120077], "mapped", [106]], [[120078, 120078], "mapped", [107]], [[120079, 120079], "mapped", [108]], [[120080, 120080], "mapped", [109]], [[120081, 120081], "mapped", [110]], [[120082, 120082], "mapped", [111]], [[120083, 120083], "mapped", [112]], [[120084, 120084], "mapped", [113]], [[120085, 120085], "disallowed"], [[120086, 120086], "mapped", [115]], [[120087, 120087], "mapped", [116]], [[120088, 120088], "mapped", [117]], [[120089, 120089], "mapped", [118]], [[120090, 120090], "mapped", [119]], [[120091, 120091], "mapped", [120]], [[120092, 120092], "mapped", [121]], [[120093, 120093], "disallowed"], [[120094, 120094], "mapped", [97]], [[120095, 120095], "mapped", [98]], [[120096, 120096], "mapped", [99]], [[120097, 120097], "mapped", [100]], [[120098, 120098], "mapped", [101]], [[120099, 120099], "mapped", [102]], [[120100, 120100], "mapped", [103]], [[120101, 120101], "mapped", [104]], [[120102, 120102], "mapped", [105]], [[120103, 120103], "mapped", [106]], [[120104, 120104], "mapped", [107]], [[120105, 120105], "mapped", [108]], [[120106, 120106], "mapped", [109]], [[120107, 120107], "mapped", [110]], [[120108, 120108], "mapped", [111]], [[120109, 120109], "mapped", [112]], [[120110, 120110], "mapped", [113]], [[120111, 120111], "mapped", [114]], [[120112, 120112], "mapped", [115]], [[120113, 120113], "mapped", [116]], [[120114, 120114], "mapped", [117]], [[120115, 120115], "mapped", [118]], [[120116, 120116], "mapped", [119]], [[120117, 120117], "mapped", [120]], [[120118, 120118], "mapped", [121]], [[120119, 120119], "mapped", [122]], [[120120, 120120], "mapped", [97]], [[120121, 120121], "mapped", [98]], [[120122, 120122], "disallowed"], [[120123, 120123], "mapped", [100]], [[120124, 120124], "mapped", [101]], [[120125, 120125], "mapped", [102]], [[120126, 120126], "mapped", [103]], [[120127, 120127], "disallowed"], [[120128, 120128], "mapped", [105]], [[120129, 120129], "mapped", [106]], [[120130, 120130], "mapped", [107]], [[120131, 120131], "mapped", [108]], [[120132, 120132], "mapped", [109]], [[120133, 120133], "disallowed"], [[120134, 120134], "mapped", [111]], [[120135, 120137], "disallowed"], [[120138, 120138], "mapped", [115]], [[120139, 120139], "mapped", [116]], [[120140, 120140], "mapped", [117]], [[120141, 120141], "mapped", [118]], [[120142, 120142], "mapped", [119]], [[120143, 120143], "mapped", [120]], [[120144, 120144], "mapped", [121]], [[120145, 120145], "disallowed"], [[120146, 120146], "mapped", [97]], [[120147, 120147], "mapped", [98]], [[120148, 120148], "mapped", [99]], [[120149, 120149], "mapped", [100]], [[120150, 120150], "mapped", [101]], [[120151, 120151], "mapped", [102]], [[120152, 120152], "mapped", [103]], [[120153, 120153], "mapped", [104]], [[120154, 120154], "mapped", [105]], [[120155, 120155], "mapped", [106]], [[120156, 120156], "mapped", [107]], [[120157, 120157], "mapped", [108]], [[120158, 120158], "mapped", [109]], [[120159, 120159], "mapped", [110]], [[120160, 120160], "mapped", [111]], [[120161, 120161], "mapped", [112]], [[120162, 120162], "mapped", [113]], [[120163, 120163], "mapped", [114]], [[120164, 120164], "mapped", [115]], [[120165, 120165], "mapped", [116]], [[120166, 120166], "mapped", [117]], [[120167, 120167], "mapped", [118]], [[120168, 120168], "mapped", [119]], [[120169, 120169], "mapped", [120]], [[120170, 120170], "mapped", [121]], [[120171, 120171], "mapped", [122]], [[120172, 120172], "mapped", [97]], [[120173, 120173], "mapped", [98]], [[120174, 120174], "mapped", [99]], [[120175, 120175], "mapped", [100]], [[120176, 120176], "mapped", [101]], [[120177, 120177], "mapped", [102]], [[120178, 120178], "mapped", [103]], [[120179, 120179], "mapped", [104]], [[120180, 120180], "mapped", [105]], [[120181, 120181], "mapped", [106]], [[120182, 120182], "mapped", [107]], [[120183, 120183], "mapped", [108]], [[120184, 120184], "mapped", [109]], [[120185, 120185], "mapped", [110]], [[120186, 120186], "mapped", [111]], [[120187, 120187], "mapped", [112]], [[120188, 120188], "mapped", [113]], [[120189, 120189], "mapped", [114]], [[120190, 120190], "mapped", [115]], [[120191, 120191], "mapped", [116]], [[120192, 120192], "mapped", [117]], [[120193, 120193], "mapped", [118]], [[120194, 120194], "mapped", [119]], [[120195, 120195], "mapped", [120]], [[120196, 120196], "mapped", [121]], [[120197, 120197], "mapped", [122]], [[120198, 120198], "mapped", [97]], [[120199, 120199], "mapped", [98]], [[120200, 120200], "mapped", [99]], [[120201, 120201], "mapped", [100]], [[120202, 120202], "mapped", [101]], [[120203, 120203], "mapped", [102]], [[120204, 120204], "mapped", [103]], [[120205, 120205], "mapped", [104]], [[120206, 120206], "mapped", [105]], [[120207, 120207], "mapped", [106]], [[120208, 120208], "mapped", [107]], [[120209, 120209], "mapped", [108]], [[120210, 120210], "mapped", [109]], [[120211, 120211], "mapped", [110]], [[120212, 120212], "mapped", [111]], [[120213, 120213], "mapped", [112]], [[120214, 120214], "mapped", [113]], [[120215, 120215], "mapped", [114]], [[120216, 120216], "mapped", [115]], [[120217, 120217], "mapped", [116]], [[120218, 120218], "mapped", [117]], [[120219, 120219], "mapped", [118]], [[120220, 120220], "mapped", [119]], [[120221, 120221], "mapped", [120]], [[120222, 120222], "mapped", [121]], [[120223, 120223], "mapped", [122]], [[120224, 120224], "mapped", [97]], [[120225, 120225], "mapped", [98]], [[120226, 120226], "mapped", [99]], [[120227, 120227], "mapped", [100]], [[120228, 120228], "mapped", [101]], [[120229, 120229], "mapped", [102]], [[120230, 120230], "mapped", [103]], [[120231, 120231], "mapped", [104]], [[120232, 120232], "mapped", [105]], [[120233, 120233], "mapped", [106]], [[120234, 120234], "mapped", [107]], [[120235, 120235], "mapped", [108]], [[120236, 120236], "mapped", [109]], [[120237, 120237], "mapped", [110]], [[120238, 120238], "mapped", [111]], [[120239, 120239], "mapped", [112]], [[120240, 120240], "mapped", [113]], [[120241, 120241], "mapped", [114]], [[120242, 120242], "mapped", [115]], [[120243, 120243], "mapped", [116]], [[120244, 120244], "mapped", [117]], [[120245, 120245], "mapped", [118]], [[120246, 120246], "mapped", [119]], [[120247, 120247], "mapped", [120]], [[120248, 120248], "mapped", [121]], [[120249, 120249], "mapped", [122]], [[120250, 120250], "mapped", [97]], [[120251, 120251], "mapped", [98]], [[120252, 120252], "mapped", [99]], [[120253, 120253], "mapped", [100]], [[120254, 120254], "mapped", [101]], [[120255, 120255], "mapped", [102]], [[120256, 120256], "mapped", [103]], [[120257, 120257], "mapped", [104]], [[120258, 120258], "mapped", [105]], [[120259, 120259], "mapped", [106]], [[120260, 120260], "mapped", [107]], [[120261, 120261], "mapped", [108]], [[120262, 120262], "mapped", [109]], [[120263, 120263], "mapped", [110]], [[120264, 120264], "mapped", [111]], [[120265, 120265], "mapped", [112]], [[120266, 120266], "mapped", [113]], [[120267, 120267], "mapped", [114]], [[120268, 120268], "mapped", [115]], [[120269, 120269], "mapped", [116]], [[120270, 120270], "mapped", [117]], [[120271, 120271], "mapped", [118]], [[120272, 120272], "mapped", [119]], [[120273, 120273], "mapped", [120]], [[120274, 120274], "mapped", [121]], [[120275, 120275], "mapped", [122]], [[120276, 120276], "mapped", [97]], [[120277, 120277], "mapped", [98]], [[120278, 120278], "mapped", [99]], [[120279, 120279], "mapped", [100]], [[120280, 120280], "mapped", [101]], [[120281, 120281], "mapped", [102]], [[120282, 120282], "mapped", [103]], [[120283, 120283], "mapped", [104]], [[120284, 120284], "mapped", [105]], [[120285, 120285], "mapped", [106]], [[120286, 120286], "mapped", [107]], [[120287, 120287], "mapped", [108]], [[120288, 120288], "mapped", [109]], [[120289, 120289], "mapped", [110]], [[120290, 120290], "mapped", [111]], [[120291, 120291], "mapped", [112]], [[120292, 120292], "mapped", [113]], [[120293, 120293], "mapped", [114]], [[120294, 120294], "mapped", [115]], [[120295, 120295], "mapped", [116]], [[120296, 120296], "mapped", [117]], [[120297, 120297], "mapped", [118]], [[120298, 120298], "mapped", [119]], [[120299, 120299], "mapped", [120]], [[120300, 120300], "mapped", [121]], [[120301, 120301], "mapped", [122]], [[120302, 120302], "mapped", [97]], [[120303, 120303], "mapped", [98]], [[120304, 120304], "mapped", [99]], [[120305, 120305], "mapped", [100]], [[120306, 120306], "mapped", [101]], [[120307, 120307], "mapped", [102]], [[120308, 120308], "mapped", [103]], [[120309, 120309], "mapped", [104]], [[120310, 120310], "mapped", [105]], [[120311, 120311], "mapped", [106]], [[120312, 120312], "mapped", [107]], [[120313, 120313], "mapped", [108]], [[120314, 120314], "mapped", [109]], [[120315, 120315], "mapped", [110]], [[120316, 120316], "mapped", [111]], [[120317, 120317], "mapped", [112]], [[120318, 120318], "mapped", [113]], [[120319, 120319], "mapped", [114]], [[120320, 120320], "mapped", [115]], [[120321, 120321], "mapped", [116]], [[120322, 120322], "mapped", [117]], [[120323, 120323], "mapped", [118]], [[120324, 120324], "mapped", [119]], [[120325, 120325], "mapped", [120]], [[120326, 120326], "mapped", [121]], [[120327, 120327], "mapped", [122]], [[120328, 120328], "mapped", [97]], [[120329, 120329], "mapped", [98]], [[120330, 120330], "mapped", [99]], [[120331, 120331], "mapped", [100]], [[120332, 120332], "mapped", [101]], [[120333, 120333], "mapped", [102]], [[120334, 120334], "mapped", [103]], [[120335, 120335], "mapped", [104]], [[120336, 120336], "mapped", [105]], [[120337, 120337], "mapped", [106]], [[120338, 120338], "mapped", [107]], [[120339, 120339], "mapped", [108]], [[120340, 120340], "mapped", [109]], [[120341, 120341], "mapped", [110]], [[120342, 120342], "mapped", [111]], [[120343, 120343], "mapped", [112]], [[120344, 120344], "mapped", [113]], [[120345, 120345], "mapped", [114]], [[120346, 120346], "mapped", [115]], [[120347, 120347], "mapped", [116]], [[120348, 120348], "mapped", [117]], [[120349, 120349], "mapped", [118]], [[120350, 120350], "mapped", [119]], [[120351, 120351], "mapped", [120]], [[120352, 120352], "mapped", [121]], [[120353, 120353], "mapped", [122]], [[120354, 120354], "mapped", [97]], [[120355, 120355], "mapped", [98]], [[120356, 120356], "mapped", [99]], [[120357, 120357], "mapped", [100]], [[120358, 120358], "mapped", [101]], [[120359, 120359], "mapped", [102]], [[120360, 120360], "mapped", [103]], [[120361, 120361], "mapped", [104]], [[120362, 120362], "mapped", [105]], [[120363, 120363], "mapped", [106]], [[120364, 120364], "mapped", [107]], [[120365, 120365], "mapped", [108]], [[120366, 120366], "mapped", [109]], [[120367, 120367], "mapped", [110]], [[120368, 120368], "mapped", [111]], [[120369, 120369], "mapped", [112]], [[120370, 120370], "mapped", [113]], [[120371, 120371], "mapped", [114]], [[120372, 120372], "mapped", [115]], [[120373, 120373], "mapped", [116]], [[120374, 120374], "mapped", [117]], [[120375, 120375], "mapped", [118]], [[120376, 120376], "mapped", [119]], [[120377, 120377], "mapped", [120]], [[120378, 120378], "mapped", [121]], [[120379, 120379], "mapped", [122]], [[120380, 120380], "mapped", [97]], [[120381, 120381], "mapped", [98]], [[120382, 120382], "mapped", [99]], [[120383, 120383], "mapped", [100]], [[120384, 120384], "mapped", [101]], [[120385, 120385], "mapped", [102]], [[120386, 120386], "mapped", [103]], [[120387, 120387], "mapped", [104]], [[120388, 120388], "mapped", [105]], [[120389, 120389], "mapped", [106]], [[120390, 120390], "mapped", [107]], [[120391, 120391], "mapped", [108]], [[120392, 120392], "mapped", [109]], [[120393, 120393], "mapped", [110]], [[120394, 120394], "mapped", [111]], [[120395, 120395], "mapped", [112]], [[120396, 120396], "mapped", [113]], [[120397, 120397], "mapped", [114]], [[120398, 120398], "mapped", [115]], [[120399, 120399], "mapped", [116]], [[120400, 120400], "mapped", [117]], [[120401, 120401], "mapped", [118]], [[120402, 120402], "mapped", [119]], [[120403, 120403], "mapped", [120]], [[120404, 120404], "mapped", [121]], [[120405, 120405], "mapped", [122]], [[120406, 120406], "mapped", [97]], [[120407, 120407], "mapped", [98]], [[120408, 120408], "mapped", [99]], [[120409, 120409], "mapped", [100]], [[120410, 120410], "mapped", [101]], [[120411, 120411], "mapped", [102]], [[120412, 120412], "mapped", [103]], [[120413, 120413], "mapped", [104]], [[120414, 120414], "mapped", [105]], [[120415, 120415], "mapped", [106]], [[120416, 120416], "mapped", [107]], [[120417, 120417], "mapped", [108]], [[120418, 120418], "mapped", [109]], [[120419, 120419], "mapped", [110]], [[120420, 120420], "mapped", [111]], [[120421, 120421], "mapped", [112]], [[120422, 120422], "mapped", [113]], [[120423, 120423], "mapped", [114]], [[120424, 120424], "mapped", [115]], [[120425, 120425], "mapped", [116]], [[120426, 120426], "mapped", [117]], [[120427, 120427], "mapped", [118]], [[120428, 120428], "mapped", [119]], [[120429, 120429], "mapped", [120]], [[120430, 120430], "mapped", [121]], [[120431, 120431], "mapped", [122]], [[120432, 120432], "mapped", [97]], [[120433, 120433], "mapped", [98]], [[120434, 120434], "mapped", [99]], [[120435, 120435], "mapped", [100]], [[120436, 120436], "mapped", [101]], [[120437, 120437], "mapped", [102]], [[120438, 120438], "mapped", [103]], [[120439, 120439], "mapped", [104]], [[120440, 120440], "mapped", [105]], [[120441, 120441], "mapped", [106]], [[120442, 120442], "mapped", [107]], [[120443, 120443], "mapped", [108]], [[120444, 120444], "mapped", [109]], [[120445, 120445], "mapped", [110]], [[120446, 120446], "mapped", [111]], [[120447, 120447], "mapped", [112]], [[120448, 120448], "mapped", [113]], [[120449, 120449], "mapped", [114]], [[120450, 120450], "mapped", [115]], [[120451, 120451], "mapped", [116]], [[120452, 120452], "mapped", [117]], [[120453, 120453], "mapped", [118]], [[120454, 120454], "mapped", [119]], [[120455, 120455], "mapped", [120]], [[120456, 120456], "mapped", [121]], [[120457, 120457], "mapped", [122]], [[120458, 120458], "mapped", [97]], [[120459, 120459], "mapped", [98]], [[120460, 120460], "mapped", [99]], [[120461, 120461], "mapped", [100]], [[120462, 120462], "mapped", [101]], [[120463, 120463], "mapped", [102]], [[120464, 120464], "mapped", [103]], [[120465, 120465], "mapped", [104]], [[120466, 120466], "mapped", [105]], [[120467, 120467], "mapped", [106]], [[120468, 120468], "mapped", [107]], [[120469, 120469], "mapped", [108]], [[120470, 120470], "mapped", [109]], [[120471, 120471], "mapped", [110]], [[120472, 120472], "mapped", [111]], [[120473, 120473], "mapped", [112]], [[120474, 120474], "mapped", [113]], [[120475, 120475], "mapped", [114]], [[120476, 120476], "mapped", [115]], [[120477, 120477], "mapped", [116]], [[120478, 120478], "mapped", [117]], [[120479, 120479], "mapped", [118]], [[120480, 120480], "mapped", [119]], [[120481, 120481], "mapped", [120]], [[120482, 120482], "mapped", [121]], [[120483, 120483], "mapped", [122]], [[120484, 120484], "mapped", [305]], [[120485, 120485], "mapped", [567]], [[120486, 120487], "disallowed"], [[120488, 120488], "mapped", [945]], [[120489, 120489], "mapped", [946]], [[120490, 120490], "mapped", [947]], [[120491, 120491], "mapped", [948]], [[120492, 120492], "mapped", [949]], [[120493, 120493], "mapped", [950]], [[120494, 120494], "mapped", [951]], [[120495, 120495], "mapped", [952]], [[120496, 120496], "mapped", [953]], [[120497, 120497], "mapped", [954]], [[120498, 120498], "mapped", [955]], [[120499, 120499], "mapped", [956]], [[120500, 120500], "mapped", [957]], [[120501, 120501], "mapped", [958]], [[120502, 120502], "mapped", [959]], [[120503, 120503], "mapped", [960]], [[120504, 120504], "mapped", [961]], [[120505, 120505], "mapped", [952]], [[120506, 120506], "mapped", [963]], [[120507, 120507], "mapped", [964]], [[120508, 120508], "mapped", [965]], [[120509, 120509], "mapped", [966]], [[120510, 120510], "mapped", [967]], [[120511, 120511], "mapped", [968]], [[120512, 120512], "mapped", [969]], [[120513, 120513], "mapped", [8711]], [[120514, 120514], "mapped", [945]], [[120515, 120515], "mapped", [946]], [[120516, 120516], "mapped", [947]], [[120517, 120517], "mapped", [948]], [[120518, 120518], "mapped", [949]], [[120519, 120519], "mapped", [950]], [[120520, 120520], "mapped", [951]], [[120521, 120521], "mapped", [952]], [[120522, 120522], "mapped", [953]], [[120523, 120523], "mapped", [954]], [[120524, 120524], "mapped", [955]], [[120525, 120525], "mapped", [956]], [[120526, 120526], "mapped", [957]], [[120527, 120527], "mapped", [958]], [[120528, 120528], "mapped", [959]], [[120529, 120529], "mapped", [960]], [[120530, 120530], "mapped", [961]], [[120531, 120532], "mapped", [963]], [[120533, 120533], "mapped", [964]], [[120534, 120534], "mapped", [965]], [[120535, 120535], "mapped", [966]], [[120536, 120536], "mapped", [967]], [[120537, 120537], "mapped", [968]], [[120538, 120538], "mapped", [969]], [[120539, 120539], "mapped", [8706]], [[120540, 120540], "mapped", [949]], [[120541, 120541], "mapped", [952]], [[120542, 120542], "mapped", [954]], [[120543, 120543], "mapped", [966]], [[120544, 120544], "mapped", [961]], [[120545, 120545], "mapped", [960]], [[120546, 120546], "mapped", [945]], [[120547, 120547], "mapped", [946]], [[120548, 120548], "mapped", [947]], [[120549, 120549], "mapped", [948]], [[120550, 120550], "mapped", [949]], [[120551, 120551], "mapped", [950]], [[120552, 120552], "mapped", [951]], [[120553, 120553], "mapped", [952]], [[120554, 120554], "mapped", [953]], [[120555, 120555], "mapped", [954]], [[120556, 120556], "mapped", [955]], [[120557, 120557], "mapped", [956]], [[120558, 120558], "mapped", [957]], [[120559, 120559], "mapped", [958]], [[120560, 120560], "mapped", [959]], [[120561, 120561], "mapped", [960]], [[120562, 120562], "mapped", [961]], [[120563, 120563], "mapped", [952]], [[120564, 120564], "mapped", [963]], [[120565, 120565], "mapped", [964]], [[120566, 120566], "mapped", [965]], [[120567, 120567], "mapped", [966]], [[120568, 120568], "mapped", [967]], [[120569, 120569], "mapped", [968]], [[120570, 120570], "mapped", [969]], [[120571, 120571], "mapped", [8711]], [[120572, 120572], "mapped", [945]], [[120573, 120573], "mapped", [946]], [[120574, 120574], "mapped", [947]], [[120575, 120575], "mapped", [948]], [[120576, 120576], "mapped", [949]], [[120577, 120577], "mapped", [950]], [[120578, 120578], "mapped", [951]], [[120579, 120579], "mapped", [952]], [[120580, 120580], "mapped", [953]], [[120581, 120581], "mapped", [954]], [[120582, 120582], "mapped", [955]], [[120583, 120583], "mapped", [956]], [[120584, 120584], "mapped", [957]], [[120585, 120585], "mapped", [958]], [[120586, 120586], "mapped", [959]], [[120587, 120587], "mapped", [960]], [[120588, 120588], "mapped", [961]], [[120589, 120590], "mapped", [963]], [[120591, 120591], "mapped", [964]], [[120592, 120592], "mapped", [965]], [[120593, 120593], "mapped", [966]], [[120594, 120594], "mapped", [967]], [[120595, 120595], "mapped", [968]], [[120596, 120596], "mapped", [969]], [[120597, 120597], "mapped", [8706]], [[120598, 120598], "mapped", [949]], [[120599, 120599], "mapped", [952]], [[120600, 120600], "mapped", [954]], [[120601, 120601], "mapped", [966]], [[120602, 120602], "mapped", [961]], [[120603, 120603], "mapped", [960]], [[120604, 120604], "mapped", [945]], [[120605, 120605], "mapped", [946]], [[120606, 120606], "mapped", [947]], [[120607, 120607], "mapped", [948]], [[120608, 120608], "mapped", [949]], [[120609, 120609], "mapped", [950]], [[120610, 120610], "mapped", [951]], [[120611, 120611], "mapped", [952]], [[120612, 120612], "mapped", [953]], [[120613, 120613], "mapped", [954]], [[120614, 120614], "mapped", [955]], [[120615, 120615], "mapped", [956]], [[120616, 120616], "mapped", [957]], [[120617, 120617], "mapped", [958]], [[120618, 120618], "mapped", [959]], [[120619, 120619], "mapped", [960]], [[120620, 120620], "mapped", [961]], [[120621, 120621], "mapped", [952]], [[120622, 120622], "mapped", [963]], [[120623, 120623], "mapped", [964]], [[120624, 120624], "mapped", [965]], [[120625, 120625], "mapped", [966]], [[120626, 120626], "mapped", [967]], [[120627, 120627], "mapped", [968]], [[120628, 120628], "mapped", [969]], [[120629, 120629], "mapped", [8711]], [[120630, 120630], "mapped", [945]], [[120631, 120631], "mapped", [946]], [[120632, 120632], "mapped", [947]], [[120633, 120633], "mapped", [948]], [[120634, 120634], "mapped", [949]], [[120635, 120635], "mapped", [950]], [[120636, 120636], "mapped", [951]], [[120637, 120637], "mapped", [952]], [[120638, 120638], "mapped", [953]], [[120639, 120639], "mapped", [954]], [[120640, 120640], "mapped", [955]], [[120641, 120641], "mapped", [956]], [[120642, 120642], "mapped", [957]], [[120643, 120643], "mapped", [958]], [[120644, 120644], "mapped", [959]], [[120645, 120645], "mapped", [960]], [[120646, 120646], "mapped", [961]], [[120647, 120648], "mapped", [963]], [[120649, 120649], "mapped", [964]], [[120650, 120650], "mapped", [965]], [[120651, 120651], "mapped", [966]], [[120652, 120652], "mapped", [967]], [[120653, 120653], "mapped", [968]], [[120654, 120654], "mapped", [969]], [[120655, 120655], "mapped", [8706]], [[120656, 120656], "mapped", [949]], [[120657, 120657], "mapped", [952]], [[120658, 120658], "mapped", [954]], [[120659, 120659], "mapped", [966]], [[120660, 120660], "mapped", [961]], [[120661, 120661], "mapped", [960]], [[120662, 120662], "mapped", [945]], [[120663, 120663], "mapped", [946]], [[120664, 120664], "mapped", [947]], [[120665, 120665], "mapped", [948]], [[120666, 120666], "mapped", [949]], [[120667, 120667], "mapped", [950]], [[120668, 120668], "mapped", [951]], [[120669, 120669], "mapped", [952]], [[120670, 120670], "mapped", [953]], [[120671, 120671], "mapped", [954]], [[120672, 120672], "mapped", [955]], [[120673, 120673], "mapped", [956]], [[120674, 120674], "mapped", [957]], [[120675, 120675], "mapped", [958]], [[120676, 120676], "mapped", [959]], [[120677, 120677], "mapped", [960]], [[120678, 120678], "mapped", [961]], [[120679, 120679], "mapped", [952]], [[120680, 120680], "mapped", [963]], [[120681, 120681], "mapped", [964]], [[120682, 120682], "mapped", [965]], [[120683, 120683], "mapped", [966]], [[120684, 120684], "mapped", [967]], [[120685, 120685], "mapped", [968]], [[120686, 120686], "mapped", [969]], [[120687, 120687], "mapped", [8711]], [[120688, 120688], "mapped", [945]], [[120689, 120689], "mapped", [946]], [[120690, 120690], "mapped", [947]], [[120691, 120691], "mapped", [948]], [[120692, 120692], "mapped", [949]], [[120693, 120693], "mapped", [950]], [[120694, 120694], "mapped", [951]], [[120695, 120695], "mapped", [952]], [[120696, 120696], "mapped", [953]], [[120697, 120697], "mapped", [954]], [[120698, 120698], "mapped", [955]], [[120699, 120699], "mapped", [956]], [[120700, 120700], "mapped", [957]], [[120701, 120701], "mapped", [958]], [[120702, 120702], "mapped", [959]], [[120703, 120703], "mapped", [960]], [[120704, 120704], "mapped", [961]], [[120705, 120706], "mapped", [963]], [[120707, 120707], "mapped", [964]], [[120708, 120708], "mapped", [965]], [[120709, 120709], "mapped", [966]], [[120710, 120710], "mapped", [967]], [[120711, 120711], "mapped", [968]], [[120712, 120712], "mapped", [969]], [[120713, 120713], "mapped", [8706]], [[120714, 120714], "mapped", [949]], [[120715, 120715], "mapped", [952]], [[120716, 120716], "mapped", [954]], [[120717, 120717], "mapped", [966]], [[120718, 120718], "mapped", [961]], [[120719, 120719], "mapped", [960]], [[120720, 120720], "mapped", [945]], [[120721, 120721], "mapped", [946]], [[120722, 120722], "mapped", [947]], [[120723, 120723], "mapped", [948]], [[120724, 120724], "mapped", [949]], [[120725, 120725], "mapped", [950]], [[120726, 120726], "mapped", [951]], [[120727, 120727], "mapped", [952]], [[120728, 120728], "mapped", [953]], [[120729, 120729], "mapped", [954]], [[120730, 120730], "mapped", [955]], [[120731, 120731], "mapped", [956]], [[120732, 120732], "mapped", [957]], [[120733, 120733], "mapped", [958]], [[120734, 120734], "mapped", [959]], [[120735, 120735], "mapped", [960]], [[120736, 120736], "mapped", [961]], [[120737, 120737], "mapped", [952]], [[120738, 120738], "mapped", [963]], [[120739, 120739], "mapped", [964]], [[120740, 120740], "mapped", [965]], [[120741, 120741], "mapped", [966]], [[120742, 120742], "mapped", [967]], [[120743, 120743], "mapped", [968]], [[120744, 120744], "mapped", [969]], [[120745, 120745], "mapped", [8711]], [[120746, 120746], "mapped", [945]], [[120747, 120747], "mapped", [946]], [[120748, 120748], "mapped", [947]], [[120749, 120749], "mapped", [948]], [[120750, 120750], "mapped", [949]], [[120751, 120751], "mapped", [950]], [[120752, 120752], "mapped", [951]], [[120753, 120753], "mapped", [952]], [[120754, 120754], "mapped", [953]], [[120755, 120755], "mapped", [954]], [[120756, 120756], "mapped", [955]], [[120757, 120757], "mapped", [956]], [[120758, 120758], "mapped", [957]], [[120759, 120759], "mapped", [958]], [[120760, 120760], "mapped", [959]], [[120761, 120761], "mapped", [960]], [[120762, 120762], "mapped", [961]], [[120763, 120764], "mapped", [963]], [[120765, 120765], "mapped", [964]], [[120766, 120766], "mapped", [965]], [[120767, 120767], "mapped", [966]], [[120768, 120768], "mapped", [967]], [[120769, 120769], "mapped", [968]], [[120770, 120770], "mapped", [969]], [[120771, 120771], "mapped", [8706]], [[120772, 120772], "mapped", [949]], [[120773, 120773], "mapped", [952]], [[120774, 120774], "mapped", [954]], [[120775, 120775], "mapped", [966]], [[120776, 120776], "mapped", [961]], [[120777, 120777], "mapped", [960]], [[120778, 120779], "mapped", [989]], [[120780, 120781], "disallowed"], [[120782, 120782], "mapped", [48]], [[120783, 120783], "mapped", [49]], [[120784, 120784], "mapped", [50]], [[120785, 120785], "mapped", [51]], [[120786, 120786], "mapped", [52]], [[120787, 120787], "mapped", [53]], [[120788, 120788], "mapped", [54]], [[120789, 120789], "mapped", [55]], [[120790, 120790], "mapped", [56]], [[120791, 120791], "mapped", [57]], [[120792, 120792], "mapped", [48]], [[120793, 120793], "mapped", [49]], [[120794, 120794], "mapped", [50]], [[120795, 120795], "mapped", [51]], [[120796, 120796], "mapped", [52]], [[120797, 120797], "mapped", [53]], [[120798, 120798], "mapped", [54]], [[120799, 120799], "mapped", [55]], [[120800, 120800], "mapped", [56]], [[120801, 120801], "mapped", [57]], [[120802, 120802], "mapped", [48]], [[120803, 120803], "mapped", [49]], [[120804, 120804], "mapped", [50]], [[120805, 120805], "mapped", [51]], [[120806, 120806], "mapped", [52]], [[120807, 120807], "mapped", [53]], [[120808, 120808], "mapped", [54]], [[120809, 120809], "mapped", [55]], [[120810, 120810], "mapped", [56]], [[120811, 120811], "mapped", [57]], [[120812, 120812], "mapped", [48]], [[120813, 120813], "mapped", [49]], [[120814, 120814], "mapped", [50]], [[120815, 120815], "mapped", [51]], [[120816, 120816], "mapped", [52]], [[120817, 120817], "mapped", [53]], [[120818, 120818], "mapped", [54]], [[120819, 120819], "mapped", [55]], [[120820, 120820], "mapped", [56]], [[120821, 120821], "mapped", [57]], [[120822, 120822], "mapped", [48]], [[120823, 120823], "mapped", [49]], [[120824, 120824], "mapped", [50]], [[120825, 120825], "mapped", [51]], [[120826, 120826], "mapped", [52]], [[120827, 120827], "mapped", [53]], [[120828, 120828], "mapped", [54]], [[120829, 120829], "mapped", [55]], [[120830, 120830], "mapped", [56]], [[120831, 120831], "mapped", [57]], [[120832, 121343], "valid", [], "NV8"], [[121344, 121398], "valid"], [[121399, 121402], "valid", [], "NV8"], [[121403, 121452], "valid"], [[121453, 121460], "valid", [], "NV8"], [[121461, 121461], "valid"], [[121462, 121475], "valid", [], "NV8"], [[121476, 121476], "valid"], [[121477, 121483], "valid", [], "NV8"], [[121484, 121498], "disallowed"], [[121499, 121503], "valid"], [[121504, 121504], "disallowed"], [[121505, 121519], "valid"], [[121520, 124927], "disallowed"], [[124928, 125124], "valid"], [[125125, 125126], "disallowed"], [[125127, 125135], "valid", [], "NV8"], [[125136, 125142], "valid"], [[125143, 126463], "disallowed"], [[126464, 126464], "mapped", [1575]], [[126465, 126465], "mapped", [1576]], [[126466, 126466], "mapped", [1580]], [[126467, 126467], "mapped", [1583]], [[126468, 126468], "disallowed"], [[126469, 126469], "mapped", [1608]], [[126470, 126470], "mapped", [1586]], [[126471, 126471], "mapped", [1581]], [[126472, 126472], "mapped", [1591]], [[126473, 126473], "mapped", [1610]], [[126474, 126474], "mapped", [1603]], [[126475, 126475], "mapped", [1604]], [[126476, 126476], "mapped", [1605]], [[126477, 126477], "mapped", [1606]], [[126478, 126478], "mapped", [1587]], [[126479, 126479], "mapped", [1593]], [[126480, 126480], "mapped", [1601]], [[126481, 126481], "mapped", [1589]], [[126482, 126482], "mapped", [1602]], [[126483, 126483], "mapped", [1585]], [[126484, 126484], "mapped", [1588]], [[126485, 126485], "mapped", [1578]], [[126486, 126486], "mapped", [1579]], [[126487, 126487], "mapped", [1582]], [[126488, 126488], "mapped", [1584]], [[126489, 126489], "mapped", [1590]], [[126490, 126490], "mapped", [1592]], [[126491, 126491], "mapped", [1594]], [[126492, 126492], "mapped", [1646]], [[126493, 126493], "mapped", [1722]], [[126494, 126494], "mapped", [1697]], [[126495, 126495], "mapped", [1647]], [[126496, 126496], "disallowed"], [[126497, 126497], "mapped", [1576]], [[126498, 126498], "mapped", [1580]], [[126499, 126499], "disallowed"], [[126500, 126500], "mapped", [1607]], [[126501, 126502], "disallowed"], [[126503, 126503], "mapped", [1581]], [[126504, 126504], "disallowed"], [[126505, 126505], "mapped", [1610]], [[126506, 126506], "mapped", [1603]], [[126507, 126507], "mapped", [1604]], [[126508, 126508], "mapped", [1605]], [[126509, 126509], "mapped", [1606]], [[126510, 126510], "mapped", [1587]], [[126511, 126511], "mapped", [1593]], [[126512, 126512], "mapped", [1601]], [[126513, 126513], "mapped", [1589]], [[126514, 126514], "mapped", [1602]], [[126515, 126515], "disallowed"], [[126516, 126516], "mapped", [1588]], [[126517, 126517], "mapped", [1578]], [[126518, 126518], "mapped", [1579]], [[126519, 126519], "mapped", [1582]], [[126520, 126520], "disallowed"], [[126521, 126521], "mapped", [1590]], [[126522, 126522], "disallowed"], [[126523, 126523], "mapped", [1594]], [[126524, 126529], "disallowed"], [[126530, 126530], "mapped", [1580]], [[126531, 126534], "disallowed"], [[126535, 126535], "mapped", [1581]], [[126536, 126536], "disallowed"], [[126537, 126537], "mapped", [1610]], [[126538, 126538], "disallowed"], [[126539, 126539], "mapped", [1604]], [[126540, 126540], "disallowed"], [[126541, 126541], "mapped", [1606]], [[126542, 126542], "mapped", [1587]], [[126543, 126543], "mapped", [1593]], [[126544, 126544], "disallowed"], [[126545, 126545], "mapped", [1589]], [[126546, 126546], "mapped", [1602]], [[126547, 126547], "disallowed"], [[126548, 126548], "mapped", [1588]], [[126549, 126550], "disallowed"], [[126551, 126551], "mapped", [1582]], [[126552, 126552], "disallowed"], [[126553, 126553], "mapped", [1590]], [[126554, 126554], "disallowed"], [[126555, 126555], "mapped", [1594]], [[126556, 126556], "disallowed"], [[126557, 126557], "mapped", [1722]], [[126558, 126558], "disallowed"], [[126559, 126559], "mapped", [1647]], [[126560, 126560], "disallowed"], [[126561, 126561], "mapped", [1576]], [[126562, 126562], "mapped", [1580]], [[126563, 126563], "disallowed"], [[126564, 126564], "mapped", [1607]], [[126565, 126566], "disallowed"], [[126567, 126567], "mapped", [1581]], [[126568, 126568], "mapped", [1591]], [[126569, 126569], "mapped", [1610]], [[126570, 126570], "mapped", [1603]], [[126571, 126571], "disallowed"], [[126572, 126572], "mapped", [1605]], [[126573, 126573], "mapped", [1606]], [[126574, 126574], "mapped", [1587]], [[126575, 126575], "mapped", [1593]], [[126576, 126576], "mapped", [1601]], [[126577, 126577], "mapped", [1589]], [[126578, 126578], "mapped", [1602]], [[126579, 126579], "disallowed"], [[126580, 126580], "mapped", [1588]], [[126581, 126581], "mapped", [1578]], [[126582, 126582], "mapped", [1579]], [[126583, 126583], "mapped", [1582]], [[126584, 126584], "disallowed"], [[126585, 126585], "mapped", [1590]], [[126586, 126586], "mapped", [1592]], [[126587, 126587], "mapped", [1594]], [[126588, 126588], "mapped", [1646]], [[126589, 126589], "disallowed"], [[126590, 126590], "mapped", [1697]], [[126591, 126591], "disallowed"], [[126592, 126592], "mapped", [1575]], [[126593, 126593], "mapped", [1576]], [[126594, 126594], "mapped", [1580]], [[126595, 126595], "mapped", [1583]], [[126596, 126596], "mapped", [1607]], [[126597, 126597], "mapped", [1608]], [[126598, 126598], "mapped", [1586]], [[126599, 126599], "mapped", [1581]], [[126600, 126600], "mapped", [1591]], [[126601, 126601], "mapped", [1610]], [[126602, 126602], "disallowed"], [[126603, 126603], "mapped", [1604]], [[126604, 126604], "mapped", [1605]], [[126605, 126605], "mapped", [1606]], [[126606, 126606], "mapped", [1587]], [[126607, 126607], "mapped", [1593]], [[126608, 126608], "mapped", [1601]], [[126609, 126609], "mapped", [1589]], [[126610, 126610], "mapped", [1602]], [[126611, 126611], "mapped", [1585]], [[126612, 126612], "mapped", [1588]], [[126613, 126613], "mapped", [1578]], [[126614, 126614], "mapped", [1579]], [[126615, 126615], "mapped", [1582]], [[126616, 126616], "mapped", [1584]], [[126617, 126617], "mapped", [1590]], [[126618, 126618], "mapped", [1592]], [[126619, 126619], "mapped", [1594]], [[126620, 126624], "disallowed"], [[126625, 126625], "mapped", [1576]], [[126626, 126626], "mapped", [1580]], [[126627, 126627], "mapped", [1583]], [[126628, 126628], "disallowed"], [[126629, 126629], "mapped", [1608]], [[126630, 126630], "mapped", [1586]], [[126631, 126631], "mapped", [1581]], [[126632, 126632], "mapped", [1591]], [[126633, 126633], "mapped", [1610]], [[126634, 126634], "disallowed"], [[126635, 126635], "mapped", [1604]], [[126636, 126636], "mapped", [1605]], [[126637, 126637], "mapped", [1606]], [[126638, 126638], "mapped", [1587]], [[126639, 126639], "mapped", [1593]], [[126640, 126640], "mapped", [1601]], [[126641, 126641], "mapped", [1589]], [[126642, 126642], "mapped", [1602]], [[126643, 126643], "mapped", [1585]], [[126644, 126644], "mapped", [1588]], [[126645, 126645], "mapped", [1578]], [[126646, 126646], "mapped", [1579]], [[126647, 126647], "mapped", [1582]], [[126648, 126648], "mapped", [1584]], [[126649, 126649], "mapped", [1590]], [[126650, 126650], "mapped", [1592]], [[126651, 126651], "mapped", [1594]], [[126652, 126703], "disallowed"], [[126704, 126705], "valid", [], "NV8"], [[126706, 126975], "disallowed"], [[126976, 127019], "valid", [], "NV8"], [[127020, 127023], "disallowed"], [[127024, 127123], "valid", [], "NV8"], [[127124, 127135], "disallowed"], [[127136, 127150], "valid", [], "NV8"], [[127151, 127152], "disallowed"], [[127153, 127166], "valid", [], "NV8"], [[127167, 127167], "valid", [], "NV8"], [[127168, 127168], "disallowed"], [[127169, 127183], "valid", [], "NV8"], [[127184, 127184], "disallowed"], [[127185, 127199], "valid", [], "NV8"], [[127200, 127221], "valid", [], "NV8"], [[127222, 127231], "disallowed"], [[127232, 127232], "disallowed"], [[127233, 127233], "disallowed_STD3_mapped", [48, 44]], [[127234, 127234], "disallowed_STD3_mapped", [49, 44]], [[127235, 127235], "disallowed_STD3_mapped", [50, 44]], [[127236, 127236], "disallowed_STD3_mapped", [51, 44]], [[127237, 127237], "disallowed_STD3_mapped", [52, 44]], [[127238, 127238], "disallowed_STD3_mapped", [53, 44]], [[127239, 127239], "disallowed_STD3_mapped", [54, 44]], [[127240, 127240], "disallowed_STD3_mapped", [55, 44]], [[127241, 127241], "disallowed_STD3_mapped", [56, 44]], [[127242, 127242], "disallowed_STD3_mapped", [57, 44]], [[127243, 127244], "valid", [], "NV8"], [[127245, 127247], "disallowed"], [[127248, 127248], "disallowed_STD3_mapped", [40, 97, 41]], [[127249, 127249], "disallowed_STD3_mapped", [40, 98, 41]], [[127250, 127250], "disallowed_STD3_mapped", [40, 99, 41]], [[127251, 127251], "disallowed_STD3_mapped", [40, 100, 41]], [[127252, 127252], "disallowed_STD3_mapped", [40, 101, 41]], [[127253, 127253], "disallowed_STD3_mapped", [40, 102, 41]], [[127254, 127254], "disallowed_STD3_mapped", [40, 103, 41]], [[127255, 127255], "disallowed_STD3_mapped", [40, 104, 41]], [[127256, 127256], "disallowed_STD3_mapped", [40, 105, 41]], [[127257, 127257], "disallowed_STD3_mapped", [40, 106, 41]], [[127258, 127258], "disallowed_STD3_mapped", [40, 107, 41]], [[127259, 127259], "disallowed_STD3_mapped", [40, 108, 41]], [[127260, 127260], "disallowed_STD3_mapped", [40, 109, 41]], [[127261, 127261], "disallowed_STD3_mapped", [40, 110, 41]], [[127262, 127262], "disallowed_STD3_mapped", [40, 111, 41]], [[127263, 127263], "disallowed_STD3_mapped", [40, 112, 41]], [[127264, 127264], "disallowed_STD3_mapped", [40, 113, 41]], [[127265, 127265], "disallowed_STD3_mapped", [40, 114, 41]], [[127266, 127266], "disallowed_STD3_mapped", [40, 115, 41]], [[127267, 127267], "disallowed_STD3_mapped", [40, 116, 41]], [[127268, 127268], "disallowed_STD3_mapped", [40, 117, 41]], [[127269, 127269], "disallowed_STD3_mapped", [40, 118, 41]], [[127270, 127270], "disallowed_STD3_mapped", [40, 119, 41]], [[127271, 127271], "disallowed_STD3_mapped", [40, 120, 41]], [[127272, 127272], "disallowed_STD3_mapped", [40, 121, 41]], [[127273, 127273], "disallowed_STD3_mapped", [40, 122, 41]], [[127274, 127274], "mapped", [12308, 115, 12309]], [[127275, 127275], "mapped", [99]], [[127276, 127276], "mapped", [114]], [[127277, 127277], "mapped", [99, 100]], [[127278, 127278], "mapped", [119, 122]], [[127279, 127279], "disallowed"], [[127280, 127280], "mapped", [97]], [[127281, 127281], "mapped", [98]], [[127282, 127282], "mapped", [99]], [[127283, 127283], "mapped", [100]], [[127284, 127284], "mapped", [101]], [[127285, 127285], "mapped", [102]], [[127286, 127286], "mapped", [103]], [[127287, 127287], "mapped", [104]], [[127288, 127288], "mapped", [105]], [[127289, 127289], "mapped", [106]], [[127290, 127290], "mapped", [107]], [[127291, 127291], "mapped", [108]], [[127292, 127292], "mapped", [109]], [[127293, 127293], "mapped", [110]], [[127294, 127294], "mapped", [111]], [[127295, 127295], "mapped", [112]], [[127296, 127296], "mapped", [113]], [[127297, 127297], "mapped", [114]], [[127298, 127298], "mapped", [115]], [[127299, 127299], "mapped", [116]], [[127300, 127300], "mapped", [117]], [[127301, 127301], "mapped", [118]], [[127302, 127302], "mapped", [119]], [[127303, 127303], "mapped", [120]], [[127304, 127304], "mapped", [121]], [[127305, 127305], "mapped", [122]], [[127306, 127306], "mapped", [104, 118]], [[127307, 127307], "mapped", [109, 118]], [[127308, 127308], "mapped", [115, 100]], [[127309, 127309], "mapped", [115, 115]], [[127310, 127310], "mapped", [112, 112, 118]], [[127311, 127311], "mapped", [119, 99]], [[127312, 127318], "valid", [], "NV8"], [[127319, 127319], "valid", [], "NV8"], [[127320, 127326], "valid", [], "NV8"], [[127327, 127327], "valid", [], "NV8"], [[127328, 127337], "valid", [], "NV8"], [[127338, 127338], "mapped", [109, 99]], [[127339, 127339], "mapped", [109, 100]], [[127340, 127343], "disallowed"], [[127344, 127352], "valid", [], "NV8"], [[127353, 127353], "valid", [], "NV8"], [[127354, 127354], "valid", [], "NV8"], [[127355, 127356], "valid", [], "NV8"], [[127357, 127358], "valid", [], "NV8"], [[127359, 127359], "valid", [], "NV8"], [[127360, 127369], "valid", [], "NV8"], [[127370, 127373], "valid", [], "NV8"], [[127374, 127375], "valid", [], "NV8"], [[127376, 127376], "mapped", [100, 106]], [[127377, 127386], "valid", [], "NV8"], [[127387, 127461], "disallowed"], [[127462, 127487], "valid", [], "NV8"], [[127488, 127488], "mapped", [12411, 12363]], [[127489, 127489], "mapped", [12467, 12467]], [[127490, 127490], "mapped", [12469]], [[127491, 127503], "disallowed"], [[127504, 127504], "mapped", [25163]], [[127505, 127505], "mapped", [23383]], [[127506, 127506], "mapped", [21452]], [[127507, 127507], "mapped", [12487]], [[127508, 127508], "mapped", [20108]], [[127509, 127509], "mapped", [22810]], [[127510, 127510], "mapped", [35299]], [[127511, 127511], "mapped", [22825]], [[127512, 127512], "mapped", [20132]], [[127513, 127513], "mapped", [26144]], [[127514, 127514], "mapped", [28961]], [[127515, 127515], "mapped", [26009]], [[127516, 127516], "mapped", [21069]], [[127517, 127517], "mapped", [24460]], [[127518, 127518], "mapped", [20877]], [[127519, 127519], "mapped", [26032]], [[127520, 127520], "mapped", [21021]], [[127521, 127521], "mapped", [32066]], [[127522, 127522], "mapped", [29983]], [[127523, 127523], "mapped", [36009]], [[127524, 127524], "mapped", [22768]], [[127525, 127525], "mapped", [21561]], [[127526, 127526], "mapped", [28436]], [[127527, 127527], "mapped", [25237]], [[127528, 127528], "mapped", [25429]], [[127529, 127529], "mapped", [19968]], [[127530, 127530], "mapped", [19977]], [[127531, 127531], "mapped", [36938]], [[127532, 127532], "mapped", [24038]], [[127533, 127533], "mapped", [20013]], [[127534, 127534], "mapped", [21491]], [[127535, 127535], "mapped", [25351]], [[127536, 127536], "mapped", [36208]], [[127537, 127537], "mapped", [25171]], [[127538, 127538], "mapped", [31105]], [[127539, 127539], "mapped", [31354]], [[127540, 127540], "mapped", [21512]], [[127541, 127541], "mapped", [28288]], [[127542, 127542], "mapped", [26377]], [[127543, 127543], "mapped", [26376]], [[127544, 127544], "mapped", [30003]], [[127545, 127545], "mapped", [21106]], [[127546, 127546], "mapped", [21942]], [[127547, 127551], "disallowed"], [[127552, 127552], "mapped", [12308, 26412, 12309]], [[127553, 127553], "mapped", [12308, 19977, 12309]], [[127554, 127554], "mapped", [12308, 20108, 12309]], [[127555, 127555], "mapped", [12308, 23433, 12309]], [[127556, 127556], "mapped", [12308, 28857, 12309]], [[127557, 127557], "mapped", [12308, 25171, 12309]], [[127558, 127558], "mapped", [12308, 30423, 12309]], [[127559, 127559], "mapped", [12308, 21213, 12309]], [[127560, 127560], "mapped", [12308, 25943, 12309]], [[127561, 127567], "disallowed"], [[127568, 127568], "mapped", [24471]], [[127569, 127569], "mapped", [21487]], [[127570, 127743], "disallowed"], [[127744, 127776], "valid", [], "NV8"], [[127777, 127788], "valid", [], "NV8"], [[127789, 127791], "valid", [], "NV8"], [[127792, 127797], "valid", [], "NV8"], [[127798, 127798], "valid", [], "NV8"], [[127799, 127868], "valid", [], "NV8"], [[127869, 127869], "valid", [], "NV8"], [[127870, 127871], "valid", [], "NV8"], [[127872, 127891], "valid", [], "NV8"], [[127892, 127903], "valid", [], "NV8"], [[127904, 127940], "valid", [], "NV8"], [[127941, 127941], "valid", [], "NV8"], [[127942, 127946], "valid", [], "NV8"], [[127947, 127950], "valid", [], "NV8"], [[127951, 127955], "valid", [], "NV8"], [[127956, 127967], "valid", [], "NV8"], [[127968, 127984], "valid", [], "NV8"], [[127985, 127991], "valid", [], "NV8"], [[127992, 127999], "valid", [], "NV8"], [[128e3, 128062], "valid", [], "NV8"], [[128063, 128063], "valid", [], "NV8"], [[128064, 128064], "valid", [], "NV8"], [[128065, 128065], "valid", [], "NV8"], [[128066, 128247], "valid", [], "NV8"], [[128248, 128248], "valid", [], "NV8"], [[128249, 128252], "valid", [], "NV8"], [[128253, 128254], "valid", [], "NV8"], [[128255, 128255], "valid", [], "NV8"], [[128256, 128317], "valid", [], "NV8"], [[128318, 128319], "valid", [], "NV8"], [[128320, 128323], "valid", [], "NV8"], [[128324, 128330], "valid", [], "NV8"], [[128331, 128335], "valid", [], "NV8"], [[128336, 128359], "valid", [], "NV8"], [[128360, 128377], "valid", [], "NV8"], [[128378, 128378], "disallowed"], [[128379, 128419], "valid", [], "NV8"], [[128420, 128420], "disallowed"], [[128421, 128506], "valid", [], "NV8"], [[128507, 128511], "valid", [], "NV8"], [[128512, 128512], "valid", [], "NV8"], [[128513, 128528], "valid", [], "NV8"], [[128529, 128529], "valid", [], "NV8"], [[128530, 128532], "valid", [], "NV8"], [[128533, 128533], "valid", [], "NV8"], [[128534, 128534], "valid", [], "NV8"], [[128535, 128535], "valid", [], "NV8"], [[128536, 128536], "valid", [], "NV8"], [[128537, 128537], "valid", [], "NV8"], [[128538, 128538], "valid", [], "NV8"], [[128539, 128539], "valid", [], "NV8"], [[128540, 128542], "valid", [], "NV8"], [[128543, 128543], "valid", [], "NV8"], [[128544, 128549], "valid", [], "NV8"], [[128550, 128551], "valid", [], "NV8"], [[128552, 128555], "valid", [], "NV8"], [[128556, 128556], "valid", [], "NV8"], [[128557, 128557], "valid", [], "NV8"], [[128558, 128559], "valid", [], "NV8"], [[128560, 128563], "valid", [], "NV8"], [[128564, 128564], "valid", [], "NV8"], [[128565, 128576], "valid", [], "NV8"], [[128577, 128578], "valid", [], "NV8"], [[128579, 128580], "valid", [], "NV8"], [[128581, 128591], "valid", [], "NV8"], [[128592, 128639], "valid", [], "NV8"], [[128640, 128709], "valid", [], "NV8"], [[128710, 128719], "valid", [], "NV8"], [[128720, 128720], "valid", [], "NV8"], [[128721, 128735], "disallowed"], [[128736, 128748], "valid", [], "NV8"], [[128749, 128751], "disallowed"], [[128752, 128755], "valid", [], "NV8"], [[128756, 128767], "disallowed"], [[128768, 128883], "valid", [], "NV8"], [[128884, 128895], "disallowed"], [[128896, 128980], "valid", [], "NV8"], [[128981, 129023], "disallowed"], [[129024, 129035], "valid", [], "NV8"], [[129036, 129039], "disallowed"], [[129040, 129095], "valid", [], "NV8"], [[129096, 129103], "disallowed"], [[129104, 129113], "valid", [], "NV8"], [[129114, 129119], "disallowed"], [[129120, 129159], "valid", [], "NV8"], [[129160, 129167], "disallowed"], [[129168, 129197], "valid", [], "NV8"], [[129198, 129295], "disallowed"], [[129296, 129304], "valid", [], "NV8"], [[129305, 129407], "disallowed"], [[129408, 129412], "valid", [], "NV8"], [[129413, 129471], "disallowed"], [[129472, 129472], "valid", [], "NV8"], [[129473, 131069], "disallowed"], [[131070, 131071], "disallowed"], [[131072, 173782], "valid"], [[173783, 173823], "disallowed"], [[173824, 177972], "valid"], [[177973, 177983], "disallowed"], [[177984, 178205], "valid"], [[178206, 178207], "disallowed"], [[178208, 183969], "valid"], [[183970, 194559], "disallowed"], [[194560, 194560], "mapped", [20029]], [[194561, 194561], "mapped", [20024]], [[194562, 194562], "mapped", [20033]], [[194563, 194563], "mapped", [131362]], [[194564, 194564], "mapped", [20320]], [[194565, 194565], "mapped", [20398]], [[194566, 194566], "mapped", [20411]], [[194567, 194567], "mapped", [20482]], [[194568, 194568], "mapped", [20602]], [[194569, 194569], "mapped", [20633]], [[194570, 194570], "mapped", [20711]], [[194571, 194571], "mapped", [20687]], [[194572, 194572], "mapped", [13470]], [[194573, 194573], "mapped", [132666]], [[194574, 194574], "mapped", [20813]], [[194575, 194575], "mapped", [20820]], [[194576, 194576], "mapped", [20836]], [[194577, 194577], "mapped", [20855]], [[194578, 194578], "mapped", [132380]], [[194579, 194579], "mapped", [13497]], [[194580, 194580], "mapped", [20839]], [[194581, 194581], "mapped", [20877]], [[194582, 194582], "mapped", [132427]], [[194583, 194583], "mapped", [20887]], [[194584, 194584], "mapped", [20900]], [[194585, 194585], "mapped", [20172]], [[194586, 194586], "mapped", [20908]], [[194587, 194587], "mapped", [20917]], [[194588, 194588], "mapped", [168415]], [[194589, 194589], "mapped", [20981]], [[194590, 194590], "mapped", [20995]], [[194591, 194591], "mapped", [13535]], [[194592, 194592], "mapped", [21051]], [[194593, 194593], "mapped", [21062]], [[194594, 194594], "mapped", [21106]], [[194595, 194595], "mapped", [21111]], [[194596, 194596], "mapped", [13589]], [[194597, 194597], "mapped", [21191]], [[194598, 194598], "mapped", [21193]], [[194599, 194599], "mapped", [21220]], [[194600, 194600], "mapped", [21242]], [[194601, 194601], "mapped", [21253]], [[194602, 194602], "mapped", [21254]], [[194603, 194603], "mapped", [21271]], [[194604, 194604], "mapped", [21321]], [[194605, 194605], "mapped", [21329]], [[194606, 194606], "mapped", [21338]], [[194607, 194607], "mapped", [21363]], [[194608, 194608], "mapped", [21373]], [[194609, 194611], "mapped", [21375]], [[194612, 194612], "mapped", [133676]], [[194613, 194613], "mapped", [28784]], [[194614, 194614], "mapped", [21450]], [[194615, 194615], "mapped", [21471]], [[194616, 194616], "mapped", [133987]], [[194617, 194617], "mapped", [21483]], [[194618, 194618], "mapped", [21489]], [[194619, 194619], "mapped", [21510]], [[194620, 194620], "mapped", [21662]], [[194621, 194621], "mapped", [21560]], [[194622, 194622], "mapped", [21576]], [[194623, 194623], "mapped", [21608]], [[194624, 194624], "mapped", [21666]], [[194625, 194625], "mapped", [21750]], [[194626, 194626], "mapped", [21776]], [[194627, 194627], "mapped", [21843]], [[194628, 194628], "mapped", [21859]], [[194629, 194630], "mapped", [21892]], [[194631, 194631], "mapped", [21913]], [[194632, 194632], "mapped", [21931]], [[194633, 194633], "mapped", [21939]], [[194634, 194634], "mapped", [21954]], [[194635, 194635], "mapped", [22294]], [[194636, 194636], "mapped", [22022]], [[194637, 194637], "mapped", [22295]], [[194638, 194638], "mapped", [22097]], [[194639, 194639], "mapped", [22132]], [[194640, 194640], "mapped", [20999]], [[194641, 194641], "mapped", [22766]], [[194642, 194642], "mapped", [22478]], [[194643, 194643], "mapped", [22516]], [[194644, 194644], "mapped", [22541]], [[194645, 194645], "mapped", [22411]], [[194646, 194646], "mapped", [22578]], [[194647, 194647], "mapped", [22577]], [[194648, 194648], "mapped", [22700]], [[194649, 194649], "mapped", [136420]], [[194650, 194650], "mapped", [22770]], [[194651, 194651], "mapped", [22775]], [[194652, 194652], "mapped", [22790]], [[194653, 194653], "mapped", [22810]], [[194654, 194654], "mapped", [22818]], [[194655, 194655], "mapped", [22882]], [[194656, 194656], "mapped", [136872]], [[194657, 194657], "mapped", [136938]], [[194658, 194658], "mapped", [23020]], [[194659, 194659], "mapped", [23067]], [[194660, 194660], "mapped", [23079]], [[194661, 194661], "mapped", [23e3]], [[194662, 194662], "mapped", [23142]], [[194663, 194663], "mapped", [14062]], [[194664, 194664], "disallowed"], [[194665, 194665], "mapped", [23304]], [[194666, 194667], "mapped", [23358]], [[194668, 194668], "mapped", [137672]], [[194669, 194669], "mapped", [23491]], [[194670, 194670], "mapped", [23512]], [[194671, 194671], "mapped", [23527]], [[194672, 194672], "mapped", [23539]], [[194673, 194673], "mapped", [138008]], [[194674, 194674], "mapped", [23551]], [[194675, 194675], "mapped", [23558]], [[194676, 194676], "disallowed"], [[194677, 194677], "mapped", [23586]], [[194678, 194678], "mapped", [14209]], [[194679, 194679], "mapped", [23648]], [[194680, 194680], "mapped", [23662]], [[194681, 194681], "mapped", [23744]], [[194682, 194682], "mapped", [23693]], [[194683, 194683], "mapped", [138724]], [[194684, 194684], "mapped", [23875]], [[194685, 194685], "mapped", [138726]], [[194686, 194686], "mapped", [23918]], [[194687, 194687], "mapped", [23915]], [[194688, 194688], "mapped", [23932]], [[194689, 194689], "mapped", [24033]], [[194690, 194690], "mapped", [24034]], [[194691, 194691], "mapped", [14383]], [[194692, 194692], "mapped", [24061]], [[194693, 194693], "mapped", [24104]], [[194694, 194694], "mapped", [24125]], [[194695, 194695], "mapped", [24169]], [[194696, 194696], "mapped", [14434]], [[194697, 194697], "mapped", [139651]], [[194698, 194698], "mapped", [14460]], [[194699, 194699], "mapped", [24240]], [[194700, 194700], "mapped", [24243]], [[194701, 194701], "mapped", [24246]], [[194702, 194702], "mapped", [24266]], [[194703, 194703], "mapped", [172946]], [[194704, 194704], "mapped", [24318]], [[194705, 194706], "mapped", [140081]], [[194707, 194707], "mapped", [33281]], [[194708, 194709], "mapped", [24354]], [[194710, 194710], "mapped", [14535]], [[194711, 194711], "mapped", [144056]], [[194712, 194712], "mapped", [156122]], [[194713, 194713], "mapped", [24418]], [[194714, 194714], "mapped", [24427]], [[194715, 194715], "mapped", [14563]], [[194716, 194716], "mapped", [24474]], [[194717, 194717], "mapped", [24525]], [[194718, 194718], "mapped", [24535]], [[194719, 194719], "mapped", [24569]], [[194720, 194720], "mapped", [24705]], [[194721, 194721], "mapped", [14650]], [[194722, 194722], "mapped", [14620]], [[194723, 194723], "mapped", [24724]], [[194724, 194724], "mapped", [141012]], [[194725, 194725], "mapped", [24775]], [[194726, 194726], "mapped", [24904]], [[194727, 194727], "mapped", [24908]], [[194728, 194728], "mapped", [24910]], [[194729, 194729], "mapped", [24908]], [[194730, 194730], "mapped", [24954]], [[194731, 194731], "mapped", [24974]], [[194732, 194732], "mapped", [25010]], [[194733, 194733], "mapped", [24996]], [[194734, 194734], "mapped", [25007]], [[194735, 194735], "mapped", [25054]], [[194736, 194736], "mapped", [25074]], [[194737, 194737], "mapped", [25078]], [[194738, 194738], "mapped", [25104]], [[194739, 194739], "mapped", [25115]], [[194740, 194740], "mapped", [25181]], [[194741, 194741], "mapped", [25265]], [[194742, 194742], "mapped", [25300]], [[194743, 194743], "mapped", [25424]], [[194744, 194744], "mapped", [142092]], [[194745, 194745], "mapped", [25405]], [[194746, 194746], "mapped", [25340]], [[194747, 194747], "mapped", [25448]], [[194748, 194748], "mapped", [25475]], [[194749, 194749], "mapped", [25572]], [[194750, 194750], "mapped", [142321]], [[194751, 194751], "mapped", [25634]], [[194752, 194752], "mapped", [25541]], [[194753, 194753], "mapped", [25513]], [[194754, 194754], "mapped", [14894]], [[194755, 194755], "mapped", [25705]], [[194756, 194756], "mapped", [25726]], [[194757, 194757], "mapped", [25757]], [[194758, 194758], "mapped", [25719]], [[194759, 194759], "mapped", [14956]], [[194760, 194760], "mapped", [25935]], [[194761, 194761], "mapped", [25964]], [[194762, 194762], "mapped", [143370]], [[194763, 194763], "mapped", [26083]], [[194764, 194764], "mapped", [26360]], [[194765, 194765], "mapped", [26185]], [[194766, 194766], "mapped", [15129]], [[194767, 194767], "mapped", [26257]], [[194768, 194768], "mapped", [15112]], [[194769, 194769], "mapped", [15076]], [[194770, 194770], "mapped", [20882]], [[194771, 194771], "mapped", [20885]], [[194772, 194772], "mapped", [26368]], [[194773, 194773], "mapped", [26268]], [[194774, 194774], "mapped", [32941]], [[194775, 194775], "mapped", [17369]], [[194776, 194776], "mapped", [26391]], [[194777, 194777], "mapped", [26395]], [[194778, 194778], "mapped", [26401]], [[194779, 194779], "mapped", [26462]], [[194780, 194780], "mapped", [26451]], [[194781, 194781], "mapped", [144323]], [[194782, 194782], "mapped", [15177]], [[194783, 194783], "mapped", [26618]], [[194784, 194784], "mapped", [26501]], [[194785, 194785], "mapped", [26706]], [[194786, 194786], "mapped", [26757]], [[194787, 194787], "mapped", [144493]], [[194788, 194788], "mapped", [26766]], [[194789, 194789], "mapped", [26655]], [[194790, 194790], "mapped", [26900]], [[194791, 194791], "mapped", [15261]], [[194792, 194792], "mapped", [26946]], [[194793, 194793], "mapped", [27043]], [[194794, 194794], "mapped", [27114]], [[194795, 194795], "mapped", [27304]], [[194796, 194796], "mapped", [145059]], [[194797, 194797], "mapped", [27355]], [[194798, 194798], "mapped", [15384]], [[194799, 194799], "mapped", [27425]], [[194800, 194800], "mapped", [145575]], [[194801, 194801], "mapped", [27476]], [[194802, 194802], "mapped", [15438]], [[194803, 194803], "mapped", [27506]], [[194804, 194804], "mapped", [27551]], [[194805, 194805], "mapped", [27578]], [[194806, 194806], "mapped", [27579]], [[194807, 194807], "mapped", [146061]], [[194808, 194808], "mapped", [138507]], [[194809, 194809], "mapped", [146170]], [[194810, 194810], "mapped", [27726]], [[194811, 194811], "mapped", [146620]], [[194812, 194812], "mapped", [27839]], [[194813, 194813], "mapped", [27853]], [[194814, 194814], "mapped", [27751]], [[194815, 194815], "mapped", [27926]], [[194816, 194816], "mapped", [27966]], [[194817, 194817], "mapped", [28023]], [[194818, 194818], "mapped", [27969]], [[194819, 194819], "mapped", [28009]], [[194820, 194820], "mapped", [28024]], [[194821, 194821], "mapped", [28037]], [[194822, 194822], "mapped", [146718]], [[194823, 194823], "mapped", [27956]], [[194824, 194824], "mapped", [28207]], [[194825, 194825], "mapped", [28270]], [[194826, 194826], "mapped", [15667]], [[194827, 194827], "mapped", [28363]], [[194828, 194828], "mapped", [28359]], [[194829, 194829], "mapped", [147153]], [[194830, 194830], "mapped", [28153]], [[194831, 194831], "mapped", [28526]], [[194832, 194832], "mapped", [147294]], [[194833, 194833], "mapped", [147342]], [[194834, 194834], "mapped", [28614]], [[194835, 194835], "mapped", [28729]], [[194836, 194836], "mapped", [28702]], [[194837, 194837], "mapped", [28699]], [[194838, 194838], "mapped", [15766]], [[194839, 194839], "mapped", [28746]], [[194840, 194840], "mapped", [28797]], [[194841, 194841], "mapped", [28791]], [[194842, 194842], "mapped", [28845]], [[194843, 194843], "mapped", [132389]], [[194844, 194844], "mapped", [28997]], [[194845, 194845], "mapped", [148067]], [[194846, 194846], "mapped", [29084]], [[194847, 194847], "disallowed"], [[194848, 194848], "mapped", [29224]], [[194849, 194849], "mapped", [29237]], [[194850, 194850], "mapped", [29264]], [[194851, 194851], "mapped", [149e3]], [[194852, 194852], "mapped", [29312]], [[194853, 194853], "mapped", [29333]], [[194854, 194854], "mapped", [149301]], [[194855, 194855], "mapped", [149524]], [[194856, 194856], "mapped", [29562]], [[194857, 194857], "mapped", [29579]], [[194858, 194858], "mapped", [16044]], [[194859, 194859], "mapped", [29605]], [[194860, 194861], "mapped", [16056]], [[194862, 194862], "mapped", [29767]], [[194863, 194863], "mapped", [29788]], [[194864, 194864], "mapped", [29809]], [[194865, 194865], "mapped", [29829]], [[194866, 194866], "mapped", [29898]], [[194867, 194867], "mapped", [16155]], [[194868, 194868], "mapped", [29988]], [[194869, 194869], "mapped", [150582]], [[194870, 194870], "mapped", [30014]], [[194871, 194871], "mapped", [150674]], [[194872, 194872], "mapped", [30064]], [[194873, 194873], "mapped", [139679]], [[194874, 194874], "mapped", [30224]], [[194875, 194875], "mapped", [151457]], [[194876, 194876], "mapped", [151480]], [[194877, 194877], "mapped", [151620]], [[194878, 194878], "mapped", [16380]], [[194879, 194879], "mapped", [16392]], [[194880, 194880], "mapped", [30452]], [[194881, 194881], "mapped", [151795]], [[194882, 194882], "mapped", [151794]], [[194883, 194883], "mapped", [151833]], [[194884, 194884], "mapped", [151859]], [[194885, 194885], "mapped", [30494]], [[194886, 194887], "mapped", [30495]], [[194888, 194888], "mapped", [30538]], [[194889, 194889], "mapped", [16441]], [[194890, 194890], "mapped", [30603]], [[194891, 194891], "mapped", [16454]], [[194892, 194892], "mapped", [16534]], [[194893, 194893], "mapped", [152605]], [[194894, 194894], "mapped", [30798]], [[194895, 194895], "mapped", [30860]], [[194896, 194896], "mapped", [30924]], [[194897, 194897], "mapped", [16611]], [[194898, 194898], "mapped", [153126]], [[194899, 194899], "mapped", [31062]], [[194900, 194900], "mapped", [153242]], [[194901, 194901], "mapped", [153285]], [[194902, 194902], "mapped", [31119]], [[194903, 194903], "mapped", [31211]], [[194904, 194904], "mapped", [16687]], [[194905, 194905], "mapped", [31296]], [[194906, 194906], "mapped", [31306]], [[194907, 194907], "mapped", [31311]], [[194908, 194908], "mapped", [153980]], [[194909, 194910], "mapped", [154279]], [[194911, 194911], "disallowed"], [[194912, 194912], "mapped", [16898]], [[194913, 194913], "mapped", [154539]], [[194914, 194914], "mapped", [31686]], [[194915, 194915], "mapped", [31689]], [[194916, 194916], "mapped", [16935]], [[194917, 194917], "mapped", [154752]], [[194918, 194918], "mapped", [31954]], [[194919, 194919], "mapped", [17056]], [[194920, 194920], "mapped", [31976]], [[194921, 194921], "mapped", [31971]], [[194922, 194922], "mapped", [32e3]], [[194923, 194923], "mapped", [155526]], [[194924, 194924], "mapped", [32099]], [[194925, 194925], "mapped", [17153]], [[194926, 194926], "mapped", [32199]], [[194927, 194927], "mapped", [32258]], [[194928, 194928], "mapped", [32325]], [[194929, 194929], "mapped", [17204]], [[194930, 194930], "mapped", [156200]], [[194931, 194931], "mapped", [156231]], [[194932, 194932], "mapped", [17241]], [[194933, 194933], "mapped", [156377]], [[194934, 194934], "mapped", [32634]], [[194935, 194935], "mapped", [156478]], [[194936, 194936], "mapped", [32661]], [[194937, 194937], "mapped", [32762]], [[194938, 194938], "mapped", [32773]], [[194939, 194939], "mapped", [156890]], [[194940, 194940], "mapped", [156963]], [[194941, 194941], "mapped", [32864]], [[194942, 194942], "mapped", [157096]], [[194943, 194943], "mapped", [32880]], [[194944, 194944], "mapped", [144223]], [[194945, 194945], "mapped", [17365]], [[194946, 194946], "mapped", [32946]], [[194947, 194947], "mapped", [33027]], [[194948, 194948], "mapped", [17419]], [[194949, 194949], "mapped", [33086]], [[194950, 194950], "mapped", [23221]], [[194951, 194951], "mapped", [157607]], [[194952, 194952], "mapped", [157621]], [[194953, 194953], "mapped", [144275]], [[194954, 194954], "mapped", [144284]], [[194955, 194955], "mapped", [33281]], [[194956, 194956], "mapped", [33284]], [[194957, 194957], "mapped", [36766]], [[194958, 194958], "mapped", [17515]], [[194959, 194959], "mapped", [33425]], [[194960, 194960], "mapped", [33419]], [[194961, 194961], "mapped", [33437]], [[194962, 194962], "mapped", [21171]], [[194963, 194963], "mapped", [33457]], [[194964, 194964], "mapped", [33459]], [[194965, 194965], "mapped", [33469]], [[194966, 194966], "mapped", [33510]], [[194967, 194967], "mapped", [158524]], [[194968, 194968], "mapped", [33509]], [[194969, 194969], "mapped", [33565]], [[194970, 194970], "mapped", [33635]], [[194971, 194971], "mapped", [33709]], [[194972, 194972], "mapped", [33571]], [[194973, 194973], "mapped", [33725]], [[194974, 194974], "mapped", [33767]], [[194975, 194975], "mapped", [33879]], [[194976, 194976], "mapped", [33619]], [[194977, 194977], "mapped", [33738]], [[194978, 194978], "mapped", [33740]], [[194979, 194979], "mapped", [33756]], [[194980, 194980], "mapped", [158774]], [[194981, 194981], "mapped", [159083]], [[194982, 194982], "mapped", [158933]], [[194983, 194983], "mapped", [17707]], [[194984, 194984], "mapped", [34033]], [[194985, 194985], "mapped", [34035]], [[194986, 194986], "mapped", [34070]], [[194987, 194987], "mapped", [160714]], [[194988, 194988], "mapped", [34148]], [[194989, 194989], "mapped", [159532]], [[194990, 194990], "mapped", [17757]], [[194991, 194991], "mapped", [17761]], [[194992, 194992], "mapped", [159665]], [[194993, 194993], "mapped", [159954]], [[194994, 194994], "mapped", [17771]], [[194995, 194995], "mapped", [34384]], [[194996, 194996], "mapped", [34396]], [[194997, 194997], "mapped", [34407]], [[194998, 194998], "mapped", [34409]], [[194999, 194999], "mapped", [34473]], [[195e3, 195e3], "mapped", [34440]], [[195001, 195001], "mapped", [34574]], [[195002, 195002], "mapped", [34530]], [[195003, 195003], "mapped", [34681]], [[195004, 195004], "mapped", [34600]], [[195005, 195005], "mapped", [34667]], [[195006, 195006], "mapped", [34694]], [[195007, 195007], "disallowed"], [[195008, 195008], "mapped", [34785]], [[195009, 195009], "mapped", [34817]], [[195010, 195010], "mapped", [17913]], [[195011, 195011], "mapped", [34912]], [[195012, 195012], "mapped", [34915]], [[195013, 195013], "mapped", [161383]], [[195014, 195014], "mapped", [35031]], [[195015, 195015], "mapped", [35038]], [[195016, 195016], "mapped", [17973]], [[195017, 195017], "mapped", [35066]], [[195018, 195018], "mapped", [13499]], [[195019, 195019], "mapped", [161966]], [[195020, 195020], "mapped", [162150]], [[195021, 195021], "mapped", [18110]], [[195022, 195022], "mapped", [18119]], [[195023, 195023], "mapped", [35488]], [[195024, 195024], "mapped", [35565]], [[195025, 195025], "mapped", [35722]], [[195026, 195026], "mapped", [35925]], [[195027, 195027], "mapped", [162984]], [[195028, 195028], "mapped", [36011]], [[195029, 195029], "mapped", [36033]], [[195030, 195030], "mapped", [36123]], [[195031, 195031], "mapped", [36215]], [[195032, 195032], "mapped", [163631]], [[195033, 195033], "mapped", [133124]], [[195034, 195034], "mapped", [36299]], [[195035, 195035], "mapped", [36284]], [[195036, 195036], "mapped", [36336]], [[195037, 195037], "mapped", [133342]], [[195038, 195038], "mapped", [36564]], [[195039, 195039], "mapped", [36664]], [[195040, 195040], "mapped", [165330]], [[195041, 195041], "mapped", [165357]], [[195042, 195042], "mapped", [37012]], [[195043, 195043], "mapped", [37105]], [[195044, 195044], "mapped", [37137]], [[195045, 195045], "mapped", [165678]], [[195046, 195046], "mapped", [37147]], [[195047, 195047], "mapped", [37432]], [[195048, 195048], "mapped", [37591]], [[195049, 195049], "mapped", [37592]], [[195050, 195050], "mapped", [37500]], [[195051, 195051], "mapped", [37881]], [[195052, 195052], "mapped", [37909]], [[195053, 195053], "mapped", [166906]], [[195054, 195054], "mapped", [38283]], [[195055, 195055], "mapped", [18837]], [[195056, 195056], "mapped", [38327]], [[195057, 195057], "mapped", [167287]], [[195058, 195058], "mapped", [18918]], [[195059, 195059], "mapped", [38595]], [[195060, 195060], "mapped", [23986]], [[195061, 195061], "mapped", [38691]], [[195062, 195062], "mapped", [168261]], [[195063, 195063], "mapped", [168474]], [[195064, 195064], "mapped", [19054]], [[195065, 195065], "mapped", [19062]], [[195066, 195066], "mapped", [38880]], [[195067, 195067], "mapped", [168970]], [[195068, 195068], "mapped", [19122]], [[195069, 195069], "mapped", [169110]], [[195070, 195071], "mapped", [38923]], [[195072, 195072], "mapped", [38953]], [[195073, 195073], "mapped", [169398]], [[195074, 195074], "mapped", [39138]], [[195075, 195075], "mapped", [19251]], [[195076, 195076], "mapped", [39209]], [[195077, 195077], "mapped", [39335]], [[195078, 195078], "mapped", [39362]], [[195079, 195079], "mapped", [39422]], [[195080, 195080], "mapped", [19406]], [[195081, 195081], "mapped", [170800]], [[195082, 195082], "mapped", [39698]], [[195083, 195083], "mapped", [4e4]], [[195084, 195084], "mapped", [40189]], [[195085, 195085], "mapped", [19662]], [[195086, 195086], "mapped", [19693]], [[195087, 195087], "mapped", [40295]], [[195088, 195088], "mapped", [172238]], [[195089, 195089], "mapped", [19704]], [[195090, 195090], "mapped", [172293]], [[195091, 195091], "mapped", [172558]], [[195092, 195092], "mapped", [172689]], [[195093, 195093], "mapped", [40635]], [[195094, 195094], "mapped", [19798]], [[195095, 195095], "mapped", [40697]], [[195096, 195096], "mapped", [40702]], [[195097, 195097], "mapped", [40709]], [[195098, 195098], "mapped", [40719]], [[195099, 195099], "mapped", [40726]], [[195100, 195100], "mapped", [40763]], [[195101, 195101], "mapped", [173568]], [[195102, 196605], "disallowed"], [[196606, 196607], "disallowed"], [[196608, 262141], "disallowed"], [[262142, 262143], "disallowed"], [[262144, 327677], "disallowed"], [[327678, 327679], "disallowed"], [[327680, 393213], "disallowed"], [[393214, 393215], "disallowed"], [[393216, 458749], "disallowed"], [[458750, 458751], "disallowed"], [[458752, 524285], "disallowed"], [[524286, 524287], "disallowed"], [[524288, 589821], "disallowed"], [[589822, 589823], "disallowed"], [[589824, 655357], "disallowed"], [[655358, 655359], "disallowed"], [[655360, 720893], "disallowed"], [[720894, 720895], "disallowed"], [[720896, 786429], "disallowed"], [[786430, 786431], "disallowed"], [[786432, 851965], "disallowed"], [[851966, 851967], "disallowed"], [[851968, 917501], "disallowed"], [[917502, 917503], "disallowed"], [[917504, 917504], "disallowed"], [[917505, 917505], "disallowed"], [[917506, 917535], "disallowed"], [[917536, 917631], "disallowed"], [[917632, 917759], "disallowed"], [[917760, 917999], "ignored"], [[918e3, 983037], "disallowed"], [[983038, 983039], "disallowed"], [[983040, 1048573], "disallowed"], [[1048574, 1048575], "disallowed"], [[1048576, 1114109], "disallowed"], [[1114110, 1114111], "disallowed"]]; + } +}); + +// node_modules/tr46/index.js +var require_tr46 = __commonJS({ + "node_modules/tr46/index.js"(exports2, module2) { + "use strict"; + var punycode = require("punycode"); + var mappingTable = require_mappingTable(); + var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1 + }; + function normalize(str) { + return str.split("\0").map(function(s) { + return s.normalize("NFC"); + }).join("\0"); + } + function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; + while (start <= end) { + var mid = Math.floor((start + end) / 2); + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } + return null; + } + var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + function countSymbols(string) { + return string.replace(regexAstralSymbols, "_").length; + } + function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } + processed += String.fromCodePoint(codePoint); + break; + } + } + return { + string: processed, + error: hasError + }; + } + var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; + function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } + var error = false; + if (normalize(label) !== label || label[3] === "-" && label[4] === "-" || label[0] === "-" || label[label.length - 1] === "-" || label.indexOf(".") !== -1 || label.search(combiningMarksRegex) === 0) { + error = true; + } + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if (processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid" || processing === PROCESSING_OPTIONS.NONTRANSITIONAL && status[1] !== "valid" && status[1] !== "deviation") { + error = true; + break; + } + } + return { + label, + error + }; + } + function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch (e) { + result.error = true; + } + } + return { + string: labels.join("."), + error: result.error + }; + } + module2.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function(l) { + try { + return punycode.toASCII(l); + } catch (e) { + result.error = true; + return l; + } + }); + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } + for (var i = 0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } + } + if (result.error) return null; + return labels.join("."); + }; + module2.exports.toUnicode = function(domain_name, useSTD3) { + var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); + return { + domain: result.string, + error: result.error + }; + }; + module2.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; + } +}); + +// node_modules/whatwg-url/lib/url-state-machine.js +var require_url_state_machine = __commonJS({ + "node_modules/whatwg-url/lib/url-state-machine.js"(exports2, module2) { + "use strict"; + var punycode = require("punycode"); + var tr46 = require_tr46(); + var specialSchemes = { + ftp: 21, + file: null, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443 + }; + var failure = Symbol("failure"); + function countSymbols(str) { + return punycode.ucs2.decode(str).length; + } + function at(input, idx) { + const c = input[idx]; + return isNaN(c) ? void 0 : String.fromCodePoint(c); + } + function isASCIIDigit(c) { + return c >= 48 && c <= 57; + } + function isASCIIAlpha(c) { + return c >= 65 && c <= 90 || c >= 97 && c <= 122; + } + function isASCIIAlphanumeric(c) { + return isASCIIAlpha(c) || isASCIIDigit(c); + } + function isASCIIHex(c) { + return isASCIIDigit(c) || c >= 65 && c <= 70 || c >= 97 && c <= 102; + } + function isSingleDot(buffer) { + return buffer === "." || buffer.toLowerCase() === "%2e"; + } + function isDoubleDot(buffer) { + buffer = buffer.toLowerCase(); + return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; + } + function isWindowsDriveLetterCodePoints(cp1, cp2) { + return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); + } + function isWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); + } + function isNormalizedWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; + } + function containsForbiddenHostCodePoint(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; + } + function containsForbiddenHostCodePointExcludingPercent(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; + } + function isSpecialScheme(scheme) { + return specialSchemes[scheme] !== void 0; + } + function isSpecial(url) { + return isSpecialScheme(url.scheme); + } + function defaultPort(scheme) { + return specialSchemes[scheme]; + } + function percentEncode(c) { + let hex = c.toString(16).toUpperCase(); + if (hex.length === 1) { + hex = "0" + hex; + } + return "%" + hex; + } + function utf8PercentEncode(c) { + const buf = new Buffer(c); + let str = ""; + for (let i = 0; i < buf.length; ++i) { + str += percentEncode(buf[i]); + } + return str; + } + function utf8PercentDecode(str) { + const input = new Buffer(str); + const output = []; + for (let i = 0; i < input.length; ++i) { + if (input[i] !== 37) { + output.push(input[i]); + } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { + output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); + i += 2; + } else { + output.push(input[i]); + } + } + return new Buffer(output).toString(); + } + function isC0ControlPercentEncode(c) { + return c <= 31 || c > 126; + } + var extraPathPercentEncodeSet = /* @__PURE__ */ new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); + function isPathPercentEncode(c) { + return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); + } + var extraUserinfoPercentEncodeSet = /* @__PURE__ */ new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); + function isUserinfoPercentEncode(c) { + return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); + } + function percentEncodeChar(c, encodeSetPredicate) { + const cStr = String.fromCodePoint(c); + if (encodeSetPredicate(c)) { + return utf8PercentEncode(cStr); + } + return cStr; + } + function parseIPv4Number(input) { + let R = 10; + if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { + input = input.substring(2); + R = 16; + } else if (input.length >= 2 && input.charAt(0) === "0") { + input = input.substring(1); + R = 8; + } + if (input === "") { + return 0; + } + const regex = R === 10 ? /[^0-9]/ : R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/; + if (regex.test(input)) { + return failure; + } + return parseInt(input, R); + } + function parseIPv4(input) { + const parts = input.split("."); + if (parts[parts.length - 1] === "") { + if (parts.length > 1) { + parts.pop(); + } + } + if (parts.length > 4) { + return input; + } + const numbers = []; + for (const part of parts) { + if (part === "") { + return input; + } + const n = parseIPv4Number(part); + if (n === failure) { + return input; + } + numbers.push(n); + } + for (let i = 0; i < numbers.length - 1; ++i) { + if (numbers[i] > 255) { + return failure; + } + } + if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { + return failure; + } + let ipv4 = numbers.pop(); + let counter = 0; + for (const n of numbers) { + ipv4 += n * Math.pow(256, 3 - counter); + ++counter; + } + return ipv4; + } + function serializeIPv4(address) { + let output = ""; + let n = address; + for (let i = 1; i <= 4; ++i) { + output = String(n % 256) + output; + if (i !== 4) { + output = "." + output; + } + n = Math.floor(n / 256); + } + return output; + } + function parseIPv6(input) { + const address = [0, 0, 0, 0, 0, 0, 0, 0]; + let pieceIndex = 0; + let compress = null; + let pointer = 0; + input = punycode.ucs2.decode(input); + if (input[pointer] === 58) { + if (input[pointer + 1] !== 58) { + return failure; + } + pointer += 2; + ++pieceIndex; + compress = pieceIndex; + } + while (pointer < input.length) { + if (pieceIndex === 8) { + return failure; + } + if (input[pointer] === 58) { + if (compress !== null) { + return failure; + } + ++pointer; + ++pieceIndex; + compress = pieceIndex; + continue; + } + let value = 0; + let length = 0; + while (length < 4 && isASCIIHex(input[pointer])) { + value = value * 16 + parseInt(at(input, pointer), 16); + ++pointer; + ++length; + } + if (input[pointer] === 46) { + if (length === 0) { + return failure; + } + pointer -= length; + if (pieceIndex > 6) { + return failure; + } + let numbersSeen = 0; + while (input[pointer] !== void 0) { + let ipv4Piece = null; + if (numbersSeen > 0) { + if (input[pointer] === 46 && numbersSeen < 4) { + ++pointer; + } else { + return failure; + } + } + if (!isASCIIDigit(input[pointer])) { + return failure; + } + while (isASCIIDigit(input[pointer])) { + const number = parseInt(at(input, pointer)); + if (ipv4Piece === null) { + ipv4Piece = number; + } else if (ipv4Piece === 0) { + return failure; + } else { + ipv4Piece = ipv4Piece * 10 + number; + } + if (ipv4Piece > 255) { + return failure; + } + ++pointer; + } + address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; + ++numbersSeen; + if (numbersSeen === 2 || numbersSeen === 4) { + ++pieceIndex; + } + } + if (numbersSeen !== 4) { + return failure; + } + break; + } else if (input[pointer] === 58) { + ++pointer; + if (input[pointer] === void 0) { + return failure; + } + } else if (input[pointer] !== void 0) { + return failure; + } + address[pieceIndex] = value; + ++pieceIndex; + } + if (compress !== null) { + let swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + const temp = address[compress + swaps - 1]; + address[compress + swaps - 1] = address[pieceIndex]; + address[pieceIndex] = temp; + --pieceIndex; + --swaps; + } + } else if (compress === null && pieceIndex !== 8) { + return failure; + } + return address; + } + function serializeIPv6(address) { + let output = ""; + const seqResult = findLongestZeroSequence(address); + const compress = seqResult.idx; + let ignore0 = false; + for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { + if (ignore0 && address[pieceIndex] === 0) { + continue; + } else if (ignore0) { + ignore0 = false; + } + if (compress === pieceIndex) { + const separator = pieceIndex === 0 ? "::" : ":"; + output += separator; + ignore0 = true; + continue; + } + output += address[pieceIndex].toString(16); + if (pieceIndex !== 7) { + output += ":"; + } + } + return output; + } + function parseHost(input, isSpecialArg) { + if (input[0] === "[") { + if (input[input.length - 1] !== "]") { + return failure; + } + return parseIPv6(input.substring(1, input.length - 1)); + } + if (!isSpecialArg) { + return parseOpaqueHost(input); + } + const domain = utf8PercentDecode(input); + const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); + if (asciiDomain === null) { + return failure; + } + if (containsForbiddenHostCodePoint(asciiDomain)) { + return failure; + } + const ipv4Host = parseIPv4(asciiDomain); + if (typeof ipv4Host === "number" || ipv4Host === failure) { + return ipv4Host; + } + return asciiDomain; + } + function parseOpaqueHost(input) { + if (containsForbiddenHostCodePointExcludingPercent(input)) { + return failure; + } + let output = ""; + const decoded = punycode.ucs2.decode(input); + for (let i = 0; i < decoded.length; ++i) { + output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); + } + return output; + } + function findLongestZeroSequence(arr) { + let maxIdx = null; + let maxLen = 1; + let currStart = null; + let currLen = 0; + for (let i = 0; i < arr.length; ++i) { + if (arr[i] !== 0) { + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + currStart = null; + currLen = 0; + } else { + if (currStart === null) { + currStart = i; + } + ++currLen; + } + } + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + return { + idx: maxIdx, + len: maxLen + }; + } + function serializeHost(host) { + if (typeof host === "number") { + return serializeIPv4(host); + } + if (host instanceof Array) { + return "[" + serializeIPv6(host) + "]"; + } + return host; + } + function trimControlChars(url) { + return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); + } + function trimTabAndNewline(url) { + return url.replace(/\u0009|\u000A|\u000D/g, ""); + } + function shortenPath(url) { + const path = url.path; + if (path.length === 0) { + return; + } + if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { + return; + } + path.pop(); + } + function includesCredentials(url) { + return url.username !== "" || url.password !== ""; + } + function cannotHaveAUsernamePasswordPort(url) { + return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; + } + function isNormalizedWindowsDriveLetter(string) { + return /^[A-Za-z]:$/.test(string); + } + function URLStateMachine(input, base, encodingOverride, url, stateOverride) { + this.pointer = 0; + this.input = input; + this.base = base || null; + this.encodingOverride = encodingOverride || "utf-8"; + this.stateOverride = stateOverride; + this.url = url; + this.failure = false; + this.parseError = false; + if (!this.url) { + this.url = { + scheme: "", + username: "", + password: "", + host: null, + port: null, + path: [], + query: null, + fragment: null, + cannotBeABaseURL: false + }; + const res2 = trimControlChars(this.input); + if (res2 !== this.input) { + this.parseError = true; + } + this.input = res2; + } + const res = trimTabAndNewline(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + this.state = stateOverride || "scheme start"; + this.buffer = ""; + this.atFlag = false; + this.arrFlag = false; + this.passwordTokenSeenFlag = false; + this.input = punycode.ucs2.decode(this.input); + for (; this.pointer <= this.input.length; ++this.pointer) { + const c = this.input[this.pointer]; + const cStr = isNaN(c) ? void 0 : String.fromCodePoint(c); + const ret = this["parse " + this.state](c, cStr); + if (!ret) { + break; + } else if (ret === failure) { + this.failure = true; + break; + } + } + } + URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { + if (isASCIIAlpha(c)) { + this.buffer += cStr.toLowerCase(); + this.state = "scheme"; + } else if (!this.stateOverride) { + this.state = "no scheme"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + return true; + }; + URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { + if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { + this.buffer += cStr.toLowerCase(); + } else if (c === 58) { + if (this.stateOverride) { + if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { + return false; + } + if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { + return false; + } + if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { + return false; + } + if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { + return false; + } + } + this.url.scheme = this.buffer; + this.buffer = ""; + if (this.stateOverride) { + return false; + } + if (this.url.scheme === "file") { + if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { + this.parseError = true; + } + this.state = "file"; + } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { + this.state = "special relative or authority"; + } else if (isSpecial(this.url)) { + this.state = "special authority slashes"; + } else if (this.input[this.pointer + 1] === 47) { + this.state = "path or authority"; + ++this.pointer; + } else { + this.url.cannotBeABaseURL = true; + this.url.path.push(""); + this.state = "cannot-be-a-base-URL path"; + } + } else if (!this.stateOverride) { + this.buffer = ""; + this.state = "no scheme"; + this.pointer = -1; + } else { + this.parseError = true; + return failure; + } + return true; + }; + URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { + if (this.base === null || this.base.cannotBeABaseURL && c !== 35) { + return failure; + } else if (this.base.cannotBeABaseURL && c === 35) { + this.url.scheme = this.base.scheme; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.url.cannotBeABaseURL = true; + this.state = "fragment"; + } else if (this.base.scheme === "file") { + this.state = "file"; + --this.pointer; + } else { + this.state = "relative"; + --this.pointer; + } + return true; + }; + URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "relative"; + --this.pointer; + } + return true; + }; + URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { + if (c === 47) { + this.state = "authority"; + } else { + this.state = "path"; + --this.pointer; + } + return true; + }; + URLStateMachine.prototype["parse relative"] = function parseRelative(c) { + this.url.scheme = this.base.scheme; + if (isNaN(c)) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 47) { + this.state = "relative slash"; + } else if (c === 63) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else if (isSpecial(this.url) && c === 92) { + this.parseError = true; + this.state = "relative slash"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(0, this.base.path.length - 1); + this.state = "path"; + --this.pointer; + } + return true; + }; + URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { + if (isSpecial(this.url) && (c === 47 || c === 92)) { + if (c === 92) { + this.parseError = true; + } + this.state = "special authority ignore slashes"; + } else if (c === 47) { + this.state = "authority"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.state = "path"; + --this.pointer; + } + return true; + }; + URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "special authority ignore slashes"; + --this.pointer; + } + return true; + }; + URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { + if (c !== 47 && c !== 92) { + this.state = "authority"; + --this.pointer; + } else { + this.parseError = true; + } + return true; + }; + URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { + if (c === 64) { + this.parseError = true; + if (this.atFlag) { + this.buffer = "%40" + this.buffer; + } + this.atFlag = true; + const len = countSymbols(this.buffer); + for (let pointer = 0; pointer < len; ++pointer) { + const codePoint = this.buffer.codePointAt(pointer); + if (codePoint === 58 && !this.passwordTokenSeenFlag) { + this.passwordTokenSeenFlag = true; + continue; + } + const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); + if (this.passwordTokenSeenFlag) { + this.url.password += encodedCodePoints; + } else { + this.url.username += encodedCodePoints; + } + } + this.buffer = ""; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || isSpecial(this.url) && c === 92) { + if (this.atFlag && this.buffer === "") { + this.parseError = true; + return failure; + } + this.pointer -= countSymbols(this.buffer) + 1; + this.buffer = ""; + this.state = "host"; + } else { + this.buffer += cStr; + } + return true; + }; + URLStateMachine.prototype["parse hostname"] = URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { + if (this.stateOverride && this.url.scheme === "file") { + --this.pointer; + this.state = "file host"; + } else if (c === 58 && !this.arrFlag) { + if (this.buffer === "") { + this.parseError = true; + return failure; + } + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + this.url.host = host; + this.buffer = ""; + this.state = "port"; + if (this.stateOverride === "hostname") { + return false; + } + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || isSpecial(this.url) && c === 92) { + --this.pointer; + if (isSpecial(this.url) && this.buffer === "") { + this.parseError = true; + return failure; + } else if (this.stateOverride && this.buffer === "" && (includesCredentials(this.url) || this.url.port !== null)) { + this.parseError = true; + return false; + } + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + this.url.host = host; + this.buffer = ""; + this.state = "path start"; + if (this.stateOverride) { + return false; + } + } else { + if (c === 91) { + this.arrFlag = true; + } else if (c === 93) { + this.arrFlag = false; + } + this.buffer += cStr; + } + return true; + }; + URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { + if (isASCIIDigit(c)) { + this.buffer += cStr; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || isSpecial(this.url) && c === 92 || this.stateOverride) { + if (this.buffer !== "") { + const port = parseInt(this.buffer); + if (port > Math.pow(2, 16) - 1) { + this.parseError = true; + return failure; + } + this.url.port = port === defaultPort(this.url.scheme) ? null : port; + this.buffer = ""; + } + if (this.stateOverride) { + return false; + } + this.state = "path start"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + return true; + }; + var fileOtherwiseCodePoints = /* @__PURE__ */ new Set([47, 92, 63, 35]); + URLStateMachine.prototype["parse file"] = function parseFile(c) { + this.url.scheme = "file"; + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file slash"; + } else if (this.base !== null && this.base.scheme === "file") { + if (isNaN(c)) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 63) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else { + if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points + !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points + !fileOtherwiseCodePoints.has(this.input[this.pointer + 2])) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + shortenPath(this.url); + } else { + this.parseError = true; + } + this.state = "path"; + --this.pointer; + } + } else { + this.state = "path"; + --this.pointer; + } + return true; + }; + URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file host"; + } else { + if (this.base !== null && this.base.scheme === "file") { + if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { + this.url.path.push(this.base.path[0]); + } else { + this.url.host = this.base.host; + } + } + this.state = "path"; + --this.pointer; + } + return true; + }; + URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { + if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { + --this.pointer; + if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { + this.parseError = true; + this.state = "path"; + } else if (this.buffer === "") { + this.url.host = ""; + if (this.stateOverride) { + return false; + } + this.state = "path start"; + } else { + let host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + if (host === "localhost") { + host = ""; + } + this.url.host = host; + if (this.stateOverride) { + return false; + } + this.buffer = ""; + this.state = "path start"; + } + } else { + this.buffer += cStr; + } + return true; + }; + URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { + if (isSpecial(this.url)) { + if (c === 92) { + this.parseError = true; + } + this.state = "path"; + if (c !== 47 && c !== 92) { + --this.pointer; + } + } else if (!this.stateOverride && c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (!this.stateOverride && c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else if (c !== void 0) { + this.state = "path"; + if (c !== 47) { + --this.pointer; + } + } + return true; + }; + URLStateMachine.prototype["parse path"] = function parsePath(c) { + if (isNaN(c) || c === 47 || isSpecial(this.url) && c === 92 || !this.stateOverride && (c === 63 || c === 35)) { + if (isSpecial(this.url) && c === 92) { + this.parseError = true; + } + if (isDoubleDot(this.buffer)) { + shortenPath(this.url); + if (c !== 47 && !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } + } else if (isSingleDot(this.buffer) && c !== 47 && !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } else if (!isSingleDot(this.buffer)) { + if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { + if (this.url.host !== "" && this.url.host !== null) { + this.parseError = true; + this.url.host = ""; + } + this.buffer = this.buffer[0] + ":"; + } + this.url.path.push(this.buffer); + } + this.buffer = ""; + if (this.url.scheme === "file" && (c === void 0 || c === 63 || c === 35)) { + while (this.url.path.length > 1 && this.url.path[0] === "") { + this.parseError = true; + this.url.path.shift(); + } + } + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + if (c === 37 && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + this.buffer += percentEncodeChar(c, isPathPercentEncode); + } + return true; + }; + URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else { + if (!isNaN(c) && c !== 37) { + this.parseError = true; + } + if (c === 37 && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + if (!isNaN(c)) { + this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); + } + } + return true; + }; + URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { + if (isNaN(c) || !this.stateOverride && c === 35) { + if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { + this.encodingOverride = "utf-8"; + } + const buffer = new Buffer(this.buffer); + for (let i = 0; i < buffer.length; ++i) { + if (buffer[i] < 33 || buffer[i] > 126 || buffer[i] === 34 || buffer[i] === 35 || buffer[i] === 60 || buffer[i] === 62) { + this.url.query += percentEncode(buffer[i]); + } else { + this.url.query += String.fromCodePoint(buffer[i]); + } + } + this.buffer = ""; + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + if (c === 37 && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + this.buffer += cStr; + } + return true; + }; + URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { + if (isNaN(c)) { + } else if (c === 0) { + this.parseError = true; + } else { + if (c === 37 && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + return true; + }; + function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + output += serializeHost(url.host); + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + if (url.query !== null) { + output += "?" + url.query; + } + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + return output; + } + function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + if (tuple.port !== null) { + result += ":" + tuple.port; + } + return result; + } + module2.exports.serializeURL = serializeURL; + module2.exports.serializeURLOrigin = function(url) { + switch (url.scheme) { + case "blob": + try { + return module2.exports.serializeURLOrigin(module2.exports.parseURL(url.path[0])); + } catch (e) { + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + return "file://"; + default: + return "null"; + } + }; + module2.exports.basicURLParse = function(input, options) { + if (options === void 0) { + options = {}; + } + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + return usm.url; + }; + module2.exports.setTheUsername = function(url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } + }; + module2.exports.setThePassword = function(url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } + }; + module2.exports.serializeHost = serializeHost; + module2.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + module2.exports.serializeInteger = function(integer) { + return String(integer); + }; + module2.exports.parseURL = function(input, options) { + if (options === void 0) { + options = {}; + } + return module2.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); + }; + } +}); + +// node_modules/whatwg-url/lib/URL-impl.js +var require_URL_impl = __commonJS({ + "node_modules/whatwg-url/lib/URL-impl.js"(exports2) { + "use strict"; + var usm = require_url_state_machine(); + exports2.implementation = class URLImpl { + constructor(constructorArgs) { + const url = constructorArgs[0]; + const base = constructorArgs[1]; + let parsedBase = null; + if (base !== void 0) { + parsedBase = usm.basicURLParse(base); + if (parsedBase === "failure") { + throw new TypeError("Invalid base URL"); + } + } + const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + this._url = parsedURL; + } + get href() { + return usm.serializeURL(this._url); + } + set href(v) { + const parsedURL = usm.basicURLParse(v); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + this._url = parsedURL; + } + get origin() { + return usm.serializeURLOrigin(this._url); + } + get protocol() { + return this._url.scheme + ":"; + } + set protocol(v) { + usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); + } + get username() { + return this._url.username; + } + set username(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + usm.setTheUsername(this._url, v); + } + get password() { + return this._url.password; + } + set password(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + usm.setThePassword(this._url, v); + } + get host() { + const url = this._url; + if (url.host === null) { + return ""; + } + if (url.port === null) { + return usm.serializeHost(url.host); + } + return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); + } + set host(v) { + if (this._url.cannotBeABaseURL) { + return; + } + usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); + } + get hostname() { + if (this._url.host === null) { + return ""; + } + return usm.serializeHost(this._url.host); + } + set hostname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); + } + get port() { + if (this._url.port === null) { + return ""; + } + return usm.serializeInteger(this._url.port); + } + set port(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + if (v === "") { + this._url.port = null; + } else { + usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); + } + } + get pathname() { + if (this._url.cannotBeABaseURL) { + return this._url.path[0]; + } + if (this._url.path.length === 0) { + return ""; + } + return "/" + this._url.path.join("/"); + } + set pathname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + this._url.path = []; + usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); + } + get search() { + if (this._url.query === null || this._url.query === "") { + return ""; + } + return "?" + this._url.query; + } + set search(v) { + const url = this._url; + if (v === "") { + url.query = null; + return; + } + const input = v[0] === "?" ? v.substring(1) : v; + url.query = ""; + usm.basicURLParse(input, { url, stateOverride: "query" }); + } + get hash() { + if (this._url.fragment === null || this._url.fragment === "") { + return ""; + } + return "#" + this._url.fragment; + } + set hash(v) { + if (v === "") { + this._url.fragment = null; + return; + } + const input = v[0] === "#" ? v.substring(1) : v; + this._url.fragment = ""; + usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); + } + toJSON() { + return this.href; + } + }; + } +}); + +// node_modules/whatwg-url/lib/URL.js +var require_URL = __commonJS({ + "node_modules/whatwg-url/lib/URL.js"(exports2, module2) { + "use strict"; + var conversions = require_lib3(); + var utils2 = require_utils5(); + var Impl = require_URL_impl(); + var impl = utils2.implSymbol; + function URL3(url) { + if (!this || this[impl] || !(this instanceof URL3)) { + throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); + } + if (arguments.length < 1) { + throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); + } + const args = []; + for (let i = 0; i < arguments.length && i < 2; ++i) { + args[i] = arguments[i]; + } + args[0] = conversions["USVString"](args[0]); + if (args[1] !== void 0) { + args[1] = conversions["USVString"](args[1]); + } + module2.exports.setup(this, args); + } + URL3.prototype.toJSON = function toJSON() { + if (!this || !module2.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + const args = []; + for (let i = 0; i < arguments.length && i < 0; ++i) { + args[i] = arguments[i]; + } + return this[impl].toJSON.apply(this[impl], args); + }; + Object.defineProperty(URL3.prototype, "href", { + get() { + return this[impl].href; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].href = V; + }, + enumerable: true, + configurable: true + }); + URL3.prototype.toString = function() { + if (!this || !module2.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + return this.href; + }; + Object.defineProperty(URL3.prototype, "origin", { + get() { + return this[impl].origin; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "protocol", { + get() { + return this[impl].protocol; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].protocol = V; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "username", { + get() { + return this[impl].username; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].username = V; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "password", { + get() { + return this[impl].password; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].password = V; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "host", { + get() { + return this[impl].host; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].host = V; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "hostname", { + get() { + return this[impl].hostname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hostname = V; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "port", { + get() { + return this[impl].port; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].port = V; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "pathname", { + get() { + return this[impl].pathname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].pathname = V; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "search", { + get() { + return this[impl].search; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].search = V; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(URL3.prototype, "hash", { + get() { + return this[impl].hash; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hash = V; + }, + enumerable: true, + configurable: true + }); + module2.exports = { + is(obj) { + return !!obj && obj[impl] instanceof Impl.implementation; + }, + create(constructorArgs, privateData) { + let obj = Object.create(URL3.prototype); + this.setup(obj, constructorArgs, privateData); + return obj; + }, + setup(obj, constructorArgs, privateData) { + if (!privateData) privateData = {}; + privateData.wrapper = obj; + obj[impl] = new Impl.implementation(constructorArgs, privateData); + obj[impl][utils2.wrapperSymbol] = obj; + }, + interface: URL3, + expose: { + Window: { URL: URL3 }, + Worker: { URL: URL3 } + } + }; + } +}); + +// node_modules/whatwg-url/lib/public-api.js +var require_public_api = __commonJS({ + "node_modules/whatwg-url/lib/public-api.js"(exports2) { + "use strict"; + exports2.URL = require_URL().interface; + exports2.serializeURL = require_url_state_machine().serializeURL; + exports2.serializeURLOrigin = require_url_state_machine().serializeURLOrigin; + exports2.basicURLParse = require_url_state_machine().basicURLParse; + exports2.setTheUsername = require_url_state_machine().setTheUsername; + exports2.setThePassword = require_url_state_machine().setThePassword; + exports2.serializeHost = require_url_state_machine().serializeHost; + exports2.serializeInteger = require_url_state_machine().serializeInteger; + exports2.parseURL = require_url_state_machine().parseURL; + } +}); + +// node_modules/node-fetch/lib/index.js +var require_lib4 = __commonJS({ + "node_modules/node-fetch/lib/index.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + function _interopDefault(ex) { + return ex && typeof ex === "object" && "default" in ex ? ex["default"] : ex; + } + var Stream = _interopDefault(require("stream")); + var http = _interopDefault(require("http")); + var Url = _interopDefault(require("url")); + var whatwgUrl = _interopDefault(require_public_api()); + var https = _interopDefault(require("https")); + var zlib = _interopDefault(require("zlib")); + var Readable = Stream.Readable; + var BUFFER = Symbol("buffer"); + var TYPE = Symbol("type"); + var Blob2 = class _Blob { + constructor() { + this[TYPE] = ""; + const blobParts = arguments[0]; + const options = arguments[1]; + const buffers = []; + let size = 0; + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof _Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === "string" ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + this[BUFFER] = Buffer.concat(buffers); + let type = options && options.type !== void 0 && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function() { + }; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return "[object Blob]"; + } + slice() { + const size = this.size; + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === void 0) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === void 0) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob3 = new _Blob([], { type: arguments[2] }); + blob3[BUFFER] = slicedBuffer; + return blob3; + } + }; + Object.defineProperties(Blob2.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } + }); + Object.defineProperty(Blob2.prototype, Symbol.toStringTag, { + value: "Blob", + writable: false, + enumerable: false, + configurable: true + }); + function FetchError(message, type, systemError) { + Error.call(this, message); + this.message = message; + this.type = type; + if (systemError) { + this.code = this.errno = systemError.code; + } + Error.captureStackTrace(this, this.constructor); + } + FetchError.prototype = Object.create(Error.prototype); + FetchError.prototype.constructor = FetchError; + FetchError.prototype.name = "FetchError"; + var convert; + try { + convert = require("encoding").convert; + } catch (e) { + } + var INTERNALS = Symbol("Body internals"); + var PassThrough = Stream.PassThrough; + function Body(body) { + var _this = this; + var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref$size = _ref.size; + let size = _ref$size === void 0 ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === void 0 ? 0 : _ref$timeout; + if (body == null) { + body = null; + } else if (isURLSearchParams(body)) { + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; + else if (Buffer.isBuffer(body)) ; + else if (Object.prototype.toString.call(body) === "[object ArrayBuffer]") { + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; + else { + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + if (body instanceof Stream) { + body.on("error", function(err) { + const error = err.name === "AbortError" ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, "system", err); + _this[INTERNALS].error = error; + }); + } + } + Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function(buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get("content-type") || ""; + return consumeBody.call(this).then(function(buf) { + return Object.assign( + // Prevent copying + new Blob2([], { + type: ct.toLowerCase() + }), + { + [BUFFER]: buf + } + ); + }); + }, + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + return consumeBody.call(this).then(function(buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, "invalid-json")); + } + }); + }, + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function(buffer) { + return buffer.toString(); + }); + }, + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + return consumeBody.call(this).then(function(buffer) { + return convertBody(buffer, _this3.headers); + }); + } + }; + Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } + }); + Body.mixIn = function(proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } + }; + function consumeBody() { + var _this4 = this; + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + this[INTERNALS].disturbed = true; + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + let body = this.body; + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + if (isBlob(body)) { + body = body.stream(); + } + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + let accum = []; + let accumBytes = 0; + let abort = false; + return new Body.Promise(function(resolve, reject) { + let resTimeout; + if (_this4.timeout) { + resTimeout = setTimeout(function() { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, "body-timeout")); + }, _this4.timeout); + } + body.on("error", function(err) { + if (err.name === "AbortError") { + abort = true; + reject(err); + } else { + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, "system", err)); + } + }); + body.on("data", function(chunk) { + if (abort || chunk === null) { + return; + } + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, "max-size")); + return; + } + accumBytes += chunk.length; + accum.push(chunk); + }); + body.on("end", function() { + if (abort) { + return; + } + clearTimeout(resTimeout); + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, "system", err)); + } + }); + }); + } + function convertBody(buffer, headers) { + if (typeof convert !== "function") { + throw new Error("The package `encoding` must be installed to use the textConverted() function"); + } + const ct = headers.get("content-type"); + let charset = "utf-8"; + let res, str; + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + str = buffer.slice(0, 1024).toString(); + if (!res && str) { + res = / 0 && arguments[0] !== void 0 ? arguments[0] : void 0; + this[MAP] = /* @__PURE__ */ Object.create(null); + if (init instanceof _Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + return; + } + if (init == null) ; + else if (typeof init === "object") { + const method2 = init[Symbol.iterator]; + if (method2 != null) { + if (typeof method2 !== "function") { + throw new TypeError("Header pairs must be iterable"); + } + const pairs = []; + for (const pair of init) { + if (typeof pair !== "object" || typeof pair[Symbol.iterator] !== "function") { + throw new TypeError("Each header pair must be iterable"); + } + pairs.push(Array.from(pair)); + } + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError("Each header pair must be a name/value tuple"); + } + this.append(pair[0], pair[1]); + } + } else { + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError("Provided initializer must be an object"); + } + } + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === void 0) { + return null; + } + return this[MAP][key].join(", "); + } + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : void 0; + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], value = _pairs$i[1]; + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== void 0 ? key : name] = [value]; + } + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== void 0) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== void 0; + } + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== void 0) { + delete this[MAP][key]; + } + } + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, "key"); + } + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, "value"); + } + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, "key+value"); + } + }; + Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: "Headers", + writable: false, + enumerable: false, + configurable: true + }); + Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } + }); + function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "key+value"; + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === "key" ? function(k) { + return k.toLowerCase(); + } : kind === "value" ? function(k) { + return headers[MAP][k].join(", "); + } : function(k) { + return [k.toLowerCase(), headers[MAP][k].join(", ")]; + }); + } + var INTERNAL = Symbol("internal"); + function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; + } + var HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError("Value of `this` is not a HeadersIterator"); + } + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, kind = _INTERNAL.kind, index = _INTERNAL.index; + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: void 0, + done: true + }; + } + this[INTERNAL].index = index + 1; + return { + value: values[index], + done: false + }; + } + }, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: "HeadersIterator", + writable: false, + enumerable: false, + configurable: true + }); + function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + const hostHeaderKey = find(headers[MAP], "Host"); + if (hostHeaderKey !== void 0) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + return obj; + } + function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === void 0) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; + } + var INTERNALS$1 = Symbol("Response internals"); + var STATUS_CODES = http.STATUS_CODES; + var Response = class _Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + Body.call(this, body, opts); + const status = opts.status || 200; + const headers = new Headers(opts.headers); + if (body != null && !headers.has("Content-Type")) { + const contentType = extractContentType(body); + if (contentType) { + headers.append("Content-Type", contentType); + } + } + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + get url() { + return this[INTERNALS$1].url || ""; + } + get status() { + return this[INTERNALS$1].status; + } + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + get redirected() { + return this[INTERNALS$1].counter > 0; + } + get statusText() { + return this[INTERNALS$1].statusText; + } + get headers() { + return this[INTERNALS$1].headers; + } + /** + * Clone this response + * + * @return Response + */ + clone() { + return new _Response(clone2(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } + }; + Body.mixIn(Response.prototype); + Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } + }); + Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: "Response", + writable: false, + enumerable: false, + configurable: true + }); + var INTERNALS$2 = Symbol("Request internals"); + var URL3 = Url.URL || whatwgUrl.URL; + var parse_url = Url.parse; + var format_url = Url.format; + function parseURL(urlStr) { + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL3(urlStr).toString(); + } + return parse_url(urlStr); + } + var streamDestructionSupported = "destroy" in Stream.Readable.prototype; + function isRequest(input) { + return typeof input === "object" && typeof input[INTERNALS$2] === "object"; + } + function isAbortSignal(signal) { + const proto = signal && typeof signal === "object" && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === "AbortSignal"); + } + var Request = class _Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + let parsedURL; + if (!isRequest(input)) { + if (input && input.href) { + parsedURL = parseURL(input.href); + } else { + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + let method2 = init.method || input.method || "GET"; + method2 = method2.toUpperCase(); + if ((init.body != null || isRequest(input) && input.body !== null) && (method2 === "GET" || method2 === "HEAD")) { + throw new TypeError("Request with GET/HEAD method cannot have body"); + } + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone2(input) : null; + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + const headers = new Headers(init.headers || input.headers || {}); + if (inputBody != null && !headers.has("Content-Type")) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append("Content-Type", contentType); + } + } + let signal = isRequest(input) ? input.signal : null; + if ("signal" in init) signal = init.signal; + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError("Expected signal to be an instanceof AbortSignal"); + } + this[INTERNALS$2] = { + method: method2, + redirect: init.redirect || input.redirect || "follow", + headers, + parsedURL, + signal + }; + this.follow = init.follow !== void 0 ? init.follow : input.follow !== void 0 ? input.follow : 20; + this.compress = init.compress !== void 0 ? init.compress : input.compress !== void 0 ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + get method() { + return this[INTERNALS$2].method; + } + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + get headers() { + return this[INTERNALS$2].headers; + } + get redirect() { + return this[INTERNALS$2].redirect; + } + get signal() { + return this[INTERNALS$2].signal; + } + /** + * Clone this request + * + * @return Request + */ + clone() { + return new _Request(this); + } + }; + Body.mixIn(Request.prototype); + Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: "Request", + writable: false, + enumerable: false, + configurable: true + }); + Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } + }); + function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + if (!headers.has("Accept")) { + headers.set("Accept", "*/*"); + } + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError("Only absolute URLs are supported"); + } + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError("Only HTTP(S) protocols are supported"); + } + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8"); + } + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = "0"; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === "number") { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set("Content-Length", contentLengthValue); + } + if (!headers.has("User-Agent")) { + headers.set("User-Agent", "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"); + } + if (request.compress && !headers.has("Accept-Encoding")) { + headers.set("Accept-Encoding", "gzip,deflate"); + } + let agent = request.agent; + if (typeof agent === "function") { + agent = agent(parsedURL); + } + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); + } + function AbortError(message) { + Error.call(this, message); + this.type = "aborted"; + this.message = message; + Error.captureStackTrace(this, this.constructor); + } + AbortError.prototype = Object.create(Error.prototype); + AbortError.prototype.constructor = AbortError; + AbortError.prototype.name = "AbortError"; + var URL$1 = Url.URL || whatwgUrl.URL; + var PassThrough$1 = Stream.PassThrough; + var isDomainOrSubdomain = function isDomainOrSubdomain2(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + return orig === dest || orig[orig.length - dest.length - 1] === "." && orig.endsWith(dest); + }; + var isSameProtocol = function isSameProtocol2(destination, original) { + const orig = new URL$1(original).protocol; + const dest = new URL$1(destination).protocol; + return orig === dest; + }; + function fetch2(url, opts) { + if (!fetch2.Promise) { + throw new Error("native promise missing, set fetch.Promise to your favorite alternative"); + } + Body.Promise = fetch2.Promise; + return new fetch2.Promise(function(resolve, reject) { + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + const send = (options.protocol === "https:" ? https : http).request; + const signal = request.signal; + let response = null; + const abort = function abort2() { + let error = new AbortError("The user aborted a request."); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + destroyStream(request.body, error); + } + if (!response || !response.body) return; + response.body.emit("error", error); + }; + if (signal && signal.aborted) { + abort(); + return; + } + const abortAndFinalize = function abortAndFinalize2() { + abort(); + finalize(); + }; + const req = send(options); + let reqTimeout; + if (signal) { + signal.addEventListener("abort", abortAndFinalize); + } + function finalize() { + req.abort(); + if (signal) signal.removeEventListener("abort", abortAndFinalize); + clearTimeout(reqTimeout); + } + if (request.timeout) { + req.once("socket", function(socket) { + reqTimeout = setTimeout(function() { + reject(new FetchError(`network timeout at: ${request.url}`, "request-timeout")); + finalize(); + }, request.timeout); + }); + } + req.on("error", function(err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, "system", err)); + if (response && response.body) { + destroyStream(response.body, err); + } + finalize(); + }); + fixResponseChunkedTransferBadEnding(req, function(err) { + if (signal && signal.aborted) { + return; + } + if (response && response.body) { + destroyStream(response.body, err); + } + }); + if (parseInt(process.version.substring(1)) < 14) { + req.on("socket", function(s) { + s.addListener("close", function(hadError) { + const hasDataListener = s.listenerCount("data") > 0; + if (response && hasDataListener && !hadError && !(signal && signal.aborted)) { + const err = new Error("Premature close"); + err.code = "ERR_STREAM_PREMATURE_CLOSE"; + response.body.emit("error", err); + } + }); + }); + } + req.on("response", function(res) { + clearTimeout(reqTimeout); + const headers = createHeadersLenient(res.headers); + if (fetch2.isRedirect(res.statusCode)) { + const location = headers.get("Location"); + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + if (request.redirect !== "manual") { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, "invalid-redirect")); + finalize(); + return; + } + } + switch (request.redirect) { + case "error": + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, "no-redirect")); + finalize(); + return; + case "manual": + if (locationURL !== null) { + try { + headers.set("Location", locationURL); + } catch (err) { + reject(err); + } + } + break; + case "follow": + if (locationURL === null) { + break; + } + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, "max-redirect")); + finalize(); + return; + } + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) { + for (const name of ["authorization", "www-authenticate", "cookie", "cookie2"]) { + requestOpts.headers.delete(name); + } + } + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError("Cannot follow redirect with body being a readable stream", "unsupported-redirect")); + finalize(); + return; + } + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === "POST") { + requestOpts.method = "GET"; + requestOpts.body = void 0; + requestOpts.headers.delete("content-length"); + } + resolve(fetch2(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + res.once("end", function() { + if (signal) signal.removeEventListener("abort", abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + const codings = headers.get("Content-Encoding"); + if (!request.compress || request.method === "HEAD" || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + if (codings == "gzip" || codings == "x-gzip") { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + if (codings == "deflate" || codings == "x-deflate") { + const raw = res.pipe(new PassThrough$1()); + raw.once("data", function(chunk) { + if ((chunk[0] & 15) === 8) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + raw.on("end", function() { + if (!response) { + response = new Response(body, response_options); + resolve(response); + } + }); + return; + } + if (codings == "br" && typeof zlib.createBrotliDecompress === "function") { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + response = new Response(body, response_options); + resolve(response); + }); + writeToStream(req, request); + }); + } + function fixResponseChunkedTransferBadEnding(request, errorCallback) { + let socket; + request.on("socket", function(s) { + socket = s; + }); + request.on("response", function(response) { + const headers = response.headers; + if (headers["transfer-encoding"] === "chunked" && !headers["content-length"]) { + response.once("close", function(hadError) { + const hasDataListener = socket && socket.listenerCount("data") > 0; + if (hasDataListener && !hadError) { + const err = new Error("Premature close"); + err.code = "ERR_STREAM_PREMATURE_CLOSE"; + errorCallback(err); + } + }); + } + }); + } + function destroyStream(stream, err) { + if (stream.destroy) { + stream.destroy(err); + } else { + stream.emit("error", err); + stream.end(); + } + } + fetch2.isRedirect = function(code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; + }; + fetch2.Promise = global.Promise; + module2.exports = exports2 = fetch2; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.default = exports2; + exports2.Headers = Headers; + exports2.Request = Request; + exports2.Response = Response; + exports2.FetchError = FetchError; + exports2.AbortError = AbortError; + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/constants.js +var require_constants6 = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/constants.js"(exports2, module2) { + "use strict"; + var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"]; + var hasBlob = typeof Blob !== "undefined"; + if (hasBlob) BINARY_TYPES.push("blob"); + module2.exports = { + BINARY_TYPES, + EMPTY_BUFFER: Buffer.alloc(0), + GUID: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", + hasBlob, + kForOnEventAttribute: Symbol("kIsForOnEventAttribute"), + kListener: Symbol("kListener"), + kStatusCode: Symbol("status-code"), + kWebSocket: Symbol("websocket"), + NOOP: () => { + } + }; + } +}); + +// node_modules/node-gyp-build/node-gyp-build.js +var require_node_gyp_build = __commonJS({ + "node_modules/node-gyp-build/node-gyp-build.js"(exports2, module2) { + var fs = require("fs"); + var path = require("path"); + var os = require("os"); + var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require; + var vars = process.config && process.config.variables || {}; + var prebuildsOnly = !!process.env.PREBUILDS_ONLY; + var abi = process.versions.modules; + var runtime = isElectron() ? "electron" : isNwjs() ? "node-webkit" : "node"; + var arch = process.env.npm_config_arch || os.arch(); + var platform = process.env.npm_config_platform || os.platform(); + var libc = process.env.LIBC || (isAlpine(platform) ? "musl" : "glibc"); + var armv = process.env.ARM_VERSION || (arch === "arm64" ? "8" : vars.arm_version) || ""; + var uv = (process.versions.uv || "").split(".")[0]; + module2.exports = load; + function load(dir) { + return runtimeRequire(load.resolve(dir)); + } + load.resolve = load.path = function(dir) { + dir = path.resolve(dir || "."); + try { + var name = runtimeRequire(path.join(dir, "package.json")).name.toUpperCase().replace(/-/g, "_"); + if (process.env[name + "_PREBUILD"]) dir = process.env[name + "_PREBUILD"]; + } catch (err) { + } + if (!prebuildsOnly) { + var release = getFirst(path.join(dir, "build/Release"), matchBuild); + if (release) return release; + var debug = getFirst(path.join(dir, "build/Debug"), matchBuild); + if (debug) return debug; + } + var prebuild = resolve(dir); + if (prebuild) return prebuild; + var nearby = resolve(path.dirname(process.execPath)); + if (nearby) return nearby; + var target = [ + "platform=" + platform, + "arch=" + arch, + "runtime=" + runtime, + "abi=" + abi, + "uv=" + uv, + armv ? "armv=" + armv : "", + "libc=" + libc, + "node=" + process.versions.node, + process.versions.electron ? "electron=" + process.versions.electron : "", + typeof __webpack_require__ === "function" ? "webpack=true" : "" + // eslint-disable-line + ].filter(Boolean).join(" "); + throw new Error("No native build was found for " + target + "\n loaded from: " + dir + "\n"); + function resolve(dir2) { + var tuples = readdirSync(path.join(dir2, "prebuilds")).map(parseTuple); + var tuple = tuples.filter(matchTuple(platform, arch)).sort(compareTuples)[0]; + if (!tuple) return; + var prebuilds = path.join(dir2, "prebuilds", tuple.name); + var parsed = readdirSync(prebuilds).map(parseTags); + var candidates = parsed.filter(matchTags(runtime, abi)); + var winner = candidates.sort(compareTags(runtime))[0]; + if (winner) return path.join(prebuilds, winner.file); + } + }; + function readdirSync(dir) { + try { + return fs.readdirSync(dir); + } catch (err) { + return []; + } + } + function getFirst(dir, filter) { + var files = readdirSync(dir).filter(filter); + return files[0] && path.join(dir, files[0]); + } + function matchBuild(name) { + return /\.node$/.test(name); + } + function parseTuple(name) { + var arr = name.split("-"); + if (arr.length !== 2) return; + var platform2 = arr[0]; + var architectures = arr[1].split("+"); + if (!platform2) return; + if (!architectures.length) return; + if (!architectures.every(Boolean)) return; + return { name, platform: platform2, architectures }; + } + function matchTuple(platform2, arch2) { + return function(tuple) { + if (tuple == null) return false; + if (tuple.platform !== platform2) return false; + return tuple.architectures.includes(arch2); + }; + } + function compareTuples(a, b) { + return a.architectures.length - b.architectures.length; + } + function parseTags(file) { + var arr = file.split("."); + var extension = arr.pop(); + var tags = { file, specificity: 0 }; + if (extension !== "node") return; + for (var i = 0; i < arr.length; i++) { + var tag = arr[i]; + if (tag === "node" || tag === "electron" || tag === "node-webkit") { + tags.runtime = tag; + } else if (tag === "napi") { + tags.napi = true; + } else if (tag.slice(0, 3) === "abi") { + tags.abi = tag.slice(3); + } else if (tag.slice(0, 2) === "uv") { + tags.uv = tag.slice(2); + } else if (tag.slice(0, 4) === "armv") { + tags.armv = tag.slice(4); + } else if (tag === "glibc" || tag === "musl") { + tags.libc = tag; + } else { + continue; + } + tags.specificity++; + } + return tags; + } + function matchTags(runtime2, abi2) { + return function(tags) { + if (tags == null) return false; + if (tags.runtime && tags.runtime !== runtime2 && !runtimeAgnostic(tags)) return false; + if (tags.abi && tags.abi !== abi2 && !tags.napi) return false; + if (tags.uv && tags.uv !== uv) return false; + if (tags.armv && tags.armv !== armv) return false; + if (tags.libc && tags.libc !== libc) return false; + return true; + }; + } + function runtimeAgnostic(tags) { + return tags.runtime === "node" && tags.napi; + } + function compareTags(runtime2) { + return function(a, b) { + if (a.runtime !== b.runtime) { + return a.runtime === runtime2 ? -1 : 1; + } else if (a.abi !== b.abi) { + return a.abi ? -1 : 1; + } else if (a.specificity !== b.specificity) { + return a.specificity > b.specificity ? -1 : 1; + } else { + return 0; + } + }; + } + function isNwjs() { + return !!(process.versions && process.versions.nw); + } + function isElectron() { + if (process.versions && process.versions.electron) return true; + if (process.env.ELECTRON_RUN_AS_NODE) return true; + return typeof window !== "undefined" && window.process && window.process.type === "renderer"; + } + function isAlpine(platform2) { + return platform2 === "linux" && fs.existsSync("/etc/alpine-release"); + } + load.parseTags = parseTags; + load.matchTags = matchTags; + load.compareTags = compareTags; + load.parseTuple = parseTuple; + load.matchTuple = matchTuple; + load.compareTuples = compareTuples; + } +}); + +// node_modules/node-gyp-build/index.js +var require_node_gyp_build2 = __commonJS({ + "node_modules/node-gyp-build/index.js"(exports2, module2) { + var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require; + if (typeof runtimeRequire.addon === "function") { + module2.exports = runtimeRequire.addon.bind(runtimeRequire); + } else { + module2.exports = require_node_gyp_build(); + } + } +}); + +// node_modules/bufferutil/fallback.js +var require_fallback = __commonJS({ + "node_modules/bufferutil/fallback.js"(exports2, module2) { + "use strict"; + var mask = (source, mask2, output, offset, length) => { + for (var i = 0; i < length; i++) { + output[offset + i] = source[i] ^ mask2[i & 3]; + } + }; + var unmask = (buffer, mask2) => { + const length = buffer.length; + for (var i = 0; i < length; i++) { + buffer[i] ^= mask2[i & 3]; + } + }; + module2.exports = { mask, unmask }; + } +}); + +// node_modules/bufferutil/index.js +var require_bufferutil = __commonJS({ + "node_modules/bufferutil/index.js"(exports2, module2) { + "use strict"; + try { + module2.exports = require_node_gyp_build2()(__dirname); + } catch (e) { + module2.exports = require_fallback(); + } + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/buffer-util.js +var require_buffer_util = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/buffer-util.js"(exports2, module2) { + "use strict"; + var { EMPTY_BUFFER } = require_constants6(); + var FastBuffer = Buffer[Symbol.species]; + function concat(list, totalLength) { + if (list.length === 0) return EMPTY_BUFFER; + if (list.length === 1) return list[0]; + const target = Buffer.allocUnsafe(totalLength); + let offset = 0; + for (let i = 0; i < list.length; i++) { + const buf = list[i]; + target.set(buf, offset); + offset += buf.length; + } + if (offset < totalLength) { + return new FastBuffer(target.buffer, target.byteOffset, offset); + } + return target; + } + function _mask(source, mask, output, offset, length) { + for (let i = 0; i < length; i++) { + output[offset + i] = source[i] ^ mask[i & 3]; + } + } + function _unmask(buffer, mask) { + for (let i = 0; i < buffer.length; i++) { + buffer[i] ^= mask[i & 3]; + } + } + function toArrayBuffer(buf) { + if (buf.length === buf.buffer.byteLength) { + return buf.buffer; + } + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length); + } + function toBuffer(data) { + toBuffer.readOnly = true; + if (Buffer.isBuffer(data)) return data; + let buf; + if (data instanceof ArrayBuffer) { + buf = new FastBuffer(data); + } else if (ArrayBuffer.isView(data)) { + buf = new FastBuffer(data.buffer, data.byteOffset, data.byteLength); + } else { + buf = Buffer.from(data); + toBuffer.readOnly = false; + } + return buf; + } + module2.exports = { + concat, + mask: _mask, + toArrayBuffer, + toBuffer, + unmask: _unmask + }; + if (!process.env.WS_NO_BUFFER_UTIL) { + try { + const bufferUtil = require_bufferutil(); + module2.exports.mask = function(source, mask, output, offset, length) { + if (length < 48) _mask(source, mask, output, offset, length); + else bufferUtil.mask(source, mask, output, offset, length); + }; + module2.exports.unmask = function(buffer, mask) { + if (buffer.length < 32) _unmask(buffer, mask); + else bufferUtil.unmask(buffer, mask); + }; + } catch (e) { + } + } + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/limiter.js +var require_limiter = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/limiter.js"(exports2, module2) { + "use strict"; + var kDone = Symbol("kDone"); + var kRun = Symbol("kRun"); + var Limiter = class { + /** + * Creates a new `Limiter`. + * + * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed + * to run concurrently + */ + constructor(concurrency) { + this[kDone] = () => { + this.pending--; + this[kRun](); + }; + this.concurrency = concurrency || Infinity; + this.jobs = []; + this.pending = 0; + } + /** + * Adds a job to the queue. + * + * @param {Function} job The job to run + * @public + */ + add(job) { + this.jobs.push(job); + this[kRun](); + } + /** + * Removes a job from the queue and runs it if possible. + * + * @private + */ + [kRun]() { + if (this.pending === this.concurrency) return; + if (this.jobs.length) { + const job = this.jobs.shift(); + this.pending++; + job(this[kDone]); + } + } + }; + module2.exports = Limiter; + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/permessage-deflate.js +var require_permessage_deflate = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/permessage-deflate.js"(exports2, module2) { + "use strict"; + var zlib = require("zlib"); + var bufferUtil = require_buffer_util(); + var Limiter = require_limiter(); + var { kStatusCode } = require_constants6(); + var FastBuffer = Buffer[Symbol.species]; + var TRAILER = Buffer.from([0, 0, 255, 255]); + var kPerMessageDeflate = Symbol("permessage-deflate"); + var kTotalLength = Symbol("total-length"); + var kCallback = Symbol("callback"); + var kBuffers = Symbol("buffers"); + var kError = Symbol("error"); + var zlibLimiter; + var PerMessageDeflate = class { + /** + * Creates a PerMessageDeflate instance. + * + * @param {Object} [options] Configuration options + * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support + * for, or request, a custom client window size + * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/ + * acknowledge disabling of client context takeover + * @param {Number} [options.concurrencyLimit=10] The number of concurrent + * calls to zlib + * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the + * use of a custom server window size + * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept + * disabling of server context takeover + * @param {Number} [options.threshold=1024] Size (in bytes) below which + * messages should not be compressed if context takeover is disabled + * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on + * deflate + * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on + * inflate + * @param {Boolean} [isServer=false] Create the instance in either server or + * client mode + * @param {Number} [maxPayload=0] The maximum allowed message length + */ + constructor(options, isServer, maxPayload) { + this._maxPayload = maxPayload | 0; + this._options = options || {}; + this._threshold = this._options.threshold !== void 0 ? this._options.threshold : 1024; + this._isServer = !!isServer; + this._deflate = null; + this._inflate = null; + this.params = null; + if (!zlibLimiter) { + const concurrency = this._options.concurrencyLimit !== void 0 ? this._options.concurrencyLimit : 10; + zlibLimiter = new Limiter(concurrency); + } + } + /** + * @type {String} + */ + static get extensionName() { + return "permessage-deflate"; + } + /** + * Create an extension negotiation offer. + * + * @return {Object} Extension parameters + * @public + */ + offer() { + const params = {}; + if (this._options.serverNoContextTakeover) { + params.server_no_context_takeover = true; + } + if (this._options.clientNoContextTakeover) { + params.client_no_context_takeover = true; + } + if (this._options.serverMaxWindowBits) { + params.server_max_window_bits = this._options.serverMaxWindowBits; + } + if (this._options.clientMaxWindowBits) { + params.client_max_window_bits = this._options.clientMaxWindowBits; + } else if (this._options.clientMaxWindowBits == null) { + params.client_max_window_bits = true; + } + return params; + } + /** + * Accept an extension negotiation offer/response. + * + * @param {Array} configurations The extension negotiation offers/reponse + * @return {Object} Accepted configuration + * @public + */ + accept(configurations) { + configurations = this.normalizeParams(configurations); + this.params = this._isServer ? this.acceptAsServer(configurations) : this.acceptAsClient(configurations); + return this.params; + } + /** + * Releases all resources used by the extension. + * + * @public + */ + cleanup() { + if (this._inflate) { + this._inflate.close(); + this._inflate = null; + } + if (this._deflate) { + const callback = this._deflate[kCallback]; + this._deflate.close(); + this._deflate = null; + if (callback) { + callback( + new Error( + "The deflate stream was closed while data was being processed" + ) + ); + } + } + } + /** + * Accept an extension negotiation offer. + * + * @param {Array} offers The extension negotiation offers + * @return {Object} Accepted configuration + * @private + */ + acceptAsServer(offers) { + const opts = this._options; + const accepted = offers.find((params) => { + if (opts.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts.serverMaxWindowBits === false || typeof opts.serverMaxWindowBits === "number" && opts.serverMaxWindowBits > params.server_max_window_bits) || typeof opts.clientMaxWindowBits === "number" && !params.client_max_window_bits) { + return false; + } + return true; + }); + if (!accepted) { + throw new Error("None of the extension offers can be accepted"); + } + if (opts.serverNoContextTakeover) { + accepted.server_no_context_takeover = true; + } + if (opts.clientNoContextTakeover) { + accepted.client_no_context_takeover = true; + } + if (typeof opts.serverMaxWindowBits === "number") { + accepted.server_max_window_bits = opts.serverMaxWindowBits; + } + if (typeof opts.clientMaxWindowBits === "number") { + accepted.client_max_window_bits = opts.clientMaxWindowBits; + } else if (accepted.client_max_window_bits === true || opts.clientMaxWindowBits === false) { + delete accepted.client_max_window_bits; + } + return accepted; + } + /** + * Accept the extension negotiation response. + * + * @param {Array} response The extension negotiation response + * @return {Object} Accepted configuration + * @private + */ + acceptAsClient(response) { + const params = response[0]; + if (this._options.clientNoContextTakeover === false && params.client_no_context_takeover) { + throw new Error('Unexpected parameter "client_no_context_takeover"'); + } + if (!params.client_max_window_bits) { + if (typeof this._options.clientMaxWindowBits === "number") { + params.client_max_window_bits = this._options.clientMaxWindowBits; + } + } else if (this._options.clientMaxWindowBits === false || typeof this._options.clientMaxWindowBits === "number" && params.client_max_window_bits > this._options.clientMaxWindowBits) { + throw new Error( + 'Unexpected or invalid parameter "client_max_window_bits"' + ); + } + return params; + } + /** + * Normalize parameters. + * + * @param {Array} configurations The extension negotiation offers/reponse + * @return {Array} The offers/response with normalized parameters + * @private + */ + normalizeParams(configurations) { + configurations.forEach((params) => { + Object.keys(params).forEach((key) => { + let value = params[key]; + if (value.length > 1) { + throw new Error(`Parameter "${key}" must have only a single value`); + } + value = value[0]; + if (key === "client_max_window_bits") { + if (value !== true) { + const num = +value; + if (!Number.isInteger(num) || num < 8 || num > 15) { + throw new TypeError( + `Invalid value for parameter "${key}": ${value}` + ); + } + value = num; + } else if (!this._isServer) { + throw new TypeError( + `Invalid value for parameter "${key}": ${value}` + ); + } + } else if (key === "server_max_window_bits") { + const num = +value; + if (!Number.isInteger(num) || num < 8 || num > 15) { + throw new TypeError( + `Invalid value for parameter "${key}": ${value}` + ); + } + value = num; + } else if (key === "client_no_context_takeover" || key === "server_no_context_takeover") { + if (value !== true) { + throw new TypeError( + `Invalid value for parameter "${key}": ${value}` + ); + } + } else { + throw new Error(`Unknown parameter "${key}"`); + } + params[key] = value; + }); + }); + return configurations; + } + /** + * Decompress data. Concurrency limited. + * + * @param {Buffer} data Compressed data + * @param {Boolean} fin Specifies whether or not this is the last fragment + * @param {Function} callback Callback + * @public + */ + decompress(data, fin, callback) { + zlibLimiter.add((done) => { + this._decompress(data, fin, (err, result) => { + done(); + callback(err, result); + }); + }); + } + /** + * Compress data. Concurrency limited. + * + * @param {(Buffer|String)} data Data to compress + * @param {Boolean} fin Specifies whether or not this is the last fragment + * @param {Function} callback Callback + * @public + */ + compress(data, fin, callback) { + zlibLimiter.add((done) => { + this._compress(data, fin, (err, result) => { + done(); + callback(err, result); + }); + }); + } + /** + * Decompress data. + * + * @param {Buffer} data Compressed data + * @param {Boolean} fin Specifies whether or not this is the last fragment + * @param {Function} callback Callback + * @private + */ + _decompress(data, fin, callback) { + const endpoint = this._isServer ? "client" : "server"; + if (!this._inflate) { + const key = `${endpoint}_max_window_bits`; + const windowBits = typeof this.params[key] !== "number" ? zlib.Z_DEFAULT_WINDOWBITS : this.params[key]; + this._inflate = zlib.createInflateRaw({ + ...this._options.zlibInflateOptions, + windowBits + }); + this._inflate[kPerMessageDeflate] = this; + this._inflate[kTotalLength] = 0; + this._inflate[kBuffers] = []; + this._inflate.on("error", inflateOnError); + this._inflate.on("data", inflateOnData); + } + this._inflate[kCallback] = callback; + this._inflate.write(data); + if (fin) this._inflate.write(TRAILER); + this._inflate.flush(() => { + const err = this._inflate[kError]; + if (err) { + this._inflate.close(); + this._inflate = null; + callback(err); + return; + } + const data2 = bufferUtil.concat( + this._inflate[kBuffers], + this._inflate[kTotalLength] + ); + if (this._inflate._readableState.endEmitted) { + this._inflate.close(); + this._inflate = null; + } else { + this._inflate[kTotalLength] = 0; + this._inflate[kBuffers] = []; + if (fin && this.params[`${endpoint}_no_context_takeover`]) { + this._inflate.reset(); + } + } + callback(null, data2); + }); + } + /** + * Compress data. + * + * @param {(Buffer|String)} data Data to compress + * @param {Boolean} fin Specifies whether or not this is the last fragment + * @param {Function} callback Callback + * @private + */ + _compress(data, fin, callback) { + const endpoint = this._isServer ? "server" : "client"; + if (!this._deflate) { + const key = `${endpoint}_max_window_bits`; + const windowBits = typeof this.params[key] !== "number" ? zlib.Z_DEFAULT_WINDOWBITS : this.params[key]; + this._deflate = zlib.createDeflateRaw({ + ...this._options.zlibDeflateOptions, + windowBits + }); + this._deflate[kTotalLength] = 0; + this._deflate[kBuffers] = []; + this._deflate.on("data", deflateOnData); + } + this._deflate[kCallback] = callback; + this._deflate.write(data); + this._deflate.flush(zlib.Z_SYNC_FLUSH, () => { + if (!this._deflate) { + return; + } + let data2 = bufferUtil.concat( + this._deflate[kBuffers], + this._deflate[kTotalLength] + ); + if (fin) { + data2 = new FastBuffer(data2.buffer, data2.byteOffset, data2.length - 4); + } + this._deflate[kCallback] = null; + this._deflate[kTotalLength] = 0; + this._deflate[kBuffers] = []; + if (fin && this.params[`${endpoint}_no_context_takeover`]) { + this._deflate.reset(); + } + callback(null, data2); + }); + } + }; + module2.exports = PerMessageDeflate; + function deflateOnData(chunk) { + this[kBuffers].push(chunk); + this[kTotalLength] += chunk.length; + } + function inflateOnData(chunk) { + this[kTotalLength] += chunk.length; + if (this[kPerMessageDeflate]._maxPayload < 1 || this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload) { + this[kBuffers].push(chunk); + return; + } + this[kError] = new RangeError("Max payload size exceeded"); + this[kError].code = "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"; + this[kError][kStatusCode] = 1009; + this.removeListener("data", inflateOnData); + this.reset(); + } + function inflateOnError(err) { + this[kPerMessageDeflate]._inflate = null; + err[kStatusCode] = 1007; + this[kCallback](err); + } + } +}); + +// node_modules/utf-8-validate/fallback.js +var require_fallback2 = __commonJS({ + "node_modules/utf-8-validate/fallback.js"(exports2, module2) { + "use strict"; + function isValidUTF8(buf) { + const len = buf.length; + let i = 0; + while (i < len) { + if ((buf[i] & 128) === 0) { + i++; + } else if ((buf[i] & 224) === 192) { + if (i + 1 === len || (buf[i + 1] & 192) !== 128 || (buf[i] & 254) === 192) { + return false; + } + i += 2; + } else if ((buf[i] & 240) === 224) { + if (i + 2 >= len || (buf[i + 1] & 192) !== 128 || (buf[i + 2] & 192) !== 128 || buf[i] === 224 && (buf[i + 1] & 224) === 128 || // overlong + buf[i] === 237 && (buf[i + 1] & 224) === 160) { + return false; + } + i += 3; + } else if ((buf[i] & 248) === 240) { + if (i + 3 >= len || (buf[i + 1] & 192) !== 128 || (buf[i + 2] & 192) !== 128 || (buf[i + 3] & 192) !== 128 || buf[i] === 240 && (buf[i + 1] & 240) === 128 || // overlong + buf[i] === 244 && buf[i + 1] > 143 || buf[i] > 244) { + return false; + } + i += 4; + } else { + return false; + } + } + return true; + } + module2.exports = isValidUTF8; + } +}); + +// node_modules/utf-8-validate/index.js +var require_utf_8_validate = __commonJS({ + "node_modules/utf-8-validate/index.js"(exports2, module2) { + "use strict"; + try { + module2.exports = require_node_gyp_build2()(__dirname); + } catch (e) { + module2.exports = require_fallback2(); + } + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/validation.js +var require_validation = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/validation.js"(exports2, module2) { + "use strict"; + var { isUtf8 } = require("buffer"); + var { hasBlob } = require_constants6(); + var tokenChars = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + // 0 - 15 + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + // 16 - 31 + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + // 32 - 47 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + // 48 - 63 + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + // 64 - 79 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + // 80 - 95 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + // 96 - 111 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0 + // 112 - 127 + ]; + function isValidStatusCode(code) { + return code >= 1e3 && code <= 1014 && code !== 1004 && code !== 1005 && code !== 1006 || code >= 3e3 && code <= 4999; + } + function _isValidUTF8(buf) { + const len = buf.length; + let i = 0; + while (i < len) { + if ((buf[i] & 128) === 0) { + i++; + } else if ((buf[i] & 224) === 192) { + if (i + 1 === len || (buf[i + 1] & 192) !== 128 || (buf[i] & 254) === 192) { + return false; + } + i += 2; + } else if ((buf[i] & 240) === 224) { + if (i + 2 >= len || (buf[i + 1] & 192) !== 128 || (buf[i + 2] & 192) !== 128 || buf[i] === 224 && (buf[i + 1] & 224) === 128 || // Overlong + buf[i] === 237 && (buf[i + 1] & 224) === 160) { + return false; + } + i += 3; + } else if ((buf[i] & 248) === 240) { + if (i + 3 >= len || (buf[i + 1] & 192) !== 128 || (buf[i + 2] & 192) !== 128 || (buf[i + 3] & 192) !== 128 || buf[i] === 240 && (buf[i + 1] & 240) === 128 || // Overlong + buf[i] === 244 && buf[i + 1] > 143 || buf[i] > 244) { + return false; + } + i += 4; + } else { + return false; + } + } + return true; + } + function isBlob(value) { + return hasBlob && typeof value === "object" && typeof value.arrayBuffer === "function" && typeof value.type === "string" && typeof value.stream === "function" && (value[Symbol.toStringTag] === "Blob" || value[Symbol.toStringTag] === "File"); + } + module2.exports = { + isBlob, + isValidStatusCode, + isValidUTF8: _isValidUTF8, + tokenChars + }; + if (isUtf8) { + module2.exports.isValidUTF8 = function(buf) { + return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf); + }; + } else if (!process.env.WS_NO_UTF_8_VALIDATE) { + try { + const isValidUTF8 = require_utf_8_validate(); + module2.exports.isValidUTF8 = function(buf) { + return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf); + }; + } catch (e) { + } + } + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/receiver.js +var require_receiver2 = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/receiver.js"(exports2, module2) { + "use strict"; + var { Writable } = require("stream"); + var PerMessageDeflate = require_permessage_deflate(); + var { + BINARY_TYPES, + EMPTY_BUFFER, + kStatusCode, + kWebSocket + } = require_constants6(); + var { concat, toArrayBuffer, unmask } = require_buffer_util(); + var { isValidStatusCode, isValidUTF8 } = require_validation(); + var FastBuffer = Buffer[Symbol.species]; + var GET_INFO = 0; + var GET_PAYLOAD_LENGTH_16 = 1; + var GET_PAYLOAD_LENGTH_64 = 2; + var GET_MASK = 3; + var GET_DATA = 4; + var INFLATING = 5; + var DEFER_EVENT = 6; + var Receiver = class extends Writable { + /** + * Creates a Receiver instance. + * + * @param {Object} [options] Options object + * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether + * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted + * multiple times in the same tick + * @param {String} [options.binaryType=nodebuffer] The type for binary data + * @param {Object} [options.extensions] An object containing the negotiated + * extensions + * @param {Boolean} [options.isServer=false] Specifies whether to operate in + * client or server mode + * @param {Number} [options.maxPayload=0] The maximum allowed message length + * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or + * not to skip UTF-8 validation for text and close messages + */ + constructor(options = {}) { + super(); + this._allowSynchronousEvents = options.allowSynchronousEvents !== void 0 ? options.allowSynchronousEvents : true; + this._binaryType = options.binaryType || BINARY_TYPES[0]; + this._extensions = options.extensions || {}; + this._isServer = !!options.isServer; + this._maxPayload = options.maxPayload | 0; + this._skipUTF8Validation = !!options.skipUTF8Validation; + this[kWebSocket] = void 0; + this._bufferedBytes = 0; + this._buffers = []; + this._compressed = false; + this._payloadLength = 0; + this._mask = void 0; + this._fragmented = 0; + this._masked = false; + this._fin = false; + this._opcode = 0; + this._totalPayloadLength = 0; + this._messageLength = 0; + this._fragments = []; + this._errored = false; + this._loop = false; + this._state = GET_INFO; + } + /** + * Implements `Writable.prototype._write()`. + * + * @param {Buffer} chunk The chunk of data to write + * @param {String} encoding The character encoding of `chunk` + * @param {Function} cb Callback + * @private + */ + _write(chunk, encoding, cb) { + if (this._opcode === 8 && this._state == GET_INFO) return cb(); + this._bufferedBytes += chunk.length; + this._buffers.push(chunk); + this.startLoop(cb); + } + /** + * Consumes `n` bytes from the buffered data. + * + * @param {Number} n The number of bytes to consume + * @return {Buffer} The consumed bytes + * @private + */ + consume(n) { + this._bufferedBytes -= n; + if (n === this._buffers[0].length) return this._buffers.shift(); + if (n < this._buffers[0].length) { + const buf = this._buffers[0]; + this._buffers[0] = new FastBuffer( + buf.buffer, + buf.byteOffset + n, + buf.length - n + ); + return new FastBuffer(buf.buffer, buf.byteOffset, n); + } + const dst = Buffer.allocUnsafe(n); + do { + const buf = this._buffers[0]; + const offset = dst.length - n; + if (n >= buf.length) { + dst.set(this._buffers.shift(), offset); + } else { + dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset); + this._buffers[0] = new FastBuffer( + buf.buffer, + buf.byteOffset + n, + buf.length - n + ); + } + n -= buf.length; + } while (n > 0); + return dst; + } + /** + * Starts the parsing loop. + * + * @param {Function} cb Callback + * @private + */ + startLoop(cb) { + this._loop = true; + do { + switch (this._state) { + case GET_INFO: + this.getInfo(cb); + break; + case GET_PAYLOAD_LENGTH_16: + this.getPayloadLength16(cb); + break; + case GET_PAYLOAD_LENGTH_64: + this.getPayloadLength64(cb); + break; + case GET_MASK: + this.getMask(); + break; + case GET_DATA: + this.getData(cb); + break; + case INFLATING: + case DEFER_EVENT: + this._loop = false; + return; + } + } while (this._loop); + if (!this._errored) cb(); + } + /** + * Reads the first two bytes of a frame. + * + * @param {Function} cb Callback + * @private + */ + getInfo(cb) { + if (this._bufferedBytes < 2) { + this._loop = false; + return; + } + const buf = this.consume(2); + if ((buf[0] & 48) !== 0) { + const error = this.createError( + RangeError, + "RSV2 and RSV3 must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_RSV_2_3" + ); + cb(error); + return; + } + const compressed = (buf[0] & 64) === 64; + if (compressed && !this._extensions[PerMessageDeflate.extensionName]) { + const error = this.createError( + RangeError, + "RSV1 must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_RSV_1" + ); + cb(error); + return; + } + this._fin = (buf[0] & 128) === 128; + this._opcode = buf[0] & 15; + this._payloadLength = buf[1] & 127; + if (this._opcode === 0) { + if (compressed) { + const error = this.createError( + RangeError, + "RSV1 must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_RSV_1" + ); + cb(error); + return; + } + if (!this._fragmented) { + const error = this.createError( + RangeError, + "invalid opcode 0", + true, + 1002, + "WS_ERR_INVALID_OPCODE" + ); + cb(error); + return; + } + this._opcode = this._fragmented; + } else if (this._opcode === 1 || this._opcode === 2) { + if (this._fragmented) { + const error = this.createError( + RangeError, + `invalid opcode ${this._opcode}`, + true, + 1002, + "WS_ERR_INVALID_OPCODE" + ); + cb(error); + return; + } + this._compressed = compressed; + } else if (this._opcode > 7 && this._opcode < 11) { + if (!this._fin) { + const error = this.createError( + RangeError, + "FIN must be set", + true, + 1002, + "WS_ERR_EXPECTED_FIN" + ); + cb(error); + return; + } + if (compressed) { + const error = this.createError( + RangeError, + "RSV1 must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_RSV_1" + ); + cb(error); + return; + } + if (this._payloadLength > 125 || this._opcode === 8 && this._payloadLength === 1) { + const error = this.createError( + RangeError, + `invalid payload length ${this._payloadLength}`, + true, + 1002, + "WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH" + ); + cb(error); + return; + } + } else { + const error = this.createError( + RangeError, + `invalid opcode ${this._opcode}`, + true, + 1002, + "WS_ERR_INVALID_OPCODE" + ); + cb(error); + return; + } + if (!this._fin && !this._fragmented) this._fragmented = this._opcode; + this._masked = (buf[1] & 128) === 128; + if (this._isServer) { + if (!this._masked) { + const error = this.createError( + RangeError, + "MASK must be set", + true, + 1002, + "WS_ERR_EXPECTED_MASK" + ); + cb(error); + return; + } + } else if (this._masked) { + const error = this.createError( + RangeError, + "MASK must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_MASK" + ); + cb(error); + return; + } + if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16; + else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64; + else this.haveLength(cb); + } + /** + * Gets extended payload length (7+16). + * + * @param {Function} cb Callback + * @private + */ + getPayloadLength16(cb) { + if (this._bufferedBytes < 2) { + this._loop = false; + return; + } + this._payloadLength = this.consume(2).readUInt16BE(0); + this.haveLength(cb); + } + /** + * Gets extended payload length (7+64). + * + * @param {Function} cb Callback + * @private + */ + getPayloadLength64(cb) { + if (this._bufferedBytes < 8) { + this._loop = false; + return; + } + const buf = this.consume(8); + const num = buf.readUInt32BE(0); + if (num > Math.pow(2, 53 - 32) - 1) { + const error = this.createError( + RangeError, + "Unsupported WebSocket frame: payload length > 2^53 - 1", + false, + 1009, + "WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH" + ); + cb(error); + return; + } + this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4); + this.haveLength(cb); + } + /** + * Payload length has been read. + * + * @param {Function} cb Callback + * @private + */ + haveLength(cb) { + if (this._payloadLength && this._opcode < 8) { + this._totalPayloadLength += this._payloadLength; + if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) { + const error = this.createError( + RangeError, + "Max payload size exceeded", + false, + 1009, + "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH" + ); + cb(error); + return; + } + } + if (this._masked) this._state = GET_MASK; + else this._state = GET_DATA; + } + /** + * Reads mask bytes. + * + * @private + */ + getMask() { + if (this._bufferedBytes < 4) { + this._loop = false; + return; + } + this._mask = this.consume(4); + this._state = GET_DATA; + } + /** + * Reads data bytes. + * + * @param {Function} cb Callback + * @private + */ + getData(cb) { + let data = EMPTY_BUFFER; + if (this._payloadLength) { + if (this._bufferedBytes < this._payloadLength) { + this._loop = false; + return; + } + data = this.consume(this._payloadLength); + if (this._masked && (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0) { + unmask(data, this._mask); + } + } + if (this._opcode > 7) { + this.controlMessage(data, cb); + return; + } + if (this._compressed) { + this._state = INFLATING; + this.decompress(data, cb); + return; + } + if (data.length) { + this._messageLength = this._totalPayloadLength; + this._fragments.push(data); + } + this.dataMessage(cb); + } + /** + * Decompresses data. + * + * @param {Buffer} data Compressed data + * @param {Function} cb Callback + * @private + */ + decompress(data, cb) { + const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; + perMessageDeflate.decompress(data, this._fin, (err, buf) => { + if (err) return cb(err); + if (buf.length) { + this._messageLength += buf.length; + if (this._messageLength > this._maxPayload && this._maxPayload > 0) { + const error = this.createError( + RangeError, + "Max payload size exceeded", + false, + 1009, + "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH" + ); + cb(error); + return; + } + this._fragments.push(buf); + } + this.dataMessage(cb); + if (this._state === GET_INFO) this.startLoop(cb); + }); + } + /** + * Handles a data message. + * + * @param {Function} cb Callback + * @private + */ + dataMessage(cb) { + if (!this._fin) { + this._state = GET_INFO; + return; + } + const messageLength = this._messageLength; + const fragments = this._fragments; + this._totalPayloadLength = 0; + this._messageLength = 0; + this._fragmented = 0; + this._fragments = []; + if (this._opcode === 2) { + let data; + if (this._binaryType === "nodebuffer") { + data = concat(fragments, messageLength); + } else if (this._binaryType === "arraybuffer") { + data = toArrayBuffer(concat(fragments, messageLength)); + } else if (this._binaryType === "blob") { + data = new Blob(fragments); + } else { + data = fragments; + } + if (this._allowSynchronousEvents) { + this.emit("message", data, true); + this._state = GET_INFO; + } else { + this._state = DEFER_EVENT; + setImmediate(() => { + this.emit("message", data, true); + this._state = GET_INFO; + this.startLoop(cb); + }); + } + } else { + const buf = concat(fragments, messageLength); + if (!this._skipUTF8Validation && !isValidUTF8(buf)) { + const error = this.createError( + Error, + "invalid UTF-8 sequence", + true, + 1007, + "WS_ERR_INVALID_UTF8" + ); + cb(error); + return; + } + if (this._state === INFLATING || this._allowSynchronousEvents) { + this.emit("message", buf, false); + this._state = GET_INFO; + } else { + this._state = DEFER_EVENT; + setImmediate(() => { + this.emit("message", buf, false); + this._state = GET_INFO; + this.startLoop(cb); + }); + } + } + } + /** + * Handles a control message. + * + * @param {Buffer} data Data to handle + * @return {(Error|RangeError|undefined)} A possible error + * @private + */ + controlMessage(data, cb) { + if (this._opcode === 8) { + if (data.length === 0) { + this._loop = false; + this.emit("conclude", 1005, EMPTY_BUFFER); + this.end(); + } else { + const code = data.readUInt16BE(0); + if (!isValidStatusCode(code)) { + const error = this.createError( + RangeError, + `invalid status code ${code}`, + true, + 1002, + "WS_ERR_INVALID_CLOSE_CODE" + ); + cb(error); + return; + } + const buf = new FastBuffer( + data.buffer, + data.byteOffset + 2, + data.length - 2 + ); + if (!this._skipUTF8Validation && !isValidUTF8(buf)) { + const error = this.createError( + Error, + "invalid UTF-8 sequence", + true, + 1007, + "WS_ERR_INVALID_UTF8" + ); + cb(error); + return; + } + this._loop = false; + this.emit("conclude", code, buf); + this.end(); + } + this._state = GET_INFO; + return; + } + if (this._allowSynchronousEvents) { + this.emit(this._opcode === 9 ? "ping" : "pong", data); + this._state = GET_INFO; + } else { + this._state = DEFER_EVENT; + setImmediate(() => { + this.emit(this._opcode === 9 ? "ping" : "pong", data); + this._state = GET_INFO; + this.startLoop(cb); + }); + } + } + /** + * Builds an error object. + * + * @param {function(new:Error|RangeError)} ErrorCtor The error constructor + * @param {String} message The error message + * @param {Boolean} prefix Specifies whether or not to add a default prefix to + * `message` + * @param {Number} statusCode The status code + * @param {String} errorCode The exposed error code + * @return {(Error|RangeError)} The error + * @private + */ + createError(ErrorCtor, message, prefix, statusCode, errorCode) { + this._loop = false; + this._errored = true; + const err = new ErrorCtor( + prefix ? `Invalid WebSocket frame: ${message}` : message + ); + Error.captureStackTrace(err, this.createError); + err.code = errorCode; + err[kStatusCode] = statusCode; + return err; + } + }; + module2.exports = Receiver; + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/sender.js +var require_sender = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/sender.js"(exports2, module2) { + "use strict"; + var { Duplex } = require("stream"); + var { randomFillSync } = require("crypto"); + var PerMessageDeflate = require_permessage_deflate(); + var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants6(); + var { isBlob, isValidStatusCode } = require_validation(); + var { mask: applyMask, toBuffer } = require_buffer_util(); + var kByteLength = Symbol("kByteLength"); + var maskBuffer = Buffer.alloc(4); + var RANDOM_POOL_SIZE = 8 * 1024; + var randomPool; + var randomPoolPointer = RANDOM_POOL_SIZE; + var DEFAULT = 0; + var DEFLATING = 1; + var GET_BLOB_DATA = 2; + var Sender = class _Sender { + /** + * Creates a Sender instance. + * + * @param {Duplex} socket The connection socket + * @param {Object} [extensions] An object containing the negotiated extensions + * @param {Function} [generateMask] The function used to generate the masking + * key + */ + constructor(socket, extensions, generateMask) { + this._extensions = extensions || {}; + if (generateMask) { + this._generateMask = generateMask; + this._maskBuffer = Buffer.alloc(4); + } + this._socket = socket; + this._firstFragment = true; + this._compress = false; + this._bufferedBytes = 0; + this._queue = []; + this._state = DEFAULT; + this.onerror = NOOP; + this[kWebSocket] = void 0; + } + /** + * Frames a piece of data according to the HyBi WebSocket protocol. + * + * @param {(Buffer|String)} data The data to frame + * @param {Object} options Options object + * @param {Boolean} [options.fin=false] Specifies whether or not to set the + * FIN bit + * @param {Function} [options.generateMask] The function used to generate the + * masking key + * @param {Boolean} [options.mask=false] Specifies whether or not to mask + * `data` + * @param {Buffer} [options.maskBuffer] The buffer used to store the masking + * key + * @param {Number} options.opcode The opcode + * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be + * modified + * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the + * RSV1 bit + * @return {(Buffer|String)[]} The framed data + * @public + */ + static frame(data, options) { + let mask; + let merge = false; + let offset = 2; + let skipMasking = false; + if (options.mask) { + mask = options.maskBuffer || maskBuffer; + if (options.generateMask) { + options.generateMask(mask); + } else { + if (randomPoolPointer === RANDOM_POOL_SIZE) { + if (randomPool === void 0) { + randomPool = Buffer.alloc(RANDOM_POOL_SIZE); + } + randomFillSync(randomPool, 0, RANDOM_POOL_SIZE); + randomPoolPointer = 0; + } + mask[0] = randomPool[randomPoolPointer++]; + mask[1] = randomPool[randomPoolPointer++]; + mask[2] = randomPool[randomPoolPointer++]; + mask[3] = randomPool[randomPoolPointer++]; + } + skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0; + offset = 6; + } + let dataLength; + if (typeof data === "string") { + if ((!options.mask || skipMasking) && options[kByteLength] !== void 0) { + dataLength = options[kByteLength]; + } else { + data = Buffer.from(data); + dataLength = data.length; + } + } else { + dataLength = data.length; + merge = options.mask && options.readOnly && !skipMasking; + } + let payloadLength = dataLength; + if (dataLength >= 65536) { + offset += 8; + payloadLength = 127; + } else if (dataLength > 125) { + offset += 2; + payloadLength = 126; + } + const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset); + target[0] = options.fin ? options.opcode | 128 : options.opcode; + if (options.rsv1) target[0] |= 64; + target[1] = payloadLength; + if (payloadLength === 126) { + target.writeUInt16BE(dataLength, 2); + } else if (payloadLength === 127) { + target[2] = target[3] = 0; + target.writeUIntBE(dataLength, 4, 6); + } + if (!options.mask) return [target, data]; + target[1] |= 128; + target[offset - 4] = mask[0]; + target[offset - 3] = mask[1]; + target[offset - 2] = mask[2]; + target[offset - 1] = mask[3]; + if (skipMasking) return [target, data]; + if (merge) { + applyMask(data, mask, target, offset, dataLength); + return [target]; + } + applyMask(data, mask, data, 0, dataLength); + return [target, data]; + } + /** + * Sends a close message to the other peer. + * + * @param {Number} [code] The status code component of the body + * @param {(String|Buffer)} [data] The message component of the body + * @param {Boolean} [mask=false] Specifies whether or not to mask the message + * @param {Function} [cb] Callback + * @public + */ + close(code, data, mask, cb) { + let buf; + if (code === void 0) { + buf = EMPTY_BUFFER; + } else if (typeof code !== "number" || !isValidStatusCode(code)) { + throw new TypeError("First argument must be a valid error code number"); + } else if (data === void 0 || !data.length) { + buf = Buffer.allocUnsafe(2); + buf.writeUInt16BE(code, 0); + } else { + const length = Buffer.byteLength(data); + if (length > 123) { + throw new RangeError("The message must not be greater than 123 bytes"); + } + buf = Buffer.allocUnsafe(2 + length); + buf.writeUInt16BE(code, 0); + if (typeof data === "string") { + buf.write(data, 2); + } else { + buf.set(data, 2); + } + } + const options = { + [kByteLength]: buf.length, + fin: true, + generateMask: this._generateMask, + mask, + maskBuffer: this._maskBuffer, + opcode: 8, + readOnly: false, + rsv1: false + }; + if (this._state !== DEFAULT) { + this.enqueue([this.dispatch, buf, false, options, cb]); + } else { + this.sendFrame(_Sender.frame(buf, options), cb); + } + } + /** + * Sends a ping message to the other peer. + * + * @param {*} data The message to send + * @param {Boolean} [mask=false] Specifies whether or not to mask `data` + * @param {Function} [cb] Callback + * @public + */ + ping(data, mask, cb) { + let byteLength; + let readOnly; + if (typeof data === "string") { + byteLength = Buffer.byteLength(data); + readOnly = false; + } else if (isBlob(data)) { + byteLength = data.size; + readOnly = false; + } else { + data = toBuffer(data); + byteLength = data.length; + readOnly = toBuffer.readOnly; + } + if (byteLength > 125) { + throw new RangeError("The data size must not be greater than 125 bytes"); + } + const options = { + [kByteLength]: byteLength, + fin: true, + generateMask: this._generateMask, + mask, + maskBuffer: this._maskBuffer, + opcode: 9, + readOnly, + rsv1: false + }; + if (isBlob(data)) { + if (this._state !== DEFAULT) { + this.enqueue([this.getBlobData, data, false, options, cb]); + } else { + this.getBlobData(data, false, options, cb); + } + } else if (this._state !== DEFAULT) { + this.enqueue([this.dispatch, data, false, options, cb]); + } else { + this.sendFrame(_Sender.frame(data, options), cb); + } + } + /** + * Sends a pong message to the other peer. + * + * @param {*} data The message to send + * @param {Boolean} [mask=false] Specifies whether or not to mask `data` + * @param {Function} [cb] Callback + * @public + */ + pong(data, mask, cb) { + let byteLength; + let readOnly; + if (typeof data === "string") { + byteLength = Buffer.byteLength(data); + readOnly = false; + } else if (isBlob(data)) { + byteLength = data.size; + readOnly = false; + } else { + data = toBuffer(data); + byteLength = data.length; + readOnly = toBuffer.readOnly; + } + if (byteLength > 125) { + throw new RangeError("The data size must not be greater than 125 bytes"); + } + const options = { + [kByteLength]: byteLength, + fin: true, + generateMask: this._generateMask, + mask, + maskBuffer: this._maskBuffer, + opcode: 10, + readOnly, + rsv1: false + }; + if (isBlob(data)) { + if (this._state !== DEFAULT) { + this.enqueue([this.getBlobData, data, false, options, cb]); + } else { + this.getBlobData(data, false, options, cb); + } + } else if (this._state !== DEFAULT) { + this.enqueue([this.dispatch, data, false, options, cb]); + } else { + this.sendFrame(_Sender.frame(data, options), cb); + } + } + /** + * Sends a data message to the other peer. + * + * @param {*} data The message to send + * @param {Object} options Options object + * @param {Boolean} [options.binary=false] Specifies whether `data` is binary + * or text + * @param {Boolean} [options.compress=false] Specifies whether or not to + * compress `data` + * @param {Boolean} [options.fin=false] Specifies whether the fragment is the + * last one + * @param {Boolean} [options.mask=false] Specifies whether or not to mask + * `data` + * @param {Function} [cb] Callback + * @public + */ + send(data, options, cb) { + const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; + let opcode = options.binary ? 2 : 1; + let rsv1 = options.compress; + let byteLength; + let readOnly; + if (typeof data === "string") { + byteLength = Buffer.byteLength(data); + readOnly = false; + } else if (isBlob(data)) { + byteLength = data.size; + readOnly = false; + } else { + data = toBuffer(data); + byteLength = data.length; + readOnly = toBuffer.readOnly; + } + if (this._firstFragment) { + this._firstFragment = false; + if (rsv1 && perMessageDeflate && perMessageDeflate.params[perMessageDeflate._isServer ? "server_no_context_takeover" : "client_no_context_takeover"]) { + rsv1 = byteLength >= perMessageDeflate._threshold; + } + this._compress = rsv1; + } else { + rsv1 = false; + opcode = 0; + } + if (options.fin) this._firstFragment = true; + const opts = { + [kByteLength]: byteLength, + fin: options.fin, + generateMask: this._generateMask, + mask: options.mask, + maskBuffer: this._maskBuffer, + opcode, + readOnly, + rsv1 + }; + if (isBlob(data)) { + if (this._state !== DEFAULT) { + this.enqueue([this.getBlobData, data, this._compress, opts, cb]); + } else { + this.getBlobData(data, this._compress, opts, cb); + } + } else if (this._state !== DEFAULT) { + this.enqueue([this.dispatch, data, this._compress, opts, cb]); + } else { + this.dispatch(data, this._compress, opts, cb); + } + } + /** + * Gets the contents of a blob as binary data. + * + * @param {Blob} blob The blob + * @param {Boolean} [compress=false] Specifies whether or not to compress + * the data + * @param {Object} options Options object + * @param {Boolean} [options.fin=false] Specifies whether or not to set the + * FIN bit + * @param {Function} [options.generateMask] The function used to generate the + * masking key + * @param {Boolean} [options.mask=false] Specifies whether or not to mask + * `data` + * @param {Buffer} [options.maskBuffer] The buffer used to store the masking + * key + * @param {Number} options.opcode The opcode + * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be + * modified + * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the + * RSV1 bit + * @param {Function} [cb] Callback + * @private + */ + getBlobData(blob3, compress, options, cb) { + this._bufferedBytes += options[kByteLength]; + this._state = GET_BLOB_DATA; + blob3.arrayBuffer().then((arrayBuffer) => { + if (this._socket.destroyed) { + const err = new Error( + "The socket was closed while the blob was being read" + ); + process.nextTick(callCallbacks, this, err, cb); + return; + } + this._bufferedBytes -= options[kByteLength]; + const data = toBuffer(arrayBuffer); + if (!compress) { + this._state = DEFAULT; + this.sendFrame(_Sender.frame(data, options), cb); + this.dequeue(); + } else { + this.dispatch(data, compress, options, cb); + } + }).catch((err) => { + process.nextTick(onError, this, err, cb); + }); + } + /** + * Dispatches a message. + * + * @param {(Buffer|String)} data The message to send + * @param {Boolean} [compress=false] Specifies whether or not to compress + * `data` + * @param {Object} options Options object + * @param {Boolean} [options.fin=false] Specifies whether or not to set the + * FIN bit + * @param {Function} [options.generateMask] The function used to generate the + * masking key + * @param {Boolean} [options.mask=false] Specifies whether or not to mask + * `data` + * @param {Buffer} [options.maskBuffer] The buffer used to store the masking + * key + * @param {Number} options.opcode The opcode + * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be + * modified + * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the + * RSV1 bit + * @param {Function} [cb] Callback + * @private + */ + dispatch(data, compress, options, cb) { + if (!compress) { + this.sendFrame(_Sender.frame(data, options), cb); + return; + } + const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; + this._bufferedBytes += options[kByteLength]; + this._state = DEFLATING; + perMessageDeflate.compress(data, options.fin, (_, buf) => { + if (this._socket.destroyed) { + const err = new Error( + "The socket was closed while data was being compressed" + ); + callCallbacks(this, err, cb); + return; + } + this._bufferedBytes -= options[kByteLength]; + this._state = DEFAULT; + options.readOnly = false; + this.sendFrame(_Sender.frame(buf, options), cb); + this.dequeue(); + }); + } + /** + * Executes queued send operations. + * + * @private + */ + dequeue() { + while (this._state === DEFAULT && this._queue.length) { + const params = this._queue.shift(); + this._bufferedBytes -= params[3][kByteLength]; + Reflect.apply(params[0], this, params.slice(1)); + } + } + /** + * Enqueues a send operation. + * + * @param {Array} params Send operation parameters. + * @private + */ + enqueue(params) { + this._bufferedBytes += params[3][kByteLength]; + this._queue.push(params); + } + /** + * Sends a frame. + * + * @param {(Buffer | String)[]} list The frame to send + * @param {Function} [cb] Callback + * @private + */ + sendFrame(list, cb) { + if (list.length === 2) { + this._socket.cork(); + this._socket.write(list[0]); + this._socket.write(list[1], cb); + this._socket.uncork(); + } else { + this._socket.write(list[0], cb); + } + } + }; + module2.exports = Sender; + function callCallbacks(sender, err, cb) { + if (typeof cb === "function") cb(err); + for (let i = 0; i < sender._queue.length; i++) { + const params = sender._queue[i]; + const callback = params[params.length - 1]; + if (typeof callback === "function") callback(err); + } + } + function onError(sender, err, cb) { + callCallbacks(sender, err, cb); + sender.onerror(err); + } + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/event-target.js +var require_event_target = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/event-target.js"(exports2, module2) { + "use strict"; + var { kForOnEventAttribute, kListener } = require_constants6(); + var kCode = Symbol("kCode"); + var kData = Symbol("kData"); + var kError = Symbol("kError"); + var kMessage = Symbol("kMessage"); + var kReason = Symbol("kReason"); + var kTarget = Symbol("kTarget"); + var kType = Symbol("kType"); + var kWasClean = Symbol("kWasClean"); + var Event2 = class { + /** + * Create a new `Event`. + * + * @param {String} type The name of the event + * @throws {TypeError} If the `type` argument is not specified + */ + constructor(type) { + this[kTarget] = null; + this[kType] = type; + } + /** + * @type {*} + */ + get target() { + return this[kTarget]; + } + /** + * @type {String} + */ + get type() { + return this[kType]; + } + }; + Object.defineProperty(Event2.prototype, "target", { enumerable: true }); + Object.defineProperty(Event2.prototype, "type", { enumerable: true }); + var CloseEvent = class extends Event2 { + /** + * Create a new `CloseEvent`. + * + * @param {String} type The name of the event + * @param {Object} [options] A dictionary object that allows for setting + * attributes via object members of the same name + * @param {Number} [options.code=0] The status code explaining why the + * connection was closed + * @param {String} [options.reason=''] A human-readable string explaining why + * the connection was closed + * @param {Boolean} [options.wasClean=false] Indicates whether or not the + * connection was cleanly closed + */ + constructor(type, options = {}) { + super(type); + this[kCode] = options.code === void 0 ? 0 : options.code; + this[kReason] = options.reason === void 0 ? "" : options.reason; + this[kWasClean] = options.wasClean === void 0 ? false : options.wasClean; + } + /** + * @type {Number} + */ + get code() { + return this[kCode]; + } + /** + * @type {String} + */ + get reason() { + return this[kReason]; + } + /** + * @type {Boolean} + */ + get wasClean() { + return this[kWasClean]; + } + }; + Object.defineProperty(CloseEvent.prototype, "code", { enumerable: true }); + Object.defineProperty(CloseEvent.prototype, "reason", { enumerable: true }); + Object.defineProperty(CloseEvent.prototype, "wasClean", { enumerable: true }); + var ErrorEvent = class extends Event2 { + /** + * Create a new `ErrorEvent`. + * + * @param {String} type The name of the event + * @param {Object} [options] A dictionary object that allows for setting + * attributes via object members of the same name + * @param {*} [options.error=null] The error that generated this event + * @param {String} [options.message=''] The error message + */ + constructor(type, options = {}) { + super(type); + this[kError] = options.error === void 0 ? null : options.error; + this[kMessage] = options.message === void 0 ? "" : options.message; + } + /** + * @type {*} + */ + get error() { + return this[kError]; + } + /** + * @type {String} + */ + get message() { + return this[kMessage]; + } + }; + Object.defineProperty(ErrorEvent.prototype, "error", { enumerable: true }); + Object.defineProperty(ErrorEvent.prototype, "message", { enumerable: true }); + var MessageEvent = class extends Event2 { + /** + * Create a new `MessageEvent`. + * + * @param {String} type The name of the event + * @param {Object} [options] A dictionary object that allows for setting + * attributes via object members of the same name + * @param {*} [options.data=null] The message content + */ + constructor(type, options = {}) { + super(type); + this[kData] = options.data === void 0 ? null : options.data; + } + /** + * @type {*} + */ + get data() { + return this[kData]; + } + }; + Object.defineProperty(MessageEvent.prototype, "data", { enumerable: true }); + var EventTarget2 = { + /** + * Register an event listener. + * + * @param {String} type A string representing the event type to listen for + * @param {(Function|Object)} handler The listener to add + * @param {Object} [options] An options object specifies characteristics about + * the event listener + * @param {Boolean} [options.once=false] A `Boolean` indicating that the + * listener should be invoked at most once after being added. If `true`, + * the listener would be automatically removed when invoked. + * @public + */ + addEventListener(type, handler, options = {}) { + for (const listener of this.listeners(type)) { + if (!options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute]) { + return; + } + } + let wrapper; + if (type === "message") { + wrapper = function onMessage(data, isBinary) { + const event = new MessageEvent("message", { + data: isBinary ? data : data.toString() + }); + event[kTarget] = this; + callListener(handler, this, event); + }; + } else if (type === "close") { + wrapper = function onClose(code, message) { + const event = new CloseEvent("close", { + code, + reason: message.toString(), + wasClean: this._closeFrameReceived && this._closeFrameSent + }); + event[kTarget] = this; + callListener(handler, this, event); + }; + } else if (type === "error") { + wrapper = function onError(error) { + const event = new ErrorEvent("error", { + error, + message: error.message + }); + event[kTarget] = this; + callListener(handler, this, event); + }; + } else if (type === "open") { + wrapper = function onOpen() { + const event = new Event2("open"); + event[kTarget] = this; + callListener(handler, this, event); + }; + } else { + return; + } + wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute]; + wrapper[kListener] = handler; + if (options.once) { + this.once(type, wrapper); + } else { + this.on(type, wrapper); + } + }, + /** + * Remove an event listener. + * + * @param {String} type A string representing the event type to remove + * @param {(Function|Object)} handler The listener to remove + * @public + */ + removeEventListener(type, handler) { + for (const listener of this.listeners(type)) { + if (listener[kListener] === handler && !listener[kForOnEventAttribute]) { + this.removeListener(type, listener); + break; + } + } + } + }; + module2.exports = { + CloseEvent, + ErrorEvent, + Event: Event2, + EventTarget: EventTarget2, + MessageEvent + }; + function callListener(listener, thisArg, event) { + if (typeof listener === "object" && listener.handleEvent) { + listener.handleEvent.call(listener, event); + } else { + listener.call(thisArg, event); + } + } + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/extension.js +var require_extension = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/extension.js"(exports2, module2) { + "use strict"; + var { tokenChars } = require_validation(); + function push(dest, name, elem) { + if (dest[name] === void 0) dest[name] = [elem]; + else dest[name].push(elem); + } + function parse2(header) { + const offers = /* @__PURE__ */ Object.create(null); + let params = /* @__PURE__ */ Object.create(null); + let mustUnescape = false; + let isEscaping = false; + let inQuotes = false; + let extensionName; + let paramName; + let start = -1; + let code = -1; + let end = -1; + let i = 0; + for (; i < header.length; i++) { + code = header.charCodeAt(i); + if (extensionName === void 0) { + if (end === -1 && tokenChars[code] === 1) { + if (start === -1) start = i; + } else if (i !== 0 && (code === 32 || code === 9)) { + if (end === -1 && start !== -1) end = i; + } else if (code === 59 || code === 44) { + if (start === -1) { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + if (end === -1) end = i; + const name = header.slice(start, end); + if (code === 44) { + push(offers, name, params); + params = /* @__PURE__ */ Object.create(null); + } else { + extensionName = name; + } + start = end = -1; + } else { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + } else if (paramName === void 0) { + if (end === -1 && tokenChars[code] === 1) { + if (start === -1) start = i; + } else if (code === 32 || code === 9) { + if (end === -1 && start !== -1) end = i; + } else if (code === 59 || code === 44) { + if (start === -1) { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + if (end === -1) end = i; + push(params, header.slice(start, end), true); + if (code === 44) { + push(offers, extensionName, params); + params = /* @__PURE__ */ Object.create(null); + extensionName = void 0; + } + start = end = -1; + } else if (code === 61 && start !== -1 && end === -1) { + paramName = header.slice(start, i); + start = end = -1; + } else { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + } else { + if (isEscaping) { + if (tokenChars[code] !== 1) { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + if (start === -1) start = i; + else if (!mustUnescape) mustUnescape = true; + isEscaping = false; + } else if (inQuotes) { + if (tokenChars[code] === 1) { + if (start === -1) start = i; + } else if (code === 34 && start !== -1) { + inQuotes = false; + end = i; + } else if (code === 92) { + isEscaping = true; + } else { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + } else if (code === 34 && header.charCodeAt(i - 1) === 61) { + inQuotes = true; + } else if (end === -1 && tokenChars[code] === 1) { + if (start === -1) start = i; + } else if (start !== -1 && (code === 32 || code === 9)) { + if (end === -1) end = i; + } else if (code === 59 || code === 44) { + if (start === -1) { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + if (end === -1) end = i; + let value = header.slice(start, end); + if (mustUnescape) { + value = value.replace(/\\/g, ""); + mustUnescape = false; + } + push(params, paramName, value); + if (code === 44) { + push(offers, extensionName, params); + params = /* @__PURE__ */ Object.create(null); + extensionName = void 0; + } + paramName = void 0; + start = end = -1; + } else { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + } + } + if (start === -1 || inQuotes || code === 32 || code === 9) { + throw new SyntaxError("Unexpected end of input"); + } + if (end === -1) end = i; + const token = header.slice(start, end); + if (extensionName === void 0) { + push(offers, token, params); + } else { + if (paramName === void 0) { + push(params, token, true); + } else if (mustUnescape) { + push(params, paramName, token.replace(/\\/g, "")); + } else { + push(params, paramName, token); + } + push(offers, extensionName, params); + } + return offers; + } + function format(extensions) { + return Object.keys(extensions).map((extension) => { + let configurations = extensions[extension]; + if (!Array.isArray(configurations)) configurations = [configurations]; + return configurations.map((params) => { + return [extension].concat( + Object.keys(params).map((k) => { + let values = params[k]; + if (!Array.isArray(values)) values = [values]; + return values.map((v) => v === true ? k : `${k}=${v}`).join("; "); + }) + ).join("; "); + }).join(", "); + }).join(", "); + } + module2.exports = { format, parse: parse2 }; + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/websocket.js +var require_websocket2 = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/websocket.js"(exports2, module2) { + "use strict"; + var EventEmitter = require("events"); + var https = require("https"); + var http = require("http"); + var net = require("net"); + var tls = require("tls"); + var { randomBytes, createHash } = require("crypto"); + var { Duplex, Readable } = require("stream"); + var { URL: URL3 } = require("url"); + var PerMessageDeflate = require_permessage_deflate(); + var Receiver = require_receiver2(); + var Sender = require_sender(); + var { isBlob } = require_validation(); + var { + BINARY_TYPES, + EMPTY_BUFFER, + GUID, + kForOnEventAttribute, + kListener, + kStatusCode, + kWebSocket, + NOOP + } = require_constants6(); + var { + EventTarget: { addEventListener, removeEventListener } + } = require_event_target(); + var { format, parse: parse2 } = require_extension(); + var { toBuffer } = require_buffer_util(); + var closeTimeout = 30 * 1e3; + var kAborted = Symbol("kAborted"); + var protocolVersions = [8, 13]; + var readyStates = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"]; + var subprotocolRegex = /^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/; + var WebSocket = class _WebSocket extends EventEmitter { + /** + * Create a new `WebSocket`. + * + * @param {(String|URL)} address The URL to which to connect + * @param {(String|String[])} [protocols] The subprotocols + * @param {Object} [options] Connection options + */ + constructor(address, protocols, options) { + super(); + this._binaryType = BINARY_TYPES[0]; + this._closeCode = 1006; + this._closeFrameReceived = false; + this._closeFrameSent = false; + this._closeMessage = EMPTY_BUFFER; + this._closeTimer = null; + this._errorEmitted = false; + this._extensions = {}; + this._paused = false; + this._protocol = ""; + this._readyState = _WebSocket.CONNECTING; + this._receiver = null; + this._sender = null; + this._socket = null; + if (address !== null) { + this._bufferedAmount = 0; + this._isServer = false; + this._redirects = 0; + if (protocols === void 0) { + protocols = []; + } else if (!Array.isArray(protocols)) { + if (typeof protocols === "object" && protocols !== null) { + options = protocols; + protocols = []; + } else { + protocols = [protocols]; + } + } + initAsClient(this, address, protocols, options); + } else { + this._autoPong = options.autoPong; + this._isServer = true; + } + } + /** + * For historical reasons, the custom "nodebuffer" type is used by the default + * instead of "blob". + * + * @type {String} + */ + get binaryType() { + return this._binaryType; + } + set binaryType(type) { + if (!BINARY_TYPES.includes(type)) return; + this._binaryType = type; + if (this._receiver) this._receiver._binaryType = type; + } + /** + * @type {Number} + */ + get bufferedAmount() { + if (!this._socket) return this._bufferedAmount; + return this._socket._writableState.length + this._sender._bufferedBytes; + } + /** + * @type {String} + */ + get extensions() { + return Object.keys(this._extensions).join(); + } + /** + * @type {Boolean} + */ + get isPaused() { + return this._paused; + } + /** + * @type {Function} + */ + /* istanbul ignore next */ + get onclose() { + return null; + } + /** + * @type {Function} + */ + /* istanbul ignore next */ + get onerror() { + return null; + } + /** + * @type {Function} + */ + /* istanbul ignore next */ + get onopen() { + return null; + } + /** + * @type {Function} + */ + /* istanbul ignore next */ + get onmessage() { + return null; + } + /** + * @type {String} + */ + get protocol() { + return this._protocol; + } + /** + * @type {Number} + */ + get readyState() { + return this._readyState; + } + /** + * @type {String} + */ + get url() { + return this._url; + } + /** + * Set up the socket and the internal resources. + * + * @param {Duplex} socket The network socket between the server and client + * @param {Buffer} head The first packet of the upgraded stream + * @param {Object} options Options object + * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether + * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted + * multiple times in the same tick + * @param {Function} [options.generateMask] The function used to generate the + * masking key + * @param {Number} [options.maxPayload=0] The maximum allowed message size + * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or + * not to skip UTF-8 validation for text and close messages + * @private + */ + setSocket(socket, head, options) { + const receiver = new Receiver({ + allowSynchronousEvents: options.allowSynchronousEvents, + binaryType: this.binaryType, + extensions: this._extensions, + isServer: this._isServer, + maxPayload: options.maxPayload, + skipUTF8Validation: options.skipUTF8Validation + }); + const sender = new Sender(socket, this._extensions, options.generateMask); + this._receiver = receiver; + this._sender = sender; + this._socket = socket; + receiver[kWebSocket] = this; + sender[kWebSocket] = this; + socket[kWebSocket] = this; + receiver.on("conclude", receiverOnConclude); + receiver.on("drain", receiverOnDrain); + receiver.on("error", receiverOnError); + receiver.on("message", receiverOnMessage); + receiver.on("ping", receiverOnPing); + receiver.on("pong", receiverOnPong); + sender.onerror = senderOnError; + if (socket.setTimeout) socket.setTimeout(0); + if (socket.setNoDelay) socket.setNoDelay(); + if (head.length > 0) socket.unshift(head); + socket.on("close", socketOnClose); + socket.on("data", socketOnData); + socket.on("end", socketOnEnd); + socket.on("error", socketOnError); + this._readyState = _WebSocket.OPEN; + this.emit("open"); + } + /** + * Emit the `'close'` event. + * + * @private + */ + emitClose() { + if (!this._socket) { + this._readyState = _WebSocket.CLOSED; + this.emit("close", this._closeCode, this._closeMessage); + return; + } + if (this._extensions[PerMessageDeflate.extensionName]) { + this._extensions[PerMessageDeflate.extensionName].cleanup(); + } + this._receiver.removeAllListeners(); + this._readyState = _WebSocket.CLOSED; + this.emit("close", this._closeCode, this._closeMessage); + } + /** + * Start a closing handshake. + * + * +----------+ +-----------+ +----------+ + * - - -|ws.close()|-->|close frame|-->|ws.close()|- - - + * | +----------+ +-----------+ +----------+ | + * +----------+ +-----------+ | + * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING + * +----------+ +-----------+ | + * | | | +---+ | + * +------------------------+-->|fin| - - - - + * | +---+ | +---+ + * - - - - -|fin|<---------------------+ + * +---+ + * + * @param {Number} [code] Status code explaining why the connection is closing + * @param {(String|Buffer)} [data] The reason why the connection is + * closing + * @public + */ + close(code, data) { + if (this.readyState === _WebSocket.CLOSED) return; + if (this.readyState === _WebSocket.CONNECTING) { + const msg = "WebSocket was closed before the connection was established"; + abortHandshake(this, this._req, msg); + return; + } + if (this.readyState === _WebSocket.CLOSING) { + if (this._closeFrameSent && (this._closeFrameReceived || this._receiver._writableState.errorEmitted)) { + this._socket.end(); + } + return; + } + this._readyState = _WebSocket.CLOSING; + this._sender.close(code, data, !this._isServer, (err) => { + if (err) return; + this._closeFrameSent = true; + if (this._closeFrameReceived || this._receiver._writableState.errorEmitted) { + this._socket.end(); + } + }); + setCloseTimer(this); + } + /** + * Pause the socket. + * + * @public + */ + pause() { + if (this.readyState === _WebSocket.CONNECTING || this.readyState === _WebSocket.CLOSED) { + return; + } + this._paused = true; + this._socket.pause(); + } + /** + * Send a ping. + * + * @param {*} [data] The data to send + * @param {Boolean} [mask] Indicates whether or not to mask `data` + * @param {Function} [cb] Callback which is executed when the ping is sent + * @public + */ + ping(data, mask, cb) { + if (this.readyState === _WebSocket.CONNECTING) { + throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); + } + if (typeof data === "function") { + cb = data; + data = mask = void 0; + } else if (typeof mask === "function") { + cb = mask; + mask = void 0; + } + if (typeof data === "number") data = data.toString(); + if (this.readyState !== _WebSocket.OPEN) { + sendAfterClose(this, data, cb); + return; + } + if (mask === void 0) mask = !this._isServer; + this._sender.ping(data || EMPTY_BUFFER, mask, cb); + } + /** + * Send a pong. + * + * @param {*} [data] The data to send + * @param {Boolean} [mask] Indicates whether or not to mask `data` + * @param {Function} [cb] Callback which is executed when the pong is sent + * @public + */ + pong(data, mask, cb) { + if (this.readyState === _WebSocket.CONNECTING) { + throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); + } + if (typeof data === "function") { + cb = data; + data = mask = void 0; + } else if (typeof mask === "function") { + cb = mask; + mask = void 0; + } + if (typeof data === "number") data = data.toString(); + if (this.readyState !== _WebSocket.OPEN) { + sendAfterClose(this, data, cb); + return; + } + if (mask === void 0) mask = !this._isServer; + this._sender.pong(data || EMPTY_BUFFER, mask, cb); + } + /** + * Resume the socket. + * + * @public + */ + resume() { + if (this.readyState === _WebSocket.CONNECTING || this.readyState === _WebSocket.CLOSED) { + return; + } + this._paused = false; + if (!this._receiver._writableState.needDrain) this._socket.resume(); + } + /** + * Send a data message. + * + * @param {*} data The message to send + * @param {Object} [options] Options object + * @param {Boolean} [options.binary] Specifies whether `data` is binary or + * text + * @param {Boolean} [options.compress] Specifies whether or not to compress + * `data` + * @param {Boolean} [options.fin=true] Specifies whether the fragment is the + * last one + * @param {Boolean} [options.mask] Specifies whether or not to mask `data` + * @param {Function} [cb] Callback which is executed when data is written out + * @public + */ + send(data, options, cb) { + if (this.readyState === _WebSocket.CONNECTING) { + throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); + } + if (typeof options === "function") { + cb = options; + options = {}; + } + if (typeof data === "number") data = data.toString(); + if (this.readyState !== _WebSocket.OPEN) { + sendAfterClose(this, data, cb); + return; + } + const opts = { + binary: typeof data !== "string", + mask: !this._isServer, + compress: true, + fin: true, + ...options + }; + if (!this._extensions[PerMessageDeflate.extensionName]) { + opts.compress = false; + } + this._sender.send(data || EMPTY_BUFFER, opts, cb); + } + /** + * Forcibly close the connection. + * + * @public + */ + terminate() { + if (this.readyState === _WebSocket.CLOSED) return; + if (this.readyState === _WebSocket.CONNECTING) { + const msg = "WebSocket was closed before the connection was established"; + abortHandshake(this, this._req, msg); + return; + } + if (this._socket) { + this._readyState = _WebSocket.CLOSING; + this._socket.destroy(); + } + } + }; + Object.defineProperty(WebSocket, "CONNECTING", { + enumerable: true, + value: readyStates.indexOf("CONNECTING") + }); + Object.defineProperty(WebSocket.prototype, "CONNECTING", { + enumerable: true, + value: readyStates.indexOf("CONNECTING") + }); + Object.defineProperty(WebSocket, "OPEN", { + enumerable: true, + value: readyStates.indexOf("OPEN") + }); + Object.defineProperty(WebSocket.prototype, "OPEN", { + enumerable: true, + value: readyStates.indexOf("OPEN") + }); + Object.defineProperty(WebSocket, "CLOSING", { + enumerable: true, + value: readyStates.indexOf("CLOSING") + }); + Object.defineProperty(WebSocket.prototype, "CLOSING", { + enumerable: true, + value: readyStates.indexOf("CLOSING") + }); + Object.defineProperty(WebSocket, "CLOSED", { + enumerable: true, + value: readyStates.indexOf("CLOSED") + }); + Object.defineProperty(WebSocket.prototype, "CLOSED", { + enumerable: true, + value: readyStates.indexOf("CLOSED") + }); + [ + "binaryType", + "bufferedAmount", + "extensions", + "isPaused", + "protocol", + "readyState", + "url" + ].forEach((property) => { + Object.defineProperty(WebSocket.prototype, property, { enumerable: true }); + }); + ["open", "error", "close", "message"].forEach((method2) => { + Object.defineProperty(WebSocket.prototype, `on${method2}`, { + enumerable: true, + get() { + for (const listener of this.listeners(method2)) { + if (listener[kForOnEventAttribute]) return listener[kListener]; + } + return null; + }, + set(handler) { + for (const listener of this.listeners(method2)) { + if (listener[kForOnEventAttribute]) { + this.removeListener(method2, listener); + break; + } + } + if (typeof handler !== "function") return; + this.addEventListener(method2, handler, { + [kForOnEventAttribute]: true + }); + } + }); + }); + WebSocket.prototype.addEventListener = addEventListener; + WebSocket.prototype.removeEventListener = removeEventListener; + module2.exports = WebSocket; + function initAsClient(websocket, address, protocols, options) { + const opts = { + allowSynchronousEvents: true, + autoPong: true, + protocolVersion: protocolVersions[1], + maxPayload: 100 * 1024 * 1024, + skipUTF8Validation: false, + perMessageDeflate: true, + followRedirects: false, + maxRedirects: 10, + ...options, + socketPath: void 0, + hostname: void 0, + protocol: void 0, + timeout: void 0, + method: "GET", + host: void 0, + path: void 0, + port: void 0 + }; + websocket._autoPong = opts.autoPong; + if (!protocolVersions.includes(opts.protocolVersion)) { + throw new RangeError( + `Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(", ")})` + ); + } + let parsedUrl; + if (address instanceof URL3) { + parsedUrl = address; + } else { + try { + parsedUrl = new URL3(address); + } catch (e) { + throw new SyntaxError(`Invalid URL: ${address}`); + } + } + if (parsedUrl.protocol === "http:") { + parsedUrl.protocol = "ws:"; + } else if (parsedUrl.protocol === "https:") { + parsedUrl.protocol = "wss:"; + } + websocket._url = parsedUrl.href; + const isSecure = parsedUrl.protocol === "wss:"; + const isIpcUrl = parsedUrl.protocol === "ws+unix:"; + let invalidUrlMessage; + if (parsedUrl.protocol !== "ws:" && !isSecure && !isIpcUrl) { + invalidUrlMessage = `The URL's protocol must be one of "ws:", "wss:", "http:", "https", or "ws+unix:"`; + } else if (isIpcUrl && !parsedUrl.pathname) { + invalidUrlMessage = "The URL's pathname is empty"; + } else if (parsedUrl.hash) { + invalidUrlMessage = "The URL contains a fragment identifier"; + } + if (invalidUrlMessage) { + const err = new SyntaxError(invalidUrlMessage); + if (websocket._redirects === 0) { + throw err; + } else { + emitErrorAndClose(websocket, err); + return; + } + } + const defaultPort = isSecure ? 443 : 80; + const key = randomBytes(16).toString("base64"); + const request = isSecure ? https.request : http.request; + const protocolSet = /* @__PURE__ */ new Set(); + let perMessageDeflate; + opts.createConnection = opts.createConnection || (isSecure ? tlsConnect : netConnect); + opts.defaultPort = opts.defaultPort || defaultPort; + opts.port = parsedUrl.port || defaultPort; + opts.host = parsedUrl.hostname.startsWith("[") ? parsedUrl.hostname.slice(1, -1) : parsedUrl.hostname; + opts.headers = { + ...opts.headers, + "Sec-WebSocket-Version": opts.protocolVersion, + "Sec-WebSocket-Key": key, + Connection: "Upgrade", + Upgrade: "websocket" + }; + opts.path = parsedUrl.pathname + parsedUrl.search; + opts.timeout = opts.handshakeTimeout; + if (opts.perMessageDeflate) { + perMessageDeflate = new PerMessageDeflate( + opts.perMessageDeflate !== true ? opts.perMessageDeflate : {}, + false, + opts.maxPayload + ); + opts.headers["Sec-WebSocket-Extensions"] = format({ + [PerMessageDeflate.extensionName]: perMessageDeflate.offer() + }); + } + if (protocols.length) { + for (const protocol of protocols) { + if (typeof protocol !== "string" || !subprotocolRegex.test(protocol) || protocolSet.has(protocol)) { + throw new SyntaxError( + "An invalid or duplicated subprotocol was specified" + ); + } + protocolSet.add(protocol); + } + opts.headers["Sec-WebSocket-Protocol"] = protocols.join(","); + } + if (opts.origin) { + if (opts.protocolVersion < 13) { + opts.headers["Sec-WebSocket-Origin"] = opts.origin; + } else { + opts.headers.Origin = opts.origin; + } + } + if (parsedUrl.username || parsedUrl.password) { + opts.auth = `${parsedUrl.username}:${parsedUrl.password}`; + } + if (isIpcUrl) { + const parts = opts.path.split(":"); + opts.socketPath = parts[0]; + opts.path = parts[1]; + } + let req; + if (opts.followRedirects) { + if (websocket._redirects === 0) { + websocket._originalIpc = isIpcUrl; + websocket._originalSecure = isSecure; + websocket._originalHostOrSocketPath = isIpcUrl ? opts.socketPath : parsedUrl.host; + const headers = options && options.headers; + options = { ...options, headers: {} }; + if (headers) { + for (const [key2, value] of Object.entries(headers)) { + options.headers[key2.toLowerCase()] = value; + } + } + } else if (websocket.listenerCount("redirect") === 0) { + const isSameHost = isIpcUrl ? websocket._originalIpc ? opts.socketPath === websocket._originalHostOrSocketPath : false : websocket._originalIpc ? false : parsedUrl.host === websocket._originalHostOrSocketPath; + if (!isSameHost || websocket._originalSecure && !isSecure) { + delete opts.headers.authorization; + delete opts.headers.cookie; + if (!isSameHost) delete opts.headers.host; + opts.auth = void 0; + } + } + if (opts.auth && !options.headers.authorization) { + options.headers.authorization = "Basic " + Buffer.from(opts.auth).toString("base64"); + } + req = websocket._req = request(opts); + if (websocket._redirects) { + websocket.emit("redirect", websocket.url, req); + } + } else { + req = websocket._req = request(opts); + } + if (opts.timeout) { + req.on("timeout", () => { + abortHandshake(websocket, req, "Opening handshake has timed out"); + }); + } + req.on("error", (err) => { + if (req === null || req[kAborted]) return; + req = websocket._req = null; + emitErrorAndClose(websocket, err); + }); + req.on("response", (res) => { + const location = res.headers.location; + const statusCode = res.statusCode; + if (location && opts.followRedirects && statusCode >= 300 && statusCode < 400) { + if (++websocket._redirects > opts.maxRedirects) { + abortHandshake(websocket, req, "Maximum redirects exceeded"); + return; + } + req.abort(); + let addr; + try { + addr = new URL3(location, address); + } catch (e) { + const err = new SyntaxError(`Invalid URL: ${location}`); + emitErrorAndClose(websocket, err); + return; + } + initAsClient(websocket, addr, protocols, options); + } else if (!websocket.emit("unexpected-response", req, res)) { + abortHandshake( + websocket, + req, + `Unexpected server response: ${res.statusCode}` + ); + } + }); + req.on("upgrade", (res, socket, head) => { + websocket.emit("upgrade", res); + if (websocket.readyState !== WebSocket.CONNECTING) return; + req = websocket._req = null; + const upgrade = res.headers.upgrade; + if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") { + abortHandshake(websocket, socket, "Invalid Upgrade header"); + return; + } + const digest = createHash("sha1").update(key + GUID).digest("base64"); + if (res.headers["sec-websocket-accept"] !== digest) { + abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header"); + return; + } + const serverProt = res.headers["sec-websocket-protocol"]; + let protError; + if (serverProt !== void 0) { + if (!protocolSet.size) { + protError = "Server sent a subprotocol but none was requested"; + } else if (!protocolSet.has(serverProt)) { + protError = "Server sent an invalid subprotocol"; + } + } else if (protocolSet.size) { + protError = "Server sent no subprotocol"; + } + if (protError) { + abortHandshake(websocket, socket, protError); + return; + } + if (serverProt) websocket._protocol = serverProt; + const secWebSocketExtensions = res.headers["sec-websocket-extensions"]; + if (secWebSocketExtensions !== void 0) { + if (!perMessageDeflate) { + const message = "Server sent a Sec-WebSocket-Extensions header but no extension was requested"; + abortHandshake(websocket, socket, message); + return; + } + let extensions; + try { + extensions = parse2(secWebSocketExtensions); + } catch (err) { + const message = "Invalid Sec-WebSocket-Extensions header"; + abortHandshake(websocket, socket, message); + return; + } + const extensionNames = Object.keys(extensions); + if (extensionNames.length !== 1 || extensionNames[0] !== PerMessageDeflate.extensionName) { + const message = "Server indicated an extension that was not requested"; + abortHandshake(websocket, socket, message); + return; + } + try { + perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]); + } catch (err) { + const message = "Invalid Sec-WebSocket-Extensions header"; + abortHandshake(websocket, socket, message); + return; + } + websocket._extensions[PerMessageDeflate.extensionName] = perMessageDeflate; + } + websocket.setSocket(socket, head, { + allowSynchronousEvents: opts.allowSynchronousEvents, + generateMask: opts.generateMask, + maxPayload: opts.maxPayload, + skipUTF8Validation: opts.skipUTF8Validation + }); + }); + if (opts.finishRequest) { + opts.finishRequest(req, websocket); + } else { + req.end(); + } + } + function emitErrorAndClose(websocket, err) { + websocket._readyState = WebSocket.CLOSING; + websocket._errorEmitted = true; + websocket.emit("error", err); + websocket.emitClose(); + } + function netConnect(options) { + options.path = options.socketPath; + return net.connect(options); + } + function tlsConnect(options) { + options.path = void 0; + if (!options.servername && options.servername !== "") { + options.servername = net.isIP(options.host) ? "" : options.host; + } + return tls.connect(options); + } + function abortHandshake(websocket, stream, message) { + websocket._readyState = WebSocket.CLOSING; + const err = new Error(message); + Error.captureStackTrace(err, abortHandshake); + if (stream.setHeader) { + stream[kAborted] = true; + stream.abort(); + if (stream.socket && !stream.socket.destroyed) { + stream.socket.destroy(); + } + process.nextTick(emitErrorAndClose, websocket, err); + } else { + stream.destroy(err); + stream.once("error", websocket.emit.bind(websocket, "error")); + stream.once("close", websocket.emitClose.bind(websocket)); + } + } + function sendAfterClose(websocket, data, cb) { + if (data) { + const length = isBlob(data) ? data.size : toBuffer(data).length; + if (websocket._socket) websocket._sender._bufferedBytes += length; + else websocket._bufferedAmount += length; + } + if (cb) { + const err = new Error( + `WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})` + ); + process.nextTick(cb, err); + } + } + function receiverOnConclude(code, reason) { + const websocket = this[kWebSocket]; + websocket._closeFrameReceived = true; + websocket._closeMessage = reason; + websocket._closeCode = code; + if (websocket._socket[kWebSocket] === void 0) return; + websocket._socket.removeListener("data", socketOnData); + process.nextTick(resume, websocket._socket); + if (code === 1005) websocket.close(); + else websocket.close(code, reason); + } + function receiverOnDrain() { + const websocket = this[kWebSocket]; + if (!websocket.isPaused) websocket._socket.resume(); + } + function receiverOnError(err) { + const websocket = this[kWebSocket]; + if (websocket._socket[kWebSocket] !== void 0) { + websocket._socket.removeListener("data", socketOnData); + process.nextTick(resume, websocket._socket); + websocket.close(err[kStatusCode]); + } + if (!websocket._errorEmitted) { + websocket._errorEmitted = true; + websocket.emit("error", err); + } + } + function receiverOnFinish() { + this[kWebSocket].emitClose(); + } + function receiverOnMessage(data, isBinary) { + this[kWebSocket].emit("message", data, isBinary); + } + function receiverOnPing(data) { + const websocket = this[kWebSocket]; + if (websocket._autoPong) websocket.pong(data, !this._isServer, NOOP); + websocket.emit("ping", data); + } + function receiverOnPong(data) { + this[kWebSocket].emit("pong", data); + } + function resume(stream) { + stream.resume(); + } + function senderOnError(err) { + const websocket = this[kWebSocket]; + if (websocket.readyState === WebSocket.CLOSED) return; + if (websocket.readyState === WebSocket.OPEN) { + websocket._readyState = WebSocket.CLOSING; + setCloseTimer(websocket); + } + this._socket.end(); + if (!websocket._errorEmitted) { + websocket._errorEmitted = true; + websocket.emit("error", err); + } + } + function setCloseTimer(websocket) { + websocket._closeTimer = setTimeout( + websocket._socket.destroy.bind(websocket._socket), + closeTimeout + ); + } + function socketOnClose() { + const websocket = this[kWebSocket]; + this.removeListener("close", socketOnClose); + this.removeListener("data", socketOnData); + this.removeListener("end", socketOnEnd); + websocket._readyState = WebSocket.CLOSING; + let chunk; + if (!this._readableState.endEmitted && !websocket._closeFrameReceived && !websocket._receiver._writableState.errorEmitted && (chunk = websocket._socket.read()) !== null) { + websocket._receiver.write(chunk); + } + websocket._receiver.end(); + this[kWebSocket] = void 0; + clearTimeout(websocket._closeTimer); + if (websocket._receiver._writableState.finished || websocket._receiver._writableState.errorEmitted) { + websocket.emitClose(); + } else { + websocket._receiver.on("error", receiverOnFinish); + websocket._receiver.on("finish", receiverOnFinish); + } + } + function socketOnData(chunk) { + if (!this[kWebSocket]._receiver.write(chunk)) { + this.pause(); + } + } + function socketOnEnd() { + const websocket = this[kWebSocket]; + websocket._readyState = WebSocket.CLOSING; + websocket._receiver.end(); + this.end(); + } + function socketOnError() { + const websocket = this[kWebSocket]; + this.removeListener("error", socketOnError); + this.on("error", NOOP); + if (websocket) { + websocket._readyState = WebSocket.CLOSING; + this.destroy(); + } + } + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/stream.js +var require_stream = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/stream.js"(exports2, module2) { + "use strict"; + var WebSocket = require_websocket2(); + var { Duplex } = require("stream"); + function emitClose(stream) { + stream.emit("close"); + } + function duplexOnEnd() { + if (!this.destroyed && this._writableState.finished) { + this.destroy(); + } + } + function duplexOnError(err) { + this.removeListener("error", duplexOnError); + this.destroy(); + if (this.listenerCount("error") === 0) { + this.emit("error", err); + } + } + function createWebSocketStream(ws, options) { + let terminateOnDestroy = true; + const duplex = new Duplex({ + ...options, + autoDestroy: false, + emitClose: false, + objectMode: false, + writableObjectMode: false + }); + ws.on("message", function message(msg, isBinary) { + const data = !isBinary && duplex._readableState.objectMode ? msg.toString() : msg; + if (!duplex.push(data)) ws.pause(); + }); + ws.once("error", function error(err) { + if (duplex.destroyed) return; + terminateOnDestroy = false; + duplex.destroy(err); + }); + ws.once("close", function close() { + if (duplex.destroyed) return; + duplex.push(null); + }); + duplex._destroy = function(err, callback) { + if (ws.readyState === ws.CLOSED) { + callback(err); + process.nextTick(emitClose, duplex); + return; + } + let called = false; + ws.once("error", function error(err2) { + called = true; + callback(err2); + }); + ws.once("close", function close() { + if (!called) callback(err); + process.nextTick(emitClose, duplex); + }); + if (terminateOnDestroy) ws.terminate(); + }; + duplex._final = function(callback) { + if (ws.readyState === ws.CONNECTING) { + ws.once("open", function open() { + duplex._final(callback); + }); + return; + } + if (ws._socket === null) return; + if (ws._socket._writableState.finished) { + callback(); + if (duplex._readableState.endEmitted) duplex.destroy(); + } else { + ws._socket.once("finish", function finish() { + callback(); + }); + ws.close(); + } + }; + duplex._read = function() { + if (ws.isPaused) ws.resume(); + }; + duplex._write = function(chunk, encoding, callback) { + if (ws.readyState === ws.CONNECTING) { + ws.once("open", function open() { + duplex._write(chunk, encoding, callback); + }); + return; + } + ws.send(chunk, callback); + }; + duplex.on("end", duplexOnEnd); + duplex.on("error", duplexOnError); + return duplex; + } + module2.exports = createWebSocketStream; + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/subprotocol.js +var require_subprotocol = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/subprotocol.js"(exports2, module2) { + "use strict"; + var { tokenChars } = require_validation(); + function parse2(header) { + const protocols = /* @__PURE__ */ new Set(); + let start = -1; + let end = -1; + let i = 0; + for (i; i < header.length; i++) { + const code = header.charCodeAt(i); + if (end === -1 && tokenChars[code] === 1) { + if (start === -1) start = i; + } else if (i !== 0 && (code === 32 || code === 9)) { + if (end === -1 && start !== -1) end = i; + } else if (code === 44) { + if (start === -1) { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + if (end === -1) end = i; + const protocol2 = header.slice(start, end); + if (protocols.has(protocol2)) { + throw new SyntaxError(`The "${protocol2}" subprotocol is duplicated`); + } + protocols.add(protocol2); + start = end = -1; + } else { + throw new SyntaxError(`Unexpected character at index ${i}`); + } + } + if (start === -1 || end !== -1) { + throw new SyntaxError("Unexpected end of input"); + } + const protocol = header.slice(start, i); + if (protocols.has(protocol)) { + throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`); + } + protocols.add(protocol); + return protocols; + } + module2.exports = { parse: parse2 }; + } +}); + +// node_modules/rpc-websockets/node_modules/ws/lib/websocket-server.js +var require_websocket_server = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/lib/websocket-server.js"(exports2, module2) { + "use strict"; + var EventEmitter = require("events"); + var http = require("http"); + var { Duplex } = require("stream"); + var { createHash } = require("crypto"); + var extension = require_extension(); + var PerMessageDeflate = require_permessage_deflate(); + var subprotocol = require_subprotocol(); + var WebSocket = require_websocket2(); + var { GUID, kWebSocket } = require_constants6(); + var keyRegex = /^[+/0-9A-Za-z]{22}==$/; + var RUNNING = 0; + var CLOSING = 1; + var CLOSED = 2; + var WebSocketServer = class extends EventEmitter { + /** + * Create a `WebSocketServer` instance. + * + * @param {Object} options Configuration options + * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether + * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted + * multiple times in the same tick + * @param {Boolean} [options.autoPong=true] Specifies whether or not to + * automatically send a pong in response to a ping + * @param {Number} [options.backlog=511] The maximum length of the queue of + * pending connections + * @param {Boolean} [options.clientTracking=true] Specifies whether or not to + * track clients + * @param {Function} [options.handleProtocols] A hook to handle protocols + * @param {String} [options.host] The hostname where to bind the server + * @param {Number} [options.maxPayload=104857600] The maximum allowed message + * size + * @param {Boolean} [options.noServer=false] Enable no server mode + * @param {String} [options.path] Accept only connections matching this path + * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable + * permessage-deflate + * @param {Number} [options.port] The port where to bind the server + * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S + * server to use + * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or + * not to skip UTF-8 validation for text and close messages + * @param {Function} [options.verifyClient] A hook to reject connections + * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket` + * class to use. It must be the `WebSocket` class or class that extends it + * @param {Function} [callback] A listener for the `listening` event + */ + constructor(options, callback) { + super(); + options = { + allowSynchronousEvents: true, + autoPong: true, + maxPayload: 100 * 1024 * 1024, + skipUTF8Validation: false, + perMessageDeflate: false, + handleProtocols: null, + clientTracking: true, + verifyClient: null, + noServer: false, + backlog: null, + // use default (511 as implemented in net.js) + server: null, + host: null, + path: null, + port: null, + WebSocket, + ...options + }; + if (options.port == null && !options.server && !options.noServer || options.port != null && (options.server || options.noServer) || options.server && options.noServer) { + throw new TypeError( + 'One and only one of the "port", "server", or "noServer" options must be specified' + ); + } + if (options.port != null) { + this._server = http.createServer((req, res) => { + const body = http.STATUS_CODES[426]; + res.writeHead(426, { + "Content-Length": body.length, + "Content-Type": "text/plain" + }); + res.end(body); + }); + this._server.listen( + options.port, + options.host, + options.backlog, + callback + ); + } else if (options.server) { + this._server = options.server; + } + if (this._server) { + const emitConnection = this.emit.bind(this, "connection"); + this._removeListeners = addListeners(this._server, { + listening: this.emit.bind(this, "listening"), + error: this.emit.bind(this, "error"), + upgrade: (req, socket, head) => { + this.handleUpgrade(req, socket, head, emitConnection); + } + }); + } + if (options.perMessageDeflate === true) options.perMessageDeflate = {}; + if (options.clientTracking) { + this.clients = /* @__PURE__ */ new Set(); + this._shouldEmitClose = false; + } + this.options = options; + this._state = RUNNING; + } + /** + * Returns the bound address, the address family name, and port of the server + * as reported by the operating system if listening on an IP socket. + * If the server is listening on a pipe or UNIX domain socket, the name is + * returned as a string. + * + * @return {(Object|String|null)} The address of the server + * @public + */ + address() { + if (this.options.noServer) { + throw new Error('The server is operating in "noServer" mode'); + } + if (!this._server) return null; + return this._server.address(); + } + /** + * Stop the server from accepting new connections and emit the `'close'` event + * when all existing connections are closed. + * + * @param {Function} [cb] A one-time listener for the `'close'` event + * @public + */ + close(cb) { + if (this._state === CLOSED) { + if (cb) { + this.once("close", () => { + cb(new Error("The server is not running")); + }); + } + process.nextTick(emitClose, this); + return; + } + if (cb) this.once("close", cb); + if (this._state === CLOSING) return; + this._state = CLOSING; + if (this.options.noServer || this.options.server) { + if (this._server) { + this._removeListeners(); + this._removeListeners = this._server = null; + } + if (this.clients) { + if (!this.clients.size) { + process.nextTick(emitClose, this); + } else { + this._shouldEmitClose = true; + } + } else { + process.nextTick(emitClose, this); + } + } else { + const server = this._server; + this._removeListeners(); + this._removeListeners = this._server = null; + server.close(() => { + emitClose(this); + }); + } + } + /** + * See if a given request should be handled by this server instance. + * + * @param {http.IncomingMessage} req Request object to inspect + * @return {Boolean} `true` if the request is valid, else `false` + * @public + */ + shouldHandle(req) { + if (this.options.path) { + const index = req.url.indexOf("?"); + const pathname = index !== -1 ? req.url.slice(0, index) : req.url; + if (pathname !== this.options.path) return false; + } + return true; + } + /** + * Handle a HTTP Upgrade request. + * + * @param {http.IncomingMessage} req The request object + * @param {Duplex} socket The network socket between the server and client + * @param {Buffer} head The first packet of the upgraded stream + * @param {Function} cb Callback + * @public + */ + handleUpgrade(req, socket, head, cb) { + socket.on("error", socketOnError); + const key = req.headers["sec-websocket-key"]; + const upgrade = req.headers.upgrade; + const version2 = +req.headers["sec-websocket-version"]; + if (req.method !== "GET") { + const message = "Invalid HTTP method"; + abortHandshakeOrEmitwsClientError(this, req, socket, 405, message); + return; + } + if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") { + const message = "Invalid Upgrade header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + if (key === void 0 || !keyRegex.test(key)) { + const message = "Missing or invalid Sec-WebSocket-Key header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + if (version2 !== 8 && version2 !== 13) { + const message = "Missing or invalid Sec-WebSocket-Version header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + if (!this.shouldHandle(req)) { + abortHandshake(socket, 400); + return; + } + const secWebSocketProtocol = req.headers["sec-websocket-protocol"]; + let protocols = /* @__PURE__ */ new Set(); + if (secWebSocketProtocol !== void 0) { + try { + protocols = subprotocol.parse(secWebSocketProtocol); + } catch (err) { + const message = "Invalid Sec-WebSocket-Protocol header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + } + const secWebSocketExtensions = req.headers["sec-websocket-extensions"]; + const extensions = {}; + if (this.options.perMessageDeflate && secWebSocketExtensions !== void 0) { + const perMessageDeflate = new PerMessageDeflate( + this.options.perMessageDeflate, + true, + this.options.maxPayload + ); + try { + const offers = extension.parse(secWebSocketExtensions); + if (offers[PerMessageDeflate.extensionName]) { + perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]); + extensions[PerMessageDeflate.extensionName] = perMessageDeflate; + } + } catch (err) { + const message = "Invalid or unacceptable Sec-WebSocket-Extensions header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + } + if (this.options.verifyClient) { + const info2 = { + origin: req.headers[`${version2 === 8 ? "sec-websocket-origin" : "origin"}`], + secure: !!(req.socket.authorized || req.socket.encrypted), + req + }; + if (this.options.verifyClient.length === 2) { + this.options.verifyClient(info2, (verified, code, message, headers) => { + if (!verified) { + return abortHandshake(socket, code || 401, message, headers); + } + this.completeUpgrade( + extensions, + key, + protocols, + req, + socket, + head, + cb + ); + }); + return; + } + if (!this.options.verifyClient(info2)) return abortHandshake(socket, 401); + } + this.completeUpgrade(extensions, key, protocols, req, socket, head, cb); + } + /** + * Upgrade the connection to WebSocket. + * + * @param {Object} extensions The accepted extensions + * @param {String} key The value of the `Sec-WebSocket-Key` header + * @param {Set} protocols The subprotocols + * @param {http.IncomingMessage} req The request object + * @param {Duplex} socket The network socket between the server and client + * @param {Buffer} head The first packet of the upgraded stream + * @param {Function} cb Callback + * @throws {Error} If called more than once with the same socket + * @private + */ + completeUpgrade(extensions, key, protocols, req, socket, head, cb) { + if (!socket.readable || !socket.writable) return socket.destroy(); + if (socket[kWebSocket]) { + throw new Error( + "server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration" + ); + } + if (this._state > RUNNING) return abortHandshake(socket, 503); + const digest = createHash("sha1").update(key + GUID).digest("base64"); + const headers = [ + "HTTP/1.1 101 Switching Protocols", + "Upgrade: websocket", + "Connection: Upgrade", + `Sec-WebSocket-Accept: ${digest}` + ]; + const ws = new this.options.WebSocket(null, void 0, this.options); + if (protocols.size) { + const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value; + if (protocol) { + headers.push(`Sec-WebSocket-Protocol: ${protocol}`); + ws._protocol = protocol; + } + } + if (extensions[PerMessageDeflate.extensionName]) { + const params = extensions[PerMessageDeflate.extensionName].params; + const value = extension.format({ + [PerMessageDeflate.extensionName]: [params] + }); + headers.push(`Sec-WebSocket-Extensions: ${value}`); + ws._extensions = extensions; + } + this.emit("headers", headers, req); + socket.write(headers.concat("\r\n").join("\r\n")); + socket.removeListener("error", socketOnError); + ws.setSocket(socket, head, { + allowSynchronousEvents: this.options.allowSynchronousEvents, + maxPayload: this.options.maxPayload, + skipUTF8Validation: this.options.skipUTF8Validation + }); + if (this.clients) { + this.clients.add(ws); + ws.on("close", () => { + this.clients.delete(ws); + if (this._shouldEmitClose && !this.clients.size) { + process.nextTick(emitClose, this); + } + }); + } + cb(ws, req); + } + }; + module2.exports = WebSocketServer; + function addListeners(server, map) { + for (const event of Object.keys(map)) server.on(event, map[event]); + return function removeListeners() { + for (const event of Object.keys(map)) { + server.removeListener(event, map[event]); + } + }; + } + function emitClose(server) { + server._state = CLOSED; + server.emit("close"); + } + function socketOnError() { + this.destroy(); + } + function abortHandshake(socket, code, message, headers) { + message = message || http.STATUS_CODES[code]; + headers = { + Connection: "close", + "Content-Type": "text/html", + "Content-Length": Buffer.byteLength(message), + ...headers + }; + socket.once("finish", socket.destroy); + socket.end( + `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r +` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message + ); + } + function abortHandshakeOrEmitwsClientError(server, req, socket, code, message) { + if (server.listenerCount("wsClientError")) { + const err = new Error(message); + Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError); + server.emit("wsClientError", err, socket, req); + } else { + abortHandshake(socket, code, message); + } + } + } +}); + +// node_modules/rpc-websockets/node_modules/ws/index.js +var require_ws = __commonJS({ + "node_modules/rpc-websockets/node_modules/ws/index.js"(exports2, module2) { + "use strict"; + var WebSocket = require_websocket2(); + WebSocket.createWebSocketStream = require_stream(); + WebSocket.Server = require_websocket_server(); + WebSocket.Receiver = require_receiver2(); + WebSocket.Sender = require_sender(); + WebSocket.WebSocket = WebSocket; + WebSocket.WebSocketServer = WebSocket.Server; + module2.exports = WebSocket; + } +}); + +// node_modules/rpc-websockets/node_modules/eventemitter3/index.js +var require_eventemitter3 = __commonJS({ + "node_modules/rpc-websockets/node_modules/eventemitter3/index.js"(exports2, module2) { + "use strict"; + var has = Object.prototype.hasOwnProperty; + var prefix = "~"; + function Events() { + } + if (Object.create) { + Events.prototype = /* @__PURE__ */ Object.create(null); + if (!new Events().__proto__) prefix = false; + } + function EE(fn, context, once) { + this.fn = fn; + this.context = context; + this.once = once || false; + } + function addListener(emitter, event, fn, context, once) { + if (typeof fn !== "function") { + throw new TypeError("The listener must be a function"); + } + var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event; + if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++; + else if (!emitter._events[evt].fn) emitter._events[evt].push(listener); + else emitter._events[evt] = [emitter._events[evt], listener]; + return emitter; + } + function clearEvent(emitter, evt) { + if (--emitter._eventsCount === 0) emitter._events = new Events(); + else delete emitter._events[evt]; + } + function EventEmitter() { + this._events = new Events(); + this._eventsCount = 0; + } + EventEmitter.prototype.eventNames = function eventNames() { + var names = [], events, name; + if (this._eventsCount === 0) return names; + for (name in events = this._events) { + if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); + } + if (Object.getOwnPropertySymbols) { + return names.concat(Object.getOwnPropertySymbols(events)); + } + return names; + }; + EventEmitter.prototype.listeners = function listeners(event) { + var evt = prefix ? prefix + event : event, handlers = this._events[evt]; + if (!handlers) return []; + if (handlers.fn) return [handlers.fn]; + for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) { + ee[i] = handlers[i].fn; + } + return ee; + }; + EventEmitter.prototype.listenerCount = function listenerCount(event) { + var evt = prefix ? prefix + event : event, listeners = this._events[evt]; + if (!listeners) return 0; + if (listeners.fn) return 1; + return listeners.length; + }; + EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { + var evt = prefix ? prefix + event : event; + if (!this._events[evt]) return false; + var listeners = this._events[evt], len = arguments.length, args, i; + if (listeners.fn) { + if (listeners.once) this.removeListener(event, listeners.fn, void 0, true); + switch (len) { + case 1: + return listeners.fn.call(listeners.context), true; + case 2: + return listeners.fn.call(listeners.context, a1), true; + case 3: + return listeners.fn.call(listeners.context, a1, a2), true; + case 4: + return listeners.fn.call(listeners.context, a1, a2, a3), true; + case 5: + return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; + case 6: + return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; + } + for (i = 1, args = new Array(len - 1); i < len; i++) { + args[i - 1] = arguments[i]; + } + listeners.fn.apply(listeners.context, args); + } else { + var length = listeners.length, j; + for (i = 0; i < length; i++) { + if (listeners[i].once) this.removeListener(event, listeners[i].fn, void 0, true); + switch (len) { + case 1: + listeners[i].fn.call(listeners[i].context); + break; + case 2: + listeners[i].fn.call(listeners[i].context, a1); + break; + case 3: + listeners[i].fn.call(listeners[i].context, a1, a2); + break; + case 4: + listeners[i].fn.call(listeners[i].context, a1, a2, a3); + break; + default: + if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) { + args[j - 1] = arguments[j]; + } + listeners[i].fn.apply(listeners[i].context, args); + } + } + } + return true; + }; + EventEmitter.prototype.on = function on(event, fn, context) { + return addListener(this, event, fn, context, false); + }; + EventEmitter.prototype.once = function once(event, fn, context) { + return addListener(this, event, fn, context, true); + }; + EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { + var evt = prefix ? prefix + event : event; + if (!this._events[evt]) return this; + if (!fn) { + clearEvent(this, evt); + return this; + } + var listeners = this._events[evt]; + if (listeners.fn) { + if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) { + clearEvent(this, evt); + } + } else { + for (var i = 0, events = [], length = listeners.length; i < length; i++) { + if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) { + events.push(listeners[i]); + } + } + if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; + else clearEvent(this, evt); + } + return this; + }; + EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { + var evt; + if (event) { + evt = prefix ? prefix + event : event; + if (this._events[evt]) clearEvent(this, evt); + } else { + this._events = new Events(); + this._eventsCount = 0; + } + return this; + }; + EventEmitter.prototype.off = EventEmitter.prototype.removeListener; + EventEmitter.prototype.addListener = EventEmitter.prototype.on; + EventEmitter.prefixed = prefix; + EventEmitter.EventEmitter = EventEmitter; + if ("undefined" !== typeof module2) { + module2.exports = EventEmitter; + } + } +}); + +// node_modules/rpc-websockets/dist/index.cjs +var require_dist2 = __commonJS({ + "node_modules/rpc-websockets/dist/index.cjs"(exports2) { + "use strict"; + var WebSocketImpl = require_ws(); + var eventemitter3 = require_eventemitter3(); + var url = require("url"); + var uuid = (init_esm_node(), __toCommonJS(esm_node_exports)); + function _interopDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + var WebSocketImpl__default = /* @__PURE__ */ _interopDefault(WebSocketImpl); + var url__default = /* @__PURE__ */ _interopDefault(url); + function WebSocket(address, options) { + return new WebSocketImpl__default.default(address, options); + } + var DefaultDataPack = class { + encode(value) { + return JSON.stringify(value); + } + decode(value) { + return JSON.parse(value); + } + }; + var CommonClient = class extends eventemitter3.EventEmitter { + address; + rpc_id; + queue; + options; + autoconnect; + ready; + reconnect; + reconnect_timer_id; + reconnect_interval; + max_reconnects; + rest_options; + current_reconnects; + generate_request_id; + socket; + webSocketFactory; + dataPack; + /** + * Instantiate a Client class. + * @constructor + * @param {webSocketFactory} webSocketFactory - factory method for WebSocket + * @param {String} address - url to a websocket server + * @param {Object} options - ws options object with reconnect parameters + * @param {Function} generate_request_id - custom generation request Id + * @param {DataPack} dataPack - data pack contains encoder and decoder + * @return {CommonClient} + */ + constructor(webSocketFactory, address = "ws://localhost:8080", { + autoconnect = true, + reconnect = true, + reconnect_interval = 1e3, + max_reconnects = 5, + ...rest_options + } = {}, generate_request_id, dataPack) { + super(); + this.webSocketFactory = webSocketFactory; + this.queue = {}; + this.rpc_id = 0; + this.address = address; + this.autoconnect = autoconnect; + this.ready = false; + this.reconnect = reconnect; + this.reconnect_timer_id = void 0; + this.reconnect_interval = reconnect_interval; + this.max_reconnects = max_reconnects; + this.rest_options = rest_options; + this.current_reconnects = 0; + this.generate_request_id = generate_request_id || (() => typeof this.rpc_id === "number" ? ++this.rpc_id : Number(this.rpc_id) + 1); + if (!dataPack) this.dataPack = new DefaultDataPack(); + else this.dataPack = dataPack; + if (this.autoconnect) + this._connect(this.address, { + autoconnect: this.autoconnect, + reconnect: this.reconnect, + reconnect_interval: this.reconnect_interval, + max_reconnects: this.max_reconnects, + ...this.rest_options + }); + } + /** + * Connects to a defined server if not connected already. + * @method + * @return {Undefined} + */ + connect() { + if (this.socket) return; + this._connect(this.address, { + autoconnect: this.autoconnect, + reconnect: this.reconnect, + reconnect_interval: this.reconnect_interval, + max_reconnects: this.max_reconnects, + ...this.rest_options + }); + } + /** + * Calls a registered RPC method on server. + * @method + * @param {String} method - RPC method name + * @param {Object|Array} params - optional method parameters + * @param {Number} timeout - RPC reply timeout value + * @param {Object} ws_opts - options passed to ws + * @return {Promise} + */ + call(method2, params, timeout, ws_opts) { + if (!ws_opts && "object" === typeof timeout) { + ws_opts = timeout; + timeout = null; + } + return new Promise((resolve, reject) => { + if (!this.ready) return reject(new Error("socket not ready")); + const rpc_id = this.generate_request_id(method2, params); + const message = { + jsonrpc: "2.0", + method: method2, + params: params || void 0, + id: rpc_id + }; + this.socket.send(this.dataPack.encode(message), ws_opts, (error) => { + if (error) return reject(error); + this.queue[rpc_id] = { promise: [resolve, reject] }; + if (timeout) { + this.queue[rpc_id].timeout = setTimeout(() => { + delete this.queue[rpc_id]; + reject(new Error("reply timeout")); + }, timeout); + } + }); + }); + } + /** + * Logins with the other side of the connection. + * @method + * @param {Object} params - Login credentials object + * @return {Promise} + */ + async login(params) { + const resp = await this.call("rpc.login", params); + if (!resp) throw new Error("authentication failed"); + return resp; + } + /** + * Fetches a list of client's methods registered on server. + * @method + * @return {Array} + */ + async listMethods() { + return await this.call("__listMethods"); + } + /** + * Sends a JSON-RPC 2.0 notification to server. + * @method + * @param {String} method - RPC method name + * @param {Object} params - optional method parameters + * @return {Promise} + */ + notify(method2, params) { + return new Promise((resolve, reject) => { + if (!this.ready) return reject(new Error("socket not ready")); + const message = { + jsonrpc: "2.0", + method: method2, + params + }; + this.socket.send(this.dataPack.encode(message), (error) => { + if (error) return reject(error); + resolve(); + }); + }); + } + /** + * Subscribes for a defined event. + * @method + * @param {String|Array} event - event name + * @return {Undefined} + * @throws {Error} + */ + async subscribe(event) { + if (typeof event === "string") event = [event]; + const result = await this.call("rpc.on", event); + if (typeof event === "string" && result[event] !== "ok") + throw new Error( + "Failed subscribing to an event '" + event + "' with: " + result[event] + ); + return result; + } + /** + * Unsubscribes from a defined event. + * @method + * @param {String|Array} event - event name + * @return {Undefined} + * @throws {Error} + */ + async unsubscribe(event) { + if (typeof event === "string") event = [event]; + const result = await this.call("rpc.off", event); + if (typeof event === "string" && result[event] !== "ok") + throw new Error("Failed unsubscribing from an event with: " + result); + return result; + } + /** + * Closes a WebSocket connection gracefully. + * @method + * @param {Number} code - socket close code + * @param {String} data - optional data to be sent before closing + * @return {Undefined} + */ + close(code, data) { + this.socket.close(code || 1e3, data); + } + /** + * Enable / disable automatic reconnection. + * @method + * @param {Boolean} reconnect - enable / disable reconnection + * @return {Undefined} + */ + setAutoReconnect(reconnect) { + this.reconnect = reconnect; + } + /** + * Set the interval between reconnection attempts. + * @method + * @param {Number} interval - reconnection interval in milliseconds + * @return {Undefined} + */ + setReconnectInterval(interval) { + this.reconnect_interval = interval; + } + /** + * Set the maximum number of reconnection attempts. + * @method + * @param {Number} max_reconnects - maximum reconnection attempts + * @return {Undefined} + */ + setMaxReconnects(max_reconnects) { + this.max_reconnects = max_reconnects; + } + /** + * Connection/Message handler. + * @method + * @private + * @param {String} address - WebSocket API address + * @param {Object} options - ws options object + * @return {Undefined} + */ + _connect(address, options) { + clearTimeout(this.reconnect_timer_id); + this.socket = this.webSocketFactory(address, options); + this.socket.addEventListener("open", () => { + this.ready = true; + this.emit("open"); + this.current_reconnects = 0; + }); + this.socket.addEventListener("message", ({ data: message }) => { + if (message instanceof ArrayBuffer) + message = Buffer.from(message).toString(); + try { + message = this.dataPack.decode(message); + } catch (error) { + return; + } + if (message.notification && this.listeners(message.notification).length) { + if (!Object.keys(message.params).length) + return this.emit(message.notification); + const args = [message.notification]; + if (message.params.constructor === Object) args.push(message.params); + else + for (let i = 0; i < message.params.length; i++) + args.push(message.params[i]); + return Promise.resolve().then(() => { + this.emit.apply(this, args); + }); + } + if (!this.queue[message.id]) { + if (message.method) { + return Promise.resolve().then(() => { + this.emit(message.method, message?.params); + }); + } + return; + } + if ("error" in message === "result" in message) + this.queue[message.id].promise[1]( + new Error( + 'Server response malformed. Response must include either "result" or "error", but not both.' + ) + ); + if (this.queue[message.id].timeout) + clearTimeout(this.queue[message.id].timeout); + if (message.error) this.queue[message.id].promise[1](message.error); + else this.queue[message.id].promise[0](message.result); + delete this.queue[message.id]; + }); + this.socket.addEventListener("error", (error) => this.emit("error", error)); + this.socket.addEventListener("close", ({ code, reason }) => { + if (this.ready) + setTimeout(() => this.emit("close", code, reason), 0); + this.ready = false; + this.socket = void 0; + if (code === 1e3) return; + this.current_reconnects++; + if (this.reconnect && (this.max_reconnects > this.current_reconnects || this.max_reconnects === 0)) + this.reconnect_timer_id = setTimeout( + () => this._connect(address, options), + this.reconnect_interval + ); + }); + } + }; + var Server = class extends eventemitter3.EventEmitter { + namespaces; + dataPack; + wss; + /** + * Instantiate a Server class. + * @constructor + * @param {Object} options - ws constructor's parameters with rpc + * @param {DataPack} dataPack - data pack contains encoder and decoder + * @return {Server} - returns a new Server instance + */ + constructor(options, dataPack) { + super(); + this.namespaces = {}; + if (!dataPack) this.dataPack = new DefaultDataPack(); + else this.dataPack = dataPack; + this.wss = new WebSocketImpl.WebSocketServer(options); + this.wss.on("listening", () => this.emit("listening")); + this.wss.on("connection", (socket, request) => { + const u = url__default.default.parse(request.url, true); + const ns = u.pathname; + if (u.query.socket_id) socket._id = u.query.socket_id; + else socket._id = uuid.v1(); + socket["_authenticated"] = false; + socket.on("error", (error) => this.emit("socket-error", socket, error)); + socket.on("close", () => { + this.namespaces[ns].clients.delete(socket._id); + for (const event of Object.keys(this.namespaces[ns].events)) { + const index = this.namespaces[ns].events[event].sockets.indexOf( + socket._id + ); + if (index >= 0) + this.namespaces[ns].events[event].sockets.splice(index, 1); + } + this.emit("disconnection", socket); + }); + if (!this.namespaces[ns]) this._generateNamespace(ns); + this.namespaces[ns].clients.set(socket._id, socket); + this.emit("connection", socket, request); + return this._handleRPC(socket, ns); + }); + this.wss.on("error", (error) => this.emit("error", error)); + } + /** + * Registers an RPC method. + * @method + * @param {String} name - method name + * @param {Function} fn - a callee function + * @param {String} ns - namespace identifier + * @throws {TypeError} + * @return {Object} - returns an IMethod object + */ + register(name, fn, ns = "/") { + if (!this.namespaces[ns]) this._generateNamespace(ns); + this.namespaces[ns].rpc_methods[name] = { + fn, + protected: false + }; + return { + protected: () => this._makeProtectedMethod(name, ns), + public: () => this._makePublicMethod(name, ns) + }; + } + /** + * Sets an auth method. + * @method + * @param {Function} fn - an arbitrary auth method + * @param {String} ns - namespace identifier + * @throws {TypeError} + * @return {Undefined} + */ + setAuth(fn, ns = "/") { + this.register("rpc.login", fn, ns); + } + /** + * Marks an RPC method as protected. + * @method + * @param {String} name - method name + * @param {String} ns - namespace identifier + * @return {Undefined} + */ + _makeProtectedMethod(name, ns = "/") { + this.namespaces[ns].rpc_methods[name].protected = true; + } + /** + * Marks an RPC method as public. + * @method + * @param {String} name - method name + * @param {String} ns - namespace identifier + * @return {Undefined} + */ + _makePublicMethod(name, ns = "/") { + this.namespaces[ns].rpc_methods[name].protected = false; + } + /** + * Marks an event as protected. + * @method + * @param {String} name - event name + * @param {String} ns - namespace identifier + * @return {Undefined} + */ + _makeProtectedEvent(name, ns = "/") { + this.namespaces[ns].events[name].protected = true; + } + /** + * Marks an event as public. + * @method + * @param {String} name - event name + * @param {String} ns - namespace identifier + * @return {Undefined} + */ + _makePublicEvent(name, ns = "/") { + this.namespaces[ns].events[name].protected = false; + } + /** + * Removes a namespace and closes all connections + * @method + * @param {String} ns - namespace identifier + * @throws {TypeError} + * @return {Undefined} + */ + closeNamespace(ns) { + const namespace = this.namespaces[ns]; + if (namespace) { + delete namespace.rpc_methods; + delete namespace.events; + for (const socket of namespace.clients.values()) socket.close(); + delete this.namespaces[ns]; + } + } + /** + * Creates a new event that can be emitted to clients. + * @method + * @param {String} name - event name + * @param {String} ns - namespace identifier + * @throws {TypeError} + * @return {Object} - returns an IEvent object + */ + event(name, ns = "/") { + if (!this.namespaces[ns]) this._generateNamespace(ns); + else { + const index = this.namespaces[ns].events[name]; + if (index !== void 0) + throw new Error(`Already registered event ${ns}${name}`); + } + this.namespaces[ns].events[name] = { + sockets: [], + protected: false + }; + this.on(name, (...params) => { + if (params.length === 1 && params[0] instanceof Object) + params = params[0]; + for (const socket_id of this.namespaces[ns].events[name].sockets) { + const socket = this.namespaces[ns].clients.get(socket_id); + if (!socket) continue; + socket.send( + this.dataPack.encode({ + notification: name, + params + }) + ); + } + }); + return { + protected: () => this._makeProtectedEvent(name, ns), + public: () => this._makePublicEvent(name, ns) + }; + } + /** + * Returns a requested namespace object + * @method + * @param {String} name - namespace identifier + * @throws {TypeError} + * @return {Object} - namespace object + */ + of(name) { + if (!this.namespaces[name]) this._generateNamespace(name); + const self2 = this; + return { + // self.register convenience method + register(fn_name, fn) { + if (arguments.length !== 2) + throw new Error("must provide exactly two arguments"); + if (typeof fn_name !== "string") + throw new Error("name must be a string"); + if (typeof fn !== "function") + throw new Error("handler must be a function"); + return self2.register(fn_name, fn, name); + }, + // self.event convenience method + event(ev_name) { + if (arguments.length !== 1) + throw new Error("must provide exactly one argument"); + if (typeof ev_name !== "string") + throw new Error("name must be a string"); + return self2.event(ev_name, name); + }, + // self.eventList convenience method + get eventList() { + return Object.keys(self2.namespaces[name].events); + }, + /** + * Emits a specified event to this namespace. + * @inner + * @method + * @param {String} event - event name + * @param {Array} params - event parameters + * @return {Undefined} + */ + emit(event, ...params) { + const socket_ids = [...self2.namespaces[name].clients.keys()]; + for (let i = 0, id; id = socket_ids[i]; ++i) { + self2.namespaces[name].clients.get(id).send( + self2.dataPack.encode({ + notification: event, + params: params || [] + }) + ); + } + }, + /** + * Returns a name of this namespace. + * @inner + * @method + * @kind constant + * @return {String} + */ + get name() { + return name; + }, + /** + * Returns a hash of websocket objects connected to this namespace. + * @inner + * @method + * @return {Object} + */ + connected() { + const socket_ids = [...self2.namespaces[name].clients.keys()]; + return socket_ids.reduce( + (acc, curr) => ({ + ...acc, + [curr]: self2.namespaces[name].clients.get(curr) + }), + {} + ); + }, + /** + * Returns a list of client unique identifiers connected to this namespace. + * @inner + * @method + * @return {Array} + */ + clients() { + return self2.namespaces[name]; + } + }; + } + /** + * Lists all created events in a given namespace. Defaults to "/". + * @method + * @param {String} ns - namespaces identifier + * @readonly + * @return {Array} - returns a list of created events + */ + eventList(ns = "/") { + if (!this.namespaces[ns]) return []; + return Object.keys(this.namespaces[ns].events); + } + /** + * Creates a JSON-RPC 2.0 compliant error + * @method + * @param {Number} code - indicates the error type that occurred + * @param {String} message - provides a short description of the error + * @param {String|Object} data - details containing additional information about the error + * @return {Object} + */ + createError(code, message, data) { + return { + code, + message, + data: data || null + }; + } + /** + * Closes the server and terminates all clients. + * @method + * @return {Promise} + */ + close() { + return new Promise((resolve, reject) => { + try { + this.wss.close(); + this.emit("close"); + resolve(); + } catch (error) { + reject(error); + } + }); + } + /** + * Handles all WebSocket JSON RPC 2.0 requests. + * @private + * @param {Object} socket - ws socket instance + * @param {String} ns - namespaces identifier + * @return {Undefined} + */ + _handleRPC(socket, ns = "/") { + socket.on("message", async (data) => { + const msg_options = {}; + if (data instanceof ArrayBuffer) { + msg_options.binary = true; + data = Buffer.from(data).toString(); + } + if (socket.readyState !== 1) return; + let parsedData; + try { + parsedData = this.dataPack.decode(data); + } catch (error) { + return socket.send( + this.dataPack.encode({ + jsonrpc: "2.0", + error: createError(-32700, error.toString()), + id: null + }), + msg_options + ); + } + if (Array.isArray(parsedData)) { + if (!parsedData.length) + return socket.send( + this.dataPack.encode({ + jsonrpc: "2.0", + error: createError(-32600, "Invalid array"), + id: null + }), + msg_options + ); + const responses = []; + for (const message of parsedData) { + const response2 = await this._runMethod(message, socket._id, ns); + if (!response2) continue; + responses.push(response2); + } + if (!responses.length) return; + return socket.send(this.dataPack.encode(responses), msg_options); + } + const response = await this._runMethod(parsedData, socket._id, ns); + if (!response) return; + return socket.send(this.dataPack.encode(response), msg_options); + }); + } + /** + * Runs a defined RPC method. + * @private + * @param {Object} message - a message received + * @param {Object} socket_id - user's socket id + * @param {String} ns - namespaces identifier + * @return {Object|undefined} + */ + async _runMethod(message, socket_id, ns = "/") { + if (typeof message !== "object" || message === null) + return { + jsonrpc: "2.0", + error: createError(-32600), + id: null + }; + if (message.jsonrpc !== "2.0") + return { + jsonrpc: "2.0", + error: createError(-32600, "Invalid JSON RPC version"), + id: message.id || null + }; + if (!message.method) + return { + jsonrpc: "2.0", + error: createError(-32602, "Method not specified"), + id: message.id || null + }; + if (typeof message.method !== "string") + return { + jsonrpc: "2.0", + error: createError(-32600, "Invalid method name"), + id: message.id || null + }; + if (message.params && typeof message.params === "string") + return { + jsonrpc: "2.0", + error: createError(-32600), + id: message.id || null + }; + if (message.method === "rpc.on") { + if (!message.params) + return { + jsonrpc: "2.0", + error: createError(-32e3), + id: message.id || null + }; + const results = {}; + const event_names = Object.keys(this.namespaces[ns].events); + for (const name of message.params) { + const index = event_names.indexOf(name); + const namespace = this.namespaces[ns]; + if (index === -1) { + results[name] = "provided event invalid"; + continue; + } + if (namespace.events[event_names[index]].protected === true && namespace.clients.get(socket_id)["_authenticated"] === false) { + return { + jsonrpc: "2.0", + error: createError(-32606), + id: message.id || null + }; + } + const socket_index = namespace.events[event_names[index]].sockets.indexOf(socket_id); + if (socket_index >= 0) { + results[name] = "socket has already been subscribed to event"; + continue; + } + namespace.events[event_names[index]].sockets.push(socket_id); + results[name] = "ok"; + } + return { + jsonrpc: "2.0", + result: results, + id: message.id || null + }; + } else if (message.method === "rpc.off") { + if (!message.params) + return { + jsonrpc: "2.0", + error: createError(-32e3), + id: message.id || null + }; + const results = {}; + for (const name of message.params) { + if (!this.namespaces[ns].events[name]) { + results[name] = "provided event invalid"; + continue; + } + const index = this.namespaces[ns].events[name].sockets.indexOf(socket_id); + if (index === -1) { + results[name] = "not subscribed"; + continue; + } + this.namespaces[ns].events[name].sockets.splice(index, 1); + results[name] = "ok"; + } + return { + jsonrpc: "2.0", + result: results, + id: message.id || null + }; + } else if (message.method === "rpc.login") { + if (!message.params) + return { + jsonrpc: "2.0", + error: createError(-32604), + id: message.id || null + }; + } + if (!this.namespaces[ns].rpc_methods[message.method]) { + return { + jsonrpc: "2.0", + error: createError(-32601), + id: message.id || null + }; + } + let response = null; + if (this.namespaces[ns].rpc_methods[message.method].protected === true && this.namespaces[ns].clients.get(socket_id)["_authenticated"] === false) { + return { + jsonrpc: "2.0", + error: createError(-32605), + id: message.id || null + }; + } + try { + response = await this.namespaces[ns].rpc_methods[message.method].fn( + message.params, + socket_id + ); + } catch (error) { + if (!message.id) return; + if (error instanceof Error) + return { + jsonrpc: "2.0", + error: { + code: -32e3, + message: error.name, + data: error.message + }, + id: message.id + }; + return { + jsonrpc: "2.0", + error, + id: message.id + }; + } + if (!message.id) return; + if (message.method === "rpc.login" && response === true) { + const s = this.namespaces[ns].clients.get(socket_id); + s["_authenticated"] = true; + this.namespaces[ns].clients.set(socket_id, s); + } + return { + jsonrpc: "2.0", + result: response, + id: message.id + }; + } + /** + * Generate a new namespace store. + * Also preregister some special namespace methods. + * @private + * @param {String} name - namespaces identifier + * @return {undefined} + */ + _generateNamespace(name) { + this.namespaces[name] = { + rpc_methods: { + __listMethods: { + fn: () => Object.keys(this.namespaces[name].rpc_methods), + protected: false + } + }, + clients: /* @__PURE__ */ new Map(), + events: {} + }; + } + }; + var RPC_ERRORS = /* @__PURE__ */ new Map([ + [-32e3, "Event not provided"], + [-32600, "Invalid Request"], + [-32601, "Method not found"], + [-32602, "Invalid params"], + [-32603, "Internal error"], + [-32604, "Params not found"], + [-32605, "Method forbidden"], + [-32606, "Event forbidden"], + [-32700, "Parse error"] + ]); + function createError(code, details) { + const error = { + code, + message: RPC_ERRORS.get(code) || "Internal Server Error" + }; + if (details) error["data"] = details; + return error; + } + var Client = class extends CommonClient { + constructor(address = "ws://localhost:8080", { + autoconnect = true, + reconnect = true, + reconnect_interval = 1e3, + max_reconnects = 5, + ...rest_options + } = {}, generate_request_id) { + super( + WebSocket, + address, + { + autoconnect, + reconnect, + reconnect_interval, + max_reconnects, + ...rest_options + }, + generate_request_id + ); + } + }; + exports2.Client = Client; + exports2.CommonClient = CommonClient; + exports2.DefaultDataPack = DefaultDataPack; + exports2.Server = Server; + exports2.WebSocket = WebSocket; + exports2.createError = createError; + } +}); + +// node_modules/@noble/hashes/sha3.js +var require_sha3 = __commonJS({ + "node_modules/@noble/hashes/sha3.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.shake256 = exports2.shake128 = exports2.keccak_512 = exports2.keccak_384 = exports2.keccak_256 = exports2.keccak_224 = exports2.sha3_512 = exports2.sha3_384 = exports2.sha3_256 = exports2.sha3_224 = exports2.Keccak = void 0; + exports2.keccakP = keccakP; + var _u64_ts_1 = require_u64(); + var utils_ts_1 = require_utils3(); + var _0n = BigInt(0); + var _1n = BigInt(1); + var _2n = BigInt(2); + var _7n = BigInt(7); + var _256n = BigInt(256); + var _0x71n = BigInt(113); + var SHA3_PI = []; + var SHA3_ROTL = []; + var _SHA3_IOTA = []; + for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) { + [x, y] = [y, (2 * x + 3 * y) % 5]; + SHA3_PI.push(2 * (5 * y + x)); + SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64); + let t = _0n; + for (let j = 0; j < 7; j++) { + R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n; + if (R & _2n) + t ^= _1n << (_1n << /* @__PURE__ */ BigInt(j)) - _1n; + } + _SHA3_IOTA.push(t); + } + var IOTAS = (0, _u64_ts_1.split)(_SHA3_IOTA, true); + var SHA3_IOTA_H = IOTAS[0]; + var SHA3_IOTA_L = IOTAS[1]; + var rotlH = (h, l, s) => s > 32 ? (0, _u64_ts_1.rotlBH)(h, l, s) : (0, _u64_ts_1.rotlSH)(h, l, s); + var rotlL = (h, l, s) => s > 32 ? (0, _u64_ts_1.rotlBL)(h, l, s) : (0, _u64_ts_1.rotlSL)(h, l, s); + function keccakP(s, rounds = 24) { + const B = new Uint32Array(5 * 2); + for (let round = 24 - rounds; round < 24; round++) { + for (let x = 0; x < 10; x++) + B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40]; + for (let x = 0; x < 10; x += 2) { + const idx1 = (x + 8) % 10; + const idx0 = (x + 2) % 10; + const B0 = B[idx0]; + const B1 = B[idx0 + 1]; + const Th = rotlH(B0, B1, 1) ^ B[idx1]; + const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1]; + for (let y = 0; y < 50; y += 10) { + s[x + y] ^= Th; + s[x + y + 1] ^= Tl; + } + } + let curH = s[2]; + let curL = s[3]; + for (let t = 0; t < 24; t++) { + const shift = SHA3_ROTL[t]; + const Th = rotlH(curH, curL, shift); + const Tl = rotlL(curH, curL, shift); + const PI = SHA3_PI[t]; + curH = s[PI]; + curL = s[PI + 1]; + s[PI] = Th; + s[PI + 1] = Tl; + } + for (let y = 0; y < 50; y += 10) { + for (let x = 0; x < 10; x++) + B[x] = s[y + x]; + for (let x = 0; x < 10; x++) + s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10]; + } + s[0] ^= SHA3_IOTA_H[round]; + s[1] ^= SHA3_IOTA_L[round]; + } + (0, utils_ts_1.clean)(B); + } + var Keccak = class _Keccak extends utils_ts_1.Hash { + // NOTE: we accept arguments in bytes instead of bits here. + constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) { + super(); + this.pos = 0; + this.posOut = 0; + this.finished = false; + this.destroyed = false; + this.enableXOF = false; + this.blockLen = blockLen; + this.suffix = suffix; + this.outputLen = outputLen; + this.enableXOF = enableXOF; + this.rounds = rounds; + (0, utils_ts_1.anumber)(outputLen); + if (!(0 < blockLen && blockLen < 200)) + throw new Error("only keccak-f1600 function is supported"); + this.state = new Uint8Array(200); + this.state32 = (0, utils_ts_1.u32)(this.state); + } + clone() { + return this._cloneInto(); + } + keccak() { + (0, utils_ts_1.swap32IfBE)(this.state32); + keccakP(this.state32, this.rounds); + (0, utils_ts_1.swap32IfBE)(this.state32); + this.posOut = 0; + this.pos = 0; + } + update(data) { + (0, utils_ts_1.aexists)(this); + data = (0, utils_ts_1.toBytes)(data); + (0, utils_ts_1.abytes)(data); + const { blockLen, state } = this; + const len = data.length; + for (let pos = 0; pos < len; ) { + const take = Math.min(blockLen - this.pos, len - pos); + for (let i = 0; i < take; i++) + state[this.pos++] ^= data[pos++]; + if (this.pos === blockLen) + this.keccak(); + } + return this; + } + finish() { + if (this.finished) + return; + this.finished = true; + const { state, suffix, pos, blockLen } = this; + state[pos] ^= suffix; + if ((suffix & 128) !== 0 && pos === blockLen - 1) + this.keccak(); + state[blockLen - 1] ^= 128; + this.keccak(); + } + writeInto(out) { + (0, utils_ts_1.aexists)(this, false); + (0, utils_ts_1.abytes)(out); + this.finish(); + const bufferOut = this.state; + const { blockLen } = this; + for (let pos = 0, len = out.length; pos < len; ) { + if (this.posOut >= blockLen) + this.keccak(); + const take = Math.min(blockLen - this.posOut, len - pos); + out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos); + this.posOut += take; + pos += take; + } + return out; + } + xofInto(out) { + if (!this.enableXOF) + throw new Error("XOF is not possible for this instance"); + return this.writeInto(out); + } + xof(bytes7) { + (0, utils_ts_1.anumber)(bytes7); + return this.xofInto(new Uint8Array(bytes7)); + } + digestInto(out) { + (0, utils_ts_1.aoutput)(out, this); + if (this.finished) + throw new Error("digest() was already called"); + this.writeInto(out); + this.destroy(); + return out; + } + digest() { + return this.digestInto(new Uint8Array(this.outputLen)); + } + destroy() { + this.destroyed = true; + (0, utils_ts_1.clean)(this.state); + } + _cloneInto(to) { + const { blockLen, suffix, outputLen, rounds, enableXOF } = this; + to || (to = new _Keccak(blockLen, suffix, outputLen, enableXOF, rounds)); + to.state32.set(this.state32); + to.pos = this.pos; + to.posOut = this.posOut; + to.finished = this.finished; + to.rounds = rounds; + to.suffix = suffix; + to.outputLen = outputLen; + to.enableXOF = enableXOF; + to.destroyed = this.destroyed; + return to; + } + }; + exports2.Keccak = Keccak; + var gen = (suffix, blockLen, outputLen) => (0, utils_ts_1.createHasher)(() => new Keccak(blockLen, suffix, outputLen)); + exports2.sha3_224 = (() => gen(6, 144, 224 / 8))(); + exports2.sha3_256 = (() => gen(6, 136, 256 / 8))(); + exports2.sha3_384 = (() => gen(6, 104, 384 / 8))(); + exports2.sha3_512 = (() => gen(6, 72, 512 / 8))(); + exports2.keccak_224 = (() => gen(1, 144, 224 / 8))(); + exports2.keccak_256 = (() => gen(1, 136, 256 / 8))(); + exports2.keccak_384 = (() => gen(1, 104, 384 / 8))(); + exports2.keccak_512 = (() => gen(1, 72, 512 / 8))(); + var genShake = (suffix, blockLen, outputLen) => (0, utils_ts_1.createXOFer)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === void 0 ? outputLen : opts.dkLen, true)); + exports2.shake128 = (() => genShake(31, 168, 128 / 8))(); + exports2.shake256 = (() => genShake(31, 136, 256 / 8))(); + } +}); + +// node_modules/@noble/hashes/hmac.js +var require_hmac = __commonJS({ + "node_modules/@noble/hashes/hmac.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.hmac = exports2.HMAC = void 0; + var utils_ts_1 = require_utils3(); + var HMAC = class extends utils_ts_1.Hash { + constructor(hash, _key) { + super(); + this.finished = false; + this.destroyed = false; + (0, utils_ts_1.ahash)(hash); + const key = (0, utils_ts_1.toBytes)(_key); + this.iHash = hash.create(); + if (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 blockLen = this.blockLen; + const pad = new Uint8Array(blockLen); + pad.set(key.length > blockLen ? hash.create().update(key).digest() : key); + for (let i = 0; i < pad.length; i++) + pad[i] ^= 54; + this.iHash.update(pad); + this.oHash = hash.create(); + for (let i = 0; i < pad.length; i++) + pad[i] ^= 54 ^ 92; + this.oHash.update(pad); + (0, utils_ts_1.clean)(pad); + } + update(buf) { + (0, utils_ts_1.aexists)(this); + this.iHash.update(buf); + return this; + } + digestInto(out) { + (0, utils_ts_1.aexists)(this); + (0, utils_ts_1.abytes)(out, this.outputLen); + this.finished = true; + this.iHash.digestInto(out); + this.oHash.update(out); + this.oHash.digestInto(out); + this.destroy(); + } + digest() { + const out = new Uint8Array(this.oHash.outputLen); + this.digestInto(out); + return out; + } + _cloneInto(to) { + to || (to = Object.create(Object.getPrototypeOf(this), {})); + const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this; + to = to; + to.finished = finished; + to.destroyed = destroyed; + to.blockLen = blockLen; + to.outputLen = outputLen; + to.oHash = oHash._cloneInto(to.oHash); + to.iHash = iHash._cloneInto(to.iHash); + return to; + } + clone() { + return this._cloneInto(); + } + destroy() { + this.destroyed = true; + this.oHash.destroy(); + this.iHash.destroy(); + } + }; + exports2.HMAC = HMAC; + var hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest(); + exports2.hmac = hmac; + exports2.hmac.create = (hash, key) => new HMAC(hash, key); + } +}); + +// node_modules/@noble/curves/abstract/weierstrass.js +var require_weierstrass = __commonJS({ + "node_modules/@noble/curves/abstract/weierstrass.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DER = exports2.DERErr = void 0; + exports2.weierstrassPoints = weierstrassPoints; + exports2.weierstrass = weierstrass; + exports2.SWUFpSqrtRatio = SWUFpSqrtRatio; + exports2.mapToCurveSimpleSWU = mapToCurveSimpleSWU; + var curve_ts_1 = require_curve(); + var modular_ts_1 = require_modular(); + var utils_ts_1 = require_utils4(); + function validateSigVerOpts(opts) { + if (opts.lowS !== void 0) + (0, utils_ts_1.abool)("lowS", opts.lowS); + if (opts.prehash !== void 0) + (0, utils_ts_1.abool)("prehash", opts.prehash); + } + function validatePointOpts(curve) { + const opts = (0, curve_ts_1.validateBasic)(curve); + (0, utils_ts_1.validateObject)(opts, { + a: "field", + b: "field" + }, { + allowedPrivateKeyLengths: "array", + wrapPrivateKey: "boolean", + isTorsionFree: "function", + clearCofactor: "function", + allowInfinityPoint: "boolean", + fromBytes: "function", + toBytes: "function" + }); + const { endo, Fp, a } = opts; + if (endo) { + if (!Fp.eql(a, Fp.ZERO)) { + throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0"); + } + if (typeof endo !== "object" || typeof endo.beta !== "bigint" || typeof endo.splitScalar !== "function") { + throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function"); + } + } + return Object.freeze({ ...opts }); + } + var DERErr = class extends Error { + constructor(m = "") { + super(m); + } + }; + exports2.DERErr = DERErr; + exports2.DER = { + // asn.1 DER encoding utils + Err: DERErr, + // Basic building block is TLV (Tag-Length-Value) + _tlv: { + encode: (tag, data) => { + const { Err: E } = exports2.DER; + if (tag < 0 || tag > 256) + throw new E("tlv.encode: wrong tag"); + if (data.length & 1) + throw new E("tlv.encode: unpadded data"); + const dataLen = data.length / 2; + const len = (0, utils_ts_1.numberToHexUnpadded)(dataLen); + if (len.length / 2 & 128) + throw new E("tlv.encode: long form length too big"); + const lenLen = dataLen > 127 ? (0, utils_ts_1.numberToHexUnpadded)(len.length / 2 | 128) : ""; + const t = (0, utils_ts_1.numberToHexUnpadded)(tag); + return t + lenLen + len + data; + }, + // v - value, l - left bytes (unparsed) + decode(tag, data) { + const { Err: E } = exports2.DER; + let pos = 0; + if (tag < 0 || tag > 256) + throw new E("tlv.encode: wrong tag"); + if (data.length < 2 || data[pos++] !== tag) + throw new E("tlv.decode: wrong tlv"); + const first = data[pos++]; + const isLong = !!(first & 128); + let length = 0; + if (!isLong) + length = first; + else { + const lenLen = first & 127; + if (!lenLen) + throw new E("tlv.decode(long): indefinite length not supported"); + if (lenLen > 4) + throw new E("tlv.decode(long): byte length is too big"); + const lengthBytes = data.subarray(pos, pos + lenLen); + if (lengthBytes.length !== lenLen) + throw new E("tlv.decode: length bytes not complete"); + if (lengthBytes[0] === 0) + throw new E("tlv.decode(long): zero leftmost byte"); + for (const b of lengthBytes) + length = length << 8 | b; + pos += lenLen; + if (length < 128) + throw new E("tlv.decode(long): not minimal encoding"); + } + const v = data.subarray(pos, pos + length); + if (v.length !== length) + throw new E("tlv.decode: wrong value length"); + return { v, l: data.subarray(pos + length) }; + } + }, + // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag, + // since we always use positive integers here. It must always be empty: + // - add zero byte if exists + // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding) + _int: { + encode(num) { + const { Err: E } = exports2.DER; + if (num < _0n) + throw new E("integer: negative integers are not allowed"); + let hex = (0, utils_ts_1.numberToHexUnpadded)(num); + if (Number.parseInt(hex[0], 16) & 8) + hex = "00" + hex; + if (hex.length & 1) + throw new E("unexpected DER parsing assertion: unpadded hex"); + return hex; + }, + decode(data) { + const { Err: E } = exports2.DER; + if (data[0] & 128) + throw new E("invalid signature integer: negative"); + if (data[0] === 0 && !(data[1] & 128)) + throw new E("invalid signature integer: unnecessary leading zero"); + return (0, utils_ts_1.bytesToNumberBE)(data); + } + }, + toSig(hex) { + const { Err: E, _int: int, _tlv: tlv } = exports2.DER; + const data = (0, utils_ts_1.ensureBytes)("signature", hex); + const { v: seqBytes, l: seqLeftBytes } = tlv.decode(48, data); + if (seqLeftBytes.length) + throw new E("invalid signature: left bytes after parsing"); + const { v: rBytes, l: rLeftBytes } = tlv.decode(2, seqBytes); + const { v: sBytes, l: sLeftBytes } = tlv.decode(2, rLeftBytes); + if (sLeftBytes.length) + throw new E("invalid signature: left bytes after parsing"); + return { r: int.decode(rBytes), s: int.decode(sBytes) }; + }, + hexFromSig(sig) { + const { _tlv: tlv, _int: int } = exports2.DER; + const rs = tlv.encode(2, int.encode(sig.r)); + const ss = tlv.encode(2, int.encode(sig.s)); + const seq = rs + ss; + return tlv.encode(48, seq); + } + }; + var _0n = BigInt(0); + var _1n = BigInt(1); + var _2n = BigInt(2); + var _3n = BigInt(3); + var _4n = BigInt(4); + function weierstrassPoints(opts) { + const CURVE = validatePointOpts(opts); + const { Fp } = CURVE; + const Fn = (0, modular_ts_1.Field)(CURVE.n, CURVE.nBitLength); + const toBytes = CURVE.toBytes || ((_c, point, _isCompressed) => { + const a = point.toAffine(); + return (0, utils_ts_1.concatBytes)(Uint8Array.from([4]), Fp.toBytes(a.x), Fp.toBytes(a.y)); + }); + const fromBytes = CURVE.fromBytes || ((bytes7) => { + const tail = bytes7.subarray(1); + const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES)); + const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES)); + return { x, y }; + }); + function weierstrassEquation(x) { + const { a, b } = CURVE; + const x2 = Fp.sqr(x); + const x3 = Fp.mul(x2, x); + return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); + } + if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx))) + throw new Error("bad generator point: equation left != right"); + function isWithinCurveOrder(num) { + return (0, utils_ts_1.inRange)(num, _1n, CURVE.n); + } + function normPrivateKeyToScalar(key) { + const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE; + if (lengths && typeof key !== "bigint") { + if ((0, utils_ts_1.isBytes)(key)) + key = (0, utils_ts_1.bytesToHex)(key); + if (typeof key !== "string" || !lengths.includes(key.length)) + throw new Error("invalid private key"); + key = key.padStart(nByteLength * 2, "0"); + } + let num; + try { + num = typeof key === "bigint" ? key : (0, utils_ts_1.bytesToNumberBE)((0, utils_ts_1.ensureBytes)("private key", key, nByteLength)); + } catch (error) { + throw new Error("invalid private key, expected hex or " + nByteLength + " bytes, got " + typeof key); + } + if (wrapPrivateKey) + num = (0, modular_ts_1.mod)(num, N); + (0, utils_ts_1.aInRange)("private key", num, _1n, N); + return num; + } + function aprjpoint(other) { + if (!(other instanceof Point)) + throw new Error("ProjectivePoint expected"); + } + const toAffineMemo = (0, utils_ts_1.memoized)((p, iz) => { + const { px: x, py: y, pz: z } = p; + if (Fp.eql(z, Fp.ONE)) + return { x, y }; + const is0 = p.is0(); + if (iz == null) + iz = is0 ? Fp.ONE : Fp.inv(z); + const ax = Fp.mul(x, iz); + const ay = Fp.mul(y, iz); + const zz = Fp.mul(z, iz); + if (is0) + return { x: Fp.ZERO, y: Fp.ZERO }; + if (!Fp.eql(zz, Fp.ONE)) + throw new Error("invZ was invalid"); + return { x: ax, y: ay }; + }); + const assertValidMemo = (0, utils_ts_1.memoized)((p) => { + if (p.is0()) { + if (CURVE.allowInfinityPoint && !Fp.is0(p.py)) + return; + throw new Error("bad point: ZERO"); + } + const { x, y } = p.toAffine(); + if (!Fp.isValid(x) || !Fp.isValid(y)) + throw new Error("bad point: x or y not FE"); + const left = Fp.sqr(y); + const right = weierstrassEquation(x); + if (!Fp.eql(left, right)) + throw new Error("bad point: equation left != right"); + if (!p.isTorsionFree()) + throw new Error("bad point: not in prime-order subgroup"); + return true; + }); + class Point { + constructor(px, py, pz) { + if (px == null || !Fp.isValid(px)) + throw new Error("x required"); + if (py == null || !Fp.isValid(py) || Fp.is0(py)) + throw new Error("y required"); + if (pz == null || !Fp.isValid(pz)) + throw new Error("z required"); + this.px = px; + this.py = py; + this.pz = pz; + Object.freeze(this); + } + // Does not validate if the point is on-curve. + // Use fromHex instead, or call assertValidity() later. + static fromAffine(p) { + const { x, y } = p || {}; + if (!p || !Fp.isValid(x) || !Fp.isValid(y)) + throw new Error("invalid affine point"); + if (p instanceof Point) + throw new Error("projective point not allowed"); + const is0 = (i) => Fp.eql(i, Fp.ZERO); + if (is0(x) && is0(y)) + return Point.ZERO; + return new Point(x, y, Fp.ONE); + } + get x() { + return this.toAffine().x; + } + get y() { + return this.toAffine().y; + } + /** + * Takes a bunch of Projective Points but executes only one + * inversion on all of them. Inversion is very slow operation, + * so this improves performance massively. + * Optimization: converts a list of projective points to a list of identical points with Z=1. + */ + static normalizeZ(points) { + const toInv = (0, modular_ts_1.FpInvertBatch)(Fp, points.map((p) => p.pz)); + return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine); + } + /** + * Converts hash string or Uint8Array to Point. + * @param hex short/long ECDSA hex + */ + static fromHex(hex) { + const P = Point.fromAffine(fromBytes((0, utils_ts_1.ensureBytes)("pointHex", hex))); + P.assertValidity(); + return P; + } + // Multiplies generator point by privateKey. + static fromPrivateKey(privateKey) { + return Point.BASE.multiply(normPrivateKeyToScalar(privateKey)); + } + // Multiscalar Multiplication + static msm(points, scalars) { + return (0, curve_ts_1.pippenger)(Point, Fn, points, scalars); + } + // "Private method", don't use it directly + _setWindowSize(windowSize) { + wnaf.setWindowSize(this, windowSize); + } + // A point on curve is valid if it conforms to equation. + assertValidity() { + assertValidMemo(this); + } + hasEvenY() { + const { y } = this.toAffine(); + if (Fp.isOdd) + return !Fp.isOdd(y); + throw new Error("Field doesn't support isOdd"); + } + /** + * Compare one point to another. + */ + equals(other) { + aprjpoint(other); + const { px: X1, py: Y1, pz: Z1 } = this; + const { px: X2, py: Y2, pz: Z2 } = other; + const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1)); + const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1)); + return U1 && U2; + } + /** + * Flips point to one corresponding to (x, -y) in Affine coordinates. + */ + negate() { + return new Point(this.px, Fp.neg(this.py), this.pz); + } + // Renes-Costello-Batina exception-free doubling formula. + // There is 30% faster Jacobian formula, but it is not complete. + // https://eprint.iacr.org/2015/1060, algorithm 3 + // Cost: 8M + 3S + 3*a + 2*b3 + 15add. + double() { + const { a, b } = CURVE; + const b3 = Fp.mul(b, _3n); + const { px: X1, py: Y1, pz: Z1 } = this; + let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; + let t0 = Fp.mul(X1, X1); + let t1 = Fp.mul(Y1, Y1); + let t2 = Fp.mul(Z1, Z1); + let t3 = Fp.mul(X1, Y1); + t3 = Fp.add(t3, t3); + Z3 = Fp.mul(X1, Z1); + Z3 = Fp.add(Z3, Z3); + X3 = Fp.mul(a, Z3); + Y3 = Fp.mul(b3, t2); + Y3 = Fp.add(X3, Y3); + X3 = Fp.sub(t1, Y3); + Y3 = Fp.add(t1, Y3); + Y3 = Fp.mul(X3, Y3); + X3 = Fp.mul(t3, X3); + Z3 = Fp.mul(b3, Z3); + t2 = Fp.mul(a, t2); + t3 = Fp.sub(t0, t2); + t3 = Fp.mul(a, t3); + t3 = Fp.add(t3, Z3); + Z3 = Fp.add(t0, t0); + t0 = Fp.add(Z3, t0); + t0 = Fp.add(t0, t2); + t0 = Fp.mul(t0, t3); + Y3 = Fp.add(Y3, t0); + t2 = Fp.mul(Y1, Z1); + t2 = Fp.add(t2, t2); + t0 = Fp.mul(t2, t3); + X3 = Fp.sub(X3, t0); + Z3 = Fp.mul(t2, t1); + Z3 = Fp.add(Z3, Z3); + Z3 = Fp.add(Z3, Z3); + return new Point(X3, Y3, Z3); + } + // Renes-Costello-Batina exception-free addition formula. + // There is 30% faster Jacobian formula, but it is not complete. + // https://eprint.iacr.org/2015/1060, algorithm 1 + // Cost: 12M + 0S + 3*a + 3*b3 + 23add. + add(other) { + aprjpoint(other); + const { px: X1, py: Y1, pz: Z1 } = this; + const { px: X2, py: Y2, pz: Z2 } = other; + let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; + const a = CURVE.a; + const b3 = Fp.mul(CURVE.b, _3n); + let t0 = Fp.mul(X1, X2); + let t1 = Fp.mul(Y1, Y2); + let t2 = Fp.mul(Z1, Z2); + let t3 = Fp.add(X1, Y1); + let t4 = Fp.add(X2, Y2); + t3 = Fp.mul(t3, t4); + t4 = Fp.add(t0, t1); + t3 = Fp.sub(t3, t4); + t4 = Fp.add(X1, Z1); + let t5 = Fp.add(X2, Z2); + t4 = Fp.mul(t4, t5); + t5 = Fp.add(t0, t2); + t4 = Fp.sub(t4, t5); + t5 = Fp.add(Y1, Z1); + X3 = Fp.add(Y2, Z2); + t5 = Fp.mul(t5, X3); + X3 = Fp.add(t1, t2); + t5 = Fp.sub(t5, X3); + Z3 = Fp.mul(a, t4); + X3 = Fp.mul(b3, t2); + Z3 = Fp.add(X3, Z3); + X3 = Fp.sub(t1, Z3); + Z3 = Fp.add(t1, Z3); + Y3 = Fp.mul(X3, Z3); + t1 = Fp.add(t0, t0); + t1 = Fp.add(t1, t0); + t2 = Fp.mul(a, t2); + t4 = Fp.mul(b3, t4); + t1 = Fp.add(t1, t2); + t2 = Fp.sub(t0, t2); + t2 = Fp.mul(a, t2); + t4 = Fp.add(t4, t2); + t0 = Fp.mul(t1, t4); + Y3 = Fp.add(Y3, t0); + t0 = Fp.mul(t5, t4); + X3 = Fp.mul(t3, X3); + X3 = Fp.sub(X3, t0); + t0 = Fp.mul(t3, t1); + Z3 = Fp.mul(t5, Z3); + Z3 = Fp.add(Z3, t0); + return new Point(X3, Y3, Z3); + } + subtract(other) { + return this.add(other.negate()); + } + is0() { + return this.equals(Point.ZERO); + } + wNAF(n) { + return wnaf.wNAFCached(this, n, Point.normalizeZ); + } + /** + * Non-constant-time multiplication. Uses double-and-add algorithm. + * It's faster, but should only be used when you don't care about + * an exposed private key e.g. sig verification, which works over *public* keys. + */ + multiplyUnsafe(sc) { + const { endo, n: N } = CURVE; + (0, utils_ts_1.aInRange)("scalar", sc, _0n, N); + const I = Point.ZERO; + if (sc === _0n) + return I; + if (this.is0() || sc === _1n) + return this; + if (!endo || wnaf.hasPrecomputes(this)) + return wnaf.wNAFCachedUnsafe(this, sc, Point.normalizeZ); + let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc); + let k1p = I; + let k2p = I; + let d = this; + while (k1 > _0n || k2 > _0n) { + if (k1 & _1n) + k1p = k1p.add(d); + if (k2 & _1n) + k2p = k2p.add(d); + d = d.double(); + k1 >>= _1n; + k2 >>= _1n; + } + if (k1neg) + k1p = k1p.negate(); + if (k2neg) + k2p = k2p.negate(); + k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz); + return k1p.add(k2p); + } + /** + * Constant time multiplication. + * Uses wNAF method. Windowed method may be 10% faster, + * but takes 2x longer to generate and consumes 2x memory. + * Uses precomputes when available. + * Uses endomorphism for Koblitz curves. + * @param scalar by which the point would be multiplied + * @returns New point + */ + multiply(scalar) { + const { endo, n: N } = CURVE; + (0, utils_ts_1.aInRange)("scalar", scalar, _1n, N); + let point, fake; + if (endo) { + const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar); + let { p: k1p, f: f1p } = this.wNAF(k1); + let { p: k2p, f: f2p } = this.wNAF(k2); + k1p = wnaf.constTimeNegate(k1neg, k1p); + k2p = wnaf.constTimeNegate(k2neg, k2p); + k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz); + point = k1p.add(k2p); + fake = f1p.add(f2p); + } else { + const { p, f } = this.wNAF(scalar); + point = p; + fake = f; + } + return Point.normalizeZ([point, fake])[0]; + } + /** + * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly. + * Not using Strauss-Shamir trick: precomputation tables are faster. + * The trick could be useful if both P and Q are not G (not in our case). + * @returns non-zero affine point + */ + multiplyAndAddUnsafe(Q, a, b) { + const G = Point.BASE; + const mul = (P, a2) => a2 === _0n || a2 === _1n || !P.equals(G) ? P.multiplyUnsafe(a2) : P.multiply(a2); + const sum = mul(this, a).add(mul(Q, b)); + return sum.is0() ? void 0 : sum; + } + // Converts Projective point to affine (x, y) coordinates. + // Can accept precomputed Z^-1 - for example, from invertBatch. + // (x, y, z) ∋ (x=x/z, y=y/z) + toAffine(iz) { + return toAffineMemo(this, iz); + } + isTorsionFree() { + const { h: cofactor, isTorsionFree } = CURVE; + if (cofactor === _1n) + return true; + if (isTorsionFree) + return isTorsionFree(Point, this); + throw new Error("isTorsionFree() has not been declared for the elliptic curve"); + } + clearCofactor() { + const { h: cofactor, clearCofactor } = CURVE; + if (cofactor === _1n) + return this; + if (clearCofactor) + return clearCofactor(Point, this); + return this.multiplyUnsafe(CURVE.h); + } + toRawBytes(isCompressed = true) { + (0, utils_ts_1.abool)("isCompressed", isCompressed); + this.assertValidity(); + return toBytes(Point, this, isCompressed); + } + toHex(isCompressed = true) { + (0, utils_ts_1.abool)("isCompressed", isCompressed); + return (0, utils_ts_1.bytesToHex)(this.toRawBytes(isCompressed)); + } + } + Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE); + Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); + const _bits = CURVE.nBitLength; + const wnaf = (0, curve_ts_1.wNAF)(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits); + return { + CURVE, + ProjectivePoint: Point, + normPrivateKeyToScalar, + weierstrassEquation, + isWithinCurveOrder + }; + } + function validateOpts(curve) { + const opts = (0, curve_ts_1.validateBasic)(curve); + (0, utils_ts_1.validateObject)(opts, { + hash: "hash", + hmac: "function", + randomBytes: "function" + }, { + bits2int: "function", + bits2int_modN: "function", + lowS: "boolean" + }); + return Object.freeze({ lowS: true, ...opts }); + } + function weierstrass(curveDef) { + const CURVE = validateOpts(curveDef); + const { Fp, n: CURVE_ORDER } = CURVE; + const compressedLen = Fp.BYTES + 1; + const uncompressedLen = 2 * Fp.BYTES + 1; + function modN(a) { + return (0, modular_ts_1.mod)(a, CURVE_ORDER); + } + function invN(a) { + return (0, modular_ts_1.invert)(a, CURVE_ORDER); + } + const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder } = weierstrassPoints({ + ...CURVE, + toBytes(_c, point, isCompressed) { + const a = point.toAffine(); + const x = Fp.toBytes(a.x); + const cat = utils_ts_1.concatBytes; + (0, utils_ts_1.abool)("isCompressed", isCompressed); + if (isCompressed) { + return cat(Uint8Array.from([point.hasEvenY() ? 2 : 3]), x); + } else { + return cat(Uint8Array.from([4]), x, Fp.toBytes(a.y)); + } + }, + fromBytes(bytes7) { + const len = bytes7.length; + const head = bytes7[0]; + const tail = bytes7.subarray(1); + if (len === compressedLen && (head === 2 || head === 3)) { + const x = (0, utils_ts_1.bytesToNumberBE)(tail); + if (!(0, utils_ts_1.inRange)(x, _1n, Fp.ORDER)) + throw new Error("Point is not on curve"); + const y2 = weierstrassEquation(x); + let y; + try { + y = Fp.sqrt(y2); + } catch (sqrtError) { + const suffix = sqrtError instanceof Error ? ": " + sqrtError.message : ""; + throw new Error("Point is not on curve" + suffix); + } + const isYOdd = (y & _1n) === _1n; + const isHeadOdd = (head & 1) === 1; + if (isHeadOdd !== isYOdd) + y = Fp.neg(y); + return { x, y }; + } else if (len === uncompressedLen && head === 4) { + const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES)); + const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES)); + return { x, y }; + } else { + const cl = compressedLen; + const ul = uncompressedLen; + throw new Error("invalid Point, expected length of " + cl + ", or uncompressed " + ul + ", got " + len); + } + } + }); + const numToNByteHex = (num) => (0, utils_ts_1.bytesToHex)((0, utils_ts_1.numberToBytesBE)(num, CURVE.nByteLength)); + function isBiggerThanHalfOrder(number) { + const HALF = CURVE_ORDER >> _1n; + return number > HALF; + } + function normalizeS(s) { + return isBiggerThanHalfOrder(s) ? modN(-s) : s; + } + const slcNum = (b, from, to) => (0, utils_ts_1.bytesToNumberBE)(b.slice(from, to)); + class Signature { + constructor(r, s, recovery) { + (0, utils_ts_1.aInRange)("r", r, _1n, CURVE_ORDER); + (0, utils_ts_1.aInRange)("s", s, _1n, CURVE_ORDER); + this.r = r; + this.s = s; + if (recovery != null) + this.recovery = recovery; + Object.freeze(this); + } + // pair (bytes of r, bytes of s) + static fromCompact(hex) { + const l = CURVE.nByteLength; + hex = (0, utils_ts_1.ensureBytes)("compactSignature", hex, l * 2); + return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l)); + } + // DER encoded ECDSA signature + // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script + static fromDER(hex) { + const { r, s } = exports2.DER.toSig((0, utils_ts_1.ensureBytes)("DER", hex)); + return new Signature(r, s); + } + /** + * @todo remove + * @deprecated + */ + assertValidity() { + } + addRecoveryBit(recovery) { + return new Signature(this.r, this.s, recovery); + } + recoverPublicKey(msgHash) { + const { r, s, recovery: rec } = this; + const h = bits2int_modN((0, utils_ts_1.ensureBytes)("msgHash", msgHash)); + if (rec == null || ![0, 1, 2, 3].includes(rec)) + throw new Error("recovery id invalid"); + const radj = rec === 2 || rec === 3 ? r + CURVE.n : r; + if (radj >= Fp.ORDER) + throw new Error("recovery id 2 or 3 invalid"); + const prefix = (rec & 1) === 0 ? "02" : "03"; + const R = Point.fromHex(prefix + numToNByteHex(radj)); + const ir = invN(radj); + const u1 = modN(-h * ir); + const u2 = modN(s * ir); + const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); + if (!Q) + throw new Error("point at infinify"); + Q.assertValidity(); + return Q; + } + // Signatures should be low-s, to prevent malleability. + hasHighS() { + return isBiggerThanHalfOrder(this.s); + } + normalizeS() { + return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this; + } + // DER-encoded + toDERRawBytes() { + return (0, utils_ts_1.hexToBytes)(this.toDERHex()); + } + toDERHex() { + return exports2.DER.hexFromSig(this); + } + // padded bytes of r, then padded bytes of s + toCompactRawBytes() { + return (0, utils_ts_1.hexToBytes)(this.toCompactHex()); + } + toCompactHex() { + return numToNByteHex(this.r) + numToNByteHex(this.s); + } + } + const utils2 = { + isValidPrivateKey(privateKey) { + try { + normPrivateKeyToScalar(privateKey); + return true; + } catch (error) { + return false; + } + }, + normPrivateKeyToScalar, + /** + * Produces cryptographically secure private key from random of size + * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible. + */ + randomPrivateKey: () => { + const length = (0, modular_ts_1.getMinHashLength)(CURVE.n); + return (0, modular_ts_1.mapHashToField)(CURVE.randomBytes(length), CURVE.n); + }, + /** + * Creates precompute table for an arbitrary EC point. Makes point "cached". + * Allows to massively speed-up `point.multiply(scalar)`. + * @returns cached point + * @example + * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey)); + * fast.multiply(privKey); // much faster ECDH now + */ + precompute(windowSize = 8, point = Point.BASE) { + point._setWindowSize(windowSize); + point.multiply(BigInt(3)); + return point; + } + }; + function getPublicKey(privateKey, isCompressed = true) { + return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed); + } + function isProbPub(item) { + const arr = (0, utils_ts_1.isBytes)(item); + const str = typeof item === "string"; + const len = (arr || str) && item.length; + if (arr) + return len === compressedLen || len === uncompressedLen; + if (str) + return len === 2 * compressedLen || len === 2 * uncompressedLen; + if (item instanceof Point) + return true; + return false; + } + function getSharedSecret(privateA, publicB, isCompressed = true) { + if (isProbPub(privateA)) + throw new Error("first arg must be private key"); + if (!isProbPub(publicB)) + throw new Error("second arg must be public key"); + const b = Point.fromHex(publicB); + return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed); + } + const bits2int = CURVE.bits2int || function(bytes7) { + if (bytes7.length > 8192) + throw new Error("input is too large"); + const num = (0, utils_ts_1.bytesToNumberBE)(bytes7); + const delta = bytes7.length * 8 - CURVE.nBitLength; + return delta > 0 ? num >> BigInt(delta) : num; + }; + const bits2int_modN = CURVE.bits2int_modN || function(bytes7) { + return modN(bits2int(bytes7)); + }; + const ORDER_MASK = (0, utils_ts_1.bitMask)(CURVE.nBitLength); + function int2octets(num) { + (0, utils_ts_1.aInRange)("num < 2^" + CURVE.nBitLength, num, _0n, ORDER_MASK); + return (0, utils_ts_1.numberToBytesBE)(num, CURVE.nByteLength); + } + function prepSig(msgHash, privateKey, opts = defaultSigOpts) { + if (["recovered", "canonical"].some((k) => k in opts)) + throw new Error("sign() legacy options not supported"); + const { hash, randomBytes } = CURVE; + let { lowS, prehash, extraEntropy: ent } = opts; + if (lowS == null) + lowS = true; + msgHash = (0, utils_ts_1.ensureBytes)("msgHash", msgHash); + validateSigVerOpts(opts); + if (prehash) + msgHash = (0, utils_ts_1.ensureBytes)("prehashed msgHash", hash(msgHash)); + const h1int = bits2int_modN(msgHash); + const d = normPrivateKeyToScalar(privateKey); + const seedArgs = [int2octets(d), int2octets(h1int)]; + if (ent != null && ent !== false) { + const e = ent === true ? randomBytes(Fp.BYTES) : ent; + seedArgs.push((0, utils_ts_1.ensureBytes)("extraEntropy", e)); + } + const seed = (0, utils_ts_1.concatBytes)(...seedArgs); + const m = h1int; + function k2sig(kBytes) { + const k = bits2int(kBytes); + if (!isWithinCurveOrder(k)) + return; + const ik = invN(k); + const q = Point.BASE.multiply(k).toAffine(); + const r = modN(q.x); + if (r === _0n) + return; + const s = modN(ik * modN(m + r * d)); + if (s === _0n) + return; + let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); + let normS = s; + if (lowS && isBiggerThanHalfOrder(s)) { + normS = normalizeS(s); + recovery ^= 1; + } + return new Signature(r, normS, recovery); + } + return { seed, k2sig }; + } + const defaultSigOpts = { lowS: CURVE.lowS, prehash: false }; + const defaultVerOpts = { lowS: CURVE.lowS, prehash: false }; + function sign(msgHash, privKey, opts = defaultSigOpts) { + const { seed, k2sig } = prepSig(msgHash, privKey, opts); + const C = CURVE; + const drbg = (0, utils_ts_1.createHmacDrbg)(C.hash.outputLen, C.nByteLength, C.hmac); + return drbg(seed, k2sig); + } + Point.BASE._setWindowSize(8); + function verify(signature, msgHash, publicKey23, opts = defaultVerOpts) { + const sg = signature; + msgHash = (0, utils_ts_1.ensureBytes)("msgHash", msgHash); + publicKey23 = (0, utils_ts_1.ensureBytes)("publicKey", publicKey23); + const { lowS, prehash, format } = opts; + validateSigVerOpts(opts); + if ("strict" in opts) + throw new Error("options.strict was renamed to lowS"); + if (format !== void 0 && format !== "compact" && format !== "der") + throw new Error("format must be compact or der"); + const isHex = typeof sg === "string" || (0, utils_ts_1.isBytes)(sg); + const isObj = !isHex && !format && typeof sg === "object" && sg !== null && typeof sg.r === "bigint" && typeof sg.s === "bigint"; + if (!isHex && !isObj) + throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance"); + let _sig = void 0; + let P; + try { + if (isObj) + _sig = new Signature(sg.r, sg.s); + if (isHex) { + try { + if (format !== "compact") + _sig = Signature.fromDER(sg); + } catch (derError) { + if (!(derError instanceof exports2.DER.Err)) + throw derError; + } + if (!_sig && format !== "der") + _sig = Signature.fromCompact(sg); + } + P = Point.fromHex(publicKey23); + } catch (error) { + return false; + } + if (!_sig) + return false; + if (lowS && _sig.hasHighS()) + return false; + if (prehash) + msgHash = CURVE.hash(msgHash); + const { r, s } = _sig; + const h = bits2int_modN(msgHash); + const is = invN(s); + const u1 = modN(h * is); + const u2 = modN(r * is); + const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); + if (!R) + return false; + const v = modN(R.x); + return v === r; + } + return { + CURVE, + getPublicKey, + getSharedSecret, + sign, + verify, + ProjectivePoint: Point, + Signature, + utils: utils2 + }; + } + function SWUFpSqrtRatio(Fp, Z) { + const q = Fp.ORDER; + let l = _0n; + for (let o = q - _1n; o % _2n === _0n; o /= _2n) + l += _1n; + const c1 = l; + const _2n_pow_c1_1 = _2n << c1 - _1n - _1n; + const _2n_pow_c1 = _2n_pow_c1_1 * _2n; + const c2 = (q - _1n) / _2n_pow_c1; + const c3 = (c2 - _1n) / _2n; + const c4 = _2n_pow_c1 - _1n; + const c5 = _2n_pow_c1_1; + const c6 = Fp.pow(Z, c2); + const c7 = Fp.pow(Z, (c2 + _1n) / _2n); + let sqrtRatio = (u, v) => { + let tv1 = c6; + let tv2 = Fp.pow(v, c4); + let tv3 = Fp.sqr(tv2); + tv3 = Fp.mul(tv3, v); + let tv5 = Fp.mul(u, tv3); + tv5 = Fp.pow(tv5, c3); + tv5 = Fp.mul(tv5, tv2); + tv2 = Fp.mul(tv5, v); + tv3 = Fp.mul(tv5, u); + let tv4 = Fp.mul(tv3, tv2); + tv5 = Fp.pow(tv4, c5); + let isQR = Fp.eql(tv5, Fp.ONE); + tv2 = Fp.mul(tv3, c7); + tv5 = Fp.mul(tv4, tv1); + tv3 = Fp.cmov(tv2, tv3, isQR); + tv4 = Fp.cmov(tv5, tv4, isQR); + for (let i = c1; i > _1n; i--) { + let tv52 = i - _2n; + tv52 = _2n << tv52 - _1n; + let tvv5 = Fp.pow(tv4, tv52); + const e1 = Fp.eql(tvv5, Fp.ONE); + tv2 = Fp.mul(tv3, tv1); + tv1 = Fp.mul(tv1, tv1); + tvv5 = Fp.mul(tv4, tv1); + tv3 = Fp.cmov(tv2, tv3, e1); + tv4 = Fp.cmov(tvv5, tv4, e1); + } + return { isValid: isQR, value: tv3 }; + }; + if (Fp.ORDER % _4n === _3n) { + const c12 = (Fp.ORDER - _3n) / _4n; + const c22 = Fp.sqrt(Fp.neg(Z)); + sqrtRatio = (u, v) => { + let tv1 = Fp.sqr(v); + const tv2 = Fp.mul(u, v); + tv1 = Fp.mul(tv1, tv2); + let y1 = Fp.pow(tv1, c12); + y1 = Fp.mul(y1, tv2); + const y2 = Fp.mul(y1, c22); + const tv3 = Fp.mul(Fp.sqr(y1), v); + const isQR = Fp.eql(tv3, u); + let y = Fp.cmov(y2, y1, isQR); + return { isValid: isQR, value: y }; + }; + } + return sqrtRatio; + } + function mapToCurveSimpleSWU(Fp, opts) { + (0, modular_ts_1.validateField)(Fp); + if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z)) + throw new Error("mapToCurveSimpleSWU: invalid opts"); + const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z); + if (!Fp.isOdd) + throw new Error("Fp.isOdd is not implemented!"); + return (u) => { + let tv1, tv2, tv3, tv4, tv5, tv6, x, y; + tv1 = Fp.sqr(u); + tv1 = Fp.mul(tv1, opts.Z); + tv2 = Fp.sqr(tv1); + tv2 = Fp.add(tv2, tv1); + tv3 = Fp.add(tv2, Fp.ONE); + tv3 = Fp.mul(tv3, opts.B); + tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); + tv4 = Fp.mul(tv4, opts.A); + tv2 = Fp.sqr(tv3); + tv6 = Fp.sqr(tv4); + tv5 = Fp.mul(tv6, opts.A); + tv2 = Fp.add(tv2, tv5); + tv2 = Fp.mul(tv2, tv3); + tv6 = Fp.mul(tv6, tv4); + tv5 = Fp.mul(tv6, opts.B); + tv2 = Fp.add(tv2, tv5); + x = Fp.mul(tv1, tv3); + const { isValid, value } = sqrtRatio(tv2, tv6); + y = Fp.mul(tv1, u); + y = Fp.mul(y, value); + x = Fp.cmov(x, tv3, isValid); + y = Fp.cmov(y, value, isValid); + const e1 = Fp.isOdd(u) === Fp.isOdd(y); + y = Fp.cmov(Fp.neg(y), y, e1); + const tv4_inv = (0, modular_ts_1.FpInvertBatch)(Fp, [tv4], true)[0]; + x = Fp.mul(x, tv4_inv); + return { x, y }; + }; + } + } +}); + +// node_modules/@noble/curves/_shortw_utils.js +var require_shortw_utils = __commonJS({ + "node_modules/@noble/curves/_shortw_utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getHash = getHash; + exports2.createCurve = createCurve; + var hmac_1 = require_hmac(); + var utils_1 = require_utils3(); + var weierstrass_ts_1 = require_weierstrass(); + function getHash(hash) { + return { + hash, + hmac: (key, ...msgs) => (0, hmac_1.hmac)(hash, key, (0, utils_1.concatBytes)(...msgs)), + randomBytes: utils_1.randomBytes + }; + } + function createCurve(curveDef, defHash) { + const create = (hash) => (0, weierstrass_ts_1.weierstrass)({ ...curveDef, ...getHash(hash) }); + return { ...create(defHash), create }; + } + } +}); + +// node_modules/@noble/curves/secp256k1.js +var require_secp256k1 = __commonJS({ + "node_modules/@noble/curves/secp256k1.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.encodeToCurve = exports2.hashToCurve = exports2.secp256k1_hasher = exports2.schnorr = exports2.secp256k1 = void 0; + var sha2_1 = require_sha2(); + var utils_1 = require_utils3(); + var _shortw_utils_ts_1 = require_shortw_utils(); + var hash_to_curve_ts_1 = require_hash_to_curve(); + var modular_ts_1 = require_modular(); + var utils_ts_1 = require_utils4(); + var weierstrass_ts_1 = require_weierstrass(); + var secp256k1P = BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"); + var secp256k1N = BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"); + var _1n = BigInt(1); + var _2n = BigInt(2); + var divNearest = (a, b) => (a + b / _2n) / b; + function sqrtMod(y) { + const P = secp256k1P; + const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22); + const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88); + const b2 = y * y * y % P; + const b3 = b2 * b2 * y % P; + const b6 = (0, modular_ts_1.pow2)(b3, _3n, P) * b3 % P; + const b9 = (0, modular_ts_1.pow2)(b6, _3n, P) * b3 % P; + const b11 = (0, modular_ts_1.pow2)(b9, _2n, P) * b2 % P; + const b22 = (0, modular_ts_1.pow2)(b11, _11n, P) * b11 % P; + const b44 = (0, modular_ts_1.pow2)(b22, _22n, P) * b22 % P; + const b88 = (0, modular_ts_1.pow2)(b44, _44n, P) * b44 % P; + const b176 = (0, modular_ts_1.pow2)(b88, _88n, P) * b88 % P; + const b220 = (0, modular_ts_1.pow2)(b176, _44n, P) * b44 % P; + const b223 = (0, modular_ts_1.pow2)(b220, _3n, P) * b3 % P; + const t1 = (0, modular_ts_1.pow2)(b223, _23n, P) * b22 % P; + const t2 = (0, modular_ts_1.pow2)(t1, _6n, P) * b2 % P; + const root2 = (0, modular_ts_1.pow2)(t2, _2n, P); + if (!Fpk1.eql(Fpk1.sqr(root2), y)) + throw new Error("Cannot find square root"); + return root2; + } + var Fpk1 = (0, modular_ts_1.Field)(secp256k1P, void 0, void 0, { sqrt: sqrtMod }); + exports2.secp256k1 = (0, _shortw_utils_ts_1.createCurve)({ + a: BigInt(0), + b: BigInt(7), + Fp: Fpk1, + n: secp256k1N, + Gx: BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"), + Gy: BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"), + h: BigInt(1), + lowS: true, + // Allow only low-S signatures by default in sign() and verify() + endo: { + // Endomorphism, see above + beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"), + splitScalar: (k) => { + const n = secp256k1N; + const a1 = BigInt("0x3086d221a7d46bcde86c90e49284eb15"); + const b1 = -_1n * BigInt("0xe4437ed6010e88286f547fa90abfe4c3"); + const a2 = BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"); + const b2 = a1; + const POW_2_128 = BigInt("0x100000000000000000000000000000000"); + const c1 = divNearest(b2 * k, n); + const c2 = divNearest(-b1 * k, n); + let k1 = (0, modular_ts_1.mod)(k - c1 * a1 - c2 * a2, n); + let k2 = (0, modular_ts_1.mod)(-c1 * b1 - c2 * b2, n); + const k1neg = k1 > POW_2_128; + const k2neg = k2 > POW_2_128; + if (k1neg) + k1 = n - k1; + if (k2neg) + k2 = n - k2; + if (k1 > POW_2_128 || k2 > POW_2_128) { + throw new Error("splitScalar: Endomorphism failed, k=" + k); + } + return { k1neg, k1, k2neg, k2 }; + } + } + }, sha2_1.sha256); + var _0n = BigInt(0); + var TAGGED_HASH_PREFIXES = {}; + function taggedHash(tag, ...messages) { + let tagP = TAGGED_HASH_PREFIXES[tag]; + if (tagP === void 0) { + const tagH = (0, sha2_1.sha256)(Uint8Array.from(tag, (c) => c.charCodeAt(0))); + tagP = (0, utils_ts_1.concatBytes)(tagH, tagH); + TAGGED_HASH_PREFIXES[tag] = tagP; + } + return (0, sha2_1.sha256)((0, utils_ts_1.concatBytes)(tagP, ...messages)); + } + var pointToBytes = (point) => point.toRawBytes(true).slice(1); + var numTo32b = (n) => (0, utils_ts_1.numberToBytesBE)(n, 32); + var modP = (x) => (0, modular_ts_1.mod)(x, secp256k1P); + var modN = (x) => (0, modular_ts_1.mod)(x, secp256k1N); + var Point = exports2.secp256k1.ProjectivePoint; + var GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b); + function schnorrGetExtPubKey(priv) { + let d_ = exports2.secp256k1.utils.normPrivateKeyToScalar(priv); + let p = Point.fromPrivateKey(d_); + const scalar = p.hasEvenY() ? d_ : modN(-d_); + return { scalar, bytes: pointToBytes(p) }; + } + function lift_x(x) { + (0, utils_ts_1.aInRange)("x", x, _1n, secp256k1P); + const xx = modP(x * x); + const c = modP(xx * x + BigInt(7)); + let y = sqrtMod(c); + if (y % _2n !== _0n) + y = modP(-y); + const p = new Point(x, y, _1n); + p.assertValidity(); + return p; + } + var num = utils_ts_1.bytesToNumberBE; + function challenge(...args) { + return modN(num(taggedHash("BIP0340/challenge", ...args))); + } + function schnorrGetPublicKey(privateKey) { + return schnorrGetExtPubKey(privateKey).bytes; + } + function schnorrSign(message, privateKey, auxRand = (0, utils_1.randomBytes)(32)) { + const m = (0, utils_ts_1.ensureBytes)("message", message); + const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); + const a = (0, utils_ts_1.ensureBytes)("auxRand", auxRand, 32); + const t = numTo32b(d ^ num(taggedHash("BIP0340/aux", a))); + const rand = taggedHash("BIP0340/nonce", t, px, m); + const k_ = modN(num(rand)); + if (k_ === _0n) + throw new Error("sign failed: k is zero"); + const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); + const e = challenge(rx, px, m); + const sig = new Uint8Array(64); + sig.set(rx, 0); + sig.set(numTo32b(modN(k + e * d)), 32); + if (!schnorrVerify(sig, m, px)) + throw new Error("sign: Invalid signature produced"); + return sig; + } + function schnorrVerify(signature, message, publicKey23) { + const sig = (0, utils_ts_1.ensureBytes)("signature", signature, 64); + const m = (0, utils_ts_1.ensureBytes)("message", message); + const pub = (0, utils_ts_1.ensureBytes)("publicKey", publicKey23, 32); + try { + const P = lift_x(num(pub)); + const r = num(sig.subarray(0, 32)); + if (!(0, utils_ts_1.inRange)(r, _1n, secp256k1P)) + return false; + const s = num(sig.subarray(32, 64)); + if (!(0, utils_ts_1.inRange)(s, _1n, secp256k1N)) + return false; + const e = challenge(numTo32b(r), pointToBytes(P), m); + const R = GmulAdd(P, s, modN(-e)); + if (!R || !R.hasEvenY() || R.toAffine().x !== r) + return false; + return true; + } catch (error) { + return false; + } + } + exports2.schnorr = (() => ({ + getPublicKey: schnorrGetPublicKey, + sign: schnorrSign, + verify: schnorrVerify, + utils: { + randomPrivateKey: exports2.secp256k1.utils.randomPrivateKey, + lift_x, + pointToBytes, + numberToBytesBE: utils_ts_1.numberToBytesBE, + bytesToNumberBE: utils_ts_1.bytesToNumberBE, + taggedHash, + mod: modular_ts_1.mod + } + }))(); + var isoMap = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.isogenyMap)(Fpk1, [ + // xNum + [ + "0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7", + "0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581", + "0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262", + "0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c" + ], + // xDen + [ + "0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b", + "0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14", + "0x0000000000000000000000000000000000000000000000000000000000000001" + // LAST 1 + ], + // yNum + [ + "0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c", + "0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3", + "0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931", + "0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84" + ], + // yDen + [ + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b", + "0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573", + "0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f", + "0x0000000000000000000000000000000000000000000000000000000000000001" + // LAST 1 + ] + ].map((i) => i.map((j) => BigInt(j)))))(); + var mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fpk1, { + A: BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"), + B: BigInt("1771"), + Z: Fpk1.create(BigInt("-11")) + }))(); + exports2.secp256k1_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports2.secp256k1.ProjectivePoint, (scalars) => { + const { x, y } = mapSWU(Fpk1.create(scalars[0])); + return isoMap(x, y); + }, { + DST: "secp256k1_XMD:SHA-256_SSWU_RO_", + encodeDST: "secp256k1_XMD:SHA-256_SSWU_NU_", + p: Fpk1.ORDER, + m: 1, + k: 128, + expand: "xmd", + hash: sha2_1.sha256 + }))(); + exports2.hashToCurve = (() => exports2.secp256k1_hasher.hashToCurve)(); + exports2.encodeToCurve = (() => exports2.secp256k1_hasher.encodeToCurve)(); + } +}); + +// node_modules/@solana/web3.js/lib/index.cjs.js +var require_index_cjs = __commonJS({ + "node_modules/@solana/web3.js/lib/index.cjs.js"(exports2) { + "use strict"; + var buffer = require("buffer"); + var ed25519 = require_ed25519(); + var BN3 = require_bn(); + var bs58 = require_bs58(); + var sha256 = require_sha256(); + var borsh = require_lib2(); + var BufferLayout = require_Layout(); + var codecsNumbers = require_index_node3(); + var require$$0 = require("util"); + var require$$0$1 = require("http"); + var require$$0$2 = require("https"); + var superstruct = require_dist(); + var RpcClient = require_browser(); + var nodeFetch = require_lib4(); + var rpcWebsockets = require_dist2(); + var sha3 = require_sha3(); + var secp256k1 = require_secp256k1(); + function _interopDefaultCompat(e) { + return e && typeof e === "object" && "default" in e ? e : { default: e }; + } + function _interopNamespaceCompat(e) { + if (e && typeof e === "object" && "default" in e) return e; + var n = /* @__PURE__ */ Object.create(null); + if (e) { + Object.keys(e).forEach(function(k) { + if (k !== "default") { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function() { + return e[k]; + } + }); + } + }); + } + n.default = e; + return Object.freeze(n); + } + var BN__default = /* @__PURE__ */ _interopDefaultCompat(BN3); + var bs58__default = /* @__PURE__ */ _interopDefaultCompat(bs58); + var BufferLayout__namespace = /* @__PURE__ */ _interopNamespaceCompat(BufferLayout); + var require$$0__default = /* @__PURE__ */ _interopDefaultCompat(require$$0); + var require$$0__default$1 = /* @__PURE__ */ _interopDefaultCompat(require$$0$1); + var require$$0__default$2 = /* @__PURE__ */ _interopDefaultCompat(require$$0$2); + var RpcClient__default = /* @__PURE__ */ _interopDefaultCompat(RpcClient); + var nodeFetch__namespace = /* @__PURE__ */ _interopNamespaceCompat(nodeFetch); + var generatePrivateKey = ed25519.ed25519.utils.randomPrivateKey; + var generateKeypair = () => { + const privateScalar = ed25519.ed25519.utils.randomPrivateKey(); + const publicKey24 = getPublicKey(privateScalar); + const secretKey = new Uint8Array(64); + secretKey.set(privateScalar); + secretKey.set(publicKey24, 32); + return { + publicKey: publicKey24, + secretKey + }; + }; + var getPublicKey = ed25519.ed25519.getPublicKey; + function isOnCurve(publicKey24) { + try { + ed25519.ed25519.ExtendedPoint.fromHex(publicKey24); + return true; + } catch { + return false; + } + } + var sign = (message, secretKey) => ed25519.ed25519.sign(message, secretKey.slice(0, 32)); + var verify = ed25519.ed25519.verify; + var toBuffer = (arr) => { + if (buffer.Buffer.isBuffer(arr)) { + return arr; + } else if (arr instanceof Uint8Array) { + return buffer.Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength); + } else { + return buffer.Buffer.from(arr); + } + }; + var Struct = class { + constructor(properties) { + Object.assign(this, properties); + } + encode() { + return buffer.Buffer.from(borsh.serialize(SOLANA_SCHEMA, this)); + } + static decode(data) { + return borsh.deserialize(SOLANA_SCHEMA, this, data); + } + static decodeUnchecked(data) { + return borsh.deserializeUnchecked(SOLANA_SCHEMA, this, data); + } + }; + var Enum = class extends Struct { + constructor(properties) { + super(properties); + this.enum = ""; + if (Object.keys(properties).length !== 1) { + throw new Error("Enum can only take single value"); + } + Object.keys(properties).map((key) => { + this.enum = key; + }); + } + }; + var SOLANA_SCHEMA = /* @__PURE__ */ new Map(); + var _PublicKey; + var MAX_SEED_LENGTH = 32; + var PUBLIC_KEY_LENGTH = 32; + function isPublicKeyData(value) { + return value._bn !== void 0; + } + var uniquePublicKeyCounter = 1; + var PublicKey46 = class _PublicKey2 extends Struct { + /** + * Create a new PublicKey object + * @param value ed25519 public key as buffer or base-58 encoded string + */ + constructor(value) { + super({}); + this._bn = void 0; + if (isPublicKeyData(value)) { + this._bn = value._bn; + } else { + if (typeof value === "string") { + const decoded = bs58__default.default.decode(value); + if (decoded.length != PUBLIC_KEY_LENGTH) { + throw new Error(`Invalid public key input`); + } + this._bn = new BN__default.default(decoded); + } else { + this._bn = new BN__default.default(value); + } + if (this._bn.byteLength() > PUBLIC_KEY_LENGTH) { + throw new Error(`Invalid public key input`); + } + } + } + /** + * Returns a unique PublicKey for tests and benchmarks using a counter + */ + static unique() { + const key = new _PublicKey2(uniquePublicKeyCounter); + uniquePublicKeyCounter += 1; + return new _PublicKey2(key.toBuffer()); + } + /** + * Default public key value. The base58-encoded string representation is all ones (as seen below) + * The underlying BN number is 32 bytes that are all zeros + */ + /** + * Checks if two publicKeys are equal + */ + equals(publicKey24) { + return this._bn.eq(publicKey24._bn); + } + /** + * Return the base-58 representation of the public key + */ + toBase58() { + return bs58__default.default.encode(this.toBytes()); + } + toJSON() { + return this.toBase58(); + } + /** + * Return the byte array representation of the public key in big endian + */ + toBytes() { + const buf = this.toBuffer(); + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + } + /** + * Return the Buffer representation of the public key in big endian + */ + toBuffer() { + const b = this._bn.toArrayLike(buffer.Buffer); + if (b.length === PUBLIC_KEY_LENGTH) { + return b; + } + const zeroPad = buffer.Buffer.alloc(32); + b.copy(zeroPad, 32 - b.length); + return zeroPad; + } + get [Symbol.toStringTag]() { + return `PublicKey(${this.toString()})`; + } + /** + * Return the base-58 representation of the public key + */ + toString() { + return this.toBase58(); + } + /** + * Derive a public key from another key, a seed, and a program ID. + * The program ID will also serve as the owner of the public key, giving + * it permission to write data to the account. + */ + /* eslint-disable require-await */ + static async createWithSeed(fromPublicKey, seed, programId) { + const buffer$1 = buffer.Buffer.concat([fromPublicKey.toBuffer(), buffer.Buffer.from(seed), programId.toBuffer()]); + const publicKeyBytes = sha256.sha256(buffer$1); + return new _PublicKey2(publicKeyBytes); + } + /** + * Derive a program address from seeds and a program ID. + */ + /* eslint-disable require-await */ + static createProgramAddressSync(seeds, programId) { + let buffer$1 = buffer.Buffer.alloc(0); + seeds.forEach(function(seed) { + if (seed.length > MAX_SEED_LENGTH) { + throw new TypeError(`Max seed length exceeded`); + } + buffer$1 = buffer.Buffer.concat([buffer$1, toBuffer(seed)]); + }); + buffer$1 = buffer.Buffer.concat([buffer$1, programId.toBuffer(), buffer.Buffer.from("ProgramDerivedAddress")]); + const publicKeyBytes = sha256.sha256(buffer$1); + if (isOnCurve(publicKeyBytes)) { + throw new Error(`Invalid seeds, address must fall off the curve`); + } + return new _PublicKey2(publicKeyBytes); + } + /** + * Async version of createProgramAddressSync + * For backwards compatibility + * + * @deprecated Use {@link createProgramAddressSync} instead + */ + /* eslint-disable require-await */ + static async createProgramAddress(seeds, programId) { + return this.createProgramAddressSync(seeds, programId); + } + /** + * Find a valid program address + * + * Valid program addresses must fall off the ed25519 curve. This function + * iterates a nonce until it finds one that when combined with the seeds + * results in a valid program address. + */ + static findProgramAddressSync(seeds, programId) { + let nonce = 255; + let address; + while (nonce != 0) { + try { + const seedsWithNonce = seeds.concat(buffer.Buffer.from([nonce])); + address = this.createProgramAddressSync(seedsWithNonce, programId); + } catch (err) { + if (err instanceof TypeError) { + throw err; + } + nonce--; + continue; + } + return [address, nonce]; + } + throw new Error(`Unable to find a viable program address nonce`); + } + /** + * Async version of findProgramAddressSync + * For backwards compatibility + * + * @deprecated Use {@link findProgramAddressSync} instead + */ + static async findProgramAddress(seeds, programId) { + return this.findProgramAddressSync(seeds, programId); + } + /** + * Check that a pubkey is on the ed25519 curve. + */ + static isOnCurve(pubkeyData) { + const pubkey = new _PublicKey2(pubkeyData); + return isOnCurve(pubkey.toBytes()); + } + }; + _PublicKey = PublicKey46; + PublicKey46.default = new _PublicKey("11111111111111111111111111111111"); + SOLANA_SCHEMA.set(PublicKey46, { + kind: "struct", + fields: [["_bn", "u256"]] + }); + var Account = class { + /** + * Create a new Account object + * + * If the secretKey parameter is not provided a new key pair is randomly + * created for the account + * + * @param secretKey Secret key for the account + */ + constructor(secretKey) { + this._publicKey = void 0; + this._secretKey = void 0; + if (secretKey) { + const secretKeyBuffer = toBuffer(secretKey); + if (secretKey.length !== 64) { + throw new Error("bad secret key size"); + } + this._publicKey = secretKeyBuffer.slice(32, 64); + this._secretKey = secretKeyBuffer.slice(0, 32); + } else { + this._secretKey = toBuffer(generatePrivateKey()); + this._publicKey = toBuffer(getPublicKey(this._secretKey)); + } + } + /** + * The public key for this account + */ + get publicKey() { + return new PublicKey46(this._publicKey); + } + /** + * The **unencrypted** secret key for this account. The first 32 bytes + * is the private scalar and the last 32 bytes is the public key. + * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/ + */ + get secretKey() { + return buffer.Buffer.concat([this._secretKey, this._publicKey], 64); + } + }; + var BPF_LOADER_DEPRECATED_PROGRAM_ID = new PublicKey46("BPFLoader1111111111111111111111111111111111"); + var PACKET_DATA_SIZE = 1280 - 40 - 8; + var VERSION_PREFIX_MASK = 127; + var SIGNATURE_LENGTH_IN_BYTES = 64; + var TransactionExpiredBlockheightExceededError = class extends Error { + constructor(signature2) { + super(`Signature ${signature2} has expired: block height exceeded.`); + this.signature = void 0; + this.signature = signature2; + } + }; + Object.defineProperty(TransactionExpiredBlockheightExceededError.prototype, "name", { + value: "TransactionExpiredBlockheightExceededError" + }); + var TransactionExpiredTimeoutError = class extends Error { + constructor(signature2, timeoutSeconds) { + super(`Transaction was not confirmed in ${timeoutSeconds.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${signature2} using the Solana Explorer or CLI tools.`); + this.signature = void 0; + this.signature = signature2; + } + }; + Object.defineProperty(TransactionExpiredTimeoutError.prototype, "name", { + value: "TransactionExpiredTimeoutError" + }); + var TransactionExpiredNonceInvalidError = class extends Error { + constructor(signature2) { + super(`Signature ${signature2} has expired: the nonce is no longer valid.`); + this.signature = void 0; + this.signature = signature2; + } + }; + Object.defineProperty(TransactionExpiredNonceInvalidError.prototype, "name", { + value: "TransactionExpiredNonceInvalidError" + }); + var MessageAccountKeys2 = class { + constructor(staticAccountKeys, accountKeysFromLookups) { + this.staticAccountKeys = void 0; + this.accountKeysFromLookups = void 0; + this.staticAccountKeys = staticAccountKeys; + this.accountKeysFromLookups = accountKeysFromLookups; + } + keySegments() { + const keySegments = [this.staticAccountKeys]; + if (this.accountKeysFromLookups) { + keySegments.push(this.accountKeysFromLookups.writable); + keySegments.push(this.accountKeysFromLookups.readonly); + } + return keySegments; + } + get(index) { + for (const keySegment of this.keySegments()) { + if (index < keySegment.length) { + return keySegment[index]; + } else { + index -= keySegment.length; + } + } + return; + } + get length() { + return this.keySegments().flat().length; + } + compileInstructions(instructions) { + const U8_MAX = 255; + if (this.length > U8_MAX + 1) { + throw new Error("Account index overflow encountered during compilation"); + } + const keyIndexMap = /* @__PURE__ */ new Map(); + this.keySegments().flat().forEach((key, index) => { + keyIndexMap.set(key.toBase58(), index); + }); + const findKeyIndex = (key) => { + const keyIndex = keyIndexMap.get(key.toBase58()); + if (keyIndex === void 0) throw new Error("Encountered an unknown instruction account key during compilation"); + return keyIndex; + }; + return instructions.map((instruction) => { + return { + programIdIndex: findKeyIndex(instruction.programId), + accountKeyIndexes: instruction.keys.map((meta) => findKeyIndex(meta.pubkey)), + data: instruction.data + }; + }); + } + }; + var publicKey23 = (property = "publicKey") => { + return BufferLayout__namespace.blob(32, property); + }; + var signature = (property = "signature") => { + return BufferLayout__namespace.blob(64, property); + }; + var rustString = (property = "string") => { + const rsl = BufferLayout__namespace.struct([BufferLayout__namespace.u32("length"), BufferLayout__namespace.u32("lengthPadding"), BufferLayout__namespace.blob(BufferLayout__namespace.offset(BufferLayout__namespace.u32(), -8), "chars")], property); + const _decode = rsl.decode.bind(rsl); + const _encode = rsl.encode.bind(rsl); + const rslShim = rsl; + rslShim.decode = (b, offset) => { + const data = _decode(b, offset); + return data["chars"].toString(); + }; + rslShim.encode = (str, b, offset) => { + const data = { + chars: buffer.Buffer.from(str, "utf8") + }; + return _encode(data, b, offset); + }; + rslShim.alloc = (str) => { + return BufferLayout__namespace.u32().span + BufferLayout__namespace.u32().span + buffer.Buffer.from(str, "utf8").length; + }; + return rslShim; + }; + var authorized = (property = "authorized") => { + return BufferLayout__namespace.struct([publicKey23("staker"), publicKey23("withdrawer")], property); + }; + var lockup = (property = "lockup") => { + return BufferLayout__namespace.struct([BufferLayout__namespace.ns64("unixTimestamp"), BufferLayout__namespace.ns64("epoch"), publicKey23("custodian")], property); + }; + var voteInit = (property = "voteInit") => { + return BufferLayout__namespace.struct([publicKey23("nodePubkey"), publicKey23("authorizedVoter"), publicKey23("authorizedWithdrawer"), BufferLayout__namespace.u8("commission")], property); + }; + var voteAuthorizeWithSeedArgs = (property = "voteAuthorizeWithSeedArgs") => { + return BufferLayout__namespace.struct([BufferLayout__namespace.u32("voteAuthorizationType"), publicKey23("currentAuthorityDerivedKeyOwnerPubkey"), rustString("currentAuthorityDerivedKeySeed"), publicKey23("newAuthorized")], property); + }; + function getAlloc(type, fields) { + const getItemAlloc = (item) => { + if (item.span >= 0) { + return item.span; + } else if (typeof item.alloc === "function") { + return item.alloc(fields[item.property]); + } else if ("count" in item && "elementLayout" in item) { + const field = fields[item.property]; + if (Array.isArray(field)) { + return field.length * getItemAlloc(item.elementLayout); + } + } else if ("fields" in item) { + return getAlloc({ + layout: item + }, fields[item.property]); + } + return 0; + }; + let alloc = 0; + type.layout.fields.forEach((item) => { + alloc += getItemAlloc(item); + }); + return alloc; + } + function decodeLength(bytes7) { + let len = 0; + let size = 0; + for (; ; ) { + let elem = bytes7.shift(); + len |= (elem & 127) << size * 7; + size += 1; + if ((elem & 128) === 0) { + break; + } + } + return len; + } + function encodeLength(bytes7, len) { + let rem_len = len; + for (; ; ) { + let elem = rem_len & 127; + rem_len >>= 7; + if (rem_len == 0) { + bytes7.push(elem); + break; + } else { + elem |= 128; + bytes7.push(elem); + } + } + } + function assert2(condition, message) { + if (!condition) { + throw new Error(message || "Assertion failed"); + } + } + var CompiledKeys2 = class _CompiledKeys2 { + constructor(payer, keyMetaMap) { + this.payer = void 0; + this.keyMetaMap = void 0; + this.payer = payer; + this.keyMetaMap = keyMetaMap; + } + static compile(instructions, payer) { + const keyMetaMap = /* @__PURE__ */ new Map(); + const getOrInsertDefault = (pubkey) => { + const address = pubkey.toBase58(); + let keyMeta = keyMetaMap.get(address); + if (keyMeta === void 0) { + keyMeta = { + isSigner: false, + isWritable: false, + isInvoked: false + }; + keyMetaMap.set(address, keyMeta); + } + return keyMeta; + }; + const payerKeyMeta = getOrInsertDefault(payer); + payerKeyMeta.isSigner = true; + payerKeyMeta.isWritable = true; + for (const ix of instructions) { + getOrInsertDefault(ix.programId).isInvoked = true; + for (const accountMeta of ix.keys) { + const keyMeta = getOrInsertDefault(accountMeta.pubkey); + keyMeta.isSigner ||= accountMeta.isSigner; + keyMeta.isWritable ||= accountMeta.isWritable; + } + } + return new _CompiledKeys2(payer, keyMetaMap); + } + getMessageComponents() { + const mapEntries = [...this.keyMetaMap.entries()]; + assert2(mapEntries.length <= 256, "Max static account keys length exceeded"); + const writableSigners = mapEntries.filter(([, meta]) => meta.isSigner && meta.isWritable); + const readonlySigners = mapEntries.filter(([, meta]) => meta.isSigner && !meta.isWritable); + const writableNonSigners = mapEntries.filter(([, meta]) => !meta.isSigner && meta.isWritable); + const readonlyNonSigners = mapEntries.filter(([, meta]) => !meta.isSigner && !meta.isWritable); + const header = { + numRequiredSignatures: writableSigners.length + readonlySigners.length, + numReadonlySignedAccounts: readonlySigners.length, + numReadonlyUnsignedAccounts: readonlyNonSigners.length + }; + { + assert2(writableSigners.length > 0, "Expected at least one writable signer key"); + const [payerAddress] = writableSigners[0]; + assert2(payerAddress === this.payer.toBase58(), "Expected first writable signer key to be the fee payer"); + } + const staticAccountKeys = [...writableSigners.map(([address]) => new PublicKey46(address)), ...readonlySigners.map(([address]) => new PublicKey46(address)), ...writableNonSigners.map(([address]) => new PublicKey46(address)), ...readonlyNonSigners.map(([address]) => new PublicKey46(address))]; + return [header, staticAccountKeys]; + } + extractTableLookup(lookupTable) { + const [writableIndexes, drainedWritableKeys] = this.drainKeysFoundInLookupTable(lookupTable.state.addresses, (keyMeta) => !keyMeta.isSigner && !keyMeta.isInvoked && keyMeta.isWritable); + const [readonlyIndexes, drainedReadonlyKeys] = this.drainKeysFoundInLookupTable(lookupTable.state.addresses, (keyMeta) => !keyMeta.isSigner && !keyMeta.isInvoked && !keyMeta.isWritable); + if (writableIndexes.length === 0 && readonlyIndexes.length === 0) { + return; + } + return [{ + accountKey: lookupTable.key, + writableIndexes, + readonlyIndexes + }, { + writable: drainedWritableKeys, + readonly: drainedReadonlyKeys + }]; + } + /** @internal */ + drainKeysFoundInLookupTable(lookupTableEntries, keyMetaFilter) { + const lookupTableIndexes = new Array(); + const drainedKeys = new Array(); + for (const [address, keyMeta] of this.keyMetaMap.entries()) { + if (keyMetaFilter(keyMeta)) { + const key = new PublicKey46(address); + const lookupTableIndex = lookupTableEntries.findIndex((entry) => entry.equals(key)); + if (lookupTableIndex >= 0) { + assert2(lookupTableIndex < 256, "Max lookup table index exceeded"); + lookupTableIndexes.push(lookupTableIndex); + drainedKeys.push(key); + this.keyMetaMap.delete(address); + } + } + } + return [lookupTableIndexes, drainedKeys]; + } + }; + var END_OF_BUFFER_ERROR_MESSAGE = "Reached end of buffer unexpectedly"; + function guardedShift(byteArray) { + if (byteArray.length === 0) { + throw new Error(END_OF_BUFFER_ERROR_MESSAGE); + } + return byteArray.shift(); + } + function guardedSplice(byteArray, ...args) { + const [start] = args; + if (args.length === 2 ? start + (args[1] ?? 0) > byteArray.length : start >= byteArray.length) { + throw new Error(END_OF_BUFFER_ERROR_MESSAGE); + } + return byteArray.splice(...args); + } + var Message = class _Message { + constructor(args) { + this.header = void 0; + this.accountKeys = void 0; + this.recentBlockhash = void 0; + this.instructions = void 0; + this.indexToProgramIds = /* @__PURE__ */ new Map(); + this.header = args.header; + this.accountKeys = args.accountKeys.map((account) => new PublicKey46(account)); + this.recentBlockhash = args.recentBlockhash; + this.instructions = args.instructions; + this.instructions.forEach((ix) => this.indexToProgramIds.set(ix.programIdIndex, this.accountKeys[ix.programIdIndex])); + } + get version() { + return "legacy"; + } + get staticAccountKeys() { + return this.accountKeys; + } + get compiledInstructions() { + return this.instructions.map((ix) => ({ + programIdIndex: ix.programIdIndex, + accountKeyIndexes: ix.accounts, + data: bs58__default.default.decode(ix.data) + })); + } + get addressTableLookups() { + return []; + } + getAccountKeys() { + return new MessageAccountKeys2(this.staticAccountKeys); + } + static compile(args) { + const compiledKeys = CompiledKeys2.compile(args.instructions, args.payerKey); + const [header, staticAccountKeys] = compiledKeys.getMessageComponents(); + const accountKeys = new MessageAccountKeys2(staticAccountKeys); + const instructions = accountKeys.compileInstructions(args.instructions).map((ix) => ({ + programIdIndex: ix.programIdIndex, + accounts: ix.accountKeyIndexes, + data: bs58__default.default.encode(ix.data) + })); + return new _Message({ + header, + accountKeys: staticAccountKeys, + recentBlockhash: args.recentBlockhash, + instructions + }); + } + isAccountSigner(index) { + return index < this.header.numRequiredSignatures; + } + isAccountWritable(index) { + const numSignedAccounts = this.header.numRequiredSignatures; + if (index >= this.header.numRequiredSignatures) { + const unsignedAccountIndex = index - numSignedAccounts; + const numUnsignedAccounts = this.accountKeys.length - numSignedAccounts; + const numWritableUnsignedAccounts = numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts; + return unsignedAccountIndex < numWritableUnsignedAccounts; + } else { + const numWritableSignedAccounts = numSignedAccounts - this.header.numReadonlySignedAccounts; + return index < numWritableSignedAccounts; + } + } + isProgramId(index) { + return this.indexToProgramIds.has(index); + } + programIds() { + return [...this.indexToProgramIds.values()]; + } + nonProgramIds() { + return this.accountKeys.filter((_, index) => !this.isProgramId(index)); + } + serialize() { + const numKeys = this.accountKeys.length; + let keyCount = []; + encodeLength(keyCount, numKeys); + const instructions = this.instructions.map((instruction) => { + const { + accounts, + programIdIndex + } = instruction; + const data = Array.from(bs58__default.default.decode(instruction.data)); + let keyIndicesCount = []; + encodeLength(keyIndicesCount, accounts.length); + let dataCount = []; + encodeLength(dataCount, data.length); + return { + programIdIndex, + keyIndicesCount: buffer.Buffer.from(keyIndicesCount), + keyIndices: accounts, + dataLength: buffer.Buffer.from(dataCount), + data + }; + }); + let instructionCount = []; + encodeLength(instructionCount, instructions.length); + let instructionBuffer = buffer.Buffer.alloc(PACKET_DATA_SIZE); + buffer.Buffer.from(instructionCount).copy(instructionBuffer); + let instructionBufferLength = instructionCount.length; + instructions.forEach((instruction) => { + const instructionLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("programIdIndex"), BufferLayout__namespace.blob(instruction.keyIndicesCount.length, "keyIndicesCount"), BufferLayout__namespace.seq(BufferLayout__namespace.u8("keyIndex"), instruction.keyIndices.length, "keyIndices"), BufferLayout__namespace.blob(instruction.dataLength.length, "dataLength"), BufferLayout__namespace.seq(BufferLayout__namespace.u8("userdatum"), instruction.data.length, "data")]); + const length2 = instructionLayout.encode(instruction, instructionBuffer, instructionBufferLength); + instructionBufferLength += length2; + }); + instructionBuffer = instructionBuffer.slice(0, instructionBufferLength); + const signDataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.blob(1, "numRequiredSignatures"), BufferLayout__namespace.blob(1, "numReadonlySignedAccounts"), BufferLayout__namespace.blob(1, "numReadonlyUnsignedAccounts"), BufferLayout__namespace.blob(keyCount.length, "keyCount"), BufferLayout__namespace.seq(publicKey23("key"), numKeys, "keys"), publicKey23("recentBlockhash")]); + const transaction = { + numRequiredSignatures: buffer.Buffer.from([this.header.numRequiredSignatures]), + numReadonlySignedAccounts: buffer.Buffer.from([this.header.numReadonlySignedAccounts]), + numReadonlyUnsignedAccounts: buffer.Buffer.from([this.header.numReadonlyUnsignedAccounts]), + keyCount: buffer.Buffer.from(keyCount), + keys: this.accountKeys.map((key) => toBuffer(key.toBytes())), + recentBlockhash: bs58__default.default.decode(this.recentBlockhash) + }; + let signData = buffer.Buffer.alloc(2048); + const length = signDataLayout.encode(transaction, signData); + instructionBuffer.copy(signData, length); + return signData.slice(0, length + instructionBuffer.length); + } + /** + * Decode a compiled message into a Message object. + */ + static from(buffer$1) { + let byteArray = [...buffer$1]; + const numRequiredSignatures = guardedShift(byteArray); + if (numRequiredSignatures !== (numRequiredSignatures & VERSION_PREFIX_MASK)) { + throw new Error("Versioned messages must be deserialized with VersionedMessage.deserialize()"); + } + const numReadonlySignedAccounts = guardedShift(byteArray); + const numReadonlyUnsignedAccounts = guardedShift(byteArray); + const accountCount = decodeLength(byteArray); + let accountKeys = []; + for (let i = 0; i < accountCount; i++) { + const account = guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH); + accountKeys.push(new PublicKey46(buffer.Buffer.from(account))); + } + const recentBlockhash = guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH); + const instructionCount = decodeLength(byteArray); + let instructions = []; + for (let i = 0; i < instructionCount; i++) { + const programIdIndex = guardedShift(byteArray); + const accountCount2 = decodeLength(byteArray); + const accounts = guardedSplice(byteArray, 0, accountCount2); + const dataLength = decodeLength(byteArray); + const dataSlice = guardedSplice(byteArray, 0, dataLength); + const data = bs58__default.default.encode(buffer.Buffer.from(dataSlice)); + instructions.push({ + programIdIndex, + accounts, + data + }); + } + const messageArgs = { + header: { + numRequiredSignatures, + numReadonlySignedAccounts, + numReadonlyUnsignedAccounts + }, + recentBlockhash: bs58__default.default.encode(buffer.Buffer.from(recentBlockhash)), + accountKeys, + instructions + }; + return new _Message(messageArgs); + } + }; + var MessageV02 = class _MessageV0 { + constructor(args) { + this.header = void 0; + this.staticAccountKeys = void 0; + this.recentBlockhash = void 0; + this.compiledInstructions = void 0; + this.addressTableLookups = void 0; + this.header = args.header; + this.staticAccountKeys = args.staticAccountKeys; + this.recentBlockhash = args.recentBlockhash; + this.compiledInstructions = args.compiledInstructions; + this.addressTableLookups = args.addressTableLookups; + } + get version() { + return 0; + } + get numAccountKeysFromLookups() { + let count = 0; + for (const lookup of this.addressTableLookups) { + count += lookup.readonlyIndexes.length + lookup.writableIndexes.length; + } + return count; + } + getAccountKeys(args) { + let accountKeysFromLookups; + if (args && "accountKeysFromLookups" in args && args.accountKeysFromLookups) { + if (this.numAccountKeysFromLookups != args.accountKeysFromLookups.writable.length + args.accountKeysFromLookups.readonly.length) { + throw new Error("Failed to get account keys because of a mismatch in the number of account keys from lookups"); + } + accountKeysFromLookups = args.accountKeysFromLookups; + } else if (args && "addressLookupTableAccounts" in args && args.addressLookupTableAccounts) { + accountKeysFromLookups = this.resolveAddressTableLookups(args.addressLookupTableAccounts); + } else if (this.addressTableLookups.length > 0) { + throw new Error("Failed to get account keys because address table lookups were not resolved"); + } + return new MessageAccountKeys2(this.staticAccountKeys, accountKeysFromLookups); + } + isAccountSigner(index) { + return index < this.header.numRequiredSignatures; + } + isAccountWritable(index) { + const numSignedAccounts = this.header.numRequiredSignatures; + const numStaticAccountKeys = this.staticAccountKeys.length; + if (index >= numStaticAccountKeys) { + const lookupAccountKeysIndex = index - numStaticAccountKeys; + const numWritableLookupAccountKeys = this.addressTableLookups.reduce((count, lookup) => count + lookup.writableIndexes.length, 0); + return lookupAccountKeysIndex < numWritableLookupAccountKeys; + } else if (index >= this.header.numRequiredSignatures) { + const unsignedAccountIndex = index - numSignedAccounts; + const numUnsignedAccounts = numStaticAccountKeys - numSignedAccounts; + const numWritableUnsignedAccounts = numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts; + return unsignedAccountIndex < numWritableUnsignedAccounts; + } else { + const numWritableSignedAccounts = numSignedAccounts - this.header.numReadonlySignedAccounts; + return index < numWritableSignedAccounts; + } + } + resolveAddressTableLookups(addressLookupTableAccounts) { + const accountKeysFromLookups = { + writable: [], + readonly: [] + }; + for (const tableLookup of this.addressTableLookups) { + const tableAccount = addressLookupTableAccounts.find((account) => account.key.equals(tableLookup.accountKey)); + if (!tableAccount) { + throw new Error(`Failed to find address lookup table account for table key ${tableLookup.accountKey.toBase58()}`); + } + for (const index of tableLookup.writableIndexes) { + if (index < tableAccount.state.addresses.length) { + accountKeysFromLookups.writable.push(tableAccount.state.addresses[index]); + } else { + throw new Error(`Failed to find address for index ${index} in address lookup table ${tableLookup.accountKey.toBase58()}`); + } + } + for (const index of tableLookup.readonlyIndexes) { + if (index < tableAccount.state.addresses.length) { + accountKeysFromLookups.readonly.push(tableAccount.state.addresses[index]); + } else { + throw new Error(`Failed to find address for index ${index} in address lookup table ${tableLookup.accountKey.toBase58()}`); + } + } + } + return accountKeysFromLookups; + } + static compile(args) { + const compiledKeys = CompiledKeys2.compile(args.instructions, args.payerKey); + const addressTableLookups = new Array(); + const accountKeysFromLookups = { + writable: new Array(), + readonly: new Array() + }; + const lookupTableAccounts = args.addressLookupTableAccounts || []; + for (const lookupTable of lookupTableAccounts) { + const extractResult = compiledKeys.extractTableLookup(lookupTable); + if (extractResult !== void 0) { + const [addressTableLookup, { + writable, + readonly + }] = extractResult; + addressTableLookups.push(addressTableLookup); + accountKeysFromLookups.writable.push(...writable); + accountKeysFromLookups.readonly.push(...readonly); + } + } + const [header, staticAccountKeys] = compiledKeys.getMessageComponents(); + const accountKeys = new MessageAccountKeys2(staticAccountKeys, accountKeysFromLookups); + const compiledInstructions = accountKeys.compileInstructions(args.instructions); + return new _MessageV0({ + header, + staticAccountKeys, + recentBlockhash: args.recentBlockhash, + compiledInstructions, + addressTableLookups + }); + } + serialize() { + const encodedStaticAccountKeysLength = Array(); + encodeLength(encodedStaticAccountKeysLength, this.staticAccountKeys.length); + const serializedInstructions = this.serializeInstructions(); + const encodedInstructionsLength = Array(); + encodeLength(encodedInstructionsLength, this.compiledInstructions.length); + const serializedAddressTableLookups = this.serializeAddressTableLookups(); + const encodedAddressTableLookupsLength = Array(); + encodeLength(encodedAddressTableLookupsLength, this.addressTableLookups.length); + const messageLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("prefix"), BufferLayout__namespace.struct([BufferLayout__namespace.u8("numRequiredSignatures"), BufferLayout__namespace.u8("numReadonlySignedAccounts"), BufferLayout__namespace.u8("numReadonlyUnsignedAccounts")], "header"), BufferLayout__namespace.blob(encodedStaticAccountKeysLength.length, "staticAccountKeysLength"), BufferLayout__namespace.seq(publicKey23(), this.staticAccountKeys.length, "staticAccountKeys"), publicKey23("recentBlockhash"), BufferLayout__namespace.blob(encodedInstructionsLength.length, "instructionsLength"), BufferLayout__namespace.blob(serializedInstructions.length, "serializedInstructions"), BufferLayout__namespace.blob(encodedAddressTableLookupsLength.length, "addressTableLookupsLength"), BufferLayout__namespace.blob(serializedAddressTableLookups.length, "serializedAddressTableLookups")]); + const serializedMessage = new Uint8Array(PACKET_DATA_SIZE); + const MESSAGE_VERSION_0_PREFIX = 1 << 7; + const serializedMessageLength = messageLayout.encode({ + prefix: MESSAGE_VERSION_0_PREFIX, + header: this.header, + staticAccountKeysLength: new Uint8Array(encodedStaticAccountKeysLength), + staticAccountKeys: this.staticAccountKeys.map((key) => key.toBytes()), + recentBlockhash: bs58__default.default.decode(this.recentBlockhash), + instructionsLength: new Uint8Array(encodedInstructionsLength), + serializedInstructions, + addressTableLookupsLength: new Uint8Array(encodedAddressTableLookupsLength), + serializedAddressTableLookups + }, serializedMessage); + return serializedMessage.slice(0, serializedMessageLength); + } + serializeInstructions() { + let serializedLength = 0; + const serializedInstructions = new Uint8Array(PACKET_DATA_SIZE); + for (const instruction of this.compiledInstructions) { + const encodedAccountKeyIndexesLength = Array(); + encodeLength(encodedAccountKeyIndexesLength, instruction.accountKeyIndexes.length); + const encodedDataLength = Array(); + encodeLength(encodedDataLength, instruction.data.length); + const instructionLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("programIdIndex"), BufferLayout__namespace.blob(encodedAccountKeyIndexesLength.length, "encodedAccountKeyIndexesLength"), BufferLayout__namespace.seq(BufferLayout__namespace.u8(), instruction.accountKeyIndexes.length, "accountKeyIndexes"), BufferLayout__namespace.blob(encodedDataLength.length, "encodedDataLength"), BufferLayout__namespace.blob(instruction.data.length, "data")]); + serializedLength += instructionLayout.encode({ + programIdIndex: instruction.programIdIndex, + encodedAccountKeyIndexesLength: new Uint8Array(encodedAccountKeyIndexesLength), + accountKeyIndexes: instruction.accountKeyIndexes, + encodedDataLength: new Uint8Array(encodedDataLength), + data: instruction.data + }, serializedInstructions, serializedLength); + } + return serializedInstructions.slice(0, serializedLength); + } + serializeAddressTableLookups() { + let serializedLength = 0; + const serializedAddressTableLookups = new Uint8Array(PACKET_DATA_SIZE); + for (const lookup of this.addressTableLookups) { + const encodedWritableIndexesLength = Array(); + encodeLength(encodedWritableIndexesLength, lookup.writableIndexes.length); + const encodedReadonlyIndexesLength = Array(); + encodeLength(encodedReadonlyIndexesLength, lookup.readonlyIndexes.length); + const addressTableLookupLayout = BufferLayout__namespace.struct([publicKey23("accountKey"), BufferLayout__namespace.blob(encodedWritableIndexesLength.length, "encodedWritableIndexesLength"), BufferLayout__namespace.seq(BufferLayout__namespace.u8(), lookup.writableIndexes.length, "writableIndexes"), BufferLayout__namespace.blob(encodedReadonlyIndexesLength.length, "encodedReadonlyIndexesLength"), BufferLayout__namespace.seq(BufferLayout__namespace.u8(), lookup.readonlyIndexes.length, "readonlyIndexes")]); + serializedLength += addressTableLookupLayout.encode({ + accountKey: lookup.accountKey.toBytes(), + encodedWritableIndexesLength: new Uint8Array(encodedWritableIndexesLength), + writableIndexes: lookup.writableIndexes, + encodedReadonlyIndexesLength: new Uint8Array(encodedReadonlyIndexesLength), + readonlyIndexes: lookup.readonlyIndexes + }, serializedAddressTableLookups, serializedLength); + } + return serializedAddressTableLookups.slice(0, serializedLength); + } + static deserialize(serializedMessage) { + let byteArray = [...serializedMessage]; + const prefix = guardedShift(byteArray); + const maskedPrefix = prefix & VERSION_PREFIX_MASK; + assert2(prefix !== maskedPrefix, `Expected versioned message but received legacy message`); + const version2 = maskedPrefix; + assert2(version2 === 0, `Expected versioned message with version 0 but found version ${version2}`); + const header = { + numRequiredSignatures: guardedShift(byteArray), + numReadonlySignedAccounts: guardedShift(byteArray), + numReadonlyUnsignedAccounts: guardedShift(byteArray) + }; + const staticAccountKeys = []; + const staticAccountKeysLength = decodeLength(byteArray); + for (let i = 0; i < staticAccountKeysLength; i++) { + staticAccountKeys.push(new PublicKey46(guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH))); + } + const recentBlockhash = bs58__default.default.encode(guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH)); + const instructionCount = decodeLength(byteArray); + const compiledInstructions = []; + for (let i = 0; i < instructionCount; i++) { + const programIdIndex = guardedShift(byteArray); + const accountKeyIndexesLength = decodeLength(byteArray); + const accountKeyIndexes = guardedSplice(byteArray, 0, accountKeyIndexesLength); + const dataLength = decodeLength(byteArray); + const data = new Uint8Array(guardedSplice(byteArray, 0, dataLength)); + compiledInstructions.push({ + programIdIndex, + accountKeyIndexes, + data + }); + } + const addressTableLookupsCount = decodeLength(byteArray); + const addressTableLookups = []; + for (let i = 0; i < addressTableLookupsCount; i++) { + const accountKey = new PublicKey46(guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH)); + const writableIndexesLength = decodeLength(byteArray); + const writableIndexes = guardedSplice(byteArray, 0, writableIndexesLength); + const readonlyIndexesLength = decodeLength(byteArray); + const readonlyIndexes = guardedSplice(byteArray, 0, readonlyIndexesLength); + addressTableLookups.push({ + accountKey, + writableIndexes, + readonlyIndexes + }); + } + return new _MessageV0({ + header, + staticAccountKeys, + recentBlockhash, + compiledInstructions, + addressTableLookups + }); + } + }; + var VersionedMessage = { + deserializeMessageVersion(serializedMessage) { + const prefix = serializedMessage[0]; + const maskedPrefix = prefix & VERSION_PREFIX_MASK; + if (maskedPrefix === prefix) { + return "legacy"; + } + return maskedPrefix; + }, + deserialize: (serializedMessage) => { + const version2 = VersionedMessage.deserializeMessageVersion(serializedMessage); + if (version2 === "legacy") { + return Message.from(serializedMessage); + } + if (version2 === 0) { + return MessageV02.deserialize(serializedMessage); + } else { + throw new Error(`Transaction message version ${version2} deserialization is not supported`); + } + } + }; + var TransactionStatus = /* @__PURE__ */ function(TransactionStatus2) { + TransactionStatus2[TransactionStatus2["BLOCKHEIGHT_EXCEEDED"] = 0] = "BLOCKHEIGHT_EXCEEDED"; + TransactionStatus2[TransactionStatus2["PROCESSED"] = 1] = "PROCESSED"; + TransactionStatus2[TransactionStatus2["TIMED_OUT"] = 2] = "TIMED_OUT"; + TransactionStatus2[TransactionStatus2["NONCE_INVALID"] = 3] = "NONCE_INVALID"; + return TransactionStatus2; + }({}); + var DEFAULT_SIGNATURE = buffer.Buffer.alloc(SIGNATURE_LENGTH_IN_BYTES).fill(0); + var TransactionInstruction33 = class { + constructor(opts) { + this.keys = void 0; + this.programId = void 0; + this.data = buffer.Buffer.alloc(0); + this.programId = opts.programId; + this.keys = opts.keys; + if (opts.data) { + this.data = opts.data; + } + } + /** + * @internal + */ + toJSON() { + return { + keys: this.keys.map(({ + pubkey, + isSigner, + isWritable + }) => ({ + pubkey: pubkey.toJSON(), + isSigner, + isWritable + })), + programId: this.programId.toJSON(), + data: [...this.data] + }; + } + }; + var Transaction = class _Transaction { + /** + * The first (payer) Transaction signature + * + * @returns {Buffer | null} Buffer of payer's signature + */ + get signature() { + if (this.signatures.length > 0) { + return this.signatures[0].signature; + } + return null; + } + /** + * The transaction fee payer + */ + // Construct a transaction with a blockhash and lastValidBlockHeight + // Construct a transaction using a durable nonce + /** + * @deprecated `TransactionCtorFields` has been deprecated and will be removed in a future version. + * Please supply a `TransactionBlockhashCtor` instead. + */ + /** + * Construct an empty Transaction + */ + constructor(opts) { + this.signatures = []; + this.feePayer = void 0; + this.instructions = []; + this.recentBlockhash = void 0; + this.lastValidBlockHeight = void 0; + this.nonceInfo = void 0; + this.minNonceContextSlot = void 0; + this._message = void 0; + this._json = void 0; + if (!opts) { + return; + } + if (opts.feePayer) { + this.feePayer = opts.feePayer; + } + if (opts.signatures) { + this.signatures = opts.signatures; + } + if (Object.prototype.hasOwnProperty.call(opts, "nonceInfo")) { + const { + minContextSlot, + nonceInfo + } = opts; + this.minNonceContextSlot = minContextSlot; + this.nonceInfo = nonceInfo; + } else if (Object.prototype.hasOwnProperty.call(opts, "lastValidBlockHeight")) { + const { + blockhash, + lastValidBlockHeight + } = opts; + this.recentBlockhash = blockhash; + this.lastValidBlockHeight = lastValidBlockHeight; + } else { + const { + recentBlockhash, + nonceInfo + } = opts; + if (nonceInfo) { + this.nonceInfo = nonceInfo; + } + this.recentBlockhash = recentBlockhash; + } + } + /** + * @internal + */ + toJSON() { + return { + recentBlockhash: this.recentBlockhash || null, + feePayer: this.feePayer ? this.feePayer.toJSON() : null, + nonceInfo: this.nonceInfo ? { + nonce: this.nonceInfo.nonce, + nonceInstruction: this.nonceInfo.nonceInstruction.toJSON() + } : null, + instructions: this.instructions.map((instruction) => instruction.toJSON()), + signers: this.signatures.map(({ + publicKey: publicKey24 + }) => { + return publicKey24.toJSON(); + }) + }; + } + /** + * Add one or more instructions to this Transaction + * + * @param {Array< Transaction | TransactionInstruction | TransactionInstructionCtorFields >} items - Instructions to add to the Transaction + */ + add(...items) { + if (items.length === 0) { + throw new Error("No instructions"); + } + items.forEach((item) => { + if ("instructions" in item) { + this.instructions = this.instructions.concat(item.instructions); + } else if ("data" in item && "programId" in item && "keys" in item) { + this.instructions.push(item); + } else { + this.instructions.push(new TransactionInstruction33(item)); + } + }); + return this; + } + /** + * Compile transaction data + */ + compileMessage() { + if (this._message && JSON.stringify(this.toJSON()) === JSON.stringify(this._json)) { + return this._message; + } + let recentBlockhash; + let instructions; + if (this.nonceInfo) { + recentBlockhash = this.nonceInfo.nonce; + if (this.instructions[0] != this.nonceInfo.nonceInstruction) { + instructions = [this.nonceInfo.nonceInstruction, ...this.instructions]; + } else { + instructions = this.instructions; + } + } else { + recentBlockhash = this.recentBlockhash; + instructions = this.instructions; + } + if (!recentBlockhash) { + throw new Error("Transaction recentBlockhash required"); + } + if (instructions.length < 1) { + console.warn("No instructions provided"); + } + let feePayer; + if (this.feePayer) { + feePayer = this.feePayer; + } else if (this.signatures.length > 0 && this.signatures[0].publicKey) { + feePayer = this.signatures[0].publicKey; + } else { + throw new Error("Transaction fee payer required"); + } + for (let i = 0; i < instructions.length; i++) { + if (instructions[i].programId === void 0) { + throw new Error(`Transaction instruction index ${i} has undefined program id`); + } + } + const programIds = []; + const accountMetas = []; + instructions.forEach((instruction) => { + instruction.keys.forEach((accountMeta) => { + accountMetas.push({ + ...accountMeta + }); + }); + const programId = instruction.programId.toString(); + if (!programIds.includes(programId)) { + programIds.push(programId); + } + }); + programIds.forEach((programId) => { + accountMetas.push({ + pubkey: new PublicKey46(programId), + isSigner: false, + isWritable: false + }); + }); + const uniqueMetas = []; + accountMetas.forEach((accountMeta) => { + const pubkeyString = accountMeta.pubkey.toString(); + const uniqueIndex = uniqueMetas.findIndex((x) => { + return x.pubkey.toString() === pubkeyString; + }); + if (uniqueIndex > -1) { + uniqueMetas[uniqueIndex].isWritable = uniqueMetas[uniqueIndex].isWritable || accountMeta.isWritable; + uniqueMetas[uniqueIndex].isSigner = uniqueMetas[uniqueIndex].isSigner || accountMeta.isSigner; + } else { + uniqueMetas.push(accountMeta); + } + }); + uniqueMetas.sort(function(x, y) { + if (x.isSigner !== y.isSigner) { + return x.isSigner ? -1 : 1; + } + if (x.isWritable !== y.isWritable) { + return x.isWritable ? -1 : 1; + } + const options = { + localeMatcher: "best fit", + usage: "sort", + sensitivity: "variant", + ignorePunctuation: false, + numeric: false, + caseFirst: "lower" + }; + return x.pubkey.toBase58().localeCompare(y.pubkey.toBase58(), "en", options); + }); + const feePayerIndex = uniqueMetas.findIndex((x) => { + return x.pubkey.equals(feePayer); + }); + if (feePayerIndex > -1) { + const [payerMeta] = uniqueMetas.splice(feePayerIndex, 1); + payerMeta.isSigner = true; + payerMeta.isWritable = true; + uniqueMetas.unshift(payerMeta); + } else { + uniqueMetas.unshift({ + pubkey: feePayer, + isSigner: true, + isWritable: true + }); + } + for (const signature2 of this.signatures) { + const uniqueIndex = uniqueMetas.findIndex((x) => { + return x.pubkey.equals(signature2.publicKey); + }); + if (uniqueIndex > -1) { + if (!uniqueMetas[uniqueIndex].isSigner) { + uniqueMetas[uniqueIndex].isSigner = true; + console.warn("Transaction references a signature that is unnecessary, only the fee payer and instruction signer accounts should sign a transaction. This behavior is deprecated and will throw an error in the next major version release."); + } + } else { + throw new Error(`unknown signer: ${signature2.publicKey.toString()}`); + } + } + let numRequiredSignatures = 0; + let numReadonlySignedAccounts = 0; + let numReadonlyUnsignedAccounts = 0; + const signedKeys = []; + const unsignedKeys = []; + uniqueMetas.forEach(({ + pubkey, + isSigner, + isWritable + }) => { + if (isSigner) { + signedKeys.push(pubkey.toString()); + numRequiredSignatures += 1; + if (!isWritable) { + numReadonlySignedAccounts += 1; + } + } else { + unsignedKeys.push(pubkey.toString()); + if (!isWritable) { + numReadonlyUnsignedAccounts += 1; + } + } + }); + const accountKeys = signedKeys.concat(unsignedKeys); + const compiledInstructions = instructions.map((instruction) => { + const { + data, + programId + } = instruction; + return { + programIdIndex: accountKeys.indexOf(programId.toString()), + accounts: instruction.keys.map((meta) => accountKeys.indexOf(meta.pubkey.toString())), + data: bs58__default.default.encode(data) + }; + }); + compiledInstructions.forEach((instruction) => { + assert2(instruction.programIdIndex >= 0); + instruction.accounts.forEach((keyIndex) => assert2(keyIndex >= 0)); + }); + return new Message({ + header: { + numRequiredSignatures, + numReadonlySignedAccounts, + numReadonlyUnsignedAccounts + }, + accountKeys, + recentBlockhash, + instructions: compiledInstructions + }); + } + /** + * @internal + */ + _compile() { + const message = this.compileMessage(); + const signedKeys = message.accountKeys.slice(0, message.header.numRequiredSignatures); + if (this.signatures.length === signedKeys.length) { + const valid = this.signatures.every((pair, index) => { + return signedKeys[index].equals(pair.publicKey); + }); + if (valid) return message; + } + this.signatures = signedKeys.map((publicKey24) => ({ + signature: null, + publicKey: publicKey24 + })); + return message; + } + /** + * Get a buffer of the Transaction data that need to be covered by signatures + */ + serializeMessage() { + return this._compile().serialize(); + } + /** + * Get the estimated fee associated with a transaction + * + * @param {Connection} connection Connection to RPC Endpoint. + * + * @returns {Promise} The estimated fee for the transaction + */ + async getEstimatedFee(connection) { + return (await connection.getFeeForMessage(this.compileMessage())).value; + } + /** + * Specify the public keys which will be used to sign the Transaction. + * The first signer will be used as the transaction fee payer account. + * + * Signatures can be added with either `partialSign` or `addSignature` + * + * @deprecated Deprecated since v0.84.0. Only the fee payer needs to be + * specified and it can be set in the Transaction constructor or with the + * `feePayer` property. + */ + setSigners(...signers) { + if (signers.length === 0) { + throw new Error("No signers"); + } + const seen = /* @__PURE__ */ new Set(); + this.signatures = signers.filter((publicKey24) => { + const key = publicKey24.toString(); + if (seen.has(key)) { + return false; + } else { + seen.add(key); + return true; + } + }).map((publicKey24) => ({ + signature: null, + publicKey: publicKey24 + })); + } + /** + * Sign the Transaction with the specified signers. Multiple signatures may + * be applied to a Transaction. The first signature is considered "primary" + * and is used identify and confirm transactions. + * + * If the Transaction `feePayer` is not set, the first signer will be used + * as the transaction fee payer account. + * + * Transaction fields should not be modified after the first call to `sign`, + * as doing so may invalidate the signature and cause the Transaction to be + * rejected. + * + * The Transaction must be assigned a valid `recentBlockhash` before invoking this method + * + * @param {Array} signers Array of signers that will sign the transaction + */ + sign(...signers) { + if (signers.length === 0) { + throw new Error("No signers"); + } + const seen = /* @__PURE__ */ new Set(); + const uniqueSigners = []; + for (const signer of signers) { + const key = signer.publicKey.toString(); + if (seen.has(key)) { + continue; + } else { + seen.add(key); + uniqueSigners.push(signer); + } + } + this.signatures = uniqueSigners.map((signer) => ({ + signature: null, + publicKey: signer.publicKey + })); + const message = this._compile(); + this._partialSign(message, ...uniqueSigners); + } + /** + * Partially sign a transaction with the specified accounts. All accounts must + * correspond to either the fee payer or a signer account in the transaction + * instructions. + * + * All the caveats from the `sign` method apply to `partialSign` + * + * @param {Array} signers Array of signers that will sign the transaction + */ + partialSign(...signers) { + if (signers.length === 0) { + throw new Error("No signers"); + } + const seen = /* @__PURE__ */ new Set(); + const uniqueSigners = []; + for (const signer of signers) { + const key = signer.publicKey.toString(); + if (seen.has(key)) { + continue; + } else { + seen.add(key); + uniqueSigners.push(signer); + } + } + const message = this._compile(); + this._partialSign(message, ...uniqueSigners); + } + /** + * @internal + */ + _partialSign(message, ...signers) { + const signData = message.serialize(); + signers.forEach((signer) => { + const signature2 = sign(signData, signer.secretKey); + this._addSignature(signer.publicKey, toBuffer(signature2)); + }); + } + /** + * Add an externally created signature to a transaction. The public key + * must correspond to either the fee payer or a signer account in the transaction + * instructions. + * + * @param {PublicKey} pubkey Public key that will be added to the transaction. + * @param {Buffer} signature An externally created signature to add to the transaction. + */ + addSignature(pubkey, signature2) { + this._compile(); + this._addSignature(pubkey, signature2); + } + /** + * @internal + */ + _addSignature(pubkey, signature2) { + assert2(signature2.length === 64); + const index = this.signatures.findIndex((sigpair) => pubkey.equals(sigpair.publicKey)); + if (index < 0) { + throw new Error(`unknown signer: ${pubkey.toString()}`); + } + this.signatures[index].signature = buffer.Buffer.from(signature2); + } + /** + * Verify signatures of a Transaction + * Optional parameter specifies if we're expecting a fully signed Transaction or a partially signed one. + * If no boolean is provided, we expect a fully signed Transaction by default. + * + * @param {boolean} [requireAllSignatures=true] Require a fully signed Transaction + */ + verifySignatures(requireAllSignatures = true) { + const signatureErrors = this._getMessageSignednessErrors(this.serializeMessage(), requireAllSignatures); + return !signatureErrors; + } + /** + * @internal + */ + _getMessageSignednessErrors(message, requireAllSignatures) { + const errors = {}; + for (const { + signature: signature2, + publicKey: publicKey24 + } of this.signatures) { + if (signature2 === null) { + if (requireAllSignatures) { + (errors.missing ||= []).push(publicKey24); + } + } else { + if (!verify(signature2, message, publicKey24.toBytes())) { + (errors.invalid ||= []).push(publicKey24); + } + } + } + return errors.invalid || errors.missing ? errors : void 0; + } + /** + * Serialize the Transaction in the wire format. + * + * @param {Buffer} [config] Config of transaction. + * + * @returns {Buffer} Signature of transaction in wire format. + */ + serialize(config) { + const { + requireAllSignatures, + verifySignatures + } = Object.assign({ + requireAllSignatures: true, + verifySignatures: true + }, config); + const signData = this.serializeMessage(); + if (verifySignatures) { + const sigErrors = this._getMessageSignednessErrors(signData, requireAllSignatures); + if (sigErrors) { + let errorMessage = "Signature verification failed."; + if (sigErrors.invalid) { + errorMessage += ` +Invalid signature for public key${sigErrors.invalid.length === 1 ? "" : "(s)"} [\`${sigErrors.invalid.map((p) => p.toBase58()).join("`, `")}\`].`; + } + if (sigErrors.missing) { + errorMessage += ` +Missing signature for public key${sigErrors.missing.length === 1 ? "" : "(s)"} [\`${sigErrors.missing.map((p) => p.toBase58()).join("`, `")}\`].`; + } + throw new Error(errorMessage); + } + } + return this._serialize(signData); + } + /** + * @internal + */ + _serialize(signData) { + const { + signatures + } = this; + const signatureCount = []; + encodeLength(signatureCount, signatures.length); + const transactionLength = signatureCount.length + signatures.length * 64 + signData.length; + const wireTransaction = buffer.Buffer.alloc(transactionLength); + assert2(signatures.length < 256); + buffer.Buffer.from(signatureCount).copy(wireTransaction, 0); + signatures.forEach(({ + signature: signature2 + }, index) => { + if (signature2 !== null) { + assert2(signature2.length === 64, `signature has invalid length`); + buffer.Buffer.from(signature2).copy(wireTransaction, signatureCount.length + index * 64); + } + }); + signData.copy(wireTransaction, signatureCount.length + signatures.length * 64); + assert2(wireTransaction.length <= PACKET_DATA_SIZE, `Transaction too large: ${wireTransaction.length} > ${PACKET_DATA_SIZE}`); + return wireTransaction; + } + /** + * Deprecated method + * @internal + */ + get keys() { + assert2(this.instructions.length === 1); + return this.instructions[0].keys.map((keyObj) => keyObj.pubkey); + } + /** + * Deprecated method + * @internal + */ + get programId() { + assert2(this.instructions.length === 1); + return this.instructions[0].programId; + } + /** + * Deprecated method + * @internal + */ + get data() { + assert2(this.instructions.length === 1); + return this.instructions[0].data; + } + /** + * Parse a wire transaction into a Transaction object. + * + * @param {Buffer | Uint8Array | Array} buffer Signature of wire Transaction + * + * @returns {Transaction} Transaction associated with the signature + */ + static from(buffer$1) { + let byteArray = [...buffer$1]; + const signatureCount = decodeLength(byteArray); + let signatures = []; + for (let i = 0; i < signatureCount; i++) { + const signature2 = guardedSplice(byteArray, 0, SIGNATURE_LENGTH_IN_BYTES); + signatures.push(bs58__default.default.encode(buffer.Buffer.from(signature2))); + } + return _Transaction.populate(Message.from(byteArray), signatures); + } + /** + * Populate Transaction object from message and signatures + * + * @param {Message} message Message of transaction + * @param {Array} signatures List of signatures to assign to the transaction + * + * @returns {Transaction} The populated Transaction + */ + static populate(message, signatures = []) { + const transaction = new _Transaction(); + transaction.recentBlockhash = message.recentBlockhash; + if (message.header.numRequiredSignatures > 0) { + transaction.feePayer = message.accountKeys[0]; + } + signatures.forEach((signature2, index) => { + const sigPubkeyPair = { + signature: signature2 == bs58__default.default.encode(DEFAULT_SIGNATURE) ? null : bs58__default.default.decode(signature2), + publicKey: message.accountKeys[index] + }; + transaction.signatures.push(sigPubkeyPair); + }); + message.instructions.forEach((instruction) => { + const keys = instruction.accounts.map((account) => { + const pubkey = message.accountKeys[account]; + return { + pubkey, + isSigner: transaction.signatures.some((keyObj) => keyObj.publicKey.toString() === pubkey.toString()) || message.isAccountSigner(account), + isWritable: message.isAccountWritable(account) + }; + }); + transaction.instructions.push(new TransactionInstruction33({ + keys, + programId: message.accountKeys[instruction.programIdIndex], + data: bs58__default.default.decode(instruction.data) + })); + }); + transaction._message = message; + transaction._json = transaction.toJSON(); + return transaction; + } + }; + var TransactionMessage29 = class _TransactionMessage { + constructor(args) { + this.payerKey = void 0; + this.instructions = void 0; + this.recentBlockhash = void 0; + this.payerKey = args.payerKey; + this.instructions = args.instructions; + this.recentBlockhash = args.recentBlockhash; + } + static decompile(message, args) { + const { + header, + compiledInstructions, + recentBlockhash + } = message; + const { + numRequiredSignatures, + numReadonlySignedAccounts, + numReadonlyUnsignedAccounts + } = header; + const numWritableSignedAccounts = numRequiredSignatures - numReadonlySignedAccounts; + assert2(numWritableSignedAccounts > 0, "Message header is invalid"); + const numWritableUnsignedAccounts = message.staticAccountKeys.length - numRequiredSignatures - numReadonlyUnsignedAccounts; + assert2(numWritableUnsignedAccounts >= 0, "Message header is invalid"); + const accountKeys = message.getAccountKeys(args); + const payerKey = accountKeys.get(0); + if (payerKey === void 0) { + throw new Error("Failed to decompile message because no account keys were found"); + } + const instructions = []; + for (const compiledIx of compiledInstructions) { + const keys = []; + for (const keyIndex of compiledIx.accountKeyIndexes) { + const pubkey = accountKeys.get(keyIndex); + if (pubkey === void 0) { + throw new Error(`Failed to find key for account key index ${keyIndex}`); + } + const isSigner = keyIndex < numRequiredSignatures; + let isWritable; + if (isSigner) { + isWritable = keyIndex < numWritableSignedAccounts; + } else if (keyIndex < accountKeys.staticAccountKeys.length) { + isWritable = keyIndex - numRequiredSignatures < numWritableUnsignedAccounts; + } else { + isWritable = keyIndex - accountKeys.staticAccountKeys.length < // accountKeysFromLookups cannot be undefined because we already found a pubkey for this index above + accountKeys.accountKeysFromLookups.writable.length; + } + keys.push({ + pubkey, + isSigner: keyIndex < header.numRequiredSignatures, + isWritable + }); + } + const programId = accountKeys.get(compiledIx.programIdIndex); + if (programId === void 0) { + throw new Error(`Failed to find program id for program id index ${compiledIx.programIdIndex}`); + } + instructions.push(new TransactionInstruction33({ + programId, + data: toBuffer(compiledIx.data), + keys + })); + } + return new _TransactionMessage({ + payerKey, + instructions, + recentBlockhash + }); + } + compileToLegacyMessage() { + return Message.compile({ + payerKey: this.payerKey, + recentBlockhash: this.recentBlockhash, + instructions: this.instructions + }); + } + compileToV0Message(addressLookupTableAccounts) { + return MessageV02.compile({ + payerKey: this.payerKey, + recentBlockhash: this.recentBlockhash, + instructions: this.instructions, + addressLookupTableAccounts + }); + } + }; + var VersionedTransaction28 = class _VersionedTransaction { + get version() { + return this.message.version; + } + constructor(message, signatures) { + this.signatures = void 0; + this.message = void 0; + if (signatures !== void 0) { + assert2(signatures.length === message.header.numRequiredSignatures, "Expected signatures length to be equal to the number of required signatures"); + this.signatures = signatures; + } else { + const defaultSignatures = []; + for (let i = 0; i < message.header.numRequiredSignatures; i++) { + defaultSignatures.push(new Uint8Array(SIGNATURE_LENGTH_IN_BYTES)); + } + this.signatures = defaultSignatures; + } + this.message = message; + } + serialize() { + const serializedMessage = this.message.serialize(); + const encodedSignaturesLength = Array(); + encodeLength(encodedSignaturesLength, this.signatures.length); + const transactionLayout = BufferLayout__namespace.struct([BufferLayout__namespace.blob(encodedSignaturesLength.length, "encodedSignaturesLength"), BufferLayout__namespace.seq(signature(), this.signatures.length, "signatures"), BufferLayout__namespace.blob(serializedMessage.length, "serializedMessage")]); + const serializedTransaction = new Uint8Array(2048); + const serializedTransactionLength = transactionLayout.encode({ + encodedSignaturesLength: new Uint8Array(encodedSignaturesLength), + signatures: this.signatures, + serializedMessage + }, serializedTransaction); + return serializedTransaction.slice(0, serializedTransactionLength); + } + static deserialize(serializedTransaction) { + let byteArray = [...serializedTransaction]; + const signatures = []; + const signaturesLength = decodeLength(byteArray); + for (let i = 0; i < signaturesLength; i++) { + signatures.push(new Uint8Array(guardedSplice(byteArray, 0, SIGNATURE_LENGTH_IN_BYTES))); + } + const message = VersionedMessage.deserialize(new Uint8Array(byteArray)); + return new _VersionedTransaction(message, signatures); + } + sign(signers) { + const messageData = this.message.serialize(); + const signerPubkeys = this.message.staticAccountKeys.slice(0, this.message.header.numRequiredSignatures); + for (const signer of signers) { + const signerIndex = signerPubkeys.findIndex((pubkey) => pubkey.equals(signer.publicKey)); + assert2(signerIndex >= 0, `Cannot sign with non signer key ${signer.publicKey.toBase58()}`); + this.signatures[signerIndex] = sign(messageData, signer.secretKey); + } + } + addSignature(publicKey24, signature2) { + assert2(signature2.byteLength === 64, "Signature must be 64 bytes long"); + const signerPubkeys = this.message.staticAccountKeys.slice(0, this.message.header.numRequiredSignatures); + const signerIndex = signerPubkeys.findIndex((pubkey) => pubkey.equals(publicKey24)); + assert2(signerIndex >= 0, `Can not add signature; \`${publicKey24.toBase58()}\` is not required to sign this transaction`); + this.signatures[signerIndex] = signature2; + } + }; + var NUM_TICKS_PER_SECOND = 160; + var DEFAULT_TICKS_PER_SLOT = 64; + var NUM_SLOTS_PER_SECOND = NUM_TICKS_PER_SECOND / DEFAULT_TICKS_PER_SLOT; + var MS_PER_SLOT = 1e3 / NUM_SLOTS_PER_SECOND; + var SYSVAR_CLOCK_PUBKEY2 = new PublicKey46("SysvarC1ock11111111111111111111111111111111"); + var SYSVAR_EPOCH_SCHEDULE_PUBKEY = new PublicKey46("SysvarEpochSchedu1e111111111111111111111111"); + var SYSVAR_INSTRUCTIONS_PUBKEY = new PublicKey46("Sysvar1nstructions1111111111111111111111111"); + var SYSVAR_RECENT_BLOCKHASHES_PUBKEY = new PublicKey46("SysvarRecentB1ockHashes11111111111111111111"); + var SYSVAR_RENT_PUBKEY2 = new PublicKey46("SysvarRent111111111111111111111111111111111"); + var SYSVAR_REWARDS_PUBKEY = new PublicKey46("SysvarRewards111111111111111111111111111111"); + var SYSVAR_SLOT_HASHES_PUBKEY = new PublicKey46("SysvarS1otHashes111111111111111111111111111"); + var SYSVAR_SLOT_HISTORY_PUBKEY = new PublicKey46("SysvarS1otHistory11111111111111111111111111"); + var SYSVAR_STAKE_HISTORY_PUBKEY = new PublicKey46("SysvarStakeHistory1111111111111111111111111"); + var SendTransactionError = class extends Error { + constructor({ + action, + signature: signature2, + transactionMessage, + logs + }) { + const maybeLogsOutput = logs ? `Logs: +${JSON.stringify(logs.slice(-10), null, 2)}. ` : ""; + const guideText = "\nCatch the `SendTransactionError` and call `getLogs()` on it for full details."; + let message; + switch (action) { + case "send": + message = `Transaction ${signature2} resulted in an error. +${transactionMessage}. ` + maybeLogsOutput + guideText; + break; + case "simulate": + message = `Simulation failed. +Message: ${transactionMessage}. +` + maybeLogsOutput + guideText; + break; + default: { + message = `Unknown action '${/* @__PURE__ */ ((a) => a)(action)}'`; + } + } + super(message); + this.signature = void 0; + this.transactionMessage = void 0; + this.transactionLogs = void 0; + this.signature = signature2; + this.transactionMessage = transactionMessage; + this.transactionLogs = logs ? logs : void 0; + } + get transactionError() { + return { + message: this.transactionMessage, + logs: Array.isArray(this.transactionLogs) ? this.transactionLogs : void 0 + }; + } + /* @deprecated Use `await getLogs()` instead */ + get logs() { + const cachedLogs = this.transactionLogs; + if (cachedLogs != null && typeof cachedLogs === "object" && "then" in cachedLogs) { + return void 0; + } + return cachedLogs; + } + async getLogs(connection) { + if (!Array.isArray(this.transactionLogs)) { + this.transactionLogs = new Promise((resolve, reject) => { + connection.getTransaction(this.signature).then((tx) => { + if (tx && tx.meta && tx.meta.logMessages) { + const logs = tx.meta.logMessages; + this.transactionLogs = logs; + resolve(logs); + } else { + reject(new Error("Log messages not found")); + } + }).catch(reject); + }); + } + return await this.transactionLogs; + } + }; + var SolanaJSONRPCErrorCode = { + JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP: -32001, + JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE: -32002, + JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE: -32003, + JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE: -32004, + JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY: -32005, + JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: -32006, + JSON_RPC_SERVER_ERROR_SLOT_SKIPPED: -32007, + JSON_RPC_SERVER_ERROR_NO_SNAPSHOT: -32008, + JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: -32009, + JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: -32010, + JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE: -32011, + JSON_RPC_SCAN_ERROR: -32012, + JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH: -32013, + JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: -32014, + JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: -32015, + JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED: -32016 + }; + var SolanaJSONRPCError = class extends Error { + constructor({ + code, + message, + data + }, customMessage) { + super(customMessage != null ? `${customMessage}: ${message}` : message); + this.code = void 0; + this.data = void 0; + this.code = code; + this.data = data; + this.name = "SolanaJSONRPCError"; + } + }; + async function sendAndConfirmTransaction(connection, transaction, signers, options) { + const sendOptions = options && { + skipPreflight: options.skipPreflight, + preflightCommitment: options.preflightCommitment || options.commitment, + maxRetries: options.maxRetries, + minContextSlot: options.minContextSlot + }; + const signature2 = await connection.sendTransaction(transaction, signers, sendOptions); + let status; + if (transaction.recentBlockhash != null && transaction.lastValidBlockHeight != null) { + status = (await connection.confirmTransaction({ + abortSignal: options?.abortSignal, + signature: signature2, + blockhash: transaction.recentBlockhash, + lastValidBlockHeight: transaction.lastValidBlockHeight + }, options && options.commitment)).value; + } else if (transaction.minNonceContextSlot != null && transaction.nonceInfo != null) { + const { + nonceInstruction + } = transaction.nonceInfo; + const nonceAccountPubkey = nonceInstruction.keys[0].pubkey; + status = (await connection.confirmTransaction({ + abortSignal: options?.abortSignal, + minContextSlot: transaction.minNonceContextSlot, + nonceAccountPubkey, + nonceValue: transaction.nonceInfo.nonce, + signature: signature2 + }, options && options.commitment)).value; + } else { + if (options?.abortSignal != null) { + console.warn("sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` or a combination of `nonceInfo` and `minNonceContextSlot` are abortable."); + } + status = (await connection.confirmTransaction(signature2, options && options.commitment)).value; + } + if (status.err) { + if (signature2 != null) { + throw new SendTransactionError({ + action: "send", + signature: signature2, + transactionMessage: `Status: (${JSON.stringify(status)})` + }); + } + throw new Error(`Transaction ${signature2} failed (${JSON.stringify(status)})`); + } + return signature2; + } + function sleep(ms2) { + return new Promise((resolve) => setTimeout(resolve, ms2)); + } + function encodeData(type, fields) { + const allocLength = type.layout.span >= 0 ? type.layout.span : getAlloc(type, fields); + const data = buffer.Buffer.alloc(allocLength); + const layoutFields = Object.assign({ + instruction: type.index + }, fields); + type.layout.encode(layoutFields, data); + return data; + } + function decodeData$1(type, buffer2) { + let data; + try { + data = type.layout.decode(buffer2); + } catch (err) { + throw new Error("invalid instruction; " + err); + } + if (data.instruction !== type.index) { + throw new Error(`invalid instruction; instruction index mismatch ${data.instruction} != ${type.index}`); + } + return data; + } + var FeeCalculatorLayout = BufferLayout__namespace.nu64("lamportsPerSignature"); + var NonceAccountLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u32("version"), BufferLayout__namespace.u32("state"), publicKey23("authorizedPubkey"), publicKey23("nonce"), BufferLayout__namespace.struct([FeeCalculatorLayout], "feeCalculator")]); + var NONCE_ACCOUNT_LENGTH = NonceAccountLayout.span; + var NonceAccount = class _NonceAccount { + /** + * @internal + */ + constructor(args) { + this.authorizedPubkey = void 0; + this.nonce = void 0; + this.feeCalculator = void 0; + this.authorizedPubkey = args.authorizedPubkey; + this.nonce = args.nonce; + this.feeCalculator = args.feeCalculator; + } + /** + * Deserialize NonceAccount from the account data. + * + * @param buffer account data + * @return NonceAccount + */ + static fromAccountData(buffer2) { + const nonceAccount = NonceAccountLayout.decode(toBuffer(buffer2), 0); + return new _NonceAccount({ + authorizedPubkey: new PublicKey46(nonceAccount.authorizedPubkey), + nonce: new PublicKey46(nonceAccount.nonce).toString(), + feeCalculator: nonceAccount.feeCalculator + }); + } + }; + function u6415(property) { + const layout = BufferLayout.blob(8, property); + const decode = layout.decode.bind(layout); + const encode = layout.encode.bind(layout); + const bigIntLayout = layout; + const codec = codecsNumbers.getU64Codec(); + bigIntLayout.decode = (buffer2, offset) => { + const src = decode(buffer2, offset); + return codec.decode(src); + }; + bigIntLayout.encode = (bigInt2, buffer2, offset) => { + const src = codec.encode(bigInt2); + return encode(src, buffer2, offset); + }; + return bigIntLayout; + } + var SystemInstruction = class { + /** + * @internal + */ + constructor() { + } + /** + * Decode a system instruction and retrieve the instruction type. + */ + static decodeInstructionType(instruction) { + this.checkProgramId(instruction.programId); + const instructionTypeLayout = BufferLayout__namespace.u32("instruction"); + const typeIndex = instructionTypeLayout.decode(instruction.data); + let type; + for (const [ixType, layout] of Object.entries(SYSTEM_INSTRUCTION_LAYOUTS)) { + if (layout.index == typeIndex) { + type = ixType; + break; + } + } + if (!type) { + throw new Error("Instruction type incorrect; not a SystemInstruction"); + } + return type; + } + /** + * Decode a create account system instruction and retrieve the instruction params. + */ + static decodeCreateAccount(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 2); + const { + lamports, + space, + programId + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Create, instruction.data); + return { + fromPubkey: instruction.keys[0].pubkey, + newAccountPubkey: instruction.keys[1].pubkey, + lamports, + space, + programId: new PublicKey46(programId) + }; + } + /** + * Decode a transfer system instruction and retrieve the instruction params. + */ + static decodeTransfer(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 2); + const { + lamports + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Transfer, instruction.data); + return { + fromPubkey: instruction.keys[0].pubkey, + toPubkey: instruction.keys[1].pubkey, + lamports + }; + } + /** + * Decode a transfer with seed system instruction and retrieve the instruction params. + */ + static decodeTransferWithSeed(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + const { + lamports, + seed, + programId + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed, instruction.data); + return { + fromPubkey: instruction.keys[0].pubkey, + basePubkey: instruction.keys[1].pubkey, + toPubkey: instruction.keys[2].pubkey, + lamports, + seed, + programId: new PublicKey46(programId) + }; + } + /** + * Decode an allocate system instruction and retrieve the instruction params. + */ + static decodeAllocate(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 1); + const { + space + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Allocate, instruction.data); + return { + accountPubkey: instruction.keys[0].pubkey, + space + }; + } + /** + * Decode an allocate with seed system instruction and retrieve the instruction params. + */ + static decodeAllocateWithSeed(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 1); + const { + base, + seed, + space, + programId + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed, instruction.data); + return { + accountPubkey: instruction.keys[0].pubkey, + basePubkey: new PublicKey46(base), + seed, + space, + programId: new PublicKey46(programId) + }; + } + /** + * Decode an assign system instruction and retrieve the instruction params. + */ + static decodeAssign(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 1); + const { + programId + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Assign, instruction.data); + return { + accountPubkey: instruction.keys[0].pubkey, + programId: new PublicKey46(programId) + }; + } + /** + * Decode an assign with seed system instruction and retrieve the instruction params. + */ + static decodeAssignWithSeed(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 1); + const { + base, + seed, + programId + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed, instruction.data); + return { + accountPubkey: instruction.keys[0].pubkey, + basePubkey: new PublicKey46(base), + seed, + programId: new PublicKey46(programId) + }; + } + /** + * Decode a create account with seed system instruction and retrieve the instruction params. + */ + static decodeCreateWithSeed(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 2); + const { + base, + seed, + lamports, + space, + programId + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed, instruction.data); + return { + fromPubkey: instruction.keys[0].pubkey, + newAccountPubkey: instruction.keys[1].pubkey, + basePubkey: new PublicKey46(base), + seed, + lamports, + space, + programId: new PublicKey46(programId) + }; + } + /** + * Decode a nonce initialize system instruction and retrieve the instruction params. + */ + static decodeNonceInitialize(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + const { + authorized: authorized2 + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount, instruction.data); + return { + noncePubkey: instruction.keys[0].pubkey, + authorizedPubkey: new PublicKey46(authorized2) + }; + } + /** + * Decode a nonce advance system instruction and retrieve the instruction params. + */ + static decodeNonceAdvance(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount, instruction.data); + return { + noncePubkey: instruction.keys[0].pubkey, + authorizedPubkey: instruction.keys[2].pubkey + }; + } + /** + * Decode a nonce withdraw system instruction and retrieve the instruction params. + */ + static decodeNonceWithdraw(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 5); + const { + lamports + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount, instruction.data); + return { + noncePubkey: instruction.keys[0].pubkey, + toPubkey: instruction.keys[1].pubkey, + authorizedPubkey: instruction.keys[4].pubkey, + lamports + }; + } + /** + * Decode a nonce authorize system instruction and retrieve the instruction params. + */ + static decodeNonceAuthorize(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 2); + const { + authorized: authorized2 + } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount, instruction.data); + return { + noncePubkey: instruction.keys[0].pubkey, + authorizedPubkey: instruction.keys[1].pubkey, + newAuthorizedPubkey: new PublicKey46(authorized2) + }; + } + /** + * @internal + */ + static checkProgramId(programId) { + if (!programId.equals(SystemProgram19.programId)) { + throw new Error("invalid instruction; programId is not SystemProgram"); + } + } + /** + * @internal + */ + static checkKeyLength(keys, expectedLength) { + if (keys.length < expectedLength) { + throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`); + } + } + }; + var SYSTEM_INSTRUCTION_LAYOUTS = Object.freeze({ + Create: { + index: 0, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), BufferLayout__namespace.ns64("lamports"), BufferLayout__namespace.ns64("space"), publicKey23("programId")]) + }, + Assign: { + index: 1, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("programId")]) + }, + Transfer: { + index: 2, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), u6415("lamports")]) + }, + CreateWithSeed: { + index: 3, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("base"), rustString("seed"), BufferLayout__namespace.ns64("lamports"), BufferLayout__namespace.ns64("space"), publicKey23("programId")]) + }, + AdvanceNonceAccount: { + index: 4, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + }, + WithdrawNonceAccount: { + index: 5, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), BufferLayout__namespace.ns64("lamports")]) + }, + InitializeNonceAccount: { + index: 6, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("authorized")]) + }, + AuthorizeNonceAccount: { + index: 7, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("authorized")]) + }, + Allocate: { + index: 8, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), BufferLayout__namespace.ns64("space")]) + }, + AllocateWithSeed: { + index: 9, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("base"), rustString("seed"), BufferLayout__namespace.ns64("space"), publicKey23("programId")]) + }, + AssignWithSeed: { + index: 10, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("base"), rustString("seed"), publicKey23("programId")]) + }, + TransferWithSeed: { + index: 11, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), u6415("lamports"), rustString("seed"), publicKey23("programId")]) + }, + UpgradeNonceAccount: { + index: 12, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + } + }); + var SystemProgram19 = class _SystemProgram { + /** + * @internal + */ + constructor() { + } + /** + * Public key that identifies the System program + */ + /** + * Generate a transaction instruction that creates a new account + */ + static createAccount(params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.Create; + const data = encodeData(type, { + lamports: params.lamports, + space: params.space, + programId: toBuffer(params.programId.toBuffer()) + }); + return new TransactionInstruction33({ + keys: [{ + pubkey: params.fromPubkey, + isSigner: true, + isWritable: true + }, { + pubkey: params.newAccountPubkey, + isSigner: true, + isWritable: true + }], + programId: this.programId, + data + }); + } + /** + * Generate a transaction instruction that transfers lamports from one account to another + */ + static transfer(params) { + let data; + let keys; + if ("basePubkey" in params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed; + data = encodeData(type, { + lamports: BigInt(params.lamports), + seed: params.seed, + programId: toBuffer(params.programId.toBuffer()) + }); + keys = [{ + pubkey: params.fromPubkey, + isSigner: false, + isWritable: true + }, { + pubkey: params.basePubkey, + isSigner: true, + isWritable: false + }, { + pubkey: params.toPubkey, + isSigner: false, + isWritable: true + }]; + } else { + const type = SYSTEM_INSTRUCTION_LAYOUTS.Transfer; + data = encodeData(type, { + lamports: BigInt(params.lamports) + }); + keys = [{ + pubkey: params.fromPubkey, + isSigner: true, + isWritable: true + }, { + pubkey: params.toPubkey, + isSigner: false, + isWritable: true + }]; + } + return new TransactionInstruction33({ + keys, + programId: this.programId, + data + }); + } + /** + * Generate a transaction instruction that assigns an account to a program + */ + static assign(params) { + let data; + let keys; + if ("basePubkey" in params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed; + data = encodeData(type, { + base: toBuffer(params.basePubkey.toBuffer()), + seed: params.seed, + programId: toBuffer(params.programId.toBuffer()) + }); + keys = [{ + pubkey: params.accountPubkey, + isSigner: false, + isWritable: true + }, { + pubkey: params.basePubkey, + isSigner: true, + isWritable: false + }]; + } else { + const type = SYSTEM_INSTRUCTION_LAYOUTS.Assign; + data = encodeData(type, { + programId: toBuffer(params.programId.toBuffer()) + }); + keys = [{ + pubkey: params.accountPubkey, + isSigner: true, + isWritable: true + }]; + } + return new TransactionInstruction33({ + keys, + programId: this.programId, + data + }); + } + /** + * Generate a transaction instruction that creates a new account at + * an address generated with `from`, a seed, and programId + */ + static createAccountWithSeed(params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed; + const data = encodeData(type, { + base: toBuffer(params.basePubkey.toBuffer()), + seed: params.seed, + lamports: params.lamports, + space: params.space, + programId: toBuffer(params.programId.toBuffer()) + }); + let keys = [{ + pubkey: params.fromPubkey, + isSigner: true, + isWritable: true + }, { + pubkey: params.newAccountPubkey, + isSigner: false, + isWritable: true + }]; + if (!params.basePubkey.equals(params.fromPubkey)) { + keys.push({ + pubkey: params.basePubkey, + isSigner: true, + isWritable: false + }); + } + return new TransactionInstruction33({ + keys, + programId: this.programId, + data + }); + } + /** + * Generate a transaction that creates a new Nonce account + */ + static createNonceAccount(params) { + const transaction = new Transaction(); + if ("basePubkey" in params && "seed" in params) { + transaction.add(_SystemProgram.createAccountWithSeed({ + fromPubkey: params.fromPubkey, + newAccountPubkey: params.noncePubkey, + basePubkey: params.basePubkey, + seed: params.seed, + lamports: params.lamports, + space: NONCE_ACCOUNT_LENGTH, + programId: this.programId + })); + } else { + transaction.add(_SystemProgram.createAccount({ + fromPubkey: params.fromPubkey, + newAccountPubkey: params.noncePubkey, + lamports: params.lamports, + space: NONCE_ACCOUNT_LENGTH, + programId: this.programId + })); + } + const initParams = { + noncePubkey: params.noncePubkey, + authorizedPubkey: params.authorizedPubkey + }; + transaction.add(this.nonceInitialize(initParams)); + return transaction; + } + /** + * Generate an instruction to initialize a Nonce account + */ + static nonceInitialize(params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount; + const data = encodeData(type, { + authorized: toBuffer(params.authorizedPubkey.toBuffer()) + }); + const instructionData = { + keys: [{ + pubkey: params.noncePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY, + isSigner: false, + isWritable: false + }, { + pubkey: SYSVAR_RENT_PUBKEY2, + isSigner: false, + isWritable: false + }], + programId: this.programId, + data + }; + return new TransactionInstruction33(instructionData); + } + /** + * Generate an instruction to advance the nonce in a Nonce account + */ + static nonceAdvance(params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount; + const data = encodeData(type); + const instructionData = { + keys: [{ + pubkey: params.noncePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY, + isSigner: false, + isWritable: false + }, { + pubkey: params.authorizedPubkey, + isSigner: true, + isWritable: false + }], + programId: this.programId, + data + }; + return new TransactionInstruction33(instructionData); + } + /** + * Generate a transaction instruction that withdraws lamports from a Nonce account + */ + static nonceWithdraw(params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount; + const data = encodeData(type, { + lamports: params.lamports + }); + return new TransactionInstruction33({ + keys: [{ + pubkey: params.noncePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: params.toPubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY, + isSigner: false, + isWritable: false + }, { + pubkey: SYSVAR_RENT_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: params.authorizedPubkey, + isSigner: true, + isWritable: false + }], + programId: this.programId, + data + }); + } + /** + * Generate a transaction instruction that authorizes a new PublicKey as the authority + * on a Nonce account. + */ + static nonceAuthorize(params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount; + const data = encodeData(type, { + authorized: toBuffer(params.newAuthorizedPubkey.toBuffer()) + }); + return new TransactionInstruction33({ + keys: [{ + pubkey: params.noncePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: params.authorizedPubkey, + isSigner: true, + isWritable: false + }], + programId: this.programId, + data + }); + } + /** + * Generate a transaction instruction that allocates space in an account without funding + */ + static allocate(params) { + let data; + let keys; + if ("basePubkey" in params) { + const type = SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed; + data = encodeData(type, { + base: toBuffer(params.basePubkey.toBuffer()), + seed: params.seed, + space: params.space, + programId: toBuffer(params.programId.toBuffer()) + }); + keys = [{ + pubkey: params.accountPubkey, + isSigner: false, + isWritable: true + }, { + pubkey: params.basePubkey, + isSigner: true, + isWritable: false + }]; + } else { + const type = SYSTEM_INSTRUCTION_LAYOUTS.Allocate; + data = encodeData(type, { + space: params.space + }); + keys = [{ + pubkey: params.accountPubkey, + isSigner: true, + isWritable: true + }]; + } + return new TransactionInstruction33({ + keys, + programId: this.programId, + data + }); + } + }; + SystemProgram19.programId = new PublicKey46("11111111111111111111111111111111"); + var CHUNK_SIZE = PACKET_DATA_SIZE - 300; + var Loader = class _Loader { + /** + * @internal + */ + constructor() { + } + /** + * Amount of program data placed in each load Transaction + */ + /** + * Minimum number of signatures required to load a program not including + * retries + * + * Can be used to calculate transaction fees + */ + static getMinNumSignatures(dataLength) { + return 2 * // Every transaction requires two signatures (payer + program) + (Math.ceil(dataLength / _Loader.chunkSize) + 1 + // Add one for Create transaction + 1); + } + /** + * Loads a generic program + * + * @param connection The connection to use + * @param payer System account that pays to load the program + * @param program Account to load the program into + * @param programId Public key that identifies the loader + * @param data Program octets + * @return true if program was loaded successfully, false if program was already loaded + */ + static async load(connection, payer, program, programId, data) { + { + const balanceNeeded = await connection.getMinimumBalanceForRentExemption(data.length); + const programInfo = await connection.getAccountInfo(program.publicKey, "confirmed"); + let transaction = null; + if (programInfo !== null) { + if (programInfo.executable) { + console.error("Program load failed, account is already executable"); + return false; + } + if (programInfo.data.length !== data.length) { + transaction = transaction || new Transaction(); + transaction.add(SystemProgram19.allocate({ + accountPubkey: program.publicKey, + space: data.length + })); + } + if (!programInfo.owner.equals(programId)) { + transaction = transaction || new Transaction(); + transaction.add(SystemProgram19.assign({ + accountPubkey: program.publicKey, + programId + })); + } + if (programInfo.lamports < balanceNeeded) { + transaction = transaction || new Transaction(); + transaction.add(SystemProgram19.transfer({ + fromPubkey: payer.publicKey, + toPubkey: program.publicKey, + lamports: balanceNeeded - programInfo.lamports + })); + } + } else { + transaction = new Transaction().add(SystemProgram19.createAccount({ + fromPubkey: payer.publicKey, + newAccountPubkey: program.publicKey, + lamports: balanceNeeded > 0 ? balanceNeeded : 1, + space: data.length, + programId + })); + } + if (transaction !== null) { + await sendAndConfirmTransaction(connection, transaction, [payer, program], { + commitment: "confirmed" + }); + } + } + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), BufferLayout__namespace.u32("offset"), BufferLayout__namespace.u32("bytesLength"), BufferLayout__namespace.u32("bytesLengthPadding"), BufferLayout__namespace.seq(BufferLayout__namespace.u8("byte"), BufferLayout__namespace.offset(BufferLayout__namespace.u32(), -8), "bytes")]); + const chunkSize = _Loader.chunkSize; + let offset = 0; + let array11 = data; + let transactions = []; + while (array11.length > 0) { + const bytes7 = array11.slice(0, chunkSize); + const data2 = buffer.Buffer.alloc(chunkSize + 16); + dataLayout.encode({ + instruction: 0, + // Load instruction + offset, + bytes: bytes7, + bytesLength: 0, + bytesLengthPadding: 0 + }, data2); + const transaction = new Transaction().add({ + keys: [{ + pubkey: program.publicKey, + isSigner: true, + isWritable: true + }], + programId, + data: data2 + }); + transactions.push(sendAndConfirmTransaction(connection, transaction, [payer, program], { + commitment: "confirmed" + })); + if (connection._rpcEndpoint.includes("solana.com")) { + const REQUESTS_PER_SECOND = 4; + await sleep(1e3 / REQUESTS_PER_SECOND); + } + offset += chunkSize; + array11 = array11.slice(chunkSize); + } + await Promise.all(transactions); + { + const dataLayout2 = BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]); + const data2 = buffer.Buffer.alloc(dataLayout2.span); + dataLayout2.encode({ + instruction: 1 + // Finalize instruction + }, data2); + const transaction = new Transaction().add({ + keys: [{ + pubkey: program.publicKey, + isSigner: true, + isWritable: true + }, { + pubkey: SYSVAR_RENT_PUBKEY2, + isSigner: false, + isWritable: false + }], + programId, + data: data2 + }); + const deployCommitment = "processed"; + const finalizeSignature = await connection.sendTransaction(transaction, [payer, program], { + preflightCommitment: deployCommitment + }); + const { + context, + value + } = await connection.confirmTransaction({ + signature: finalizeSignature, + lastValidBlockHeight: transaction.lastValidBlockHeight, + blockhash: transaction.recentBlockhash + }, deployCommitment); + if (value.err) { + throw new Error(`Transaction ${finalizeSignature} failed (${JSON.stringify(value)})`); + } + while (true) { + try { + const currentSlot = await connection.getSlot({ + commitment: deployCommitment + }); + if (currentSlot > context.slot) { + break; + } + } catch { + } + await new Promise((resolve) => setTimeout(resolve, Math.round(MS_PER_SLOT / 2))); + } + } + return true; + } + }; + Loader.chunkSize = CHUNK_SIZE; + var BPF_LOADER_PROGRAM_ID = new PublicKey46("BPFLoader2111111111111111111111111111111111"); + var BpfLoader = class { + /** + * Minimum number of signatures required to load a program not including + * retries + * + * Can be used to calculate transaction fees + */ + static getMinNumSignatures(dataLength) { + return Loader.getMinNumSignatures(dataLength); + } + /** + * Load a SBF program + * + * @param connection The connection to use + * @param payer Account that will pay program loading fees + * @param program Account to load the program into + * @param elf The entire ELF containing the SBF program + * @param loaderProgramId The program id of the BPF loader to use + * @return true if program was loaded successfully, false if program was already loaded + */ + static load(connection, payer, program, elf, loaderProgramId) { + return Loader.load(connection, payer, program, loaderProgramId, elf); + } + }; + function getDefaultExportFromCjs(x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; + } + var agentkeepalive = { exports: {} }; + var ms; + var hasRequiredMs; + function requireMs() { + if (hasRequiredMs) return ms; + hasRequiredMs = 1; + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + ms = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse2(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) + ); + }; + function parse2(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms2) { + var msAbs = Math.abs(ms2); + if (msAbs >= d) { + return Math.round(ms2 / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms2 / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms2 / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms2 / s) + "s"; + } + return ms2 + "ms"; + } + function fmtLong(ms2) { + var msAbs = Math.abs(ms2); + if (msAbs >= d) { + return plural(ms2, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms2, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms2, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms2, msAbs, s, "second"); + } + return ms2 + " ms"; + } + function plural(ms2, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms2 / n) + " " + name + (isPlural ? "s" : ""); + } + return ms; + } + var humanizeMs; + var hasRequiredHumanizeMs; + function requireHumanizeMs() { + if (hasRequiredHumanizeMs) return humanizeMs; + hasRequiredHumanizeMs = 1; + var util = require$$0__default.default; + var ms2 = /* @__PURE__ */ requireMs(); + humanizeMs = function(t) { + if (typeof t === "number") return t; + var r = ms2(t); + if (r === void 0) { + var err = new Error(util.format("humanize-ms(%j) result undefined", t)); + console.warn(err.stack); + } + return r; + }; + return humanizeMs; + } + var constants; + var hasRequiredConstants; + function requireConstants() { + if (hasRequiredConstants) return constants; + hasRequiredConstants = 1; + constants = { + // agent + CURRENT_ID: Symbol("agentkeepalive#currentId"), + CREATE_ID: Symbol("agentkeepalive#createId"), + INIT_SOCKET: Symbol("agentkeepalive#initSocket"), + CREATE_HTTPS_CONNECTION: Symbol("agentkeepalive#createHttpsConnection"), + // socket + SOCKET_CREATED_TIME: Symbol("agentkeepalive#socketCreatedTime"), + SOCKET_NAME: Symbol("agentkeepalive#socketName"), + SOCKET_REQUEST_COUNT: Symbol("agentkeepalive#socketRequestCount"), + SOCKET_REQUEST_FINISHED_COUNT: Symbol("agentkeepalive#socketRequestFinishedCount") + }; + return constants; + } + var agent; + var hasRequiredAgent; + function requireAgent() { + if (hasRequiredAgent) return agent; + hasRequiredAgent = 1; + const OriginalAgent = require$$0__default$1.default.Agent; + const ms2 = /* @__PURE__ */ requireHumanizeMs(); + const debug = require$$0__default.default.debuglog("agentkeepalive"); + const { + INIT_SOCKET, + CURRENT_ID, + CREATE_ID, + SOCKET_CREATED_TIME, + SOCKET_NAME, + SOCKET_REQUEST_COUNT, + SOCKET_REQUEST_FINISHED_COUNT + } = /* @__PURE__ */ requireConstants(); + let defaultTimeoutListenerCount = 1; + const majorVersion = parseInt(process.version.split(".", 1)[0].substring(1)); + if (majorVersion >= 11 && majorVersion <= 12) { + defaultTimeoutListenerCount = 2; + } else if (majorVersion >= 13) { + defaultTimeoutListenerCount = 3; + } + function deprecate(message) { + console.log("[agentkeepalive:deprecated] %s", message); + } + class Agent extends OriginalAgent { + constructor(options) { + options = options || {}; + options.keepAlive = options.keepAlive !== false; + if (options.freeSocketTimeout === void 0) { + options.freeSocketTimeout = 4e3; + } + if (options.keepAliveTimeout) { + deprecate("options.keepAliveTimeout is deprecated, please use options.freeSocketTimeout instead"); + options.freeSocketTimeout = options.keepAliveTimeout; + delete options.keepAliveTimeout; + } + if (options.freeSocketKeepAliveTimeout) { + deprecate("options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead"); + options.freeSocketTimeout = options.freeSocketKeepAliveTimeout; + delete options.freeSocketKeepAliveTimeout; + } + if (options.timeout === void 0) { + options.timeout = Math.max(options.freeSocketTimeout * 2, 8e3); + } + options.timeout = ms2(options.timeout); + options.freeSocketTimeout = ms2(options.freeSocketTimeout); + options.socketActiveTTL = options.socketActiveTTL ? ms2(options.socketActiveTTL) : 0; + super(options); + this[CURRENT_ID] = 0; + this.createSocketCount = 0; + this.createSocketCountLastCheck = 0; + this.createSocketErrorCount = 0; + this.createSocketErrorCountLastCheck = 0; + this.closeSocketCount = 0; + this.closeSocketCountLastCheck = 0; + this.errorSocketCount = 0; + this.errorSocketCountLastCheck = 0; + this.requestCount = 0; + this.requestCountLastCheck = 0; + this.timeoutSocketCount = 0; + this.timeoutSocketCountLastCheck = 0; + this.on("free", (socket) => { + const timeout = this.calcSocketTimeout(socket); + if (timeout > 0 && socket.timeout !== timeout) { + socket.setTimeout(timeout); + } + }); + } + get freeSocketKeepAliveTimeout() { + deprecate("agent.freeSocketKeepAliveTimeout is deprecated, please use agent.options.freeSocketTimeout instead"); + return this.options.freeSocketTimeout; + } + get timeout() { + deprecate("agent.timeout is deprecated, please use agent.options.timeout instead"); + return this.options.timeout; + } + get socketActiveTTL() { + deprecate("agent.socketActiveTTL is deprecated, please use agent.options.socketActiveTTL instead"); + return this.options.socketActiveTTL; + } + calcSocketTimeout(socket) { + let freeSocketTimeout = this.options.freeSocketTimeout; + const socketActiveTTL = this.options.socketActiveTTL; + if (socketActiveTTL) { + const aliveTime = Date.now() - socket[SOCKET_CREATED_TIME]; + const diff = socketActiveTTL - aliveTime; + if (diff <= 0) { + return diff; + } + if (freeSocketTimeout && diff < freeSocketTimeout) { + freeSocketTimeout = diff; + } + } + if (freeSocketTimeout) { + const customFreeSocketTimeout = socket.freeSocketTimeout || socket.freeSocketKeepAliveTimeout; + return customFreeSocketTimeout || freeSocketTimeout; + } + } + keepSocketAlive(socket) { + const result = super.keepSocketAlive(socket); + if (!result) return result; + const customTimeout = this.calcSocketTimeout(socket); + if (typeof customTimeout === "undefined") { + return true; + } + if (customTimeout <= 0) { + debug( + "%s(requests: %s, finished: %s) free but need to destroy by TTL, request count %s, diff is %s", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + customTimeout + ); + return false; + } + if (socket.timeout !== customTimeout) { + socket.setTimeout(customTimeout); + } + return true; + } + // only call on addRequest + reuseSocket(...args) { + super.reuseSocket(...args); + const socket = args[0]; + const req = args[1]; + req.reusedSocket = true; + const agentTimeout = this.options.timeout; + if (getSocketTimeout(socket) !== agentTimeout) { + socket.setTimeout(agentTimeout); + debug("%s reset timeout to %sms", socket[SOCKET_NAME], agentTimeout); + } + socket[SOCKET_REQUEST_COUNT]++; + debug( + "%s(requests: %s, finished: %s) reuse on addRequest, timeout %sms", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + getSocketTimeout(socket) + ); + } + [CREATE_ID]() { + const id = this[CURRENT_ID]++; + if (this[CURRENT_ID] === Number.MAX_SAFE_INTEGER) this[CURRENT_ID] = 0; + return id; + } + [INIT_SOCKET](socket, options) { + if (options.timeout) { + const timeout = getSocketTimeout(socket); + if (!timeout) { + socket.setTimeout(options.timeout); + } + } + if (this.options.keepAlive) { + socket.setNoDelay(true); + } + this.createSocketCount++; + if (this.options.socketActiveTTL) { + socket[SOCKET_CREATED_TIME] = Date.now(); + } + socket[SOCKET_NAME] = `sock[${this[CREATE_ID]()}#${options._agentKey}]`.split("-----BEGIN", 1)[0]; + socket[SOCKET_REQUEST_COUNT] = 1; + socket[SOCKET_REQUEST_FINISHED_COUNT] = 0; + installListeners(this, socket, options); + } + createConnection(options, oncreate) { + let called = false; + const onNewCreate = (err, socket) => { + if (called) return; + called = true; + if (err) { + this.createSocketErrorCount++; + return oncreate(err); + } + this[INIT_SOCKET](socket, options); + oncreate(err, socket); + }; + const newSocket = super.createConnection(options, onNewCreate); + if (newSocket) onNewCreate(null, newSocket); + return newSocket; + } + get statusChanged() { + const changed = this.createSocketCount !== this.createSocketCountLastCheck || this.createSocketErrorCount !== this.createSocketErrorCountLastCheck || this.closeSocketCount !== this.closeSocketCountLastCheck || this.errorSocketCount !== this.errorSocketCountLastCheck || this.timeoutSocketCount !== this.timeoutSocketCountLastCheck || this.requestCount !== this.requestCountLastCheck; + if (changed) { + this.createSocketCountLastCheck = this.createSocketCount; + this.createSocketErrorCountLastCheck = this.createSocketErrorCount; + this.closeSocketCountLastCheck = this.closeSocketCount; + this.errorSocketCountLastCheck = this.errorSocketCount; + this.timeoutSocketCountLastCheck = this.timeoutSocketCount; + this.requestCountLastCheck = this.requestCount; + } + return changed; + } + getCurrentStatus() { + return { + createSocketCount: this.createSocketCount, + createSocketErrorCount: this.createSocketErrorCount, + closeSocketCount: this.closeSocketCount, + errorSocketCount: this.errorSocketCount, + timeoutSocketCount: this.timeoutSocketCount, + requestCount: this.requestCount, + freeSockets: inspect(this.freeSockets), + sockets: inspect(this.sockets), + requests: inspect(this.requests) + }; + } + } + function getSocketTimeout(socket) { + return socket.timeout || socket._idleTimeout; + } + function installListeners(agent2, socket, options) { + debug("%s create, timeout %sms", socket[SOCKET_NAME], getSocketTimeout(socket)); + function onFree() { + if (!socket._httpMessage && socket[SOCKET_REQUEST_COUNT] === 1) return; + socket[SOCKET_REQUEST_FINISHED_COUNT]++; + agent2.requestCount++; + debug( + "%s(requests: %s, finished: %s) free", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT] + ); + const name = agent2.getName(options); + if (socket.writable && agent2.requests[name] && agent2.requests[name].length) { + socket[SOCKET_REQUEST_COUNT]++; + debug( + "%s(requests: %s, finished: %s) will be reuse on agent free event", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT] + ); + } + } + socket.on("free", onFree); + function onClose(isError) { + debug( + "%s(requests: %s, finished: %s) close, isError: %s", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + isError + ); + agent2.closeSocketCount++; + } + socket.on("close", onClose); + function onTimeout() { + const listenerCount = socket.listeners("timeout").length; + const timeout = getSocketTimeout(socket); + const req = socket._httpMessage; + const reqTimeoutListenerCount = req && req.listeners("timeout").length || 0; + debug( + "%s(requests: %s, finished: %s) timeout after %sms, listeners %s, defaultTimeoutListenerCount %s, hasHttpRequest %s, HttpRequest timeoutListenerCount %s", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + timeout, + listenerCount, + defaultTimeoutListenerCount, + !!req, + reqTimeoutListenerCount + ); + if (debug.enabled) { + debug("timeout listeners: %s", socket.listeners("timeout").map((f) => f.name).join(", ")); + } + agent2.timeoutSocketCount++; + const name = agent2.getName(options); + if (agent2.freeSockets[name] && agent2.freeSockets[name].indexOf(socket) !== -1) { + socket.destroy(); + agent2.removeSocket(socket, options); + debug("%s is free, destroy quietly", socket[SOCKET_NAME]); + } else { + if (reqTimeoutListenerCount === 0) { + const error = new Error("Socket timeout"); + error.code = "ERR_SOCKET_TIMEOUT"; + error.timeout = timeout; + socket.destroy(error); + agent2.removeSocket(socket, options); + debug("%s destroy with timeout error", socket[SOCKET_NAME]); + } + } + } + socket.on("timeout", onTimeout); + function onError(err) { + const listenerCount = socket.listeners("error").length; + debug( + "%s(requests: %s, finished: %s) error: %s, listenerCount: %s", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + err, + listenerCount + ); + agent2.errorSocketCount++; + if (listenerCount === 1) { + debug("%s emit uncaught error event", socket[SOCKET_NAME]); + socket.removeListener("error", onError); + socket.emit("error", err); + } + } + socket.on("error", onError); + function onRemove() { + debug( + "%s(requests: %s, finished: %s) agentRemove", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT] + ); + socket.removeListener("close", onClose); + socket.removeListener("error", onError); + socket.removeListener("free", onFree); + socket.removeListener("timeout", onTimeout); + socket.removeListener("agentRemove", onRemove); + } + socket.on("agentRemove", onRemove); + } + agent = Agent; + function inspect(obj) { + const res = {}; + for (const key in obj) { + res[key] = obj[key].length; + } + return res; + } + return agent; + } + var https_agent; + var hasRequiredHttps_agent; + function requireHttps_agent() { + if (hasRequiredHttps_agent) return https_agent; + hasRequiredHttps_agent = 1; + const OriginalHttpsAgent = require$$0__default$2.default.Agent; + const HttpAgent = /* @__PURE__ */ requireAgent(); + const { + INIT_SOCKET, + CREATE_HTTPS_CONNECTION + } = /* @__PURE__ */ requireConstants(); + class HttpsAgent extends HttpAgent { + constructor(options) { + super(options); + this.defaultPort = 443; + this.protocol = "https:"; + this.maxCachedSessions = this.options.maxCachedSessions; + if (this.maxCachedSessions === void 0) { + this.maxCachedSessions = 100; + } + this._sessionCache = { + map: {}, + list: [] + }; + } + createConnection(options, oncreate) { + const socket = this[CREATE_HTTPS_CONNECTION](options, oncreate); + this[INIT_SOCKET](socket, options); + return socket; + } + } + HttpsAgent.prototype[CREATE_HTTPS_CONNECTION] = OriginalHttpsAgent.prototype.createConnection; + [ + "getName", + "_getSession", + "_cacheSession", + // https://github.com/nodejs/node/pull/4982 + "_evictSession" + ].forEach(function(method2) { + if (typeof OriginalHttpsAgent.prototype[method2] === "function") { + HttpsAgent.prototype[method2] = OriginalHttpsAgent.prototype[method2]; + } + }); + https_agent = HttpsAgent; + return https_agent; + } + var hasRequiredAgentkeepalive; + function requireAgentkeepalive() { + if (hasRequiredAgentkeepalive) return agentkeepalive.exports; + hasRequiredAgentkeepalive = 1; + agentkeepalive.exports = /* @__PURE__ */ requireAgent(); + agentkeepalive.exports.HttpsAgent = /* @__PURE__ */ requireHttps_agent(); + agentkeepalive.exports.constants = /* @__PURE__ */ requireConstants(); + return agentkeepalive.exports; + } + var agentkeepaliveExports = /* @__PURE__ */ requireAgentkeepalive(); + var HttpKeepAliveAgent = /* @__PURE__ */ getDefaultExportFromCjs(agentkeepaliveExports); + var fastStableStringify$1; + var hasRequiredFastStableStringify; + function requireFastStableStringify() { + if (hasRequiredFastStableStringify) return fastStableStringify$1; + hasRequiredFastStableStringify = 1; + var objToString = Object.prototype.toString; + var objKeys = Object.keys || function(obj) { + var keys = []; + for (var name in obj) { + keys.push(name); + } + return keys; + }; + function stringify2(val, isArrayProp) { + var i, max, str, keys, key, propVal, toStr; + if (val === true) { + return "true"; + } + if (val === false) { + return "false"; + } + switch (typeof val) { + case "object": + if (val === null) { + return null; + } else if (val.toJSON && typeof val.toJSON === "function") { + return stringify2(val.toJSON(), isArrayProp); + } else { + toStr = objToString.call(val); + if (toStr === "[object Array]") { + str = "["; + max = val.length - 1; + for (i = 0; i < max; i++) { + str += stringify2(val[i], true) + ","; + } + if (max > -1) { + str += stringify2(val[i], true); + } + return str + "]"; + } else if (toStr === "[object Object]") { + keys = objKeys(val).sort(); + max = keys.length; + str = ""; + i = 0; + while (i < max) { + key = keys[i]; + propVal = stringify2(val[key], false); + if (propVal !== void 0) { + if (str) { + str += ","; + } + str += JSON.stringify(key) + ":" + propVal; + } + i++; + } + return "{" + str + "}"; + } else { + return JSON.stringify(val); + } + } + case "function": + case "undefined": + return isArrayProp ? null : void 0; + case "string": + return JSON.stringify(val); + default: + return isFinite(val) ? val : null; + } + } + fastStableStringify$1 = function(val) { + var returnVal = stringify2(val, false); + if (returnVal !== void 0) { + return "" + returnVal; + } + }; + return fastStableStringify$1; + } + var fastStableStringifyExports = /* @__PURE__ */ requireFastStableStringify(); + var fastStableStringify = /* @__PURE__ */ getDefaultExportFromCjs(fastStableStringifyExports); + var MINIMUM_SLOT_PER_EPOCH = 32; + function trailingZeros(n) { + let trailingZeros2 = 0; + while (n > 1) { + n /= 2; + trailingZeros2++; + } + return trailingZeros2; + } + function nextPowerOfTwo(n) { + if (n === 0) return 1; + n--; + n |= n >> 1; + n |= n >> 2; + n |= n >> 4; + n |= n >> 8; + n |= n >> 16; + n |= n >> 32; + return n + 1; + } + var EpochSchedule = class { + constructor(slotsPerEpoch, leaderScheduleSlotOffset, warmup, firstNormalEpoch, firstNormalSlot) { + this.slotsPerEpoch = void 0; + this.leaderScheduleSlotOffset = void 0; + this.warmup = void 0; + this.firstNormalEpoch = void 0; + this.firstNormalSlot = void 0; + this.slotsPerEpoch = slotsPerEpoch; + this.leaderScheduleSlotOffset = leaderScheduleSlotOffset; + this.warmup = warmup; + this.firstNormalEpoch = firstNormalEpoch; + this.firstNormalSlot = firstNormalSlot; + } + getEpoch(slot) { + return this.getEpochAndSlotIndex(slot)[0]; + } + getEpochAndSlotIndex(slot) { + if (slot < this.firstNormalSlot) { + const epoch = trailingZeros(nextPowerOfTwo(slot + MINIMUM_SLOT_PER_EPOCH + 1)) - trailingZeros(MINIMUM_SLOT_PER_EPOCH) - 1; + const epochLen = this.getSlotsInEpoch(epoch); + const slotIndex = slot - (epochLen - MINIMUM_SLOT_PER_EPOCH); + return [epoch, slotIndex]; + } else { + const normalSlotIndex = slot - this.firstNormalSlot; + const normalEpochIndex = Math.floor(normalSlotIndex / this.slotsPerEpoch); + const epoch = this.firstNormalEpoch + normalEpochIndex; + const slotIndex = normalSlotIndex % this.slotsPerEpoch; + return [epoch, slotIndex]; + } + } + getFirstSlotInEpoch(epoch) { + if (epoch <= this.firstNormalEpoch) { + return (Math.pow(2, epoch) - 1) * MINIMUM_SLOT_PER_EPOCH; + } else { + return (epoch - this.firstNormalEpoch) * this.slotsPerEpoch + this.firstNormalSlot; + } + } + getLastSlotInEpoch(epoch) { + return this.getFirstSlotInEpoch(epoch) + this.getSlotsInEpoch(epoch) - 1; + } + getSlotsInEpoch(epoch) { + if (epoch < this.firstNormalEpoch) { + return Math.pow(2, epoch + trailingZeros(MINIMUM_SLOT_PER_EPOCH)); + } else { + return this.slotsPerEpoch; + } + } + }; + var fetchImpl = typeof globalThis.fetch === "function" ? ( + // The Fetch API is supported experimentally in Node 17.5+ and natively in Node 18+. + globalThis.fetch + ) : ( + // Otherwise use the polyfill. + async function(input, init) { + const processedInput = typeof input === "string" && input.slice(0, 2) === "//" ? "https:" + input : input; + return await nodeFetch__namespace.default(processedInput, init); + } + ); + var RpcWebSocketClient = class extends rpcWebsockets.CommonClient { + constructor(address, options, generate_request_id) { + const webSocketFactory = (url) => { + const rpc = rpcWebsockets.WebSocket(url, { + autoconnect: true, + max_reconnects: 5, + reconnect: true, + reconnect_interval: 1e3, + ...options + }); + if ("socket" in rpc) { + this.underlyingSocket = rpc.socket; + } else { + this.underlyingSocket = rpc; + } + return rpc; + }; + super(webSocketFactory, address, options, generate_request_id); + this.underlyingSocket = void 0; + } + call(...args) { + const readyState = this.underlyingSocket?.readyState; + if (readyState === 1) { + return super.call(...args); + } + return Promise.reject(new Error("Tried to call a JSON-RPC method `" + args[0] + "` but the socket was not `CONNECTING` or `OPEN` (`readyState` was " + readyState + ")")); + } + notify(...args) { + const readyState = this.underlyingSocket?.readyState; + if (readyState === 1) { + return super.notify(...args); + } + return Promise.reject(new Error("Tried to send a JSON-RPC notification `" + args[0] + "` but the socket was not `CONNECTING` or `OPEN` (`readyState` was " + readyState + ")")); + } + }; + function decodeData(type, data) { + let decoded; + try { + decoded = type.layout.decode(data); + } catch (err) { + throw new Error("invalid instruction; " + err); + } + if (decoded.typeIndex !== type.index) { + throw new Error(`invalid account data; account type mismatch ${decoded.typeIndex} != ${type.index}`); + } + return decoded; + } + var LOOKUP_TABLE_META_SIZE = 56; + var AddressLookupTableAccount = class { + constructor(args) { + this.key = void 0; + this.state = void 0; + this.key = args.key; + this.state = args.state; + } + isActive() { + const U64_MAX = BigInt("0xffffffffffffffff"); + return this.state.deactivationSlot === U64_MAX; + } + static deserialize(accountData) { + const meta = decodeData(LookupTableMetaLayout, accountData); + const serializedAddressesLen = accountData.length - LOOKUP_TABLE_META_SIZE; + assert2(serializedAddressesLen >= 0, "lookup table is invalid"); + assert2(serializedAddressesLen % 32 === 0, "lookup table is invalid"); + const numSerializedAddresses = serializedAddressesLen / 32; + const { + addresses + } = BufferLayout__namespace.struct([BufferLayout__namespace.seq(publicKey23(), numSerializedAddresses, "addresses")]).decode(accountData.slice(LOOKUP_TABLE_META_SIZE)); + return { + deactivationSlot: meta.deactivationSlot, + lastExtendedSlot: meta.lastExtendedSlot, + lastExtendedSlotStartIndex: meta.lastExtendedStartIndex, + authority: meta.authority.length !== 0 ? new PublicKey46(meta.authority[0]) : void 0, + addresses: addresses.map((address) => new PublicKey46(address)) + }; + } + }; + var LookupTableMetaLayout = { + index: 1, + layout: BufferLayout__namespace.struct([ + BufferLayout__namespace.u32("typeIndex"), + u6415("deactivationSlot"), + BufferLayout__namespace.nu64("lastExtendedSlot"), + BufferLayout__namespace.u8("lastExtendedStartIndex"), + BufferLayout__namespace.u8(), + // option + BufferLayout__namespace.seq(publicKey23(), BufferLayout__namespace.offset(BufferLayout__namespace.u8(), -1), "authority") + ]) + }; + var URL_RE = /^[^:]+:\/\/([^:[]+|\[[^\]]+\])(:\d+)?(.*)/i; + function makeWebsocketUrl(endpoint2) { + const matches = endpoint2.match(URL_RE); + if (matches == null) { + throw TypeError(`Failed to validate endpoint URL \`${endpoint2}\``); + } + const [ + _, + // eslint-disable-line @typescript-eslint/no-unused-vars + hostish, + portWithColon, + rest + ] = matches; + const protocol = endpoint2.startsWith("https:") ? "wss:" : "ws:"; + const startPort = portWithColon == null ? null : parseInt(portWithColon.slice(1), 10); + const websocketPort = ( + // Only shift the port by +1 as a convention for ws(s) only if given endpoint + // is explicitly specifying the endpoint port (HTTP-based RPC), assuming + // we're directly trying to connect to agave-validator's ws listening port. + // When the endpoint omits the port, we're connecting to the protocol + // default ports: http(80) or https(443) and it's assumed we're behind a reverse + // proxy which manages WebSocket upgrade and backend port redirection. + startPort == null ? "" : `:${startPort + 1}` + ); + return `${protocol}//${hostish}${websocketPort}${rest}`; + } + var PublicKeyFromString = superstruct.coerce(superstruct.instance(PublicKey46), superstruct.string(), (value) => new PublicKey46(value)); + var RawAccountDataResult = superstruct.tuple([superstruct.string(), superstruct.literal("base64")]); + var BufferFromRawAccountData = superstruct.coerce(superstruct.instance(buffer.Buffer), RawAccountDataResult, (value) => buffer.Buffer.from(value[0], "base64")); + var BLOCKHASH_CACHE_TIMEOUT_MS = 30 * 1e3; + function assertEndpointUrl(putativeUrl) { + if (/^https?:/.test(putativeUrl) === false) { + throw new TypeError("Endpoint URL must start with `http:` or `https:`."); + } + return putativeUrl; + } + function extractCommitmentFromConfig(commitmentOrConfig) { + let commitment; + let config; + if (typeof commitmentOrConfig === "string") { + commitment = commitmentOrConfig; + } else if (commitmentOrConfig) { + const { + commitment: specifiedCommitment, + ...specifiedConfig + } = commitmentOrConfig; + commitment = specifiedCommitment; + config = specifiedConfig; + } + return { + commitment, + config + }; + } + function applyDefaultMemcmpEncodingToFilters(filters) { + return filters.map((filter) => "memcmp" in filter ? { + ...filter, + memcmp: { + ...filter.memcmp, + encoding: filter.memcmp.encoding ?? "base58" + } + } : filter); + } + function createRpcResult(result) { + return superstruct.union([superstruct.type({ + jsonrpc: superstruct.literal("2.0"), + id: superstruct.string(), + result + }), superstruct.type({ + jsonrpc: superstruct.literal("2.0"), + id: superstruct.string(), + error: superstruct.type({ + code: superstruct.unknown(), + message: superstruct.string(), + data: superstruct.optional(superstruct.any()) + }) + })]); + } + var UnknownRpcResult = createRpcResult(superstruct.unknown()); + function jsonRpcResult(schema) { + return superstruct.coerce(createRpcResult(schema), UnknownRpcResult, (value) => { + if ("error" in value) { + return value; + } else { + return { + ...value, + result: superstruct.create(value.result, schema) + }; + } + }); + } + function jsonRpcResultAndContext(value) { + return jsonRpcResult(superstruct.type({ + context: superstruct.type({ + slot: superstruct.number() + }), + value + })); + } + function notificationResultAndContext(value) { + return superstruct.type({ + context: superstruct.type({ + slot: superstruct.number() + }), + value + }); + } + function versionedMessageFromResponse(version2, response) { + if (version2 === 0) { + return new MessageV02({ + header: response.header, + staticAccountKeys: response.accountKeys.map((accountKey) => new PublicKey46(accountKey)), + recentBlockhash: response.recentBlockhash, + compiledInstructions: response.instructions.map((ix) => ({ + programIdIndex: ix.programIdIndex, + accountKeyIndexes: ix.accounts, + data: bs58__default.default.decode(ix.data) + })), + addressTableLookups: response.addressTableLookups + }); + } else { + return new Message(response); + } + } + var GetInflationGovernorResult = superstruct.type({ + foundation: superstruct.number(), + foundationTerm: superstruct.number(), + initial: superstruct.number(), + taper: superstruct.number(), + terminal: superstruct.number() + }); + var GetInflationRewardResult = jsonRpcResult(superstruct.array(superstruct.nullable(superstruct.type({ + epoch: superstruct.number(), + effectiveSlot: superstruct.number(), + amount: superstruct.number(), + postBalance: superstruct.number(), + commission: superstruct.optional(superstruct.nullable(superstruct.number())) + })))); + var GetRecentPrioritizationFeesResult = superstruct.array(superstruct.type({ + slot: superstruct.number(), + prioritizationFee: superstruct.number() + })); + var GetInflationRateResult = superstruct.type({ + total: superstruct.number(), + validator: superstruct.number(), + foundation: superstruct.number(), + epoch: superstruct.number() + }); + var GetEpochInfoResult = superstruct.type({ + epoch: superstruct.number(), + slotIndex: superstruct.number(), + slotsInEpoch: superstruct.number(), + absoluteSlot: superstruct.number(), + blockHeight: superstruct.optional(superstruct.number()), + transactionCount: superstruct.optional(superstruct.number()) + }); + var GetEpochScheduleResult = superstruct.type({ + slotsPerEpoch: superstruct.number(), + leaderScheduleSlotOffset: superstruct.number(), + warmup: superstruct.boolean(), + firstNormalEpoch: superstruct.number(), + firstNormalSlot: superstruct.number() + }); + var GetLeaderScheduleResult = superstruct.record(superstruct.string(), superstruct.array(superstruct.number())); + var TransactionErrorResult = superstruct.nullable(superstruct.union([superstruct.type({}), superstruct.string()])); + var SignatureStatusResult = superstruct.type({ + err: TransactionErrorResult + }); + var SignatureReceivedResult = superstruct.literal("receivedSignature"); + var VersionResult = superstruct.type({ + "solana-core": superstruct.string(), + "feature-set": superstruct.optional(superstruct.number()) + }); + var ParsedInstructionStruct = superstruct.type({ + program: superstruct.string(), + programId: PublicKeyFromString, + parsed: superstruct.unknown() + }); + var PartiallyDecodedInstructionStruct = superstruct.type({ + programId: PublicKeyFromString, + accounts: superstruct.array(PublicKeyFromString), + data: superstruct.string() + }); + var SimulatedTransactionResponseStruct = jsonRpcResultAndContext(superstruct.type({ + err: superstruct.nullable(superstruct.union([superstruct.type({}), superstruct.string()])), + logs: superstruct.nullable(superstruct.array(superstruct.string())), + accounts: superstruct.optional(superstruct.nullable(superstruct.array(superstruct.nullable(superstruct.type({ + executable: superstruct.boolean(), + owner: superstruct.string(), + lamports: superstruct.number(), + data: superstruct.array(superstruct.string()), + rentEpoch: superstruct.optional(superstruct.number()) + }))))), + unitsConsumed: superstruct.optional(superstruct.number()), + returnData: superstruct.optional(superstruct.nullable(superstruct.type({ + programId: superstruct.string(), + data: superstruct.tuple([superstruct.string(), superstruct.literal("base64")]) + }))), + innerInstructions: superstruct.optional(superstruct.nullable(superstruct.array(superstruct.type({ + index: superstruct.number(), + instructions: superstruct.array(superstruct.union([ParsedInstructionStruct, PartiallyDecodedInstructionStruct])) + })))) + })); + var BlockProductionResponseStruct = jsonRpcResultAndContext(superstruct.type({ + byIdentity: superstruct.record(superstruct.string(), superstruct.array(superstruct.number())), + range: superstruct.type({ + firstSlot: superstruct.number(), + lastSlot: superstruct.number() + }) + })); + function createRpcClient(url, httpHeaders, customFetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent) { + const fetch2 = customFetch ? customFetch : fetchImpl; + let agent2; + { + if (httpAgent == null) { + { + const agentOptions = { + // One second fewer than the Solana RPC's keepalive timeout. + // Read more: https://github.com/solana-labs/solana/issues/27859#issuecomment-1340097889 + freeSocketTimeout: 19e3, + keepAlive: true, + maxSockets: 25 + }; + if (url.startsWith("https:")) { + agent2 = new agentkeepaliveExports.HttpsAgent(agentOptions); + } else { + agent2 = new HttpKeepAliveAgent(agentOptions); + } + } + } else { + if (httpAgent !== false) { + const isHttps = url.startsWith("https:"); + if (isHttps && !(httpAgent instanceof require$$0$2.Agent)) { + throw new Error("The endpoint `" + url + "` can only be paired with an `https.Agent`. You have, instead, supplied an `http.Agent` through `httpAgent`."); + } else if (!isHttps && httpAgent instanceof require$$0$2.Agent) { + throw new Error("The endpoint `" + url + "` can only be paired with an `http.Agent`. You have, instead, supplied an `https.Agent` through `httpAgent`."); + } + agent2 = httpAgent; + } + } + } + let fetchWithMiddleware; + if (fetchMiddleware) { + fetchWithMiddleware = async (info2, init) => { + const modifiedFetchArgs = await new Promise((resolve, reject) => { + try { + fetchMiddleware(info2, init, (modifiedInfo, modifiedInit) => resolve([modifiedInfo, modifiedInit])); + } catch (error) { + reject(error); + } + }); + return await fetch2(...modifiedFetchArgs); + }; + } + const clientBrowser = new RpcClient__default.default(async (request, callback) => { + const options = { + method: "POST", + body: request, + agent: agent2, + headers: Object.assign({ + "Content-Type": "application/json" + }, httpHeaders || {}, COMMON_HTTP_HEADERS) + }; + try { + let too_many_requests_retries = 5; + let res; + let waitTime = 500; + for (; ; ) { + if (fetchWithMiddleware) { + res = await fetchWithMiddleware(url, options); + } else { + res = await fetch2(url, options); + } + if (res.status !== 429) { + break; + } + if (disableRetryOnRateLimit === true) { + break; + } + too_many_requests_retries -= 1; + if (too_many_requests_retries === 0) { + break; + } + console.error(`Server responded with ${res.status} ${res.statusText}. Retrying after ${waitTime}ms delay...`); + await sleep(waitTime); + waitTime *= 2; + } + const text = await res.text(); + if (res.ok) { + callback(null, text); + } else { + callback(new Error(`${res.status} ${res.statusText}: ${text}`)); + } + } catch (err) { + if (err instanceof Error) callback(err); + } + }, {}); + return clientBrowser; + } + function createRpcRequest(client) { + return (method2, args) => { + return new Promise((resolve, reject) => { + client.request(method2, args, (err, response) => { + if (err) { + reject(err); + return; + } + resolve(response); + }); + }); + }; + } + function createRpcBatchRequest(client) { + return (requests) => { + return new Promise((resolve, reject) => { + if (requests.length === 0) resolve([]); + const batch = requests.map((params) => { + return client.request(params.methodName, params.args); + }); + client.request(batch, (err, response) => { + if (err) { + reject(err); + return; + } + resolve(response); + }); + }); + }; + } + var GetInflationGovernorRpcResult = jsonRpcResult(GetInflationGovernorResult); + var GetInflationRateRpcResult = jsonRpcResult(GetInflationRateResult); + var GetRecentPrioritizationFeesRpcResult = jsonRpcResult(GetRecentPrioritizationFeesResult); + var GetEpochInfoRpcResult = jsonRpcResult(GetEpochInfoResult); + var GetEpochScheduleRpcResult = jsonRpcResult(GetEpochScheduleResult); + var GetLeaderScheduleRpcResult = jsonRpcResult(GetLeaderScheduleResult); + var SlotRpcResult = jsonRpcResult(superstruct.number()); + var GetSupplyRpcResult = jsonRpcResultAndContext(superstruct.type({ + total: superstruct.number(), + circulating: superstruct.number(), + nonCirculating: superstruct.number(), + nonCirculatingAccounts: superstruct.array(PublicKeyFromString) + })); + var TokenAmountResult = superstruct.type({ + amount: superstruct.string(), + uiAmount: superstruct.nullable(superstruct.number()), + decimals: superstruct.number(), + uiAmountString: superstruct.optional(superstruct.string()) + }); + var GetTokenLargestAccountsResult = jsonRpcResultAndContext(superstruct.array(superstruct.type({ + address: PublicKeyFromString, + amount: superstruct.string(), + uiAmount: superstruct.nullable(superstruct.number()), + decimals: superstruct.number(), + uiAmountString: superstruct.optional(superstruct.string()) + }))); + var GetTokenAccountsByOwner = jsonRpcResultAndContext(superstruct.array(superstruct.type({ + pubkey: PublicKeyFromString, + account: superstruct.type({ + executable: superstruct.boolean(), + owner: PublicKeyFromString, + lamports: superstruct.number(), + data: BufferFromRawAccountData, + rentEpoch: superstruct.number() + }) + }))); + var ParsedAccountDataResult = superstruct.type({ + program: superstruct.string(), + parsed: superstruct.unknown(), + space: superstruct.number() + }); + var GetParsedTokenAccountsByOwner = jsonRpcResultAndContext(superstruct.array(superstruct.type({ + pubkey: PublicKeyFromString, + account: superstruct.type({ + executable: superstruct.boolean(), + owner: PublicKeyFromString, + lamports: superstruct.number(), + data: ParsedAccountDataResult, + rentEpoch: superstruct.number() + }) + }))); + var GetLargestAccountsRpcResult = jsonRpcResultAndContext(superstruct.array(superstruct.type({ + lamports: superstruct.number(), + address: PublicKeyFromString + }))); + var AccountInfoResult = superstruct.type({ + executable: superstruct.boolean(), + owner: PublicKeyFromString, + lamports: superstruct.number(), + data: BufferFromRawAccountData, + rentEpoch: superstruct.number() + }); + var KeyedAccountInfoResult = superstruct.type({ + pubkey: PublicKeyFromString, + account: AccountInfoResult + }); + var ParsedOrRawAccountData = superstruct.coerce(superstruct.union([superstruct.instance(buffer.Buffer), ParsedAccountDataResult]), superstruct.union([RawAccountDataResult, ParsedAccountDataResult]), (value) => { + if (Array.isArray(value)) { + return superstruct.create(value, BufferFromRawAccountData); + } else { + return value; + } + }); + var ParsedAccountInfoResult = superstruct.type({ + executable: superstruct.boolean(), + owner: PublicKeyFromString, + lamports: superstruct.number(), + data: ParsedOrRawAccountData, + rentEpoch: superstruct.number() + }); + var KeyedParsedAccountInfoResult = superstruct.type({ + pubkey: PublicKeyFromString, + account: ParsedAccountInfoResult + }); + var StakeActivationResult = superstruct.type({ + state: superstruct.union([superstruct.literal("active"), superstruct.literal("inactive"), superstruct.literal("activating"), superstruct.literal("deactivating")]), + active: superstruct.number(), + inactive: superstruct.number() + }); + var GetConfirmedSignaturesForAddress2RpcResult = jsonRpcResult(superstruct.array(superstruct.type({ + signature: superstruct.string(), + slot: superstruct.number(), + err: TransactionErrorResult, + memo: superstruct.nullable(superstruct.string()), + blockTime: superstruct.optional(superstruct.nullable(superstruct.number())) + }))); + var GetSignaturesForAddressRpcResult = jsonRpcResult(superstruct.array(superstruct.type({ + signature: superstruct.string(), + slot: superstruct.number(), + err: TransactionErrorResult, + memo: superstruct.nullable(superstruct.string()), + blockTime: superstruct.optional(superstruct.nullable(superstruct.number())) + }))); + var AccountNotificationResult = superstruct.type({ + subscription: superstruct.number(), + result: notificationResultAndContext(AccountInfoResult) + }); + var ProgramAccountInfoResult = superstruct.type({ + pubkey: PublicKeyFromString, + account: AccountInfoResult + }); + var ProgramAccountNotificationResult = superstruct.type({ + subscription: superstruct.number(), + result: notificationResultAndContext(ProgramAccountInfoResult) + }); + var SlotInfoResult = superstruct.type({ + parent: superstruct.number(), + slot: superstruct.number(), + root: superstruct.number() + }); + var SlotNotificationResult = superstruct.type({ + subscription: superstruct.number(), + result: SlotInfoResult + }); + var SlotUpdateResult = superstruct.union([superstruct.type({ + type: superstruct.union([superstruct.literal("firstShredReceived"), superstruct.literal("completed"), superstruct.literal("optimisticConfirmation"), superstruct.literal("root")]), + slot: superstruct.number(), + timestamp: superstruct.number() + }), superstruct.type({ + type: superstruct.literal("createdBank"), + parent: superstruct.number(), + slot: superstruct.number(), + timestamp: superstruct.number() + }), superstruct.type({ + type: superstruct.literal("frozen"), + slot: superstruct.number(), + timestamp: superstruct.number(), + stats: superstruct.type({ + numTransactionEntries: superstruct.number(), + numSuccessfulTransactions: superstruct.number(), + numFailedTransactions: superstruct.number(), + maxTransactionsPerEntry: superstruct.number() + }) + }), superstruct.type({ + type: superstruct.literal("dead"), + slot: superstruct.number(), + timestamp: superstruct.number(), + err: superstruct.string() + })]); + var SlotUpdateNotificationResult = superstruct.type({ + subscription: superstruct.number(), + result: SlotUpdateResult + }); + var SignatureNotificationResult = superstruct.type({ + subscription: superstruct.number(), + result: notificationResultAndContext(superstruct.union([SignatureStatusResult, SignatureReceivedResult])) + }); + var RootNotificationResult = superstruct.type({ + subscription: superstruct.number(), + result: superstruct.number() + }); + var ContactInfoResult = superstruct.type({ + pubkey: superstruct.string(), + gossip: superstruct.nullable(superstruct.string()), + tpu: superstruct.nullable(superstruct.string()), + rpc: superstruct.nullable(superstruct.string()), + version: superstruct.nullable(superstruct.string()) + }); + var VoteAccountInfoResult = superstruct.type({ + votePubkey: superstruct.string(), + nodePubkey: superstruct.string(), + activatedStake: superstruct.number(), + epochVoteAccount: superstruct.boolean(), + epochCredits: superstruct.array(superstruct.tuple([superstruct.number(), superstruct.number(), superstruct.number()])), + commission: superstruct.number(), + lastVote: superstruct.number(), + rootSlot: superstruct.nullable(superstruct.number()) + }); + var GetVoteAccounts = jsonRpcResult(superstruct.type({ + current: superstruct.array(VoteAccountInfoResult), + delinquent: superstruct.array(VoteAccountInfoResult) + })); + var ConfirmationStatus = superstruct.union([superstruct.literal("processed"), superstruct.literal("confirmed"), superstruct.literal("finalized")]); + var SignatureStatusResponse = superstruct.type({ + slot: superstruct.number(), + confirmations: superstruct.nullable(superstruct.number()), + err: TransactionErrorResult, + confirmationStatus: superstruct.optional(ConfirmationStatus) + }); + var GetSignatureStatusesRpcResult = jsonRpcResultAndContext(superstruct.array(superstruct.nullable(SignatureStatusResponse))); + var GetMinimumBalanceForRentExemptionRpcResult = jsonRpcResult(superstruct.number()); + var AddressTableLookupStruct = superstruct.type({ + accountKey: PublicKeyFromString, + writableIndexes: superstruct.array(superstruct.number()), + readonlyIndexes: superstruct.array(superstruct.number()) + }); + var ConfirmedTransactionResult = superstruct.type({ + signatures: superstruct.array(superstruct.string()), + message: superstruct.type({ + accountKeys: superstruct.array(superstruct.string()), + header: superstruct.type({ + numRequiredSignatures: superstruct.number(), + numReadonlySignedAccounts: superstruct.number(), + numReadonlyUnsignedAccounts: superstruct.number() + }), + instructions: superstruct.array(superstruct.type({ + accounts: superstruct.array(superstruct.number()), + data: superstruct.string(), + programIdIndex: superstruct.number() + })), + recentBlockhash: superstruct.string(), + addressTableLookups: superstruct.optional(superstruct.array(AddressTableLookupStruct)) + }) + }); + var AnnotatedAccountKey = superstruct.type({ + pubkey: PublicKeyFromString, + signer: superstruct.boolean(), + writable: superstruct.boolean(), + source: superstruct.optional(superstruct.union([superstruct.literal("transaction"), superstruct.literal("lookupTable")])) + }); + var ConfirmedTransactionAccountsModeResult = superstruct.type({ + accountKeys: superstruct.array(AnnotatedAccountKey), + signatures: superstruct.array(superstruct.string()) + }); + var ParsedInstructionResult = superstruct.type({ + parsed: superstruct.unknown(), + program: superstruct.string(), + programId: PublicKeyFromString + }); + var RawInstructionResult = superstruct.type({ + accounts: superstruct.array(PublicKeyFromString), + data: superstruct.string(), + programId: PublicKeyFromString + }); + var InstructionResult = superstruct.union([RawInstructionResult, ParsedInstructionResult]); + var UnknownInstructionResult = superstruct.union([superstruct.type({ + parsed: superstruct.unknown(), + program: superstruct.string(), + programId: superstruct.string() + }), superstruct.type({ + accounts: superstruct.array(superstruct.string()), + data: superstruct.string(), + programId: superstruct.string() + })]); + var ParsedOrRawInstruction = superstruct.coerce(InstructionResult, UnknownInstructionResult, (value) => { + if ("accounts" in value) { + return superstruct.create(value, RawInstructionResult); + } else { + return superstruct.create(value, ParsedInstructionResult); + } + }); + var ParsedConfirmedTransactionResult = superstruct.type({ + signatures: superstruct.array(superstruct.string()), + message: superstruct.type({ + accountKeys: superstruct.array(AnnotatedAccountKey), + instructions: superstruct.array(ParsedOrRawInstruction), + recentBlockhash: superstruct.string(), + addressTableLookups: superstruct.optional(superstruct.nullable(superstruct.array(AddressTableLookupStruct))) + }) + }); + var TokenBalanceResult = superstruct.type({ + accountIndex: superstruct.number(), + mint: superstruct.string(), + owner: superstruct.optional(superstruct.string()), + programId: superstruct.optional(superstruct.string()), + uiTokenAmount: TokenAmountResult + }); + var LoadedAddressesResult = superstruct.type({ + writable: superstruct.array(PublicKeyFromString), + readonly: superstruct.array(PublicKeyFromString) + }); + var ConfirmedTransactionMetaResult = superstruct.type({ + err: TransactionErrorResult, + fee: superstruct.number(), + innerInstructions: superstruct.optional(superstruct.nullable(superstruct.array(superstruct.type({ + index: superstruct.number(), + instructions: superstruct.array(superstruct.type({ + accounts: superstruct.array(superstruct.number()), + data: superstruct.string(), + programIdIndex: superstruct.number() + })) + })))), + preBalances: superstruct.array(superstruct.number()), + postBalances: superstruct.array(superstruct.number()), + logMessages: superstruct.optional(superstruct.nullable(superstruct.array(superstruct.string()))), + preTokenBalances: superstruct.optional(superstruct.nullable(superstruct.array(TokenBalanceResult))), + postTokenBalances: superstruct.optional(superstruct.nullable(superstruct.array(TokenBalanceResult))), + loadedAddresses: superstruct.optional(LoadedAddressesResult), + computeUnitsConsumed: superstruct.optional(superstruct.number()) + }); + var ParsedConfirmedTransactionMetaResult = superstruct.type({ + err: TransactionErrorResult, + fee: superstruct.number(), + innerInstructions: superstruct.optional(superstruct.nullable(superstruct.array(superstruct.type({ + index: superstruct.number(), + instructions: superstruct.array(ParsedOrRawInstruction) + })))), + preBalances: superstruct.array(superstruct.number()), + postBalances: superstruct.array(superstruct.number()), + logMessages: superstruct.optional(superstruct.nullable(superstruct.array(superstruct.string()))), + preTokenBalances: superstruct.optional(superstruct.nullable(superstruct.array(TokenBalanceResult))), + postTokenBalances: superstruct.optional(superstruct.nullable(superstruct.array(TokenBalanceResult))), + loadedAddresses: superstruct.optional(LoadedAddressesResult), + computeUnitsConsumed: superstruct.optional(superstruct.number()) + }); + var TransactionVersionStruct = superstruct.union([superstruct.literal(0), superstruct.literal("legacy")]); + var RewardsResult = superstruct.type({ + pubkey: superstruct.string(), + lamports: superstruct.number(), + postBalance: superstruct.nullable(superstruct.number()), + rewardType: superstruct.nullable(superstruct.string()), + commission: superstruct.optional(superstruct.nullable(superstruct.number())) + }); + var GetBlockRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + blockhash: superstruct.string(), + previousBlockhash: superstruct.string(), + parentSlot: superstruct.number(), + transactions: superstruct.array(superstruct.type({ + transaction: ConfirmedTransactionResult, + meta: superstruct.nullable(ConfirmedTransactionMetaResult), + version: superstruct.optional(TransactionVersionStruct) + })), + rewards: superstruct.optional(superstruct.array(RewardsResult)), + blockTime: superstruct.nullable(superstruct.number()), + blockHeight: superstruct.nullable(superstruct.number()) + }))); + var GetNoneModeBlockRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + blockhash: superstruct.string(), + previousBlockhash: superstruct.string(), + parentSlot: superstruct.number(), + rewards: superstruct.optional(superstruct.array(RewardsResult)), + blockTime: superstruct.nullable(superstruct.number()), + blockHeight: superstruct.nullable(superstruct.number()) + }))); + var GetAccountsModeBlockRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + blockhash: superstruct.string(), + previousBlockhash: superstruct.string(), + parentSlot: superstruct.number(), + transactions: superstruct.array(superstruct.type({ + transaction: ConfirmedTransactionAccountsModeResult, + meta: superstruct.nullable(ConfirmedTransactionMetaResult), + version: superstruct.optional(TransactionVersionStruct) + })), + rewards: superstruct.optional(superstruct.array(RewardsResult)), + blockTime: superstruct.nullable(superstruct.number()), + blockHeight: superstruct.nullable(superstruct.number()) + }))); + var GetParsedBlockRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + blockhash: superstruct.string(), + previousBlockhash: superstruct.string(), + parentSlot: superstruct.number(), + transactions: superstruct.array(superstruct.type({ + transaction: ParsedConfirmedTransactionResult, + meta: superstruct.nullable(ParsedConfirmedTransactionMetaResult), + version: superstruct.optional(TransactionVersionStruct) + })), + rewards: superstruct.optional(superstruct.array(RewardsResult)), + blockTime: superstruct.nullable(superstruct.number()), + blockHeight: superstruct.nullable(superstruct.number()) + }))); + var GetParsedAccountsModeBlockRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + blockhash: superstruct.string(), + previousBlockhash: superstruct.string(), + parentSlot: superstruct.number(), + transactions: superstruct.array(superstruct.type({ + transaction: ConfirmedTransactionAccountsModeResult, + meta: superstruct.nullable(ParsedConfirmedTransactionMetaResult), + version: superstruct.optional(TransactionVersionStruct) + })), + rewards: superstruct.optional(superstruct.array(RewardsResult)), + blockTime: superstruct.nullable(superstruct.number()), + blockHeight: superstruct.nullable(superstruct.number()) + }))); + var GetParsedNoneModeBlockRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + blockhash: superstruct.string(), + previousBlockhash: superstruct.string(), + parentSlot: superstruct.number(), + rewards: superstruct.optional(superstruct.array(RewardsResult)), + blockTime: superstruct.nullable(superstruct.number()), + blockHeight: superstruct.nullable(superstruct.number()) + }))); + var GetConfirmedBlockRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + blockhash: superstruct.string(), + previousBlockhash: superstruct.string(), + parentSlot: superstruct.number(), + transactions: superstruct.array(superstruct.type({ + transaction: ConfirmedTransactionResult, + meta: superstruct.nullable(ConfirmedTransactionMetaResult) + })), + rewards: superstruct.optional(superstruct.array(RewardsResult)), + blockTime: superstruct.nullable(superstruct.number()) + }))); + var GetBlockSignaturesRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + blockhash: superstruct.string(), + previousBlockhash: superstruct.string(), + parentSlot: superstruct.number(), + signatures: superstruct.array(superstruct.string()), + blockTime: superstruct.nullable(superstruct.number()) + }))); + var GetTransactionRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + slot: superstruct.number(), + meta: superstruct.nullable(ConfirmedTransactionMetaResult), + blockTime: superstruct.optional(superstruct.nullable(superstruct.number())), + transaction: ConfirmedTransactionResult, + version: superstruct.optional(TransactionVersionStruct) + }))); + var GetParsedTransactionRpcResult = jsonRpcResult(superstruct.nullable(superstruct.type({ + slot: superstruct.number(), + transaction: ParsedConfirmedTransactionResult, + meta: superstruct.nullable(ParsedConfirmedTransactionMetaResult), + blockTime: superstruct.optional(superstruct.nullable(superstruct.number())), + version: superstruct.optional(TransactionVersionStruct) + }))); + var GetLatestBlockhashRpcResult = jsonRpcResultAndContext(superstruct.type({ + blockhash: superstruct.string(), + lastValidBlockHeight: superstruct.number() + })); + var IsBlockhashValidRpcResult = jsonRpcResultAndContext(superstruct.boolean()); + var PerfSampleResult = superstruct.type({ + slot: superstruct.number(), + numTransactions: superstruct.number(), + numSlots: superstruct.number(), + samplePeriodSecs: superstruct.number() + }); + var GetRecentPerformanceSamplesRpcResult = jsonRpcResult(superstruct.array(PerfSampleResult)); + var GetFeeCalculatorRpcResult = jsonRpcResultAndContext(superstruct.nullable(superstruct.type({ + feeCalculator: superstruct.type({ + lamportsPerSignature: superstruct.number() + }) + }))); + var RequestAirdropRpcResult = jsonRpcResult(superstruct.string()); + var SendTransactionRpcResult = jsonRpcResult(superstruct.string()); + var LogsResult = superstruct.type({ + err: TransactionErrorResult, + logs: superstruct.array(superstruct.string()), + signature: superstruct.string() + }); + var LogsNotificationResult = superstruct.type({ + result: notificationResultAndContext(LogsResult), + subscription: superstruct.number() + }); + var COMMON_HTTP_HEADERS = { + "solana-client": `js/${"1.0.0-maintenance"}` + }; + var Connection2 = class { + /** + * Establish a JSON RPC connection + * + * @param endpoint URL to the fullnode JSON RPC endpoint + * @param commitmentOrConfig optional default commitment level or optional ConnectionConfig configuration object + */ + constructor(endpoint2, _commitmentOrConfig) { + this._commitment = void 0; + this._confirmTransactionInitialTimeout = void 0; + this._rpcEndpoint = void 0; + this._rpcWsEndpoint = void 0; + this._rpcClient = void 0; + this._rpcRequest = void 0; + this._rpcBatchRequest = void 0; + this._rpcWebSocket = void 0; + this._rpcWebSocketConnected = false; + this._rpcWebSocketHeartbeat = null; + this._rpcWebSocketIdleTimeout = null; + this._rpcWebSocketGeneration = 0; + this._disableBlockhashCaching = false; + this._pollingBlockhash = false; + this._blockhashInfo = { + latestBlockhash: null, + lastFetch: 0, + transactionSignatures: [], + simulatedSignatures: [] + }; + this._nextClientSubscriptionId = 0; + this._subscriptionDisposeFunctionsByClientSubscriptionId = {}; + this._subscriptionHashByClientSubscriptionId = {}; + this._subscriptionStateChangeCallbacksByHash = {}; + this._subscriptionCallbacksByServerSubscriptionId = {}; + this._subscriptionsByHash = {}; + this._subscriptionsAutoDisposedByRpc = /* @__PURE__ */ new Set(); + this.getBlockHeight = /* @__PURE__ */ (() => { + const requestPromises = {}; + return async (commitmentOrConfig) => { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([], commitment, void 0, config); + const requestHash = fastStableStringify(args); + requestPromises[requestHash] = requestPromises[requestHash] ?? (async () => { + try { + const unsafeRes = await this._rpcRequest("getBlockHeight", args); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.number())); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get block height information"); + } + return res.result; + } finally { + delete requestPromises[requestHash]; + } + })(); + return await requestPromises[requestHash]; + }; + })(); + let wsEndpoint; + let httpHeaders; + let fetch2; + let fetchMiddleware; + let disableRetryOnRateLimit; + let httpAgent; + if (_commitmentOrConfig && typeof _commitmentOrConfig === "string") { + this._commitment = _commitmentOrConfig; + } else if (_commitmentOrConfig) { + this._commitment = _commitmentOrConfig.commitment; + this._confirmTransactionInitialTimeout = _commitmentOrConfig.confirmTransactionInitialTimeout; + wsEndpoint = _commitmentOrConfig.wsEndpoint; + httpHeaders = _commitmentOrConfig.httpHeaders; + fetch2 = _commitmentOrConfig.fetch; + fetchMiddleware = _commitmentOrConfig.fetchMiddleware; + disableRetryOnRateLimit = _commitmentOrConfig.disableRetryOnRateLimit; + httpAgent = _commitmentOrConfig.httpAgent; + } + this._rpcEndpoint = assertEndpointUrl(endpoint2); + this._rpcWsEndpoint = wsEndpoint || makeWebsocketUrl(endpoint2); + this._rpcClient = createRpcClient(endpoint2, httpHeaders, fetch2, fetchMiddleware, disableRetryOnRateLimit, httpAgent); + this._rpcRequest = createRpcRequest(this._rpcClient); + this._rpcBatchRequest = createRpcBatchRequest(this._rpcClient); + this._rpcWebSocket = new RpcWebSocketClient(this._rpcWsEndpoint, { + autoconnect: false, + max_reconnects: Infinity + }); + this._rpcWebSocket.on("open", this._wsOnOpen.bind(this)); + this._rpcWebSocket.on("error", this._wsOnError.bind(this)); + this._rpcWebSocket.on("close", this._wsOnClose.bind(this)); + this._rpcWebSocket.on("accountNotification", this._wsOnAccountNotification.bind(this)); + this._rpcWebSocket.on("programNotification", this._wsOnProgramAccountNotification.bind(this)); + this._rpcWebSocket.on("slotNotification", this._wsOnSlotNotification.bind(this)); + this._rpcWebSocket.on("slotsUpdatesNotification", this._wsOnSlotUpdatesNotification.bind(this)); + this._rpcWebSocket.on("signatureNotification", this._wsOnSignatureNotification.bind(this)); + this._rpcWebSocket.on("rootNotification", this._wsOnRootNotification.bind(this)); + this._rpcWebSocket.on("logsNotification", this._wsOnLogsNotification.bind(this)); + } + /** + * The default commitment used for requests + */ + get commitment() { + return this._commitment; + } + /** + * The RPC endpoint + */ + get rpcEndpoint() { + return this._rpcEndpoint; + } + /** + * Fetch the balance for the specified public key, return with context + */ + async getBalanceAndContext(publicKey24, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([publicKey24.toBase58()], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("getBalance", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(superstruct.number())); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get balance for ${publicKey24.toBase58()}`); + } + return res.result; + } + /** + * Fetch the balance for the specified public key + */ + async getBalance(publicKey24, commitmentOrConfig) { + return await this.getBalanceAndContext(publicKey24, commitmentOrConfig).then((x) => x.value).catch((e) => { + throw new Error("failed to get balance of account " + publicKey24.toBase58() + ": " + e); + }); + } + /** + * Fetch the estimated production time of a block + */ + async getBlockTime(slot) { + const unsafeRes = await this._rpcRequest("getBlockTime", [slot]); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.nullable(superstruct.number()))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get block time for slot ${slot}`); + } + return res.result; + } + /** + * Fetch the lowest slot that the node has information about in its ledger. + * This value may increase over time if the node is configured to purge older ledger data + */ + async getMinimumLedgerSlot() { + const unsafeRes = await this._rpcRequest("minimumLedgerSlot", []); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.number())); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get minimum ledger slot"); + } + return res.result; + } + /** + * Fetch the slot of the lowest confirmed block that has not been purged from the ledger + */ + async getFirstAvailableBlock() { + const unsafeRes = await this._rpcRequest("getFirstAvailableBlock", []); + const res = superstruct.create(unsafeRes, SlotRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get first available block"); + } + return res.result; + } + /** + * Fetch information about the current supply + */ + async getSupply(config) { + let configArg = {}; + if (typeof config === "string") { + configArg = { + commitment: config + }; + } else if (config) { + configArg = { + ...config, + commitment: config && config.commitment || this.commitment + }; + } else { + configArg = { + commitment: this.commitment + }; + } + const unsafeRes = await this._rpcRequest("getSupply", [configArg]); + const res = superstruct.create(unsafeRes, GetSupplyRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get supply"); + } + return res.result; + } + /** + * Fetch the current supply of a token mint + */ + async getTokenSupply(tokenMintAddress, commitment) { + const args = this._buildArgs([tokenMintAddress.toBase58()], commitment); + const unsafeRes = await this._rpcRequest("getTokenSupply", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult)); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get token supply"); + } + return res.result; + } + /** + * Fetch the current balance of a token account + */ + async getTokenAccountBalance(tokenAddress, commitment) { + const args = this._buildArgs([tokenAddress.toBase58()], commitment); + const unsafeRes = await this._rpcRequest("getTokenAccountBalance", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult)); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get token account balance"); + } + return res.result; + } + /** + * Fetch all the token accounts owned by the specified account + * + * @return {Promise} + */ + async getTokenAccountsByOwner(ownerAddress, filter, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + let _args = [ownerAddress.toBase58()]; + if ("mint" in filter) { + _args.push({ + mint: filter.mint.toBase58() + }); + } else { + _args.push({ + programId: filter.programId.toBase58() + }); + } + const args = this._buildArgs(_args, commitment, "base64", config); + const unsafeRes = await this._rpcRequest("getTokenAccountsByOwner", args); + const res = superstruct.create(unsafeRes, GetTokenAccountsByOwner); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get token accounts owned by account ${ownerAddress.toBase58()}`); + } + return res.result; + } + /** + * Fetch parsed token accounts owned by the specified account + * + * @return {Promise}>>>} + */ + async getParsedTokenAccountsByOwner(ownerAddress, filter, commitment) { + let _args = [ownerAddress.toBase58()]; + if ("mint" in filter) { + _args.push({ + mint: filter.mint.toBase58() + }); + } else { + _args.push({ + programId: filter.programId.toBase58() + }); + } + const args = this._buildArgs(_args, commitment, "jsonParsed"); + const unsafeRes = await this._rpcRequest("getTokenAccountsByOwner", args); + const res = superstruct.create(unsafeRes, GetParsedTokenAccountsByOwner); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get token accounts owned by account ${ownerAddress.toBase58()}`); + } + return res.result; + } + /** + * Fetch the 20 largest accounts with their current balances + */ + async getLargestAccounts(config) { + const arg = { + ...config, + commitment: config && config.commitment || this.commitment + }; + const args = arg.filter || arg.commitment ? [arg] : []; + const unsafeRes = await this._rpcRequest("getLargestAccounts", args); + const res = superstruct.create(unsafeRes, GetLargestAccountsRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get largest accounts"); + } + return res.result; + } + /** + * Fetch the 20 largest token accounts with their current balances + * for a given mint. + */ + async getTokenLargestAccounts(mintAddress, commitment) { + const args = this._buildArgs([mintAddress.toBase58()], commitment); + const unsafeRes = await this._rpcRequest("getTokenLargestAccounts", args); + const res = superstruct.create(unsafeRes, GetTokenLargestAccountsResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get token largest accounts"); + } + return res.result; + } + /** + * Fetch all the account info for the specified public key, return with context + */ + async getAccountInfoAndContext(publicKey24, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([publicKey24.toBase58()], commitment, "base64", config); + const unsafeRes = await this._rpcRequest("getAccountInfo", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(superstruct.nullable(AccountInfoResult))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get info about account ${publicKey24.toBase58()}`); + } + return res.result; + } + /** + * Fetch parsed account info for the specified public key + */ + async getParsedAccountInfo(publicKey24, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([publicKey24.toBase58()], commitment, "jsonParsed", config); + const unsafeRes = await this._rpcRequest("getAccountInfo", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(superstruct.nullable(ParsedAccountInfoResult))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get info about account ${publicKey24.toBase58()}`); + } + return res.result; + } + /** + * Fetch all the account info for the specified public key + */ + async getAccountInfo(publicKey24, commitmentOrConfig) { + try { + const res = await this.getAccountInfoAndContext(publicKey24, commitmentOrConfig); + return res.value; + } catch (e) { + throw new Error("failed to get info about account " + publicKey24.toBase58() + ": " + e); + } + } + /** + * Fetch all the account info for multiple accounts specified by an array of public keys, return with context + */ + async getMultipleParsedAccounts(publicKeys, rawConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(rawConfig); + const keys = publicKeys.map((key) => key.toBase58()); + const args = this._buildArgs([keys], commitment, "jsonParsed", config); + const unsafeRes = await this._rpcRequest("getMultipleAccounts", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(superstruct.array(superstruct.nullable(ParsedAccountInfoResult)))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get info for accounts ${keys}`); + } + return res.result; + } + /** + * Fetch all the account info for multiple accounts specified by an array of public keys, return with context + */ + async getMultipleAccountsInfoAndContext(publicKeys, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const keys = publicKeys.map((key) => key.toBase58()); + const args = this._buildArgs([keys], commitment, "base64", config); + const unsafeRes = await this._rpcRequest("getMultipleAccounts", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(superstruct.array(superstruct.nullable(AccountInfoResult)))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get info for accounts ${keys}`); + } + return res.result; + } + /** + * Fetch all the account info for multiple accounts specified by an array of public keys + */ + async getMultipleAccountsInfo(publicKeys, commitmentOrConfig) { + const res = await this.getMultipleAccountsInfoAndContext(publicKeys, commitmentOrConfig); + return res.value; + } + /** + * Returns epoch activation information for a stake account that has been delegated + * + * @deprecated Deprecated since RPC v1.18; will be removed in a future version. + */ + async getStakeActivation(publicKey24, commitmentOrConfig, epoch) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([publicKey24.toBase58()], commitment, void 0, { + ...config, + epoch: epoch != null ? epoch : config?.epoch + }); + const unsafeRes = await this._rpcRequest("getStakeActivation", args); + const res = superstruct.create(unsafeRes, jsonRpcResult(StakeActivationResult)); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get Stake Activation ${publicKey24.toBase58()}`); + } + return res.result; + } + /** + * Fetch all the accounts owned by the specified program id + * + * @return {Promise}>>} + */ + // eslint-disable-next-line no-dupe-class-members + // eslint-disable-next-line no-dupe-class-members + async getProgramAccounts(programId, configOrCommitment) { + const { + commitment, + config + } = extractCommitmentFromConfig(configOrCommitment); + const { + encoding, + ...configWithoutEncoding + } = config || {}; + const args = this._buildArgs([programId.toBase58()], commitment, encoding || "base64", { + ...configWithoutEncoding, + ...configWithoutEncoding.filters ? { + filters: applyDefaultMemcmpEncodingToFilters(configWithoutEncoding.filters) + } : null + }); + const unsafeRes = await this._rpcRequest("getProgramAccounts", args); + const baseSchema = superstruct.array(KeyedAccountInfoResult); + const res = configWithoutEncoding.withContext === true ? superstruct.create(unsafeRes, jsonRpcResultAndContext(baseSchema)) : superstruct.create(unsafeRes, jsonRpcResult(baseSchema)); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get accounts owned by program ${programId.toBase58()}`); + } + return res.result; + } + /** + * Fetch and parse all the accounts owned by the specified program id + * + * @return {Promise}>>} + */ + async getParsedProgramAccounts(programId, configOrCommitment) { + const { + commitment, + config + } = extractCommitmentFromConfig(configOrCommitment); + const args = this._buildArgs([programId.toBase58()], commitment, "jsonParsed", config); + const unsafeRes = await this._rpcRequest("getProgramAccounts", args); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.array(KeyedParsedAccountInfoResult))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get accounts owned by program ${programId.toBase58()}`); + } + return res.result; + } + /** @deprecated Instead, call `confirmTransaction` and pass in {@link TransactionConfirmationStrategy} */ + // eslint-disable-next-line no-dupe-class-members + // eslint-disable-next-line no-dupe-class-members + async confirmTransaction(strategy, commitment) { + let rawSignature; + if (typeof strategy == "string") { + rawSignature = strategy; + } else { + const config = strategy; + if (config.abortSignal?.aborted) { + return Promise.reject(config.abortSignal.reason); + } + rawSignature = config.signature; + } + let decodedSignature; + try { + decodedSignature = bs58__default.default.decode(rawSignature); + } catch (err) { + throw new Error("signature must be base58 encoded: " + rawSignature); + } + assert2(decodedSignature.length === 64, "signature has invalid length"); + if (typeof strategy === "string") { + return await this.confirmTransactionUsingLegacyTimeoutStrategy({ + commitment: commitment || this.commitment, + signature: rawSignature + }); + } else if ("lastValidBlockHeight" in strategy) { + return await this.confirmTransactionUsingBlockHeightExceedanceStrategy({ + commitment: commitment || this.commitment, + strategy + }); + } else { + return await this.confirmTransactionUsingDurableNonceStrategy({ + commitment: commitment || this.commitment, + strategy + }); + } + } + getCancellationPromise(signal) { + return new Promise((_, reject) => { + if (signal == null) { + return; + } + if (signal.aborted) { + reject(signal.reason); + } else { + signal.addEventListener("abort", () => { + reject(signal.reason); + }); + } + }); + } + getTransactionConfirmationPromise({ + commitment, + signature: signature2 + }) { + let signatureSubscriptionId; + let disposeSignatureSubscriptionStateChangeObserver; + let done = false; + const confirmationPromise = new Promise((resolve, reject) => { + try { + signatureSubscriptionId = this.onSignature(signature2, (result, context) => { + signatureSubscriptionId = void 0; + const response = { + context, + value: result + }; + resolve({ + __type: TransactionStatus.PROCESSED, + response + }); + }, commitment); + const subscriptionSetupPromise = new Promise((resolveSubscriptionSetup) => { + if (signatureSubscriptionId == null) { + resolveSubscriptionSetup(); + } else { + disposeSignatureSubscriptionStateChangeObserver = this._onSubscriptionStateChange(signatureSubscriptionId, (nextState) => { + if (nextState === "subscribed") { + resolveSubscriptionSetup(); + } + }); + } + }); + (async () => { + await subscriptionSetupPromise; + if (done) return; + const response = await this.getSignatureStatus(signature2); + if (done) return; + if (response == null) { + return; + } + const { + context, + value + } = response; + if (value == null) { + return; + } + if (value?.err) { + reject(value.err); + } else { + switch (commitment) { + case "confirmed": + case "single": + case "singleGossip": { + if (value.confirmationStatus === "processed") { + return; + } + break; + } + case "finalized": + case "max": + case "root": { + if (value.confirmationStatus === "processed" || value.confirmationStatus === "confirmed") { + return; + } + break; + } + // exhaust enums to ensure full coverage + case "processed": + case "recent": + } + done = true; + resolve({ + __type: TransactionStatus.PROCESSED, + response: { + context, + value + } + }); + } + })(); + } catch (err) { + reject(err); + } + }); + const abortConfirmation = () => { + if (disposeSignatureSubscriptionStateChangeObserver) { + disposeSignatureSubscriptionStateChangeObserver(); + disposeSignatureSubscriptionStateChangeObserver = void 0; + } + if (signatureSubscriptionId != null) { + this.removeSignatureListener(signatureSubscriptionId); + signatureSubscriptionId = void 0; + } + }; + return { + abortConfirmation, + confirmationPromise + }; + } + async confirmTransactionUsingBlockHeightExceedanceStrategy({ + commitment, + strategy: { + abortSignal, + lastValidBlockHeight, + signature: signature2 + } + }) { + let done = false; + const expiryPromise = new Promise((resolve) => { + const checkBlockHeight = async () => { + try { + const blockHeight = await this.getBlockHeight(commitment); + return blockHeight; + } catch (_e) { + return -1; + } + }; + (async () => { + let currentBlockHeight = await checkBlockHeight(); + if (done) return; + while (currentBlockHeight <= lastValidBlockHeight) { + await sleep(1e3); + if (done) return; + currentBlockHeight = await checkBlockHeight(); + if (done) return; + } + resolve({ + __type: TransactionStatus.BLOCKHEIGHT_EXCEEDED + }); + })(); + }); + const { + abortConfirmation, + confirmationPromise + } = this.getTransactionConfirmationPromise({ + commitment, + signature: signature2 + }); + const cancellationPromise = this.getCancellationPromise(abortSignal); + let result; + try { + const outcome = await Promise.race([cancellationPromise, confirmationPromise, expiryPromise]); + if (outcome.__type === TransactionStatus.PROCESSED) { + result = outcome.response; + } else { + throw new TransactionExpiredBlockheightExceededError(signature2); + } + } finally { + done = true; + abortConfirmation(); + } + return result; + } + async confirmTransactionUsingDurableNonceStrategy({ + commitment, + strategy: { + abortSignal, + minContextSlot, + nonceAccountPubkey, + nonceValue, + signature: signature2 + } + }) { + let done = false; + const expiryPromise = new Promise((resolve) => { + let currentNonceValue = nonceValue; + let lastCheckedSlot = null; + const getCurrentNonceValue = async () => { + try { + const { + context, + value: nonceAccount + } = await this.getNonceAndContext(nonceAccountPubkey, { + commitment, + minContextSlot + }); + lastCheckedSlot = context.slot; + return nonceAccount?.nonce; + } catch (e) { + return currentNonceValue; + } + }; + (async () => { + currentNonceValue = await getCurrentNonceValue(); + if (done) return; + while (true) { + if (nonceValue !== currentNonceValue) { + resolve({ + __type: TransactionStatus.NONCE_INVALID, + slotInWhichNonceDidAdvance: lastCheckedSlot + }); + return; + } + await sleep(2e3); + if (done) return; + currentNonceValue = await getCurrentNonceValue(); + if (done) return; + } + })(); + }); + const { + abortConfirmation, + confirmationPromise + } = this.getTransactionConfirmationPromise({ + commitment, + signature: signature2 + }); + const cancellationPromise = this.getCancellationPromise(abortSignal); + let result; + try { + const outcome = await Promise.race([cancellationPromise, confirmationPromise, expiryPromise]); + if (outcome.__type === TransactionStatus.PROCESSED) { + result = outcome.response; + } else { + let signatureStatus; + while (true) { + const status = await this.getSignatureStatus(signature2); + if (status == null) { + break; + } + if (status.context.slot < (outcome.slotInWhichNonceDidAdvance ?? minContextSlot)) { + await sleep(400); + continue; + } + signatureStatus = status; + break; + } + if (signatureStatus?.value) { + const commitmentForStatus = commitment || "finalized"; + const { + confirmationStatus + } = signatureStatus.value; + switch (commitmentForStatus) { + case "processed": + case "recent": + if (confirmationStatus !== "processed" && confirmationStatus !== "confirmed" && confirmationStatus !== "finalized") { + throw new TransactionExpiredNonceInvalidError(signature2); + } + break; + case "confirmed": + case "single": + case "singleGossip": + if (confirmationStatus !== "confirmed" && confirmationStatus !== "finalized") { + throw new TransactionExpiredNonceInvalidError(signature2); + } + break; + case "finalized": + case "max": + case "root": + if (confirmationStatus !== "finalized") { + throw new TransactionExpiredNonceInvalidError(signature2); + } + break; + default: + /* @__PURE__ */ ((_) => { + })(commitmentForStatus); + } + result = { + context: signatureStatus.context, + value: { + err: signatureStatus.value.err + } + }; + } else { + throw new TransactionExpiredNonceInvalidError(signature2); + } + } + } finally { + done = true; + abortConfirmation(); + } + return result; + } + async confirmTransactionUsingLegacyTimeoutStrategy({ + commitment, + signature: signature2 + }) { + let timeoutId; + const expiryPromise = new Promise((resolve) => { + let timeoutMs = this._confirmTransactionInitialTimeout || 60 * 1e3; + switch (commitment) { + case "processed": + case "recent": + case "single": + case "confirmed": + case "singleGossip": { + timeoutMs = this._confirmTransactionInitialTimeout || 30 * 1e3; + break; + } + } + timeoutId = setTimeout(() => resolve({ + __type: TransactionStatus.TIMED_OUT, + timeoutMs + }), timeoutMs); + }); + const { + abortConfirmation, + confirmationPromise + } = this.getTransactionConfirmationPromise({ + commitment, + signature: signature2 + }); + let result; + try { + const outcome = await Promise.race([confirmationPromise, expiryPromise]); + if (outcome.__type === TransactionStatus.PROCESSED) { + result = outcome.response; + } else { + throw new TransactionExpiredTimeoutError(signature2, outcome.timeoutMs / 1e3); + } + } finally { + clearTimeout(timeoutId); + abortConfirmation(); + } + return result; + } + /** + * Return the list of nodes that are currently participating in the cluster + */ + async getClusterNodes() { + const unsafeRes = await this._rpcRequest("getClusterNodes", []); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.array(ContactInfoResult))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get cluster nodes"); + } + return res.result; + } + /** + * Return the list of nodes that are currently participating in the cluster + */ + async getVoteAccounts(commitment) { + const args = this._buildArgs([], commitment); + const unsafeRes = await this._rpcRequest("getVoteAccounts", args); + const res = superstruct.create(unsafeRes, GetVoteAccounts); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get vote accounts"); + } + return res.result; + } + /** + * Fetch the current slot that the node is processing + */ + async getSlot(commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("getSlot", args); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.number())); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get slot"); + } + return res.result; + } + /** + * Fetch the current slot leader of the cluster + */ + async getSlotLeader(commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("getSlotLeader", args); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.string())); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get slot leader"); + } + return res.result; + } + /** + * Fetch `limit` number of slot leaders starting from `startSlot` + * + * @param startSlot fetch slot leaders starting from this slot + * @param limit number of slot leaders to return + */ + async getSlotLeaders(startSlot, limit) { + const args = [startSlot, limit]; + const unsafeRes = await this._rpcRequest("getSlotLeaders", args); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.array(PublicKeyFromString))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get slot leaders"); + } + return res.result; + } + /** + * Fetch the current status of a signature + */ + async getSignatureStatus(signature2, config) { + const { + context, + value: values + } = await this.getSignatureStatuses([signature2], config); + assert2(values.length === 1); + const value = values[0]; + return { + context, + value + }; + } + /** + * Fetch the current statuses of a batch of signatures + */ + async getSignatureStatuses(signatures, config) { + const params = [signatures]; + if (config) { + params.push(config); + } + const unsafeRes = await this._rpcRequest("getSignatureStatuses", params); + const res = superstruct.create(unsafeRes, GetSignatureStatusesRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get signature status"); + } + return res.result; + } + /** + * Fetch the current transaction count of the cluster + */ + async getTransactionCount(commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("getTransactionCount", args); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.number())); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get transaction count"); + } + return res.result; + } + /** + * Fetch the current total currency supply of the cluster in lamports + * + * @deprecated Deprecated since RPC v1.2.8. Please use {@link getSupply} instead. + */ + async getTotalSupply(commitment) { + const result = await this.getSupply({ + commitment, + excludeNonCirculatingAccountsList: true + }); + return result.value.total; + } + /** + * Fetch the cluster InflationGovernor parameters + */ + async getInflationGovernor(commitment) { + const args = this._buildArgs([], commitment); + const unsafeRes = await this._rpcRequest("getInflationGovernor", args); + const res = superstruct.create(unsafeRes, GetInflationGovernorRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get inflation"); + } + return res.result; + } + /** + * Fetch the inflation reward for a list of addresses for an epoch + */ + async getInflationReward(addresses, epoch, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([addresses.map((pubkey) => pubkey.toBase58())], commitment, void 0, { + ...config, + epoch: epoch != null ? epoch : config?.epoch + }); + const unsafeRes = await this._rpcRequest("getInflationReward", args); + const res = superstruct.create(unsafeRes, GetInflationRewardResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get inflation reward"); + } + return res.result; + } + /** + * Fetch the specific inflation values for the current epoch + */ + async getInflationRate() { + const unsafeRes = await this._rpcRequest("getInflationRate", []); + const res = superstruct.create(unsafeRes, GetInflationRateRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get inflation rate"); + } + return res.result; + } + /** + * Fetch the Epoch Info parameters + */ + async getEpochInfo(commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("getEpochInfo", args); + const res = superstruct.create(unsafeRes, GetEpochInfoRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get epoch info"); + } + return res.result; + } + /** + * Fetch the Epoch Schedule parameters + */ + async getEpochSchedule() { + const unsafeRes = await this._rpcRequest("getEpochSchedule", []); + const res = superstruct.create(unsafeRes, GetEpochScheduleRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get epoch schedule"); + } + const epochSchedule = res.result; + return new EpochSchedule(epochSchedule.slotsPerEpoch, epochSchedule.leaderScheduleSlotOffset, epochSchedule.warmup, epochSchedule.firstNormalEpoch, epochSchedule.firstNormalSlot); + } + /** + * Fetch the leader schedule for the current epoch + * @return {Promise>} + */ + async getLeaderSchedule() { + const unsafeRes = await this._rpcRequest("getLeaderSchedule", []); + const res = superstruct.create(unsafeRes, GetLeaderScheduleRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get leader schedule"); + } + return res.result; + } + /** + * Fetch the minimum balance needed to exempt an account of `dataLength` + * size from rent + */ + async getMinimumBalanceForRentExemption(dataLength, commitment) { + const args = this._buildArgs([dataLength], commitment); + const unsafeRes = await this._rpcRequest("getMinimumBalanceForRentExemption", args); + const res = superstruct.create(unsafeRes, GetMinimumBalanceForRentExemptionRpcResult); + if ("error" in res) { + console.warn("Unable to fetch minimum balance for rent exemption"); + return 0; + } + return res.result; + } + /** + * Fetch a recent blockhash from the cluster, return with context + * @return {Promise>} + * + * @deprecated Deprecated since RPC v1.9.0. Please use {@link getLatestBlockhash} instead. + */ + async getRecentBlockhashAndContext(commitment) { + const { + context, + value: { + blockhash + } + } = await this.getLatestBlockhashAndContext(commitment); + const feeCalculator = { + get lamportsPerSignature() { + throw new Error("The capability to fetch `lamportsPerSignature` using the `getRecentBlockhash` API is no longer offered by the network. Use the `getFeeForMessage` API to obtain the fee for a given message."); + }, + toJSON() { + return {}; + } + }; + return { + context, + value: { + blockhash, + feeCalculator + } + }; + } + /** + * Fetch recent performance samples + * @return {Promise>} + */ + async getRecentPerformanceSamples(limit) { + const unsafeRes = await this._rpcRequest("getRecentPerformanceSamples", limit ? [limit] : []); + const res = superstruct.create(unsafeRes, GetRecentPerformanceSamplesRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get recent performance samples"); + } + return res.result; + } + /** + * Fetch the fee calculator for a recent blockhash from the cluster, return with context + * + * @deprecated Deprecated since RPC v1.9.0. Please use {@link getFeeForMessage} instead. + */ + async getFeeCalculatorForBlockhash(blockhash, commitment) { + const args = this._buildArgs([blockhash], commitment); + const unsafeRes = await this._rpcRequest("getFeeCalculatorForBlockhash", args); + const res = superstruct.create(unsafeRes, GetFeeCalculatorRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get fee calculator"); + } + const { + context, + value + } = res.result; + return { + context, + value: value !== null ? value.feeCalculator : null + }; + } + /** + * Fetch the fee for a message from the cluster, return with context + */ + async getFeeForMessage(message, commitment) { + const wireMessage = toBuffer(message.serialize()).toString("base64"); + const args = this._buildArgs([wireMessage], commitment); + const unsafeRes = await this._rpcRequest("getFeeForMessage", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(superstruct.nullable(superstruct.number()))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get fee for message"); + } + if (res.result === null) { + throw new Error("invalid blockhash"); + } + return res.result; + } + /** + * Fetch a list of prioritization fees from recent blocks. + */ + async getRecentPrioritizationFees(config) { + const accounts = config?.lockedWritableAccounts?.map((key) => key.toBase58()); + const args = accounts?.length ? [accounts] : []; + const unsafeRes = await this._rpcRequest("getRecentPrioritizationFees", args); + const res = superstruct.create(unsafeRes, GetRecentPrioritizationFeesRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get recent prioritization fees"); + } + return res.result; + } + /** + * Fetch a recent blockhash from the cluster + * @return {Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}>} + * + * @deprecated Deprecated since RPC v1.8.0. Please use {@link getLatestBlockhash} instead. + */ + async getRecentBlockhash(commitment) { + try { + const res = await this.getRecentBlockhashAndContext(commitment); + return res.value; + } catch (e) { + throw new Error("failed to get recent blockhash: " + e); + } + } + /** + * Fetch the latest blockhash from the cluster + * @return {Promise} + */ + async getLatestBlockhash(commitmentOrConfig) { + try { + const res = await this.getLatestBlockhashAndContext(commitmentOrConfig); + return res.value; + } catch (e) { + throw new Error("failed to get recent blockhash: " + e); + } + } + /** + * Fetch the latest blockhash from the cluster + * @return {Promise} + */ + async getLatestBlockhashAndContext(commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs([], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("getLatestBlockhash", args); + const res = superstruct.create(unsafeRes, GetLatestBlockhashRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get latest blockhash"); + } + return res.result; + } + /** + * Returns whether a blockhash is still valid or not + */ + async isBlockhashValid(blockhash, rawConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(rawConfig); + const args = this._buildArgs([blockhash], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("isBlockhashValid", args); + const res = superstruct.create(unsafeRes, IsBlockhashValidRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to determine if the blockhash `" + blockhash + "`is valid"); + } + return res.result; + } + /** + * Fetch the node version + */ + async getVersion() { + const unsafeRes = await this._rpcRequest("getVersion", []); + const res = superstruct.create(unsafeRes, jsonRpcResult(VersionResult)); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get version"); + } + return res.result; + } + /** + * Fetch the genesis hash + */ + async getGenesisHash() { + const unsafeRes = await this._rpcRequest("getGenesisHash", []); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.string())); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get genesis hash"); + } + return res.result; + } + /** + * Fetch a processed block from the cluster. + * + * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by + * setting the `maxSupportedTransactionVersion` property. + */ + /** + * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by + * setting the `maxSupportedTransactionVersion` property. + */ + // eslint-disable-next-line no-dupe-class-members + /** + * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by + * setting the `maxSupportedTransactionVersion` property. + */ + // eslint-disable-next-line no-dupe-class-members + /** + * Fetch a processed block from the cluster. + */ + // eslint-disable-next-line no-dupe-class-members + // eslint-disable-next-line no-dupe-class-members + // eslint-disable-next-line no-dupe-class-members + /** + * Fetch a processed block from the cluster. + */ + // eslint-disable-next-line no-dupe-class-members + async getBlock(slot, rawConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(rawConfig); + const args = this._buildArgsAtLeastConfirmed([slot], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("getBlock", args); + try { + switch (config?.transactionDetails) { + case "accounts": { + const res = superstruct.create(unsafeRes, GetAccountsModeBlockRpcResult); + if ("error" in res) { + throw res.error; + } + return res.result; + } + case "none": { + const res = superstruct.create(unsafeRes, GetNoneModeBlockRpcResult); + if ("error" in res) { + throw res.error; + } + return res.result; + } + default: { + const res = superstruct.create(unsafeRes, GetBlockRpcResult); + if ("error" in res) { + throw res.error; + } + const { + result + } = res; + return result ? { + ...result, + transactions: result.transactions.map(({ + transaction, + meta, + version: version2 + }) => ({ + meta, + transaction: { + ...transaction, + message: versionedMessageFromResponse(version2, transaction.message) + }, + version: version2 + })) + } : null; + } + } + } catch (e) { + throw new SolanaJSONRPCError(e, "failed to get confirmed block"); + } + } + /** + * Fetch parsed transaction details for a confirmed or finalized block + */ + // eslint-disable-next-line no-dupe-class-members + // eslint-disable-next-line no-dupe-class-members + // eslint-disable-next-line no-dupe-class-members + async getParsedBlock(slot, rawConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(rawConfig); + const args = this._buildArgsAtLeastConfirmed([slot], commitment, "jsonParsed", config); + const unsafeRes = await this._rpcRequest("getBlock", args); + try { + switch (config?.transactionDetails) { + case "accounts": { + const res = superstruct.create(unsafeRes, GetParsedAccountsModeBlockRpcResult); + if ("error" in res) { + throw res.error; + } + return res.result; + } + case "none": { + const res = superstruct.create(unsafeRes, GetParsedNoneModeBlockRpcResult); + if ("error" in res) { + throw res.error; + } + return res.result; + } + default: { + const res = superstruct.create(unsafeRes, GetParsedBlockRpcResult); + if ("error" in res) { + throw res.error; + } + return res.result; + } + } + } catch (e) { + throw new SolanaJSONRPCError(e, "failed to get block"); + } + } + /* + * Returns recent block production information from the current or previous epoch + */ + async getBlockProduction(configOrCommitment) { + let extra; + let commitment; + if (typeof configOrCommitment === "string") { + commitment = configOrCommitment; + } else if (configOrCommitment) { + const { + commitment: c, + ...rest + } = configOrCommitment; + commitment = c; + extra = rest; + } + const args = this._buildArgs([], commitment, "base64", extra); + const unsafeRes = await this._rpcRequest("getBlockProduction", args); + const res = superstruct.create(unsafeRes, BlockProductionResponseStruct); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get block production information"); + } + return res.result; + } + /** + * Fetch a confirmed or finalized transaction from the cluster. + * + * @deprecated Instead, call `getTransaction` using a + * `GetVersionedTransactionConfig` by setting the + * `maxSupportedTransactionVersion` property. + */ + /** + * Fetch a confirmed or finalized transaction from the cluster. + */ + // eslint-disable-next-line no-dupe-class-members + /** + * Fetch a confirmed or finalized transaction from the cluster. + */ + // eslint-disable-next-line no-dupe-class-members + async getTransaction(signature2, rawConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(rawConfig); + const args = this._buildArgsAtLeastConfirmed([signature2], commitment, void 0, config); + const unsafeRes = await this._rpcRequest("getTransaction", args); + const res = superstruct.create(unsafeRes, GetTransactionRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get transaction"); + } + const result = res.result; + if (!result) return result; + return { + ...result, + transaction: { + ...result.transaction, + message: versionedMessageFromResponse(result.version, result.transaction.message) + } + }; + } + /** + * Fetch parsed transaction details for a confirmed or finalized transaction + */ + async getParsedTransaction(signature2, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgsAtLeastConfirmed([signature2], commitment, "jsonParsed", config); + const unsafeRes = await this._rpcRequest("getTransaction", args); + const res = superstruct.create(unsafeRes, GetParsedTransactionRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get transaction"); + } + return res.result; + } + /** + * Fetch parsed transaction details for a batch of confirmed transactions + */ + async getParsedTransactions(signatures, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const batch = signatures.map((signature2) => { + const args = this._buildArgsAtLeastConfirmed([signature2], commitment, "jsonParsed", config); + return { + methodName: "getTransaction", + args + }; + }); + const unsafeRes = await this._rpcBatchRequest(batch); + const res = unsafeRes.map((unsafeRes2) => { + const res2 = superstruct.create(unsafeRes2, GetParsedTransactionRpcResult); + if ("error" in res2) { + throw new SolanaJSONRPCError(res2.error, "failed to get transactions"); + } + return res2.result; + }); + return res; + } + /** + * Fetch transaction details for a batch of confirmed transactions. + * Similar to {@link getParsedTransactions} but returns a {@link TransactionResponse}. + * + * @deprecated Instead, call `getTransactions` using a + * `GetVersionedTransactionConfig` by setting the + * `maxSupportedTransactionVersion` property. + */ + /** + * Fetch transaction details for a batch of confirmed transactions. + * Similar to {@link getParsedTransactions} but returns a {@link + * VersionedTransactionResponse}. + */ + // eslint-disable-next-line no-dupe-class-members + /** + * Fetch transaction details for a batch of confirmed transactions. + * Similar to {@link getParsedTransactions} but returns a {@link + * VersionedTransactionResponse}. + */ + // eslint-disable-next-line no-dupe-class-members + async getTransactions(signatures, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const batch = signatures.map((signature2) => { + const args = this._buildArgsAtLeastConfirmed([signature2], commitment, void 0, config); + return { + methodName: "getTransaction", + args + }; + }); + const unsafeRes = await this._rpcBatchRequest(batch); + const res = unsafeRes.map((unsafeRes2) => { + const res2 = superstruct.create(unsafeRes2, GetTransactionRpcResult); + if ("error" in res2) { + throw new SolanaJSONRPCError(res2.error, "failed to get transactions"); + } + const result = res2.result; + if (!result) return result; + return { + ...result, + transaction: { + ...result.transaction, + message: versionedMessageFromResponse(result.version, result.transaction.message) + } + }; + }); + return res; + } + /** + * Fetch a list of Transactions and transaction statuses from the cluster + * for a confirmed block. + * + * @deprecated Deprecated since RPC v1.7.0. Please use {@link getBlock} instead. + */ + async getConfirmedBlock(slot, commitment) { + const args = this._buildArgsAtLeastConfirmed([slot], commitment); + const unsafeRes = await this._rpcRequest("getBlock", args); + const res = superstruct.create(unsafeRes, GetConfirmedBlockRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get confirmed block"); + } + const result = res.result; + if (!result) { + throw new Error("Confirmed block " + slot + " not found"); + } + const block = { + ...result, + transactions: result.transactions.map(({ + transaction, + meta + }) => { + const message = new Message(transaction.message); + return { + meta, + transaction: { + ...transaction, + message + } + }; + }) + }; + return { + ...block, + transactions: block.transactions.map(({ + transaction, + meta + }) => { + return { + meta, + transaction: Transaction.populate(transaction.message, transaction.signatures) + }; + }) + }; + } + /** + * Fetch confirmed blocks between two slots + */ + async getBlocks(startSlot, endSlot, commitment) { + const args = this._buildArgsAtLeastConfirmed(endSlot !== void 0 ? [startSlot, endSlot] : [startSlot], commitment); + const unsafeRes = await this._rpcRequest("getBlocks", args); + const res = superstruct.create(unsafeRes, jsonRpcResult(superstruct.array(superstruct.number()))); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get blocks"); + } + return res.result; + } + /** + * Fetch a list of Signatures from the cluster for a block, excluding rewards + */ + async getBlockSignatures(slot, commitment) { + const args = this._buildArgsAtLeastConfirmed([slot], commitment, void 0, { + transactionDetails: "signatures", + rewards: false + }); + const unsafeRes = await this._rpcRequest("getBlock", args); + const res = superstruct.create(unsafeRes, GetBlockSignaturesRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get block"); + } + const result = res.result; + if (!result) { + throw new Error("Block " + slot + " not found"); + } + return result; + } + /** + * Fetch a list of Signatures from the cluster for a confirmed block, excluding rewards + * + * @deprecated Deprecated since RPC v1.7.0. Please use {@link getBlockSignatures} instead. + */ + async getConfirmedBlockSignatures(slot, commitment) { + const args = this._buildArgsAtLeastConfirmed([slot], commitment, void 0, { + transactionDetails: "signatures", + rewards: false + }); + const unsafeRes = await this._rpcRequest("getBlock", args); + const res = superstruct.create(unsafeRes, GetBlockSignaturesRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get confirmed block"); + } + const result = res.result; + if (!result) { + throw new Error("Confirmed block " + slot + " not found"); + } + return result; + } + /** + * Fetch a transaction details for a confirmed transaction + * + * @deprecated Deprecated since RPC v1.7.0. Please use {@link getTransaction} instead. + */ + async getConfirmedTransaction(signature2, commitment) { + const args = this._buildArgsAtLeastConfirmed([signature2], commitment); + const unsafeRes = await this._rpcRequest("getTransaction", args); + const res = superstruct.create(unsafeRes, GetTransactionRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get transaction"); + } + const result = res.result; + if (!result) return result; + const message = new Message(result.transaction.message); + const signatures = result.transaction.signatures; + return { + ...result, + transaction: Transaction.populate(message, signatures) + }; + } + /** + * Fetch parsed transaction details for a confirmed transaction + * + * @deprecated Deprecated since RPC v1.7.0. Please use {@link getParsedTransaction} instead. + */ + async getParsedConfirmedTransaction(signature2, commitment) { + const args = this._buildArgsAtLeastConfirmed([signature2], commitment, "jsonParsed"); + const unsafeRes = await this._rpcRequest("getTransaction", args); + const res = superstruct.create(unsafeRes, GetParsedTransactionRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get confirmed transaction"); + } + return res.result; + } + /** + * Fetch parsed transaction details for a batch of confirmed transactions + * + * @deprecated Deprecated since RPC v1.7.0. Please use {@link getParsedTransactions} instead. + */ + async getParsedConfirmedTransactions(signatures, commitment) { + const batch = signatures.map((signature2) => { + const args = this._buildArgsAtLeastConfirmed([signature2], commitment, "jsonParsed"); + return { + methodName: "getTransaction", + args + }; + }); + const unsafeRes = await this._rpcBatchRequest(batch); + const res = unsafeRes.map((unsafeRes2) => { + const res2 = superstruct.create(unsafeRes2, GetParsedTransactionRpcResult); + if ("error" in res2) { + throw new SolanaJSONRPCError(res2.error, "failed to get confirmed transactions"); + } + return res2.result; + }); + return res; + } + /** + * Fetch a list of all the confirmed signatures for transactions involving an address + * within a specified slot range. Max range allowed is 10,000 slots. + * + * @deprecated Deprecated since RPC v1.3. Please use {@link getConfirmedSignaturesForAddress2} instead. + * + * @param address queried address + * @param startSlot start slot, inclusive + * @param endSlot end slot, inclusive + */ + async getConfirmedSignaturesForAddress(address, startSlot, endSlot) { + let options = {}; + let firstAvailableBlock = await this.getFirstAvailableBlock(); + while (!("until" in options)) { + startSlot--; + if (startSlot <= 0 || startSlot < firstAvailableBlock) { + break; + } + try { + const block = await this.getConfirmedBlockSignatures(startSlot, "finalized"); + if (block.signatures.length > 0) { + options.until = block.signatures[block.signatures.length - 1].toString(); + } + } catch (err) { + if (err instanceof Error && err.message.includes("skipped")) { + continue; + } else { + throw err; + } + } + } + let highestConfirmedRoot = await this.getSlot("finalized"); + while (!("before" in options)) { + endSlot++; + if (endSlot > highestConfirmedRoot) { + break; + } + try { + const block = await this.getConfirmedBlockSignatures(endSlot); + if (block.signatures.length > 0) { + options.before = block.signatures[block.signatures.length - 1].toString(); + } + } catch (err) { + if (err instanceof Error && err.message.includes("skipped")) { + continue; + } else { + throw err; + } + } + } + const confirmedSignatureInfo = await this.getConfirmedSignaturesForAddress2(address, options); + return confirmedSignatureInfo.map((info2) => info2.signature); + } + /** + * Returns confirmed signatures for transactions involving an + * address backwards in time from the provided signature or most recent confirmed block + * + * @deprecated Deprecated since RPC v1.7.0. Please use {@link getSignaturesForAddress} instead. + */ + async getConfirmedSignaturesForAddress2(address, options, commitment) { + const args = this._buildArgsAtLeastConfirmed([address.toBase58()], commitment, void 0, options); + const unsafeRes = await this._rpcRequest("getConfirmedSignaturesForAddress2", args); + const res = superstruct.create(unsafeRes, GetConfirmedSignaturesForAddress2RpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get confirmed signatures for address"); + } + return res.result; + } + /** + * Returns confirmed signatures for transactions involving an + * address backwards in time from the provided signature or most recent confirmed block + * + * + * @param address queried address + * @param options + */ + async getSignaturesForAddress(address, options, commitment) { + const args = this._buildArgsAtLeastConfirmed([address.toBase58()], commitment, void 0, options); + const unsafeRes = await this._rpcRequest("getSignaturesForAddress", args); + const res = superstruct.create(unsafeRes, GetSignaturesForAddressRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, "failed to get signatures for address"); + } + return res.result; + } + async getAddressLookupTable(accountKey, config) { + const { + context, + value: accountInfo + } = await this.getAccountInfoAndContext(accountKey, config); + let value = null; + if (accountInfo !== null) { + value = new AddressLookupTableAccount({ + key: accountKey, + state: AddressLookupTableAccount.deserialize(accountInfo.data) + }); + } + return { + context, + value + }; + } + /** + * Fetch the contents of a Nonce account from the cluster, return with context + */ + async getNonceAndContext(nonceAccount, commitmentOrConfig) { + const { + context, + value: accountInfo + } = await this.getAccountInfoAndContext(nonceAccount, commitmentOrConfig); + let value = null; + if (accountInfo !== null) { + value = NonceAccount.fromAccountData(accountInfo.data); + } + return { + context, + value + }; + } + /** + * Fetch the contents of a Nonce account from the cluster + */ + async getNonce(nonceAccount, commitmentOrConfig) { + return await this.getNonceAndContext(nonceAccount, commitmentOrConfig).then((x) => x.value).catch((e) => { + throw new Error("failed to get nonce for account " + nonceAccount.toBase58() + ": " + e); + }); + } + /** + * Request an allocation of lamports to the specified address + * + * ```typescript + * import { Connection, PublicKey, LAMPORTS_PER_SOL } from "@solana/web3.js"; + * + * (async () => { + * const connection = new Connection("https://api.testnet.solana.com", "confirmed"); + * const myAddress = new PublicKey("2nr1bHFT86W9tGnyvmYW4vcHKsQB3sVQfnddasz4kExM"); + * const signature = await connection.requestAirdrop(myAddress, LAMPORTS_PER_SOL); + * await connection.confirmTransaction(signature); + * })(); + * ``` + */ + async requestAirdrop(to, lamports) { + const unsafeRes = await this._rpcRequest("requestAirdrop", [to.toBase58(), lamports]); + const res = superstruct.create(unsafeRes, RequestAirdropRpcResult); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `airdrop to ${to.toBase58()} failed`); + } + return res.result; + } + /** + * @internal + */ + async _blockhashWithExpiryBlockHeight(disableCache) { + if (!disableCache) { + while (this._pollingBlockhash) { + await sleep(100); + } + const timeSinceFetch = Date.now() - this._blockhashInfo.lastFetch; + const expired = timeSinceFetch >= BLOCKHASH_CACHE_TIMEOUT_MS; + if (this._blockhashInfo.latestBlockhash !== null && !expired) { + return this._blockhashInfo.latestBlockhash; + } + } + return await this._pollNewBlockhash(); + } + /** + * @internal + */ + async _pollNewBlockhash() { + this._pollingBlockhash = true; + try { + const startTime = Date.now(); + const cachedLatestBlockhash = this._blockhashInfo.latestBlockhash; + const cachedBlockhash = cachedLatestBlockhash ? cachedLatestBlockhash.blockhash : null; + for (let i = 0; i < 50; i++) { + const latestBlockhash = await this.getLatestBlockhash("finalized"); + if (cachedBlockhash !== latestBlockhash.blockhash) { + this._blockhashInfo = { + latestBlockhash, + lastFetch: Date.now(), + transactionSignatures: [], + simulatedSignatures: [] + }; + return latestBlockhash; + } + await sleep(MS_PER_SLOT / 2); + } + throw new Error(`Unable to obtain a new blockhash after ${Date.now() - startTime}ms`); + } finally { + this._pollingBlockhash = false; + } + } + /** + * get the stake minimum delegation + */ + async getStakeMinimumDelegation(config) { + const { + commitment, + config: configArg + } = extractCommitmentFromConfig(config); + const args = this._buildArgs([], commitment, "base64", configArg); + const unsafeRes = await this._rpcRequest("getStakeMinimumDelegation", args); + const res = superstruct.create(unsafeRes, jsonRpcResultAndContext(superstruct.number())); + if ("error" in res) { + throw new SolanaJSONRPCError(res.error, `failed to get stake minimum delegation`); + } + return res.result; + } + /** + * Simulate a transaction + * + * @deprecated Instead, call {@link simulateTransaction} with {@link + * VersionedTransaction} and {@link SimulateTransactionConfig} parameters + */ + /** + * Simulate a transaction + */ + // eslint-disable-next-line no-dupe-class-members + /** + * Simulate a transaction + */ + // eslint-disable-next-line no-dupe-class-members + async simulateTransaction(transactionOrMessage, configOrSigners, includeAccounts) { + if ("message" in transactionOrMessage) { + const versionedTx = transactionOrMessage; + const wireTransaction2 = versionedTx.serialize(); + const encodedTransaction2 = buffer.Buffer.from(wireTransaction2).toString("base64"); + if (Array.isArray(configOrSigners) || includeAccounts !== void 0) { + throw new Error("Invalid arguments"); + } + const config2 = configOrSigners || {}; + config2.encoding = "base64"; + if (!("commitment" in config2)) { + config2.commitment = this.commitment; + } + if (configOrSigners && typeof configOrSigners === "object" && "innerInstructions" in configOrSigners) { + config2.innerInstructions = configOrSigners.innerInstructions; + } + const args2 = [encodedTransaction2, config2]; + const unsafeRes2 = await this._rpcRequest("simulateTransaction", args2); + const res2 = superstruct.create(unsafeRes2, SimulatedTransactionResponseStruct); + if ("error" in res2) { + throw new Error("failed to simulate transaction: " + res2.error.message); + } + return res2.result; + } + let transaction; + if (transactionOrMessage instanceof Transaction) { + let originalTx = transactionOrMessage; + transaction = new Transaction(); + transaction.feePayer = originalTx.feePayer; + transaction.instructions = transactionOrMessage.instructions; + transaction.nonceInfo = originalTx.nonceInfo; + transaction.signatures = originalTx.signatures; + } else { + transaction = Transaction.populate(transactionOrMessage); + transaction._message = transaction._json = void 0; + } + if (configOrSigners !== void 0 && !Array.isArray(configOrSigners)) { + throw new Error("Invalid arguments"); + } + const signers = configOrSigners; + if (transaction.nonceInfo && signers) { + transaction.sign(...signers); + } else { + let disableCache = this._disableBlockhashCaching; + for (; ; ) { + const latestBlockhash = await this._blockhashWithExpiryBlockHeight(disableCache); + transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight; + transaction.recentBlockhash = latestBlockhash.blockhash; + if (!signers) break; + transaction.sign(...signers); + if (!transaction.signature) { + throw new Error("!signature"); + } + const signature2 = transaction.signature.toString("base64"); + if (!this._blockhashInfo.simulatedSignatures.includes(signature2) && !this._blockhashInfo.transactionSignatures.includes(signature2)) { + this._blockhashInfo.simulatedSignatures.push(signature2); + break; + } else { + disableCache = true; + } + } + } + const message = transaction._compile(); + const signData = message.serialize(); + const wireTransaction = transaction._serialize(signData); + const encodedTransaction = wireTransaction.toString("base64"); + const config = { + encoding: "base64", + commitment: this.commitment + }; + if (includeAccounts) { + const addresses = (Array.isArray(includeAccounts) ? includeAccounts : message.nonProgramIds()).map((key) => key.toBase58()); + config["accounts"] = { + encoding: "base64", + addresses + }; + } + if (signers) { + config.sigVerify = true; + } + if (configOrSigners && typeof configOrSigners === "object" && "innerInstructions" in configOrSigners) { + config.innerInstructions = configOrSigners.innerInstructions; + } + const args = [encodedTransaction, config]; + const unsafeRes = await this._rpcRequest("simulateTransaction", args); + const res = superstruct.create(unsafeRes, SimulatedTransactionResponseStruct); + if ("error" in res) { + let logs; + if ("data" in res.error) { + logs = res.error.data.logs; + if (logs && Array.isArray(logs)) { + const traceIndent = "\n "; + const logTrace = traceIndent + logs.join(traceIndent); + console.error(res.error.message, logTrace); + } + } + throw new SendTransactionError({ + action: "simulate", + signature: "", + transactionMessage: res.error.message, + logs + }); + } + return res.result; + } + /** + * Sign and send a transaction + * + * @deprecated Instead, call {@link sendTransaction} with a {@link + * VersionedTransaction} + */ + /** + * Send a signed transaction + */ + // eslint-disable-next-line no-dupe-class-members + /** + * Sign and send a transaction + */ + // eslint-disable-next-line no-dupe-class-members + async sendTransaction(transaction, signersOrOptions, options) { + if ("version" in transaction) { + if (signersOrOptions && Array.isArray(signersOrOptions)) { + throw new Error("Invalid arguments"); + } + const wireTransaction2 = transaction.serialize(); + return await this.sendRawTransaction(wireTransaction2, signersOrOptions); + } + if (signersOrOptions === void 0 || !Array.isArray(signersOrOptions)) { + throw new Error("Invalid arguments"); + } + const signers = signersOrOptions; + if (transaction.nonceInfo) { + transaction.sign(...signers); + } else { + let disableCache = this._disableBlockhashCaching; + for (; ; ) { + const latestBlockhash = await this._blockhashWithExpiryBlockHeight(disableCache); + transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight; + transaction.recentBlockhash = latestBlockhash.blockhash; + transaction.sign(...signers); + if (!transaction.signature) { + throw new Error("!signature"); + } + const signature2 = transaction.signature.toString("base64"); + if (!this._blockhashInfo.transactionSignatures.includes(signature2)) { + this._blockhashInfo.transactionSignatures.push(signature2); + break; + } else { + disableCache = true; + } + } + } + const wireTransaction = transaction.serialize(); + return await this.sendRawTransaction(wireTransaction, options); + } + /** + * Send a transaction that has already been signed and serialized into the + * wire format + */ + async sendRawTransaction(rawTransaction, options) { + const encodedTransaction = toBuffer(rawTransaction).toString("base64"); + const result = await this.sendEncodedTransaction(encodedTransaction, options); + return result; + } + /** + * Send a transaction that has already been signed, serialized into the + * wire format, and encoded as a base64 string + */ + async sendEncodedTransaction(encodedTransaction, options) { + const config = { + encoding: "base64" + }; + const skipPreflight = options && options.skipPreflight; + const preflightCommitment = skipPreflight === true ? "processed" : options && options.preflightCommitment || this.commitment; + if (options && options.maxRetries != null) { + config.maxRetries = options.maxRetries; + } + if (options && options.minContextSlot != null) { + config.minContextSlot = options.minContextSlot; + } + if (skipPreflight) { + config.skipPreflight = skipPreflight; + } + if (preflightCommitment) { + config.preflightCommitment = preflightCommitment; + } + const args = [encodedTransaction, config]; + const unsafeRes = await this._rpcRequest("sendTransaction", args); + const res = superstruct.create(unsafeRes, SendTransactionRpcResult); + if ("error" in res) { + let logs = void 0; + if ("data" in res.error) { + logs = res.error.data.logs; + } + throw new SendTransactionError({ + action: skipPreflight ? "send" : "simulate", + signature: "", + transactionMessage: res.error.message, + logs + }); + } + return res.result; + } + /** + * @internal + */ + _wsOnOpen() { + this._rpcWebSocketConnected = true; + this._rpcWebSocketHeartbeat = setInterval(() => { + (async () => { + try { + await this._rpcWebSocket.notify("ping"); + } catch { + } + })(); + }, 5e3); + this._updateSubscriptions(); + } + /** + * @internal + */ + _wsOnError(err) { + this._rpcWebSocketConnected = false; + console.error("ws error:", err.message); + } + /** + * @internal + */ + _wsOnClose(code) { + this._rpcWebSocketConnected = false; + this._rpcWebSocketGeneration = (this._rpcWebSocketGeneration + 1) % Number.MAX_SAFE_INTEGER; + if (this._rpcWebSocketIdleTimeout) { + clearTimeout(this._rpcWebSocketIdleTimeout); + this._rpcWebSocketIdleTimeout = null; + } + if (this._rpcWebSocketHeartbeat) { + clearInterval(this._rpcWebSocketHeartbeat); + this._rpcWebSocketHeartbeat = null; + } + if (code === 1e3) { + this._updateSubscriptions(); + return; + } + this._subscriptionCallbacksByServerSubscriptionId = {}; + Object.entries(this._subscriptionsByHash).forEach(([hash, subscription]) => { + this._setSubscription(hash, { + ...subscription, + state: "pending" + }); + }); + } + /** + * @internal + */ + _setSubscription(hash, nextSubscription) { + const prevState = this._subscriptionsByHash[hash]?.state; + this._subscriptionsByHash[hash] = nextSubscription; + if (prevState !== nextSubscription.state) { + const stateChangeCallbacks = this._subscriptionStateChangeCallbacksByHash[hash]; + if (stateChangeCallbacks) { + stateChangeCallbacks.forEach((cb) => { + try { + cb(nextSubscription.state); + } catch { + } + }); + } + } + } + /** + * @internal + */ + _onSubscriptionStateChange(clientSubscriptionId, callback) { + const hash = this._subscriptionHashByClientSubscriptionId[clientSubscriptionId]; + if (hash == null) { + return () => { + }; + } + const stateChangeCallbacks = this._subscriptionStateChangeCallbacksByHash[hash] ||= /* @__PURE__ */ new Set(); + stateChangeCallbacks.add(callback); + return () => { + stateChangeCallbacks.delete(callback); + if (stateChangeCallbacks.size === 0) { + delete this._subscriptionStateChangeCallbacksByHash[hash]; + } + }; + } + /** + * @internal + */ + async _updateSubscriptions() { + if (Object.keys(this._subscriptionsByHash).length === 0) { + if (this._rpcWebSocketConnected) { + this._rpcWebSocketConnected = false; + this._rpcWebSocketIdleTimeout = setTimeout(() => { + this._rpcWebSocketIdleTimeout = null; + try { + this._rpcWebSocket.close(); + } catch (err) { + if (err instanceof Error) { + console.log(`Error when closing socket connection: ${err.message}`); + } + } + }, 500); + } + return; + } + if (this._rpcWebSocketIdleTimeout !== null) { + clearTimeout(this._rpcWebSocketIdleTimeout); + this._rpcWebSocketIdleTimeout = null; + this._rpcWebSocketConnected = true; + } + if (!this._rpcWebSocketConnected) { + this._rpcWebSocket.connect(); + return; + } + const activeWebSocketGeneration = this._rpcWebSocketGeneration; + const isCurrentConnectionStillActive = () => { + return activeWebSocketGeneration === this._rpcWebSocketGeneration; + }; + await Promise.all( + // Don't be tempted to change this to `Object.entries`. We call + // `_updateSubscriptions` recursively when processing the state, + // so it's important that we look up the *current* version of + // each subscription, every time we process a hash. + Object.keys(this._subscriptionsByHash).map(async (hash) => { + const subscription = this._subscriptionsByHash[hash]; + if (subscription === void 0) { + return; + } + switch (subscription.state) { + case "pending": + case "unsubscribed": + if (subscription.callbacks.size === 0) { + delete this._subscriptionsByHash[hash]; + if (subscription.state === "unsubscribed") { + delete this._subscriptionCallbacksByServerSubscriptionId[subscription.serverSubscriptionId]; + } + await this._updateSubscriptions(); + return; + } + await (async () => { + const { + args, + method: method2 + } = subscription; + try { + this._setSubscription(hash, { + ...subscription, + state: "subscribing" + }); + const serverSubscriptionId = await this._rpcWebSocket.call(method2, args); + this._setSubscription(hash, { + ...subscription, + serverSubscriptionId, + state: "subscribed" + }); + this._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId] = subscription.callbacks; + await this._updateSubscriptions(); + } catch (e) { + console.error(`Received ${e instanceof Error ? "" : "JSON-RPC "}error calling \`${method2}\``, { + args, + error: e + }); + if (!isCurrentConnectionStillActive()) { + return; + } + this._setSubscription(hash, { + ...subscription, + state: "pending" + }); + await this._updateSubscriptions(); + } + })(); + break; + case "subscribed": + if (subscription.callbacks.size === 0) { + await (async () => { + const { + serverSubscriptionId, + unsubscribeMethod + } = subscription; + if (this._subscriptionsAutoDisposedByRpc.has(serverSubscriptionId)) { + this._subscriptionsAutoDisposedByRpc.delete(serverSubscriptionId); + } else { + this._setSubscription(hash, { + ...subscription, + state: "unsubscribing" + }); + this._setSubscription(hash, { + ...subscription, + state: "unsubscribing" + }); + try { + await this._rpcWebSocket.call(unsubscribeMethod, [serverSubscriptionId]); + } catch (e) { + if (e instanceof Error) { + console.error(`${unsubscribeMethod} error:`, e.message); + } + if (!isCurrentConnectionStillActive()) { + return; + } + this._setSubscription(hash, { + ...subscription, + state: "subscribed" + }); + await this._updateSubscriptions(); + return; + } + } + this._setSubscription(hash, { + ...subscription, + state: "unsubscribed" + }); + await this._updateSubscriptions(); + })(); + } + break; + } + }) + ); + } + /** + * @internal + */ + _handleServerNotification(serverSubscriptionId, callbackArgs) { + const callbacks = this._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId]; + if (callbacks === void 0) { + return; + } + callbacks.forEach((cb) => { + try { + cb( + ...callbackArgs + ); + } catch (e) { + console.error(e); + } + }); + } + /** + * @internal + */ + _wsOnAccountNotification(notification) { + const { + result, + subscription + } = superstruct.create(notification, AccountNotificationResult); + this._handleServerNotification(subscription, [result.value, result.context]); + } + /** + * @internal + */ + _makeSubscription(subscriptionConfig, args) { + const clientSubscriptionId = this._nextClientSubscriptionId++; + const hash = fastStableStringify([subscriptionConfig.method, args]); + const existingSubscription = this._subscriptionsByHash[hash]; + if (existingSubscription === void 0) { + this._subscriptionsByHash[hash] = { + ...subscriptionConfig, + args, + callbacks: /* @__PURE__ */ new Set([subscriptionConfig.callback]), + state: "pending" + }; + } else { + existingSubscription.callbacks.add(subscriptionConfig.callback); + } + this._subscriptionHashByClientSubscriptionId[clientSubscriptionId] = hash; + this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId] = async () => { + delete this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId]; + delete this._subscriptionHashByClientSubscriptionId[clientSubscriptionId]; + const subscription = this._subscriptionsByHash[hash]; + assert2(subscription !== void 0, `Could not find a \`Subscription\` when tearing down client subscription #${clientSubscriptionId}`); + subscription.callbacks.delete(subscriptionConfig.callback); + await this._updateSubscriptions(); + }; + this._updateSubscriptions(); + return clientSubscriptionId; + } + /** + * Register a callback to be invoked whenever the specified account changes + * + * @param publicKey Public key of the account to monitor + * @param callback Function to invoke whenever the account is changed + * @param config + * @return subscription id + */ + /** @deprecated Instead, pass in an {@link AccountSubscriptionConfig} */ + // eslint-disable-next-line no-dupe-class-members + // eslint-disable-next-line no-dupe-class-members + onAccountChange(publicKey24, callback, commitmentOrConfig) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs( + [publicKey24.toBase58()], + commitment || this._commitment || "finalized", + // Apply connection/server default. + "base64", + config + ); + return this._makeSubscription({ + callback, + method: "accountSubscribe", + unsubscribeMethod: "accountUnsubscribe" + }, args); + } + /** + * Deregister an account notification callback + * + * @param clientSubscriptionId client subscription id to deregister + */ + async removeAccountChangeListener(clientSubscriptionId) { + await this._unsubscribeClientSubscription(clientSubscriptionId, "account change"); + } + /** + * @internal + */ + _wsOnProgramAccountNotification(notification) { + const { + result, + subscription + } = superstruct.create(notification, ProgramAccountNotificationResult); + this._handleServerNotification(subscription, [{ + accountId: result.value.pubkey, + accountInfo: result.value.account + }, result.context]); + } + /** + * Register a callback to be invoked whenever accounts owned by the + * specified program change + * + * @param programId Public key of the program to monitor + * @param callback Function to invoke whenever the account is changed + * @param config + * @return subscription id + */ + /** @deprecated Instead, pass in a {@link ProgramAccountSubscriptionConfig} */ + // eslint-disable-next-line no-dupe-class-members + // eslint-disable-next-line no-dupe-class-members + onProgramAccountChange(programId, callback, commitmentOrConfig, maybeFilters) { + const { + commitment, + config + } = extractCommitmentFromConfig(commitmentOrConfig); + const args = this._buildArgs( + [programId.toBase58()], + commitment || this._commitment || "finalized", + // Apply connection/server default. + "base64", + config ? config : maybeFilters ? { + filters: applyDefaultMemcmpEncodingToFilters(maybeFilters) + } : void 0 + /* extra */ + ); + return this._makeSubscription({ + callback, + method: "programSubscribe", + unsubscribeMethod: "programUnsubscribe" + }, args); + } + /** + * Deregister an account notification callback + * + * @param clientSubscriptionId client subscription id to deregister + */ + async removeProgramAccountChangeListener(clientSubscriptionId) { + await this._unsubscribeClientSubscription(clientSubscriptionId, "program account change"); + } + /** + * Registers a callback to be invoked whenever logs are emitted. + */ + onLogs(filter, callback, commitment) { + const args = this._buildArgs( + [typeof filter === "object" ? { + mentions: [filter.toString()] + } : filter], + commitment || this._commitment || "finalized" + // Apply connection/server default. + ); + return this._makeSubscription({ + callback, + method: "logsSubscribe", + unsubscribeMethod: "logsUnsubscribe" + }, args); + } + /** + * Deregister a logs callback. + * + * @param clientSubscriptionId client subscription id to deregister. + */ + async removeOnLogsListener(clientSubscriptionId) { + await this._unsubscribeClientSubscription(clientSubscriptionId, "logs"); + } + /** + * @internal + */ + _wsOnLogsNotification(notification) { + const { + result, + subscription + } = superstruct.create(notification, LogsNotificationResult); + this._handleServerNotification(subscription, [result.value, result.context]); + } + /** + * @internal + */ + _wsOnSlotNotification(notification) { + const { + result, + subscription + } = superstruct.create(notification, SlotNotificationResult); + this._handleServerNotification(subscription, [result]); + } + /** + * Register a callback to be invoked upon slot changes + * + * @param callback Function to invoke whenever the slot changes + * @return subscription id + */ + onSlotChange(callback) { + return this._makeSubscription( + { + callback, + method: "slotSubscribe", + unsubscribeMethod: "slotUnsubscribe" + }, + [] + /* args */ + ); + } + /** + * Deregister a slot notification callback + * + * @param clientSubscriptionId client subscription id to deregister + */ + async removeSlotChangeListener(clientSubscriptionId) { + await this._unsubscribeClientSubscription(clientSubscriptionId, "slot change"); + } + /** + * @internal + */ + _wsOnSlotUpdatesNotification(notification) { + const { + result, + subscription + } = superstruct.create(notification, SlotUpdateNotificationResult); + this._handleServerNotification(subscription, [result]); + } + /** + * Register a callback to be invoked upon slot updates. {@link SlotUpdate}'s + * may be useful to track live progress of a cluster. + * + * @param callback Function to invoke whenever the slot updates + * @return subscription id + */ + onSlotUpdate(callback) { + return this._makeSubscription( + { + callback, + method: "slotsUpdatesSubscribe", + unsubscribeMethod: "slotsUpdatesUnsubscribe" + }, + [] + /* args */ + ); + } + /** + * Deregister a slot update notification callback + * + * @param clientSubscriptionId client subscription id to deregister + */ + async removeSlotUpdateListener(clientSubscriptionId) { + await this._unsubscribeClientSubscription(clientSubscriptionId, "slot update"); + } + /** + * @internal + */ + async _unsubscribeClientSubscription(clientSubscriptionId, subscriptionName) { + const dispose = this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId]; + if (dispose) { + await dispose(); + } else { + console.warn(`Ignored unsubscribe request because an active subscription with id \`${clientSubscriptionId}\` for '${subscriptionName}' events could not be found.`); + } + } + _buildArgs(args, override, encoding, extra) { + const commitment = override || this._commitment; + if (commitment || encoding || extra) { + let options = {}; + if (encoding) { + options.encoding = encoding; + } + if (commitment) { + options.commitment = commitment; + } + if (extra) { + options = Object.assign(options, extra); + } + args.push(options); + } + return args; + } + /** + * @internal + */ + _buildArgsAtLeastConfirmed(args, override, encoding, extra) { + const commitment = override || this._commitment; + if (commitment && !["confirmed", "finalized"].includes(commitment)) { + throw new Error("Using Connection with default commitment: `" + this._commitment + "`, but method requires at least `confirmed`"); + } + return this._buildArgs(args, override, encoding, extra); + } + /** + * @internal + */ + _wsOnSignatureNotification(notification) { + const { + result, + subscription + } = superstruct.create(notification, SignatureNotificationResult); + if (result.value !== "receivedSignature") { + this._subscriptionsAutoDisposedByRpc.add(subscription); + } + this._handleServerNotification(subscription, result.value === "receivedSignature" ? [{ + type: "received" + }, result.context] : [{ + type: "status", + result: result.value + }, result.context]); + } + /** + * Register a callback to be invoked upon signature updates + * + * @param signature Transaction signature string in base 58 + * @param callback Function to invoke on signature notifications + * @param commitment Specify the commitment level signature must reach before notification + * @return subscription id + */ + onSignature(signature2, callback, commitment) { + const args = this._buildArgs( + [signature2], + commitment || this._commitment || "finalized" + // Apply connection/server default. + ); + const clientSubscriptionId = this._makeSubscription({ + callback: (notification, context) => { + if (notification.type === "status") { + callback(notification.result, context); + try { + this.removeSignatureListener(clientSubscriptionId); + } catch (_err) { + } + } + }, + method: "signatureSubscribe", + unsubscribeMethod: "signatureUnsubscribe" + }, args); + return clientSubscriptionId; + } + /** + * Register a callback to be invoked when a transaction is + * received and/or processed. + * + * @param signature Transaction signature string in base 58 + * @param callback Function to invoke on signature notifications + * @param options Enable received notifications and set the commitment + * level that signature must reach before notification + * @return subscription id + */ + onSignatureWithOptions(signature2, callback, options) { + const { + commitment, + ...extra + } = { + ...options, + commitment: options && options.commitment || this._commitment || "finalized" + // Apply connection/server default. + }; + const args = this._buildArgs([signature2], commitment, void 0, extra); + const clientSubscriptionId = this._makeSubscription({ + callback: (notification, context) => { + callback(notification, context); + try { + this.removeSignatureListener(clientSubscriptionId); + } catch (_err) { + } + }, + method: "signatureSubscribe", + unsubscribeMethod: "signatureUnsubscribe" + }, args); + return clientSubscriptionId; + } + /** + * Deregister a signature notification callback + * + * @param clientSubscriptionId client subscription id to deregister + */ + async removeSignatureListener(clientSubscriptionId) { + await this._unsubscribeClientSubscription(clientSubscriptionId, "signature result"); + } + /** + * @internal + */ + _wsOnRootNotification(notification) { + const { + result, + subscription + } = superstruct.create(notification, RootNotificationResult); + this._handleServerNotification(subscription, [result]); + } + /** + * Register a callback to be invoked upon root changes + * + * @param callback Function to invoke whenever the root changes + * @return subscription id + */ + onRootChange(callback) { + return this._makeSubscription( + { + callback, + method: "rootSubscribe", + unsubscribeMethod: "rootUnsubscribe" + }, + [] + /* args */ + ); + } + /** + * Deregister a root notification callback + * + * @param clientSubscriptionId client subscription id to deregister + */ + async removeRootChangeListener(clientSubscriptionId) { + await this._unsubscribeClientSubscription(clientSubscriptionId, "root change"); + } + }; + var Keypair2 = class _Keypair { + /** + * Create a new keypair instance. + * Generate random keypair if no {@link Ed25519Keypair} is provided. + * + * @param {Ed25519Keypair} keypair ed25519 keypair + */ + constructor(keypair) { + this._keypair = void 0; + this._keypair = keypair ?? generateKeypair(); + } + /** + * Generate a new random keypair + * + * @returns {Keypair} Keypair + */ + static generate() { + return new _Keypair(generateKeypair()); + } + /** + * Create a keypair from a raw secret key byte array. + * + * This method should only be used to recreate a keypair from a previously + * generated secret key. Generating keypairs from a random seed should be done + * with the {@link Keypair.fromSeed} method. + * + * @throws error if the provided secret key is invalid and validation is not skipped. + * + * @param secretKey secret key byte array + * @param options skip secret key validation + * + * @returns {Keypair} Keypair + */ + static fromSecretKey(secretKey, options) { + if (secretKey.byteLength !== 64) { + throw new Error("bad secret key size"); + } + const publicKey24 = secretKey.slice(32, 64); + if (!options || !options.skipValidation) { + const privateScalar = secretKey.slice(0, 32); + const computedPublicKey = getPublicKey(privateScalar); + for (let ii = 0; ii < 32; ii++) { + if (publicKey24[ii] !== computedPublicKey[ii]) { + throw new Error("provided secretKey is invalid"); + } + } + } + return new _Keypair({ + publicKey: publicKey24, + secretKey + }); + } + /** + * Generate a keypair from a 32 byte seed. + * + * @param seed seed byte array + * + * @returns {Keypair} Keypair + */ + static fromSeed(seed) { + const publicKey24 = getPublicKey(seed); + const secretKey = new Uint8Array(64); + secretKey.set(seed); + secretKey.set(publicKey24, 32); + return new _Keypair({ + publicKey: publicKey24, + secretKey + }); + } + /** + * The public key for this keypair + * + * @returns {PublicKey} PublicKey + */ + get publicKey() { + return new PublicKey46(this._keypair.publicKey); + } + /** + * The raw secret key for this keypair + * @returns {Uint8Array} Secret key in an array of Uint8 bytes + */ + get secretKey() { + return new Uint8Array(this._keypair.secretKey); + } + }; + var LOOKUP_TABLE_INSTRUCTION_LAYOUTS = Object.freeze({ + CreateLookupTable: { + index: 0, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), u6415("recentSlot"), BufferLayout__namespace.u8("bumpSeed")]) + }, + FreezeLookupTable: { + index: 1, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + }, + ExtendLookupTable: { + index: 2, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), u6415(), BufferLayout__namespace.seq(publicKey23(), BufferLayout__namespace.offset(BufferLayout__namespace.u32(), -8), "addresses")]) + }, + DeactivateLookupTable: { + index: 3, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + }, + CloseLookupTable: { + index: 4, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + } + }); + var AddressLookupTableInstruction = class { + /** + * @internal + */ + constructor() { + } + static decodeInstructionType(instruction) { + this.checkProgramId(instruction.programId); + const instructionTypeLayout = BufferLayout__namespace.u32("instruction"); + const index = instructionTypeLayout.decode(instruction.data); + let type; + for (const [layoutType, layout] of Object.entries(LOOKUP_TABLE_INSTRUCTION_LAYOUTS)) { + if (layout.index == index) { + type = layoutType; + break; + } + } + if (!type) { + throw new Error("Invalid Instruction. Should be a LookupTable Instruction"); + } + return type; + } + static decodeCreateLookupTable(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeysLength(instruction.keys, 4); + const { + recentSlot + } = decodeData$1(LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable, instruction.data); + return { + authority: instruction.keys[1].pubkey, + payer: instruction.keys[2].pubkey, + recentSlot: Number(recentSlot) + }; + } + static decodeExtendLookupTable(instruction) { + this.checkProgramId(instruction.programId); + if (instruction.keys.length < 2) { + throw new Error(`invalid instruction; found ${instruction.keys.length} keys, expected at least 2`); + } + const { + addresses + } = decodeData$1(LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable, instruction.data); + return { + lookupTable: instruction.keys[0].pubkey, + authority: instruction.keys[1].pubkey, + payer: instruction.keys.length > 2 ? instruction.keys[2].pubkey : void 0, + addresses: addresses.map((buffer2) => new PublicKey46(buffer2)) + }; + } + static decodeCloseLookupTable(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeysLength(instruction.keys, 3); + return { + lookupTable: instruction.keys[0].pubkey, + authority: instruction.keys[1].pubkey, + recipient: instruction.keys[2].pubkey + }; + } + static decodeFreezeLookupTable(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeysLength(instruction.keys, 2); + return { + lookupTable: instruction.keys[0].pubkey, + authority: instruction.keys[1].pubkey + }; + } + static decodeDeactivateLookupTable(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeysLength(instruction.keys, 2); + return { + lookupTable: instruction.keys[0].pubkey, + authority: instruction.keys[1].pubkey + }; + } + /** + * @internal + */ + static checkProgramId(programId) { + if (!programId.equals(AddressLookupTableProgram.programId)) { + throw new Error("invalid instruction; programId is not AddressLookupTable Program"); + } + } + /** + * @internal + */ + static checkKeysLength(keys, expectedLength) { + if (keys.length < expectedLength) { + throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`); + } + } + }; + var AddressLookupTableProgram = class { + /** + * @internal + */ + constructor() { + } + static createLookupTable(params) { + const [lookupTableAddress, bumpSeed] = PublicKey46.findProgramAddressSync([params.authority.toBuffer(), codecsNumbers.getU64Encoder().encode(params.recentSlot)], this.programId); + const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable; + const data = encodeData(type, { + recentSlot: BigInt(params.recentSlot), + bumpSeed + }); + const keys = [{ + pubkey: lookupTableAddress, + isSigner: false, + isWritable: true + }, { + pubkey: params.authority, + isSigner: true, + isWritable: false + }, { + pubkey: params.payer, + isSigner: true, + isWritable: true + }, { + pubkey: SystemProgram19.programId, + isSigner: false, + isWritable: false + }]; + return [new TransactionInstruction33({ + programId: this.programId, + keys, + data + }), lookupTableAddress]; + } + static freezeLookupTable(params) { + const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.FreezeLookupTable; + const data = encodeData(type); + const keys = [{ + pubkey: params.lookupTable, + isSigner: false, + isWritable: true + }, { + pubkey: params.authority, + isSigner: true, + isWritable: false + }]; + return new TransactionInstruction33({ + programId: this.programId, + keys, + data + }); + } + static extendLookupTable(params) { + const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable; + const data = encodeData(type, { + addresses: params.addresses.map((addr) => addr.toBytes()) + }); + const keys = [{ + pubkey: params.lookupTable, + isSigner: false, + isWritable: true + }, { + pubkey: params.authority, + isSigner: true, + isWritable: false + }]; + if (params.payer) { + keys.push({ + pubkey: params.payer, + isSigner: true, + isWritable: true + }, { + pubkey: SystemProgram19.programId, + isSigner: false, + isWritable: false + }); + } + return new TransactionInstruction33({ + programId: this.programId, + keys, + data + }); + } + static deactivateLookupTable(params) { + const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.DeactivateLookupTable; + const data = encodeData(type); + const keys = [{ + pubkey: params.lookupTable, + isSigner: false, + isWritable: true + }, { + pubkey: params.authority, + isSigner: true, + isWritable: false + }]; + return new TransactionInstruction33({ + programId: this.programId, + keys, + data + }); + } + static closeLookupTable(params) { + const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CloseLookupTable; + const data = encodeData(type); + const keys = [{ + pubkey: params.lookupTable, + isSigner: false, + isWritable: true + }, { + pubkey: params.authority, + isSigner: true, + isWritable: false + }, { + pubkey: params.recipient, + isSigner: false, + isWritable: true + }]; + return new TransactionInstruction33({ + programId: this.programId, + keys, + data + }); + } + }; + AddressLookupTableProgram.programId = new PublicKey46("AddressLookupTab1e1111111111111111111111111"); + var ComputeBudgetInstruction = class { + /** + * @internal + */ + constructor() { + } + /** + * Decode a compute budget instruction and retrieve the instruction type. + */ + static decodeInstructionType(instruction) { + this.checkProgramId(instruction.programId); + const instructionTypeLayout = BufferLayout__namespace.u8("instruction"); + const typeIndex = instructionTypeLayout.decode(instruction.data); + let type; + for (const [ixType, layout] of Object.entries(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS)) { + if (layout.index == typeIndex) { + type = ixType; + break; + } + } + if (!type) { + throw new Error("Instruction type incorrect; not a ComputeBudgetInstruction"); + } + return type; + } + /** + * Decode request units compute budget instruction and retrieve the instruction params. + */ + static decodeRequestUnits(instruction) { + this.checkProgramId(instruction.programId); + const { + units, + additionalFee + } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits, instruction.data); + return { + units, + additionalFee + }; + } + /** + * Decode request heap frame compute budget instruction and retrieve the instruction params. + */ + static decodeRequestHeapFrame(instruction) { + this.checkProgramId(instruction.programId); + const { + bytes: bytes7 + } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame, instruction.data); + return { + bytes: bytes7 + }; + } + /** + * Decode set compute unit limit compute budget instruction and retrieve the instruction params. + */ + static decodeSetComputeUnitLimit(instruction) { + this.checkProgramId(instruction.programId); + const { + units + } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit, instruction.data); + return { + units + }; + } + /** + * Decode set compute unit price compute budget instruction and retrieve the instruction params. + */ + static decodeSetComputeUnitPrice(instruction) { + this.checkProgramId(instruction.programId); + const { + microLamports + } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice, instruction.data); + return { + microLamports + }; + } + /** + * @internal + */ + static checkProgramId(programId) { + if (!programId.equals(ComputeBudgetProgram.programId)) { + throw new Error("invalid instruction; programId is not ComputeBudgetProgram"); + } + } + }; + var COMPUTE_BUDGET_INSTRUCTION_LAYOUTS = Object.freeze({ + RequestUnits: { + index: 0, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), BufferLayout__namespace.u32("units"), BufferLayout__namespace.u32("additionalFee")]) + }, + RequestHeapFrame: { + index: 1, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), BufferLayout__namespace.u32("bytes")]) + }, + SetComputeUnitLimit: { + index: 2, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), BufferLayout__namespace.u32("units")]) + }, + SetComputeUnitPrice: { + index: 3, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), u6415("microLamports")]) + } + }); + var ComputeBudgetProgram = class { + /** + * @internal + */ + constructor() { + } + /** + * Public key that identifies the Compute Budget program + */ + /** + * @deprecated Instead, call {@link setComputeUnitLimit} and/or {@link setComputeUnitPrice} + */ + static requestUnits(params) { + const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits; + const data = encodeData(type, params); + return new TransactionInstruction33({ + keys: [], + programId: this.programId, + data + }); + } + static requestHeapFrame(params) { + const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame; + const data = encodeData(type, params); + return new TransactionInstruction33({ + keys: [], + programId: this.programId, + data + }); + } + static setComputeUnitLimit(params) { + const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit; + const data = encodeData(type, params); + return new TransactionInstruction33({ + keys: [], + programId: this.programId, + data + }); + } + static setComputeUnitPrice(params) { + const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice; + const data = encodeData(type, { + microLamports: BigInt(params.microLamports) + }); + return new TransactionInstruction33({ + keys: [], + programId: this.programId, + data + }); + } + }; + ComputeBudgetProgram.programId = new PublicKey46("ComputeBudget111111111111111111111111111111"); + var PRIVATE_KEY_BYTES$1 = 64; + var PUBLIC_KEY_BYTES$1 = 32; + var SIGNATURE_BYTES = 64; + var ED25519_INSTRUCTION_LAYOUT = BufferLayout__namespace.struct([BufferLayout__namespace.u8("numSignatures"), BufferLayout__namespace.u8("padding"), BufferLayout__namespace.u16("signatureOffset"), BufferLayout__namespace.u16("signatureInstructionIndex"), BufferLayout__namespace.u16("publicKeyOffset"), BufferLayout__namespace.u16("publicKeyInstructionIndex"), BufferLayout__namespace.u16("messageDataOffset"), BufferLayout__namespace.u16("messageDataSize"), BufferLayout__namespace.u16("messageInstructionIndex")]); + var Ed25519Program = class _Ed25519Program { + /** + * @internal + */ + constructor() { + } + /** + * Public key that identifies the ed25519 program + */ + /** + * Create an ed25519 instruction with a public key and signature. The + * public key must be a buffer that is 32 bytes long, and the signature + * must be a buffer of 64 bytes. + */ + static createInstructionWithPublicKey(params) { + const { + publicKey: publicKey24, + message, + signature: signature2, + instructionIndex + } = params; + assert2(publicKey24.length === PUBLIC_KEY_BYTES$1, `Public Key must be ${PUBLIC_KEY_BYTES$1} bytes but received ${publicKey24.length} bytes`); + assert2(signature2.length === SIGNATURE_BYTES, `Signature must be ${SIGNATURE_BYTES} bytes but received ${signature2.length} bytes`); + const publicKeyOffset = ED25519_INSTRUCTION_LAYOUT.span; + const signatureOffset = publicKeyOffset + publicKey24.length; + const messageDataOffset = signatureOffset + signature2.length; + const numSignatures = 1; + const instructionData = buffer.Buffer.alloc(messageDataOffset + message.length); + const index = instructionIndex == null ? 65535 : instructionIndex; + ED25519_INSTRUCTION_LAYOUT.encode({ + numSignatures, + padding: 0, + signatureOffset, + signatureInstructionIndex: index, + publicKeyOffset, + publicKeyInstructionIndex: index, + messageDataOffset, + messageDataSize: message.length, + messageInstructionIndex: index + }, instructionData); + instructionData.fill(publicKey24, publicKeyOffset); + instructionData.fill(signature2, signatureOffset); + instructionData.fill(message, messageDataOffset); + return new TransactionInstruction33({ + keys: [], + programId: _Ed25519Program.programId, + data: instructionData + }); + } + /** + * Create an ed25519 instruction with a private key. The private key + * must be a buffer that is 64 bytes long. + */ + static createInstructionWithPrivateKey(params) { + const { + privateKey, + message, + instructionIndex + } = params; + assert2(privateKey.length === PRIVATE_KEY_BYTES$1, `Private key must be ${PRIVATE_KEY_BYTES$1} bytes but received ${privateKey.length} bytes`); + try { + const keypair = Keypair2.fromSecretKey(privateKey); + const publicKey24 = keypair.publicKey.toBytes(); + const signature2 = sign(message, keypair.secretKey); + return this.createInstructionWithPublicKey({ + publicKey: publicKey24, + message, + signature: signature2, + instructionIndex + }); + } catch (error) { + throw new Error(`Error creating instruction; ${error}`); + } + } + }; + Ed25519Program.programId = new PublicKey46("Ed25519SigVerify111111111111111111111111111"); + var ecdsaSign = (msgHash, privKey) => { + const signature2 = secp256k1.secp256k1.sign(msgHash, privKey); + return [signature2.toCompactRawBytes(), signature2.recovery]; + }; + secp256k1.secp256k1.utils.isValidPrivateKey; + var publicKeyCreate = secp256k1.secp256k1.getPublicKey; + var PRIVATE_KEY_BYTES = 32; + var ETHEREUM_ADDRESS_BYTES = 20; + var PUBLIC_KEY_BYTES = 64; + var SIGNATURE_OFFSETS_SERIALIZED_SIZE = 11; + var SECP256K1_INSTRUCTION_LAYOUT = BufferLayout__namespace.struct([BufferLayout__namespace.u8("numSignatures"), BufferLayout__namespace.u16("signatureOffset"), BufferLayout__namespace.u8("signatureInstructionIndex"), BufferLayout__namespace.u16("ethAddressOffset"), BufferLayout__namespace.u8("ethAddressInstructionIndex"), BufferLayout__namespace.u16("messageDataOffset"), BufferLayout__namespace.u16("messageDataSize"), BufferLayout__namespace.u8("messageInstructionIndex"), BufferLayout__namespace.blob(20, "ethAddress"), BufferLayout__namespace.blob(64, "signature"), BufferLayout__namespace.u8("recoveryId")]); + var Secp256k1Program = class _Secp256k1Program { + /** + * @internal + */ + constructor() { + } + /** + * Public key that identifies the secp256k1 program + */ + /** + * Construct an Ethereum address from a secp256k1 public key buffer. + * @param {Buffer} publicKey a 64 byte secp256k1 public key buffer + */ + static publicKeyToEthAddress(publicKey24) { + assert2(publicKey24.length === PUBLIC_KEY_BYTES, `Public key must be ${PUBLIC_KEY_BYTES} bytes but received ${publicKey24.length} bytes`); + try { + return buffer.Buffer.from(sha3.keccak_256(toBuffer(publicKey24))).slice(-ETHEREUM_ADDRESS_BYTES); + } catch (error) { + throw new Error(`Error constructing Ethereum address: ${error}`); + } + } + /** + * Create an secp256k1 instruction with a public key. The public key + * must be a buffer that is 64 bytes long. + */ + static createInstructionWithPublicKey(params) { + const { + publicKey: publicKey24, + message, + signature: signature2, + recoveryId, + instructionIndex + } = params; + return _Secp256k1Program.createInstructionWithEthAddress({ + ethAddress: _Secp256k1Program.publicKeyToEthAddress(publicKey24), + message, + signature: signature2, + recoveryId, + instructionIndex + }); + } + /** + * Create an secp256k1 instruction with an Ethereum address. The address + * must be a hex string or a buffer that is 20 bytes long. + */ + static createInstructionWithEthAddress(params) { + const { + ethAddress: rawAddress, + message, + signature: signature2, + recoveryId, + instructionIndex = 0 + } = params; + let ethAddress; + if (typeof rawAddress === "string") { + if (rawAddress.startsWith("0x")) { + ethAddress = buffer.Buffer.from(rawAddress.substr(2), "hex"); + } else { + ethAddress = buffer.Buffer.from(rawAddress, "hex"); + } + } else { + ethAddress = rawAddress; + } + assert2(ethAddress.length === ETHEREUM_ADDRESS_BYTES, `Address must be ${ETHEREUM_ADDRESS_BYTES} bytes but received ${ethAddress.length} bytes`); + const dataStart = 1 + SIGNATURE_OFFSETS_SERIALIZED_SIZE; + const ethAddressOffset = dataStart; + const signatureOffset = dataStart + ethAddress.length; + const messageDataOffset = signatureOffset + signature2.length + 1; + const numSignatures = 1; + const instructionData = buffer.Buffer.alloc(SECP256K1_INSTRUCTION_LAYOUT.span + message.length); + SECP256K1_INSTRUCTION_LAYOUT.encode({ + numSignatures, + signatureOffset, + signatureInstructionIndex: instructionIndex, + ethAddressOffset, + ethAddressInstructionIndex: instructionIndex, + messageDataOffset, + messageDataSize: message.length, + messageInstructionIndex: instructionIndex, + signature: toBuffer(signature2), + ethAddress: toBuffer(ethAddress), + recoveryId + }, instructionData); + instructionData.fill(toBuffer(message), SECP256K1_INSTRUCTION_LAYOUT.span); + return new TransactionInstruction33({ + keys: [], + programId: _Secp256k1Program.programId, + data: instructionData + }); + } + /** + * Create an secp256k1 instruction with a private key. The private key + * must be a buffer that is 32 bytes long. + */ + static createInstructionWithPrivateKey(params) { + const { + privateKey: pkey, + message, + instructionIndex + } = params; + assert2(pkey.length === PRIVATE_KEY_BYTES, `Private key must be ${PRIVATE_KEY_BYTES} bytes but received ${pkey.length} bytes`); + try { + const privateKey = toBuffer(pkey); + const publicKey24 = publicKeyCreate( + privateKey, + false + /* isCompressed */ + ).slice(1); + const messageHash = buffer.Buffer.from(sha3.keccak_256(toBuffer(message))); + const [signature2, recoveryId] = ecdsaSign(messageHash, privateKey); + return this.createInstructionWithPublicKey({ + publicKey: publicKey24, + message, + signature: signature2, + recoveryId, + instructionIndex + }); + } catch (error) { + throw new Error(`Error creating instruction; ${error}`); + } + } + }; + Secp256k1Program.programId = new PublicKey46("KeccakSecp256k11111111111111111111111111111"); + var _Lockup; + var STAKE_CONFIG_ID = new PublicKey46("StakeConfig11111111111111111111111111111111"); + var Authorized = class { + /** + * Create a new Authorized object + * @param staker the stake authority + * @param withdrawer the withdraw authority + */ + constructor(staker, withdrawer) { + this.staker = void 0; + this.withdrawer = void 0; + this.staker = staker; + this.withdrawer = withdrawer; + } + }; + var Lockup = class { + /** + * Create a new Lockup object + */ + constructor(unixTimestamp, epoch, custodian) { + this.unixTimestamp = void 0; + this.epoch = void 0; + this.custodian = void 0; + this.unixTimestamp = unixTimestamp; + this.epoch = epoch; + this.custodian = custodian; + } + /** + * Default, inactive Lockup value + */ + }; + _Lockup = Lockup; + Lockup.default = new _Lockup(0, 0, PublicKey46.default); + var StakeInstruction = class { + /** + * @internal + */ + constructor() { + } + /** + * Decode a stake instruction and retrieve the instruction type. + */ + static decodeInstructionType(instruction) { + this.checkProgramId(instruction.programId); + const instructionTypeLayout = BufferLayout__namespace.u32("instruction"); + const typeIndex = instructionTypeLayout.decode(instruction.data); + let type; + for (const [ixType, layout] of Object.entries(STAKE_INSTRUCTION_LAYOUTS)) { + if (layout.index == typeIndex) { + type = ixType; + break; + } + } + if (!type) { + throw new Error("Instruction type incorrect; not a StakeInstruction"); + } + return type; + } + /** + * Decode a initialize stake instruction and retrieve the instruction params. + */ + static decodeInitialize(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 2); + const { + authorized: authorized2, + lockup: lockup2 + } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Initialize, instruction.data); + return { + stakePubkey: instruction.keys[0].pubkey, + authorized: new Authorized(new PublicKey46(authorized2.staker), new PublicKey46(authorized2.withdrawer)), + lockup: new Lockup(lockup2.unixTimestamp, lockup2.epoch, new PublicKey46(lockup2.custodian)) + }; + } + /** + * Decode a delegate stake instruction and retrieve the instruction params. + */ + static decodeDelegate(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 6); + decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Delegate, instruction.data); + return { + stakePubkey: instruction.keys[0].pubkey, + votePubkey: instruction.keys[1].pubkey, + authorizedPubkey: instruction.keys[5].pubkey + }; + } + /** + * Decode an authorize stake instruction and retrieve the instruction params. + */ + static decodeAuthorize(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + const { + newAuthorized, + stakeAuthorizationType + } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Authorize, instruction.data); + const o = { + stakePubkey: instruction.keys[0].pubkey, + authorizedPubkey: instruction.keys[2].pubkey, + newAuthorizedPubkey: new PublicKey46(newAuthorized), + stakeAuthorizationType: { + index: stakeAuthorizationType + } + }; + if (instruction.keys.length > 3) { + o.custodianPubkey = instruction.keys[3].pubkey; + } + return o; + } + /** + * Decode an authorize-with-seed stake instruction and retrieve the instruction params. + */ + static decodeAuthorizeWithSeed(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 2); + const { + newAuthorized, + stakeAuthorizationType, + authoritySeed, + authorityOwner + } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed, instruction.data); + const o = { + stakePubkey: instruction.keys[0].pubkey, + authorityBase: instruction.keys[1].pubkey, + authoritySeed, + authorityOwner: new PublicKey46(authorityOwner), + newAuthorizedPubkey: new PublicKey46(newAuthorized), + stakeAuthorizationType: { + index: stakeAuthorizationType + } + }; + if (instruction.keys.length > 3) { + o.custodianPubkey = instruction.keys[3].pubkey; + } + return o; + } + /** + * Decode a split stake instruction and retrieve the instruction params. + */ + static decodeSplit(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + const { + lamports + } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Split, instruction.data); + return { + stakePubkey: instruction.keys[0].pubkey, + splitStakePubkey: instruction.keys[1].pubkey, + authorizedPubkey: instruction.keys[2].pubkey, + lamports + }; + } + /** + * Decode a merge stake instruction and retrieve the instruction params. + */ + static decodeMerge(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Merge, instruction.data); + return { + stakePubkey: instruction.keys[0].pubkey, + sourceStakePubKey: instruction.keys[1].pubkey, + authorizedPubkey: instruction.keys[4].pubkey + }; + } + /** + * Decode a withdraw stake instruction and retrieve the instruction params. + */ + static decodeWithdraw(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 5); + const { + lamports + } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Withdraw, instruction.data); + const o = { + stakePubkey: instruction.keys[0].pubkey, + toPubkey: instruction.keys[1].pubkey, + authorizedPubkey: instruction.keys[4].pubkey, + lamports + }; + if (instruction.keys.length > 5) { + o.custodianPubkey = instruction.keys[5].pubkey; + } + return o; + } + /** + * Decode a deactivate stake instruction and retrieve the instruction params. + */ + static decodeDeactivate(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Deactivate, instruction.data); + return { + stakePubkey: instruction.keys[0].pubkey, + authorizedPubkey: instruction.keys[2].pubkey + }; + } + /** + * @internal + */ + static checkProgramId(programId) { + if (!programId.equals(StakeProgram.programId)) { + throw new Error("invalid instruction; programId is not StakeProgram"); + } + } + /** + * @internal + */ + static checkKeyLength(keys, expectedLength) { + if (keys.length < expectedLength) { + throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`); + } + } + }; + var STAKE_INSTRUCTION_LAYOUTS = Object.freeze({ + Initialize: { + index: 0, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), authorized(), lockup()]) + }, + Authorize: { + index: 1, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("newAuthorized"), BufferLayout__namespace.u32("stakeAuthorizationType")]) + }, + Delegate: { + index: 2, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + }, + Split: { + index: 3, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), BufferLayout__namespace.ns64("lamports")]) + }, + Withdraw: { + index: 4, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), BufferLayout__namespace.ns64("lamports")]) + }, + Deactivate: { + index: 5, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + }, + Merge: { + index: 7, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + }, + AuthorizeWithSeed: { + index: 8, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("newAuthorized"), BufferLayout__namespace.u32("stakeAuthorizationType"), rustString("authoritySeed"), publicKey23("authorityOwner")]) + } + }); + var StakeAuthorizationLayout = Object.freeze({ + Staker: { + index: 0 + }, + Withdrawer: { + index: 1 + } + }); + var StakeProgram = class { + /** + * @internal + */ + constructor() { + } + /** + * Public key that identifies the Stake program + */ + /** + * Generate an Initialize instruction to add to a Stake Create transaction + */ + static initialize(params) { + const { + stakePubkey, + authorized: authorized2, + lockup: maybeLockup + } = params; + const lockup2 = maybeLockup || Lockup.default; + const type = STAKE_INSTRUCTION_LAYOUTS.Initialize; + const data = encodeData(type, { + authorized: { + staker: toBuffer(authorized2.staker.toBuffer()), + withdrawer: toBuffer(authorized2.withdrawer.toBuffer()) + }, + lockup: { + unixTimestamp: lockup2.unixTimestamp, + epoch: lockup2.epoch, + custodian: toBuffer(lockup2.custodian.toBuffer()) + } + }); + const instructionData = { + keys: [{ + pubkey: stakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_RENT_PUBKEY2, + isSigner: false, + isWritable: false + }], + programId: this.programId, + data + }; + return new TransactionInstruction33(instructionData); + } + /** + * Generate a Transaction that creates a new Stake account at + * an address generated with `from`, a seed, and the Stake programId + */ + static createAccountWithSeed(params) { + const transaction = new Transaction(); + transaction.add(SystemProgram19.createAccountWithSeed({ + fromPubkey: params.fromPubkey, + newAccountPubkey: params.stakePubkey, + basePubkey: params.basePubkey, + seed: params.seed, + lamports: params.lamports, + space: this.space, + programId: this.programId + })); + const { + stakePubkey, + authorized: authorized2, + lockup: lockup2 + } = params; + return transaction.add(this.initialize({ + stakePubkey, + authorized: authorized2, + lockup: lockup2 + })); + } + /** + * Generate a Transaction that creates a new Stake account + */ + static createAccount(params) { + const transaction = new Transaction(); + transaction.add(SystemProgram19.createAccount({ + fromPubkey: params.fromPubkey, + newAccountPubkey: params.stakePubkey, + lamports: params.lamports, + space: this.space, + programId: this.programId + })); + const { + stakePubkey, + authorized: authorized2, + lockup: lockup2 + } = params; + return transaction.add(this.initialize({ + stakePubkey, + authorized: authorized2, + lockup: lockup2 + })); + } + /** + * Generate a Transaction that delegates Stake tokens to a validator + * Vote PublicKey. This transaction can also be used to redelegate Stake + * to a new validator Vote PublicKey. + */ + static delegate(params) { + const { + stakePubkey, + authorizedPubkey, + votePubkey + } = params; + const type = STAKE_INSTRUCTION_LAYOUTS.Delegate; + const data = encodeData(type); + return new Transaction().add({ + keys: [{ + pubkey: stakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: votePubkey, + isSigner: false, + isWritable: false + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: SYSVAR_STAKE_HISTORY_PUBKEY, + isSigner: false, + isWritable: false + }, { + pubkey: STAKE_CONFIG_ID, + isSigner: false, + isWritable: false + }, { + pubkey: authorizedPubkey, + isSigner: true, + isWritable: false + }], + programId: this.programId, + data + }); + } + /** + * Generate a Transaction that authorizes a new PublicKey as Staker + * or Withdrawer on the Stake account. + */ + static authorize(params) { + const { + stakePubkey, + authorizedPubkey, + newAuthorizedPubkey, + stakeAuthorizationType, + custodianPubkey + } = params; + const type = STAKE_INSTRUCTION_LAYOUTS.Authorize; + const data = encodeData(type, { + newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()), + stakeAuthorizationType: stakeAuthorizationType.index + }); + const keys = [{ + pubkey: stakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: true + }, { + pubkey: authorizedPubkey, + isSigner: true, + isWritable: false + }]; + if (custodianPubkey) { + keys.push({ + pubkey: custodianPubkey, + isSigner: true, + isWritable: false + }); + } + return new Transaction().add({ + keys, + programId: this.programId, + data + }); + } + /** + * Generate a Transaction that authorizes a new PublicKey as Staker + * or Withdrawer on the Stake account. + */ + static authorizeWithSeed(params) { + const { + stakePubkey, + authorityBase, + authoritySeed, + authorityOwner, + newAuthorizedPubkey, + stakeAuthorizationType, + custodianPubkey + } = params; + const type = STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed; + const data = encodeData(type, { + newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()), + stakeAuthorizationType: stakeAuthorizationType.index, + authoritySeed, + authorityOwner: toBuffer(authorityOwner.toBuffer()) + }); + const keys = [{ + pubkey: stakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: authorityBase, + isSigner: true, + isWritable: false + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: false + }]; + if (custodianPubkey) { + keys.push({ + pubkey: custodianPubkey, + isSigner: true, + isWritable: false + }); + } + return new Transaction().add({ + keys, + programId: this.programId, + data + }); + } + /** + * @internal + */ + static splitInstruction(params) { + const { + stakePubkey, + authorizedPubkey, + splitStakePubkey, + lamports + } = params; + const type = STAKE_INSTRUCTION_LAYOUTS.Split; + const data = encodeData(type, { + lamports + }); + return new TransactionInstruction33({ + keys: [{ + pubkey: stakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: splitStakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: authorizedPubkey, + isSigner: true, + isWritable: false + }], + programId: this.programId, + data + }); + } + /** + * Generate a Transaction that splits Stake tokens into another stake account + */ + static split(params, rentExemptReserve) { + const transaction = new Transaction(); + transaction.add(SystemProgram19.createAccount({ + fromPubkey: params.authorizedPubkey, + newAccountPubkey: params.splitStakePubkey, + lamports: rentExemptReserve, + space: this.space, + programId: this.programId + })); + return transaction.add(this.splitInstruction(params)); + } + /** + * Generate a Transaction that splits Stake tokens into another account + * derived from a base public key and seed + */ + static splitWithSeed(params, rentExemptReserve) { + const { + stakePubkey, + authorizedPubkey, + splitStakePubkey, + basePubkey, + seed, + lamports + } = params; + const transaction = new Transaction(); + transaction.add(SystemProgram19.allocate({ + accountPubkey: splitStakePubkey, + basePubkey, + seed, + space: this.space, + programId: this.programId + })); + if (rentExemptReserve && rentExemptReserve > 0) { + transaction.add(SystemProgram19.transfer({ + fromPubkey: params.authorizedPubkey, + toPubkey: splitStakePubkey, + lamports: rentExemptReserve + })); + } + return transaction.add(this.splitInstruction({ + stakePubkey, + authorizedPubkey, + splitStakePubkey, + lamports + })); + } + /** + * Generate a Transaction that merges Stake accounts. + */ + static merge(params) { + const { + stakePubkey, + sourceStakePubKey, + authorizedPubkey + } = params; + const type = STAKE_INSTRUCTION_LAYOUTS.Merge; + const data = encodeData(type); + return new Transaction().add({ + keys: [{ + pubkey: stakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: sourceStakePubKey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: SYSVAR_STAKE_HISTORY_PUBKEY, + isSigner: false, + isWritable: false + }, { + pubkey: authorizedPubkey, + isSigner: true, + isWritable: false + }], + programId: this.programId, + data + }); + } + /** + * Generate a Transaction that withdraws deactivated Stake tokens. + */ + static withdraw(params) { + const { + stakePubkey, + authorizedPubkey, + toPubkey, + lamports, + custodianPubkey + } = params; + const type = STAKE_INSTRUCTION_LAYOUTS.Withdraw; + const data = encodeData(type, { + lamports + }); + const keys = [{ + pubkey: stakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: toPubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: SYSVAR_STAKE_HISTORY_PUBKEY, + isSigner: false, + isWritable: false + }, { + pubkey: authorizedPubkey, + isSigner: true, + isWritable: false + }]; + if (custodianPubkey) { + keys.push({ + pubkey: custodianPubkey, + isSigner: true, + isWritable: false + }); + } + return new Transaction().add({ + keys, + programId: this.programId, + data + }); + } + /** + * Generate a Transaction that deactivates Stake tokens. + */ + static deactivate(params) { + const { + stakePubkey, + authorizedPubkey + } = params; + const type = STAKE_INSTRUCTION_LAYOUTS.Deactivate; + const data = encodeData(type); + return new Transaction().add({ + keys: [{ + pubkey: stakePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: authorizedPubkey, + isSigner: true, + isWritable: false + }], + programId: this.programId, + data + }); + } + }; + StakeProgram.programId = new PublicKey46("Stake11111111111111111111111111111111111111"); + StakeProgram.space = 200; + var VoteInit = class { + /** [0, 100] */ + constructor(nodePubkey, authorizedVoter, authorizedWithdrawer, commission) { + this.nodePubkey = void 0; + this.authorizedVoter = void 0; + this.authorizedWithdrawer = void 0; + this.commission = void 0; + this.nodePubkey = nodePubkey; + this.authorizedVoter = authorizedVoter; + this.authorizedWithdrawer = authorizedWithdrawer; + this.commission = commission; + } + }; + var VoteInstruction = class { + /** + * @internal + */ + constructor() { + } + /** + * Decode a vote instruction and retrieve the instruction type. + */ + static decodeInstructionType(instruction) { + this.checkProgramId(instruction.programId); + const instructionTypeLayout = BufferLayout__namespace.u32("instruction"); + const typeIndex = instructionTypeLayout.decode(instruction.data); + let type; + for (const [ixType, layout] of Object.entries(VOTE_INSTRUCTION_LAYOUTS)) { + if (layout.index == typeIndex) { + type = ixType; + break; + } + } + if (!type) { + throw new Error("Instruction type incorrect; not a VoteInstruction"); + } + return type; + } + /** + * Decode an initialize vote instruction and retrieve the instruction params. + */ + static decodeInitializeAccount(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 4); + const { + voteInit: voteInit2 + } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.InitializeAccount, instruction.data); + return { + votePubkey: instruction.keys[0].pubkey, + nodePubkey: instruction.keys[3].pubkey, + voteInit: new VoteInit(new PublicKey46(voteInit2.nodePubkey), new PublicKey46(voteInit2.authorizedVoter), new PublicKey46(voteInit2.authorizedWithdrawer), voteInit2.commission) + }; + } + /** + * Decode an authorize instruction and retrieve the instruction params. + */ + static decodeAuthorize(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + const { + newAuthorized, + voteAuthorizationType + } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.Authorize, instruction.data); + return { + votePubkey: instruction.keys[0].pubkey, + authorizedPubkey: instruction.keys[2].pubkey, + newAuthorizedPubkey: new PublicKey46(newAuthorized), + voteAuthorizationType: { + index: voteAuthorizationType + } + }; + } + /** + * Decode an authorize instruction and retrieve the instruction params. + */ + static decodeAuthorizeWithSeed(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + const { + voteAuthorizeWithSeedArgs: { + currentAuthorityDerivedKeyOwnerPubkey, + currentAuthorityDerivedKeySeed, + newAuthorized, + voteAuthorizationType + } + } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed, instruction.data); + return { + currentAuthorityDerivedKeyBasePubkey: instruction.keys[2].pubkey, + currentAuthorityDerivedKeyOwnerPubkey: new PublicKey46(currentAuthorityDerivedKeyOwnerPubkey), + currentAuthorityDerivedKeySeed, + newAuthorizedPubkey: new PublicKey46(newAuthorized), + voteAuthorizationType: { + index: voteAuthorizationType + }, + votePubkey: instruction.keys[0].pubkey + }; + } + /** + * Decode a withdraw instruction and retrieve the instruction params. + */ + static decodeWithdraw(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 3); + const { + lamports + } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.Withdraw, instruction.data); + return { + votePubkey: instruction.keys[0].pubkey, + authorizedWithdrawerPubkey: instruction.keys[2].pubkey, + lamports, + toPubkey: instruction.keys[1].pubkey + }; + } + /** + * @internal + */ + static checkProgramId(programId) { + if (!programId.equals(VoteProgram.programId)) { + throw new Error("invalid instruction; programId is not VoteProgram"); + } + } + /** + * @internal + */ + static checkKeyLength(keys, expectedLength) { + if (keys.length < expectedLength) { + throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`); + } + } + }; + var VOTE_INSTRUCTION_LAYOUTS = Object.freeze({ + InitializeAccount: { + index: 0, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), voteInit()]) + }, + Authorize: { + index: 1, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), publicKey23("newAuthorized"), BufferLayout__namespace.u32("voteAuthorizationType")]) + }, + Withdraw: { + index: 3, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), BufferLayout__namespace.ns64("lamports")]) + }, + UpdateValidatorIdentity: { + index: 4, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction")]) + }, + AuthorizeWithSeed: { + index: 10, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u32("instruction"), voteAuthorizeWithSeedArgs()]) + } + }); + var VoteAuthorizationLayout = Object.freeze({ + Voter: { + index: 0 + }, + Withdrawer: { + index: 1 + } + }); + var VoteProgram = class _VoteProgram { + /** + * @internal + */ + constructor() { + } + /** + * Public key that identifies the Vote program + */ + /** + * Generate an Initialize instruction. + */ + static initializeAccount(params) { + const { + votePubkey, + nodePubkey, + voteInit: voteInit2 + } = params; + const type = VOTE_INSTRUCTION_LAYOUTS.InitializeAccount; + const data = encodeData(type, { + voteInit: { + nodePubkey: toBuffer(voteInit2.nodePubkey.toBuffer()), + authorizedVoter: toBuffer(voteInit2.authorizedVoter.toBuffer()), + authorizedWithdrawer: toBuffer(voteInit2.authorizedWithdrawer.toBuffer()), + commission: voteInit2.commission + } + }); + const instructionData = { + keys: [{ + pubkey: votePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_RENT_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: nodePubkey, + isSigner: true, + isWritable: false + }], + programId: this.programId, + data + }; + return new TransactionInstruction33(instructionData); + } + /** + * Generate a transaction that creates a new Vote account. + */ + static createAccount(params) { + const transaction = new Transaction(); + transaction.add(SystemProgram19.createAccount({ + fromPubkey: params.fromPubkey, + newAccountPubkey: params.votePubkey, + lamports: params.lamports, + space: this.space, + programId: this.programId + })); + return transaction.add(this.initializeAccount({ + votePubkey: params.votePubkey, + nodePubkey: params.voteInit.nodePubkey, + voteInit: params.voteInit + })); + } + /** + * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account. + */ + static authorize(params) { + const { + votePubkey, + authorizedPubkey, + newAuthorizedPubkey, + voteAuthorizationType + } = params; + const type = VOTE_INSTRUCTION_LAYOUTS.Authorize; + const data = encodeData(type, { + newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()), + voteAuthorizationType: voteAuthorizationType.index + }); + const keys = [{ + pubkey: votePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: authorizedPubkey, + isSigner: true, + isWritable: false + }]; + return new Transaction().add({ + keys, + programId: this.programId, + data + }); + } + /** + * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account + * where the current Voter or Withdrawer authority is a derived key. + */ + static authorizeWithSeed(params) { + const { + currentAuthorityDerivedKeyBasePubkey, + currentAuthorityDerivedKeyOwnerPubkey, + currentAuthorityDerivedKeySeed, + newAuthorizedPubkey, + voteAuthorizationType, + votePubkey + } = params; + const type = VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed; + const data = encodeData(type, { + voteAuthorizeWithSeedArgs: { + currentAuthorityDerivedKeyOwnerPubkey: toBuffer(currentAuthorityDerivedKeyOwnerPubkey.toBuffer()), + currentAuthorityDerivedKeySeed, + newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()), + voteAuthorizationType: voteAuthorizationType.index + } + }); + const keys = [{ + pubkey: votePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: SYSVAR_CLOCK_PUBKEY2, + isSigner: false, + isWritable: false + }, { + pubkey: currentAuthorityDerivedKeyBasePubkey, + isSigner: true, + isWritable: false + }]; + return new Transaction().add({ + keys, + programId: this.programId, + data + }); + } + /** + * Generate a transaction to withdraw from a Vote account. + */ + static withdraw(params) { + const { + votePubkey, + authorizedWithdrawerPubkey, + lamports, + toPubkey + } = params; + const type = VOTE_INSTRUCTION_LAYOUTS.Withdraw; + const data = encodeData(type, { + lamports + }); + const keys = [{ + pubkey: votePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: toPubkey, + isSigner: false, + isWritable: true + }, { + pubkey: authorizedWithdrawerPubkey, + isSigner: true, + isWritable: false + }]; + return new Transaction().add({ + keys, + programId: this.programId, + data + }); + } + /** + * Generate a transaction to withdraw safely from a Vote account. + * + * This function was created as a safeguard for vote accounts running validators, `safeWithdraw` + * checks that the withdraw amount will not exceed the specified balance while leaving enough left + * to cover rent. If you wish to close the vote account by withdrawing the full amount, call the + * `withdraw` method directly. + */ + static safeWithdraw(params, currentVoteAccountBalance, rentExemptMinimum) { + if (params.lamports > currentVoteAccountBalance - rentExemptMinimum) { + throw new Error("Withdraw will leave vote account with insufficient funds."); + } + return _VoteProgram.withdraw(params); + } + /** + * Generate a transaction to update the validator identity (node pubkey) of a Vote account. + */ + static updateValidatorIdentity(params) { + const { + votePubkey, + authorizedWithdrawerPubkey, + nodePubkey + } = params; + const type = VOTE_INSTRUCTION_LAYOUTS.UpdateValidatorIdentity; + const data = encodeData(type); + const keys = [{ + pubkey: votePubkey, + isSigner: false, + isWritable: true + }, { + pubkey: nodePubkey, + isSigner: true, + isWritable: false + }, { + pubkey: authorizedWithdrawerPubkey, + isSigner: true, + isWritable: false + }]; + return new Transaction().add({ + keys, + programId: this.programId, + data + }); + } + }; + VoteProgram.programId = new PublicKey46("Vote111111111111111111111111111111111111111"); + VoteProgram.space = 3762; + var VALIDATOR_INFO_KEY = new PublicKey46("Va1idator1nfo111111111111111111111111111111"); + var InfoString = superstruct.type({ + name: superstruct.string(), + website: superstruct.optional(superstruct.string()), + details: superstruct.optional(superstruct.string()), + iconUrl: superstruct.optional(superstruct.string()), + keybaseUsername: superstruct.optional(superstruct.string()) + }); + var ValidatorInfo = class _ValidatorInfo { + /** + * Construct a valid ValidatorInfo + * + * @param key validator public key + * @param info validator information + */ + constructor(key, info2) { + this.key = void 0; + this.info = void 0; + this.key = key; + this.info = info2; + } + /** + * Deserialize ValidatorInfo from the config account data. Exactly two config + * keys are required in the data. + * + * @param buffer config account data + * @return null if info was not found + */ + static fromConfigData(buffer$1) { + let byteArray = [...buffer$1]; + const configKeyCount = decodeLength(byteArray); + if (configKeyCount !== 2) return null; + const configKeys = []; + for (let i = 0; i < 2; i++) { + const publicKey24 = new PublicKey46(guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH)); + const isSigner = guardedShift(byteArray) === 1; + configKeys.push({ + publicKey: publicKey24, + isSigner + }); + } + if (configKeys[0].publicKey.equals(VALIDATOR_INFO_KEY)) { + if (configKeys[1].isSigner) { + const rawInfo = rustString().decode(buffer.Buffer.from(byteArray)); + const info2 = JSON.parse(rawInfo); + superstruct.assert(info2, InfoString); + return new _ValidatorInfo(configKeys[1].publicKey, info2); + } + } + return null; + } + }; + var VOTE_PROGRAM_ID = new PublicKey46("Vote111111111111111111111111111111111111111"); + var VoteAccountLayout = BufferLayout__namespace.struct([ + publicKey23("nodePubkey"), + publicKey23("authorizedWithdrawer"), + BufferLayout__namespace.u8("commission"), + BufferLayout__namespace.nu64(), + // votes.length + BufferLayout__namespace.seq(BufferLayout__namespace.struct([BufferLayout__namespace.nu64("slot"), BufferLayout__namespace.u32("confirmationCount")]), BufferLayout__namespace.offset(BufferLayout__namespace.u32(), -8), "votes"), + BufferLayout__namespace.u8("rootSlotValid"), + BufferLayout__namespace.nu64("rootSlot"), + BufferLayout__namespace.nu64(), + // authorizedVoters.length + BufferLayout__namespace.seq(BufferLayout__namespace.struct([BufferLayout__namespace.nu64("epoch"), publicKey23("authorizedVoter")]), BufferLayout__namespace.offset(BufferLayout__namespace.u32(), -8), "authorizedVoters"), + BufferLayout__namespace.struct([BufferLayout__namespace.seq(BufferLayout__namespace.struct([publicKey23("authorizedPubkey"), BufferLayout__namespace.nu64("epochOfLastAuthorizedSwitch"), BufferLayout__namespace.nu64("targetEpoch")]), 32, "buf"), BufferLayout__namespace.nu64("idx"), BufferLayout__namespace.u8("isEmpty")], "priorVoters"), + BufferLayout__namespace.nu64(), + // epochCredits.length + BufferLayout__namespace.seq(BufferLayout__namespace.struct([BufferLayout__namespace.nu64("epoch"), BufferLayout__namespace.nu64("credits"), BufferLayout__namespace.nu64("prevCredits")]), BufferLayout__namespace.offset(BufferLayout__namespace.u32(), -8), "epochCredits"), + BufferLayout__namespace.struct([BufferLayout__namespace.nu64("slot"), BufferLayout__namespace.nu64("timestamp")], "lastTimestamp") + ]); + var VoteAccount = class _VoteAccount { + /** + * @internal + */ + constructor(args) { + this.nodePubkey = void 0; + this.authorizedWithdrawer = void 0; + this.commission = void 0; + this.rootSlot = void 0; + this.votes = void 0; + this.authorizedVoters = void 0; + this.priorVoters = void 0; + this.epochCredits = void 0; + this.lastTimestamp = void 0; + this.nodePubkey = args.nodePubkey; + this.authorizedWithdrawer = args.authorizedWithdrawer; + this.commission = args.commission; + this.rootSlot = args.rootSlot; + this.votes = args.votes; + this.authorizedVoters = args.authorizedVoters; + this.priorVoters = args.priorVoters; + this.epochCredits = args.epochCredits; + this.lastTimestamp = args.lastTimestamp; + } + /** + * Deserialize VoteAccount from the account data. + * + * @param buffer account data + * @return VoteAccount + */ + static fromAccountData(buffer2) { + const versionOffset = 4; + const va = VoteAccountLayout.decode(toBuffer(buffer2), versionOffset); + let rootSlot = va.rootSlot; + if (!va.rootSlotValid) { + rootSlot = null; + } + return new _VoteAccount({ + nodePubkey: new PublicKey46(va.nodePubkey), + authorizedWithdrawer: new PublicKey46(va.authorizedWithdrawer), + commission: va.commission, + votes: va.votes, + rootSlot, + authorizedVoters: va.authorizedVoters.map(parseAuthorizedVoter), + priorVoters: getPriorVoters(va.priorVoters), + epochCredits: va.epochCredits, + lastTimestamp: va.lastTimestamp + }); + } + }; + function parseAuthorizedVoter({ + authorizedVoter, + epoch + }) { + return { + epoch, + authorizedVoter: new PublicKey46(authorizedVoter) + }; + } + function parsePriorVoters({ + authorizedPubkey, + epochOfLastAuthorizedSwitch, + targetEpoch + }) { + return { + authorizedPubkey: new PublicKey46(authorizedPubkey), + epochOfLastAuthorizedSwitch, + targetEpoch + }; + } + function getPriorVoters({ + buf, + idx, + isEmpty + }) { + if (isEmpty) { + return []; + } + return [...buf.slice(idx + 1).map(parsePriorVoters), ...buf.slice(0, idx).map(parsePriorVoters)]; + } + var endpoint = { + http: { + devnet: "http://api.devnet.solana.com", + testnet: "http://api.testnet.solana.com", + "mainnet-beta": "http://api.mainnet-beta.solana.com/" + }, + https: { + devnet: "https://api.devnet.solana.com", + testnet: "https://api.testnet.solana.com", + "mainnet-beta": "https://api.mainnet-beta.solana.com/" + } + }; + function clusterApiUrl(cluster, tls) { + const key = tls === false ? "http" : "https"; + if (!cluster) { + return endpoint[key]["devnet"]; + } + const url = endpoint[key][cluster]; + if (!url) { + throw new Error(`Unknown ${key} cluster: ${cluster}`); + } + return url; + } + async function sendAndConfirmRawTransaction(connection, rawTransaction, confirmationStrategyOrConfirmOptions, maybeConfirmOptions) { + let confirmationStrategy; + let options; + if (confirmationStrategyOrConfirmOptions && Object.prototype.hasOwnProperty.call(confirmationStrategyOrConfirmOptions, "lastValidBlockHeight")) { + confirmationStrategy = confirmationStrategyOrConfirmOptions; + options = maybeConfirmOptions; + } else if (confirmationStrategyOrConfirmOptions && Object.prototype.hasOwnProperty.call(confirmationStrategyOrConfirmOptions, "nonceValue")) { + confirmationStrategy = confirmationStrategyOrConfirmOptions; + options = maybeConfirmOptions; + } else { + options = confirmationStrategyOrConfirmOptions; + } + const sendOptions = options && { + skipPreflight: options.skipPreflight, + preflightCommitment: options.preflightCommitment || options.commitment, + minContextSlot: options.minContextSlot + }; + const signature2 = await connection.sendRawTransaction(rawTransaction, sendOptions); + const commitment = options && options.commitment; + const confirmationPromise = confirmationStrategy ? connection.confirmTransaction(confirmationStrategy, commitment) : connection.confirmTransaction(signature2, commitment); + const status = (await confirmationPromise).value; + if (status.err) { + if (signature2 != null) { + throw new SendTransactionError({ + action: sendOptions?.skipPreflight ? "send" : "simulate", + signature: signature2, + transactionMessage: `Status: (${JSON.stringify(status)})` + }); + } + throw new Error(`Raw transaction ${signature2} failed (${JSON.stringify(status)})`); + } + return signature2; + } + var LAMPORTS_PER_SOL = 1e9; + exports2.Account = Account; + exports2.AddressLookupTableAccount = AddressLookupTableAccount; + exports2.AddressLookupTableInstruction = AddressLookupTableInstruction; + exports2.AddressLookupTableProgram = AddressLookupTableProgram; + exports2.Authorized = Authorized; + exports2.BLOCKHASH_CACHE_TIMEOUT_MS = BLOCKHASH_CACHE_TIMEOUT_MS; + exports2.BPF_LOADER_DEPRECATED_PROGRAM_ID = BPF_LOADER_DEPRECATED_PROGRAM_ID; + exports2.BPF_LOADER_PROGRAM_ID = BPF_LOADER_PROGRAM_ID; + exports2.BpfLoader = BpfLoader; + exports2.COMPUTE_BUDGET_INSTRUCTION_LAYOUTS = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS; + exports2.ComputeBudgetInstruction = ComputeBudgetInstruction; + exports2.ComputeBudgetProgram = ComputeBudgetProgram; + exports2.Connection = Connection2; + exports2.Ed25519Program = Ed25519Program; + exports2.Enum = Enum; + exports2.EpochSchedule = EpochSchedule; + exports2.FeeCalculatorLayout = FeeCalculatorLayout; + exports2.Keypair = Keypair2; + exports2.LAMPORTS_PER_SOL = LAMPORTS_PER_SOL; + exports2.LOOKUP_TABLE_INSTRUCTION_LAYOUTS = LOOKUP_TABLE_INSTRUCTION_LAYOUTS; + exports2.Loader = Loader; + exports2.Lockup = Lockup; + exports2.MAX_SEED_LENGTH = MAX_SEED_LENGTH; + exports2.Message = Message; + exports2.MessageAccountKeys = MessageAccountKeys2; + exports2.MessageV0 = MessageV02; + exports2.NONCE_ACCOUNT_LENGTH = NONCE_ACCOUNT_LENGTH; + exports2.NonceAccount = NonceAccount; + exports2.PACKET_DATA_SIZE = PACKET_DATA_SIZE; + exports2.PUBLIC_KEY_LENGTH = PUBLIC_KEY_LENGTH; + exports2.PublicKey = PublicKey46; + exports2.SIGNATURE_LENGTH_IN_BYTES = SIGNATURE_LENGTH_IN_BYTES; + exports2.SOLANA_SCHEMA = SOLANA_SCHEMA; + exports2.STAKE_CONFIG_ID = STAKE_CONFIG_ID; + exports2.STAKE_INSTRUCTION_LAYOUTS = STAKE_INSTRUCTION_LAYOUTS; + exports2.SYSTEM_INSTRUCTION_LAYOUTS = SYSTEM_INSTRUCTION_LAYOUTS; + exports2.SYSVAR_CLOCK_PUBKEY = SYSVAR_CLOCK_PUBKEY2; + exports2.SYSVAR_EPOCH_SCHEDULE_PUBKEY = SYSVAR_EPOCH_SCHEDULE_PUBKEY; + exports2.SYSVAR_INSTRUCTIONS_PUBKEY = SYSVAR_INSTRUCTIONS_PUBKEY; + exports2.SYSVAR_RECENT_BLOCKHASHES_PUBKEY = SYSVAR_RECENT_BLOCKHASHES_PUBKEY; + exports2.SYSVAR_RENT_PUBKEY = SYSVAR_RENT_PUBKEY2; + exports2.SYSVAR_REWARDS_PUBKEY = SYSVAR_REWARDS_PUBKEY; + exports2.SYSVAR_SLOT_HASHES_PUBKEY = SYSVAR_SLOT_HASHES_PUBKEY; + exports2.SYSVAR_SLOT_HISTORY_PUBKEY = SYSVAR_SLOT_HISTORY_PUBKEY; + exports2.SYSVAR_STAKE_HISTORY_PUBKEY = SYSVAR_STAKE_HISTORY_PUBKEY; + exports2.Secp256k1Program = Secp256k1Program; + exports2.SendTransactionError = SendTransactionError; + exports2.SolanaJSONRPCError = SolanaJSONRPCError; + exports2.SolanaJSONRPCErrorCode = SolanaJSONRPCErrorCode; + exports2.StakeAuthorizationLayout = StakeAuthorizationLayout; + exports2.StakeInstruction = StakeInstruction; + exports2.StakeProgram = StakeProgram; + exports2.Struct = Struct; + exports2.SystemInstruction = SystemInstruction; + exports2.SystemProgram = SystemProgram19; + exports2.Transaction = Transaction; + exports2.TransactionExpiredBlockheightExceededError = TransactionExpiredBlockheightExceededError; + exports2.TransactionExpiredNonceInvalidError = TransactionExpiredNonceInvalidError; + exports2.TransactionExpiredTimeoutError = TransactionExpiredTimeoutError; + exports2.TransactionInstruction = TransactionInstruction33; + exports2.TransactionMessage = TransactionMessage29; + exports2.TransactionStatus = TransactionStatus; + exports2.VALIDATOR_INFO_KEY = VALIDATOR_INFO_KEY; + exports2.VERSION_PREFIX_MASK = VERSION_PREFIX_MASK; + exports2.VOTE_PROGRAM_ID = VOTE_PROGRAM_ID; + exports2.ValidatorInfo = ValidatorInfo; + exports2.VersionedMessage = VersionedMessage; + exports2.VersionedTransaction = VersionedTransaction28; + exports2.VoteAccount = VoteAccount; + exports2.VoteAuthorizationLayout = VoteAuthorizationLayout; + exports2.VoteInit = VoteInit; + exports2.VoteInstruction = VoteInstruction; + exports2.VoteProgram = VoteProgram; + exports2.clusterApiUrl = clusterApiUrl; + exports2.sendAndConfirmRawTransaction = sendAndConfirmRawTransaction; + exports2.sendAndConfirmTransaction = sendAndConfirmTransaction; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/types.js +var require_types = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isElementCollectionFixedSizeBeet = exports2.isFixableBeet = exports2.assertFixedSizeBeet = exports2.isFixedSizeBeet = exports2.BEET_TYPE_ARG_INNER = exports2.BEET_TYPE_ARG_LEN = exports2.BEET_PACKAGE = void 0; + var assert_1 = require("assert"); + exports2.BEET_PACKAGE = "@metaplex-foundation/beet"; + exports2.BEET_TYPE_ARG_LEN = "len"; + exports2.BEET_TYPE_ARG_INNER = "Beet<{innner}>"; + function isFixedSizeBeet(x) { + return Object.keys(x).includes("byteSize"); + } + exports2.isFixedSizeBeet = isFixedSizeBeet; + function assertFixedSizeBeet(x, msg = `${x} should have been a fixed beet`) { + (0, assert_1.strict)(isFixedSizeBeet(x), msg); + } + exports2.assertFixedSizeBeet = assertFixedSizeBeet; + function isFixableBeet(x) { + return typeof x.toFixedFromData === "function" && typeof x.toFixedFromValue === "function"; + } + exports2.isFixableBeet = isFixableBeet; + function isElementCollectionFixedSizeBeet(x) { + const keys = Object.keys(x); + return keys.includes("length") && keys.includes("elementByteSize") && keys.includes("lenPrefixByteSize"); + } + exports2.isElementCollectionFixedSizeBeet = isElementCollectionFixedSizeBeet; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/numbers.js +var require_numbers = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/numbers.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.numbersTypeMap = exports2.bool = exports2.i512 = exports2.i256 = exports2.i128 = exports2.i64 = exports2.i32 = exports2.i16 = exports2.i8 = exports2.u512 = exports2.u256 = exports2.u128 = exports2.u64 = exports2.u32 = exports2.u16 = exports2.u8 = void 0; + var bn_js_1 = __importDefault2(require_bn()); + var types_1 = require_types(); + exports2.u8 = { + write: function(buf, offset, value) { + buf.writeUInt8(value, offset); + }, + read: function(buf, offset) { + return buf.readUInt8(offset); + }, + byteSize: 1, + description: "u8" + }; + exports2.u16 = { + write: function(buf, offset, value) { + buf.writeUInt16LE(value, offset); + }, + read: function(buf, offset) { + return buf.readUInt16LE(offset); + }, + byteSize: 2, + description: "u16" + }; + exports2.u32 = { + write: function(buf, offset, value) { + buf.writeUInt32LE(value, offset); + }, + read: function(buf, offset) { + return buf.readUInt32LE(offset); + }, + byteSize: 4, + description: "u32" + }; + function unsignedLargeBeet(byteSize, description) { + return { + write: function(buf, offset, value) { + const bn = bn_js_1.default.isBN(value) ? value : new bn_js_1.default(value); + const bytesArray = bn.toArray("le", this.byteSize); + const bytesArrayBuf = Buffer.from(bytesArray); + bytesArrayBuf.copy(buf, offset, 0, this.byteSize); + }, + read: function(buf, offset) { + const slice = buf.slice(offset, offset + this.byteSize); + return new bn_js_1.default(slice, "le"); + }, + byteSize, + description + }; + } + exports2.u64 = unsignedLargeBeet(8, "u64"); + exports2.u128 = unsignedLargeBeet(16, "u128"); + exports2.u256 = unsignedLargeBeet(32, "u256"); + exports2.u512 = unsignedLargeBeet(64, "u512"); + exports2.i8 = { + write: function(buf, offset, value) { + buf.writeInt8(value, offset); + }, + read: function(buf, offset) { + return buf.readInt8(offset); + }, + byteSize: 1, + description: "i8" + }; + exports2.i16 = { + write: function(buf, offset, value) { + buf.writeInt16LE(value, offset); + }, + read: function(buf, offset) { + return buf.readInt16LE(offset); + }, + byteSize: 2, + description: "i16" + }; + exports2.i32 = { + write: function(buf, offset, value) { + buf.writeInt32LE(value, offset); + }, + read: function(buf, offset) { + return buf.readInt32LE(offset); + }, + byteSize: 4, + description: "i32" + }; + function signedLargeBeet(byteSize, description) { + const bitSize = byteSize * 8; + return { + write: function(buf, offset, value) { + const bn = (bn_js_1.default.isBN(value) ? value : new bn_js_1.default(value)).toTwos(bitSize); + const bytesArray = bn.toArray("le", this.byteSize); + const bytesArrayBuf = Buffer.from(bytesArray); + bytesArrayBuf.copy(buf, offset, 0, this.byteSize); + }, + read: function(buf, offset) { + const slice = buf.slice(offset, offset + this.byteSize); + const x = new bn_js_1.default(slice, "le"); + return x.fromTwos(bitSize); + }, + byteSize, + description + }; + } + exports2.i64 = signedLargeBeet(8, "i64"); + exports2.i128 = signedLargeBeet(16, "i128"); + exports2.i256 = signedLargeBeet(32, "i256"); + exports2.i512 = signedLargeBeet(64, "i512"); + exports2.bool = { + write: function(buf, offset, value) { + const n = value ? 1 : 0; + exports2.u8.write(buf, offset, n); + }, + read: function(buf, offset) { + return exports2.u8.read(buf, offset) === 1; + }, + byteSize: 1, + description: "bool" + }; + exports2.numbersTypeMap = { + // <= 32-bit numbers and boolean + u8: { beet: "u8", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "number" }, + u16: { beet: "u16", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "number" }, + u32: { beet: "u32", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "number" }, + i8: { beet: "i8", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "number" }, + i16: { beet: "i16", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "number" }, + i32: { beet: "i32", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "number" }, + bool: { beet: "bool", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "boolean" }, + // Big Number, they use, the 'bignum' type which is defined in this package + u64: { beet: "u64", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "bignum", pack: types_1.BEET_PACKAGE }, + u128: { beet: "u128", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "bignum", pack: types_1.BEET_PACKAGE }, + u256: { beet: "u256", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "bignum", pack: types_1.BEET_PACKAGE }, + u512: { beet: "u512", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "bignum", pack: types_1.BEET_PACKAGE }, + i64: { beet: "i64", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "bignum", pack: types_1.BEET_PACKAGE }, + i128: { beet: "i128", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "bignum", pack: types_1.BEET_PACKAGE }, + i256: { beet: "i256", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "bignum", pack: types_1.BEET_PACKAGE }, + i512: { beet: "i512", isFixable: false, sourcePack: types_1.BEET_PACKAGE, ts: "bignum", pack: types_1.BEET_PACKAGE } + }; + } +}); + +// node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/ms/index.js"(exports2, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse2(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) + ); + }; + function parse2(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + } +}); + +// node_modules/debug/src/common.js +var require_common = __commonJS({ + "node_modules/debug/src/common.js"(exports2, module2) { + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env).forEach((key) => { + createDebug[key] = env[key]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug(...args) { + if (!debug.enabled) { + return; + } + const self2 = debug; + const curr = Number(/* @__PURE__ */ new Date()); + const ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self2, val); + args.splice(index, 1); + index--; + } + return match; + }); + createDebug.formatArgs.call(self2, args); + const logFn = self2.log || createDebug.log; + logFn.apply(self2, args); + } + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; + Object.defineProperty(debug, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug); + } + return debug; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(" ", ",").split(",").filter(Boolean); + for (const ns of split) { + if (ns[0] === "-") { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) { + if (template[templateIndex] === "*") { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; + } + } + while (templateIndex < template.length && template[templateIndex] === "*") { + templateIndex++; + } + return templateIndex === template.length; + } + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; + } + } + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + return false; + } + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module2.exports = setup; + } +}); + +// node_modules/debug/src/browser.js +var require_browser2 = __commonJS({ + "node_modules/debug/src/browser.js"(exports2, module2) { + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = localstorage(); + exports2.destroy = /* @__PURE__ */ (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports2.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + let m; + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index++; + if (match === "%c") { + lastC = index; + } + }); + args.splice(lastC, 0, c); + } + exports2.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports2.storage.setItem("debug", namespaces); + } else { + exports2.storage.removeItem("debug"); + } + } catch (error) { + } + } + function load() { + let r; + try { + r = exports2.storage.getItem("debug"); + } catch (error) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + module2.exports = require_common()(exports2); + var { formatters } = module2.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + } +}); + +// node_modules/debug/src/node.js +var require_node = __commonJS({ + "node_modules/debug/src/node.js"(exports2, module2) { + var tty = require("tty"); + var util = require("util"); + exports2.init = init; + exports2.log = log; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.destroy = util.deprecate( + () => { + }, + "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." + ); + exports2.colors = [6, 2, 3, 4, 5, 1]; + try { + const supportsColor = require("supports-color"); + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports2.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (error) { + } + exports2.inspectOpts = Object.keys(process.env).filter((key) => { + return /^debug_/i.test(key); + }).reduce((obj, key) => { + const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); + } + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd); + } + function formatArgs(args) { + const { namespace: name, useColors: useColors2 } = this; + if (useColors2) { + const c = this.color; + const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name} \x1B[0m`; + args[0] = prefix + args[0].split("\n").join("\n" + prefix); + args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m"); + } else { + args[0] = getDate() + name + " " + args[0]; + } + } + function getDate() { + if (exports2.inspectOpts.hideDate) { + return ""; + } + return (/* @__PURE__ */ new Date()).toISOString() + " "; + } + function log(...args) { + return process.stderr.write(util.formatWithOptions(exports2.inspectOpts, ...args) + "\n"); + } + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + delete process.env.DEBUG; + } + } + function load() { + return process.env.DEBUG; + } + function init(debug) { + debug.inspectOpts = {}; + const keys = Object.keys(exports2.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; + } + } + module2.exports = require_common()(exports2); + var { formatters } = module2.exports; + formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); + }; + formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + } +}); + +// node_modules/debug/src/index.js +var require_src3 = __commonJS({ + "node_modules/debug/src/index.js"(exports2, module2) { + if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { + module2.exports = require_browser2(); + } else { + module2.exports = require_node(); + } + } +}); + +// node_modules/ansicolors/ansicolors.js +var require_ansicolors = __commonJS({ + "node_modules/ansicolors/ansicolors.js"(exports2, module2) { + "use strict"; + var colorNums = { + white: 37, + black: 30, + blue: 34, + cyan: 36, + green: 32, + magenta: 35, + red: 31, + yellow: 33, + brightBlack: 90, + brightRed: 91, + brightGreen: 92, + brightYellow: 93, + brightBlue: 94, + brightMagenta: 95, + brightCyan: 96, + brightWhite: 97 + }; + var backgroundColorNums = { + bgBlack: 40, + bgRed: 41, + bgGreen: 42, + bgYellow: 43, + bgBlue: 44, + bgMagenta: 45, + bgCyan: 46, + bgWhite: 47, + bgBrightBlack: 100, + bgBrightRed: 101, + bgBrightGreen: 102, + bgBrightYellow: 103, + bgBrightBlue: 104, + bgBrightMagenta: 105, + bgBrightCyan: 106, + bgBrightWhite: 107 + }; + var open = {}; + var close = {}; + var colors = {}; + Object.keys(colorNums).forEach(function(k) { + var o = open[k] = "\x1B[" + colorNums[k] + "m"; + var c = close[k] = "\x1B[39m"; + colors[k] = function(s) { + return o + s + c; + }; + }); + Object.keys(backgroundColorNums).forEach(function(k) { + var o = open[k] = "\x1B[" + backgroundColorNums[k] + "m"; + var c = close[k] = "\x1B[49m"; + colors[k] = function(s) { + return o + s + c; + }; + }); + module2.exports = colors; + colors.open = open; + colors.close = close; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/utils.js +var require_utils6 = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/utils.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnreachableCaseError = exports2.stringify = exports2.bytes = exports2.beetBytes = exports2.logTrace = exports2.logDebug = exports2.logInfo = exports2.logError = void 0; + var debug_1 = __importDefault2(require_src3()); + var ansicolors_1 = __importDefault2(require_ansicolors()); + var types_1 = require_types(); + var { brightBlack } = ansicolors_1.default; + exports2.logError = (0, debug_1.default)("beet:error"); + exports2.logInfo = (0, debug_1.default)("beet:info"); + exports2.logDebug = (0, debug_1.default)("beet:debug"); + exports2.logTrace = (0, debug_1.default)("beet:trace"); + function beetBytes(beet71, isFixable = false) { + let bytes8; + if ((0, types_1.isFixableBeet)(beet71)) { + bytes8 = "? B"; + } else if ((0, types_1.isElementCollectionFixedSizeBeet)(beet71)) { + const len = isFixable ? "length" : beet71.length; + const lenBytes = beet71.lenPrefixByteSize; + bytes8 = lenBytes > 0 ? `${lenBytes} + (${beet71.elementByteSize} * ${len}) B (${beet71.byteSize} B)` : `(${beet71.elementByteSize} * ${len}) B (${beet71.byteSize} B)`; + } else { + bytes8 = `${beet71.byteSize} B`; + } + return brightBlack(bytes8); + } + exports2.beetBytes = beetBytes; + function bytes7(n) { + return brightBlack(`${n} B`); + } + exports2.bytes = bytes7; + function stringify2(x) { + return x.toString === "function" ? x.toString() : x; + } + exports2.stringify = stringify2; + var UnreachableCaseError = class extends Error { + constructor(value) { + super(`Unreachable case: ${value}`); + } + }; + exports2.UnreachableCaseError = UnreachableCaseError; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beet.fixable.js +var require_beet_fixable = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beet.fixable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fixBeetFromValue = exports2.fixBeetFromData = void 0; + var types_1 = require_types(); + var utils_1 = require_utils6(); + function fixBeetFromData2(beet71, buf, offset) { + if ((0, types_1.isFixedSizeBeet)(beet71)) { + return beet71; + } + if ((0, types_1.isFixableBeet)(beet71)) { + return beet71.toFixedFromData(buf, offset); + } + throw new utils_1.UnreachableCaseError(beet71); + } + exports2.fixBeetFromData = fixBeetFromData2; + function fixBeetFromValue2(beet71, val) { + if ((0, types_1.isFixedSizeBeet)(beet71)) { + return beet71; + } + if ((0, types_1.isFixableBeet)(beet71)) { + return beet71.toFixedFromValue(val); + } + throw new utils_1.UnreachableCaseError(beet71); + } + exports2.fixBeetFromValue = fixBeetFromValue2; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/collections.js +var require_collections = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/collections.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.collectionsTypeMap = exports2.uint8Array = exports2.fixedSizeUint8Array = exports2.fixedSizeBuffer = exports2.array = exports2.fixedSizeArray = exports2.uniformFixedSizeArray = void 0; + var types_1 = require_types(); + var assert_1 = require("assert"); + var numbers_1 = require_numbers(); + var types_2 = require_types(); + var utils_1 = require_utils6(); + var beet_fixable_1 = require_beet_fixable(); + function uniformFixedSizeArray40(element, len, lenPrefix = false) { + const arraySize = element.byteSize * len; + const byteSize = lenPrefix ? 4 + arraySize : arraySize; + return { + write: function(buf, offset, value) { + assert_1.strict.equal(value.length, len, `array length ${value.length} should match len ${len}`); + if (lenPrefix) { + numbers_1.u32.write(buf, offset, len); + offset += 4; + } + for (let i = 0; i < len; i++) { + element.write(buf, offset + i * element.byteSize, value[i]); + } + }, + read: function(buf, offset) { + if (lenPrefix) { + const size = numbers_1.u32.read(buf, offset); + assert_1.strict.equal(size, len, "invalid byte size"); + offset += 4; + } + const arr = new Array(len); + for (let i = 0; i < len; i++) { + arr[i] = element.read(buf, offset + i * element.byteSize); + } + return arr; + }, + byteSize, + length: len, + elementByteSize: element.byteSize, + lenPrefixByteSize: 4, + description: `Array<${element.description}>(${len})` + }; + } + exports2.uniformFixedSizeArray = uniformFixedSizeArray40; + function fixedSizeArray(elements, elementsByteSize) { + const len = elements.length; + const firstElement = len === 0 ? "" : elements[0].description; + return { + write: function(buf, offset, value) { + assert_1.strict.equal(value.length, len, `array length ${value.length} should match len ${len}`); + numbers_1.u32.write(buf, offset, len); + let cursor = offset + 4; + for (let i = 0; i < len; i++) { + const element = elements[i]; + element.write(buf, cursor, value[i]); + cursor += element.byteSize; + } + }, + read: function(buf, offset) { + const size = numbers_1.u32.read(buf, offset); + assert_1.strict.equal(size, len, "invalid byte size"); + let cursor = offset + 4; + const arr = new Array(len); + for (let i = 0; i < len; i++) { + const element = elements[i]; + arr[i] = element.read(buf, cursor); + cursor += element.byteSize; + } + return arr; + }, + byteSize: 4 + elementsByteSize, + length: len, + description: `Array<${firstElement}>(${len})[ 4 + ${elementsByteSize} ]` + }; + } + exports2.fixedSizeArray = fixedSizeArray; + function array11(element) { + return { + toFixedFromData(buf, offset) { + const len = numbers_1.u32.read(buf, offset); + (0, utils_1.logTrace)(`${this.description}[${len}]`); + const cursorStart = offset + 4; + let cursor = cursorStart; + const fixedElements = new Array(len); + for (let i = 0; i < len; i++) { + const fixedElement = (0, beet_fixable_1.fixBeetFromData)(element, buf, cursor); + fixedElements[i] = fixedElement; + cursor += fixedElement.byteSize; + } + return fixedSizeArray(fixedElements, cursor - cursorStart); + }, + toFixedFromValue(vals) { + (0, assert_1.strict)(Array.isArray(vals), `${vals} should be an array`); + let elementsSize = 0; + const fixedElements = new Array(vals.length); + for (let i = 0; i < vals.length; i++) { + const fixedElement = (0, beet_fixable_1.fixBeetFromValue)(element, vals[i]); + fixedElements[i] = fixedElement; + elementsSize += fixedElement.byteSize; + } + return fixedSizeArray(fixedElements, elementsSize); + }, + description: `array` + }; + } + exports2.array = array11; + function fixedSizeBuffer(bytes7) { + return { + write: function(buf, offset, value) { + value.copy(buf, offset, 0, bytes7); + }, + read: function(buf, offset) { + return buf.slice(offset, offset + bytes7); + }, + byteSize: bytes7, + description: `Buffer(${bytes7})` + }; + } + exports2.fixedSizeBuffer = fixedSizeBuffer; + function fixedSizeUint8Array(len, lenPrefix = false) { + const arrayBufferBeet = fixedSizeBuffer(len); + const byteSize = lenPrefix ? len + 4 : len; + return { + write: function(buf, offset, value) { + assert_1.strict.equal(value.byteLength, len, `Uint8Array length ${value.byteLength} should match len ${len}`); + if (lenPrefix) { + numbers_1.u32.write(buf, offset, len); + offset += 4; + } + const valueBuf = Buffer.from(value); + arrayBufferBeet.write(buf, offset, valueBuf); + }, + read: function(buf, offset) { + if (lenPrefix) { + const size = numbers_1.u32.read(buf, offset); + assert_1.strict.equal(size, len, "invalid byte size"); + offset += 4; + } + const arrayBuffer = arrayBufferBeet.read(buf, offset); + return Uint8Array.from(arrayBuffer); + }, + byteSize, + description: `Uint8Array(${len})` + }; + } + exports2.fixedSizeUint8Array = fixedSizeUint8Array; + exports2.uint8Array = { + toFixedFromData(buf, offset) { + const len = numbers_1.u32.read(buf, offset); + (0, utils_1.logTrace)(`${this.description}[${len}]`); + return fixedSizeUint8Array(len, true); + }, + toFixedFromValue(val) { + const len = val.byteLength; + return fixedSizeUint8Array(len, true); + }, + description: `Uint8Array` + }; + exports2.collectionsTypeMap = { + Array: { + beet: "array", + isFixable: true, + sourcePack: types_2.BEET_PACKAGE, + ts: "Array", + arg: types_1.BEET_TYPE_ARG_LEN + }, + FixedSizeArray: { + beet: "fixedSizeArray", + isFixable: false, + sourcePack: types_2.BEET_PACKAGE, + ts: "Array", + arg: types_1.BEET_TYPE_ARG_LEN + }, + UniformFixedSizeArray: { + beet: "uniformFixedSizeArray", + isFixable: false, + sourcePack: types_2.BEET_PACKAGE, + ts: "Array", + arg: types_1.BEET_TYPE_ARG_LEN + }, + Buffer: { + beet: "fixedSizeBuffer", + isFixable: false, + sourcePack: types_2.BEET_PACKAGE, + ts: "Buffer", + arg: types_1.BEET_TYPE_ARG_LEN + }, + FixedSizeUint8Array: { + beet: "fixedSizeUint8Array", + isFixable: false, + sourcePack: types_2.BEET_PACKAGE, + ts: "Uint8Array", + arg: types_1.BEET_TYPE_ARG_LEN + }, + Uint8Array: { + beet: "uint8Array", + isFixable: true, + sourcePack: types_2.BEET_PACKAGE, + ts: "Uint8Array", + arg: types_1.BEET_TYPE_ARG_LEN + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/composites.js +var require_composites = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/composites.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.compositesTypeMap = exports2.coption = exports2.coptionSome = exports2.coptionNone = exports2.isNoneBuffer = exports2.isSomeBuffer = void 0; + var assert_1 = require("assert"); + var types_1 = require_types(); + var types_2 = require_types(); + var utils_1 = require_utils6(); + var beet_fixable_1 = require_beet_fixable(); + var NONE = 0; + var SOME = 1; + function isSomeBuffer(buf, offset) { + return buf[offset] === SOME; + } + exports2.isSomeBuffer = isSomeBuffer; + function isNoneBuffer(buf, offset) { + return buf[offset] === NONE; + } + exports2.isNoneBuffer = isNoneBuffer; + function coptionNone(description) { + (0, utils_1.logTrace)(`coptionNone(${description})`); + return { + write: function(buf, offset, value) { + (0, assert_1.strict)(value == null, "coptionNone can only handle `null` values"); + buf[offset] = NONE; + }, + read: function(buf, offset) { + (0, assert_1.strict)(isNoneBuffer(buf, offset), "coptionNone can only handle `NONE` data"); + return null; + }, + byteSize: 1, + description: `COption` + }; + } + exports2.coptionNone = coptionNone; + function coptionSome(inner) { + const byteSize = 1 + inner.byteSize; + const beet71 = { + write: function(buf, offset, value) { + (0, types_1.assertFixedSizeBeet)(inner, `coption inner type ${inner.description} needs to be fixed before calling write`); + (0, assert_1.strict)(value != null, "coptionSome cannot handle `null` values"); + buf[offset] = SOME; + inner.write(buf, offset + 1, value); + }, + read: function(buf, offset) { + (0, types_1.assertFixedSizeBeet)(inner, `coption inner type ${inner.description} needs to be fixed before calling read`); + (0, assert_1.strict)(isSomeBuffer(buf, offset), "coptionSome can only handle `SOME` data"); + return inner.read(buf, offset + 1); + }, + description: `COption<${inner.description}>[1 + ${inner.byteSize}]`, + byteSize, + inner + }; + (0, utils_1.logTrace)(beet71.description); + return beet71; + } + exports2.coptionSome = coptionSome; + function coption18(inner) { + return { + toFixedFromData(buf, offset) { + if (isSomeBuffer(buf, offset)) { + const innerFixed = (0, beet_fixable_1.fixBeetFromData)(inner, buf, offset + 1); + return coptionSome(innerFixed); + } else { + (0, assert_1.strict)(isNoneBuffer(buf, offset), `Expected ${buf} to hold a COption`); + return coptionNone(inner.description); + } + }, + toFixedFromValue(val) { + return val == null ? coptionNone(inner.description) : coptionSome((0, beet_fixable_1.fixBeetFromValue)(inner, val)); + }, + description: `COption<${inner.description}>` + }; + } + exports2.coption = coption18; + exports2.compositesTypeMap = { + option: { + beet: "coption", + isFixable: true, + sourcePack: types_2.BEET_PACKAGE, + ts: "COption", + arg: types_1.BEET_TYPE_ARG_INNER, + pack: types_2.BEET_PACKAGE + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/string.js +var require_string = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/string.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.stringTypeMap = exports2.utf8String = exports2.fixedSizeUtf8String = void 0; + var types_1 = require_types(); + var assert_1 = require("assert"); + var numbers_1 = require_numbers(); + var utils_1 = require_utils6(); + var fixedSizeUtf8String = (stringByteLength) => { + return { + write: function(buf, offset, value) { + const stringBuf = Buffer.from(value, "utf8"); + assert_1.strict.equal(stringBuf.byteLength, stringByteLength, `${value} has invalid byte size`); + numbers_1.u32.write(buf, offset, stringByteLength); + stringBuf.copy(buf, offset + 4, 0, stringByteLength); + }, + read: function(buf, offset) { + const size = numbers_1.u32.read(buf, offset); + assert_1.strict.equal(size, stringByteLength, `invalid byte size`); + const stringSlice = buf.slice(offset + 4, offset + 4 + stringByteLength); + return stringSlice.toString("utf8"); + }, + elementByteSize: 1, + length: stringByteLength, + lenPrefixByteSize: 4, + byteSize: 4 + stringByteLength, + description: `Utf8String(4 + ${stringByteLength})` + }; + }; + exports2.fixedSizeUtf8String = fixedSizeUtf8String; + exports2.utf8String = { + toFixedFromData(buf, offset) { + const len = numbers_1.u32.read(buf, offset); + (0, utils_1.logTrace)(`${this.description}[${len}]`); + return (0, exports2.fixedSizeUtf8String)(len); + }, + toFixedFromValue(val) { + const len = Buffer.from(val).byteLength; + return (0, exports2.fixedSizeUtf8String)(len); + }, + description: `Utf8String` + }; + exports2.stringTypeMap = { + fixedSizeString: { + beet: "fixedSizeUtf8String", + isFixable: false, + sourcePack: types_1.BEET_PACKAGE, + ts: "string", + arg: types_1.BEET_TYPE_ARG_LEN + }, + string: { + beet: "utf8String", + isFixable: true, + sourcePack: types_1.BEET_PACKAGE, + ts: "string" + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/read-write.js +var require_read_write = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/read-write.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BeetReader = exports2.BeetWriter = void 0; + var assert_1 = require("assert"); + var BeetWriter = class { + constructor(byteSize) { + this.buf = Buffer.alloc(byteSize); + this._offset = 0; + } + get buffer() { + return this.buf; + } + get offset() { + return this._offset; + } + maybeResize(bytesNeeded) { + if (this._offset + bytesNeeded > this.buf.length) { + assert_1.strict.fail(`We shouldn't ever need to resize, but ${this._offset + bytesNeeded} > ${this.buf.length}`); + } + } + write(beet71, value) { + this.maybeResize(beet71.byteSize); + beet71.write(this.buf, this._offset, value); + this._offset += beet71.byteSize; + } + writeStruct(instance, fields) { + for (const [key, beet71] of fields) { + const value = instance[key]; + this.write(beet71, value); + } + } + }; + exports2.BeetWriter = BeetWriter; + var BeetReader = class { + constructor(buffer, _offset = 0) { + this.buffer = buffer; + this._offset = _offset; + } + get offset() { + return this._offset; + } + read(beet71) { + const value = beet71.read(this.buffer, this._offset); + this._offset += beet71.byteSize; + return value; + } + readStruct(fields) { + const acc = {}; + for (const [key, beet71] of fields) { + acc[key] = this.read(beet71); + } + return acc; + } + }; + exports2.BeetReader = BeetReader; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/struct.js +var require_struct = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/struct.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BeetArgsStruct = exports2.isBeetStruct = exports2.BeetStruct = void 0; + var read_write_1 = require_read_write(); + var utils_1 = require_utils6(); + var BeetStruct3 = class _BeetStruct { + /** + * Creates an instance of the BeetStruct. + * + * @param fields de/serializers for each field of the {@link Class} + * @param construct the function that creates an instance of {@link Class} + * from the args + * @param description identifies this struct for diagnostics/debugging + * purposes + */ + constructor(fields, construct, description = _BeetStruct.description) { + this.fields = fields; + this.construct = construct; + this.description = description; + this.byteSize = this.getByteSize(); + if (utils_1.logDebug.enabled) { + const flds = fields.map(([key, val]) => `${String(key)}: ${val.description} ${(0, utils_1.beetBytes)(val)}`).join("\n "); + (0, utils_1.logDebug)(`struct ${description} { + ${flds} +} ${(0, utils_1.beetBytes)(this)}`); + } + } + /** + * Along with `write` this allows structs to be treated as {@link Beet}s and + * thus supports composing/nesting them the same way. + * @private + */ + read(buf, offset) { + const [value] = this.deserialize(buf, offset); + return value; + } + /** + * Along with `read` this allows structs to be treated as {@link Beet}s and + * thus supports composing/nesting them the same way. + * @private + */ + write(buf, offset, value) { + const [innerBuf, innerOffset] = this.serialize(value); + innerBuf.copy(buf, offset, 0, innerOffset); + } + /** + * Deserializes an instance of the Class from the provided buffer starting to + * read at the provided offset. + * + * @returns `[instance of Class, offset into buffer after deserialization completed]` + */ + deserialize(buffer, offset = 0) { + if (utils_1.logTrace.enabled) { + (0, utils_1.logTrace)("deserializing [%s] from %d bytes buffer", this.description, buffer.byteLength); + (0, utils_1.logTrace)(buffer); + (0, utils_1.logTrace)(buffer.toJSON().data); + } + const reader = new read_write_1.BeetReader(buffer, offset); + const args = reader.readStruct(this.fields); + return [this.construct(args), reader.offset]; + } + /** + * Serializes the provided instance into a new {@link Buffer} + * + * @param instance of the struct to serialize + * @param byteSize allows to override the size fo the created Buffer and + * defaults to the size of the struct to serialize + */ + serialize(instance, byteSize = this.byteSize) { + (0, utils_1.logTrace)("serializing [%s] %o to %d bytes buffer", this.description, instance, byteSize); + const writer = new read_write_1.BeetWriter(byteSize); + writer.writeStruct(instance, this.fields); + return [writer.buffer, writer.offset]; + } + getByteSize() { + return this.fields.reduce((acc, [_, beet71]) => acc + beet71.byteSize, 0); + } + get type() { + return _BeetStruct.TYPE; + } + }; + exports2.BeetStruct = BeetStruct3; + BeetStruct3.description = "BeetStruct"; + BeetStruct3.TYPE = "BeetStruct"; + function isBeetStruct(beet71) { + return beet71.type === BeetStruct3.TYPE; + } + exports2.isBeetStruct = isBeetStruct; + var BeetArgsStruct23 = class _BeetArgsStruct extends BeetStruct3 { + constructor(fields, description = _BeetArgsStruct.description) { + super(fields, (args) => args, description); + } + }; + exports2.BeetArgsStruct = BeetArgsStruct23; + BeetArgsStruct23.description = "BeetArgsStruct"; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/struct.fixable.js +var require_struct_fixable = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/struct.fixable.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FixableBeetArgsStruct = exports2.isFixableBeetStruct = exports2.FixableBeetStruct = void 0; + var beet_fixable_1 = require_beet_fixable(); + var struct_1 = require_struct(); + var types_1 = require_types(); + var assert_1 = require("assert"); + var utils_1 = require_utils6(); + var ansicolors_1 = __importDefault2(require_ansicolors()); + var { brightBlack } = ansicolors_1.default; + var FixableBeetStruct7 = class _FixableBeetStruct { + /** + * Creates an instance of the {@link FixableBeetStruct}. + * + * @param fields fixed or fixable de/serializers for each field of the {@link Class} + * @param construct the function that creates an instance of {@link Class} + * from the args + * @param description identifies this struct for diagnostics/debugging + * purposes + */ + constructor(fields, construct, description = _FixableBeetStruct.description) { + this.fields = fields; + this.construct = construct; + this.description = description; + let minByteSize = 0; + if (utils_1.logDebug.enabled) { + const flds = fields.map(([key, val]) => { + if ((0, types_1.isFixedSizeBeet)(val)) { + minByteSize += val.byteSize; + } + return `${key}: ${val.description} ${(0, utils_1.beetBytes)(val)}`; + }).join("\n "); + const bytes7 = `> ${minByteSize} B`; + (0, utils_1.logDebug)(`struct ${description} { + ${flds} +} ${brightBlack(bytes7)}`); + } + } + /** + * Deserializes an instance of the Class from the provided buffer starting to + * read at the provided offset. + * + * @returns `[instance of Class, offset into buffer after deserialization completed]` + */ + deserialize(buffer, offset = 0) { + return this.toFixedFromData(buffer, offset).deserialize(buffer, offset); + } + /** + * Serializes the provided instance into a new {@link Buffer} + * + * **NOTE:** that the `instance` is traversed and each of its fields accessed + * twice, once to derive a _fixed size_ {@link BeetStruct} and then use it to + * serialize the `instance`. + * Therefore ensure that none of the properties that are part of the struct + * have side effects, i.e. via `Getter`s. + * + * @param instance of the struct to serialize + * @param byteSize allows to override the size fo the created Buffer and + * defaults to the size of the struct to serialize + */ + serialize(instance, byteSize) { + return this.toFixedFromValue(instance).serialize(instance, byteSize); + } + toFixedFromData(buf, offset) { + let cursor = offset; + const fixedFields = new Array(this.fields.length); + for (let i = 0; i < this.fields.length; i++) { + const [key, beet71] = this.fields[i]; + const fixedBeet = (0, beet_fixable_1.fixBeetFromData)(beet71, buf, cursor); + fixedFields[i] = [key, fixedBeet]; + cursor += fixedBeet.byteSize; + } + return this.description !== _FixableBeetStruct.description ? new struct_1.BeetStruct(fixedFields, this.construct, this.description) : new struct_1.BeetStruct(fixedFields, this.construct); + } + toFixedFromValue(args) { + const argsKeys = Object.keys(args); + const fixedFields = new Array(this.fields.length); + for (let i = 0; i < this.fields.length; i++) { + const [key, beet71] = this.fields[i]; + (0, assert_1.strict)(argsKeys.includes(key), `Value with keys [ ${argsKeys} ] should include struct key '${key}' but doesn't.`); + const val = args[key]; + const fixedBeet = (0, beet_fixable_1.fixBeetFromValue)(beet71, val); + fixedFields[i] = [key, fixedBeet]; + } + return this.description !== _FixableBeetStruct.description ? new struct_1.BeetStruct(fixedFields, this.construct, this.description) : new struct_1.BeetStruct(fixedFields, this.construct); + } + get type() { + return _FixableBeetStruct.TYPE; + } + }; + exports2.FixableBeetStruct = FixableBeetStruct7; + FixableBeetStruct7.description = "FixableBeetStruct"; + FixableBeetStruct7.TYPE = "FixableBeetStruct"; + function isFixableBeetStruct(beet71) { + return beet71.type === FixableBeetStruct7.TYPE; + } + exports2.isFixableBeetStruct = isFixableBeetStruct; + var FixableBeetArgsStruct40 = class _FixableBeetArgsStruct extends FixableBeetStruct7 { + constructor(fields, description = _FixableBeetArgsStruct.description) { + super(fields, (args) => args, description); + } + }; + exports2.FixableBeetArgsStruct = FixableBeetArgsStruct40; + FixableBeetArgsStruct40.description = "FixableBeetArgsStruct"; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/unit.js +var require_unit = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/unit.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.unitTypeMap = exports2.unit = void 0; + var types_1 = require_types(); + exports2.unit = { + write: function(_buf, _offset, _value) { + }, + read: function(_buf, _offset) { + return void 0; + }, + byteSize: 0, + description: "unit" + }; + exports2.unitTypeMap = { + unit: { + beet: "unit", + isFixable: false, + sourcePack: types_1.BEET_PACKAGE, + ts: "void" + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/enums.js +var require_enums = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/enums.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.enumsTypeMap = exports2.dataEnum = exports2.uniformDataEnum = exports2.fixedScalarEnum = void 0; + var types_1 = require_types(); + var numbers_1 = require_numbers(); + var assert_1 = require("assert"); + var struct_1 = require_struct(); + var struct_fixable_1 = require_struct_fixable(); + var unit_1 = require_unit(); + function resolveEnumVariant(value, isNumVariant) { + return isNumVariant ? `${value}` : value; + } + function fixedScalarEnum3(enumType) { + const keys = Object.keys(enumType); + return { + write(buf, offset, value) { + const isNumVariant = typeof value === "number"; + const variantKey = resolveEnumVariant(value, isNumVariant); + if (!keys.includes(variantKey)) { + assert_1.strict.fail(`${value} should be a variant of the provided enum type, i.e. [ ${Object.values(enumType).join(", ")} ], but isn't`); + } + if (isNumVariant) { + numbers_1.u8.write(buf, offset, value); + } else { + const enumValue = enumType[variantKey]; + numbers_1.u8.write(buf, offset, enumValue); + } + }, + read(buf, offset) { + const value = numbers_1.u8.read(buf, offset); + const isNumVariant = typeof value === "number"; + const variantKey = resolveEnumVariant(value, isNumVariant); + if (!keys.includes(variantKey)) { + assert_1.strict.fail(`${value} should be a of a variant of the provided enum type, i.e. [ ${Object.values(enumType).join(", ")} ], but isn't`); + } + return isNumVariant ? value : enumType[variantKey]; + }, + byteSize: numbers_1.u8.byteSize, + description: "Enum" + }; + } + exports2.fixedScalarEnum = fixedScalarEnum3; + function uniformDataEnum(inner) { + return { + write: function(buf, offset, value) { + numbers_1.u8.write(buf, offset, value.kind); + inner.write(buf, offset + 1, value.data); + }, + read: function(buf, offset) { + const kind = numbers_1.u8.read(buf, offset); + const data = inner.read(buf, offset + 1); + return { kind, data }; + }, + byteSize: 1 + inner.byteSize, + description: `UniformDataEnum<${inner.description}>` + }; + } + exports2.uniformDataEnum = uniformDataEnum; + function enumDataVariantBeet(inner, discriminant, kind) { + return { + write(buf, offset, value) { + numbers_1.u8.write(buf, offset, discriminant); + inner.write(buf, offset + numbers_1.u8.byteSize, value); + }, + read(buf, offset) { + const val = inner.read(buf, offset + numbers_1.u8.byteSize); + return { __kind: kind, ...val }; + }, + byteSize: inner.byteSize + numbers_1.u8.byteSize, + description: `EnumData<${inner.description}>` + }; + } + function dataEnum3(variants) { + for (const [_, beet71] of variants) { + (0, assert_1.strict)((0, struct_1.isBeetStruct)(beet71) || (0, struct_fixable_1.isFixableBeetStruct)(beet71) || // scalar variant + beet71 === unit_1.unit, "dataEnum: variants must be a data beet struct or a scalar unit"); + } + return { + toFixedFromData(buf, offset) { + const discriminant = numbers_1.u8.read(buf, offset); + const variant = variants[discriminant]; + (0, assert_1.strict)(variant != null, `Discriminant ${discriminant} out of range for ${variants.length} variants`); + const [__kind, dataBeet] = variant; + const fixed = (0, types_1.isFixedSizeBeet)(dataBeet) ? dataBeet : dataBeet.toFixedFromData(buf, offset + 1); + return enumDataVariantBeet(fixed, discriminant, __kind); + }, + toFixedFromValue(val) { + if (val.__kind == null) { + const keys = Object.keys(val).join(", "); + const validKinds = variants.map(([__kind2]) => __kind2).join(", "); + assert_1.strict.fail(`Value with fields [ ${keys} ] is missing __kind, which needs to be set to one of [ ${validKinds} ]`); + } + const discriminant = variants.findIndex(([__kind2]) => __kind2 === val.__kind); + if (discriminant < 0) { + const validKinds = variants.map(([__kind2]) => __kind2).join(", "); + assert_1.strict.fail(`${val.__kind} is not a valid kind, needs to be one of [ ${validKinds} ]`); + } + const variant = variants[discriminant]; + const { __kind, ...dataValue } = val; + const [__variantKind, dataBeet] = variant; + const fixed = (0, types_1.isFixedSizeBeet)(dataBeet) ? dataBeet : dataBeet.toFixedFromValue(dataValue); + return enumDataVariantBeet(fixed, discriminant, __variantKind); + }, + description: `DataEnum<${variants.length} variants>` + }; + } + exports2.dataEnum = dataEnum3; + exports2.enumsTypeMap = { + fixedScalarEnum: { + beet: "fixedScalarEnum", + isFixable: false, + sourcePack: types_1.BEET_PACKAGE, + ts: "", + arg: types_1.BEET_TYPE_ARG_INNER, + pack: types_1.BEET_PACKAGE + }, + dataEnum: { + beet: "dataEnum", + isFixable: false, + sourcePack: types_1.BEET_PACKAGE, + ts: "DataEnum", + arg: types_1.BEET_TYPE_ARG_INNER, + pack: types_1.BEET_PACKAGE + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/aliases.js +var require_aliases = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/aliases.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.aliasesTypeMap = exports2.bytes = void 0; + var collections_1 = require_collections(); + exports2.bytes = collections_1.uint8Array; + exports2.aliasesTypeMap = { + // @ts-ignore + bytes: collections_1.collectionsTypeMap.Uint8Array + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/tuples.js +var require_tuples = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/tuples.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.tuplesTypeMap = exports2.tuple = exports2.fixedSizeTuple = void 0; + var types_1 = require_types(); + var assert_1 = require("assert"); + var beet_fixable_1 = require_beet_fixable(); + function fixedSizeTuple(elements) { + const len = elements.length; + const elDescs = elements.map((x) => x.description); + const byteSizes = elements.map((x) => x.byteSize); + const byteSize = byteSizes.reduce((acc, x) => acc + x, 0); + return { + write: function(buf, offset, value) { + assert_1.strict.equal(value.length, len, `tuple value element size ${value.length} should match len ${len}`); + let cursor = offset; + for (let i = 0; i < len; i++) { + const v = value[i]; + const beetEl = elements[i]; + beetEl.write(buf, cursor, v); + cursor += beetEl.byteSize; + } + }, + read: function(buf, offset) { + const els = []; + let cursor = offset; + for (let i = 0; i < len; i++) { + const elBeet = elements[i]; + els[i] = elBeet.read(buf, cursor); + cursor += elBeet.byteSize; + } + return els; + }, + byteSize, + length: len, + description: `FixedSizeTuple<${elDescs.join(",")}>[ ${byteSizes.join(", ")} ]` + }; + } + exports2.fixedSizeTuple = fixedSizeTuple; + function tuple(elements) { + const len = elements.length; + const elDescs = elements.map((x) => x.description); + return { + toFixedFromData(buf, offset) { + let cursor = offset; + const fixedElements = new Array(len); + for (let i = 0; i < len; i++) { + const fixedElement = (0, beet_fixable_1.fixBeetFromData)(elements[i], buf, cursor); + fixedElements[i] = fixedElement; + cursor += fixedElement.byteSize; + } + return fixedSizeTuple(fixedElements); + }, + toFixedFromValue(vals) { + (0, assert_1.strict)(Array.isArray(vals), `${vals} should be an array of tuple values`); + assert_1.strict.equal(vals.length, len, `There should be ${len} tuple values, but there are ${vals.length}`); + const fixedElements = new Array(len); + for (let i = 0; i < vals.length; i++) { + const fixedElement = (0, beet_fixable_1.fixBeetFromValue)(elements[i], vals[i]); + fixedElements[i] = fixedElement; + } + return fixedSizeTuple(fixedElements); + }, + description: `Tuple<${elDescs.join(",")}>` + }; + } + exports2.tuple = tuple; + exports2.tuplesTypeMap = { + Tuple: { + beet: "tuple", + isFixable: true, + sourcePack: types_1.BEET_PACKAGE, + ts: "[__tuple_elements__]" + }, + FixedSizeTuple: { + beet: "fixedSizeTuple", + isFixable: false, + sourcePack: types_1.BEET_PACKAGE, + ts: "[__tuple_elements__]" + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/maps.js +var require_maps = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/maps.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mapsTypeMap = exports2.map = void 0; + var types_1 = require_types(); + var numbers_1 = require_numbers(); + var utils_1 = require_utils6(); + var assert_1 = require("assert"); + function fixedSizeMap(keyElement, valElement, fixedElements, len) { + const keyElementFixed = (0, types_1.isFixedSizeBeet)(keyElement); + const valElementFixed = (0, types_1.isFixedSizeBeet)(valElement); + function determineSizes() { + if (keyElementFixed && valElementFixed) { + const elementByteSize2 = keyElement.byteSize + valElement.byteSize; + return { + elementByteSize: elementByteSize2, + byteSize: 4 + len * elementByteSize2 + }; + } else if (keyElementFixed) { + let valsByteSize = 0; + for (const [_, v] of fixedElements.values()) { + valsByteSize += v.byteSize; + } + const elementByteSize2 = keyElement.byteSize + Math.ceil(valsByteSize / len); + return { + elementByteSize: elementByteSize2, + byteSize: 4 + keyElement.byteSize * len + valsByteSize + }; + } else if (valElementFixed) { + let keysByteSize = 0; + for (const [k, _] of fixedElements.values()) { + keysByteSize += k.byteSize; + } + const elementByteSize2 = Math.ceil(keysByteSize / len) + valElement.byteSize; + return { + elementByteSize: elementByteSize2, + byteSize: 4 + keysByteSize + valElement.byteSize * len + }; + } else { + let keysByteSize = 0; + let valsByteSize = 0; + for (const [k, v] of fixedElements.values()) { + keysByteSize += k.byteSize; + valsByteSize += v.byteSize; + } + const elementByteSize2 = Math.ceil(keysByteSize / len + valsByteSize / len); + return { + elementByteSize: elementByteSize2, + byteSize: 4 + keysByteSize + valsByteSize + }; + } + } + const { elementByteSize, byteSize } = determineSizes(); + return { + write: function(buf, offset, map2) { + let cursor = offset + 4; + let size = 0; + for (const [k, v] of map2.entries()) { + let fixedKey = keyElementFixed ? keyElement : null; + let fixedVal = valElementFixed ? valElement : null; + if (fixedKey == null || fixedVal == null) { + const els = fixedElements.get(k); + (0, assert_1.strict)(els != null, `Should be able to find beet els for ${(0, utils_1.stringify)(k)}, but could not`); + fixedKey !== null && fixedKey !== void 0 ? fixedKey : fixedKey = els[0]; + fixedVal !== null && fixedVal !== void 0 ? fixedVal : fixedVal = els[1]; + } + fixedKey.write(buf, cursor, k); + cursor += fixedKey.byteSize; + fixedVal.write(buf, cursor, v); + cursor += fixedVal.byteSize; + size++; + } + numbers_1.u32.write(buf, offset, size); + assert_1.strict.equal(size, len, `Expected map to have size ${len}, but has ${size}.`); + }, + read: function(buf, offset) { + const size = numbers_1.u32.read(buf, offset); + assert_1.strict.equal(size, len, `Expected map to have size ${len}, but has ${size}.`); + let cursor = offset + 4; + const map2 = /* @__PURE__ */ new Map(); + for (let i = 0; i < size; i++) { + const fixedKey = keyElementFixed ? keyElement : keyElement.toFixedFromData(buf, cursor); + const k = fixedKey.read(buf, cursor); + cursor += fixedKey.byteSize; + const fixedVal = valElementFixed ? valElement : valElement.toFixedFromData(buf, cursor); + const v = fixedVal.read(buf, cursor); + cursor += fixedVal.byteSize; + map2.set(k, v); + } + return map2; + }, + elementByteSize, + byteSize, + length: len, + lenPrefixByteSize: 4, + description: `Map<${keyElement.description}, ${valElement.description}>` + }; + } + function map(keyElement, valElement) { + const keyIsFixed = (0, types_1.isFixedSizeBeet)(keyElement); + const valIsFixed = (0, types_1.isFixedSizeBeet)(valElement); + return { + toFixedFromData(buf, offset) { + const len = numbers_1.u32.read(buf, offset); + let cursor = offset + 4; + if (keyIsFixed && valIsFixed) { + return fixedSizeMap(keyElement, valElement, /* @__PURE__ */ new Map(), len); + } + const fixedBeets = /* @__PURE__ */ new Map(); + for (let i = 0; i < len; i++) { + const keyFixed = keyIsFixed ? keyElement : keyElement.toFixedFromData(buf, cursor); + const key = keyFixed.read(buf, cursor); + cursor += keyFixed.byteSize; + const valFixed = valIsFixed ? valElement : valElement.toFixedFromData(buf, cursor); + cursor += valFixed.byteSize; + fixedBeets.set(key, [keyFixed, valFixed]); + } + return fixedSizeMap(keyElement, valElement, fixedBeets, len); + }, + toFixedFromValue(mapVal) { + const len = mapVal.size; + if (keyIsFixed && valIsFixed) { + return fixedSizeMap(keyElement, valElement, /* @__PURE__ */ new Map(), len); + } + const fixedBeets = /* @__PURE__ */ new Map(); + for (const [k, v] of mapVal) { + const keyFixed = keyIsFixed ? keyElement : keyElement.toFixedFromValue(k); + const valFixed = valIsFixed ? valElement : valElement.toFixedFromValue(v); + fixedBeets.set(k, [keyFixed, valFixed]); + } + return fixedSizeMap(keyElement, valElement, fixedBeets, len); + }, + description: `FixableMap<${keyElement.description}, ${valElement.description}>` + }; + } + exports2.map = map; + exports2.mapsTypeMap = { + Map: { + beet: "map", + isFixable: true, + sourcePack: types_1.BEET_PACKAGE, + ts: "Map" + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/sets.js +var require_sets = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beets/sets.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.setsTypeMap = exports2.set = void 0; + var types_1 = require_types(); + var numbers_1 = require_numbers(); + var utils_1 = require_utils6(); + var assert_1 = require("assert"); + function fixedSizeSet(keyElement, fixedElements, len) { + const keyElementFixed = (0, types_1.isFixedSizeBeet)(keyElement); + function determineSizes() { + if (keyElementFixed) { + const elementByteSize2 = keyElement.byteSize; + return { + elementByteSize: elementByteSize2, + byteSize: 4 + len * elementByteSize2 + }; + } else { + let keysByteSize = 0; + for (const k of fixedElements.values()) { + keysByteSize += k.byteSize; + } + const elementByteSize2 = Math.ceil(keysByteSize / len); + return { + elementByteSize: elementByteSize2, + byteSize: 4 + keysByteSize + }; + } + } + const { elementByteSize, byteSize } = determineSizes(); + return { + write: function(buf, offset, set2) { + let cursor = offset + 4; + let size = 0; + for (const k of set2.keys()) { + let fixedKey = keyElementFixed ? keyElement : null; + if (fixedKey == null) { + const el = fixedElements.get(k); + (0, assert_1.strict)(el != null, `Should be able to find beet el for ${(0, utils_1.stringify)(k)}, but could not`); + fixedKey !== null && fixedKey !== void 0 ? fixedKey : fixedKey = el; + } + fixedKey.write(buf, cursor, k); + cursor += fixedKey.byteSize; + size++; + } + numbers_1.u32.write(buf, offset, size); + assert_1.strict.equal(size, len, `Expected set to have size ${len}, but has ${size}.`); + }, + read: function(buf, offset) { + const size = numbers_1.u32.read(buf, offset); + assert_1.strict.equal(size, len, `Expected set to have size ${len}, but has ${size}.`); + let cursor = offset + 4; + const set2 = /* @__PURE__ */ new Set(); + for (let i = 0; i < size; i++) { + const fixedKey = keyElementFixed ? keyElement : keyElement.toFixedFromData(buf, cursor); + const k = fixedKey.read(buf, cursor); + cursor += fixedKey.byteSize; + set2.add(k); + } + return set2; + }, + elementByteSize, + byteSize, + length: len, + lenPrefixByteSize: 4, + description: `Set<${keyElement.description}>` + }; + } + function set(keyElement) { + const keyIsFixed = (0, types_1.isFixedSizeBeet)(keyElement); + return { + toFixedFromData(buf, offset) { + const len = numbers_1.u32.read(buf, offset); + let cursor = offset + 4; + if (keyIsFixed) { + return fixedSizeSet(keyElement, /* @__PURE__ */ new Map(), len); + } + const fixedBeets = /* @__PURE__ */ new Map(); + for (let i = 0; i < len; i++) { + const keyFixed = keyIsFixed ? keyElement : keyElement.toFixedFromData(buf, cursor); + const key = keyFixed.read(buf, cursor); + cursor += keyFixed.byteSize; + fixedBeets.set(key, keyFixed); + } + return fixedSizeSet(keyElement, fixedBeets, len); + }, + toFixedFromValue(setVal) { + const len = setVal.size; + if (keyIsFixed) { + return fixedSizeSet(keyElement, /* @__PURE__ */ new Map(), len); + } + const fixedBeets = /* @__PURE__ */ new Map(); + for (const k of setVal) { + const keyFixed = keyIsFixed ? keyElement : keyElement.toFixedFromValue(k); + fixedBeets.set(k, keyFixed); + } + return fixedSizeSet(keyElement, fixedBeets, len); + }, + description: `FixableSet<${keyElement.description}>` + }; + } + exports2.set = set; + exports2.setsTypeMap = { + Set: { + beet: "set", + isFixable: true, + sourcePack: types_1.BEET_PACKAGE, + ts: "Set" + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet/dist/cjs/src/beet.js +var require_beet = __commonJS({ + "node_modules/@metaplex-foundation/beet/dist/cjs/src/beet.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.supportedTypeMap = void 0; + var collections_1 = require_collections(); + var composites_1 = require_composites(); + var numbers_1 = require_numbers(); + var string_1 = require_string(); + var enums_1 = require_enums(); + var aliases_1 = require_aliases(); + var tuples_1 = require_tuples(); + var maps_1 = require_maps(); + var unit_1 = require_unit(); + var sets_1 = require_sets(); + __exportStar2(require_aliases(), exports2); + __exportStar2(require_collections(), exports2); + __exportStar2(require_composites(), exports2); + __exportStar2(require_enums(), exports2); + __exportStar2(require_maps(), exports2); + __exportStar2(require_numbers(), exports2); + __exportStar2(require_sets(), exports2); + __exportStar2(require_string(), exports2); + __exportStar2(require_tuples(), exports2); + __exportStar2(require_unit(), exports2); + __exportStar2(require_beet_fixable(), exports2); + __exportStar2(require_read_write(), exports2); + __exportStar2(require_struct(), exports2); + __exportStar2(require_struct_fixable(), exports2); + __exportStar2(require_types(), exports2); + exports2.supportedTypeMap = { + ...collections_1.collectionsTypeMap, + ...string_1.stringTypeMap, + ...composites_1.compositesTypeMap, + ...enums_1.enumsTypeMap, + ...numbers_1.numbersTypeMap, + ...aliases_1.aliasesTypeMap, + ...tuples_1.tuplesTypeMap, + ...maps_1.mapsTypeMap, + ...sets_1.setsTypeMap, + ...unit_1.unitTypeMap + }; + } +}); + +// node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/keys.js +var require_keys = __commonJS({ + "node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/keys.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.keysTypeMap = exports2.publicKey = void 0; + var web3_js_1 = require_index_cjs(); + var beet_1 = require_beet(); + var BEET_SOLANA_PACKAGE = "@metaplex-foundation/beet-solana"; + var SOLANA_WEB3_PACKAGE = "@solana/web3.js"; + var uint8Array32 = (0, beet_1.fixedSizeUint8Array)(32); + exports2.publicKey = { + write: function(buf, offset, value) { + const arr = value.toBytes(); + uint8Array32.write(buf, offset, arr); + }, + read: function(buf, offset) { + const bytes7 = uint8Array32.read(buf, offset); + return new web3_js_1.PublicKey(bytes7); + }, + byteSize: uint8Array32.byteSize, + description: "PublicKey" + }; + exports2.keysTypeMap = { + publicKey: { + beet: "publicKey", + isFixable: false, + sourcePack: BEET_SOLANA_PACKAGE, + ts: "PublicKey", + pack: SOLANA_WEB3_PACKAGE + } + }; + } +}); + +// node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/utils.js +var require_utils7 = __commonJS({ + "node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/utils.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.logTrace = exports2.logDebug = exports2.logInfo = exports2.logError = void 0; + var debug_1 = __importDefault2(require_src3()); + exports2.logError = (0, debug_1.default)("beet:error"); + exports2.logInfo = (0, debug_1.default)("beet:info"); + exports2.logDebug = (0, debug_1.default)("beet:debug"); + exports2.logTrace = (0, debug_1.default)("beet:trace"); + } +}); + +// node_modules/base-x/src/index.js +var require_src4 = __commonJS({ + "node_modules/base-x/src/index.js"(exports2, module2) { + "use strict"; + function base(ALPHABET) { + if (ALPHABET.length >= 255) { + throw new TypeError("Alphabet too long"); + } + var BASE_MAP = new Uint8Array(256); + for (var j = 0; j < BASE_MAP.length; j++) { + BASE_MAP[j] = 255; + } + for (var i = 0; i < ALPHABET.length; i++) { + var x = ALPHABET.charAt(i); + var xc = x.charCodeAt(0); + if (BASE_MAP[xc] !== 255) { + throw new TypeError(x + " is ambiguous"); + } + BASE_MAP[xc] = i; + } + var BASE2 = ALPHABET.length; + var LEADER = ALPHABET.charAt(0); + var FACTOR = Math.log(BASE2) / Math.log(256); + var iFACTOR = Math.log(256) / Math.log(BASE2); + function encode(source) { + if (source instanceof Uint8Array) { + } else if (ArrayBuffer.isView(source)) { + source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength); + } else if (Array.isArray(source)) { + source = Uint8Array.from(source); + } + if (!(source instanceof Uint8Array)) { + throw new TypeError("Expected Uint8Array"); + } + if (source.length === 0) { + return ""; + } + var zeroes = 0; + var length = 0; + var pbegin = 0; + var pend = source.length; + while (pbegin !== pend && source[pbegin] === 0) { + pbegin++; + zeroes++; + } + var size = (pend - pbegin) * iFACTOR + 1 >>> 0; + var b58 = new Uint8Array(size); + while (pbegin !== pend) { + var carry = source[pbegin]; + var i2 = 0; + for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) { + carry += 256 * b58[it1] >>> 0; + b58[it1] = carry % BASE2 >>> 0; + carry = carry / BASE2 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + pbegin++; + } + var it2 = size - length; + while (it2 !== size && b58[it2] === 0) { + it2++; + } + var str = LEADER.repeat(zeroes); + for (; it2 < size; ++it2) { + str += ALPHABET.charAt(b58[it2]); + } + return str; + } + function decodeUnsafe(source) { + if (typeof source !== "string") { + throw new TypeError("Expected String"); + } + if (source.length === 0) { + return new Uint8Array(); + } + var psz = 0; + var zeroes = 0; + var length = 0; + while (source[psz] === LEADER) { + zeroes++; + psz++; + } + var size = (source.length - psz) * FACTOR + 1 >>> 0; + var b256 = new Uint8Array(size); + while (source[psz]) { + var charCode = source.charCodeAt(psz); + if (charCode > 255) { + return; + } + var carry = BASE_MAP[charCode]; + if (carry === 255) { + return; + } + var i2 = 0; + for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) { + carry += BASE2 * b256[it3] >>> 0; + b256[it3] = carry % 256 >>> 0; + carry = carry / 256 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + psz++; + } + var it4 = size - length; + while (it4 !== size && b256[it4] === 0) { + it4++; + } + var vch = new Uint8Array(zeroes + (size - it4)); + var j2 = zeroes; + while (it4 !== size) { + vch[j2++] = b256[it4++]; + } + return vch; + } + function decode(string) { + var buffer = decodeUnsafe(string); + if (buffer) { + return buffer; + } + throw new Error("Non-base" + BASE2 + " character"); + } + return { + encode, + decodeUnsafe, + decode + }; + } + module2.exports = base; + } +}); + +// node_modules/bs58/index.js +var require_bs583 = __commonJS({ + "node_modules/bs58/index.js"(exports2, module2) { + var basex = require_src4(); + var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; + module2.exports = basex(ALPHABET); + } +}); + +// node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/gpa/util.js +var require_util8 = __commonJS({ + "node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/gpa/util.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.encodeFixedBeet = void 0; + var bs58_1 = __importDefault2(require_bs583()); + function encodeFixedBeet(beet71, val) { + const buf = Buffer.alloc(beet71.byteSize); + beet71.write(buf, 0, val); + return bs58_1.default.encode(buf); + } + exports2.encodeFixedBeet = encodeFixedBeet; + } +}); + +// node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/gpa/index.js +var require_gpa = __commonJS({ + "node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/gpa/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GpaBuilder = void 0; + var beet_1 = require_beet(); + var assert_1 = require("assert"); + var utils_1 = require_utils7(); + var util_1 = require_util8(); + var GpaBuilder9 = class _GpaBuilder { + constructor(programId, beets, accountSize) { + this.programId = programId; + this.beets = beets; + this.accountSize = accountSize; + this.config = {}; + } + _addFilter(filter) { + if (this.config.filters == null) { + this.config.filters = []; + } + this.config.filters.push(filter); + return this; + } + _addInnerFilter(key, innerKey, val) { + (0, utils_1.logTrace)(`gpa.addInnerFilter: ${key}.${innerKey}`); + const outerBeetInfo = this.beets.get(key); + (0, assert_1.strict)(outerBeetInfo != null, "Outer filter key needs to be an existing field name"); + const beetInfo = outerBeetInfo.beet; + let offset = outerBeetInfo.offset; + const outerBeet = (0, beet_1.isFixedSizeBeet)(beetInfo) ? beetInfo : beetInfo.toFixedFromValue(val); + let beet71; + for (const [k, v] of outerBeet.fields) { + if (k === innerKey) { + beet71 = v; + break; + } + offset += v.byteSize; + } + (0, assert_1.strict)(beet71 != null, `${innerKey} is not a field of the ${key} struct`); + const bytes7 = (0, util_1.encodeFixedBeet)(beet71, val); + this._addFilter({ memcmp: { offset, bytes: bytes7 } }); + return this; + } + /** + * Adds a _memcmp_ filter for a field inside a field which is a struct value. + * The provided keys need to be separated by a `.` and only one level of + * nesting is supported at this point. + * + * The filter is applied to the inner value. + * + * ## Example + * + * ### Given: + * + * ```typescript + * type Inner = { + * a: number + * } + * type Outer = { + * idx: number + * inner: Inner + * } + * ``` + * ### Apply a filter on `a` of the `Inner` type: + * + * ```typescript + * gpaBuilder.addInnerFilter('inner.a', 2) + * ``` + * + * @param keys - the names of the fields by which to filter, i.e. `'outer.inner'` + * @param val - the field value that the filter should match + */ + addInnerFilter(keys, val) { + const parts = keys.split("."); + assert_1.strict.equal(parts.length, 2, `inner filters can go only one level deep, i.e. 'outer.inner' is ok, but 'outer.inner.deep' is not`); + const [ka, kb] = parts; + return this._addInnerFilter(ka, kb, val); + } + /** + * Adds a _memcmp_ filter for the provided {@link key} of the struct. + * + * @param key - the name of the field by which to filter + * @param val - the field value that the filter should match + */ + addFilter(key, val) { + const beetInfo = this.beets.get(key); + (0, assert_1.strict)(beetInfo != null, "Filter key needs to be an existing field name"); + const beet71 = (0, beet_1.isFixedSizeBeet)(beetInfo.beet) ? beetInfo.beet : beetInfo.beet.toFixedFromValue(val); + const bytes7 = (0, util_1.encodeFixedBeet)(beet71, val); + this._addFilter({ memcmp: { offset: beetInfo.offset, bytes: bytes7 } }); + return this; + } + /** + * Adds a `dataSize` filter which will match on account's sizes. + * You have to provide that {@link size} for accounts that don't have a fixed size. + * For _fixed_ size accounts that size is determined for you. + * + * @param size - the account size to match for + */ + dataSize(size) { + size = size !== null && size !== void 0 ? size : this.accountSize; + (0, assert_1.strict)(size != null, "for accounts of dynamic size the dataSize arg needs to be provided"); + return this._addFilter({ dataSize: size }); + } + /** + * Attempts to find the accounts matching the configured filters. + * + * @param connection used to query the program accounts on the cluster + */ + run(connection) { + return connection.getProgramAccounts(this.programId, this.config); + } + /** + * Creates a GPA builder that supports adding up to four filters for + * fixed size fields. + * + * Once a non-fixed field is encountered, the remaining fields following it + * will not be included as a filter option since their position in the + * bytes array will change depending on the content of the non-fixed field. + * + * @param programId - the id of the program that owns the accounts we are querying + * @param beetFields - the beet fields that make up the structure of the account data + */ + static fromBeetFields(programId, beetFields) { + const map = /* @__PURE__ */ new Map(); + let offset = 0; + let encounteredNonFixed = false; + for (const [k, v] of beetFields) { + map.set(k, { beet: v, offset }); + if (!(0, beet_1.isFixedSizeBeet)(v)) { + encounteredNonFixed = true; + break; + } + offset += v.byteSize; + } + const accountSize = encounteredNonFixed ? void 0 : offset; + return new _GpaBuilder(programId, map, accountSize); + } + /** + * Convenience wrapper around {@link GpaBuilder.fromBeetFields} that allows + * providing a struct which contains the beet fields. + * + * @param programId - the id of the program that owns the accounts we are querying + * @param struct - containing the beet `fields` specifying the layout of the account + */ + static fromStruct(programId, struct2) { + return _GpaBuilder.fromBeetFields(programId, struct2.fields); + } + }; + exports2.GpaBuilder = GpaBuilder9; + } +}); + +// node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/beet-solana.js +var require_beet_solana = __commonJS({ + "node_modules/@metaplex-foundation/beet-solana/dist/cjs/src/beet-solana.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.supportedTypeMap = void 0; + var keys_1 = require_keys(); + __exportStar2(require_keys(), exports2); + __exportStar2(require_gpa(), exports2); + exports2.supportedTypeMap = keys_1.keysTypeMap; + } +}); + +// node_modules/@metaplex-foundation/cusper/dist/src/parse-error.js +var require_parse_error = __commonJS({ + "node_modules/@metaplex-foundation/cusper/dist/src/parse-error.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.errorCodeFromLogs = void 0; + var errorLineRx = /Custom program error: (0x[a-f0-9]+)/i; + function errorCodeFromLogs(logs) { + for (const line of logs) { + const match = line.match(errorLineRx); + if (match == null) + continue; + const hexCode = match[1]; + try { + return parseInt(hexCode); + } catch (_) { + } + } + return null; + } + exports2.errorCodeFromLogs = errorCodeFromLogs; + } +}); + +// node_modules/@metaplex-foundation/cusper/dist/src/errors/anchor.js +var require_anchor = __commonJS({ + "node_modules/@metaplex-foundation/cusper/dist/src/errors/anchor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LangErrorMessage = exports2.LangErrorCode = void 0; + exports2.LangErrorCode = { + // Instructions. + InstructionMissing: 100, + InstructionFallbackNotFound: 101, + InstructionDidNotDeserialize: 102, + InstructionDidNotSerialize: 103, + // IDL instructions. + IdlInstructionStub: 1e3, + IdlInstructionInvalidProgram: 1001, + // Constraints. + ConstraintMut: 2e3, + ConstraintHasOne: 2001, + ConstraintSigner: 2002, + ConstraintRaw: 2003, + ConstraintOwner: 2004, + ConstraintRentExempt: 2005, + ConstraintSeeds: 2006, + ConstraintExecutable: 2007, + ConstraintState: 2008, + ConstraintAssociated: 2009, + ConstraintAssociatedInit: 2010, + ConstraintClose: 2011, + ConstraintAddress: 2012, + ConstraintZero: 2013, + ConstraintTokenMint: 2014, + ConstraintTokenOwner: 2015, + ConstraintMintMintAuthority: 2016, + ConstraintMintFreezeAuthority: 2017, + ConstraintMintDecimals: 2018, + ConstraintSpace: 2019, + // Accounts. + AccountDiscriminatorAlreadySet: 3e3, + AccountDiscriminatorNotFound: 3001, + AccountDiscriminatorMismatch: 3002, + AccountDidNotDeserialize: 3003, + AccountDidNotSerialize: 3004, + AccountNotEnoughKeys: 3005, + AccountNotMutable: 3006, + AccountOwnedByWrongProgram: 3007, + InvalidProgramId: 3008, + InvalidProgramExecutable: 3009, + AccountNotSigner: 3010, + AccountNotSystemOwned: 3011, + AccountNotInitialized: 3012, + AccountNotProgramData: 3013, + // State. + StateInvalidAddress: 4e3, + // Used for APIs that shouldn't be used anymore. + Deprecated: 5e3 + }; + exports2.LangErrorMessage = /* @__PURE__ */ new Map([ + // Instructions. + [ + exports2.LangErrorCode.InstructionMissing, + "8 byte instruction identifier not provided" + ], + [ + exports2.LangErrorCode.InstructionFallbackNotFound, + "Fallback functions are not supported" + ], + [ + exports2.LangErrorCode.InstructionDidNotDeserialize, + "The program could not deserialize the given instruction" + ], + [ + exports2.LangErrorCode.InstructionDidNotSerialize, + "The program could not serialize the given instruction" + ], + // Idl instructions. + [ + exports2.LangErrorCode.IdlInstructionStub, + "The program was compiled without idl instructions" + ], + [ + exports2.LangErrorCode.IdlInstructionInvalidProgram, + "The transaction was given an invalid program for the IDL instruction" + ], + // Constraints. + [exports2.LangErrorCode.ConstraintMut, "A mut constraint was violated"], + [exports2.LangErrorCode.ConstraintHasOne, "A has_one constraint was violated"], + [exports2.LangErrorCode.ConstraintSigner, "A signer constraint was violated"], + [exports2.LangErrorCode.ConstraintRaw, "A raw constraint was violated"], + [exports2.LangErrorCode.ConstraintOwner, "An owner constraint was violated"], + [exports2.LangErrorCode.ConstraintRentExempt, "A rent exempt constraint was violated"], + [exports2.LangErrorCode.ConstraintSeeds, "A seeds constraint was violated"], + [exports2.LangErrorCode.ConstraintExecutable, "An executable constraint was violated"], + [exports2.LangErrorCode.ConstraintState, "A state constraint was violated"], + [exports2.LangErrorCode.ConstraintAssociated, "An associated constraint was violated"], + [ + exports2.LangErrorCode.ConstraintAssociatedInit, + "An associated init constraint was violated" + ], + [exports2.LangErrorCode.ConstraintClose, "A close constraint was violated"], + [exports2.LangErrorCode.ConstraintAddress, "An address constraint was violated"], + [exports2.LangErrorCode.ConstraintZero, "Expected zero account discriminant"], + [exports2.LangErrorCode.ConstraintTokenMint, "A token mint constraint was violated"], + [exports2.LangErrorCode.ConstraintTokenOwner, "A token owner constraint was violated"], + [ + exports2.LangErrorCode.ConstraintMintMintAuthority, + "A mint mint authority constraint was violated" + ], + [ + exports2.LangErrorCode.ConstraintMintFreezeAuthority, + "A mint freeze authority constraint was violated" + ], + [ + exports2.LangErrorCode.ConstraintMintDecimals, + "A mint decimals constraint was violated" + ], + [exports2.LangErrorCode.ConstraintSpace, "A space constraint was violated"], + // Accounts. + [ + exports2.LangErrorCode.AccountDiscriminatorAlreadySet, + "The account discriminator was already set on this account" + ], + [ + exports2.LangErrorCode.AccountDiscriminatorNotFound, + "No 8 byte discriminator was found on the account" + ], + [ + exports2.LangErrorCode.AccountDiscriminatorMismatch, + "8 byte discriminator did not match what was expected" + ], + [exports2.LangErrorCode.AccountDidNotDeserialize, "Failed to deserialize the account"], + [exports2.LangErrorCode.AccountDidNotSerialize, "Failed to serialize the account"], + [ + exports2.LangErrorCode.AccountNotEnoughKeys, + "Not enough account keys given to the instruction" + ], + [exports2.LangErrorCode.AccountNotMutable, "The given account is not mutable"], + [ + exports2.LangErrorCode.AccountOwnedByWrongProgram, + "The given account is owned by a different program than expected" + ], + [exports2.LangErrorCode.InvalidProgramId, "Program ID was not as expected"], + [exports2.LangErrorCode.InvalidProgramExecutable, "Program account is not executable"], + [exports2.LangErrorCode.AccountNotSigner, "The given account did not sign"], + [ + exports2.LangErrorCode.AccountNotSystemOwned, + "The given account is not owned by the system program" + ], + [ + exports2.LangErrorCode.AccountNotInitialized, + "The program expected this account to be already initialized" + ], + [ + exports2.LangErrorCode.AccountNotProgramData, + "The given account is not a program data account" + ], + // State. + [ + exports2.LangErrorCode.StateInvalidAddress, + "The given state account does not have the correct address" + ], + // Misc. + [ + exports2.LangErrorCode.Deprecated, + "The API being used is deprecated and should no longer be used" + ] + ]); + } +}); + +// node_modules/@metaplex-foundation/cusper/dist/src/errors/token-lending.js +var require_token_lending = __commonJS({ + "node_modules/@metaplex-foundation/cusper/dist/src/errors/token-lending.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.tokenLendingErrors = void 0; + exports2.tokenLendingErrors = /* @__PURE__ */ new Map([ + [ + 0, + { + code: 0, + message: 'Failed to unpack instruction data"', + name: "InstructionUnpackError" + } + ], + [ + 1, + { + code: 1, + message: 'Account is already initialized"', + name: "AlreadyInitialized" + } + ], + [ + 2, + { + code: 2, + message: 'Lamport balance below rent-exempt threshold"', + name: "NotRentExempt" + } + ], + [ + 3, + { + code: 3, + message: 'Market authority is invalid"', + name: "InvalidMarketAuthority" + } + ], + [ + 4, + { + code: 4, + message: 'Market owner is invalid"', + name: "InvalidMarketOwner" + } + ], + [ + 5, + { + code: 5, + message: 'Input account owner is not the program address"', + name: "InvalidAccountOwner" + } + ], + [ + 6, + { + code: 6, + message: 'Input token account is not owned by the correct token program id"', + name: "InvalidTokenOwner" + } + ], + [ + 7, + { + code: 7, + message: 'Input token account is not valid"', + name: "InvalidTokenAccount" + } + ], + [ + 8, + { + code: 8, + message: 'Input token mint account is not valid"', + name: "InvalidTokenMint" + } + ], + [ + 9, + { + code: 9, + message: 'Input token program account is not valid"', + name: "InvalidTokenProgram" + } + ], + [ + 10, + { + code: 10, + message: 'Input amount is invalid"', + name: "InvalidAmount" + } + ], + [ + 11, + { + code: 11, + message: 'Input config value is invalid"', + name: "InvalidConfig" + } + ], + [ + 12, + { + code: 12, + message: 'Input account must be a signer"', + name: "InvalidSigner" + } + ], + [ + 13, + { + code: 13, + message: 'Invalid account input"', + name: "InvalidAccountInput" + } + ], + [ + 14, + { + code: 14, + message: 'Math operation overflow"', + name: "MathOverflow" + } + ], + [ + 15, + { + code: 15, + message: 'Token initialize mint failed"', + name: "TokenInitializeMintFailed" + } + ], + [ + 16, + { + code: 16, + message: 'Token initialize account failed"', + name: "TokenInitializeAccountFailed" + } + ], + [ + 17, + { + code: 17, + message: 'Token transfer failed"', + name: "TokenTransferFailed" + } + ], + [ + 18, + { + code: 18, + message: 'Token mint to failed"', + name: "TokenMintToFailed" + } + ], + [ + 19, + { + code: 19, + message: 'Token burn failed"', + name: "TokenBurnFailed" + } + ], + [ + 20, + { + code: 20, + message: 'Insufficient liquidity available"', + name: "InsufficientLiquidity" + } + ], + [ + 21, + { + code: 21, + message: 'Input reserve has collateral disabled"', + name: "ReserveCollateralDisabled" + } + ], + [ + 22, + { + code: 22, + message: 'Reserve state needs to be refreshed"', + name: "ReserveStale" + } + ], + [ + 23, + { + code: 23, + message: 'Withdraw amount too small"', + name: "WithdrawTooSmall" + } + ], + [ + 24, + { + code: 24, + message: 'Withdraw amount too large"', + name: "WithdrawTooLarge" + } + ], + [ + 25, + { + code: 25, + message: 'Borrow amount too small to receive liquidity after fees"', + name: "BorrowTooSmall" + } + ], + [ + 26, + { + code: 26, + message: 'Borrow amount too large for deposited collateral"', + name: "BorrowTooLarge" + } + ], + [ + 27, + { + code: 27, + message: 'Repay amount too small to transfer liquidity"', + name: "RepayTooSmall" + } + ], + [ + 28, + { + code: 28, + message: 'Liquidation amount too small to receive collateral"', + name: "LiquidationTooSmall" + } + ], + [ + 29, + { + code: 29, + message: 'Cannot liquidate healthy obligations"', + name: "ObligationHealthy" + } + ], + [ + 30, + { + code: 30, + message: 'Obligation state needs to be refreshed"', + name: "ObligationStale" + } + ], + [ + 31, + { + code: 31, + message: 'Obligation reserve limit exceeded"', + name: "ObligationReserveLimit" + } + ], + [ + 32, + { + code: 32, + message: 'Obligation owner is invalid"', + name: "InvalidObligationOwner" + } + ], + [ + 33, + { + code: 33, + message: 'Obligation deposits are empty"', + name: "ObligationDepositsEmpty" + } + ], + [ + 34, + { + code: 34, + message: 'Obligation borrows are empty"', + name: "ObligationBorrowsEmpty" + } + ], + [ + 35, + { + code: 35, + message: 'Obligation deposits have zero value"', + name: "ObligationDepositsZero" + } + ], + [ + 36, + { + code: 36, + message: 'Obligation borrows have zero value"', + name: "ObligationBorrowsZero" + } + ], + [ + 37, + { + code: 37, + message: 'Invalid obligation collateral"', + name: "InvalidObligationCollateral" + } + ], + [ + 38, + { + code: 38, + message: 'Invalid obligation liquidity"', + name: "InvalidObligationLiquidity" + } + ], + [ + 39, + { + code: 39, + message: 'Obligation collateral is empty"', + name: "ObligationCollateralEmpty" + } + ], + [ + 40, + { + code: 40, + message: 'Obligation liquidity is empty"', + name: "ObligationLiquidityEmpty" + } + ], + [ + 41, + { + code: 41, + message: 'Interest rate is negative"', + name: "NegativeInterestRate" + } + ], + [ + 42, + { + code: 42, + message: 'Input oracle config is invalid"', + name: "InvalidOracleConfig" + } + ], + [ + 43, + { + code: 43, + message: 'Input flash loan receiver program account is not valid"', + name: "InvalidFlashLoanReceiverProgram" + } + ], + [ + 44, + { + code: 44, + message: 'Not enough liquidity after flash loan"', + name: "NotEnoughLiquidityAfterFlashLoan" + } + ] + ]); + } +}); + +// node_modules/@metaplex-foundation/cusper/dist/src/resolve-error.js +var require_resolve_error = __commonJS({ + "node_modules/@metaplex-foundation/cusper/dist/src/resolve-error.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TokenLendingError = exports2.AnchorError = exports2.CustomProgramError = exports2.CusperUnknownError = exports2.initCusper = exports2.ErrorResolver = void 0; + var parse_error_1 = require_parse_error(); + var anchor = __importStar2(require_anchor()); + var token_lending_1 = require_token_lending(); + var ErrorResolver = class { + constructor(resolveErrorFromCode) { + this.resolveErrorFromCode = resolveErrorFromCode; + } + /** + * Attempts to resolve the provided error code to a known or custom error. + * + * @param captureBoundaryFn is used to exclude everything after (including) + * that function from the stack trace if possible + * @param fallbackToUnknown unless `false` a {@link CusperUnknownError} is + * returned when resolution fails + */ + errorFromCode(code, captureBoundaryFn, fallbackToUnknown = true) { + let err = this.resolveErrorFromCode != null ? this.resolveErrorFromCode(code) : null; + if (err != null) { + return this.passPreparedError(err, captureBoundaryFn !== null && captureBoundaryFn !== void 0 ? captureBoundaryFn : this.errorFromCode); + } + err = AnchorError.fromCode(code); + if (err != null) { + return this.passPreparedError(err, captureBoundaryFn !== null && captureBoundaryFn !== void 0 ? captureBoundaryFn : this.errorFromCode); + } + err = TokenLendingError.fromCode(code); + if (err != null) { + return this.passPreparedError(err, captureBoundaryFn !== null && captureBoundaryFn !== void 0 ? captureBoundaryFn : this.errorFromCode); + } + if (fallbackToUnknown) { + err = new CusperUnknownError(code, "CusperUnknownError", "cusper does not know this error"); + return this.passPreparedError(err, captureBoundaryFn !== null && captureBoundaryFn !== void 0 ? captureBoundaryFn : this.errorFromCode); + } + } + /** + * Attempts to parse the error code from the provied logs and then resolve it + * to a known or custom error. + * @param fallbackToUnknown unless `false` a {@link CusperUnknownError} is + * returned when resolution fails + */ + errorFromProgramLogs(logs, fallbackToUnknown = true) { + const code = (0, parse_error_1.errorCodeFromLogs)(logs); + return code == null ? null : this.errorFromCode(code, this.errorFromProgramLogs, fallbackToUnknown); + } + /** + * Throws an error that it attempts to resolve from the logs of the provided error. + * If no error can be resolved it throws a {@link CusperUnknownError} instead + */ + throwError(error) { + const err = error.logs != null && this.errorFromProgramLogs(error.logs, true) || new CusperUnknownError(-1, "Error created without logs and thus without error code"); + throw this.passPreparedError(err, this.throwError); + } + passPreparedError(err, captureBoundaryFn) { + if (err == null) + return null; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(err, captureBoundaryFn); + } + return err; + } + }; + exports2.ErrorResolver = ErrorResolver; + function initCusper2(resolveErrorFromCode) { + return new ErrorResolver(resolveErrorFromCode); + } + exports2.initCusper = initCusper2; + var CusperUnknownError = class extends Error { + constructor(code, ...params) { + super(...params); + this.code = code; + this.name = "CusperUnknownError"; + } + }; + exports2.CusperUnknownError = CusperUnknownError; + var CustomProgramError = class extends Error { + /** + * Creates an instance of a {@link CustomProgramError}. + * + * @param code the error code for which this error was resolved + * @param name the name of the error + */ + constructor(code, name, ...params) { + super(...params); + this.code = code; + this.name = `CustomProgramError#${name}`; + } + }; + exports2.CustomProgramError = CustomProgramError; + var AnchorError = class _AnchorError extends Error { + constructor(code, name, ...params) { + super(...params); + this.code = code; + this.name = `AnchorError#${name}`; + } + static fromCode(code) { + const errorMeta = _AnchorError.errorMap.get(code); + return errorMeta != null ? new _AnchorError(errorMeta.code, errorMeta.name, errorMeta.message) : null; + } + toString() { + return `${this.name}: ${this.message}`; + } + }; + exports2.AnchorError = AnchorError; + AnchorError.errorMap = Object.entries(anchor.LangErrorCode).reduce((acc, [key, code]) => { + acc.set(code, { + code, + name: key, + message: anchor.LangErrorMessage.get(code) + }); + return acc; + }, /* @__PURE__ */ new Map()); + var TokenLendingError = class _TokenLendingError extends Error { + constructor(code, name, ...params) { + super(...params); + this.code = code; + this.name = `TokenLendingError#${name}`; + } + static fromCode(code) { + const errorMeta = _TokenLendingError.errorMap.get(code); + return errorMeta != null ? new _TokenLendingError(errorMeta.code, errorMeta.name, errorMeta.message) : null; + } + toString() { + return `${this.name}: ${this.message}`; + } + }; + exports2.TokenLendingError = TokenLendingError; + TokenLendingError.errorMap = token_lending_1.tokenLendingErrors; + } +}); + +// node_modules/@metaplex-foundation/cusper/dist/src/types.js +var require_types2 = __commonJS({ + "node_modules/@metaplex-foundation/cusper/dist/src/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@metaplex-foundation/cusper/dist/src/cusper.js +var require_cusper = __commonJS({ + "node_modules/@metaplex-foundation/cusper/dist/src/cusper.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_resolve_error(), exports2); + __exportStar2(require_types2(), exports2); + } +}); + +// node_modules/invariant/invariant.js +var require_invariant = __commonJS({ + "node_modules/invariant/invariant.js"(exports2, module2) { + "use strict"; + var NODE_ENV = process.env.NODE_ENV; + var invariant4 = function(condition, format, a, b, c, d, e, f) { + if (NODE_ENV !== "production") { + if (format === void 0) { + throw new Error("invariant requires an error message argument"); + } + } + if (!condition) { + var error; + if (format === void 0) { + error = new Error( + "Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings." + ); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error( + format.replace(/%s/g, function() { + return args[argIndex++]; + }) + ); + error.name = "Invariant Violation"; + } + error.framesToPop = 1; + throw error; + } + }; + module2.exports = invariant4; + } +}); + +// node_modules/file-uri-to-path/index.js +var require_file_uri_to_path = __commonJS({ + "node_modules/file-uri-to-path/index.js"(exports2, module2) { + var sep = require("path").sep || "/"; + module2.exports = fileUriToPath; + function fileUriToPath(uri) { + if ("string" != typeof uri || uri.length <= 7 || "file://" != uri.substring(0, 7)) { + throw new TypeError("must pass in a file:// URI to convert to a file path"); + } + var rest = decodeURI(uri.substring(7)); + var firstSlash = rest.indexOf("/"); + var host = rest.substring(0, firstSlash); + var path = rest.substring(firstSlash + 1); + if ("localhost" == host) host = ""; + if (host) { + host = sep + sep + host; + } + path = path.replace(/^(.+)\|/, "$1:"); + if (sep == "\\") { + path = path.replace(/\//g, "\\"); + } + if (/^.+\:/.test(path)) { + } else { + path = sep + path; + } + return host + path; + } + } +}); + +// node_modules/bindings/bindings.js +var require_bindings = __commonJS({ + "node_modules/bindings/bindings.js"(exports2, module2) { + var fs = require("fs"); + var path = require("path"); + var fileURLToPath = require_file_uri_to_path(); + var join = path.join; + var dirname = path.dirname; + var exists = fs.accessSync && function(path2) { + try { + fs.accessSync(path2); + } catch (e) { + return false; + } + return true; + } || fs.existsSync || path.existsSync; + var defaults = { + arrow: process.env.NODE_BINDINGS_ARROW || " \u2192 ", + compiled: process.env.NODE_BINDINGS_COMPILED_DIR || "compiled", + platform: process.platform, + arch: process.arch, + nodePreGyp: "node-v" + process.versions.modules + "-" + process.platform + "-" + process.arch, + version: process.versions.node, + bindings: "bindings.node", + try: [ + // node-gyp's linked version in the "build" dir + ["module_root", "build", "bindings"], + // node-waf and gyp_addon (a.k.a node-gyp) + ["module_root", "build", "Debug", "bindings"], + ["module_root", "build", "Release", "bindings"], + // Debug files, for development (legacy behavior, remove for node v0.9) + ["module_root", "out", "Debug", "bindings"], + ["module_root", "Debug", "bindings"], + // Release files, but manually compiled (legacy behavior, remove for node v0.9) + ["module_root", "out", "Release", "bindings"], + ["module_root", "Release", "bindings"], + // Legacy from node-waf, node <= 0.4.x + ["module_root", "build", "default", "bindings"], + // Production "Release" buildtype binary (meh...) + ["module_root", "compiled", "version", "platform", "arch", "bindings"], + // node-qbs builds + ["module_root", "addon-build", "release", "install-root", "bindings"], + ["module_root", "addon-build", "debug", "install-root", "bindings"], + ["module_root", "addon-build", "default", "install-root", "bindings"], + // node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch} + ["module_root", "lib", "binding", "nodePreGyp", "bindings"] + ] + }; + function bindings(opts) { + if (typeof opts == "string") { + opts = { bindings: opts }; + } else if (!opts) { + opts = {}; + } + Object.keys(defaults).map(function(i2) { + if (!(i2 in opts)) opts[i2] = defaults[i2]; + }); + if (!opts.module_root) { + opts.module_root = exports2.getRoot(exports2.getFileName()); + } + if (path.extname(opts.bindings) != ".node") { + opts.bindings += ".node"; + } + var requireFunc = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require; + var tries = [], i = 0, l = opts.try.length, n, b, err; + for (; i < l; i++) { + n = join.apply( + null, + opts.try[i].map(function(p) { + return opts[p] || p; + }) + ); + tries.push(n); + try { + b = opts.path ? requireFunc.resolve(n) : requireFunc(n); + if (!opts.path) { + b.path = n; + } + return b; + } catch (e) { + if (e.code !== "MODULE_NOT_FOUND" && e.code !== "QUALIFIED_PATH_RESOLUTION_FAILED" && !/not find/i.test(e.message)) { + throw e; + } + } + } + err = new Error( + "Could not locate the bindings file. Tried:\n" + tries.map(function(a) { + return opts.arrow + a; + }).join("\n") + ); + err.tries = tries; + throw err; + } + module2.exports = exports2 = bindings; + exports2.getFileName = function getFileName(calling_file) { + var origPST = Error.prepareStackTrace, origSTL = Error.stackTraceLimit, dummy = {}, fileName; + Error.stackTraceLimit = 10; + Error.prepareStackTrace = function(e, st) { + for (var i = 0, l = st.length; i < l; i++) { + fileName = st[i].getFileName(); + if (fileName !== __filename) { + if (calling_file) { + if (fileName !== calling_file) { + return; + } + } else { + return; + } + } + } + }; + Error.captureStackTrace(dummy); + dummy.stack; + Error.prepareStackTrace = origPST; + Error.stackTraceLimit = origSTL; + var fileSchema = "file://"; + if (fileName.indexOf(fileSchema) === 0) { + fileName = fileURLToPath(fileName); + } + return fileName; + }; + exports2.getRoot = function getRoot(file) { + var dir = dirname(file), prev; + while (true) { + if (dir === ".") { + dir = process.cwd(); + } + if (exists(join(dir, "package.json")) || exists(join(dir, "node_modules"))) { + return dir; + } + if (prev === dir) { + throw new Error( + 'Could not find module root given file: "' + file + '". Do you have a `package.json` file? ' + ); + } + prev = dir; + dir = join(dir, ".."); + } + }; + } +}); + +// node_modules/bigint-buffer/dist/node.js +var require_node2 = __commonJS({ + "node_modules/bigint-buffer/dist/node.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var converter; + { + try { + converter = require_bindings()("bigint_buffer"); + } catch (e) { + console.warn("bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)"); + } + } + function toBigIntLE2(buf) { + if (converter === void 0) { + const reversed = Buffer.from(buf); + reversed.reverse(); + const hex = reversed.toString("hex"); + if (hex.length === 0) { + return BigInt(0); + } + return BigInt(`0x${hex}`); + } + return converter.toBigInt(buf, false); + } + exports2.toBigIntLE = toBigIntLE2; + function toBigIntBE2(buf) { + if (converter === void 0) { + const hex = buf.toString("hex"); + if (hex.length === 0) { + return BigInt(0); + } + return BigInt(`0x${hex}`); + } + return converter.toBigInt(buf, true); + } + exports2.toBigIntBE = toBigIntBE2; + function toBufferLE2(num, width) { + if (converter === void 0) { + const hex = num.toString(16); + const buffer = Buffer.from(hex.padStart(width * 2, "0").slice(0, width * 2), "hex"); + buffer.reverse(); + return buffer; + } + return converter.fromBigInt(num, Buffer.allocUnsafe(width), false); + } + exports2.toBufferLE = toBufferLE2; + function toBufferBE2(num, width) { + if (converter === void 0) { + const hex = num.toString(16); + return Buffer.from(hex.padStart(width * 2, "0").slice(0, width * 2), "hex"); + } + return converter.fromBigInt(num, Buffer.allocUnsafe(width), true); + } + exports2.toBufferBE = toBufferBE2; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/common.js +var require_common2 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/common.js"(exports2) { + "use strict"; + var _a; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isVersionedTransaction = exports2.chunks = exports2.isBrowser = void 0; + exports2.isBrowser = process.env.ANCHOR_BROWSER || typeof window !== "undefined" && !((_a = window.process) === null || _a === void 0 ? void 0 : _a.hasOwnProperty("type")); + function chunks(array11, size) { + return Array.apply(0, new Array(Math.ceil(array11.length / size))).map((_, index) => array11.slice(index * size, (index + 1) * size)); + } + exports2.chunks = chunks; + var isVersionedTransaction = (tx) => { + return "version" in tx; + }; + exports2.isVersionedTransaction = isVersionedTransaction; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.js +var require_nodewallet = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var buffer_1 = require("buffer"); + var web3_js_1 = require_index_cjs(); + var common_js_1 = require_common2(); + var NodeWallet = class _NodeWallet { + constructor(payer) { + this.payer = payer; + } + static local() { + const process2 = require("process"); + if (!process2.env.ANCHOR_WALLET || process2.env.ANCHOR_WALLET === "") { + throw new Error("expected environment variable `ANCHOR_WALLET` is not set."); + } + const payer = web3_js_1.Keypair.fromSecretKey(buffer_1.Buffer.from(JSON.parse(require("fs").readFileSync(process2.env.ANCHOR_WALLET, { + encoding: "utf-8" + })))); + return new _NodeWallet(payer); + } + async signTransaction(tx) { + if ((0, common_js_1.isVersionedTransaction)(tx)) { + tx.sign([this.payer]); + } else { + tx.partialSign(this.payer); + } + return tx; + } + async signAllTransactions(txs) { + return txs.map((t) => { + if ((0, common_js_1.isVersionedTransaction)(t)) { + t.sign([this.payer]); + } else { + t.partialSign(this.payer); + } + return t; + }); + } + get publicKey() { + return this.payer.publicKey; + } + }; + exports2.default = NodeWallet; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.js +var require_hex = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decode = exports2.encode = void 0; + var buffer_1 = require("buffer"); + function encode(data) { + return data.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), "0x"); + } + exports2.encode = encode; + function decode(data) { + if (data.indexOf("0x") === 0) { + data = data.substr(2); + } + if (data.length % 2 === 1) { + data = "0" + data; + } + let key = data.match(/.{2}/g); + if (key === null) { + return buffer_1.Buffer.from([]); + } + return buffer_1.Buffer.from(key.map((byte) => parseInt(byte, 16))); + } + exports2.decode = decode; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.js +var require_utf8 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.encode = exports2.decode = void 0; + var common_1 = require_common2(); + function decode(array11) { + const decoder = common_1.isBrowser ? new TextDecoder("utf-8") : new (require("util")).TextDecoder("utf-8"); + return decoder.decode(array11); + } + exports2.decode = decode; + function encode(input) { + const encoder = common_1.isBrowser ? new TextEncoder() : new (require("util")).TextEncoder("utf-8"); + return encoder.encode(input); + } + exports2.encode = encode; + } +}); + +// node_modules/@coral-xyz/anchor/node_modules/bs58/node_modules/base-x/src/index.js +var require_src5 = __commonJS({ + "node_modules/@coral-xyz/anchor/node_modules/bs58/node_modules/base-x/src/index.js"(exports2, module2) { + "use strict"; + var _Buffer = require_safe_buffer().Buffer; + function base(ALPHABET) { + if (ALPHABET.length >= 255) { + throw new TypeError("Alphabet too long"); + } + var BASE_MAP = new Uint8Array(256); + for (var j = 0; j < BASE_MAP.length; j++) { + BASE_MAP[j] = 255; + } + for (var i = 0; i < ALPHABET.length; i++) { + var x = ALPHABET.charAt(i); + var xc = x.charCodeAt(0); + if (BASE_MAP[xc] !== 255) { + throw new TypeError(x + " is ambiguous"); + } + BASE_MAP[xc] = i; + } + var BASE2 = ALPHABET.length; + var LEADER = ALPHABET.charAt(0); + var FACTOR = Math.log(BASE2) / Math.log(256); + var iFACTOR = Math.log(256) / Math.log(BASE2); + function encode(source) { + if (Array.isArray(source) || source instanceof Uint8Array) { + source = _Buffer.from(source); + } + if (!_Buffer.isBuffer(source)) { + throw new TypeError("Expected Buffer"); + } + if (source.length === 0) { + return ""; + } + var zeroes = 0; + var length = 0; + var pbegin = 0; + var pend = source.length; + while (pbegin !== pend && source[pbegin] === 0) { + pbegin++; + zeroes++; + } + var size = (pend - pbegin) * iFACTOR + 1 >>> 0; + var b58 = new Uint8Array(size); + while (pbegin !== pend) { + var carry = source[pbegin]; + var i2 = 0; + for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) { + carry += 256 * b58[it1] >>> 0; + b58[it1] = carry % BASE2 >>> 0; + carry = carry / BASE2 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + pbegin++; + } + var it2 = size - length; + while (it2 !== size && b58[it2] === 0) { + it2++; + } + var str = LEADER.repeat(zeroes); + for (; it2 < size; ++it2) { + str += ALPHABET.charAt(b58[it2]); + } + return str; + } + function decodeUnsafe(source) { + if (typeof source !== "string") { + throw new TypeError("Expected String"); + } + if (source.length === 0) { + return _Buffer.alloc(0); + } + var psz = 0; + var zeroes = 0; + var length = 0; + while (source[psz] === LEADER) { + zeroes++; + psz++; + } + var size = (source.length - psz) * FACTOR + 1 >>> 0; + var b256 = new Uint8Array(size); + while (psz < source.length) { + var charCode = source.charCodeAt(psz); + if (charCode > 255) { + return; + } + var carry = BASE_MAP[charCode]; + if (carry === 255) { + return; + } + var i2 = 0; + for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) { + carry += BASE2 * b256[it3] >>> 0; + b256[it3] = carry % 256 >>> 0; + carry = carry / 256 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + psz++; + } + var it4 = size - length; + while (it4 !== size && b256[it4] === 0) { + it4++; + } + var vch = _Buffer.allocUnsafe(zeroes + (size - it4)); + vch.fill(0, 0, zeroes); + var j2 = zeroes; + while (it4 !== size) { + vch[j2++] = b256[it4++]; + } + return vch; + } + function decode(string) { + var buffer = decodeUnsafe(string); + if (buffer) { + return buffer; + } + throw new Error("Non-base" + BASE2 + " character"); + } + return { + encode, + decodeUnsafe, + decode + }; + } + module2.exports = base; + } +}); + +// node_modules/@coral-xyz/anchor/node_modules/bs58/index.js +var require_bs584 = __commonJS({ + "node_modules/@coral-xyz/anchor/node_modules/bs58/index.js"(exports2, module2) { + var basex = require_src5(); + var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; + module2.exports = basex(ALPHABET); + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.js +var require_bs585 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decode = exports2.encode = void 0; + var bs58_1 = __importDefault2(require_bs584()); + function encode(data) { + return bs58_1.default.encode(data); + } + exports2.encode = encode; + function decode(data) { + return bs58_1.default.decode(data); + } + exports2.decode = decode; + } +}); + +// node_modules/base64-js/index.js +var require_base64_js = __commonJS({ + "node_modules/base64-js/index.js"(exports2) { + "use strict"; + exports2.byteLength = byteLength; + exports2.toByteArray = toByteArray; + exports2.fromByteArray = fromByteArray; + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + var i; + var len; + revLookup["-".charCodeAt(0)] = 62; + revLookup["_".charCodeAt(0)] = 63; + function getLens(b64) { + var len2 = b64.length; + if (len2 % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4"); + } + var validLen = b64.indexOf("="); + if (validLen === -1) validLen = len2; + var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4; + return [validLen, placeHoldersLen]; + } + function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function _byteLength(b64, validLen, placeHoldersLen) { + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + var curByte = 0; + var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen; + var i2; + for (i2 = 0; i2 < len2; i2 += 4) { + tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)]; + arr[curByte++] = tmp >> 16 & 255; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 2) { + tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 1) { + tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + return arr; + } + function tripletToBase64(num) { + return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63]; + } + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i2 = start; i2 < end; i2 += 3) { + tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255); + output.push(tripletToBase64(tmp)); + } + return output.join(""); + } + function fromByteArray(uint8) { + var tmp; + var len2 = uint8.length; + var extraBytes = len2 % 3; + var parts = []; + var maxChunkLength = 16383; + for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) { + parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength)); + } + if (extraBytes === 1) { + tmp = uint8[len2 - 1]; + parts.push( + lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==" + ); + } else if (extraBytes === 2) { + tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1]; + parts.push( + lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=" + ); + } + return parts.join(""); + } + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.js +var require_base64 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decode = exports2.encode = void 0; + var buffer_1 = require("buffer"); + var base64 = __importStar2(require_base64_js()); + function encode(data) { + return base64.fromByteArray(data); + } + exports2.encode = encode; + function decode(data) { + return buffer_1.Buffer.from(base64.toByteArray(data)); + } + exports2.decode = decode; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.js +var require_bytes = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.base64 = exports2.bs58 = exports2.utf8 = exports2.hex = void 0; + exports2.hex = __importStar2(require_hex()); + exports2.utf8 = __importStar2(require_utf8()); + exports2.bs58 = __importStar2(require_bs585()); + exports2.base64 = __importStar2(require_base64()); + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/common.js +var require_common3 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.translateAddress = exports2.validateAccounts = exports2.toInstruction = exports2.parseIdlErrors = void 0; + var web3_js_1 = require_index_cjs(); + function parseIdlErrors(idl) { + const errors = /* @__PURE__ */ new Map(); + if (idl.errors) { + idl.errors.forEach((e) => { + var _a; + let msg = (_a = e.msg) !== null && _a !== void 0 ? _a : e.name; + errors.set(e.code, msg); + }); + } + return errors; + } + exports2.parseIdlErrors = parseIdlErrors; + function toInstruction(idlIx, ...args) { + if (idlIx.args.length != args.length) { + throw new Error("Invalid argument length"); + } + const ix = {}; + let idx = 0; + idlIx.args.forEach((ixArg) => { + ix[ixArg.name] = args[idx]; + idx += 1; + }); + return ix; + } + exports2.toInstruction = toInstruction; + function validateAccounts(ixAccounts, accounts = {}) { + ixAccounts.forEach((acc) => { + if ("accounts" in acc) { + validateAccounts(acc.accounts, accounts[acc.name]); + } else { + if (accounts[acc.name] === void 0) { + throw new Error(`Invalid arguments: ${acc.name} not provided.`); + } + } + }); + } + exports2.validateAccounts = validateAccounts; + function translateAddress(address) { + return address instanceof web3_js_1.PublicKey ? address : new web3_js_1.PublicKey(address); + } + exports2.translateAddress = translateAddress; + } +}); + +// node_modules/@coral-xyz/anchor/node_modules/superstruct/lib/index.cjs +var require_lib5 = __commonJS({ + "node_modules/@coral-xyz/anchor/node_modules/superstruct/lib/index.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var StructError = class extends TypeError { + constructor(failure, failures) { + let cached; + const { + message, + ...rest + } = failure; + const { + path + } = failure; + const msg = path.length === 0 ? message : "At path: " + path.join(".") + " -- " + message; + super(msg); + this.value = void 0; + this.key = void 0; + this.type = void 0; + this.refinement = void 0; + this.path = void 0; + this.branch = void 0; + this.failures = void 0; + Object.assign(this, rest); + this.name = this.constructor.name; + this.failures = () => { + var _cached; + return (_cached = cached) != null ? _cached : cached = [failure, ...failures()]; + }; + } + }; + function isIterable(x) { + return isObject(x) && typeof x[Symbol.iterator] === "function"; + } + function isObject(x) { + return typeof x === "object" && x != null; + } + function isPlainObject(x) { + if (Object.prototype.toString.call(x) !== "[object Object]") { + return false; + } + const prototype = Object.getPrototypeOf(x); + return prototype === null || prototype === Object.prototype; + } + function print(value) { + return typeof value === "string" ? JSON.stringify(value) : "" + value; + } + function shiftIterator(input) { + const { + done, + value + } = input.next(); + return done ? void 0 : value; + } + function toFailure(result, context, struct3, value) { + if (result === true) { + return; + } else if (result === false) { + result = {}; + } else if (typeof result === "string") { + result = { + message: result + }; + } + const { + path, + branch + } = context; + const { + type: type2 + } = struct3; + const { + refinement, + message = "Expected a value of type `" + type2 + "`" + (refinement ? " with refinement `" + refinement + "`" : "") + ", but received: `" + print(value) + "`" + } = result; + return { + value, + type: type2, + refinement, + key: path[path.length - 1], + path, + branch, + ...result, + message + }; + } + function* toFailures(result, context, struct3, value) { + if (!isIterable(result)) { + result = [result]; + } + for (const r of result) { + const failure = toFailure(r, context, struct3, value); + if (failure) { + yield failure; + } + } + } + function* run(value, struct3, options) { + if (options === void 0) { + options = {}; + } + const { + path = [], + branch = [value], + coerce: coerce2 = false, + mask: mask2 = false + } = options; + const ctx = { + path, + branch + }; + if (coerce2) { + value = struct3.coercer(value, ctx); + if (mask2 && struct3.type !== "type" && isObject(struct3.schema) && isObject(value) && !Array.isArray(value)) { + for (const key in value) { + if (struct3.schema[key] === void 0) { + delete value[key]; + } + } + } + } + let valid = true; + for (const failure of struct3.validator(value, ctx)) { + valid = false; + yield [failure, void 0]; + } + for (let [k, v, s] of struct3.entries(value, ctx)) { + const ts = run(v, s, { + path: k === void 0 ? path : [...path, k], + branch: k === void 0 ? branch : [...branch, v], + coerce: coerce2, + mask: mask2 + }); + for (const t of ts) { + if (t[0]) { + valid = false; + yield [t[0], void 0]; + } else if (coerce2) { + v = t[1]; + if (k === void 0) { + value = v; + } else if (value instanceof Map) { + value.set(k, v); + } else if (value instanceof Set) { + value.add(v); + } else if (isObject(value)) { + value[k] = v; + } + } + } + } + if (valid) { + for (const failure of struct3.refiner(value, ctx)) { + valid = false; + yield [failure, void 0]; + } + } + if (valid) { + yield [void 0, value]; + } + } + var Struct = class { + constructor(props) { + this.TYPE = void 0; + this.type = void 0; + this.schema = void 0; + this.coercer = void 0; + this.validator = void 0; + this.refiner = void 0; + this.entries = void 0; + const { + type: type2, + schema, + validator, + refiner, + coercer = (value) => value, + entries = function* () { + } + } = props; + this.type = type2; + this.schema = schema; + this.entries = entries; + this.coercer = coercer; + if (validator) { + this.validator = (value, context) => { + const result = validator(value, context); + return toFailures(result, context, this, value); + }; + } else { + this.validator = () => []; + } + if (refiner) { + this.refiner = (value, context) => { + const result = refiner(value, context); + return toFailures(result, context, this, value); + }; + } else { + this.refiner = () => []; + } + } + /** + * Assert that a value passes the struct's validation, throwing if it doesn't. + */ + assert(value) { + return assert2(value, this); + } + /** + * Create a value with the struct's coercion logic, then validate it. + */ + create(value) { + return create(value, this); + } + /** + * Check if a value passes the struct's validation. + */ + is(value) { + return is(value, this); + } + /** + * Mask a value, coercing and validating it, but returning only the subset of + * properties defined by the struct's schema. + */ + mask(value) { + return mask(value, this); + } + /** + * Validate a value with the struct's validation logic, returning a tuple + * representing the result. + * + * You may optionally pass `true` for the `withCoercion` argument to coerce + * the value before attempting to validate it. If you do, the result will + * contain the coerced result when successful. + */ + validate(value, options) { + if (options === void 0) { + options = {}; + } + return validate2(value, this, options); + } + }; + function assert2(value, struct3) { + const result = validate2(value, struct3); + if (result[0]) { + throw result[0]; + } + } + function create(value, struct3) { + const result = validate2(value, struct3, { + coerce: true + }); + if (result[0]) { + throw result[0]; + } else { + return result[1]; + } + } + function mask(value, struct3) { + const result = validate2(value, struct3, { + coerce: true, + mask: true + }); + if (result[0]) { + throw result[0]; + } else { + return result[1]; + } + } + function is(value, struct3) { + const result = validate2(value, struct3); + return !result[0]; + } + function validate2(value, struct3, options) { + if (options === void 0) { + options = {}; + } + const tuples = run(value, struct3, options); + const tuple2 = shiftIterator(tuples); + if (tuple2[0]) { + const error = new StructError(tuple2[0], function* () { + for (const t of tuples) { + if (t[0]) { + yield t[0]; + } + } + }); + return [error, void 0]; + } else { + const v = tuple2[1]; + return [void 0, v]; + } + } + function assign() { + for (var _len = arguments.length, Structs = new Array(_len), _key = 0; _key < _len; _key++) { + Structs[_key] = arguments[_key]; + } + const isType = Structs[0].type === "type"; + const schemas = Structs.map((s) => s.schema); + const schema = Object.assign({}, ...schemas); + return isType ? type(schema) : object(schema); + } + function define2(name, validator) { + return new Struct({ + type: name, + schema: null, + validator + }); + } + function deprecated(struct3, log) { + return new Struct({ + ...struct3, + refiner: (value, ctx) => value === void 0 || struct3.refiner(value, ctx), + validator(value, ctx) { + if (value === void 0) { + return true; + } else { + log(value, ctx); + return struct3.validator(value, ctx); + } + } + }); + } + function dynamic(fn) { + return new Struct({ + type: "dynamic", + schema: null, + *entries(value, ctx) { + const struct3 = fn(value, ctx); + yield* struct3.entries(value, ctx); + }, + validator(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.validator(value, ctx); + }, + coercer(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.coercer(value, ctx); + }, + refiner(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.refiner(value, ctx); + } + }); + } + function lazy(fn) { + let struct3; + return new Struct({ + type: "lazy", + schema: null, + *entries(value, ctx) { + var _struct; + (_struct = struct3) != null ? _struct : struct3 = fn(); + yield* struct3.entries(value, ctx); + }, + validator(value, ctx) { + var _struct2; + (_struct2 = struct3) != null ? _struct2 : struct3 = fn(); + return struct3.validator(value, ctx); + }, + coercer(value, ctx) { + var _struct3; + (_struct3 = struct3) != null ? _struct3 : struct3 = fn(); + return struct3.coercer(value, ctx); + }, + refiner(value, ctx) { + var _struct4; + (_struct4 = struct3) != null ? _struct4 : struct3 = fn(); + return struct3.refiner(value, ctx); + } + }); + } + function omit(struct3, keys) { + const { + schema + } = struct3; + const subschema = { + ...schema + }; + for (const key of keys) { + delete subschema[key]; + } + switch (struct3.type) { + case "type": + return type(subschema); + default: + return object(subschema); + } + } + function partial(struct3) { + const schema = struct3 instanceof Struct ? { + ...struct3.schema + } : { + ...struct3 + }; + for (const key in schema) { + schema[key] = optional(schema[key]); + } + return object(schema); + } + function pick(struct3, keys) { + const { + schema + } = struct3; + const subschema = {}; + for (const key of keys) { + subschema[key] = schema[key]; + } + return object(subschema); + } + function struct2(name, validator) { + console.warn("superstruct@0.11 - The `struct` helper has been renamed to `define`."); + return define2(name, validator); + } + function any() { + return define2("any", () => true); + } + function array11(Element) { + return new Struct({ + type: "array", + schema: Element, + *entries(value) { + if (Element && Array.isArray(value)) { + for (const [i, v] of value.entries()) { + yield [i, v, Element]; + } + } + }, + coercer(value) { + return Array.isArray(value) ? value.slice() : value; + }, + validator(value) { + return Array.isArray(value) || "Expected an array value, but received: " + print(value); + } + }); + } + function bigint() { + return define2("bigint", (value) => { + return typeof value === "bigint"; + }); + } + function boolean() { + return define2("boolean", (value) => { + return typeof value === "boolean"; + }); + } + function date() { + return define2("date", (value) => { + return value instanceof Date && !isNaN(value.getTime()) || "Expected a valid `Date` object, but received: " + print(value); + }); + } + function enums(values) { + const schema = {}; + const description = values.map((v) => print(v)).join(); + for (const key of values) { + schema[key] = key; + } + return new Struct({ + type: "enums", + schema, + validator(value) { + return values.includes(value) || "Expected one of `" + description + "`, but received: " + print(value); + } + }); + } + function func() { + return define2("func", (value) => { + return typeof value === "function" || "Expected a function, but received: " + print(value); + }); + } + function instance(Class) { + return define2("instance", (value) => { + return value instanceof Class || "Expected a `" + Class.name + "` instance, but received: " + print(value); + }); + } + function integer() { + return define2("integer", (value) => { + return typeof value === "number" && !isNaN(value) && Number.isInteger(value) || "Expected an integer, but received: " + print(value); + }); + } + function intersection(Structs) { + return new Struct({ + type: "intersection", + schema: null, + *entries(value, ctx) { + for (const S of Structs) { + yield* S.entries(value, ctx); + } + }, + *validator(value, ctx) { + for (const S of Structs) { + yield* S.validator(value, ctx); + } + }, + *refiner(value, ctx) { + for (const S of Structs) { + yield* S.refiner(value, ctx); + } + } + }); + } + function literal(constant) { + const description = print(constant); + const t = typeof constant; + return new Struct({ + type: "literal", + schema: t === "string" || t === "number" || t === "boolean" ? constant : null, + validator(value) { + return value === constant || "Expected the literal `" + description + "`, but received: " + print(value); + } + }); + } + function map(Key, Value) { + return new Struct({ + type: "map", + schema: null, + *entries(value) { + if (Key && Value && value instanceof Map) { + for (const [k, v] of value.entries()) { + yield [k, k, Key]; + yield [k, v, Value]; + } + } + }, + coercer(value) { + return value instanceof Map ? new Map(value) : value; + }, + validator(value) { + return value instanceof Map || "Expected a `Map` object, but received: " + print(value); + } + }); + } + function never() { + return define2("never", () => false); + } + function nullable(struct3) { + return new Struct({ + ...struct3, + validator: (value, ctx) => value === null || struct3.validator(value, ctx), + refiner: (value, ctx) => value === null || struct3.refiner(value, ctx) + }); + } + function number() { + return define2("number", (value) => { + return typeof value === "number" && !isNaN(value) || "Expected a number, but received: " + print(value); + }); + } + function object(schema) { + const knowns = schema ? Object.keys(schema) : []; + const Never = never(); + return new Struct({ + type: "object", + schema: schema ? schema : null, + *entries(value) { + if (schema && isObject(value)) { + const unknowns = new Set(Object.keys(value)); + for (const key of knowns) { + unknowns.delete(key); + yield [key, value[key], schema[key]]; + } + for (const key of unknowns) { + yield [key, value[key], Never]; + } + } + }, + validator(value) { + return isObject(value) || "Expected an object, but received: " + print(value); + }, + coercer(value) { + return isObject(value) ? { + ...value + } : value; + } + }); + } + function optional(struct3) { + return new Struct({ + ...struct3, + validator: (value, ctx) => value === void 0 || struct3.validator(value, ctx), + refiner: (value, ctx) => value === void 0 || struct3.refiner(value, ctx) + }); + } + function record(Key, Value) { + return new Struct({ + type: "record", + schema: null, + *entries(value) { + if (isObject(value)) { + for (const k in value) { + const v = value[k]; + yield [k, k, Key]; + yield [k, v, Value]; + } + } + }, + validator(value) { + return isObject(value) || "Expected an object, but received: " + print(value); + } + }); + } + function regexp() { + return define2("regexp", (value) => { + return value instanceof RegExp; + }); + } + function set(Element) { + return new Struct({ + type: "set", + schema: null, + *entries(value) { + if (Element && value instanceof Set) { + for (const v of value) { + yield [v, v, Element]; + } + } + }, + coercer(value) { + return value instanceof Set ? new Set(value) : value; + }, + validator(value) { + return value instanceof Set || "Expected a `Set` object, but received: " + print(value); + } + }); + } + function string() { + return define2("string", (value) => { + return typeof value === "string" || "Expected a string, but received: " + print(value); + }); + } + function tuple(Structs) { + const Never = never(); + return new Struct({ + type: "tuple", + schema: null, + *entries(value) { + if (Array.isArray(value)) { + const length = Math.max(Structs.length, value.length); + for (let i = 0; i < length; i++) { + yield [i, value[i], Structs[i] || Never]; + } + } + }, + validator(value) { + return Array.isArray(value) || "Expected an array, but received: " + print(value); + } + }); + } + function type(schema) { + const keys = Object.keys(schema); + return new Struct({ + type: "type", + schema, + *entries(value) { + if (isObject(value)) { + for (const k of keys) { + yield [k, value[k], schema[k]]; + } + } + }, + validator(value) { + return isObject(value) || "Expected an object, but received: " + print(value); + } + }); + } + function union(Structs) { + const description = Structs.map((s) => s.type).join(" | "); + return new Struct({ + type: "union", + schema: null, + coercer(value, ctx) { + const firstMatch = Structs.find((s) => { + const [e] = s.validate(value, { + coerce: true + }); + return !e; + }) || unknown(); + return firstMatch.coercer(value, ctx); + }, + validator(value, ctx) { + const failures = []; + for (const S of Structs) { + const [...tuples] = run(value, S, ctx); + const [first] = tuples; + if (!first[0]) { + return []; + } else { + for (const [failure] of tuples) { + if (failure) { + failures.push(failure); + } + } + } + } + return ["Expected the value to satisfy a union of `" + description + "`, but received: " + print(value), ...failures]; + } + }); + } + function unknown() { + return define2("unknown", () => true); + } + function coerce(struct3, condition, coercer) { + return new Struct({ + ...struct3, + coercer: (value, ctx) => { + return is(value, condition) ? struct3.coercer(coercer(value, ctx), ctx) : struct3.coercer(value, ctx); + } + }); + } + function defaulted(struct3, fallback, options) { + if (options === void 0) { + options = {}; + } + return coerce(struct3, unknown(), (x) => { + const f = typeof fallback === "function" ? fallback() : fallback; + if (x === void 0) { + return f; + } + if (!options.strict && isPlainObject(x) && isPlainObject(f)) { + const ret = { + ...x + }; + let changed = false; + for (const key in f) { + if (ret[key] === void 0) { + ret[key] = f[key]; + changed = true; + } + } + if (changed) { + return ret; + } + } + return x; + }); + } + function trimmed(struct3) { + return coerce(struct3, string(), (x) => x.trim()); + } + function empty(struct3) { + return refine(struct3, "empty", (value) => { + const size2 = getSize(value); + return size2 === 0 || "Expected an empty " + struct3.type + " but received one with a size of `" + size2 + "`"; + }); + } + function getSize(value) { + if (value instanceof Map || value instanceof Set) { + return value.size; + } else { + return value.length; + } + } + function max(struct3, threshold, options) { + if (options === void 0) { + options = {}; + } + const { + exclusive + } = options; + return refine(struct3, "max", (value) => { + return exclusive ? value < threshold : value <= threshold || "Expected a " + struct3.type + " less than " + (exclusive ? "" : "or equal to ") + threshold + " but received `" + value + "`"; + }); + } + function min(struct3, threshold, options) { + if (options === void 0) { + options = {}; + } + const { + exclusive + } = options; + return refine(struct3, "min", (value) => { + return exclusive ? value > threshold : value >= threshold || "Expected a " + struct3.type + " greater than " + (exclusive ? "" : "or equal to ") + threshold + " but received `" + value + "`"; + }); + } + function nonempty(struct3) { + return refine(struct3, "nonempty", (value) => { + const size2 = getSize(value); + return size2 > 0 || "Expected a nonempty " + struct3.type + " but received an empty one"; + }); + } + function pattern(struct3, regexp2) { + return refine(struct3, "pattern", (value) => { + return regexp2.test(value) || "Expected a " + struct3.type + " matching `/" + regexp2.source + '/` but received "' + value + '"'; + }); + } + function size(struct3, min2, max2) { + if (max2 === void 0) { + max2 = min2; + } + const expected = "Expected a " + struct3.type; + const of = min2 === max2 ? "of `" + min2 + "`" : "between `" + min2 + "` and `" + max2 + "`"; + return refine(struct3, "size", (value) => { + if (typeof value === "number" || value instanceof Date) { + return min2 <= value && value <= max2 || expected + " " + of + " but received `" + value + "`"; + } else if (value instanceof Map || value instanceof Set) { + const { + size: size2 + } = value; + return min2 <= size2 && size2 <= max2 || expected + " with a size " + of + " but received one with a size of `" + size2 + "`"; + } else { + const { + length + } = value; + return min2 <= length && length <= max2 || expected + " with a length " + of + " but received one with a length of `" + length + "`"; + } + }); + } + function refine(struct3, name, refiner) { + return new Struct({ + ...struct3, + *refiner(value, ctx) { + yield* struct3.refiner(value, ctx); + const result = refiner(value, ctx); + const failures = toFailures(result, ctx, struct3, value); + for (const failure of failures) { + yield { + ...failure, + refinement: name + }; + } + } + }); + } + exports2.Struct = Struct; + exports2.StructError = StructError; + exports2.any = any; + exports2.array = array11; + exports2.assert = assert2; + exports2.assign = assign; + exports2.bigint = bigint; + exports2.boolean = boolean; + exports2.coerce = coerce; + exports2.create = create; + exports2.date = date; + exports2.defaulted = defaulted; + exports2.define = define2; + exports2.deprecated = deprecated; + exports2.dynamic = dynamic; + exports2.empty = empty; + exports2.enums = enums; + exports2.func = func; + exports2.instance = instance; + exports2.integer = integer; + exports2.intersection = intersection; + exports2.is = is; + exports2.lazy = lazy; + exports2.literal = literal; + exports2.map = map; + exports2.mask = mask; + exports2.max = max; + exports2.min = min; + exports2.never = never; + exports2.nonempty = nonempty; + exports2.nullable = nullable; + exports2.number = number; + exports2.object = object; + exports2.omit = omit; + exports2.optional = optional; + exports2.partial = partial; + exports2.pattern = pattern; + exports2.pick = pick; + exports2.record = record; + exports2.refine = refine; + exports2.regexp = regexp; + exports2.set = set; + exports2.size = size; + exports2.string = string; + exports2.struct = struct2; + exports2.trimmed = trimmed; + exports2.tuple = tuple; + exports2.type = type; + exports2.union = union; + exports2.unknown = unknown; + exports2.validate = validate2; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.js +var require_rpc = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.simulateTransaction = exports2.getMultipleAccountsAndContext = exports2.getMultipleAccounts = exports2.invoke = void 0; + var web3_js_1 = require_index_cjs(); + var common_js_1 = require_common2(); + var common_js_2 = require_common3(); + var provider_js_1 = require_provider(); + var superstruct_1 = require_lib5(); + async function invoke(programId, accounts, data, provider) { + programId = (0, common_js_2.translateAddress)(programId); + if (!provider) { + provider = (0, provider_js_1.getProvider)(); + } + const tx = new web3_js_1.Transaction(); + tx.add(new web3_js_1.TransactionInstruction({ + programId, + keys: accounts !== null && accounts !== void 0 ? accounts : [], + data + })); + if (provider.sendAndConfirm === void 0) { + throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented."); + } + return await provider.sendAndConfirm(tx, []); + } + exports2.invoke = invoke; + var GET_MULTIPLE_ACCOUNTS_LIMIT = 99; + async function getMultipleAccounts(connection, publicKeys, commitment) { + const results = await getMultipleAccountsAndContext(connection, publicKeys, commitment); + return results.map((result) => { + return result ? { publicKey: result.publicKey, account: result.account } : null; + }); + } + exports2.getMultipleAccounts = getMultipleAccounts; + async function getMultipleAccountsAndContext(connection, publicKeys, commitment) { + if (publicKeys.length <= GET_MULTIPLE_ACCOUNTS_LIMIT) { + return await getMultipleAccountsAndContextCore(connection, publicKeys, commitment); + } else { + const batches = (0, common_js_1.chunks)(publicKeys, GET_MULTIPLE_ACCOUNTS_LIMIT); + const results = await Promise.all(batches.map((batch) => getMultipleAccountsAndContextCore(connection, batch, commitment))); + return results.flat(); + } + } + exports2.getMultipleAccountsAndContext = getMultipleAccountsAndContext; + async function getMultipleAccountsAndContextCore(connection, publicKeys, commitmentOverride) { + const commitment = commitmentOverride !== null && commitmentOverride !== void 0 ? commitmentOverride : connection.commitment; + const { value: accountInfos, context } = await connection.getMultipleAccountsInfoAndContext(publicKeys, commitment); + const accounts = accountInfos.map((account, idx) => { + if (account === null) { + return null; + } + return { + publicKey: publicKeys[idx], + account, + context + }; + }); + return accounts; + } + async function simulateTransaction(connection, transaction, signers, commitment, includeAccounts) { + var _a; + if (signers && signers.length > 0) { + transaction.sign(...signers); + } + const message = transaction._compile(); + const signData = message.serialize(); + const wireTransaction = transaction._serialize(signData); + const encodedTransaction = wireTransaction.toString("base64"); + const config = { + encoding: "base64", + commitment: commitment !== null && commitment !== void 0 ? commitment : connection.commitment + }; + if (includeAccounts) { + const addresses = (Array.isArray(includeAccounts) ? includeAccounts : message.nonProgramIds()).map((key) => key.toBase58()); + config["accounts"] = { + encoding: "base64", + addresses + }; + } + if (signers) { + config.sigVerify = true; + } + const args = [encodedTransaction, config]; + const unsafeRes = await connection._rpcRequest("simulateTransaction", args); + const res = (0, superstruct_1.create)(unsafeRes, SimulatedTransactionResponseStruct); + if ("error" in res) { + let logs; + if ("data" in res.error) { + logs = (_a = res.error.data) === null || _a === void 0 ? void 0 : _a.logs; + if (logs && Array.isArray(logs)) { + const traceIndent = "\n "; + const logTrace = traceIndent + logs.join(traceIndent); + console.error(res.error.message, logTrace); + } + } + throw new web3_js_1.SendTransactionError("failed to simulate transaction: " + res.error.message, logs); + } + return res.result; + } + exports2.simulateTransaction = simulateTransaction; + function jsonRpcResult(schema) { + return (0, superstruct_1.coerce)(createRpcResult(schema), UnknownRpcResult, (value) => { + if ("error" in value) { + return value; + } else { + return { + ...value, + result: (0, superstruct_1.create)(value.result, schema) + }; + } + }); + } + var UnknownRpcResult = createRpcResult((0, superstruct_1.unknown)()); + function createRpcResult(result) { + return (0, superstruct_1.union)([ + (0, superstruct_1.type)({ + jsonrpc: (0, superstruct_1.literal)("2.0"), + id: (0, superstruct_1.string)(), + result + }), + (0, superstruct_1.type)({ + jsonrpc: (0, superstruct_1.literal)("2.0"), + id: (0, superstruct_1.string)(), + error: (0, superstruct_1.type)({ + code: (0, superstruct_1.unknown)(), + message: (0, superstruct_1.string)(), + data: (0, superstruct_1.optional)((0, superstruct_1.any)()) + }) + }) + ]); + } + function jsonRpcResultAndContext(value) { + return jsonRpcResult((0, superstruct_1.type)({ + context: (0, superstruct_1.type)({ + slot: (0, superstruct_1.number)() + }), + value + })); + } + var SimulatedTransactionResponseStruct = jsonRpcResultAndContext((0, superstruct_1.type)({ + err: (0, superstruct_1.nullable)((0, superstruct_1.union)([(0, superstruct_1.type)({}), (0, superstruct_1.string)()])), + logs: (0, superstruct_1.nullable)((0, superstruct_1.array)((0, superstruct_1.string)())), + accounts: (0, superstruct_1.optional)((0, superstruct_1.nullable)((0, superstruct_1.array)((0, superstruct_1.nullable)((0, superstruct_1.type)({ + executable: (0, superstruct_1.boolean)(), + owner: (0, superstruct_1.string)(), + lamports: (0, superstruct_1.number)(), + data: (0, superstruct_1.array)((0, superstruct_1.string)()), + rentEpoch: (0, superstruct_1.optional)((0, superstruct_1.number)()) + }))))), + unitsConsumed: (0, superstruct_1.optional)((0, superstruct_1.number)()) + })); + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/provider.js +var require_provider = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/provider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getProvider = exports2.setProvider = exports2.AnchorProvider = void 0; + var web3_js_1 = require_index_cjs(); + var index_js_1 = require_bytes(); + var common_js_1 = require_common2(); + var rpc_js_1 = require_rpc(); + var AnchorProvider = class _AnchorProvider { + /** + * @param connection The cluster connection where the program is deployed. + * @param wallet The wallet used to pay for and sign all transactions. + * @param opts Transaction confirmation options to use by default. + */ + constructor(connection, wallet, opts) { + this.connection = connection; + this.wallet = wallet; + this.opts = opts; + this.publicKey = wallet === null || wallet === void 0 ? void 0 : wallet.publicKey; + } + static defaultOptions() { + return { + preflightCommitment: "processed", + commitment: "processed" + }; + } + /** + * Returns a `Provider` with a wallet read from the local filesystem. + * + * @param url The network cluster url. + * @param opts The default transaction confirmation options. + * + * (This api is for Node only.) + */ + static local(url, opts) { + if (common_js_1.isBrowser) { + throw new Error(`Provider local is not available on browser.`); + } + opts = opts !== null && opts !== void 0 ? opts : _AnchorProvider.defaultOptions(); + const connection = new web3_js_1.Connection(url !== null && url !== void 0 ? url : "http://localhost:8899", opts.preflightCommitment); + const NodeWallet = require_nodewallet().default; + const wallet = NodeWallet.local(); + return new _AnchorProvider(connection, wallet, opts); + } + /** + * Returns a `Provider` read from the `ANCHOR_PROVIDER_URL` environment + * variable + * + * (This api is for Node only.) + */ + static env() { + if (common_js_1.isBrowser) { + throw new Error(`Provider env is not available on browser.`); + } + const process2 = require("process"); + const url = process2.env.ANCHOR_PROVIDER_URL; + if (url === void 0) { + throw new Error("ANCHOR_PROVIDER_URL is not defined"); + } + const options = _AnchorProvider.defaultOptions(); + const connection = new web3_js_1.Connection(url, options.commitment); + const NodeWallet = require_nodewallet().default; + const wallet = NodeWallet.local(); + return new _AnchorProvider(connection, wallet, options); + } + /** + * Sends the given transaction, paid for and signed by the provider's wallet. + * + * @param tx The transaction to send. + * @param signers The signers of the transaction. + * @param opts Transaction confirmation options. + */ + async sendAndConfirm(tx, signers, opts) { + var _a, _b, _c, _d; + if (opts === void 0) { + opts = this.opts; + } + if ((0, common_js_1.isVersionedTransaction)(tx)) { + if (signers) { + tx.sign(signers); + } + } else { + tx.feePayer = (_a = tx.feePayer) !== null && _a !== void 0 ? _a : this.wallet.publicKey; + tx.recentBlockhash = (await this.connection.getLatestBlockhash(opts.preflightCommitment)).blockhash; + if (signers) { + for (const signer of signers) { + tx.partialSign(signer); + } + } + } + tx = await this.wallet.signTransaction(tx); + const rawTx = tx.serialize(); + try { + return await sendAndConfirmRawTransaction(this.connection, rawTx, opts); + } catch (err) { + if (err instanceof ConfirmError) { + const txSig = index_js_1.bs58.encode((0, common_js_1.isVersionedTransaction)(tx) ? ((_b = tx.signatures) === null || _b === void 0 ? void 0 : _b[0]) || new Uint8Array() : (_c = tx.signature) !== null && _c !== void 0 ? _c : new Uint8Array()); + const failedTx = await this.connection.getTransaction(txSig, { + commitment: "confirmed" + }); + if (!failedTx) { + throw err; + } else { + const logs = (_d = failedTx.meta) === null || _d === void 0 ? void 0 : _d.logMessages; + throw !logs ? err : new web3_js_1.SendTransactionError(err.message, logs); + } + } else { + throw err; + } + } + } + /** + * Similar to `send`, but for an array of transactions and signers. + * All transactions need to be of the same type, it doesn't support a mix of `VersionedTransaction`s and `Transaction`s. + * + * @param txWithSigners Array of transactions and signers. + * @param opts Transaction confirmation options. + */ + async sendAll(txWithSigners, opts) { + var _a, _b, _c; + if (opts === void 0) { + opts = this.opts; + } + const recentBlockhash = (await this.connection.getLatestBlockhash(opts.preflightCommitment)).blockhash; + let txs = txWithSigners.map((r) => { + var _a2, _b2; + if ((0, common_js_1.isVersionedTransaction)(r.tx)) { + let tx = r.tx; + if (r.signers) { + tx.sign(r.signers); + } + return tx; + } else { + let tx = r.tx; + let signers = (_a2 = r.signers) !== null && _a2 !== void 0 ? _a2 : []; + tx.feePayer = (_b2 = tx.feePayer) !== null && _b2 !== void 0 ? _b2 : this.wallet.publicKey; + tx.recentBlockhash = recentBlockhash; + signers.forEach((kp) => { + tx.partialSign(kp); + }); + return tx; + } + }); + const signedTxs = await this.wallet.signAllTransactions(txs); + const sigs = []; + for (let k = 0; k < txs.length; k += 1) { + const tx = signedTxs[k]; + const rawTx = tx.serialize(); + try { + sigs.push(await sendAndConfirmRawTransaction(this.connection, rawTx, opts)); + } catch (err) { + if (err instanceof ConfirmError) { + const txSig = index_js_1.bs58.encode((0, common_js_1.isVersionedTransaction)(tx) ? ((_a = tx.signatures) === null || _a === void 0 ? void 0 : _a[0]) || new Uint8Array() : (_b = tx.signature) !== null && _b !== void 0 ? _b : new Uint8Array()); + const failedTx = await this.connection.getTransaction(txSig, { + commitment: "confirmed" + }); + if (!failedTx) { + throw err; + } else { + const logs = (_c = failedTx.meta) === null || _c === void 0 ? void 0 : _c.logMessages; + throw !logs ? err : new web3_js_1.SendTransactionError(err.message, logs); + } + } else { + throw err; + } + } + } + return sigs; + } + /** + * Simulates the given transaction, returning emitted logs from execution. + * + * @param tx The transaction to send. + * @param signers The signers of the transaction. If unset, the transaction + * will be simulated with the "sigVerify: false" option. This + * allows for simulation of transactions without asking the + * wallet for a signature. + * @param opts Transaction confirmation options. + */ + async simulate(tx, signers, commitment, includeAccounts) { + let recentBlockhash = (await this.connection.getLatestBlockhash(commitment !== null && commitment !== void 0 ? commitment : this.connection.commitment)).blockhash; + let result; + if ((0, common_js_1.isVersionedTransaction)(tx)) { + if (signers) { + tx.sign(signers); + tx = await this.wallet.signTransaction(tx); + } + result = await this.connection.simulateTransaction(tx, { commitment }); + } else { + tx.feePayer = tx.feePayer || this.wallet.publicKey; + tx.recentBlockhash = recentBlockhash; + if (signers) { + tx = await this.wallet.signTransaction(tx); + } + result = await (0, rpc_js_1.simulateTransaction)(this.connection, tx, signers, commitment, includeAccounts); + } + if (result.value.err) { + throw new SimulateError(result.value); + } + return result.value; + } + }; + exports2.AnchorProvider = AnchorProvider; + var SimulateError = class extends Error { + constructor(simulationResponse, message) { + super(message); + this.simulationResponse = simulationResponse; + } + }; + async function sendAndConfirmRawTransaction(connection, rawTransaction, options) { + const sendOptions = options && { + skipPreflight: options.skipPreflight, + preflightCommitment: options.preflightCommitment || options.commitment + }; + const signature = await connection.sendRawTransaction(rawTransaction, sendOptions); + const status = (await connection.confirmTransaction(signature, options && options.commitment)).value; + if (status.err) { + throw new ConfirmError(`Raw transaction ${signature} failed (${JSON.stringify(status)})`); + } + return signature; + } + var ConfirmError = class extends Error { + constructor(message) { + super(message); + } + }; + function setProvider(provider) { + _provider = provider; + } + exports2.setProvider = setProvider; + function getProvider() { + if (_provider === null) { + return AnchorProvider.local(); + } + return _provider; + } + exports2.getProvider = getProvider; + var _provider = null; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/features.js +var require_features = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/features.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isSet = exports2.set = void 0; + var _AVAILABLE_FEATURES = /* @__PURE__ */ new Set(["anchor-deprecated-state", "debug-logs"]); + var _FEATURES = /* @__PURE__ */ new Map(); + function set(key) { + if (!_AVAILABLE_FEATURES.has(key)) { + throw new Error("Invalid feature"); + } + _FEATURES.set(key, true); + } + exports2.set = set; + function isSet(key) { + return _FEATURES.get(key) !== void 0; + } + exports2.isSet = isSet; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/error.js +var require_error = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/error.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LangErrorMessage = exports2.LangErrorCode = exports2.translateError = exports2.ProgramError = exports2.AnchorError = exports2.ProgramErrorStack = exports2.IdlError = void 0; + var web3_js_1 = require_index_cjs(); + var features = __importStar2(require_features()); + var IdlError = class extends Error { + constructor(message) { + super(message); + this.name = "IdlError"; + } + }; + exports2.IdlError = IdlError; + var ProgramErrorStack = class _ProgramErrorStack { + constructor(stack) { + this.stack = stack; + } + static parse(logs) { + var _a; + const programKeyRegex = /^Program (\w*) invoke/; + const successRegex = /^Program \w* success/; + const programStack = []; + for (let i = 0; i < logs.length; i++) { + if (successRegex.exec(logs[i])) { + programStack.pop(); + continue; + } + const programKey = (_a = programKeyRegex.exec(logs[i])) === null || _a === void 0 ? void 0 : _a[1]; + if (!programKey) { + continue; + } + programStack.push(new web3_js_1.PublicKey(programKey)); + } + return new _ProgramErrorStack(programStack); + } + }; + exports2.ProgramErrorStack = ProgramErrorStack; + var AnchorError = class _AnchorError extends Error { + constructor(errorCode, errorMessage, errorLogs, logs, origin, comparedValues) { + super(errorLogs.join("\n").replace("Program log: ", "")); + this.errorLogs = errorLogs; + this.logs = logs; + this.error = { errorCode, errorMessage, comparedValues, origin }; + this._programErrorStack = ProgramErrorStack.parse(logs); + } + static parse(logs) { + if (!logs) { + return null; + } + const anchorErrorLogIndex = logs.findIndex((log) => log.startsWith("Program log: AnchorError")); + if (anchorErrorLogIndex === -1) { + return null; + } + const anchorErrorLog = logs[anchorErrorLogIndex]; + const errorLogs = [anchorErrorLog]; + let comparedValues; + if (anchorErrorLogIndex + 1 < logs.length) { + if (logs[anchorErrorLogIndex + 1] === "Program log: Left:") { + const pubkeyRegex = /^Program log: (.*)$/; + const leftPubkey = pubkeyRegex.exec(logs[anchorErrorLogIndex + 2])[1]; + const rightPubkey = pubkeyRegex.exec(logs[anchorErrorLogIndex + 4])[1]; + comparedValues = [ + new web3_js_1.PublicKey(leftPubkey), + new web3_js_1.PublicKey(rightPubkey) + ]; + errorLogs.push(...logs.slice(anchorErrorLogIndex + 1, anchorErrorLogIndex + 5)); + } else if (logs[anchorErrorLogIndex + 1].startsWith("Program log: Left:")) { + const valueRegex = /^Program log: (Left|Right): (.*)$/; + const leftValue = valueRegex.exec(logs[anchorErrorLogIndex + 1])[2]; + const rightValue = valueRegex.exec(logs[anchorErrorLogIndex + 2])[2]; + errorLogs.push(...logs.slice(anchorErrorLogIndex + 1, anchorErrorLogIndex + 3)); + comparedValues = [leftValue, rightValue]; + } + } + const regexNoInfo = /^Program log: AnchorError occurred\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./; + const noInfoAnchorErrorLog = regexNoInfo.exec(anchorErrorLog); + const regexFileLine = /^Program log: AnchorError thrown in (.*):(\d*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./; + const fileLineAnchorErrorLog = regexFileLine.exec(anchorErrorLog); + const regexAccountName = /^Program log: AnchorError caused by account: (.*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./; + const accountNameAnchorErrorLog = regexAccountName.exec(anchorErrorLog); + if (noInfoAnchorErrorLog) { + const [errorCodeString, errorNumber, errorMessage] = noInfoAnchorErrorLog.slice(1, 4); + const errorCode = { + code: errorCodeString, + number: parseInt(errorNumber) + }; + return new _AnchorError(errorCode, errorMessage, errorLogs, logs, void 0, comparedValues); + } else if (fileLineAnchorErrorLog) { + const [file, line, errorCodeString, errorNumber, errorMessage] = fileLineAnchorErrorLog.slice(1, 6); + const errorCode = { + code: errorCodeString, + number: parseInt(errorNumber) + }; + const fileLine = { file, line: parseInt(line) }; + return new _AnchorError(errorCode, errorMessage, errorLogs, logs, fileLine, comparedValues); + } else if (accountNameAnchorErrorLog) { + const [accountName, errorCodeString, errorNumber, errorMessage] = accountNameAnchorErrorLog.slice(1, 5); + const origin = accountName; + const errorCode = { + code: errorCodeString, + number: parseInt(errorNumber) + }; + return new _AnchorError(errorCode, errorMessage, errorLogs, logs, origin, comparedValues); + } else { + return null; + } + } + get program() { + return this._programErrorStack.stack[this._programErrorStack.stack.length - 1]; + } + get programErrorStack() { + return this._programErrorStack.stack; + } + toString() { + return this.message; + } + }; + exports2.AnchorError = AnchorError; + var ProgramError = class _ProgramError extends Error { + constructor(code, msg, logs) { + super(); + this.code = code; + this.msg = msg; + this.logs = logs; + if (logs) { + this._programErrorStack = ProgramErrorStack.parse(logs); + } + } + static parse(err, idlErrors) { + const errString = err.toString(); + let unparsedErrorCode; + if (errString.includes("custom program error:")) { + let components = errString.split("custom program error: "); + if (components.length !== 2) { + return null; + } else { + unparsedErrorCode = components[1]; + } + } else { + const matches = errString.match(/"Custom":([0-9]+)}/g); + if (!matches || matches.length > 1) { + return null; + } + unparsedErrorCode = matches[0].match(/([0-9]+)/g)[0]; + } + let errorCode; + try { + errorCode = parseInt(unparsedErrorCode); + } catch (parseErr) { + return null; + } + let errorMsg = idlErrors.get(errorCode); + if (errorMsg !== void 0) { + return new _ProgramError(errorCode, errorMsg, err.logs); + } + errorMsg = exports2.LangErrorMessage.get(errorCode); + if (errorMsg !== void 0) { + return new _ProgramError(errorCode, errorMsg, err.logs); + } + return null; + } + get program() { + var _a; + return (_a = this._programErrorStack) === null || _a === void 0 ? void 0 : _a.stack[this._programErrorStack.stack.length - 1]; + } + get programErrorStack() { + var _a; + return (_a = this._programErrorStack) === null || _a === void 0 ? void 0 : _a.stack; + } + toString() { + return this.msg; + } + }; + exports2.ProgramError = ProgramError; + function translateError(err, idlErrors) { + if (features.isSet("debug-logs")) { + console.log("Translating error:", err); + } + const anchorError = AnchorError.parse(err.logs); + if (anchorError) { + return anchorError; + } + const programError = ProgramError.parse(err, idlErrors); + if (programError) { + return programError; + } + if (err.logs) { + const handler = { + get: function(target, prop) { + if (prop === "programErrorStack") { + return target.programErrorStack.stack; + } else if (prop === "program") { + return target.programErrorStack.stack[err.programErrorStack.stack.length - 1]; + } else { + return Reflect.get(...arguments); + } + } + }; + err.programErrorStack = ProgramErrorStack.parse(err.logs); + return new Proxy(err, handler); + } + return err; + } + exports2.translateError = translateError; + exports2.LangErrorCode = { + // Instructions. + InstructionMissing: 100, + InstructionFallbackNotFound: 101, + InstructionDidNotDeserialize: 102, + InstructionDidNotSerialize: 103, + // IDL instructions. + IdlInstructionStub: 1e3, + IdlInstructionInvalidProgram: 1001, + // Constraints. + ConstraintMut: 2e3, + ConstraintHasOne: 2001, + ConstraintSigner: 2002, + ConstraintRaw: 2003, + ConstraintOwner: 2004, + ConstraintRentExempt: 2005, + ConstraintSeeds: 2006, + ConstraintExecutable: 2007, + ConstraintState: 2008, + ConstraintAssociated: 2009, + ConstraintAssociatedInit: 2010, + ConstraintClose: 2011, + ConstraintAddress: 2012, + ConstraintZero: 2013, + ConstraintTokenMint: 2014, + ConstraintTokenOwner: 2015, + ConstraintMintMintAuthority: 2016, + ConstraintMintFreezeAuthority: 2017, + ConstraintMintDecimals: 2018, + ConstraintSpace: 2019, + ConstraintAccountIsNone: 2020, + // Require. + RequireViolated: 2500, + RequireEqViolated: 2501, + RequireKeysEqViolated: 2502, + RequireNeqViolated: 2503, + RequireKeysNeqViolated: 2504, + RequireGtViolated: 2505, + RequireGteViolated: 2506, + // Accounts. + AccountDiscriminatorAlreadySet: 3e3, + AccountDiscriminatorNotFound: 3001, + AccountDiscriminatorMismatch: 3002, + AccountDidNotDeserialize: 3003, + AccountDidNotSerialize: 3004, + AccountNotEnoughKeys: 3005, + AccountNotMutable: 3006, + AccountOwnedByWrongProgram: 3007, + InvalidProgramId: 3008, + InvalidProgramExecutable: 3009, + AccountNotSigner: 3010, + AccountNotSystemOwned: 3011, + AccountNotInitialized: 3012, + AccountNotProgramData: 3013, + AccountNotAssociatedTokenAccount: 3014, + AccountSysvarMismatch: 3015, + AccountReallocExceedsLimit: 3016, + AccountDuplicateReallocs: 3017, + // Miscellaneous + DeclaredProgramIdMismatch: 4100, + // Used for APIs that shouldn't be used anymore. + Deprecated: 5e3 + }; + exports2.LangErrorMessage = /* @__PURE__ */ new Map([ + // Instructions. + [ + exports2.LangErrorCode.InstructionMissing, + "8 byte instruction identifier not provided" + ], + [ + exports2.LangErrorCode.InstructionFallbackNotFound, + "Fallback functions are not supported" + ], + [ + exports2.LangErrorCode.InstructionDidNotDeserialize, + "The program could not deserialize the given instruction" + ], + [ + exports2.LangErrorCode.InstructionDidNotSerialize, + "The program could not serialize the given instruction" + ], + // Idl instructions. + [ + exports2.LangErrorCode.IdlInstructionStub, + "The program was compiled without idl instructions" + ], + [ + exports2.LangErrorCode.IdlInstructionInvalidProgram, + "The transaction was given an invalid program for the IDL instruction" + ], + // Constraints. + [exports2.LangErrorCode.ConstraintMut, "A mut constraint was violated"], + [exports2.LangErrorCode.ConstraintHasOne, "A has one constraint was violated"], + [exports2.LangErrorCode.ConstraintSigner, "A signer constraint was violated"], + [exports2.LangErrorCode.ConstraintRaw, "A raw constraint was violated"], + [exports2.LangErrorCode.ConstraintOwner, "An owner constraint was violated"], + [ + exports2.LangErrorCode.ConstraintRentExempt, + "A rent exemption constraint was violated" + ], + [exports2.LangErrorCode.ConstraintSeeds, "A seeds constraint was violated"], + [exports2.LangErrorCode.ConstraintExecutable, "An executable constraint was violated"], + [ + exports2.LangErrorCode.ConstraintState, + "Deprecated Error, feel free to replace with something else" + ], + [exports2.LangErrorCode.ConstraintAssociated, "An associated constraint was violated"], + [ + exports2.LangErrorCode.ConstraintAssociatedInit, + "An associated init constraint was violated" + ], + [exports2.LangErrorCode.ConstraintClose, "A close constraint was violated"], + [exports2.LangErrorCode.ConstraintAddress, "An address constraint was violated"], + [exports2.LangErrorCode.ConstraintZero, "Expected zero account discriminant"], + [exports2.LangErrorCode.ConstraintTokenMint, "A token mint constraint was violated"], + [exports2.LangErrorCode.ConstraintTokenOwner, "A token owner constraint was violated"], + [ + exports2.LangErrorCode.ConstraintMintMintAuthority, + "A mint mint authority constraint was violated" + ], + [ + exports2.LangErrorCode.ConstraintMintFreezeAuthority, + "A mint freeze authority constraint was violated" + ], + [ + exports2.LangErrorCode.ConstraintMintDecimals, + "A mint decimals constraint was violated" + ], + [exports2.LangErrorCode.ConstraintSpace, "A space constraint was violated"], + [ + exports2.LangErrorCode.ConstraintAccountIsNone, + "A required account for the constraint is None" + ], + // Require. + [exports2.LangErrorCode.RequireViolated, "A require expression was violated"], + [exports2.LangErrorCode.RequireEqViolated, "A require_eq expression was violated"], + [ + exports2.LangErrorCode.RequireKeysEqViolated, + "A require_keys_eq expression was violated" + ], + [exports2.LangErrorCode.RequireNeqViolated, "A require_neq expression was violated"], + [ + exports2.LangErrorCode.RequireKeysNeqViolated, + "A require_keys_neq expression was violated" + ], + [exports2.LangErrorCode.RequireGtViolated, "A require_gt expression was violated"], + [exports2.LangErrorCode.RequireGteViolated, "A require_gte expression was violated"], + // Accounts. + [ + exports2.LangErrorCode.AccountDiscriminatorAlreadySet, + "The account discriminator was already set on this account" + ], + [ + exports2.LangErrorCode.AccountDiscriminatorNotFound, + "No 8 byte discriminator was found on the account" + ], + [ + exports2.LangErrorCode.AccountDiscriminatorMismatch, + "8 byte discriminator did not match what was expected" + ], + [exports2.LangErrorCode.AccountDidNotDeserialize, "Failed to deserialize the account"], + [exports2.LangErrorCode.AccountDidNotSerialize, "Failed to serialize the account"], + [ + exports2.LangErrorCode.AccountNotEnoughKeys, + "Not enough account keys given to the instruction" + ], + [exports2.LangErrorCode.AccountNotMutable, "The given account is not mutable"], + [ + exports2.LangErrorCode.AccountOwnedByWrongProgram, + "The given account is owned by a different program than expected" + ], + [exports2.LangErrorCode.InvalidProgramId, "Program ID was not as expected"], + [exports2.LangErrorCode.InvalidProgramExecutable, "Program account is not executable"], + [exports2.LangErrorCode.AccountNotSigner, "The given account did not sign"], + [ + exports2.LangErrorCode.AccountNotSystemOwned, + "The given account is not owned by the system program" + ], + [ + exports2.LangErrorCode.AccountNotInitialized, + "The program expected this account to be already initialized" + ], + [ + exports2.LangErrorCode.AccountNotProgramData, + "The given account is not a program data account" + ], + [ + exports2.LangErrorCode.AccountNotAssociatedTokenAccount, + "The given account is not the associated token account" + ], + [ + exports2.LangErrorCode.AccountSysvarMismatch, + "The given public key does not match the required sysvar" + ], + [ + exports2.LangErrorCode.AccountReallocExceedsLimit, + "The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit" + ], + [ + exports2.LangErrorCode.AccountDuplicateReallocs, + "The account was duplicated for more than one reallocation" + ], + // Miscellaneous + [ + exports2.LangErrorCode.DeclaredProgramIdMismatch, + "The declared program id does not match the actual program id" + ], + // Deprecated + [ + exports2.LangErrorCode.Deprecated, + "The API being used is deprecated and should no longer be used" + ] + ]); + } +}); + +// node_modules/camelcase/index.js +var require_camelcase = __commonJS({ + "node_modules/camelcase/index.js"(exports2, module2) { + "use strict"; + var UPPERCASE = /[\p{Lu}]/u; + var LOWERCASE = /[\p{Ll}]/u; + var LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu; + var IDENTIFIER = /([\p{Alpha}\p{N}_]|$)/u; + var SEPARATORS = /[_.\- ]+/; + var LEADING_SEPARATORS = new RegExp("^" + SEPARATORS.source); + var SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, "gu"); + var NUMBERS_AND_IDENTIFIER = new RegExp("\\d+" + IDENTIFIER.source, "gu"); + var preserveCamelCase = (string, toLowerCase, toUpperCase) => { + let isLastCharLower = false; + let isLastCharUpper = false; + let isLastLastCharUpper = false; + for (let i = 0; i < string.length; i++) { + const character = string[i]; + if (isLastCharLower && UPPERCASE.test(character)) { + string = string.slice(0, i) + "-" + string.slice(i); + isLastCharLower = false; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = true; + i++; + } else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) { + string = string.slice(0, i - 1) + "-" + string.slice(i - 1); + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = false; + isLastCharLower = true; + } else { + isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character; + } + } + return string; + }; + var preserveConsecutiveUppercase = (input, toLowerCase) => { + LEADING_CAPITAL.lastIndex = 0; + return input.replace(LEADING_CAPITAL, (m1) => toLowerCase(m1)); + }; + var postProcess = (input, toUpperCase) => { + SEPARATORS_AND_IDENTIFIER.lastIndex = 0; + NUMBERS_AND_IDENTIFIER.lastIndex = 0; + return input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier)).replace(NUMBERS_AND_IDENTIFIER, (m) => toUpperCase(m)); + }; + var camelCase = (input, options) => { + if (!(typeof input === "string" || Array.isArray(input))) { + throw new TypeError("Expected the input to be `string | string[]`"); + } + options = { + pascalCase: false, + preserveConsecutiveUppercase: false, + ...options + }; + if (Array.isArray(input)) { + input = input.map((x) => x.trim()).filter((x) => x.length).join("-"); + } else { + input = input.trim(); + } + if (input.length === 0) { + return ""; + } + const toLowerCase = options.locale === false ? (string) => string.toLowerCase() : (string) => string.toLocaleLowerCase(options.locale); + const toUpperCase = options.locale === false ? (string) => string.toUpperCase() : (string) => string.toLocaleUpperCase(options.locale); + if (input.length === 1) { + return options.pascalCase ? toUpperCase(input) : toLowerCase(input); + } + const hasUpperCase = input !== toLowerCase(input); + if (hasUpperCase) { + input = preserveCamelCase(input, toLowerCase, toUpperCase); + } + input = input.replace(LEADING_SEPARATORS, ""); + if (options.preserveConsecutiveUppercase) { + input = preserveConsecutiveUppercase(input, toLowerCase); + } else { + input = toLowerCase(input); + } + if (options.pascalCase) { + input = toUpperCase(input.charAt(0)) + input.slice(1); + } + return postProcess(input, toUpperCase); + }; + module2.exports = camelCase; + module2.exports.default = camelCase; + } +}); + +// node_modules/tslib/tslib.es6.mjs +var tslib_es6_exports = {}; +__export(tslib_es6_exports, { + __addDisposableResource: () => __addDisposableResource, + __assign: () => __assign, + __asyncDelegator: () => __asyncDelegator, + __asyncGenerator: () => __asyncGenerator, + __asyncValues: () => __asyncValues, + __await: () => __await, + __awaiter: () => __awaiter, + __classPrivateFieldGet: () => __classPrivateFieldGet, + __classPrivateFieldIn: () => __classPrivateFieldIn, + __classPrivateFieldSet: () => __classPrivateFieldSet, + __createBinding: () => __createBinding, + __decorate: () => __decorate, + __disposeResources: () => __disposeResources, + __esDecorate: () => __esDecorate, + __exportStar: () => __exportStar, + __extends: () => __extends, + __generator: () => __generator, + __importDefault: () => __importDefault, + __importStar: () => __importStar, + __makeTemplateObject: () => __makeTemplateObject, + __metadata: () => __metadata, + __param: () => __param, + __propKey: () => __propKey, + __read: () => __read, + __rest: () => __rest, + __rewriteRelativeImportExtension: () => __rewriteRelativeImportExtension, + __runInitializers: () => __runInitializers, + __setFunctionName: () => __setFunctionName, + __spread: () => __spread, + __spreadArray: () => __spreadArray, + __spreadArrays: () => __spreadArrays, + __values: () => __values, + default: () => tslib_es6_default +}); +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function __param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { + if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); + return f; + } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function(f) { + if (done) throw new TypeError("Cannot add initializers after decoration has completed"); + extraInitializers.push(accept(f || null)); + }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; +} +function __runInitializers(thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; +} +function __propKey(x) { + return typeof x === "symbol" ? x : "".concat(x); +} +function __setFunctionName(f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); +} +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} +function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { + if (t[0] & 1) throw t[1]; + return t[1]; + }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } +} +function __exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); +} +function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; +} +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} +function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() { + return this; + }, i; + function awaitReturn(f) { + return function(v) { + return Promise.resolve(v).then(f, reject); + }; + } + function verb(n, f) { + if (g[n]) { + i[n] = function(v) { + return new Promise(function(a, b) { + q.push([n, v, a, b]) > 1 || resume(n, v); + }); + }; + if (f) i[n] = f(i[n]); + } + } + function resume(n, v) { + try { + step(g[n](v)); + } catch (e) { + settle(q[0][3], e); + } + } + function step(r) { + r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); + } + function fulfill(value) { + resume("next", value); + } + function reject(value) { + resume("throw", value); + } + function settle(f, v) { + if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); + } +} +function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function(e) { + throw e; + }), verb("return"), i[Symbol.iterator] = function() { + return this; + }, i; + function verb(n, f) { + i[n] = o[n] ? function(v) { + return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; + } : f; + } +} +function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i); + function verb(n) { + i[n] = o[n] && function(v) { + return new Promise(function(resolve, reject) { + v = o[n](v), settle(resolve, reject, v.done, v.value); + }); + }; + } + function settle(resolve, reject, d, v) { + Promise.resolve(v).then(function(v2) { + resolve({ value: v2, done: d }); + }, reject); + } +} +function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } else { + cooked.raw = raw; + } + return cooked; +} +function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + } + __setModuleDefault(result, mod); + return result; +} +function __importDefault(mod) { + return mod && mod.__esModule ? mod : { default: mod }; +} +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} +function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value; +} +function __classPrivateFieldIn(state, receiver) { + if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function") throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); +} +function __addDisposableResource(env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = function() { + try { + inner.call(this); + } catch (e) { + return Promise.reject(e); + } + }; + env.stack.push({ value, dispose, async }); + } else if (async) { + env.stack.push({ async: true }); + } + return value; +} +function __disposeResources(env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + var r, s = 0; + function next() { + while (r = env.stack.pop()) { + try { + if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); + if (r.dispose) { + var result = r.dispose.call(r.value); + if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { + fail(e); + return next(); + }); + } else s |= 1; + } catch (e) { + fail(e); + } + } + if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); + if (env.hasError) throw env.error; + } + return next(); +} +function __rewriteRelativeImportExtension(path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : d + ext + "." + cm.toLowerCase() + "js"; + }); + } + return path; +} +var extendStatics, __assign, __createBinding, __setModuleDefault, ownKeys, _SuppressedError, tslib_es6_default; +var init_tslib_es6 = __esm({ + "node_modules/tslib/tslib.es6.mjs"() { + extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + __assign = function() { + __assign = Object.assign || function __assign2(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + __createBinding = Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }; + __setModuleDefault = Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }; + ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; + }; + tslib_es6_default = { + __extends, + __assign, + __rest, + __decorate, + __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, + __metadata, + __awaiter, + __generator, + __createBinding, + __exportStar, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension + }; + } +}); + +// node_modules/lower-case/dist/index.js +var require_dist3 = __commonJS({ + "node_modules/lower-case/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.lowerCase = exports2.localeLowerCase = void 0; + var SUPPORTED_LOCALE = { + tr: { + regexp: /\u0130|\u0049|\u0049\u0307/g, + map: { + \u0130: "i", + I: "\u0131", + I\u0307: "i" + } + }, + az: { + regexp: /\u0130/g, + map: { + \u0130: "i", + I: "\u0131", + I\u0307: "i" + } + }, + lt: { + regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g, + map: { + I: "i\u0307", + J: "j\u0307", + \u012E: "\u012F\u0307", + \u00CC: "i\u0307\u0300", + \u00CD: "i\u0307\u0301", + \u0128: "i\u0307\u0303" + } + } + }; + function localeLowerCase(str, locale) { + var lang = SUPPORTED_LOCALE[locale.toLowerCase()]; + if (lang) + return lowerCase(str.replace(lang.regexp, function(m) { + return lang.map[m]; + })); + return lowerCase(str); + } + exports2.localeLowerCase = localeLowerCase; + function lowerCase(str) { + return str.toLowerCase(); + } + exports2.lowerCase = lowerCase; + } +}); + +// node_modules/no-case/dist/index.js +var require_dist4 = __commonJS({ + "node_modules/no-case/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.noCase = void 0; + var lower_case_1 = require_dist3(); + var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g]; + var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; + function noCase(input, options) { + if (options === void 0) { + options = {}; + } + var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lower_case_1.lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d; + var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0"); + var start = 0; + var end = result.length; + while (result.charAt(start) === "\0") + start++; + while (result.charAt(end - 1) === "\0") + end--; + return result.slice(start, end).split("\0").map(transform).join(delimiter); + } + exports2.noCase = noCase; + function replace(input, re, value) { + if (re instanceof RegExp) + return input.replace(re, value); + return re.reduce(function(input2, re2) { + return input2.replace(re2, value); + }, input); + } + } +}); + +// node_modules/dot-case/dist/index.js +var require_dist5 = __commonJS({ + "node_modules/dot-case/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.dotCase = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var no_case_1 = require_dist4(); + function dotCase(input, options) { + if (options === void 0) { + options = {}; + } + return no_case_1.noCase(input, tslib_1.__assign({ delimiter: "." }, options)); + } + exports2.dotCase = dotCase; + } +}); + +// node_modules/snake-case/dist/index.js +var require_dist6 = __commonJS({ + "node_modules/snake-case/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.snakeCase = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var dot_case_1 = require_dist5(); + function snakeCase(input, options) { + if (options === void 0) { + options = {}; + } + return dot_case_1.dotCase(input, tslib_1.__assign({ delimiter: "_" }, options)); + } + exports2.snakeCase = snakeCase; + } +}); + +// node_modules/js-sha256/src/sha256.js +var require_sha2562 = __commonJS({ + "node_modules/js-sha256/src/sha256.js"(exports, module) { + (function() { + "use strict"; + var ERROR = "input is invalid type"; + var WINDOW = typeof window === "object"; + var root = WINDOW ? window : {}; + if (root.JS_SHA256_NO_WINDOW) { + WINDOW = false; + } + var WEB_WORKER = !WINDOW && typeof self === "object"; + var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node; + if (NODE_JS) { + root = global; + } else if (WEB_WORKER) { + root = self; + } + var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === "object" && module.exports; + var AMD = typeof define === "function" && define.amd; + var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined"; + var HEX_CHARS = "0123456789abcdef".split(""); + var EXTRA = [-2147483648, 8388608, 32768, 128]; + var SHIFT = [24, 16, 8, 0]; + var K = [ + 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 + ]; + var OUTPUT_TYPES = ["hex", "array", "digest", "arrayBuffer"]; + var blocks = []; + if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) { + Array.isArray = function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + } + if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) { + ArrayBuffer.isView = function(obj) { + return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer; + }; + } + var createOutputMethod = function(outputType, is2242) { + return function(message) { + return new Sha256(is2242, true).update(message)[outputType](); + }; + }; + var createMethod = function(is2242) { + var method2 = createOutputMethod("hex", is2242); + if (NODE_JS) { + method2 = nodeWrap(method2, is2242); + } + method2.create = function() { + return new Sha256(is2242); + }; + method2.update = function(message) { + return method2.create().update(message); + }; + for (var i = 0; i < OUTPUT_TYPES.length; ++i) { + var type = OUTPUT_TYPES[i]; + method2[type] = createOutputMethod(type, is2242); + } + return method2; + }; + var nodeWrap = function(method, is224) { + var crypto = eval("require('crypto')"); + var Buffer = eval("require('buffer').Buffer"); + var algorithm = is224 ? "sha224" : "sha256"; + var nodeMethod = function(message) { + if (typeof message === "string") { + return crypto.createHash(algorithm).update(message, "utf8").digest("hex"); + } else { + if (message === null || message === void 0) { + throw new Error(ERROR); + } else if (message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } + } + if (Array.isArray(message) || ArrayBuffer.isView(message) || message.constructor === Buffer) { + return crypto.createHash(algorithm).update(new Buffer(message)).digest("hex"); + } else { + return method(message); + } + }; + return nodeMethod; + }; + var createHmacOutputMethod = function(outputType, is2242) { + return function(key, message) { + return new HmacSha256(key, is2242, true).update(message)[outputType](); + }; + }; + var createHmacMethod = function(is2242) { + var method2 = createHmacOutputMethod("hex", is2242); + method2.create = function(key) { + return new HmacSha256(key, is2242); + }; + method2.update = function(key, message) { + return method2.create(key).update(message); + }; + for (var i = 0; i < OUTPUT_TYPES.length; ++i) { + var type = OUTPUT_TYPES[i]; + method2[type] = createHmacOutputMethod(type, is2242); + } + return method2; + }; + function Sha256(is2242, sharedMemory) { + if (sharedMemory) { + blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; + this.blocks = blocks; + } else { + this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + } + if (is2242) { + this.h0 = 3238371032; + this.h1 = 914150663; + this.h2 = 812702999; + this.h3 = 4144912697; + this.h4 = 4290775857; + this.h5 = 1750603025; + this.h6 = 1694076839; + this.h7 = 3204075428; + } else { + this.h0 = 1779033703; + this.h1 = 3144134277; + this.h2 = 1013904242; + this.h3 = 2773480762; + this.h4 = 1359893119; + this.h5 = 2600822924; + this.h6 = 528734635; + this.h7 = 1541459225; + } + this.block = this.start = this.bytes = this.hBytes = 0; + this.finalized = this.hashed = false; + this.first = true; + this.is224 = is2242; + } + Sha256.prototype.update = function(message) { + if (this.finalized) { + return; + } + var notString, type = typeof message; + if (type !== "string") { + if (type === "object") { + if (message === null) { + throw new Error(ERROR); + } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } else if (!Array.isArray(message)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) { + throw new Error(ERROR); + } + } + } else { + throw new Error(ERROR); + } + notString = true; + } + var code, index = 0, i, length = message.length, blocks2 = this.blocks; + while (index < length) { + if (this.hashed) { + this.hashed = false; + blocks2[0] = this.block; + blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0; + } + if (notString) { + for (i = this.start; index < length && i < 64; ++index) { + blocks2[i >> 2] |= message[index] << SHIFT[i++ & 3]; + } + } else { + for (i = this.start; index < length && i < 64; ++index) { + code = message.charCodeAt(index); + if (code < 128) { + blocks2[i >> 2] |= code << SHIFT[i++ & 3]; + } else if (code < 2048) { + blocks2[i >> 2] |= (192 | code >> 6) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } else if (code < 55296 || code >= 57344) { + blocks2[i >> 2] |= (224 | code >> 12) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 6 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } else { + code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index) & 1023); + blocks2[i >> 2] |= (240 | code >> 18) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 12 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 6 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } + } + } + this.lastByteIndex = i; + this.bytes += i - this.start; + if (i >= 64) { + this.block = blocks2[16]; + this.start = i - 64; + this.hash(); + this.hashed = true; + } else { + this.start = i; + } + } + if (this.bytes > 4294967295) { + this.hBytes += this.bytes / 4294967296 << 0; + this.bytes = this.bytes % 4294967296; + } + return this; + }; + Sha256.prototype.finalize = function() { + if (this.finalized) { + return; + } + this.finalized = true; + var blocks2 = this.blocks, i = this.lastByteIndex; + blocks2[16] = this.block; + blocks2[i >> 2] |= EXTRA[i & 3]; + this.block = blocks2[16]; + if (i >= 56) { + if (!this.hashed) { + this.hash(); + } + blocks2[0] = this.block; + blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0; + } + blocks2[14] = this.hBytes << 3 | this.bytes >>> 29; + blocks2[15] = this.bytes << 3; + this.hash(); + }; + Sha256.prototype.hash = function() { + var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6, h = this.h7, blocks2 = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc; + for (j = 16; j < 64; ++j) { + t1 = blocks2[j - 15]; + s0 = (t1 >>> 7 | t1 << 25) ^ (t1 >>> 18 | t1 << 14) ^ t1 >>> 3; + t1 = blocks2[j - 2]; + s1 = (t1 >>> 17 | t1 << 15) ^ (t1 >>> 19 | t1 << 13) ^ t1 >>> 10; + blocks2[j] = blocks2[j - 16] + s0 + blocks2[j - 7] + s1 << 0; + } + bc = b & c; + for (j = 0; j < 64; j += 4) { + if (this.first) { + if (this.is224) { + ab = 300032; + t1 = blocks2[0] - 1413257819; + h = t1 - 150054599 << 0; + d = t1 + 24177077 << 0; + } else { + ab = 704751109; + t1 = blocks2[0] - 210244248; + h = t1 - 1521486534 << 0; + d = t1 + 143694565 << 0; + } + this.first = false; + } else { + s0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10); + s1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7); + ab = a & b; + maj = ab ^ a & c ^ bc; + ch = e & f ^ ~e & g; + t1 = h + s1 + ch + K[j] + blocks2[j]; + t2 = s0 + maj; + h = d + t1 << 0; + d = t1 + t2 << 0; + } + s0 = (d >>> 2 | d << 30) ^ (d >>> 13 | d << 19) ^ (d >>> 22 | d << 10); + s1 = (h >>> 6 | h << 26) ^ (h >>> 11 | h << 21) ^ (h >>> 25 | h << 7); + da = d & a; + maj = da ^ d & b ^ ab; + ch = h & e ^ ~h & f; + t1 = g + s1 + ch + K[j + 1] + blocks2[j + 1]; + t2 = s0 + maj; + g = c + t1 << 0; + c = t1 + t2 << 0; + s0 = (c >>> 2 | c << 30) ^ (c >>> 13 | c << 19) ^ (c >>> 22 | c << 10); + s1 = (g >>> 6 | g << 26) ^ (g >>> 11 | g << 21) ^ (g >>> 25 | g << 7); + cd = c & d; + maj = cd ^ c & a ^ da; + ch = g & h ^ ~g & e; + t1 = f + s1 + ch + K[j + 2] + blocks2[j + 2]; + t2 = s0 + maj; + f = b + t1 << 0; + b = t1 + t2 << 0; + s0 = (b >>> 2 | b << 30) ^ (b >>> 13 | b << 19) ^ (b >>> 22 | b << 10); + s1 = (f >>> 6 | f << 26) ^ (f >>> 11 | f << 21) ^ (f >>> 25 | f << 7); + bc = b & c; + maj = bc ^ b & d ^ cd; + ch = f & g ^ ~f & h; + t1 = e + s1 + ch + K[j + 3] + blocks2[j + 3]; + t2 = s0 + maj; + e = a + t1 << 0; + a = t1 + t2 << 0; + } + this.h0 = this.h0 + a << 0; + this.h1 = this.h1 + b << 0; + this.h2 = this.h2 + c << 0; + this.h3 = this.h3 + d << 0; + this.h4 = this.h4 + e << 0; + this.h5 = this.h5 + f << 0; + this.h6 = this.h6 + g << 0; + this.h7 = this.h7 + h << 0; + }; + Sha256.prototype.hex = function() { + this.finalize(); + var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7; + var hex = HEX_CHARS[h0 >> 28 & 15] + HEX_CHARS[h0 >> 24 & 15] + HEX_CHARS[h0 >> 20 & 15] + HEX_CHARS[h0 >> 16 & 15] + HEX_CHARS[h0 >> 12 & 15] + HEX_CHARS[h0 >> 8 & 15] + HEX_CHARS[h0 >> 4 & 15] + HEX_CHARS[h0 & 15] + HEX_CHARS[h1 >> 28 & 15] + HEX_CHARS[h1 >> 24 & 15] + HEX_CHARS[h1 >> 20 & 15] + HEX_CHARS[h1 >> 16 & 15] + HEX_CHARS[h1 >> 12 & 15] + HEX_CHARS[h1 >> 8 & 15] + HEX_CHARS[h1 >> 4 & 15] + HEX_CHARS[h1 & 15] + HEX_CHARS[h2 >> 28 & 15] + HEX_CHARS[h2 >> 24 & 15] + HEX_CHARS[h2 >> 20 & 15] + HEX_CHARS[h2 >> 16 & 15] + HEX_CHARS[h2 >> 12 & 15] + HEX_CHARS[h2 >> 8 & 15] + HEX_CHARS[h2 >> 4 & 15] + HEX_CHARS[h2 & 15] + HEX_CHARS[h3 >> 28 & 15] + HEX_CHARS[h3 >> 24 & 15] + HEX_CHARS[h3 >> 20 & 15] + HEX_CHARS[h3 >> 16 & 15] + HEX_CHARS[h3 >> 12 & 15] + HEX_CHARS[h3 >> 8 & 15] + HEX_CHARS[h3 >> 4 & 15] + HEX_CHARS[h3 & 15] + HEX_CHARS[h4 >> 28 & 15] + HEX_CHARS[h4 >> 24 & 15] + HEX_CHARS[h4 >> 20 & 15] + HEX_CHARS[h4 >> 16 & 15] + HEX_CHARS[h4 >> 12 & 15] + HEX_CHARS[h4 >> 8 & 15] + HEX_CHARS[h4 >> 4 & 15] + HEX_CHARS[h4 & 15] + HEX_CHARS[h5 >> 28 & 15] + HEX_CHARS[h5 >> 24 & 15] + HEX_CHARS[h5 >> 20 & 15] + HEX_CHARS[h5 >> 16 & 15] + HEX_CHARS[h5 >> 12 & 15] + HEX_CHARS[h5 >> 8 & 15] + HEX_CHARS[h5 >> 4 & 15] + HEX_CHARS[h5 & 15] + HEX_CHARS[h6 >> 28 & 15] + HEX_CHARS[h6 >> 24 & 15] + HEX_CHARS[h6 >> 20 & 15] + HEX_CHARS[h6 >> 16 & 15] + HEX_CHARS[h6 >> 12 & 15] + HEX_CHARS[h6 >> 8 & 15] + HEX_CHARS[h6 >> 4 & 15] + HEX_CHARS[h6 & 15]; + if (!this.is224) { + hex += HEX_CHARS[h7 >> 28 & 15] + HEX_CHARS[h7 >> 24 & 15] + HEX_CHARS[h7 >> 20 & 15] + HEX_CHARS[h7 >> 16 & 15] + HEX_CHARS[h7 >> 12 & 15] + HEX_CHARS[h7 >> 8 & 15] + HEX_CHARS[h7 >> 4 & 15] + HEX_CHARS[h7 & 15]; + } + return hex; + }; + Sha256.prototype.toString = Sha256.prototype.hex; + Sha256.prototype.digest = function() { + this.finalize(); + var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7; + var arr = [ + h0 >> 24 & 255, + h0 >> 16 & 255, + h0 >> 8 & 255, + h0 & 255, + h1 >> 24 & 255, + h1 >> 16 & 255, + h1 >> 8 & 255, + h1 & 255, + h2 >> 24 & 255, + h2 >> 16 & 255, + h2 >> 8 & 255, + h2 & 255, + h3 >> 24 & 255, + h3 >> 16 & 255, + h3 >> 8 & 255, + h3 & 255, + h4 >> 24 & 255, + h4 >> 16 & 255, + h4 >> 8 & 255, + h4 & 255, + h5 >> 24 & 255, + h5 >> 16 & 255, + h5 >> 8 & 255, + h5 & 255, + h6 >> 24 & 255, + h6 >> 16 & 255, + h6 >> 8 & 255, + h6 & 255 + ]; + if (!this.is224) { + arr.push(h7 >> 24 & 255, h7 >> 16 & 255, h7 >> 8 & 255, h7 & 255); + } + return arr; + }; + Sha256.prototype.array = Sha256.prototype.digest; + Sha256.prototype.arrayBuffer = function() { + this.finalize(); + var buffer = new ArrayBuffer(this.is224 ? 28 : 32); + var dataView = new DataView(buffer); + dataView.setUint32(0, this.h0); + dataView.setUint32(4, this.h1); + dataView.setUint32(8, this.h2); + dataView.setUint32(12, this.h3); + dataView.setUint32(16, this.h4); + dataView.setUint32(20, this.h5); + dataView.setUint32(24, this.h6); + if (!this.is224) { + dataView.setUint32(28, this.h7); + } + return buffer; + }; + function HmacSha256(key, is2242, sharedMemory) { + var i, type = typeof key; + if (type === "string") { + var bytes7 = [], length = key.length, index = 0, code; + for (i = 0; i < length; ++i) { + code = key.charCodeAt(i); + if (code < 128) { + bytes7[index++] = code; + } else if (code < 2048) { + bytes7[index++] = 192 | code >> 6; + bytes7[index++] = 128 | code & 63; + } else if (code < 55296 || code >= 57344) { + bytes7[index++] = 224 | code >> 12; + bytes7[index++] = 128 | code >> 6 & 63; + bytes7[index++] = 128 | code & 63; + } else { + code = 65536 + ((code & 1023) << 10 | key.charCodeAt(++i) & 1023); + bytes7[index++] = 240 | code >> 18; + bytes7[index++] = 128 | code >> 12 & 63; + bytes7[index++] = 128 | code >> 6 & 63; + bytes7[index++] = 128 | code & 63; + } + } + key = bytes7; + } else { + if (type === "object") { + if (key === null) { + throw new Error(ERROR); + } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) { + key = new Uint8Array(key); + } else if (!Array.isArray(key)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) { + throw new Error(ERROR); + } + } + } else { + throw new Error(ERROR); + } + } + if (key.length > 64) { + key = new Sha256(is2242, true).update(key).array(); + } + var oKeyPad = [], iKeyPad = []; + for (i = 0; i < 64; ++i) { + var b = key[i] || 0; + oKeyPad[i] = 92 ^ b; + iKeyPad[i] = 54 ^ b; + } + Sha256.call(this, is2242, sharedMemory); + this.update(iKeyPad); + this.oKeyPad = oKeyPad; + this.inner = true; + this.sharedMemory = sharedMemory; + } + HmacSha256.prototype = new Sha256(); + HmacSha256.prototype.finalize = function() { + Sha256.prototype.finalize.call(this); + if (this.inner) { + this.inner = false; + var innerHash = this.array(); + Sha256.call(this, this.is224, this.sharedMemory); + this.update(this.oKeyPad); + this.update(innerHash); + Sha256.prototype.finalize.call(this); + } + }; + var exports = createMethod(); + exports.sha256 = exports; + exports.sha224 = createMethod(true); + exports.sha256.hmac = createHmacMethod(); + exports.sha224.hmac = createHmacMethod(true); + if (COMMON_JS) { + module.exports = exports; + } else { + root.sha256 = exports.sha256; + root.sha224 = exports.sha224; + if (AMD) { + define(function() { + return exports; + }); + } + } + })(); + } +}); + +// node_modules/buffer-layout/lib/Layout.js +var require_Layout2 = __commonJS({ + "node_modules/buffer-layout/lib/Layout.js"(exports2) { + "use strict"; + var Layout = class { + constructor(span, property) { + if (!Number.isInteger(span)) { + throw new TypeError("span must be an integer"); + } + this.span = span; + this.property = property; + } + /** Function to create an Object into which decoded properties will + * be written. + * + * Used only for layouts that {@link Layout#decode|decode} to Object + * instances, which means: + * * {@link Structure} + * * {@link Union} + * * {@link VariantLayout} + * * {@link BitStructure} + * + * If left undefined the JavaScript representation of these layouts + * will be Object instances. + * + * See {@link bindConstructorLayout}. + */ + makeDestinationObject() { + return {}; + } + /** + * Decode from a Buffer into an JavaScript value. + * + * @param {Buffer} b - the buffer from which encoded data is read. + * + * @param {Number} [offset] - the offset at which the encoded data + * starts. If absent a zero offset is inferred. + * + * @returns {(Number|Array|Object)} - the value of the decoded data. + * + * @abstract + */ + decode(b, offset) { + throw new Error("Layout is abstract"); + } + /** + * Encode a JavaScript value into a Buffer. + * + * @param {(Number|Array|Object)} src - the value to be encoded into + * the buffer. The type accepted depends on the (sub-)type of {@link + * Layout}. + * + * @param {Buffer} b - the buffer into which encoded data will be + * written. + * + * @param {Number} [offset] - the offset at which the encoded data + * starts. If absent a zero offset is inferred. + * + * @returns {Number} - the number of bytes encoded, including the + * space skipped for internal padding, but excluding data such as + * {@link Sequence#count|lengths} when stored {@link + * ExternalLayout|externally}. This is the adjustment to `offset` + * producing the offset where data for the next layout would be + * written. + * + * @abstract + */ + encode(src, b, offset) { + throw new Error("Layout is abstract"); + } + /** + * Calculate the span of a specific instance of a layout. + * + * @param {Buffer} b - the buffer that contains an encoded instance. + * + * @param {Number} [offset] - the offset at which the encoded instance + * starts. If absent a zero offset is inferred. + * + * @return {Number} - the number of bytes covered by the layout + * instance. If this method is not overridden in a subclass the + * definition-time constant {@link Layout#span|span} will be + * returned. + * + * @throws {RangeError} - if the length of the value cannot be + * determined. + */ + getSpan(b, offset) { + if (0 > this.span) { + throw new RangeError("indeterminate span"); + } + return this.span; + } + /** + * Replicate the layout using a new property. + * + * This function must be used to get a structurally-equivalent layout + * with a different name since all {@link Layout} instances are + * immutable. + * + * **NOTE** This is a shallow copy. All fields except {@link + * Layout#property|property} are strictly equal to the origin layout. + * + * @param {String} property - the value for {@link + * Layout#property|property} in the replica. + * + * @returns {Layout} - the copy with {@link Layout#property|property} + * set to `property`. + */ + replicate(property) { + const rv = Object.create(this.constructor.prototype); + Object.assign(rv, this); + rv.property = property; + return rv; + } + /** + * Create an object from layout properties and an array of values. + * + * **NOTE** This function returns `undefined` if invoked on a layout + * that does not return its value as an Object. Objects are + * returned for things that are a {@link Structure}, which includes + * {@link VariantLayout|variant layouts} if they are structures, and + * excludes {@link Union}s. If you want this feature for a union + * you must use {@link Union.getVariant|getVariant} to select the + * desired layout. + * + * @param {Array} values - an array of values that correspond to the + * default order for properties. As with {@link Layout#decode|decode} + * layout elements that have no property name are skipped when + * iterating over the array values. Only the top-level properties are + * assigned; arguments are not assigned to properties of contained + * layouts. Any unused values are ignored. + * + * @return {(Object|undefined)} + */ + fromArray(values) { + return void 0; + } + }; + exports2.Layout = Layout; + function nameWithProperty(name, lo) { + if (lo.property) { + return name + "[" + lo.property + "]"; + } + return name; + } + exports2.nameWithProperty = nameWithProperty; + function bindConstructorLayout(Class, layout) { + if ("function" !== typeof Class) { + throw new TypeError("Class must be constructor"); + } + if (Class.hasOwnProperty("layout_")) { + throw new Error("Class is already bound to a layout"); + } + if (!(layout && layout instanceof Layout)) { + throw new TypeError("layout must be a Layout"); + } + if (layout.hasOwnProperty("boundConstructor_")) { + throw new Error("layout is already bound to a constructor"); + } + Class.layout_ = layout; + layout.boundConstructor_ = Class; + layout.makeDestinationObject = () => new Class(); + Object.defineProperty(Class.prototype, "encode", { + value: function(b, offset) { + return layout.encode(this, b, offset); + }, + writable: true + }); + Object.defineProperty(Class, "decode", { + value: function(b, offset) { + return layout.decode(b, offset); + }, + writable: true + }); + } + exports2.bindConstructorLayout = bindConstructorLayout; + var ExternalLayout = class extends Layout { + /** + * Return `true` iff the external layout decodes to an unsigned + * integer layout. + * + * In that case it can be used as the source of {@link + * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths}, + * or as {@link UnionLayoutDiscriminator#layout|external union + * discriminators}. + * + * @abstract + */ + isCount() { + throw new Error("ExternalLayout is abstract"); + } + }; + var GreedyCount = class extends ExternalLayout { + constructor(elementSpan, property) { + if (void 0 === elementSpan) { + elementSpan = 1; + } + if (!Number.isInteger(elementSpan) || 0 >= elementSpan) { + throw new TypeError("elementSpan must be a (positive) integer"); + } + super(-1, property); + this.elementSpan = elementSpan; + } + /** @override */ + isCount() { + return true; + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + const rem = b.length - offset; + return Math.floor(rem / this.elementSpan); + } + /** @override */ + encode(src, b, offset) { + return 0; + } + }; + var OffsetLayout = class extends ExternalLayout { + constructor(layout, offset, property) { + if (!(layout instanceof Layout)) { + throw new TypeError("layout must be a Layout"); + } + if (void 0 === offset) { + offset = 0; + } else if (!Number.isInteger(offset)) { + throw new TypeError("offset must be integer or undefined"); + } + super(layout.span, property || layout.property); + this.layout = layout; + this.offset = offset; + } + /** @override */ + isCount() { + return this.layout instanceof UInt || this.layout instanceof UIntBE; + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return this.layout.decode(b, offset + this.offset); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + return this.layout.encode(src, b, offset + this.offset); + } + }; + var UInt = class extends Layout { + constructor(span, property) { + super(span, property); + if (6 < this.span) { + throw new RangeError("span must not exceed 6 bytes"); + } + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return b.readUIntLE(offset, this.span); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + b.writeUIntLE(src, offset, this.span); + return this.span; + } + }; + var UIntBE = class extends Layout { + constructor(span, property) { + super(span, property); + if (6 < this.span) { + throw new RangeError("span must not exceed 6 bytes"); + } + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return b.readUIntBE(offset, this.span); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + b.writeUIntBE(src, offset, this.span); + return this.span; + } + }; + var Int = class extends Layout { + constructor(span, property) { + super(span, property); + if (6 < this.span) { + throw new RangeError("span must not exceed 6 bytes"); + } + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return b.readIntLE(offset, this.span); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + b.writeIntLE(src, offset, this.span); + return this.span; + } + }; + var IntBE = class extends Layout { + constructor(span, property) { + super(span, property); + if (6 < this.span) { + throw new RangeError("span must not exceed 6 bytes"); + } + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return b.readIntBE(offset, this.span); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + b.writeIntBE(src, offset, this.span); + return this.span; + } + }; + var V2E32 = Math.pow(2, 32); + function divmodInt64(src) { + const hi32 = Math.floor(src / V2E32); + const lo32 = src - hi32 * V2E32; + return { hi32, lo32 }; + } + function roundedInt64(hi32, lo32) { + return hi32 * V2E32 + lo32; + } + var NearUInt64 = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + const lo32 = b.readUInt32LE(offset); + const hi32 = b.readUInt32LE(offset + 4); + return roundedInt64(hi32, lo32); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + const split = divmodInt64(src); + b.writeUInt32LE(split.lo32, offset); + b.writeUInt32LE(split.hi32, offset + 4); + return 8; + } + }; + var NearUInt64BE = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + const hi32 = b.readUInt32BE(offset); + const lo32 = b.readUInt32BE(offset + 4); + return roundedInt64(hi32, lo32); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + const split = divmodInt64(src); + b.writeUInt32BE(split.hi32, offset); + b.writeUInt32BE(split.lo32, offset + 4); + return 8; + } + }; + var NearInt64 = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + const lo32 = b.readUInt32LE(offset); + const hi32 = b.readInt32LE(offset + 4); + return roundedInt64(hi32, lo32); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + const split = divmodInt64(src); + b.writeUInt32LE(split.lo32, offset); + b.writeInt32LE(split.hi32, offset + 4); + return 8; + } + }; + var NearInt64BE = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + const hi32 = b.readInt32BE(offset); + const lo32 = b.readUInt32BE(offset + 4); + return roundedInt64(hi32, lo32); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + const split = divmodInt64(src); + b.writeInt32BE(split.hi32, offset); + b.writeUInt32BE(split.lo32, offset + 4); + return 8; + } + }; + var Float = class extends Layout { + constructor(property) { + super(4, property); + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return b.readFloatLE(offset); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + b.writeFloatLE(src, offset); + return 4; + } + }; + var FloatBE = class extends Layout { + constructor(property) { + super(4, property); + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return b.readFloatBE(offset); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + b.writeFloatBE(src, offset); + return 4; + } + }; + var Double = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return b.readDoubleLE(offset); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + b.writeDoubleLE(src, offset); + return 8; + } + }; + var DoubleBE = class extends Layout { + constructor(property) { + super(8, property); + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + return b.readDoubleBE(offset); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + b.writeDoubleBE(src, offset); + return 8; + } + }; + var Sequence = class extends Layout { + constructor(elementLayout, count, property) { + if (!(elementLayout instanceof Layout)) { + throw new TypeError("elementLayout must be a Layout"); + } + if (!(count instanceof ExternalLayout && count.isCount() || Number.isInteger(count) && 0 <= count)) { + throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout"); + } + let span = -1; + if (!(count instanceof ExternalLayout) && 0 < elementLayout.span) { + span = count * elementLayout.span; + } + super(span, property); + this.elementLayout = elementLayout; + this.count = count; + } + /** @override */ + getSpan(b, offset) { + if (0 <= this.span) { + return this.span; + } + if (void 0 === offset) { + offset = 0; + } + let span = 0; + let count = this.count; + if (count instanceof ExternalLayout) { + count = count.decode(b, offset); + } + if (0 < this.elementLayout.span) { + span = count * this.elementLayout.span; + } else { + let idx = 0; + while (idx < count) { + span += this.elementLayout.getSpan(b, offset + span); + ++idx; + } + } + return span; + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + const rv = []; + let i = 0; + let count = this.count; + if (count instanceof ExternalLayout) { + count = count.decode(b, offset); + } + while (i < count) { + rv.push(this.elementLayout.decode(b, offset)); + offset += this.elementLayout.getSpan(b, offset); + i += 1; + } + return rv; + } + /** Implement {@link Layout#encode|encode} for {@link Sequence}. + * + * **NOTE** If `src` is shorter than {@link Sequence#count|count} then + * the unused space in the buffer is left unchanged. If `src` is + * longer than {@link Sequence#count|count} the unneeded elements are + * ignored. + * + * **NOTE** If {@link Layout#count|count} is an instance of {@link + * ExternalLayout} then the length of `src` will be encoded as the + * count after `src` is encoded. */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + const elo = this.elementLayout; + const span = src.reduce((span2, v) => { + return span2 + elo.encode(v, b, offset + span2); + }, 0); + if (this.count instanceof ExternalLayout) { + this.count.encode(src.length, b, offset); + } + return span; + } + }; + var Structure = class extends Layout { + constructor(fields, property, decodePrefixes) { + if (!(Array.isArray(fields) && fields.reduce((acc, v) => acc && v instanceof Layout, true))) { + throw new TypeError("fields must be array of Layout instances"); + } + if ("boolean" === typeof property && void 0 === decodePrefixes) { + decodePrefixes = property; + property = void 0; + } + for (const fd of fields) { + if (0 > fd.span && void 0 === fd.property) { + throw new Error("fields cannot contain unnamed variable-length layout"); + } + } + let span = -1; + try { + span = fields.reduce((span2, fd) => span2 + fd.getSpan(), 0); + } catch (e) { + } + super(span, property); + this.fields = fields; + this.decodePrefixes = !!decodePrefixes; + } + /** @override */ + getSpan(b, offset) { + if (0 <= this.span) { + return this.span; + } + if (void 0 === offset) { + offset = 0; + } + let span = 0; + try { + span = this.fields.reduce((span2, fd) => { + const fsp = fd.getSpan(b, offset); + offset += fsp; + return span2 + fsp; + }, 0); + } catch (e) { + throw new RangeError("indeterminate span"); + } + return span; + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + const dest = this.makeDestinationObject(); + for (const fd of this.fields) { + if (void 0 !== fd.property) { + dest[fd.property] = fd.decode(b, offset); + } + offset += fd.getSpan(b, offset); + if (this.decodePrefixes && b.length === offset) { + break; + } + } + return dest; + } + /** Implement {@link Layout#encode|encode} for {@link Structure}. + * + * If `src` is missing a property for a member with a defined {@link + * Layout#property|property} the corresponding region of the buffer is + * left unmodified. */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + const firstOffset = offset; + let lastOffset = 0; + let lastWrote = 0; + for (const fd of this.fields) { + let span = fd.span; + lastWrote = 0 < span ? span : 0; + if (void 0 !== fd.property) { + const fv = src[fd.property]; + if (void 0 !== fv) { + lastWrote = fd.encode(fv, b, offset); + if (0 > span) { + span = fd.getSpan(b, offset); + } + } + } + lastOffset = offset; + offset += span; + } + return lastOffset + lastWrote - firstOffset; + } + /** @override */ + fromArray(values) { + const dest = this.makeDestinationObject(); + for (const fd of this.fields) { + if (void 0 !== fd.property && 0 < values.length) { + dest[fd.property] = values.shift(); + } + } + return dest; + } + /** + * Get access to the layout of a given property. + * + * @param {String} property - the structure member of interest. + * + * @return {Layout} - the layout associated with `property`, or + * undefined if there is no such property. + */ + layoutFor(property) { + if ("string" !== typeof property) { + throw new TypeError("property must be string"); + } + for (const fd of this.fields) { + if (fd.property === property) { + return fd; + } + } + } + /** + * Get the offset of a structure member. + * + * @param {String} property - the structure member of interest. + * + * @return {Number} - the offset in bytes to the start of `property` + * within the structure, or undefined if `property` is not a field + * within the structure. If the property is a member but follows a + * variable-length structure member a negative number will be + * returned. + */ + offsetOf(property) { + if ("string" !== typeof property) { + throw new TypeError("property must be string"); + } + let offset = 0; + for (const fd of this.fields) { + if (fd.property === property) { + return offset; + } + if (0 > fd.span) { + offset = -1; + } else if (0 <= offset) { + offset += fd.span; + } + } + } + }; + var UnionDiscriminator = class { + constructor(property) { + this.property = property; + } + /** Analog to {@link Layout#decode|Layout decode} for union discriminators. + * + * The implementation of this method need not reference the buffer if + * variant information is available through other means. */ + decode() { + throw new Error("UnionDiscriminator is abstract"); + } + /** Analog to {@link Layout#decode|Layout encode} for union discriminators. + * + * The implementation of this method need not store the value if + * variant information is maintained through other means. */ + encode() { + throw new Error("UnionDiscriminator is abstract"); + } + }; + var UnionLayoutDiscriminator = class extends UnionDiscriminator { + constructor(layout, property) { + if (!(layout instanceof ExternalLayout && layout.isCount())) { + throw new TypeError("layout must be an unsigned integer ExternalLayout"); + } + super(property || layout.property || "variant"); + this.layout = layout; + } + /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */ + decode(b, offset) { + return this.layout.decode(b, offset); + } + /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */ + encode(src, b, offset) { + return this.layout.encode(src, b, offset); + } + }; + var Union = class extends Layout { + constructor(discr, defaultLayout, property) { + const upv = discr instanceof UInt || discr instanceof UIntBE; + if (upv) { + discr = new UnionLayoutDiscriminator(new OffsetLayout(discr)); + } else if (discr instanceof ExternalLayout && discr.isCount()) { + discr = new UnionLayoutDiscriminator(discr); + } else if (!(discr instanceof UnionDiscriminator)) { + throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout"); + } + if (void 0 === defaultLayout) { + defaultLayout = null; + } + if (!(null === defaultLayout || defaultLayout instanceof Layout)) { + throw new TypeError("defaultLayout must be null or a Layout"); + } + if (null !== defaultLayout) { + if (0 > defaultLayout.span) { + throw new Error("defaultLayout must have constant span"); + } + if (void 0 === defaultLayout.property) { + defaultLayout = defaultLayout.replicate("content"); + } + } + let span = -1; + if (defaultLayout) { + span = defaultLayout.span; + if (0 <= span && upv) { + span += discr.layout.span; + } + } + super(span, property); + this.discriminator = discr; + this.usesPrefixDiscriminator = upv; + this.defaultLayout = defaultLayout; + this.registry = {}; + let boundGetSourceVariant = this.defaultGetSourceVariant.bind(this); + this.getSourceVariant = function(src) { + return boundGetSourceVariant(src); + }; + this.configGetSourceVariant = function(gsv) { + boundGetSourceVariant = gsv.bind(this); + }; + } + /** @override */ + getSpan(b, offset) { + if (0 <= this.span) { + return this.span; + } + if (void 0 === offset) { + offset = 0; + } + const vlo = this.getVariant(b, offset); + if (!vlo) { + throw new Error("unable to determine span for unrecognized variant"); + } + return vlo.getSpan(b, offset); + } + /** + * Method to infer a registered Union variant compatible with `src`. + * + * The first satisified rule in the following sequence defines the + * return value: + * * If `src` has properties matching the Union discriminator and + * the default layout, `undefined` is returned regardless of the + * value of the discriminator property (this ensures the default + * layout will be used); + * * If `src` has a property matching the Union discriminator, the + * value of the discriminator identifies a registered variant, and + * either (a) the variant has no layout, or (b) `src` has the + * variant's property, then the variant is returned (because the + * source satisfies the constraints of the variant it identifies); + * * If `src` does not have a property matching the Union + * discriminator, but does have a property matching a registered + * variant, then the variant is returned (because the source + * matches a variant without an explicit conflict); + * * An error is thrown (because we either can't identify a variant, + * or we were explicitly told the variant but can't satisfy it). + * + * @param {Object} src - an object presumed to be compatible with + * the content of the Union. + * + * @return {(undefined|VariantLayout)} - as described above. + * + * @throws {Error} - if `src` cannot be associated with a default or + * registered variant. + */ + defaultGetSourceVariant(src) { + if (src.hasOwnProperty(this.discriminator.property)) { + if (this.defaultLayout && src.hasOwnProperty(this.defaultLayout.property)) { + return void 0; + } + const vlo = this.registry[src[this.discriminator.property]]; + if (vlo && (!vlo.layout || src.hasOwnProperty(vlo.property))) { + return vlo; + } + } else { + for (const tag in this.registry) { + const vlo = this.registry[tag]; + if (src.hasOwnProperty(vlo.property)) { + return vlo; + } + } + } + throw new Error("unable to infer src variant"); + } + /** Implement {@link Layout#decode|decode} for {@link Union}. + * + * If the variant is {@link Union#addVariant|registered} the return + * value is an instance of that variant, with no explicit + * discriminator. Otherwise the {@link Union#defaultLayout|default + * layout} is used to decode the content. */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + let dest; + const dlo = this.discriminator; + const discr = dlo.decode(b, offset); + let clo = this.registry[discr]; + if (void 0 === clo) { + let contentOffset = 0; + clo = this.defaultLayout; + if (this.usesPrefixDiscriminator) { + contentOffset = dlo.layout.span; + } + dest = this.makeDestinationObject(); + dest[dlo.property] = discr; + dest[clo.property] = this.defaultLayout.decode(b, offset + contentOffset); + } else { + dest = clo.decode(b, offset); + } + return dest; + } + /** Implement {@link Layout#encode|encode} for {@link Union}. + * + * This API assumes the `src` object is consistent with the union's + * {@link Union#defaultLayout|default layout}. To encode variants + * use the appropriate variant-specific {@link VariantLayout#encode} + * method. */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + const vlo = this.getSourceVariant(src); + if (void 0 === vlo) { + const dlo = this.discriminator; + const clo = this.defaultLayout; + let contentOffset = 0; + if (this.usesPrefixDiscriminator) { + contentOffset = dlo.layout.span; + } + dlo.encode(src[dlo.property], b, offset); + return contentOffset + clo.encode( + src[clo.property], + b, + offset + contentOffset + ); + } + return vlo.encode(src, b, offset); + } + /** Register a new variant structure within a union. The newly + * created variant is returned. + * + * @param {Number} variant - initializer for {@link + * VariantLayout#variant|variant}. + * + * @param {Layout} layout - initializer for {@link + * VariantLayout#layout|layout}. + * + * @param {String} property - initializer for {@link + * Layout#property|property}. + * + * @return {VariantLayout} */ + addVariant(variant, layout, property) { + const rv = new VariantLayout(this, variant, layout, property); + this.registry[variant] = rv; + return rv; + } + /** + * Get the layout associated with a registered variant. + * + * If `vb` does not produce a registered variant the function returns + * `undefined`. + * + * @param {(Number|Buffer)} vb - either the variant number, or a + * buffer from which the discriminator is to be read. + * + * @param {Number} offset - offset into `vb` for the start of the + * union. Used only when `vb` is an instance of {Buffer}. + * + * @return {({VariantLayout}|undefined)} + */ + getVariant(vb, offset) { + let variant = vb; + if (Buffer.isBuffer(vb)) { + if (void 0 === offset) { + offset = 0; + } + variant = this.discriminator.decode(vb, offset); + } + return this.registry[variant]; + } + }; + var VariantLayout = class extends Layout { + constructor(union, variant, layout, property) { + if (!(union instanceof Union)) { + throw new TypeError("union must be a Union"); + } + if (!Number.isInteger(variant) || 0 > variant) { + throw new TypeError("variant must be a (non-negative) integer"); + } + if ("string" === typeof layout && void 0 === property) { + property = layout; + layout = null; + } + if (layout) { + if (!(layout instanceof Layout)) { + throw new TypeError("layout must be a Layout"); + } + if (null !== union.defaultLayout && 0 <= layout.span && layout.span > union.defaultLayout.span) { + throw new Error("variant span exceeds span of containing union"); + } + if ("string" !== typeof property) { + throw new TypeError("variant must have a String property"); + } + } + let span = union.span; + if (0 > union.span) { + span = layout ? layout.span : 0; + if (0 <= span && union.usesPrefixDiscriminator) { + span += union.discriminator.layout.span; + } + } + super(span, property); + this.union = union; + this.variant = variant; + this.layout = layout || null; + } + /** @override */ + getSpan(b, offset) { + if (0 <= this.span) { + return this.span; + } + if (void 0 === offset) { + offset = 0; + } + let contentOffset = 0; + if (this.union.usesPrefixDiscriminator) { + contentOffset = this.union.discriminator.layout.span; + } + return contentOffset + this.layout.getSpan(b, offset + contentOffset); + } + /** @override */ + decode(b, offset) { + const dest = this.makeDestinationObject(); + if (void 0 === offset) { + offset = 0; + } + if (this !== this.union.getVariant(b, offset)) { + throw new Error("variant mismatch"); + } + let contentOffset = 0; + if (this.union.usesPrefixDiscriminator) { + contentOffset = this.union.discriminator.layout.span; + } + if (this.layout) { + dest[this.property] = this.layout.decode(b, offset + contentOffset); + } else if (this.property) { + dest[this.property] = true; + } else if (this.union.usesPrefixDiscriminator) { + dest[this.union.discriminator.property] = this.variant; + } + return dest; + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + let contentOffset = 0; + if (this.union.usesPrefixDiscriminator) { + contentOffset = this.union.discriminator.layout.span; + } + if (this.layout && !src.hasOwnProperty(this.property)) { + throw new TypeError("variant lacks property " + this.property); + } + this.union.discriminator.encode(this.variant, b, offset); + let span = contentOffset; + if (this.layout) { + this.layout.encode(src[this.property], b, offset + contentOffset); + span += this.layout.getSpan(b, offset + contentOffset); + if (0 <= this.union.span && span > this.union.span) { + throw new Error("encoded variant overruns containing union"); + } + } + return span; + } + /** Delegate {@link Layout#fromArray|fromArray} to {@link + * VariantLayout#layout|layout}. */ + fromArray(values) { + if (this.layout) { + return this.layout.fromArray(values); + } + } + }; + function fixBitwiseResult(v) { + if (0 > v) { + v += 4294967296; + } + return v; + } + var BitStructure = class extends Layout { + constructor(word, msb, property) { + if (!(word instanceof UInt || word instanceof UIntBE)) { + throw new TypeError("word must be a UInt or UIntBE layout"); + } + if ("string" === typeof msb && void 0 === property) { + property = msb; + msb = void 0; + } + if (4 < word.span) { + throw new RangeError("word cannot exceed 32 bits"); + } + super(word.span, property); + this.word = word; + this.msb = !!msb; + this.fields = []; + let value = 0; + this._packedSetValue = function(v) { + value = fixBitwiseResult(v); + return this; + }; + this._packedGetValue = function() { + return value; + }; + } + /** @override */ + decode(b, offset) { + const dest = this.makeDestinationObject(); + if (void 0 === offset) { + offset = 0; + } + const value = this.word.decode(b, offset); + this._packedSetValue(value); + for (const fd of this.fields) { + if (void 0 !== fd.property) { + dest[fd.property] = fd.decode(value); + } + } + return dest; + } + /** Implement {@link Layout#encode|encode} for {@link BitStructure}. + * + * If `src` is missing a property for a member with a defined {@link + * Layout#property|property} the corresponding region of the packed + * value is left unmodified. Unused bits are also left unmodified. */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + const value = this.word.decode(b, offset); + this._packedSetValue(value); + for (const fd of this.fields) { + if (void 0 !== fd.property) { + const fv = src[fd.property]; + if (void 0 !== fv) { + fd.encode(fv); + } + } + } + return this.word.encode(this._packedGetValue(), b, offset); + } + /** Register a new bitfield with a containing bit structure. The + * resulting bitfield is returned. + * + * @param {Number} bits - initializer for {@link BitField#bits|bits}. + * + * @param {string} property - initializer for {@link + * Layout#property|property}. + * + * @return {BitField} */ + addField(bits, property) { + const bf = new BitField(this, bits, property); + this.fields.push(bf); + return bf; + } + /** As with {@link BitStructure#addField|addField} for single-bit + * fields with `boolean` value representation. + * + * @param {string} property - initializer for {@link + * Layout#property|property}. + * + * @return {Boolean} */ + addBoolean(property) { + const bf = new Boolean2(this, property); + this.fields.push(bf); + return bf; + } + /** + * Get access to the bit field for a given property. + * + * @param {String} property - the bit field of interest. + * + * @return {BitField} - the field associated with `property`, or + * undefined if there is no such property. + */ + fieldFor(property) { + if ("string" !== typeof property) { + throw new TypeError("property must be string"); + } + for (const fd of this.fields) { + if (fd.property === property) { + return fd; + } + } + } + }; + var BitField = class { + constructor(container, bits, property) { + if (!(container instanceof BitStructure)) { + throw new TypeError("container must be a BitStructure"); + } + if (!Number.isInteger(bits) || 0 >= bits) { + throw new TypeError("bits must be positive integer"); + } + const totalBits = 8 * container.span; + const usedBits = container.fields.reduce((sum, fd) => sum + fd.bits, 0); + if (bits + usedBits > totalBits) { + throw new Error("bits too long for span remainder (" + (totalBits - usedBits) + " of " + totalBits + " remain)"); + } + this.container = container; + this.bits = bits; + this.valueMask = (1 << bits) - 1; + if (32 === bits) { + this.valueMask = 4294967295; + } + this.start = usedBits; + if (this.container.msb) { + this.start = totalBits - usedBits - bits; + } + this.wordMask = fixBitwiseResult(this.valueMask << this.start); + this.property = property; + } + /** Store a value into the corresponding subsequence of the containing + * bit field. */ + decode() { + const word = this.container._packedGetValue(); + const wordValue = fixBitwiseResult(word & this.wordMask); + const value = wordValue >>> this.start; + return value; + } + /** Store a value into the corresponding subsequence of the containing + * bit field. + * + * **NOTE** This is not a specialization of {@link + * Layout#encode|Layout.encode} and there is no return value. */ + encode(value) { + if (!Number.isInteger(value) || value !== fixBitwiseResult(value & this.valueMask)) { + throw new TypeError(nameWithProperty("BitField.encode", this) + " value must be integer not exceeding " + this.valueMask); + } + const word = this.container._packedGetValue(); + const wordValue = fixBitwiseResult(value << this.start); + this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask) | wordValue); + } + }; + var Boolean2 = class extends BitField { + constructor(container, property) { + super(container, 1, property); + } + /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}. + * + * @returns {boolean} */ + decode(b, offset) { + return !!BitField.prototype.decode.call(this, b, offset); + } + /** @override */ + encode(value) { + if ("boolean" === typeof value) { + value = +value; + } + return BitField.prototype.encode.call(this, value); + } + }; + var Blob2 = class extends Layout { + constructor(length, property) { + if (!(length instanceof ExternalLayout && length.isCount() || Number.isInteger(length) && 0 <= length)) { + throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout"); + } + let span = -1; + if (!(length instanceof ExternalLayout)) { + span = length; + } + super(span, property); + this.length = length; + } + /** @override */ + getSpan(b, offset) { + let span = this.span; + if (0 > span) { + span = this.length.decode(b, offset); + } + return span; + } + /** @override */ + decode(b, offset) { + if (void 0 === offset) { + offset = 0; + } + let span = this.span; + if (0 > span) { + span = this.length.decode(b, offset); + } + return b.slice(offset, offset + span); + } + /** Implement {@link Layout#encode|encode} for {@link Blob}. + * + * **NOTE** If {@link Layout#count|count} is an instance of {@link + * ExternalLayout} then the length of `src` will be encoded as the + * count after `src` is encoded. */ + encode(src, b, offset) { + let span = this.length; + if (this.length instanceof ExternalLayout) { + span = src.length; + } + if (!(Buffer.isBuffer(src) && span === src.length)) { + throw new TypeError(nameWithProperty("Blob.encode", this) + " requires (length " + span + ") Buffer as src"); + } + if (offset + span > b.length) { + throw new RangeError("encoding overruns Buffer"); + } + b.write(src.toString("hex"), offset, span, "hex"); + if (this.length instanceof ExternalLayout) { + this.length.encode(span, b, offset); + } + return span; + } + }; + var CString = class extends Layout { + constructor(property) { + super(-1, property); + } + /** @override */ + getSpan(b, offset) { + if (!Buffer.isBuffer(b)) { + throw new TypeError("b must be a Buffer"); + } + if (void 0 === offset) { + offset = 0; + } + let idx = offset; + while (idx < b.length && 0 !== b[idx]) { + idx += 1; + } + return 1 + idx - offset; + } + /** @override */ + decode(b, offset, dest) { + if (void 0 === offset) { + offset = 0; + } + let span = this.getSpan(b, offset); + return b.slice(offset, offset + span - 1).toString("utf-8"); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + if ("string" !== typeof src) { + src = src.toString(); + } + const srcb = new Buffer(src, "utf8"); + const span = srcb.length; + if (offset + span > b.length) { + throw new RangeError("encoding overruns Buffer"); + } + srcb.copy(b, offset); + b[offset + span] = 0; + return span + 1; + } + }; + var UTF8 = class extends Layout { + constructor(maxSpan, property) { + if ("string" === typeof maxSpan && void 0 === property) { + property = maxSpan; + maxSpan = void 0; + } + if (void 0 === maxSpan) { + maxSpan = -1; + } else if (!Number.isInteger(maxSpan)) { + throw new TypeError("maxSpan must be an integer"); + } + super(-1, property); + this.maxSpan = maxSpan; + } + /** @override */ + getSpan(b, offset) { + if (!Buffer.isBuffer(b)) { + throw new TypeError("b must be a Buffer"); + } + if (void 0 === offset) { + offset = 0; + } + return b.length - offset; + } + /** @override */ + decode(b, offset, dest) { + if (void 0 === offset) { + offset = 0; + } + let span = this.getSpan(b, offset); + if (0 <= this.maxSpan && this.maxSpan < span) { + throw new RangeError("text length exceeds maxSpan"); + } + return b.slice(offset, offset + span).toString("utf-8"); + } + /** @override */ + encode(src, b, offset) { + if (void 0 === offset) { + offset = 0; + } + if ("string" !== typeof src) { + src = src.toString(); + } + const srcb = new Buffer(src, "utf8"); + const span = srcb.length; + if (0 <= this.maxSpan && this.maxSpan < span) { + throw new RangeError("text length exceeds maxSpan"); + } + if (offset + span > b.length) { + throw new RangeError("encoding overruns Buffer"); + } + srcb.copy(b, offset); + return span; + } + }; + var Constant = class extends Layout { + constructor(value, property) { + super(0, property); + this.value = value; + } + /** @override */ + decode(b, offset, dest) { + return this.value; + } + /** @override */ + encode(src, b, offset) { + return 0; + } + }; + exports2.ExternalLayout = ExternalLayout; + exports2.GreedyCount = GreedyCount; + exports2.OffsetLayout = OffsetLayout; + exports2.UInt = UInt; + exports2.UIntBE = UIntBE; + exports2.Int = Int; + exports2.IntBE = IntBE; + exports2.Float = Float; + exports2.FloatBE = FloatBE; + exports2.Double = Double; + exports2.DoubleBE = DoubleBE; + exports2.Sequence = Sequence; + exports2.Structure = Structure; + exports2.UnionDiscriminator = UnionDiscriminator; + exports2.UnionLayoutDiscriminator = UnionLayoutDiscriminator; + exports2.Union = Union; + exports2.VariantLayout = VariantLayout; + exports2.BitStructure = BitStructure; + exports2.BitField = BitField; + exports2.Boolean = Boolean2; + exports2.Blob = Blob2; + exports2.CString = CString; + exports2.UTF8 = UTF8; + exports2.Constant = Constant; + exports2.greedy = (elementSpan, property) => new GreedyCount(elementSpan, property); + exports2.offset = (layout, offset, property) => new OffsetLayout(layout, offset, property); + exports2.u8 = (property) => new UInt(1, property); + exports2.u16 = (property) => new UInt(2, property); + exports2.u24 = (property) => new UInt(3, property); + exports2.u32 = (property) => new UInt(4, property); + exports2.u40 = (property) => new UInt(5, property); + exports2.u48 = (property) => new UInt(6, property); + exports2.nu64 = (property) => new NearUInt64(property); + exports2.u16be = (property) => new UIntBE(2, property); + exports2.u24be = (property) => new UIntBE(3, property); + exports2.u32be = (property) => new UIntBE(4, property); + exports2.u40be = (property) => new UIntBE(5, property); + exports2.u48be = (property) => new UIntBE(6, property); + exports2.nu64be = (property) => new NearUInt64BE(property); + exports2.s8 = (property) => new Int(1, property); + exports2.s16 = (property) => new Int(2, property); + exports2.s24 = (property) => new Int(3, property); + exports2.s32 = (property) => new Int(4, property); + exports2.s40 = (property) => new Int(5, property); + exports2.s48 = (property) => new Int(6, property); + exports2.ns64 = (property) => new NearInt64(property); + exports2.s16be = (property) => new IntBE(2, property); + exports2.s24be = (property) => new IntBE(3, property); + exports2.s32be = (property) => new IntBE(4, property); + exports2.s40be = (property) => new IntBE(5, property); + exports2.s48be = (property) => new IntBE(6, property); + exports2.ns64be = (property) => new NearInt64BE(property); + exports2.f32 = (property) => new Float(property); + exports2.f32be = (property) => new FloatBE(property); + exports2.f64 = (property) => new Double(property); + exports2.f64be = (property) => new DoubleBE(property); + exports2.struct = (fields, property, decodePrefixes) => new Structure(fields, property, decodePrefixes); + exports2.bits = (word, msb, property) => new BitStructure(word, msb, property); + exports2.seq = (elementLayout, count, property) => new Sequence(elementLayout, count, property); + exports2.union = (discr, defaultLayout, property) => new Union(discr, defaultLayout, property); + exports2.unionLayoutDiscriminator = (layout, property) => new UnionLayoutDiscriminator(layout, property); + exports2.blob = (length, property) => new Blob2(length, property); + exports2.cstr = (property) => new CString(property); + exports2.utf8 = (maxSpan, property) => new UTF8(maxSpan, property); + exports2.const = (value, property) => new Constant(value, property); + } +}); + +// node_modules/@coral-xyz/borsh/dist/index.js +var require_dist7 = __commonJS({ + "node_modules/@coral-xyz/borsh/dist/index.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.map = exports2.array = exports2.rustEnum = exports2.str = exports2.vecU8 = exports2.tagged = exports2.vec = exports2.bool = exports2.option = exports2.publicKey = exports2.i256 = exports2.u256 = exports2.i128 = exports2.u128 = exports2.i64 = exports2.u64 = exports2.struct = exports2.f64 = exports2.f32 = exports2.i32 = exports2.u32 = exports2.i16 = exports2.u16 = exports2.i8 = exports2.u8 = void 0; + var buffer_layout_1 = require_Layout2(); + var web3_js_1 = require_index_cjs(); + var bn_js_1 = __importDefault2(require_bn()); + var buffer_layout_2 = require_Layout2(); + Object.defineProperty(exports2, "u8", { enumerable: true, get: function() { + return buffer_layout_2.u8; + } }); + Object.defineProperty(exports2, "i8", { enumerable: true, get: function() { + return buffer_layout_2.s8; + } }); + Object.defineProperty(exports2, "u16", { enumerable: true, get: function() { + return buffer_layout_2.u16; + } }); + Object.defineProperty(exports2, "i16", { enumerable: true, get: function() { + return buffer_layout_2.s16; + } }); + Object.defineProperty(exports2, "u32", { enumerable: true, get: function() { + return buffer_layout_2.u32; + } }); + Object.defineProperty(exports2, "i32", { enumerable: true, get: function() { + return buffer_layout_2.s32; + } }); + Object.defineProperty(exports2, "f32", { enumerable: true, get: function() { + return buffer_layout_2.f32; + } }); + Object.defineProperty(exports2, "f64", { enumerable: true, get: function() { + return buffer_layout_2.f64; + } }); + Object.defineProperty(exports2, "struct", { enumerable: true, get: function() { + return buffer_layout_2.struct; + } }); + var BNLayout = class extends buffer_layout_1.Layout { + constructor(span, signed, property) { + super(span, property); + this.blob = (0, buffer_layout_1.blob)(span); + this.signed = signed; + } + decode(b, offset = 0) { + const num = new bn_js_1.default(this.blob.decode(b, offset), 10, "le"); + if (this.signed) { + return num.fromTwos(this.span * 8).clone(); + } + return num; + } + encode(src, b, offset = 0) { + if (this.signed) { + src = src.toTwos(this.span * 8); + } + return this.blob.encode(src.toArrayLike(Buffer, "le", this.span), b, offset); + } + }; + function u6415(property) { + return new BNLayout(8, false, property); + } + exports2.u64 = u6415; + function i643(property) { + return new BNLayout(8, true, property); + } + exports2.i64 = i643; + function u1282(property) { + return new BNLayout(16, false, property); + } + exports2.u128 = u1282; + function i128(property) { + return new BNLayout(16, true, property); + } + exports2.i128 = i128; + function u2562(property) { + return new BNLayout(32, false, property); + } + exports2.u256 = u2562; + function i256(property) { + return new BNLayout(32, true, property); + } + exports2.i256 = i256; + var WrappedLayout = class extends buffer_layout_1.Layout { + constructor(layout, decoder, encoder, property) { + super(layout.span, property); + this.layout = layout; + this.decoder = decoder; + this.encoder = encoder; + } + decode(b, offset) { + return this.decoder(this.layout.decode(b, offset)); + } + encode(src, b, offset) { + return this.layout.encode(this.encoder(src), b, offset); + } + getSpan(b, offset) { + return this.layout.getSpan(b, offset); + } + }; + function publicKey23(property) { + return new WrappedLayout((0, buffer_layout_1.blob)(32), (b) => new web3_js_1.PublicKey(b), (key) => key.toBuffer(), property); + } + exports2.publicKey = publicKey23; + var OptionLayout = class extends buffer_layout_1.Layout { + constructor(layout, property) { + super(-1, property); + this.layout = layout; + this.discriminator = (0, buffer_layout_1.u8)(); + } + encode(src, b, offset = 0) { + if (src === null || src === void 0) { + return this.discriminator.encode(0, b, offset); + } + this.discriminator.encode(1, b, offset); + return this.layout.encode(src, b, offset + 1) + 1; + } + decode(b, offset = 0) { + const discriminator = this.discriminator.decode(b, offset); + if (discriminator === 0) { + return null; + } else if (discriminator === 1) { + return this.layout.decode(b, offset + 1); + } + throw new Error("Invalid option " + this.property); + } + getSpan(b, offset = 0) { + const discriminator = this.discriminator.decode(b, offset); + if (discriminator === 0) { + return 1; + } else if (discriminator === 1) { + return this.layout.getSpan(b, offset + 1) + 1; + } + throw new Error("Invalid option " + this.property); + } + }; + function option(layout, property) { + return new OptionLayout(layout, property); + } + exports2.option = option; + function bool3(property) { + return new WrappedLayout((0, buffer_layout_1.u8)(), decodeBool, encodeBool, property); + } + exports2.bool = bool3; + function decodeBool(value) { + if (value === 0) { + return false; + } else if (value === 1) { + return true; + } + throw new Error("Invalid bool: " + value); + } + function encodeBool(value) { + return value ? 1 : 0; + } + function vec(elementLayout, property) { + const length = (0, buffer_layout_1.u32)("length"); + const layout = (0, buffer_layout_1.struct)([ + length, + (0, buffer_layout_1.seq)(elementLayout, (0, buffer_layout_1.offset)(length, -length.span), "values") + ]); + return new WrappedLayout(layout, ({ values }) => values, (values) => ({ values }), property); + } + exports2.vec = vec; + function tagged(tag, layout, property) { + const wrappedLayout = (0, buffer_layout_1.struct)([ + u6415("tag"), + layout.replicate("data") + ]); + function decodeTag({ tag: receivedTag, data }) { + if (!receivedTag.eq(tag)) { + throw new Error("Invalid tag, expected: " + tag.toString("hex") + ", got: " + receivedTag.toString("hex")); + } + return data; + } + return new WrappedLayout(wrappedLayout, decodeTag, (data) => ({ tag, data }), property); + } + exports2.tagged = tagged; + function vecU8(property) { + const length = (0, buffer_layout_1.u32)("length"); + const layout = (0, buffer_layout_1.struct)([ + length, + (0, buffer_layout_1.blob)((0, buffer_layout_1.offset)(length, -length.span), "data") + ]); + return new WrappedLayout(layout, ({ data }) => data, (data) => ({ data }), property); + } + exports2.vecU8 = vecU8; + function str(property) { + return new WrappedLayout(vecU8(), (data) => data.toString("utf-8"), (s) => Buffer.from(s, "utf-8"), property); + } + exports2.str = str; + function rustEnum(variants, property, discriminant) { + const unionLayout = (0, buffer_layout_1.union)(discriminant !== null && discriminant !== void 0 ? discriminant : (0, buffer_layout_1.u8)(), property); + variants.forEach((variant, index) => unionLayout.addVariant(index, variant, variant.property)); + return unionLayout; + } + exports2.rustEnum = rustEnum; + function array11(elementLayout, length, property) { + const layout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.seq)(elementLayout, length, "values") + ]); + return new WrappedLayout(layout, ({ values }) => values, (values) => ({ values }), property); + } + exports2.array = array11; + var MapEntryLayout = class extends buffer_layout_1.Layout { + constructor(keyLayout, valueLayout, property) { + super(keyLayout.span + valueLayout.span, property); + this.keyLayout = keyLayout; + this.valueLayout = valueLayout; + } + decode(b, offset) { + offset = offset || 0; + const key = this.keyLayout.decode(b, offset); + const value = this.valueLayout.decode(b, offset + this.keyLayout.getSpan(b, offset)); + return [key, value]; + } + encode(src, b, offset) { + offset = offset || 0; + const keyBytes = this.keyLayout.encode(src[0], b, offset); + const valueBytes = this.valueLayout.encode(src[1], b, offset + keyBytes); + return keyBytes + valueBytes; + } + getSpan(b, offset) { + return this.keyLayout.getSpan(b, offset) + this.valueLayout.getSpan(b, offset); + } + }; + function map(keyLayout, valueLayout, property) { + const length = (0, buffer_layout_1.u32)("length"); + const layout = (0, buffer_layout_1.struct)([ + length, + (0, buffer_layout_1.seq)(new MapEntryLayout(keyLayout, valueLayout), (0, buffer_layout_1.offset)(length, -length.span), "values") + ]); + return new WrappedLayout(layout, ({ values }) => new Map(values), (values) => ({ values: Array.from(values.entries()) }), property); + } + exports2.map = map; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js +var require_idl = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IdlCoder = void 0; + var camelcase_1 = __importDefault2(require_camelcase()); + var borsh = __importStar2(require_dist7()); + var error_js_1 = require_error(); + var IdlCoder = class _IdlCoder { + static fieldLayout(field, types) { + const fieldName = field.name !== void 0 ? (0, camelcase_1.default)(field.name) : void 0; + switch (field.type) { + case "bool": { + return borsh.bool(fieldName); + } + case "u8": { + return borsh.u8(fieldName); + } + case "i8": { + return borsh.i8(fieldName); + } + case "u16": { + return borsh.u16(fieldName); + } + case "i16": { + return borsh.i16(fieldName); + } + case "u32": { + return borsh.u32(fieldName); + } + case "i32": { + return borsh.i32(fieldName); + } + case "f32": { + return borsh.f32(fieldName); + } + case "u64": { + return borsh.u64(fieldName); + } + case "i64": { + return borsh.i64(fieldName); + } + case "f64": { + return borsh.f64(fieldName); + } + case "u128": { + return borsh.u128(fieldName); + } + case "i128": { + return borsh.i128(fieldName); + } + case "u256": { + return borsh.u256(fieldName); + } + case "i256": { + return borsh.i256(fieldName); + } + case "bytes": { + return borsh.vecU8(fieldName); + } + case "string": { + return borsh.str(fieldName); + } + case "publicKey": { + return borsh.publicKey(fieldName); + } + default: { + if ("vec" in field.type) { + return borsh.vec(_IdlCoder.fieldLayout({ + name: void 0, + type: field.type.vec + }, types), fieldName); + } else if ("option" in field.type) { + return borsh.option(_IdlCoder.fieldLayout({ + name: void 0, + type: field.type.option + }, types), fieldName); + } else if ("defined" in field.type) { + const defined = field.type.defined; + if (types === void 0) { + throw new error_js_1.IdlError("User defined types not provided"); + } + const filtered = types.filter((t) => t.name === defined); + if (filtered.length !== 1) { + throw new error_js_1.IdlError(`Type not found: ${JSON.stringify(field)}`); + } + return _IdlCoder.typeDefLayout(filtered[0], types, fieldName); + } else if ("array" in field.type) { + let arrayTy = field.type.array[0]; + let arrayLen = field.type.array[1]; + let innerLayout = _IdlCoder.fieldLayout({ + name: void 0, + type: arrayTy + }, types); + return borsh.array(innerLayout, arrayLen, fieldName); + } else { + throw new Error(`Not yet implemented: ${field}`); + } + } + } + } + static typeDefLayout(typeDef, types = [], name) { + if (typeDef.type.kind === "struct") { + const fieldLayouts = typeDef.type.fields.map((field) => { + const x = _IdlCoder.fieldLayout(field, types); + return x; + }); + return borsh.struct(fieldLayouts, name); + } else if (typeDef.type.kind === "enum") { + let variants = typeDef.type.variants.map((variant) => { + const name2 = (0, camelcase_1.default)(variant.name); + if (variant.fields === void 0) { + return borsh.struct([], name2); + } + const fieldLayouts = variant.fields.map((f, i) => { + if (!f.hasOwnProperty("name")) { + return _IdlCoder.fieldLayout({ type: f, name: i.toString() }, types); + } + return _IdlCoder.fieldLayout(f, types); + }); + return borsh.struct(fieldLayouts, name2); + }); + if (name !== void 0) { + return borsh.rustEnum(variants).replicate(name); + } + return borsh.rustEnum(variants, name); + } else { + throw new Error(`Unknown type kint: ${typeDef}`); + } + } + }; + exports2.IdlCoder = IdlCoder; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.js +var require_instruction = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BorshInstructionCoder = exports2.SIGHASH_GLOBAL_NAMESPACE = void 0; + var bs58_1 = __importDefault2(require_bs584()); + var buffer_1 = require("buffer"); + var camelcase_1 = __importDefault2(require_camelcase()); + var snake_case_1 = require_dist6(); + var js_sha256_1 = require_sha2562(); + var borsh = __importStar2(require_dist7()); + var idl_js_1 = require_idl(); + exports2.SIGHASH_GLOBAL_NAMESPACE = "global"; + var BorshInstructionCoder = class _BorshInstructionCoder { + constructor(idl) { + this.idl = idl; + this.ixLayout = _BorshInstructionCoder.parseIxLayout(idl); + const sighashLayouts = /* @__PURE__ */ new Map(); + idl.instructions.forEach((ix) => { + const sh = sighash(exports2.SIGHASH_GLOBAL_NAMESPACE, ix.name); + sighashLayouts.set(bs58_1.default.encode(sh), { + layout: this.ixLayout.get(ix.name), + name: ix.name + }); + }); + this.sighashLayouts = sighashLayouts; + } + /** + * Encodes a program instruction. + */ + encode(ixName, ix) { + return this._encode(exports2.SIGHASH_GLOBAL_NAMESPACE, ixName, ix); + } + _encode(nameSpace, ixName, ix) { + const buffer = buffer_1.Buffer.alloc(1e3); + const methodName = (0, camelcase_1.default)(ixName); + const layout = this.ixLayout.get(methodName); + if (!layout) { + throw new Error(`Unknown method: ${methodName}`); + } + const len = layout.encode(ix, buffer); + const data = buffer.slice(0, len); + return buffer_1.Buffer.concat([sighash(nameSpace, ixName), data]); + } + static parseIxLayout(idl) { + const ixLayouts = idl.instructions.map((ix) => { + let fieldLayouts = ix.args.map((arg) => { + var _a, _b; + return idl_js_1.IdlCoder.fieldLayout(arg, Array.from([...(_a = idl.accounts) !== null && _a !== void 0 ? _a : [], ...(_b = idl.types) !== null && _b !== void 0 ? _b : []])); + }); + const name = (0, camelcase_1.default)(ix.name); + return [name, borsh.struct(fieldLayouts, name)]; + }); + return new Map(ixLayouts); + } + /** + * Decodes a program instruction. + */ + decode(ix, encoding = "hex") { + if (typeof ix === "string") { + ix = encoding === "hex" ? buffer_1.Buffer.from(ix, "hex") : bs58_1.default.decode(ix); + } + let sighash2 = bs58_1.default.encode(ix.slice(0, 8)); + let data = ix.slice(8); + const decoder = this.sighashLayouts.get(sighash2); + if (!decoder) { + return null; + } + return { + data: decoder.layout.decode(data), + name: decoder.name + }; + } + /** + * Returns a formatted table of all the fields in the given instruction data. + */ + format(ix, accountMetas) { + return InstructionFormatter.format(ix, accountMetas, this.idl); + } + }; + exports2.BorshInstructionCoder = BorshInstructionCoder; + var InstructionFormatter = class _InstructionFormatter { + static format(ix, accountMetas, idl) { + const idlIx = idl.instructions.filter((i) => ix.name === i.name)[0]; + if (idlIx === void 0) { + console.error("Invalid instruction given"); + return null; + } + const args = idlIx.args.map((idlField) => { + return { + name: idlField.name, + type: _InstructionFormatter.formatIdlType(idlField.type), + data: _InstructionFormatter.formatIdlData(idlField, ix.data[idlField.name], idl.types) + }; + }); + const flatIdlAccounts = _InstructionFormatter.flattenIdlAccounts(idlIx.accounts); + const accounts = accountMetas.map((meta, idx) => { + if (idx < flatIdlAccounts.length) { + return { + name: flatIdlAccounts[idx].name, + ...meta + }; + } else { + return { + name: void 0, + ...meta + }; + } + }); + return { + args, + accounts + }; + } + static formatIdlType(idlType) { + if (typeof idlType === "string") { + return idlType; + } + if ("vec" in idlType) { + return `Vec<${this.formatIdlType(idlType.vec)}>`; + } + if ("option" in idlType) { + return `Option<${this.formatIdlType(idlType.option)}>`; + } + if ("defined" in idlType) { + return idlType.defined; + } + if ("array" in idlType) { + return `Array<${idlType.array[0]}; ${idlType.array[1]}>`; + } + throw new Error(`Unknown IDL type: ${idlType}`); + } + static formatIdlData(idlField, data, types) { + if (typeof idlField.type === "string") { + return data.toString(); + } + if (idlField.type.hasOwnProperty("vec")) { + return "[" + data.map((d) => this.formatIdlData({ name: "", type: idlField.type.vec }, d)).join(", ") + "]"; + } + if (idlField.type.hasOwnProperty("option")) { + return data === null ? "null" : this.formatIdlData({ name: "", type: idlField.type.option }, data, types); + } + if (idlField.type.hasOwnProperty("defined")) { + if (types === void 0) { + throw new Error("User defined types not provided"); + } + const filtered = types.filter((t) => t.name === idlField.type.defined); + if (filtered.length !== 1) { + throw new Error(`Type not found: ${idlField.type.defined}`); + } + return _InstructionFormatter.formatIdlDataDefined(filtered[0], data, types); + } + return "unknown"; + } + static formatIdlDataDefined(typeDef, data, types) { + if (typeDef.type.kind === "struct") { + const struct2 = typeDef.type; + const fields = Object.keys(data).map((k) => { + const f = struct2.fields.filter((f2) => f2.name === k)[0]; + if (f === void 0) { + throw new Error("Unable to find type"); + } + return k + ": " + _InstructionFormatter.formatIdlData(f, data[k], types); + }).join(", "); + return "{ " + fields + " }"; + } else { + if (typeDef.type.variants.length === 0) { + return "{}"; + } + if (typeDef.type.variants[0].name) { + const variants = typeDef.type.variants; + const variant = Object.keys(data)[0]; + const enumType = data[variant]; + const namedFields = Object.keys(enumType).map((f) => { + var _a; + const fieldData = enumType[f]; + const idlField = (_a = variants[variant]) === null || _a === void 0 ? void 0 : _a.filter((v) => v.name === f)[0]; + if (idlField === void 0) { + throw new Error("Unable to find variant"); + } + return f + ": " + _InstructionFormatter.formatIdlData(idlField, fieldData, types); + }).join(", "); + const variantName = (0, camelcase_1.default)(variant, { pascalCase: true }); + if (namedFields.length === 0) { + return variantName; + } + return `${variantName} { ${namedFields} }`; + } else { + return "Tuple formatting not yet implemented"; + } + } + } + static flattenIdlAccounts(accounts, prefix) { + return accounts.map((account) => { + const accName = sentenceCase(account.name); + if (account.hasOwnProperty("accounts")) { + const newPrefix = prefix ? `${prefix} > ${accName}` : accName; + return _InstructionFormatter.flattenIdlAccounts(account.accounts, newPrefix); + } else { + return { + ...account, + name: prefix ? `${prefix} > ${accName}` : accName + }; + } + }).flat(); + } + }; + function sentenceCase(field) { + const result = field.replace(/([A-Z])/g, " $1"); + return result.charAt(0).toUpperCase() + result.slice(1); + } + function sighash(nameSpace, ixName) { + let name = (0, snake_case_1.snakeCase)(ixName); + let preimage = `${nameSpace}:${name}`; + return buffer_1.Buffer.from(js_sha256_1.sha256.digest(preimage)).slice(0, 8); + } + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/common.js +var require_common4 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.accountSize = void 0; + var error_js_1 = require_error(); + function accountSize(idl, idlAccount) { + if (idlAccount.type.kind === "enum") { + let variantSizes = idlAccount.type.variants.map((variant) => { + if (variant.fields === void 0) { + return 0; + } + return variant.fields.map((f) => { + if (!(typeof f === "object" && "name" in f)) { + throw new Error("Tuple enum variants not yet implemented."); + } + return typeSize(idl, f.type); + }).reduce((a, b) => a + b); + }); + return Math.max(...variantSizes) + 1; + } + if (idlAccount.type.fields === void 0) { + return 0; + } + return idlAccount.type.fields.map((f) => typeSize(idl, f.type)).reduce((a, b) => a + b, 0); + } + exports2.accountSize = accountSize; + function typeSize(idl, ty) { + var _a, _b; + switch (ty) { + case "bool": + return 1; + case "u8": + return 1; + case "i8": + return 1; + case "i16": + return 2; + case "u16": + return 2; + case "u32": + return 4; + case "i32": + return 4; + case "f32": + return 4; + case "u64": + return 8; + case "i64": + return 8; + case "f64": + return 8; + case "u128": + return 16; + case "i128": + return 16; + case "u256": + return 32; + case "i256": + return 32; + case "bytes": + return 1; + case "string": + return 1; + case "publicKey": + return 32; + default: + if ("vec" in ty) { + return 1; + } + if ("option" in ty) { + return 1 + typeSize(idl, ty.option); + } + if ("coption" in ty) { + return 4 + typeSize(idl, ty.coption); + } + if ("defined" in ty) { + const filtered = (_b = (_a = idl.types) === null || _a === void 0 ? void 0 : _a.filter((t) => t.name === ty.defined)) !== null && _b !== void 0 ? _b : []; + if (filtered.length !== 1) { + throw new error_js_1.IdlError(`Type not found: ${JSON.stringify(ty)}`); + } + let typeDef = filtered[0]; + return accountSize(idl, typeDef); + } + if ("array" in ty) { + let arrayTy = ty.array[0]; + let arraySize = ty.array[1]; + return typeSize(idl, arrayTy) * arraySize; + } + throw new Error(`Invalid type ${JSON.stringify(ty)}`); + } + } + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.js +var require_accounts = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BorshAccountsCoder = exports2.ACCOUNT_DISCRIMINATOR_SIZE = void 0; + var bs58_1 = __importDefault2(require_bs584()); + var buffer_1 = require("buffer"); + var camelcase_1 = __importDefault2(require_camelcase()); + var js_sha256_1 = require_sha2562(); + var idl_js_1 = require_idl(); + var common_js_1 = require_common4(); + exports2.ACCOUNT_DISCRIMINATOR_SIZE = 8; + var BorshAccountsCoder = class _BorshAccountsCoder { + constructor(idl) { + if (idl.accounts === void 0) { + this.accountLayouts = /* @__PURE__ */ new Map(); + return; + } + const layouts = idl.accounts.map((acc) => { + return [acc.name, idl_js_1.IdlCoder.typeDefLayout(acc, idl.types)]; + }); + this.accountLayouts = new Map(layouts); + this.idl = idl; + } + async encode(accountName, account) { + const buffer = buffer_1.Buffer.alloc(1e3); + const layout = this.accountLayouts.get(accountName); + if (!layout) { + throw new Error(`Unknown account: ${accountName}`); + } + const len = layout.encode(account, buffer); + let accountData = buffer.slice(0, len); + let discriminator = _BorshAccountsCoder.accountDiscriminator(accountName); + return buffer_1.Buffer.concat([discriminator, accountData]); + } + decode(accountName, data) { + const discriminator = _BorshAccountsCoder.accountDiscriminator(accountName); + if (discriminator.compare(data.slice(0, 8))) { + throw new Error("Invalid account discriminator"); + } + return this.decodeUnchecked(accountName, data); + } + decodeAny(data) { + const accountDescriminator = data.slice(0, 8); + const accountName = Array.from(this.accountLayouts.keys()).find((key) => _BorshAccountsCoder.accountDiscriminator(key).equals(accountDescriminator)); + if (!accountName) { + throw new Error("Account descriminator not found"); + } + return this.decodeUnchecked(accountName, data); + } + decodeUnchecked(accountName, ix) { + const data = ix.slice(exports2.ACCOUNT_DISCRIMINATOR_SIZE); + const layout = this.accountLayouts.get(accountName); + if (!layout) { + throw new Error(`Unknown account: ${accountName}`); + } + return layout.decode(data); + } + memcmp(accountName, appendData) { + const discriminator = _BorshAccountsCoder.accountDiscriminator(accountName); + return { + offset: 0, + bytes: bs58_1.default.encode(appendData ? buffer_1.Buffer.concat([discriminator, appendData]) : discriminator) + }; + } + size(idlAccount) { + var _a; + return exports2.ACCOUNT_DISCRIMINATOR_SIZE + ((_a = (0, common_js_1.accountSize)(this.idl, idlAccount)) !== null && _a !== void 0 ? _a : 0); + } + /** + * Calculates and returns a unique 8 byte discriminator prepended to all anchor accounts. + * + * @param name The name of the account to calculate the discriminator. + */ + static accountDiscriminator(name) { + return buffer_1.Buffer.from(js_sha256_1.sha256.digest(`account:${(0, camelcase_1.default)(name, { + pascalCase: true, + preserveConsecutiveUppercase: true + })}`)).slice(0, exports2.ACCOUNT_DISCRIMINATOR_SIZE); + } + }; + exports2.BorshAccountsCoder = BorshAccountsCoder; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.js +var require_event = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.eventDiscriminator = exports2.BorshEventCoder = void 0; + var buffer_1 = require("buffer"); + var base64 = __importStar2(require_base64_js()); + var js_sha256_1 = require_sha2562(); + var idl_js_1 = require_idl(); + var BorshEventCoder = class { + constructor(idl) { + if (idl.events === void 0) { + this.layouts = /* @__PURE__ */ new Map(); + return; + } + const layouts = idl.events.map((event) => { + let eventTypeDef = { + name: event.name, + type: { + kind: "struct", + fields: event.fields.map((f) => { + return { name: f.name, type: f.type }; + }) + } + }; + return [event.name, idl_js_1.IdlCoder.typeDefLayout(eventTypeDef, idl.types)]; + }); + this.layouts = new Map(layouts); + this.discriminators = new Map(idl.events === void 0 ? [] : idl.events.map((e) => [ + base64.fromByteArray(eventDiscriminator(e.name)), + e.name + ])); + } + decode(log) { + let logArr; + try { + logArr = buffer_1.Buffer.from(base64.toByteArray(log)); + } catch (e) { + return null; + } + const disc = base64.fromByteArray(logArr.slice(0, 8)); + const eventName = this.discriminators.get(disc); + if (eventName === void 0) { + return null; + } + const layout = this.layouts.get(eventName); + if (!layout) { + throw new Error(`Unknown event: ${eventName}`); + } + const data = layout.decode(logArr.slice(8)); + return { data, name: eventName }; + } + }; + exports2.BorshEventCoder = BorshEventCoder; + function eventDiscriminator(name) { + return buffer_1.Buffer.from(js_sha256_1.sha256.digest(`event:${name}`)).slice(0, 8); + } + exports2.eventDiscriminator = eventDiscriminator; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.js +var require_types3 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BorshTypesCoder = void 0; + var buffer_1 = require("buffer"); + var idl_js_1 = require_idl(); + var BorshTypesCoder = class { + constructor(idl) { + if (idl.types === void 0) { + this.typeLayouts = /* @__PURE__ */ new Map(); + return; + } + const layouts = idl.types.map((acc) => { + return [acc.name, idl_js_1.IdlCoder.typeDefLayout(acc, idl.types)]; + }); + this.typeLayouts = new Map(layouts); + this.idl = idl; + } + encode(typeName, type) { + const buffer = buffer_1.Buffer.alloc(1e3); + const layout = this.typeLayouts.get(typeName); + if (!layout) { + throw new Error(`Unknown type: ${typeName}`); + } + const len = layout.encode(type, buffer); + return buffer.slice(0, len); + } + decode(typeName, typeData) { + const layout = this.typeLayouts.get(typeName); + if (!layout) { + throw new Error(`Unknown type: ${typeName}`); + } + return layout.decode(typeData); + } + }; + exports2.BorshTypesCoder = BorshTypesCoder; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.js +var require_borsh = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BorshCoder = exports2.eventDiscriminator = exports2.BorshEventCoder = exports2.ACCOUNT_DISCRIMINATOR_SIZE = exports2.BorshAccountsCoder = exports2.BorshInstructionCoder = void 0; + var instruction_js_1 = require_instruction(); + var accounts_js_1 = require_accounts(); + var event_js_1 = require_event(); + var types_js_1 = require_types3(); + var instruction_js_2 = require_instruction(); + Object.defineProperty(exports2, "BorshInstructionCoder", { enumerable: true, get: function() { + return instruction_js_2.BorshInstructionCoder; + } }); + var accounts_js_2 = require_accounts(); + Object.defineProperty(exports2, "BorshAccountsCoder", { enumerable: true, get: function() { + return accounts_js_2.BorshAccountsCoder; + } }); + Object.defineProperty(exports2, "ACCOUNT_DISCRIMINATOR_SIZE", { enumerable: true, get: function() { + return accounts_js_2.ACCOUNT_DISCRIMINATOR_SIZE; + } }); + var event_js_2 = require_event(); + Object.defineProperty(exports2, "BorshEventCoder", { enumerable: true, get: function() { + return event_js_2.BorshEventCoder; + } }); + Object.defineProperty(exports2, "eventDiscriminator", { enumerable: true, get: function() { + return event_js_2.eventDiscriminator; + } }); + var BorshCoder = class { + constructor(idl) { + this.instruction = new instruction_js_1.BorshInstructionCoder(idl); + this.accounts = new accounts_js_1.BorshAccountsCoder(idl); + this.events = new event_js_1.BorshEventCoder(idl); + this.types = new types_js_1.BorshTypesCoder(idl); + } + }; + exports2.BorshCoder = BorshCoder; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.js +var require_instruction2 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemInstructionCoder = void 0; + var bn_js_1 = __importDefault2(require_bn()); + var BufferLayout = __importStar2(require_Layout2()); + var camelcase_1 = __importDefault2(require_camelcase()); + var SystemInstructionCoder = class { + // eslint-disable-next-line @typescript-eslint/no-empty-function + constructor(_) { + } + encode(ixName, ix) { + switch ((0, camelcase_1.default)(ixName)) { + case "createAccount": { + return encodeCreateAccount(ix); + } + case "assign": { + return encodeAssign(ix); + } + case "transfer": { + return encodeTransfer(ix); + } + case "createAccountWithSeed": { + return encodeCreateAccountWithSeed(ix); + } + case "advanceNonceAccount": { + return encodeAdvanceNonceAccount(ix); + } + case "withdrawNonceAccount": { + return encodeWithdrawNonceAccount(ix); + } + case "initializeNonceAccount": { + return encodeInitializeNonceAccount(ix); + } + case "authorizeNonceAccount": { + return encodeAuthorizeNonceAccount(ix); + } + case "allocate": { + return encodeAllocate(ix); + } + case "allocateWithSeed": { + return encodeAllocateWithSeed(ix); + } + case "assignWithSeed": { + return encodeAssignWithSeed(ix); + } + case "transferWithSeed": { + return encodeTransferWithSeed(ix); + } + default: { + throw new Error(`Invalid instruction: ${ixName}`); + } + } + } + encodeState(_ixName, _ix) { + throw new Error("System does not have state"); + } + }; + exports2.SystemInstructionCoder = SystemInstructionCoder; + var RustStringLayout = class extends BufferLayout.Layout { + constructor(property) { + super(-1, property); + this.property = property; + this.layout = BufferLayout.struct([ + BufferLayout.u32("length"), + BufferLayout.u32("lengthPadding"), + BufferLayout.blob(BufferLayout.offset(BufferLayout.u32(), -8), "chars") + ], this.property); + } + encode(src, b, offset = 0) { + if (src === null || src === void 0) { + return this.layout.span; + } + const data = { + chars: Buffer.from(src, "utf8") + }; + return this.layout.encode(data, b, offset); + } + decode(b, offset = 0) { + const data = this.layout.decode(b, offset); + return data["chars"].toString(); + } + getSpan(b, offset = 0) { + return BufferLayout.u32().span + BufferLayout.u32().span + new bn_js_1.default(new Uint8Array(b).slice(offset, offset + 4), 10, "le").toNumber(); + } + }; + function rustStringLayout(property) { + return new RustStringLayout(property); + } + function publicKey23(property) { + return BufferLayout.blob(32, property); + } + function encodeCreateAccount({ lamports, space, owner }) { + return encodeData({ + createAccount: { lamports, space, owner: owner.toBuffer() } + }); + } + function encodeAssign({ owner }) { + return encodeData({ + assign: { owner: owner.toBuffer() } + }); + } + function encodeTransfer({ lamports }) { + return encodeData({ + transfer: { lamports } + }); + } + function encodeCreateAccountWithSeed({ base, seed, lamports, space, owner }) { + return encodeData({ + createAccountWithSeed: { + base: base.toBuffer(), + seed, + lamports, + space, + owner: owner.toBuffer() + } + }, LAYOUT.getVariant(3).span + seed.length); + } + function encodeInitializeNonceAccount({ authorized }) { + return encodeData({ + initializeNonceAccount: { authorized: authorized.toBuffer() } + }); + } + function encodeAdvanceNonceAccount({ authorized }) { + return encodeData({ + advanceNonceAccount: { authorized: authorized.toBuffer() } + }); + } + function encodeWithdrawNonceAccount({ lamports }) { + return encodeData({ + withdrawNonceAccount: { lamports } + }); + } + function encodeAuthorizeNonceAccount({ authorized }) { + return encodeData({ + authorizeNonceAccount: { authorized: authorized.toBuffer() } + }); + } + function encodeAllocate({ space }) { + return encodeData({ + allocate: { space } + }); + } + function encodeAllocateWithSeed({ base, seed, space, owner }) { + return encodeData({ + allocateWithSeed: { + base: base.toBuffer(), + seed, + space, + owner: owner.toBuffer() + } + }, LAYOUT.getVariant(9).span + seed.length); + } + function encodeAssignWithSeed({ base, seed, owner }) { + return encodeData({ + assignWithSeed: { + base: base.toBuffer(), + seed, + owner: owner.toBuffer() + } + }, LAYOUT.getVariant(10).span + seed.length); + } + function encodeTransferWithSeed({ lamports, seed, owner }) { + return encodeData({ + transferWithSeed: { + lamports, + seed, + owner: owner.toBuffer() + } + }, LAYOUT.getVariant(11).span + seed.length); + } + var LAYOUT = BufferLayout.union(BufferLayout.u32("instruction")); + LAYOUT.addVariant(0, BufferLayout.struct([ + BufferLayout.ns64("lamports"), + BufferLayout.ns64("space"), + publicKey23("owner") + ]), "createAccount"); + LAYOUT.addVariant(1, BufferLayout.struct([publicKey23("owner")]), "assign"); + LAYOUT.addVariant(2, BufferLayout.struct([BufferLayout.ns64("lamports")]), "transfer"); + LAYOUT.addVariant(3, BufferLayout.struct([ + publicKey23("base"), + rustStringLayout("seed"), + BufferLayout.ns64("lamports"), + BufferLayout.ns64("space"), + publicKey23("owner") + ]), "createAccountWithSeed"); + LAYOUT.addVariant(4, BufferLayout.struct([publicKey23("authorized")]), "advanceNonceAccount"); + LAYOUT.addVariant(5, BufferLayout.struct([BufferLayout.ns64("lamports")]), "withdrawNonceAccount"); + LAYOUT.addVariant(6, BufferLayout.struct([publicKey23("authorized")]), "initializeNonceAccount"); + LAYOUT.addVariant(7, BufferLayout.struct([publicKey23("authorized")]), "authorizeNonceAccount"); + LAYOUT.addVariant(8, BufferLayout.struct([BufferLayout.ns64("space")]), "allocate"); + LAYOUT.addVariant(9, BufferLayout.struct([ + publicKey23("base"), + rustStringLayout("seed"), + BufferLayout.ns64("space"), + publicKey23("owner") + ]), "allocateWithSeed"); + LAYOUT.addVariant(10, BufferLayout.struct([ + publicKey23("base"), + rustStringLayout("seed"), + publicKey23("owner") + ]), "assignWithSeed"); + LAYOUT.addVariant(11, BufferLayout.struct([ + BufferLayout.ns64("lamports"), + rustStringLayout("seed"), + publicKey23("owner") + ]), "transferWithSeed"); + function encodeData(instruction, maxSpan) { + const b = Buffer.alloc(maxSpan !== null && maxSpan !== void 0 ? maxSpan : instructionMaxSpan); + const span = LAYOUT.encode(instruction, b); + if (maxSpan === void 0) { + return b.slice(0, span); + } + return b; + } + var instructionMaxSpan = Math.max(...Object.values(LAYOUT.registry).map((r) => r.span)); + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.js +var require_accounts2 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemAccountsCoder = void 0; + var BufferLayout = __importStar2(require_Layout2()); + var web3_js_1 = require_index_cjs(); + var common_js_1 = require_common4(); + var SystemAccountsCoder = class { + constructor(idl) { + this.idl = idl; + } + async encode(accountName, account) { + switch (accountName) { + case "nonce": { + const buffer = Buffer.alloc(web3_js_1.NONCE_ACCOUNT_LENGTH); + const len = NONCE_ACCOUNT_LAYOUT.encode(account, buffer); + return buffer.slice(0, len); + } + default: { + throw new Error(`Invalid account name: ${accountName}`); + } + } + } + decode(accountName, ix) { + return this.decodeUnchecked(accountName, ix); + } + decodeUnchecked(accountName, ix) { + switch (accountName) { + case "nonce": { + return decodeNonceAccount(ix); + } + default: { + throw new Error(`Invalid account name: ${accountName}`); + } + } + } + // TODO: this won't use the appendData. + memcmp(accountName, _appendData) { + switch (accountName) { + case "nonce": { + return { + dataSize: web3_js_1.NONCE_ACCOUNT_LENGTH + }; + } + default: { + throw new Error(`Invalid account name: ${accountName}`); + } + } + } + size(idlAccount) { + var _a; + return (_a = (0, common_js_1.accountSize)(this.idl, idlAccount)) !== null && _a !== void 0 ? _a : 0; + } + }; + exports2.SystemAccountsCoder = SystemAccountsCoder; + function decodeNonceAccount(ix) { + return NONCE_ACCOUNT_LAYOUT.decode(ix); + } + var WrappedLayout = class extends BufferLayout.Layout { + constructor(layout, decoder, encoder, property) { + super(layout.span, property); + this.layout = layout; + this.decoder = decoder; + this.encoder = encoder; + } + decode(b, offset) { + return this.decoder(this.layout.decode(b, offset)); + } + encode(src, b, offset) { + return this.layout.encode(this.encoder(src), b, offset); + } + getSpan(b, offset) { + return this.layout.getSpan(b, offset); + } + }; + function publicKey23(property) { + return new WrappedLayout(BufferLayout.blob(32), (b) => new web3_js_1.PublicKey(b), (key) => key.toBuffer(), property); + } + var NONCE_ACCOUNT_LAYOUT = BufferLayout.struct([ + BufferLayout.u32("version"), + BufferLayout.u32("state"), + publicKey23("authorizedPubkey"), + publicKey23("nonce"), + BufferLayout.struct([BufferLayout.nu64("lamportsPerSignature")], "feeCalculator") + ]); + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.js +var require_events2 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemEventsCoder = void 0; + var SystemEventsCoder = class { + constructor(_idl) { + } + decode(_log) { + throw new Error("System program does not have events"); + } + }; + exports2.SystemEventsCoder = SystemEventsCoder; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.js +var require_types4 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemTypesCoder = void 0; + var SystemTypesCoder = class { + constructor(_idl) { + } + encode(_name, _type) { + throw new Error("System does not have user-defined types"); + } + decode(_name, _typeData) { + throw new Error("System does not have user-defined types"); + } + }; + exports2.SystemTypesCoder = SystemTypesCoder; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.js +var require_system = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemCoder = void 0; + var instruction_js_1 = require_instruction2(); + var accounts_js_1 = require_accounts2(); + var events_js_1 = require_events2(); + var types_js_1 = require_types4(); + var SystemCoder = class { + constructor(idl) { + this.instruction = new instruction_js_1.SystemInstructionCoder(idl); + this.accounts = new accounts_js_1.SystemAccountsCoder(idl); + this.events = new events_js_1.SystemEventsCoder(idl); + this.types = new types_js_1.SystemTypesCoder(idl); + } + }; + exports2.SystemCoder = SystemCoder; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/coder/index.js +var require_coder = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/coder/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_borsh(), exports2); + __exportStar2(require_system(), exports2); + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.js +var require_sha2563 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.hash = void 0; + var js_sha256_1 = require_sha2562(); + function hash(data) { + return (0, js_sha256_1.sha256)(data); + } + exports2.hash = hash; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.js +var require_pubkey = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.associated = exports2.createWithSeedSync = void 0; + var buffer_1 = require("buffer"); + var web3_js_1 = require_index_cjs(); + var common_js_1 = require_common3(); + var js_sha256_1 = require_sha2562(); + function createWithSeedSync(fromPublicKey, seed, programId) { + const buffer = buffer_1.Buffer.concat([ + fromPublicKey.toBuffer(), + buffer_1.Buffer.from(seed), + programId.toBuffer() + ]); + const hash = js_sha256_1.sha256.digest(buffer); + return new web3_js_1.PublicKey(buffer_1.Buffer.from(hash)); + } + exports2.createWithSeedSync = createWithSeedSync; + function associated(programId, ...args) { + let seeds = [buffer_1.Buffer.from([97, 110, 99, 104, 111, 114])]; + args.forEach((arg) => { + seeds.push(arg instanceof buffer_1.Buffer ? arg : (0, common_js_1.translateAddress)(arg).toBuffer()); + }); + const [assoc] = web3_js_1.PublicKey.findProgramAddressSync(seeds, (0, common_js_1.translateAddress)(programId)); + return assoc; + } + exports2.associated = associated; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/token.js +var require_token = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/token.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.associatedAddress = exports2.ASSOCIATED_PROGRAM_ID = exports2.TOKEN_PROGRAM_ID = void 0; + var web3_js_1 = require_index_cjs(); + exports2.TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"); + exports2.ASSOCIATED_PROGRAM_ID = new web3_js_1.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"); + function associatedAddress({ mint, owner }) { + return web3_js_1.PublicKey.findProgramAddressSync([owner.toBuffer(), exports2.TOKEN_PROGRAM_ID.toBuffer(), mint.toBuffer()], exports2.ASSOCIATED_PROGRAM_ID)[0]; + } + exports2.associatedAddress = associatedAddress; + } +}); + +// node_modules/cross-fetch/dist/node-ponyfill.js +var require_node_ponyfill = __commonJS({ + "node_modules/cross-fetch/dist/node-ponyfill.js"(exports2, module2) { + var nodeFetch = require_lib4(); + var realFetch = nodeFetch.default || nodeFetch; + var fetch2 = function(url, options) { + if (/^\/\//.test(url)) { + url = "https:" + url; + } + return realFetch.call(this, url, options); + }; + fetch2.ponyfill = true; + module2.exports = exports2 = fetch2; + exports2.fetch = fetch2; + exports2.Headers = nodeFetch.Headers; + exports2.Request = nodeFetch.Request; + exports2.Response = nodeFetch.Response; + exports2.default = fetch2; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.js +var require_registry = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeUpgradeableLoaderState = exports2.fetchData = exports2.verifiedBuild = void 0; + var cross_fetch_1 = __importDefault2(require_node_ponyfill()); + var borsh = __importStar2(require_dist7()); + async function verifiedBuild(connection, programId, limit = 5) { + const url = `https://api.apr.dev/api/v0/program/${programId.toString()}/latest?limit=${limit}`; + const [programData, latestBuildsResp] = await Promise.all([ + fetchData(connection, programId), + (0, cross_fetch_1.default)(url) + ]); + const latestBuilds = (await latestBuildsResp.json()).filter((b) => !b.aborted && b.state === "Built" && b.verified === "Verified"); + if (latestBuilds.length === 0) { + return null; + } + const build = latestBuilds[0]; + if (programData.slot.toNumber() !== build.verified_slot) { + return null; + } + return build; + } + exports2.verifiedBuild = verifiedBuild; + async function fetchData(connection, programId) { + const accountInfo = await connection.getAccountInfo(programId); + if (accountInfo === null) { + throw new Error("program account not found"); + } + const { program } = decodeUpgradeableLoaderState(accountInfo.data); + const programdataAccountInfo = await connection.getAccountInfo(program.programdataAddress); + if (programdataAccountInfo === null) { + throw new Error("program data account not found"); + } + const { programData } = decodeUpgradeableLoaderState(programdataAccountInfo.data); + return programData; + } + exports2.fetchData = fetchData; + var UPGRADEABLE_LOADER_STATE_LAYOUT = borsh.rustEnum([ + borsh.struct([], "uninitialized"), + borsh.struct([borsh.option(borsh.publicKey(), "authorityAddress")], "buffer"), + borsh.struct([borsh.publicKey("programdataAddress")], "program"), + borsh.struct([ + borsh.u64("slot"), + borsh.option(borsh.publicKey(), "upgradeAuthorityAddress") + ], "programData") + ], void 0, borsh.u32()); + function decodeUpgradeableLoaderState(data) { + return UPGRADEABLE_LOADER_STATE_LAYOUT.decode(data); + } + exports2.decodeUpgradeableLoaderState = decodeUpgradeableLoaderState; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/utils/index.js +var require_utils8 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/utils/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.registry = exports2.features = exports2.token = exports2.bytes = exports2.publicKey = exports2.rpc = exports2.sha256 = void 0; + exports2.sha256 = __importStar2(require_sha2563()); + exports2.rpc = __importStar2(require_rpc()); + exports2.publicKey = __importStar2(require_pubkey()); + exports2.bytes = __importStar2(require_bytes()); + exports2.token = __importStar2(require_token()); + exports2.features = __importStar2(require_features()); + exports2.registry = __importStar2(require_registry()); + } +}); + +// node_modules/pako/lib/zlib/trees.js +var require_trees = __commonJS({ + "node_modules/pako/lib/zlib/trees.js"(exports2, module2) { + "use strict"; + var Z_FIXED = 4; + var Z_BINARY = 0; + var Z_TEXT = 1; + var Z_UNKNOWN = 2; + function zero(buf) { + let len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + var STORED_BLOCK = 0; + var STATIC_TREES = 1; + var DYN_TREES = 2; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var Buf_size = 16; + var MAX_BL_BITS = 7; + var END_BLOCK = 256; + var REP_3_6 = 16; + var REPZ_3_10 = 17; + var REPZ_11_138 = 18; + var extra_lbits = ( + /* extra bits for each length code */ + new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]) + ); + var extra_dbits = ( + /* extra bits for each distance code */ + new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]) + ); + var extra_blbits = ( + /* extra bits for each bit length code */ + new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]) + ); + var bl_order = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); + var DIST_CODE_LEN = 512; + var static_ltree = new Array((L_CODES + 2) * 2); + zero(static_ltree); + var static_dtree = new Array(D_CODES * 2); + zero(static_dtree); + var _dist_code = new Array(DIST_CODE_LEN); + zero(_dist_code); + var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); + zero(_length_code); + var base_length = new Array(LENGTH_CODES); + zero(base_length); + var base_dist = new Array(D_CODES); + zero(base_dist); + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + this.has_stree = static_tree && static_tree.length; + } + var static_l_desc; + var static_d_desc; + var static_bl_desc; + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; + } + var d_code = (dist) => { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + }; + var put_short = (s, w) => { + s.pending_buf[s.pending++] = w & 255; + s.pending_buf[s.pending++] = w >>> 8 & 255; + }; + var send_bits = (s, value, length) => { + if (s.bi_valid > Buf_size - length) { + s.bi_buf |= value << s.bi_valid & 65535; + put_short(s, s.bi_buf); + s.bi_buf = value >> Buf_size - s.bi_valid; + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= value << s.bi_valid & 65535; + s.bi_valid += length; + } + }; + var send_code = (s, c, tree) => { + send_bits( + s, + tree[c * 2], + tree[c * 2 + 1] + /*.Len*/ + ); + }; + var bi_reverse = (code, len) => { + let res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + }; + var bi_flush = (s) => { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 255; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + }; + var gen_bitlen = (s, desc) => { + const tree = desc.dyn_tree; + const max_code = desc.max_code; + const stree = desc.stat_desc.static_tree; + const has_stree = desc.stat_desc.has_stree; + const extra = desc.stat_desc.extra_bits; + const base = desc.stat_desc.extra_base; + const max_length = desc.stat_desc.max_length; + let h; + let n, m; + let bits; + let xbits; + let f; + let overflow = 0; + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + tree[s.heap[s.heap_max] * 2 + 1] = 0; + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + if (n > max_code) { + continue; + } + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); + } + } + if (overflow === 0) { + return; + } + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { + bits--; + } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + overflow -= 2; + } while (overflow > 0); + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { + continue; + } + if (tree[m * 2 + 1] !== bits) { + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } + }; + var gen_codes = (tree, max_code, bl_count) => { + const next_code = new Array(MAX_BITS + 1); + let code = 0; + let bits; + let n; + for (bits = 1; bits <= MAX_BITS; bits++) { + code = code + bl_count[bits - 1] << 1; + next_code[bits] = code; + } + for (n = 0; n <= max_code; n++) { + let len = tree[n * 2 + 1]; + if (len === 0) { + continue; + } + tree[n * 2] = bi_reverse(next_code[len]++, len); + } + }; + var tr_static_init = () => { + let n; + let bits; + let length; + let code; + let dist; + const bl_count = new Array(MAX_BITS + 1); + length = 0; + for (code = 0; code < LENGTH_CODES - 1; code++) { + base_length[code] = length; + for (n = 0; n < 1 << extra_lbits[code]; n++) { + _length_code[length++] = code; + } + } + _length_code[length - 1] = code; + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < 1 << extra_dbits[code]; n++) { + _dist_code[dist++] = code; + } + } + dist >>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { + _dist_code[256 + dist++] = code; + } + } + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + gen_codes(static_ltree, L_CODES + 1, bl_count); + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + }; + var init_block = (s) => { + let n; + for (n = 0; n < L_CODES; n++) { + s.dyn_ltree[n * 2] = 0; + } + for (n = 0; n < D_CODES; n++) { + s.dyn_dtree[n * 2] = 0; + } + for (n = 0; n < BL_CODES; n++) { + s.bl_tree[n * 2] = 0; + } + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.sym_next = s.matches = 0; + }; + var bi_windup = (s) => { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + }; + var smaller = (tree, n, m, depth) => { + const _n2 = n * 2; + const _m2 = m * 2; + return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; + }; + var pqdownheap = (s, tree, k) => { + const v = s.heap[k]; + let j = k << 1; + while (j <= s.heap_len) { + if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + if (smaller(tree, v, s.heap[j], s.depth)) { + break; + } + s.heap[k] = s.heap[j]; + k = j; + j <<= 1; + } + s.heap[k] = v; + }; + var compress_block = (s, ltree, dtree) => { + let dist; + let lc; + let sx = 0; + let code; + let extra; + if (s.sym_next !== 0) { + do { + dist = s.pending_buf[s.sym_buf + sx++] & 255; + dist += (s.pending_buf[s.sym_buf + sx++] & 255) << 8; + lc = s.pending_buf[s.sym_buf + sx++]; + if (dist === 0) { + send_code(s, lc, ltree); + } else { + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); + } + dist--; + code = d_code(dist); + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); + } + } + } while (sx < s.sym_next); + } + send_code(s, END_BLOCK, ltree); + }; + var build_tree = (s, desc) => { + const tree = desc.dyn_tree; + const stree = desc.stat_desc.static_tree; + const has_stree = desc.stat_desc.has_stree; + const elems = desc.stat_desc.elems; + let n, m; + let max_code = -1; + let node; + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + } else { + tree[n * 2 + 1] = 0; + } + } + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; + } + } + desc.max_code = max_code; + for (n = s.heap_len >> 1; n >= 1; n--) { + pqdownheap(s, tree, n); + } + node = elems; + do { + n = s.heap[ + 1 + /*SMALLEST*/ + ]; + s.heap[ + 1 + /*SMALLEST*/ + ] = s.heap[s.heap_len--]; + pqdownheap( + s, + tree, + 1 + /*SMALLEST*/ + ); + m = s.heap[ + 1 + /*SMALLEST*/ + ]; + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + s.heap[ + 1 + /*SMALLEST*/ + ] = node++; + pqdownheap( + s, + tree, + 1 + /*SMALLEST*/ + ); + } while (s.heap_len >= 2); + s.heap[--s.heap_max] = s.heap[ + 1 + /*SMALLEST*/ + ]; + gen_bitlen(s, desc); + gen_codes(tree, max_code, s.bl_count); + }; + var scan_tree = (s, tree, max_code) => { + let n; + let prevlen = -1; + let curlen; + let nextlen = tree[0 * 2 + 1]; + let count = 0; + let max_count = 7; + let min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 65535; + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + } else if (curlen !== 0) { + if (curlen !== prevlen) { + s.bl_tree[curlen * 2]++; + } + s.bl_tree[REP_3_6 * 2]++; + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + } else { + s.bl_tree[REPZ_11_138 * 2]++; + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + }; + var send_tree = (s, tree, max_code) => { + let n; + let prevlen = -1; + let curlen; + let nextlen = tree[0 * 2 + 1]; + let count = 0; + let max_count = 7; + let min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + do { + send_code(s, curlen, s.bl_tree); + } while (--count !== 0); + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + }; + var build_bl_tree = (s) => { + let max_blindex; + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + build_tree(s, s.bl_desc); + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; + } + } + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + return max_blindex; + }; + var send_all_trees = (s, lcodes, dcodes, blcodes) => { + let rank; + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + send_tree(s, s.dyn_ltree, lcodes - 1); + send_tree(s, s.dyn_dtree, dcodes - 1); + }; + var detect_data_type = (s) => { + let block_mask = 4093624447; + let n; + for (n = 0; n <= 31; n++, block_mask >>>= 1) { + if (block_mask & 1 && s.dyn_ltree[n * 2] !== 0) { + return Z_BINARY; + } + } + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + return Z_BINARY; + }; + var static_init_done = false; + var _tr_init = (s) => { + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + s.bi_buf = 0; + s.bi_valid = 0; + init_block(s); + }; + var _tr_stored_block = (s, buf, stored_len, last) => { + send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); + bi_windup(s); + put_short(s, stored_len); + put_short(s, ~stored_len); + if (stored_len) { + s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending); + } + s.pending += stored_len; + }; + var _tr_align = (s) => { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + }; + var _tr_flush_block = (s, buf, stored_len, last) => { + let opt_lenb, static_lenb; + let max_blindex = 0; + if (s.level > 0) { + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + build_tree(s, s.l_desc); + build_tree(s, s.d_desc); + max_blindex = build_bl_tree(s); + opt_lenb = s.opt_len + 3 + 7 >>> 3; + static_lenb = s.static_len + 3 + 7 >>> 3; + if (static_lenb <= opt_lenb) { + opt_lenb = static_lenb; + } + } else { + opt_lenb = static_lenb = stored_len + 5; + } + if (stored_len + 4 <= opt_lenb && buf !== -1) { + _tr_stored_block(s, buf, stored_len, last); + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + } else { + send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + init_block(s); + if (last) { + bi_windup(s); + } + }; + var _tr_tally = (s, dist, lc) => { + s.pending_buf[s.sym_buf + s.sym_next++] = dist; + s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8; + s.pending_buf[s.sym_buf + s.sym_next++] = lc; + if (dist === 0) { + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + dist--; + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + return s.sym_next === s.sym_end; + }; + module2.exports._tr_init = _tr_init; + module2.exports._tr_stored_block = _tr_stored_block; + module2.exports._tr_flush_block = _tr_flush_block; + module2.exports._tr_tally = _tr_tally; + module2.exports._tr_align = _tr_align; + } +}); + +// node_modules/pako/lib/zlib/adler32.js +var require_adler32 = __commonJS({ + "node_modules/pako/lib/zlib/adler32.js"(exports2, module2) { + "use strict"; + var adler32 = (adler, buf, len, pos) => { + let s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + }; + module2.exports = adler32; + } +}); + +// node_modules/pako/lib/zlib/crc32.js +var require_crc32 = __commonJS({ + "node_modules/pako/lib/zlib/crc32.js"(exports2, module2) { + "use strict"; + var makeTable = () => { + let c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + }; + var crcTable = new Uint32Array(makeTable()); + var crc32 = (crc, buf, len, pos) => { + const t = crcTable; + const end = pos + len; + crc ^= -1; + for (let i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + }; + module2.exports = crc32; + } +}); + +// node_modules/pako/lib/zlib/messages.js +var require_messages = __commonJS({ + "node_modules/pako/lib/zlib/messages.js"(exports2, module2) { + "use strict"; + module2.exports = { + 2: "need dictionary", + /* Z_NEED_DICT 2 */ + 1: "stream end", + /* Z_STREAM_END 1 */ + 0: "", + /* Z_OK 0 */ + "-1": "file error", + /* Z_ERRNO (-1) */ + "-2": "stream error", + /* Z_STREAM_ERROR (-2) */ + "-3": "data error", + /* Z_DATA_ERROR (-3) */ + "-4": "insufficient memory", + /* Z_MEM_ERROR (-4) */ + "-5": "buffer error", + /* Z_BUF_ERROR (-5) */ + "-6": "incompatible version" + /* Z_VERSION_ERROR (-6) */ + }; + } +}); + +// node_modules/pako/lib/zlib/constants.js +var require_constants7 = __commonJS({ + "node_modules/pako/lib/zlib/constants.js"(exports2, module2) { + "use strict"; + module2.exports = { + /* Allowed flush values; see deflate() and inflate() below for details */ + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + /* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_MEM_ERROR: -4, + Z_BUF_ERROR: -5, + //Z_VERSION_ERROR: -6, + /* compression levels */ + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + /* Possible values of the data_type field (though see inflate()) */ + Z_BINARY: 0, + Z_TEXT: 1, + //Z_ASCII: 1, // = Z_TEXT (deprecated) + Z_UNKNOWN: 2, + /* The deflate compression method */ + Z_DEFLATED: 8 + //Z_NULL: null // Use -1 or null inline, depending on var type + }; + } +}); + +// node_modules/pako/lib/zlib/deflate.js +var require_deflate = __commonJS({ + "node_modules/pako/lib/zlib/deflate.js"(exports2, module2) { + "use strict"; + var { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = require_trees(); + var adler32 = require_adler32(); + var crc32 = require_crc32(); + var msg = require_messages(); + var { + Z_NO_FLUSH, + Z_PARTIAL_FLUSH, + Z_FULL_FLUSH, + Z_FINISH, + Z_BLOCK, + Z_OK, + Z_STREAM_END, + Z_STREAM_ERROR, + Z_DATA_ERROR, + Z_BUF_ERROR, + Z_DEFAULT_COMPRESSION, + Z_FILTERED, + Z_HUFFMAN_ONLY, + Z_RLE, + Z_FIXED, + Z_DEFAULT_STRATEGY, + Z_UNKNOWN, + Z_DEFLATED + } = require_constants7(); + var MAX_MEM_LEVEL = 9; + var MAX_WBITS = 15; + var DEF_MEM_LEVEL = 8; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + var PRESET_DICT = 32; + var INIT_STATE = 42; + var GZIP_STATE = 57; + var EXTRA_STATE = 69; + var NAME_STATE = 73; + var COMMENT_STATE = 91; + var HCRC_STATE = 103; + var BUSY_STATE = 113; + var FINISH_STATE = 666; + var BS_NEED_MORE = 1; + var BS_BLOCK_DONE = 2; + var BS_FINISH_STARTED = 3; + var BS_FINISH_DONE = 4; + var OS_CODE = 3; + var err = (strm, errorCode) => { + strm.msg = msg[errorCode]; + return errorCode; + }; + var rank = (f) => { + return f * 2 - (f > 4 ? 9 : 0); + }; + var zero = (buf) => { + let len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + }; + var slide_hash = (s) => { + let n, m; + let p; + let wsize = s.w_size; + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = m >= wsize ? m - wsize : 0; + } while (--n); + n = wsize; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = m >= wsize ? m - wsize : 0; + } while (--n); + }; + var HASH_ZLIB = (s, prev, data) => (prev << s.hash_shift ^ data) & s.hash_mask; + var HASH = HASH_ZLIB; + var flush_pending = (strm) => { + const s = strm.state; + let len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { + return; + } + strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + }; + var flush_block_only = (s, last) => { + _tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last); + s.block_start = s.strstart; + flush_pending(s.strm); + }; + var put_byte = (s, b) => { + s.pending_buf[s.pending++] = b; + }; + var putShortMSB = (s, b) => { + s.pending_buf[s.pending++] = b >>> 8 & 255; + s.pending_buf[s.pending++] = b & 255; + }; + var read_buf = (strm, buf, start, size) => { + let len = strm.avail_in; + if (len > size) { + len = size; + } + if (len === 0) { + return 0; + } + strm.avail_in -= len; + buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } else if (strm.state.wrap === 2) { + strm.adler = crc32(strm.adler, buf, len, start); + } + strm.next_in += len; + strm.total_in += len; + return len; + }; + var longest_match = (s, cur_match) => { + let chain_length = s.max_chain_length; + let scan = s.strstart; + let match; + let len; + let best_len = s.prev_length; + let nice_match = s.nice_match; + const limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + const _win = s.window; + const wmask = s.w_mask; + const prev = s.prev; + const strend = s.strstart + MAX_MATCH; + let scan_end1 = _win[scan + best_len - 1]; + let scan_end = _win[scan + best_len]; + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + if (nice_match > s.lookahead) { + nice_match = s.lookahead; + } + do { + match = cur_match; + if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { + continue; + } + scan += 2; + match++; + do { + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; + }; + var fill_window = (s) => { + const _w_size = s.w_size; + let n, more, str; + do { + more = s.window_size - s.lookahead - s.strstart; + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + s.block_start -= _w_size; + if (s.insert > s.strstart) { + s.insert = s.strstart; + } + slide_hash(s); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + s.ins_h = HASH(s, s.ins_h, s.window[str + 1]); + while (s.insert) { + s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]); + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + }; + var deflate_stored = (s, flush) => { + let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5; + let len, left, have, last = 0; + let used = s.strm.avail_in; + do { + len = 65535; + have = s.bi_valid + 42 >> 3; + if (s.strm.avail_out < have) { + break; + } + have = s.strm.avail_out - have; + left = s.strstart - s.block_start; + if (len > left + s.strm.avail_in) { + len = left + s.strm.avail_in; + } + if (len > have) { + len = have; + } + if (len < min_block && (len === 0 && flush !== Z_FINISH || flush === Z_NO_FLUSH || len !== left + s.strm.avail_in)) { + break; + } + last = flush === Z_FINISH && len === left + s.strm.avail_in ? 1 : 0; + _tr_stored_block(s, 0, 0, last); + s.pending_buf[s.pending - 4] = len; + s.pending_buf[s.pending - 3] = len >> 8; + s.pending_buf[s.pending - 2] = ~len; + s.pending_buf[s.pending - 1] = ~len >> 8; + flush_pending(s.strm); + if (left) { + if (left > len) { + left = len; + } + s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out); + s.strm.next_out += left; + s.strm.avail_out -= left; + s.strm.total_out += left; + s.block_start += left; + len -= left; + } + if (len) { + read_buf(s.strm, s.strm.output, s.strm.next_out, len); + s.strm.next_out += len; + s.strm.avail_out -= len; + s.strm.total_out += len; + } + } while (last === 0); + used -= s.strm.avail_in; + if (used) { + if (used >= s.w_size) { + s.matches = 2; + s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0); + s.strstart = s.w_size; + s.insert = s.strstart; + } else { + if (s.window_size - s.strstart <= used) { + s.strstart -= s.w_size; + s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0); + if (s.matches < 2) { + s.matches++; + } + if (s.insert > s.strstart) { + s.insert = s.strstart; + } + } + s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart); + s.strstart += used; + s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used; + } + s.block_start = s.strstart; + } + if (s.high_water < s.strstart) { + s.high_water = s.strstart; + } + if (last) { + return BS_FINISH_DONE; + } + if (flush !== Z_NO_FLUSH && flush !== Z_FINISH && s.strm.avail_in === 0 && s.strstart === s.block_start) { + return BS_BLOCK_DONE; + } + have = s.window_size - s.strstart; + if (s.strm.avail_in > have && s.block_start >= s.w_size) { + s.block_start -= s.w_size; + s.strstart -= s.w_size; + s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0); + if (s.matches < 2) { + s.matches++; + } + have += s.w_size; + if (s.insert > s.strstart) { + s.insert = s.strstart; + } + } + if (have > s.strm.avail_in) { + have = s.strm.avail_in; + } + if (have) { + read_buf(s.strm, s.window, s.strstart, have); + s.strstart += have; + s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have; + } + if (s.high_water < s.strstart) { + s.high_water = s.strstart; + } + have = s.bi_valid + 42 >> 3; + have = s.pending_buf_size - have > 65535 ? 65535 : s.pending_buf_size - have; + min_block = have > s.w_size ? s.w_size : have; + left = s.strstart - s.block_start; + if (left >= min_block || (left || flush === Z_FINISH) && flush !== Z_NO_FLUSH && s.strm.avail_in === 0 && left <= have) { + len = left > have ? have : left; + last = flush === Z_FINISH && s.strm.avail_in === 0 && len === left ? 1 : 0; + _tr_stored_block(s, s.block_start, len, last); + s.block_start += len; + flush_pending(s.strm); + } + return last ? BS_FINISH_STARTED : BS_NEED_MORE; + }; + var deflate_fast = (s, flush) => { + let hash_head; + let bflush; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + } + if (s.match_length >= MIN_MATCH) { + bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { + s.match_length--; + do { + s.strstart++; + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } while (--s.match_length !== 0); + s.strstart++; + } else { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]); + } + } else { + bflush = _tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.sym_next) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + }; + var deflate_slow = (s, flush) => { + let hash_head; + let bflush; + let max_insert; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { + s.match_length = MIN_MATCH - 1; + } + } + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } else if (s.match_available) { + bflush = _tr_tally(s, 0, s.window[s.strstart - 1]); + if (bflush) { + flush_block_only(s, false); + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + if (s.match_available) { + bflush = _tr_tally(s, 0, s.window[s.strstart - 1]); + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.sym_next) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + }; + var deflate_rle = (s, flush) => { + let bflush; + let prev; + let scan, strend; + const _win = s.window; + for (; ; ) { + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + } + if (s.match_length >= MIN_MATCH) { + bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + bflush = _tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.sym_next) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + }; + var deflate_huff = (s, flush) => { + let bflush; + for (; ; ) { + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + s.match_length = 0; + bflush = _tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.sym_next) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + }; + function Config(good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; + } + var configuration_table = [ + /* good lazy nice chain */ + new Config(0, 0, 0, 0, deflate_stored), + /* 0 store only */ + new Config(4, 4, 8, 4, deflate_fast), + /* 1 max speed, no lazy matches */ + new Config(4, 5, 16, 8, deflate_fast), + /* 2 */ + new Config(4, 6, 32, 32, deflate_fast), + /* 3 */ + new Config(4, 4, 16, 16, deflate_slow), + /* 4 lazy matches */ + new Config(8, 16, 32, 32, deflate_slow), + /* 5 */ + new Config(8, 16, 128, 128, deflate_slow), + /* 6 */ + new Config(8, 32, 128, 256, deflate_slow), + /* 7 */ + new Config(32, 128, 258, 1024, deflate_slow), + /* 8 */ + new Config(32, 258, 258, 4096, deflate_slow) + /* 9 max compression */ + ]; + var lm_init = (s) => { + s.window_size = 2 * s.w_size; + zero(s.head); + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; + }; + function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + this.window = null; + this.window_size = 0; + this.prev = null; + this.head = null; + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + this.hash_shift = 0; + this.block_start = 0; + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + this.prev_length = 0; + this.max_chain_length = 0; + this.max_lazy_match = 0; + this.level = 0; + this.strategy = 0; + this.good_match = 0; + this.nice_match = 0; + this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2); + this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2); + this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + this.bl_count = new Uint16Array(MAX_BITS + 1); + this.heap = new Uint16Array(2 * L_CODES + 1); + zero(this.heap); + this.heap_len = 0; + this.heap_max = 0; + this.depth = new Uint16Array(2 * L_CODES + 1); + zero(this.depth); + this.sym_buf = 0; + this.lit_bufsize = 0; + this.sym_next = 0; + this.sym_end = 0; + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + this.bi_buf = 0; + this.bi_valid = 0; + } + var deflateStateCheck = (strm) => { + if (!strm) { + return 1; + } + const s = strm.state; + if (!s || s.strm !== strm || s.status !== INIT_STATE && //#ifdef GZIP + s.status !== GZIP_STATE && //#endif + s.status !== EXTRA_STATE && s.status !== NAME_STATE && s.status !== COMMENT_STATE && s.status !== HCRC_STATE && s.status !== BUSY_STATE && s.status !== FINISH_STATE) { + return 1; + } + return 0; + }; + var deflateResetKeep = (strm) => { + if (deflateStateCheck(strm)) { + return err(strm, Z_STREAM_ERROR); + } + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + const s = strm.state; + s.pending = 0; + s.pending_out = 0; + if (s.wrap < 0) { + s.wrap = -s.wrap; + } + s.status = //#ifdef GZIP + s.wrap === 2 ? GZIP_STATE : ( + //#endif + s.wrap ? INIT_STATE : BUSY_STATE + ); + strm.adler = s.wrap === 2 ? 0 : 1; + s.last_flush = -2; + _tr_init(s); + return Z_OK; + }; + var deflateReset = (strm) => { + const ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; + }; + var deflateSetHeader = (strm, head) => { + if (deflateStateCheck(strm) || strm.state.wrap !== 2) { + return Z_STREAM_ERROR; + } + strm.state.gzhead = head; + return Z_OK; + }; + var deflateInit2 = (strm, level, method2, windowBits, memLevel, strategy) => { + if (!strm) { + return Z_STREAM_ERROR; + } + let wrap = 1; + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method2 !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED || windowBits === 8 && wrap !== 1) { + return err(strm, Z_STREAM_ERROR); + } + if (windowBits === 8) { + windowBits = 9; + } + const s = new DeflateState(); + strm.state = s; + s.strm = strm; + s.status = INIT_STATE; + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + s.window = new Uint8Array(s.w_size * 2); + s.head = new Uint16Array(s.hash_size); + s.prev = new Uint16Array(s.w_size); + s.lit_bufsize = 1 << memLevel + 6; + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new Uint8Array(s.pending_buf_size); + s.sym_buf = s.lit_bufsize; + s.sym_end = (s.lit_bufsize - 1) * 3; + s.level = level; + s.strategy = strategy; + s.method = method2; + return deflateReset(strm); + }; + var deflateInit = (strm, level) => { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + }; + var deflate = (strm, flush) => { + if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + const s = strm.state; + if (!strm.output || strm.avail_in !== 0 && !strm.input || s.status === FINISH_STATE && flush !== Z_FINISH) { + return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + const old_flush = s.last_flush; + s.last_flush = flush; + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === INIT_STATE && s.wrap === 0) { + s.status = BUSY_STATE; + } + if (s.status === INIT_STATE) { + let header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; + let level_flags = -1; + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= level_flags << 6; + if (s.strstart !== 0) { + header |= PRESET_DICT; + } + header += 31 - header % 31; + putShortMSB(s, header); + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + strm.adler = 1; + s.status = BUSY_STATE; + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK; + } + } + if (s.status === GZIP_STATE) { + strm.adler = 0; + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK; + } + } else { + put_byte( + s, + (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16) + ); + put_byte(s, s.gzhead.time & 255); + put_byte(s, s.gzhead.time >> 8 & 255); + put_byte(s, s.gzhead.time >> 16 & 255); + put_byte(s, s.gzhead.time >> 24 & 255); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, s.gzhead.os & 255); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 255); + put_byte(s, s.gzhead.extra.length >> 8 & 255); + } + if (s.gzhead.hcrc) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + let beg = s.pending; + let left = (s.gzhead.extra.length & 65535) - s.gzindex; + while (s.pending + left > s.pending_buf_size) { + let copy = s.pending_buf_size - s.pending; + s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending); + s.pending = s.pending_buf_size; + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + s.gzindex += copy; + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK; + } + beg = 0; + left -= copy; + } + let gzhead_extra = new Uint8Array(s.gzhead.extra); + s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending); + s.pending += left; + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + s.gzindex = 0; + } + s.status = NAME_STATE; + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + let beg = s.pending; + let val; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK; + } + beg = 0; + } + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + s.gzindex = 0; + } + s.status = COMMENT_STATE; + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + let beg = s.pending; + let val; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK; + } + beg = 0; + } + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + } + s.status = HCRC_STATE; + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK; + } + } + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + strm.adler = 0; + } + s.status = BUSY_STATE; + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK; + } + } + if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) { + let bstate = s.level === 0 ? deflate_stored(s, flush) : s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush); + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + } + return Z_OK; + } + if (bstate === BS_BLOCK_DONE) { + if (flush === Z_PARTIAL_FLUSH) { + _tr_align(s); + } else if (flush !== Z_BLOCK) { + _tr_stored_block(s, 0, 0, false); + if (flush === Z_FULL_FLUSH) { + zero(s.head); + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } + } + if (flush !== Z_FINISH) { + return Z_OK; + } + if (s.wrap <= 0) { + return Z_STREAM_END; + } + if (s.wrap === 2) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + put_byte(s, strm.adler >> 16 & 255); + put_byte(s, strm.adler >> 24 & 255); + put_byte(s, strm.total_in & 255); + put_byte(s, strm.total_in >> 8 & 255); + put_byte(s, strm.total_in >> 16 & 255); + put_byte(s, strm.total_in >> 24 & 255); + } else { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + flush_pending(strm); + if (s.wrap > 0) { + s.wrap = -s.wrap; + } + return s.pending !== 0 ? Z_OK : Z_STREAM_END; + }; + var deflateEnd = (strm) => { + if (deflateStateCheck(strm)) { + return Z_STREAM_ERROR; + } + const status = strm.state.status; + strm.state = null; + return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; + }; + var deflateSetDictionary = (strm, dictionary) => { + let dictLength = dictionary.length; + if (deflateStateCheck(strm)) { + return Z_STREAM_ERROR; + } + const s = strm.state; + const wrap = s.wrap; + if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { + return Z_STREAM_ERROR; + } + if (wrap === 1) { + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + s.wrap = 0; + if (dictLength >= s.w_size) { + if (wrap === 0) { + zero(s.head); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + let tmpDict = new Uint8Array(s.w_size); + tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + const avail = strm.avail_in; + const next = strm.next_in; + const input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + let str = s.strstart; + let n = s.lookahead - (MIN_MATCH - 1); + do { + s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]); + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; + }; + module2.exports.deflateInit = deflateInit; + module2.exports.deflateInit2 = deflateInit2; + module2.exports.deflateReset = deflateReset; + module2.exports.deflateResetKeep = deflateResetKeep; + module2.exports.deflateSetHeader = deflateSetHeader; + module2.exports.deflate = deflate; + module2.exports.deflateEnd = deflateEnd; + module2.exports.deflateSetDictionary = deflateSetDictionary; + module2.exports.deflateInfo = "pako deflate (from Nodeca project)"; + } +}); + +// node_modules/pako/lib/utils/common.js +var require_common5 = __commonJS({ + "node_modules/pako/lib/utils/common.js"(exports2, module2) { + "use strict"; + var _has = (obj, key) => { + return Object.prototype.hasOwnProperty.call(obj, key); + }; + module2.exports.assign = function(obj) { + const sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + const source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (const p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + module2.exports.flattenChunks = (chunks) => { + let len = 0; + for (let i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + const result = new Uint8Array(len); + for (let i = 0, pos = 0, l = chunks.length; i < l; i++) { + let chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + }; + } +}); + +// node_modules/pako/lib/utils/strings.js +var require_strings = __commonJS({ + "node_modules/pako/lib/utils/strings.js"(exports2, module2) { + "use strict"; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new Uint8Array(256); + for (let q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + _utf8len[254] = _utf8len[254] = 1; + module2.exports.string2buf = (str) => { + if (typeof TextEncoder === "function" && TextEncoder.prototype.encode) { + return new TextEncoder().encode(str); + } + let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new Uint8Array(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + var buf2binstring = (buf, len) => { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK) { + return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len)); + } + } + let result = ""; + for (let i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + }; + module2.exports.buf2string = (buf, max) => { + const len = max || buf.length; + if (typeof TextDecoder === "function" && TextDecoder.prototype.decode) { + return new TextDecoder().decode(buf.subarray(0, max)); + } + let i, out; + const utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + let c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + let c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + module2.exports.utf8border = (buf, max) => { + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + let pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + } +}); + +// node_modules/pako/lib/zlib/zstream.js +var require_zstream = __commonJS({ + "node_modules/pako/lib/zlib/zstream.js"(exports2, module2) { + "use strict"; + function ZStream() { + this.input = null; + this.next_in = 0; + this.avail_in = 0; + this.total_in = 0; + this.output = null; + this.next_out = 0; + this.avail_out = 0; + this.total_out = 0; + this.msg = ""; + this.state = null; + this.data_type = 2; + this.adler = 0; + } + module2.exports = ZStream; + } +}); + +// node_modules/pako/lib/deflate.js +var require_deflate2 = __commonJS({ + "node_modules/pako/lib/deflate.js"(exports2, module2) { + "use strict"; + var zlib_deflate = require_deflate(); + var utils2 = require_common5(); + var strings = require_strings(); + var msg = require_messages(); + var ZStream = require_zstream(); + var toString = Object.prototype.toString; + var { + Z_NO_FLUSH, + Z_SYNC_FLUSH, + Z_FULL_FLUSH, + Z_FINISH, + Z_OK, + Z_STREAM_END, + Z_DEFAULT_COMPRESSION, + Z_DEFAULT_STRATEGY, + Z_DEFLATED + } = require_constants7(); + function Deflate(options) { + this.options = utils2.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY + }, options || {}); + let opt = this.options; + if (opt.raw && opt.windowBits > 0) { + opt.windowBits = -opt.windowBits; + } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { + opt.windowBits += 16; + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + let status = zlib_deflate.deflateInit2( + this.strm, + opt.level, + opt.method, + opt.windowBits, + opt.memLevel, + opt.strategy + ); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } + if (opt.dictionary) { + let dict; + if (typeof opt.dictionary === "string") { + dict = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + status = zlib_deflate.deflateSetDictionary(this.strm, dict); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + this._dict_set = true; + } + } + Deflate.prototype.push = function(data, flush_mode) { + const strm = this.strm; + const chunkSize = this.options.chunkSize; + let status, _flush_mode; + if (this.ended) { + return false; + } + if (flush_mode === ~~flush_mode) _flush_mode = flush_mode; + else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.string2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + for (; ; ) { + if (strm.avail_out === 0) { + strm.output = new Uint8Array(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) { + this.onData(strm.output.subarray(0, strm.next_out)); + strm.avail_out = 0; + continue; + } + status = zlib_deflate.deflate(strm, _flush_mode); + if (status === Z_STREAM_END) { + if (strm.next_out > 0) { + this.onData(strm.output.subarray(0, strm.next_out)); + } + status = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK; + } + if (strm.avail_out === 0) { + this.onData(strm.output); + continue; + } + if (_flush_mode > 0 && strm.next_out > 0) { + this.onData(strm.output.subarray(0, strm.next_out)); + strm.avail_out = 0; + continue; + } + if (strm.avail_in === 0) break; + } + return true; + }; + Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Deflate.prototype.onEnd = function(status) { + if (status === Z_OK) { + this.result = utils2.flattenChunks(this.chunks); + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + function deflate(input, options) { + const deflator = new Deflate(options); + deflator.push(input, true); + if (deflator.err) { + throw deflator.msg || msg[deflator.err]; + } + return deflator.result; + } + function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate(input, options); + } + function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate(input, options); + } + module2.exports.Deflate = Deflate; + module2.exports.deflate = deflate; + module2.exports.deflateRaw = deflateRaw; + module2.exports.gzip = gzip; + module2.exports.constants = require_constants7(); + } +}); + +// node_modules/pako/lib/zlib/inffast.js +var require_inffast = __commonJS({ + "node_modules/pako/lib/zlib/inffast.js"(exports2, module2) { + "use strict"; + var BAD = 16209; + var TYPE = 16191; + module2.exports = function inflate_fast(strm, start) { + let _in; + let last; + let _out; + let beg; + let end; + let dmax; + let wsize; + let whave; + let wnext; + let s_window; + let hold; + let bits; + let lcode; + let dcode; + let lmask; + let dmask; + let here; + let op; + let len; + let dist; + let from; + let from_source; + let input, output; + const state = strm.state; + _in = strm.next_in; + input = strm.input; + last = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + dmax = state.dmax; + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op === 0) { + output[_out++] = here & 65535; + } else if (op & 16) { + len = here & 65535; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & (1 << op) - 1; + hold >>>= op; + bits -= op; + } + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op & 16) { + dist = here & 65535; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & (1 << op) - 1; + if (dist > dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + hold >>>= op; + bits -= op; + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + } + from = 0; + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } else if ((op & 64) === 0) { + here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dodist; + } else { + strm.msg = "invalid distance code"; + state.mode = BAD; + break top; + } + break; + } + } else if ((op & 64) === 0) { + here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dolen; + } else if (op & 32) { + state.mode = TYPE; + break top; + } else { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break top; + } + break; + } + } while (_in < last && _out < end); + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last); + strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); + state.hold = hold; + state.bits = bits; + return; + }; + } +}); + +// node_modules/pako/lib/zlib/inftrees.js +var require_inftrees = __commonJS({ + "node_modules/pako/lib/zlib/inftrees.js"(exports2, module2) { + "use strict"; + var MAXBITS = 15; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var lbase = new Uint16Array([ + /* Length codes 257..285 base */ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 15, + 17, + 19, + 23, + 27, + 31, + 35, + 43, + 51, + 59, + 67, + 83, + 99, + 115, + 131, + 163, + 195, + 227, + 258, + 0, + 0 + ]); + var lext = new Uint8Array([ + /* Length codes 257..285 extra */ + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 16, + 72, + 78 + ]); + var dbase = new Uint16Array([ + /* Distance codes 0..29 base */ + 1, + 2, + 3, + 4, + 5, + 7, + 9, + 13, + 17, + 25, + 33, + 49, + 65, + 97, + 129, + 193, + 257, + 385, + 513, + 769, + 1025, + 1537, + 2049, + 3073, + 4097, + 6145, + 8193, + 12289, + 16385, + 24577, + 0, + 0 + ]); + var dext = new Uint8Array([ + /* Distance codes 0..29 extra */ + 16, + 16, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, + 25, + 25, + 26, + 26, + 27, + 27, + 28, + 28, + 29, + 29, + 64, + 64 + ]); + var inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) => { + const bits = opts.bits; + let len = 0; + let sym = 0; + let min = 0, max = 0; + let root2 = 0; + let curr = 0; + let drop = 0; + let left = 0; + let used = 0; + let huff = 0; + let incr; + let fill; + let low; + let mask; + let next; + let base = null; + let match; + const count = new Uint16Array(MAXBITS + 1); + const offs = new Uint16Array(MAXBITS + 1); + let extra = null; + let here_bits, here_op, here_val; + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + root2 = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { + break; + } + } + if (root2 > max) { + root2 = max; + } + if (max === 0) { + table[table_index++] = 1 << 24 | 64 << 16 | 0; + table[table_index++] = 1 << 24 | 64 << 16 | 0; + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { + break; + } + } + if (root2 < min) { + root2 = min; + } + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; + } + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + if (type === CODES) { + base = extra = work; + match = 20; + } else if (type === LENS) { + base = lbase; + extra = lext; + match = 257; + } else { + base = dbase; + extra = dext; + match = 0; + } + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root2; + drop = 0; + low = -1; + used = 1 << root2; + mask = used - 1; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + for (; ; ) { + here_bits = len - drop; + if (work[sym] + 1 < match) { + here_op = 0; + here_val = work[sym]; + } else if (work[sym] >= match) { + here_op = extra[work[sym] - match]; + here_val = base[work[sym] - match]; + } else { + here_op = 32 + 64; + here_val = 0; + } + incr = 1 << len - drop; + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; + } while (fill !== 0); + incr = 1 << len - 1; + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + sym++; + if (--count[len] === 0) { + if (len === max) { + break; + } + len = lens[lens_index + work[sym]]; + } + if (len > root2 && (huff & mask) !== low) { + if (drop === 0) { + drop = root2; + } + next += min; + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { + break; + } + curr++; + left <<= 1; + } + used += 1 << curr; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + low = huff & mask; + table[low] = root2 << 24 | curr << 16 | next - table_index | 0; + } + } + if (huff !== 0) { + table[next + huff] = len - drop << 24 | 64 << 16 | 0; + } + opts.bits = root2; + return 0; + }; + module2.exports = inflate_table; + } +}); + +// node_modules/pako/lib/zlib/inflate.js +var require_inflate = __commonJS({ + "node_modules/pako/lib/zlib/inflate.js"(exports2, module2) { + "use strict"; + var adler32 = require_adler32(); + var crc32 = require_crc32(); + var inflate_fast = require_inffast(); + var inflate_table = require_inftrees(); + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var { + Z_FINISH, + Z_BLOCK, + Z_TREES, + Z_OK, + Z_STREAM_END, + Z_NEED_DICT, + Z_STREAM_ERROR, + Z_DATA_ERROR, + Z_MEM_ERROR, + Z_BUF_ERROR, + Z_DEFLATED + } = require_constants7(); + var HEAD = 16180; + var FLAGS = 16181; + var TIME = 16182; + var OS = 16183; + var EXLEN = 16184; + var EXTRA2 = 16185; + var NAME = 16186; + var COMMENT = 16187; + var HCRC = 16188; + var DICTID = 16189; + var DICT = 16190; + var TYPE = 16191; + var TYPEDO = 16192; + var STORED = 16193; + var COPY_ = 16194; + var COPY = 16195; + var TABLE = 16196; + var LENLENS = 16197; + var CODELENS = 16198; + var LEN_ = 16199; + var LEN = 16200; + var LENEXT = 16201; + var DIST = 16202; + var DISTEXT = 16203; + var MATCH = 16204; + var LIT = 16205; + var CHECK = 16206; + var LENGTH = 16207; + var DONE = 16208; + var BAD = 16209; + var MEM = 16210; + var SYNC = 16211; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var MAX_WBITS = 15; + var DEF_WBITS = MAX_WBITS; + var zswap32 = (q) => { + return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); + }; + function InflateState() { + this.strm = null; + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + this.flags = 0; + this.dmax = 0; + this.check = 0; + this.total = 0; + this.head = null; + this.wbits = 0; + this.wsize = 0; + this.whave = 0; + this.wnext = 0; + this.window = null; + this.hold = 0; + this.bits = 0; + this.length = 0; + this.offset = 0; + this.extra = 0; + this.lencode = null; + this.distcode = null; + this.lenbits = 0; + this.distbits = 0; + this.ncode = 0; + this.nlen = 0; + this.ndist = 0; + this.have = 0; + this.next = null; + this.lens = new Uint16Array(320); + this.work = new Uint16Array(288); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; + } + var inflateStateCheck = (strm) => { + if (!strm) { + return 1; + } + const state = strm.state; + if (!state || state.strm !== strm || state.mode < HEAD || state.mode > SYNC) { + return 1; + } + return 0; + }; + var inflateResetKeep = (strm) => { + if (inflateStateCheck(strm)) { + return Z_STREAM_ERROR; + } + const state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ""; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.flags = -1; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS); + state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS); + state.sane = 1; + state.back = -1; + return Z_OK; + }; + var inflateReset = (strm) => { + if (inflateStateCheck(strm)) { + return Z_STREAM_ERROR; + } + const state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + }; + var inflateReset2 = (strm, windowBits) => { + let wrap; + if (inflateStateCheck(strm)) { + return Z_STREAM_ERROR; + } + const state = strm.state; + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else { + wrap = (windowBits >> 4) + 5; + if (windowBits < 48) { + windowBits &= 15; + } + } + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); + }; + var inflateInit2 = (strm, windowBits) => { + if (!strm) { + return Z_STREAM_ERROR; + } + const state = new InflateState(); + strm.state = state; + state.strm = strm; + state.window = null; + state.mode = HEAD; + const ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null; + } + return ret; + }; + var inflateInit = (strm) => { + return inflateInit2(strm, DEF_WBITS); + }; + var virgin = true; + var lenfix; + var distfix; + var fixedtables = (state) => { + if (virgin) { + lenfix = new Int32Array(512); + distfix = new Int32Array(32); + let sym = 0; + while (sym < 144) { + state.lens[sym++] = 8; + } + while (sym < 256) { + state.lens[sym++] = 9; + } + while (sym < 280) { + state.lens[sym++] = 7; + } + while (sym < 288) { + state.lens[sym++] = 8; + } + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + sym = 0; + while (sym < 32) { + state.lens[sym++] = 5; + } + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + virgin = false; + } + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; + }; + var updatewindow = (strm, src, end, copy) => { + let dist; + const state = strm.state; + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + state.window = new Uint8Array(state.wsize); + } + if (copy >= state.wsize) { + state.window.set(src.subarray(end - state.wsize, end), 0); + state.wnext = 0; + state.whave = state.wsize; + } else { + dist = state.wsize - state.wnext; + if (dist > copy) { + dist = copy; + } + state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext); + copy -= dist; + if (copy) { + state.window.set(src.subarray(end - copy, end), 0); + state.wnext = copy; + state.whave = state.wsize; + } else { + state.wnext += dist; + if (state.wnext === state.wsize) { + state.wnext = 0; + } + if (state.whave < state.wsize) { + state.whave += dist; + } + } + } + return 0; + }; + var inflate = (strm, flush) => { + let state; + let input, output; + let next; + let put; + let have, left; + let hold; + let bits; + let _in, _out; + let copy; + let from; + let from_source; + let here = 0; + let here_bits, here_op, here_val; + let last_bits, last_op, last_val; + let len; + let ret; + const hbuf = new Uint8Array(4); + let opts; + let n; + const order = ( + /* permutation of code lengths */ + new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]) + ); + if (inflateStateCheck(strm) || !strm.output || !strm.input && strm.avail_in !== 0) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.mode === TYPE) { + state.mode = TYPEDO; + } + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + _in = have; + _out = left; + ret = Z_OK; + inf_leave: + for (; ; ) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 2 && hold === 35615) { + if (state.wbits === 0) { + state.wbits = 15; + } + state.check = 0; + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + hold = 0; + bits = 0; + state.mode = FLAGS; + break; + } + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || /* check if zlib header allowed */ + (((hold & 255) << 8) + (hold >> 8)) % 31) { + strm.msg = "incorrect header check"; + state.mode = BAD; + break; + } + if ((hold & 15) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + hold >>>= 4; + bits -= 4; + len = (hold & 15) + 8; + if (state.wbits === 0) { + state.wbits = len; + } + if (len > 15 || len > state.wbits) { + strm.msg = "invalid window size"; + state.mode = BAD; + break; + } + state.dmax = 1 << state.wbits; + state.flags = 0; + strm.adler = state.check = 1; + state.mode = hold & 512 ? DICTID : TYPE; + hold = 0; + bits = 0; + break; + case FLAGS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.flags = hold; + if ((state.flags & 255) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + if (state.flags & 57344) { + strm.msg = "unknown header flags set"; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = hold >> 8 & 1; + } + if (state.flags & 512 && state.wrap & 4) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = TIME; + /* falls through */ + case TIME: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.time = hold; + } + if (state.flags & 512 && state.wrap & 4) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + hbuf[2] = hold >>> 16 & 255; + hbuf[3] = hold >>> 24 & 255; + state.check = crc32(state.check, hbuf, 4, 0); + } + hold = 0; + bits = 0; + state.mode = OS; + /* falls through */ + case OS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.xflags = hold & 255; + state.head.os = hold >> 8; + } + if (state.flags & 512 && state.wrap & 4) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = EXLEN; + /* falls through */ + case EXLEN: + if (state.flags & 1024) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 512 && state.wrap & 4) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + } else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA2; + /* falls through */ + case EXTRA2: + if (state.flags & 1024) { + copy = state.length; + if (copy > have) { + copy = have; + } + if (copy) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + state.head.extra = new Uint8Array(state.head.extra_len); + } + state.head.extra.set( + input.subarray( + next, + // extra field is limited to 65536 bytes + // - no need for additional size check + next + copy + ), + /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ + len + ); + } + if (state.flags & 512 && state.wrap & 4) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + state.length -= copy; + } + if (state.length) { + break inf_leave; + } + } + state.length = 0; + state.mode = NAME; + /* falls through */ + case NAME: + if (state.flags & 2048) { + if (have === 0) { + break inf_leave; + } + copy = 0; + do { + len = input[next + copy++]; + if (state.head && len && state.length < 65536) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 512 && state.wrap & 4) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + /* falls through */ + case COMMENT: + if (state.flags & 4096) { + if (have === 0) { + break inf_leave; + } + copy = 0; + do { + len = input[next + copy++]; + if (state.head && len && state.length < 65536) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 512 && state.wrap & 4) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + /* falls through */ + case HCRC: + if (state.flags & 512) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 4 && hold !== (state.check & 65535)) { + strm.msg = "header crc mismatch"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + if (state.head) { + state.head.hcrc = state.flags >> 9 & 1; + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + strm.adler = state.check = zswap32(hold); + hold = 0; + bits = 0; + state.mode = DICT; + /* falls through */ + case DICT: + if (state.havedict === 0) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + return Z_NEED_DICT; + } + strm.adler = state.check = 1; + state.mode = TYPE; + /* falls through */ + case TYPE: + if (flush === Z_BLOCK || flush === Z_TREES) { + break inf_leave; + } + /* falls through */ + case TYPEDO: + if (state.last) { + hold >>>= bits & 7; + bits -= bits & 7; + state.mode = CHECK; + break; + } + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.last = hold & 1; + hold >>>= 1; + bits -= 1; + switch (hold & 3) { + case 0: + state.mode = STORED; + break; + case 1: + fixedtables(state); + state.mode = LEN_; + if (flush === Z_TREES) { + hold >>>= 2; + bits -= 2; + break inf_leave; + } + break; + case 2: + state.mode = TABLE; + break; + case 3: + strm.msg = "invalid block type"; + state.mode = BAD; + } + hold >>>= 2; + bits -= 2; + break; + case STORED: + hold >>>= bits & 7; + bits -= bits & 7; + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { + strm.msg = "invalid stored block lengths"; + state.mode = BAD; + break; + } + state.length = hold & 65535; + hold = 0; + bits = 0; + state.mode = COPY_; + if (flush === Z_TREES) { + break inf_leave; + } + /* falls through */ + case COPY_: + state.mode = COPY; + /* falls through */ + case COPY: + copy = state.length; + if (copy) { + if (copy > have) { + copy = have; + } + if (copy > left) { + copy = left; + } + if (copy === 0) { + break inf_leave; + } + output.set(input.subarray(next, next + copy), put); + have -= copy; + next += copy; + left -= copy; + put += copy; + state.length -= copy; + break; + } + state.mode = TYPE; + break; + case TABLE: + while (bits < 14) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.nlen = (hold & 31) + 257; + hold >>>= 5; + bits -= 5; + state.ndist = (hold & 31) + 1; + hold >>>= 5; + bits -= 5; + state.ncode = (hold & 15) + 4; + hold >>>= 4; + bits -= 4; + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = "too many length or distance symbols"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = LENLENS; + /* falls through */ + case LENLENS: + while (state.have < state.ncode) { + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.lens[order[state.have++]] = hold & 7; + hold >>>= 3; + bits -= 3; + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + state.lencode = state.lendyn; + state.lenbits = 7; + opts = { bits: state.lenbits }; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid code lengths set"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = CODELENS; + /* falls through */ + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_val < 16) { + hold >>>= here_bits; + bits -= here_bits; + state.lens[state.have++] = here_val; + } else { + if (here_val === 16) { + n = here_bits + 2; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + if (state.have === 0) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy = 3 + (hold & 3); + hold >>>= 2; + bits -= 2; + } else if (here_val === 17) { + n = here_bits + 3; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy = 3 + (hold & 7); + hold >>>= 3; + bits -= 3; + } else { + n = here_bits + 7; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy = 11 + (hold & 127); + hold >>>= 7; + bits -= 7; + } + if (state.have + copy > state.nlen + state.ndist) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + while (copy--) { + state.lens[state.have++] = len; + } + } + } + if (state.mode === BAD) { + break; + } + if (state.lens[256] === 0) { + strm.msg = "invalid code -- missing end-of-block"; + state.mode = BAD; + break; + } + state.lenbits = 9; + opts = { bits: state.lenbits }; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid literal/lengths set"; + state.mode = BAD; + break; + } + state.distbits = 6; + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + state.distbits = opts.bits; + if (ret) { + strm.msg = "invalid distances set"; + state.mode = BAD; + break; + } + state.mode = LEN_; + if (flush === Z_TREES) { + break inf_leave; + } + /* falls through */ + case LEN_: + state.mode = LEN; + /* falls through */ + case LEN: + if (have >= 6 && left >= 258) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + inflate_fast(strm, _out); + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_op && (here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + state.mode = LIT; + break; + } + if (here_op & 32) { + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + /* falls through */ + case LENEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + state.was = state.length; + state.mode = DIST; + /* falls through */ + case DIST: + for (; ; ) { + here = state.distcode[hold & (1 << state.distbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + if (here_op & 64) { + strm.msg = "invalid distance code"; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = here_op & 15; + state.mode = DISTEXT; + /* falls through */ + case DISTEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.offset += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + if (state.offset > state.dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + state.mode = MATCH; + /* falls through */ + case MATCH: + if (left === 0) { + break inf_leave; + } + copy = _out - left; + if (state.offset > copy) { + copy = state.offset - copy; + if (copy > state.whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + } + if (copy > state.wnext) { + copy -= state.wnext; + from = state.wsize - copy; + } else { + from = state.wnext - copy; + } + if (copy > state.length) { + copy = state.length; + } + from_source = state.window; + } else { + from_source = output; + from = put - state.offset; + copy = state.length; + } + if (copy > left) { + copy = left; + } + left -= copy; + state.length -= copy; + do { + output[put++] = from_source[from++]; + } while (--copy); + if (state.length === 0) { + state.mode = LEN; + } + break; + case LIT: + if (left === 0) { + break inf_leave; + } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold |= input[next++] << bits; + bits += 8; + } + _out -= left; + strm.total_out += _out; + state.total += _out; + if (state.wrap & 4 && _out) { + strm.adler = state.check = /*UPDATE_CHECK(state.check, put - _out, _out);*/ + state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); + } + _out = left; + if (state.wrap & 4 && (state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = "incorrect data check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = LENGTH; + /* falls through */ + case LENGTH: + if (state.wrap && state.flags) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 4 && hold !== (state.total & 4294967295)) { + strm.msg = "incorrect length check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = DONE; + /* falls through */ + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + /* falls through */ + default: + return Z_STREAM_ERROR; + } + } + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; + } + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap & 4 && _out) { + strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/ + state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; + }; + var inflateEnd = (strm) => { + if (inflateStateCheck(strm)) { + return Z_STREAM_ERROR; + } + let state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; + }; + var inflateGetHeader = (strm, head) => { + if (inflateStateCheck(strm)) { + return Z_STREAM_ERROR; + } + const state = strm.state; + if ((state.wrap & 2) === 0) { + return Z_STREAM_ERROR; + } + state.head = head; + head.done = false; + return Z_OK; + }; + var inflateSetDictionary = (strm, dictionary) => { + const dictLength = dictionary.length; + let state; + let dictid; + let ret; + if (inflateStateCheck(strm)) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR; + } + if (state.mode === DICT) { + dictid = 1; + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR; + } + } + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + return Z_OK; + }; + module2.exports.inflateReset = inflateReset; + module2.exports.inflateReset2 = inflateReset2; + module2.exports.inflateResetKeep = inflateResetKeep; + module2.exports.inflateInit = inflateInit; + module2.exports.inflateInit2 = inflateInit2; + module2.exports.inflate = inflate; + module2.exports.inflateEnd = inflateEnd; + module2.exports.inflateGetHeader = inflateGetHeader; + module2.exports.inflateSetDictionary = inflateSetDictionary; + module2.exports.inflateInfo = "pako inflate (from Nodeca project)"; + } +}); + +// node_modules/pako/lib/zlib/gzheader.js +var require_gzheader = __commonJS({ + "node_modules/pako/lib/zlib/gzheader.js"(exports2, module2) { + "use strict"; + function GZheader() { + this.text = 0; + this.time = 0; + this.xflags = 0; + this.os = 0; + this.extra = null; + this.extra_len = 0; + this.name = ""; + this.comment = ""; + this.hcrc = 0; + this.done = false; + } + module2.exports = GZheader; + } +}); + +// node_modules/pako/lib/inflate.js +var require_inflate2 = __commonJS({ + "node_modules/pako/lib/inflate.js"(exports2, module2) { + "use strict"; + var zlib_inflate = require_inflate(); + var utils2 = require_common5(); + var strings = require_strings(); + var msg = require_messages(); + var ZStream = require_zstream(); + var GZheader = require_gzheader(); + var toString = Object.prototype.toString; + var { + Z_NO_FLUSH, + Z_FINISH, + Z_OK, + Z_STREAM_END, + Z_NEED_DICT, + Z_STREAM_ERROR, + Z_DATA_ERROR, + Z_MEM_ERROR + } = require_constants7(); + function Inflate(options) { + this.options = utils2.assign({ + chunkSize: 1024 * 64, + windowBits: 15, + to: "" + }, options || {}); + const opt = this.options; + if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { + opt.windowBits = -15; + } + } + if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { + opt.windowBits += 32; + } + if (opt.windowBits > 15 && opt.windowBits < 48) { + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + let status = zlib_inflate.inflateInit2( + this.strm, + opt.windowBits + ); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + this.header = new GZheader(); + zlib_inflate.inflateGetHeader(this.strm, this.header); + if (opt.dictionary) { + if (typeof opt.dictionary === "string") { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { + status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + } + } + } + Inflate.prototype.push = function(data, flush_mode) { + const strm = this.strm; + const chunkSize = this.options.chunkSize; + const dictionary = this.options.dictionary; + let status, _flush_mode, last_avail_out; + if (this.ended) return false; + if (flush_mode === ~~flush_mode) _flush_mode = flush_mode; + else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH; + if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + for (; ; ) { + if (strm.avail_out === 0) { + strm.output = new Uint8Array(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status = zlib_inflate.inflate(strm, _flush_mode); + if (status === Z_NEED_DICT && dictionary) { + status = zlib_inflate.inflateSetDictionary(strm, dictionary); + if (status === Z_OK) { + status = zlib_inflate.inflate(strm, _flush_mode); + } else if (status === Z_DATA_ERROR) { + status = Z_NEED_DICT; + } + } + while (strm.avail_in > 0 && status === Z_STREAM_END && strm.state.wrap > 0 && data[strm.next_in] !== 0) { + zlib_inflate.inflateReset(strm); + status = zlib_inflate.inflate(strm, _flush_mode); + } + switch (status) { + case Z_STREAM_ERROR: + case Z_DATA_ERROR: + case Z_NEED_DICT: + case Z_MEM_ERROR: + this.onEnd(status); + this.ended = true; + return false; + } + last_avail_out = strm.avail_out; + if (strm.next_out) { + if (strm.avail_out === 0 || status === Z_STREAM_END) { + if (this.options.to === "string") { + let next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + let tail = strm.next_out - next_out_utf8; + let utf8str = strings.buf2string(strm.output, next_out_utf8); + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0); + this.onData(utf8str); + } else { + this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out)); + } + } + } + if (status === Z_OK && last_avail_out === 0) continue; + if (status === Z_STREAM_END) { + status = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return true; + } + if (strm.avail_in === 0) break; + } + return true; + }; + Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Inflate.prototype.onEnd = function(status) { + if (status === Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils2.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + function inflate(input, options) { + const inflator = new Inflate(options); + inflator.push(input); + if (inflator.err) throw inflator.msg || msg[inflator.err]; + return inflator.result; + } + function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate(input, options); + } + module2.exports.Inflate = Inflate; + module2.exports.inflate = inflate; + module2.exports.inflateRaw = inflateRaw; + module2.exports.ungzip = inflate; + module2.exports.constants = require_constants7(); + } +}); + +// node_modules/pako/index.js +var require_pako = __commonJS({ + "node_modules/pako/index.js"(exports2, module2) { + "use strict"; + var { Deflate, deflate, deflateRaw, gzip } = require_deflate2(); + var { Inflate, inflate, inflateRaw, ungzip } = require_inflate2(); + var constants = require_constants7(); + module2.exports.Deflate = Deflate; + module2.exports.deflate = deflate; + module2.exports.deflateRaw = deflateRaw; + module2.exports.gzip = gzip; + module2.exports.Inflate = Inflate; + module2.exports.inflate = inflate; + module2.exports.inflateRaw = inflateRaw; + module2.exports.ungzip = ungzip; + module2.exports.constants = constants; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/idl.js +var require_idl2 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/idl.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.encodeIdlAccount = exports2.decodeIdlAccount = exports2.seed = exports2.idlAddress = exports2.isIdlAccounts = void 0; + var buffer_1 = require("buffer"); + var web3_js_1 = require_index_cjs(); + var borsh = __importStar2(require_dist7()); + function isIdlAccounts(accountItem) { + return "accounts" in accountItem; + } + exports2.isIdlAccounts = isIdlAccounts; + async function idlAddress(programId) { + const base = (await web3_js_1.PublicKey.findProgramAddress([], programId))[0]; + return await web3_js_1.PublicKey.createWithSeed(base, seed(), programId); + } + exports2.idlAddress = idlAddress; + function seed() { + return "anchor:idl"; + } + exports2.seed = seed; + var IDL_ACCOUNT_LAYOUT = borsh.struct([ + borsh.publicKey("authority"), + borsh.vecU8("data") + ]); + function decodeIdlAccount(data) { + return IDL_ACCOUNT_LAYOUT.decode(data); + } + exports2.decodeIdlAccount = decodeIdlAccount; + function encodeIdlAccount(acc) { + const buffer = buffer_1.Buffer.alloc(1e3); + const len = IDL_ACCOUNT_LAYOUT.encode(acc, buffer); + return buffer.slice(0, len); + } + exports2.encodeIdlAccount = encodeIdlAccount; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/context.js +var require_context = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.splitArgsAndCtx = void 0; + function splitArgsAndCtx(idlIx, args) { + var _a, _b; + let options = {}; + const inputLen = idlIx.args ? idlIx.args.length : 0; + if (args.length > inputLen) { + if (args.length !== inputLen + 1) { + throw new Error(`provided too many arguments ${args} to instruction ${idlIx === null || idlIx === void 0 ? void 0 : idlIx.name} expecting: ${(_b = (_a = idlIx.args) === null || _a === void 0 ? void 0 : _a.map((a) => a.name)) !== null && _b !== void 0 ? _b : []}`); + } + options = args.pop(); + } + return [args, options]; + } + exports2.splitArgsAndCtx = splitArgsAndCtx; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.js +var require_instruction3 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + var web3_js_1 = require_index_cjs(); + var error_js_1 = require_error(); + var common_js_1 = require_common3(); + var context_js_1 = require_context(); + var features = __importStar2(require_features()); + var InstructionNamespaceFactory = class _InstructionNamespaceFactory { + static build(idlIx, encodeFn, programId) { + if (idlIx.name === "_inner") { + throw new error_js_1.IdlError("the _inner name is reserved"); + } + const ix = (...args) => { + const [ixArgs, ctx] = (0, context_js_1.splitArgsAndCtx)(idlIx, [...args]); + (0, common_js_1.validateAccounts)(idlIx.accounts, ctx.accounts); + validateInstruction(idlIx, ...args); + const keys = ix.accounts(ctx.accounts); + if (ctx.remainingAccounts !== void 0) { + keys.push(...ctx.remainingAccounts); + } + if (features.isSet("debug-logs")) { + console.log("Outgoing account metas:", keys); + } + return new web3_js_1.TransactionInstruction({ + keys, + programId, + data: encodeFn(idlIx.name, (0, common_js_1.toInstruction)(idlIx, ...ixArgs)) + }); + }; + ix["accounts"] = (accs) => { + return _InstructionNamespaceFactory.accountsArray(accs, idlIx.accounts, programId, idlIx.name); + }; + return ix; + } + static accountsArray(ctx, accounts, programId, ixName) { + if (!ctx) { + return []; + } + return accounts.map((acc) => { + const nestedAccounts = "accounts" in acc ? acc.accounts : void 0; + if (nestedAccounts !== void 0) { + const rpcAccs = ctx[acc.name]; + return _InstructionNamespaceFactory.accountsArray(rpcAccs, acc.accounts, programId, ixName).flat(); + } else { + const account = acc; + let pubkey; + try { + pubkey = (0, common_js_1.translateAddress)(ctx[acc.name]); + } catch (err) { + throw new Error(`Wrong input type for account "${acc.name}" in the instruction accounts object${ixName !== void 0 ? ' for instruction "' + ixName + '"' : ""}. Expected PublicKey or string.`); + } + const optional = account.isOptional && pubkey.equals(programId); + const isWritable = account.isMut && !optional; + const isSigner = account.isSigner && !optional; + return { + pubkey, + isWritable, + isSigner + }; + } + }).flat(); + } + }; + exports2.default = InstructionNamespaceFactory; + function validateInstruction(ix, ...args) { + } + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.js +var require_transaction = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var web3_js_1 = require_index_cjs(); + var context_js_1 = require_context(); + var TransactionFactory = class { + static build(idlIx, ixFn) { + const txFn = (...args) => { + var _a, _b, _c; + const [, ctx] = (0, context_js_1.splitArgsAndCtx)(idlIx, [...args]); + const tx = new web3_js_1.Transaction(); + if (ctx.preInstructions && ctx.instructions) { + throw new Error("instructions is deprecated, use preInstructions"); + } + (_a = ctx.preInstructions) === null || _a === void 0 ? void 0 : _a.forEach((ix) => tx.add(ix)); + (_b = ctx.instructions) === null || _b === void 0 ? void 0 : _b.forEach((ix) => tx.add(ix)); + tx.add(ixFn(...args)); + (_c = ctx.postInstructions) === null || _c === void 0 ? void 0 : _c.forEach((ix) => tx.add(ix)); + return tx; + }; + return txFn; + } + }; + exports2.default = TransactionFactory; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.js +var require_rpc2 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var context_js_1 = require_context(); + var error_js_1 = require_error(); + var RpcFactory = class { + static build(idlIx, txFn, idlErrors, provider) { + const rpc = async (...args) => { + var _a; + const tx = txFn(...args); + const [, ctx] = (0, context_js_1.splitArgsAndCtx)(idlIx, [...args]); + if (provider.sendAndConfirm === void 0) { + throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented."); + } + try { + return await provider.sendAndConfirm(tx, (_a = ctx.signers) !== null && _a !== void 0 ? _a : [], ctx.options); + } catch (err) { + throw (0, error_js_1.translateError)(err, idlErrors); + } + }; + return rpc; + } + }; + exports2.default = RpcFactory; + } +}); + +// node_modules/eventemitter3/index.js +var require_eventemitter32 = __commonJS({ + "node_modules/eventemitter3/index.js"(exports2, module2) { + "use strict"; + var has = Object.prototype.hasOwnProperty; + var prefix = "~"; + function Events() { + } + if (Object.create) { + Events.prototype = /* @__PURE__ */ Object.create(null); + if (!new Events().__proto__) prefix = false; + } + function EE(fn, context, once) { + this.fn = fn; + this.context = context; + this.once = once || false; + } + function addListener(emitter, event, fn, context, once) { + if (typeof fn !== "function") { + throw new TypeError("The listener must be a function"); + } + var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event; + if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++; + else if (!emitter._events[evt].fn) emitter._events[evt].push(listener); + else emitter._events[evt] = [emitter._events[evt], listener]; + return emitter; + } + function clearEvent(emitter, evt) { + if (--emitter._eventsCount === 0) emitter._events = new Events(); + else delete emitter._events[evt]; + } + function EventEmitter() { + this._events = new Events(); + this._eventsCount = 0; + } + EventEmitter.prototype.eventNames = function eventNames() { + var names = [], events, name; + if (this._eventsCount === 0) return names; + for (name in events = this._events) { + if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); + } + if (Object.getOwnPropertySymbols) { + return names.concat(Object.getOwnPropertySymbols(events)); + } + return names; + }; + EventEmitter.prototype.listeners = function listeners(event) { + var evt = prefix ? prefix + event : event, handlers = this._events[evt]; + if (!handlers) return []; + if (handlers.fn) return [handlers.fn]; + for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) { + ee[i] = handlers[i].fn; + } + return ee; + }; + EventEmitter.prototype.listenerCount = function listenerCount(event) { + var evt = prefix ? prefix + event : event, listeners = this._events[evt]; + if (!listeners) return 0; + if (listeners.fn) return 1; + return listeners.length; + }; + EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { + var evt = prefix ? prefix + event : event; + if (!this._events[evt]) return false; + var listeners = this._events[evt], len = arguments.length, args, i; + if (listeners.fn) { + if (listeners.once) this.removeListener(event, listeners.fn, void 0, true); + switch (len) { + case 1: + return listeners.fn.call(listeners.context), true; + case 2: + return listeners.fn.call(listeners.context, a1), true; + case 3: + return listeners.fn.call(listeners.context, a1, a2), true; + case 4: + return listeners.fn.call(listeners.context, a1, a2, a3), true; + case 5: + return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; + case 6: + return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; + } + for (i = 1, args = new Array(len - 1); i < len; i++) { + args[i - 1] = arguments[i]; + } + listeners.fn.apply(listeners.context, args); + } else { + var length = listeners.length, j; + for (i = 0; i < length; i++) { + if (listeners[i].once) this.removeListener(event, listeners[i].fn, void 0, true); + switch (len) { + case 1: + listeners[i].fn.call(listeners[i].context); + break; + case 2: + listeners[i].fn.call(listeners[i].context, a1); + break; + case 3: + listeners[i].fn.call(listeners[i].context, a1, a2); + break; + case 4: + listeners[i].fn.call(listeners[i].context, a1, a2, a3); + break; + default: + if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) { + args[j - 1] = arguments[j]; + } + listeners[i].fn.apply(listeners[i].context, args); + } + } + } + return true; + }; + EventEmitter.prototype.on = function on(event, fn, context) { + return addListener(this, event, fn, context, false); + }; + EventEmitter.prototype.once = function once(event, fn, context) { + return addListener(this, event, fn, context, true); + }; + EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { + var evt = prefix ? prefix + event : event; + if (!this._events[evt]) return this; + if (!fn) { + clearEvent(this, evt); + return this; + } + var listeners = this._events[evt]; + if (listeners.fn) { + if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) { + clearEvent(this, evt); + } + } else { + for (var i = 0, events = [], length = listeners.length; i < length; i++) { + if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) { + events.push(listeners[i]); + } + } + if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; + else clearEvent(this, evt); + } + return this; + }; + EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { + var evt; + if (event) { + evt = prefix ? prefix + event : event; + if (this._events[evt]) clearEvent(this, evt); + } else { + this._events = new Events(); + this._eventsCount = 0; + } + return this; + }; + EventEmitter.prototype.off = EventEmitter.prototype.removeListener; + EventEmitter.prototype.addListener = EventEmitter.prototype.on; + EventEmitter.prefixed = prefix; + EventEmitter.EventEmitter = EventEmitter; + if ("undefined" !== typeof module2) { + module2.exports = EventEmitter; + } + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.js +var require_account = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AccountClient = void 0; + var camelcase_1 = __importDefault2(require_camelcase()); + var eventemitter3_1 = __importDefault2(require_eventemitter32()); + var web3_js_1 = require_index_cjs(); + var provider_js_1 = require_provider(); + var index_js_1 = require_coder(); + var common_js_1 = require_common3(); + var pubkeyUtil = __importStar2(require_pubkey()); + var rpcUtil = __importStar2(require_rpc()); + var AccountFactory = class { + static build(idl, coder, programId, provider) { + var _a; + const accountFns = {}; + (_a = idl.accounts) === null || _a === void 0 ? void 0 : _a.forEach((idlAccount) => { + const name = (0, camelcase_1.default)(idlAccount.name); + accountFns[name] = new AccountClient(idl, idlAccount, programId, provider, coder); + }); + return accountFns; + } + }; + exports2.default = AccountFactory; + var AccountClient = class { + /** + * Returns the number of bytes in this account. + */ + get size() { + return this._size; + } + /** + * Returns the program ID owning all accounts. + */ + get programId() { + return this._programId; + } + /** + * Returns the client's wallet and network provider. + */ + get provider() { + return this._provider; + } + /** + * Returns the coder. + */ + get coder() { + return this._coder; + } + /** + * Returns the idl account. + */ + get idlAccount() { + return this._idlAccount; + } + constructor(idl, idlAccount, programId, provider, coder) { + this._idlAccount = idlAccount; + this._programId = programId; + this._provider = provider !== null && provider !== void 0 ? provider : (0, provider_js_1.getProvider)(); + this._coder = coder !== null && coder !== void 0 ? coder : new index_js_1.BorshCoder(idl); + this._size = this._coder.accounts.size(idlAccount); + } + /** + * Returns a deserialized account, returning null if it doesn't exist. + * + * @param address The address of the account to fetch. + */ + async fetchNullable(address, commitment) { + const { data } = await this.fetchNullableAndContext(address, commitment); + return data; + } + /** + * Returns a deserialized account along with the associated rpc response context, returning null if it doesn't exist. + * + * @param address The address of the account to fetch. + */ + async fetchNullableAndContext(address, commitment) { + const accountInfo = await this.getAccountInfoAndContext(address, commitment); + const { value, context } = accountInfo; + return { + data: value && value.data.length !== 0 ? this._coder.accounts.decode(this._idlAccount.name, value.data) : null, + context + }; + } + /** + * Returns a deserialized account. + * + * @param address The address of the account to fetch. + */ + async fetch(address, commitment) { + const { data } = await this.fetchNullableAndContext(address, commitment); + if (data === null) { + throw new Error(`Account does not exist or has no data ${address.toString()}`); + } + return data; + } + /** + * Returns a deserialized account along with the associated rpc response context. + * + * @param address The address of the account to fetch. + */ + async fetchAndContext(address, commitment) { + const { data, context } = await this.fetchNullableAndContext(address, commitment); + if (data === null) { + throw new Error(`Account does not exist ${address.toString()}`); + } + return { data, context }; + } + /** + * Returns multiple deserialized accounts. + * Accounts not found or with wrong discriminator are returned as null. + * + * @param addresses The addresses of the accounts to fetch. + */ + async fetchMultiple(addresses, commitment) { + const accounts = await this.fetchMultipleAndContext(addresses, commitment); + return accounts.map((account) => account ? account.data : null); + } + /** + * Returns multiple deserialized accounts. + * Accounts not found or with wrong discriminator are returned as null. + * + * @param addresses The addresses of the accounts to fetch. + */ + async fetchMultipleAndContext(addresses, commitment) { + const accounts = await rpcUtil.getMultipleAccountsAndContext(this._provider.connection, addresses.map((address) => (0, common_js_1.translateAddress)(address)), commitment); + return accounts.map((result) => { + if (result == null) { + return null; + } + const { account, context } = result; + return { + data: this._coder.accounts.decode(this._idlAccount.name, account.data), + context + }; + }); + } + /** + * Returns all instances of this account type for the program. + * + * @param filters User-provided filters to narrow the results from `connection.getProgramAccounts`. + * + * When filters are not defined this method returns all + * the account instances. + * + * When filters are of type `Buffer`, the filters are appended + * after the discriminator. + * + * When filters are of type `GetProgramAccountsFilter[]`, + * filters are appended after the discriminator filter. + */ + async all(filters) { + const filter = this.coder.accounts.memcmp(this._idlAccount.name, filters instanceof Buffer ? filters : void 0); + const coderFilters = []; + if ((filter === null || filter === void 0 ? void 0 : filter.offset) != void 0 && (filter === null || filter === void 0 ? void 0 : filter.bytes) != void 0) { + coderFilters.push({ + memcmp: { offset: filter.offset, bytes: filter.bytes } + }); + } + if ((filter === null || filter === void 0 ? void 0 : filter.dataSize) != void 0) { + coderFilters.push({ dataSize: filter.dataSize }); + } + let resp = await this._provider.connection.getProgramAccounts(this._programId, { + commitment: this._provider.connection.commitment, + filters: [...coderFilters, ...Array.isArray(filters) ? filters : []] + }); + return resp.map(({ pubkey, account }) => { + return { + publicKey: pubkey, + account: this._coder.accounts.decode(this._idlAccount.name, account.data) + }; + }); + } + /** + * Returns an `EventEmitter` emitting a "change" event whenever the account + * changes. + */ + subscribe(address, commitment) { + const sub = subscriptions.get(address.toString()); + if (sub) { + return sub.ee; + } + const ee = new eventemitter3_1.default(); + address = (0, common_js_1.translateAddress)(address); + const listener = this._provider.connection.onAccountChange(address, (acc) => { + const account = this._coder.accounts.decode(this._idlAccount.name, acc.data); + ee.emit("change", account); + }, commitment); + subscriptions.set(address.toString(), { + ee, + listener + }); + return ee; + } + /** + * Unsubscribes from the account at the given address. + */ + async unsubscribe(address) { + let sub = subscriptions.get(address.toString()); + if (!sub) { + console.warn("Address is not subscribed"); + return; + } + if (subscriptions) { + await this._provider.connection.removeAccountChangeListener(sub.listener).then(() => { + subscriptions.delete(address.toString()); + }).catch(console.error); + } + } + /** + * Returns an instruction for creating this account. + */ + async createInstruction(signer, sizeOverride) { + const size = this.size; + if (this._provider.publicKey === void 0) { + throw new Error("This function requires the Provider interface implementor to have a 'publicKey' field."); + } + return web3_js_1.SystemProgram.createAccount({ + fromPubkey: this._provider.publicKey, + newAccountPubkey: signer.publicKey, + space: sizeOverride !== null && sizeOverride !== void 0 ? sizeOverride : size, + lamports: await this._provider.connection.getMinimumBalanceForRentExemption(sizeOverride !== null && sizeOverride !== void 0 ? sizeOverride : size), + programId: this._programId + }); + } + /** + * @deprecated since version 14.0. + * + * Function returning the associated account. Args are keys to associate. + * Order matters. + */ + async associated(...args) { + const addr = await this.associatedAddress(...args); + return await this.fetch(addr); + } + /** + * @deprecated since version 14.0. + * + * Function returning the associated address. Args are keys to associate. + * Order matters. + */ + async associatedAddress(...args) { + return await pubkeyUtil.associated(this._programId, ...args); + } + async getAccountInfo(address, commitment) { + return await this._provider.connection.getAccountInfo((0, common_js_1.translateAddress)(address), commitment); + } + async getAccountInfoAndContext(address, commitment) { + return await this._provider.connection.getAccountInfoAndContext((0, common_js_1.translateAddress)(address), commitment); + } + }; + exports2.AccountClient = AccountClient; + var subscriptions = /* @__PURE__ */ new Map(); + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/event.js +var require_event2 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/event.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.EventParser = exports2.EventManager = void 0; + var assert2 = __importStar2(require("assert")); + var PROGRAM_LOG = "Program log: "; + var PROGRAM_DATA = "Program data: "; + var PROGRAM_LOG_START_INDEX = PROGRAM_LOG.length; + var PROGRAM_DATA_START_INDEX = PROGRAM_DATA.length; + var EventManager = class { + constructor(programId, provider, coder) { + this._programId = programId; + this._provider = provider; + this._eventParser = new EventParser(programId, coder); + this._eventCallbacks = /* @__PURE__ */ new Map(); + this._eventListeners = /* @__PURE__ */ new Map(); + this._listenerIdCount = 0; + } + addEventListener(eventName, callback) { + var _a; + let listener = this._listenerIdCount; + this._listenerIdCount += 1; + if (!this._eventListeners.has(eventName)) { + this._eventListeners.set(eventName, []); + } + this._eventListeners.set(eventName, ((_a = this._eventListeners.get(eventName)) !== null && _a !== void 0 ? _a : []).concat(listener)); + this._eventCallbacks.set(listener, [eventName, callback]); + if (this._onLogsSubscriptionId !== void 0) { + return listener; + } + this._onLogsSubscriptionId = this._provider.connection.onLogs(this._programId, (logs, ctx) => { + if (logs.err) { + return; + } + for (const event of this._eventParser.parseLogs(logs.logs)) { + const allListeners = this._eventListeners.get(event.name); + if (allListeners) { + allListeners.forEach((listener2) => { + const listenerCb = this._eventCallbacks.get(listener2); + if (listenerCb) { + const [, callback2] = listenerCb; + callback2(event.data, ctx.slot, logs.signature); + } + }); + } + } + }); + return listener; + } + async removeEventListener(listener) { + const callback = this._eventCallbacks.get(listener); + if (!callback) { + throw new Error(`Event listener ${listener} doesn't exist!`); + } + const [eventName] = callback; + let listeners = this._eventListeners.get(eventName); + if (!listeners) { + throw new Error(`Event listeners don't exist for ${eventName}!`); + } + this._eventCallbacks.delete(listener); + listeners = listeners.filter((l) => l !== listener); + this._eventListeners.set(eventName, listeners); + if (listeners.length === 0) { + this._eventListeners.delete(eventName); + } + if (this._eventCallbacks.size == 0) { + assert2.ok(this._eventListeners.size === 0); + if (this._onLogsSubscriptionId !== void 0) { + await this._provider.connection.removeOnLogsListener(this._onLogsSubscriptionId); + this._onLogsSubscriptionId = void 0; + } + } + } + }; + exports2.EventManager = EventManager; + var EventParser = class { + constructor(programId, coder) { + this.coder = coder; + this.programId = programId; + } + // Each log given, represents an array of messages emitted by + // a single transaction, which can execute many different programs across + // CPI boundaries. However, the subscription is only interested in the + // events emitted by *this* program. In achieving this, we keep track of the + // program execution context by parsing each log and looking for a CPI + // `invoke` call. If one exists, we know a new program is executing. So we + // push the programId onto a stack and switch the program context. This + // allows us to track, for a given log, which program was executing during + // its emission, thereby allowing us to know if a given log event was + // emitted by *this* program. If it was, then we parse the raw string and + // emit the event if the string matches the event being subscribed to. + *parseLogs(logs, errorOnDecodeFailure = false) { + const logScanner = new LogScanner(logs); + const execution = new ExecutionContext(); + let log = logScanner.next(); + while (log !== null) { + let [event, newProgram, didPop] = this.handleLog(execution, log, errorOnDecodeFailure); + if (event) { + yield event; + } + if (newProgram) { + execution.push(newProgram); + } + if (didPop) { + execution.pop(); + } + log = logScanner.next(); + } + } + // Main log handler. Returns a three element array of the event, the + // next program that was invoked for CPI, and a boolean indicating if + // a program has completed execution (and thus should be popped off the + // execution stack). + handleLog(execution, log, errorOnDecodeFailure) { + if (execution.stack.length > 0 && execution.program() === this.programId.toString()) { + return this.handleProgramLog(log, errorOnDecodeFailure); + } else { + return [null, ...this.handleSystemLog(log)]; + } + } + // Handles logs from *this* program. + handleProgramLog(log, errorOnDecodeFailure) { + if (log.startsWith(PROGRAM_LOG) || log.startsWith(PROGRAM_DATA)) { + const logStr = log.startsWith(PROGRAM_LOG) ? log.slice(PROGRAM_LOG_START_INDEX) : log.slice(PROGRAM_DATA_START_INDEX); + const event = this.coder.events.decode(logStr); + if (errorOnDecodeFailure && event === null) { + throw new Error(`Unable to decode event ${logStr}`); + } + return [event, null, false]; + } else { + return [null, ...this.handleSystemLog(log)]; + } + } + // Handles logs when the current program being executing is *not* this. + handleSystemLog(log) { + const logStart = log.split(":")[0]; + if (logStart.match(/^Program (.*) success/g) !== null) { + return [null, true]; + } else if (logStart.startsWith(`Program ${this.programId.toString()} invoke`)) { + return [this.programId.toString(), false]; + } else if (logStart.includes("invoke")) { + return ["cpi", false]; + } else { + return [null, false]; + } + } + }; + exports2.EventParser = EventParser; + var ExecutionContext = class { + constructor() { + this.stack = []; + } + program() { + assert2.ok(this.stack.length > 0); + return this.stack[this.stack.length - 1]; + } + push(newProgram) { + this.stack.push(newProgram); + } + pop() { + assert2.ok(this.stack.length > 0); + this.stack.pop(); + } + }; + var LogScanner = class { + constructor(logs) { + this.logs = logs; + } + next() { + if (this.logs.length === 0) { + return null; + } + let l = this.logs[0]; + this.logs = this.logs.slice(1); + return l; + } + }; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.js +var require_simulate = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var context_js_1 = require_context(); + var event_js_1 = require_event2(); + var error_js_1 = require_error(); + var SimulateFactory = class { + static build(idlIx, txFn, idlErrors, provider, coder, programId, idl) { + const simulate = async (...args) => { + var _a; + const tx = txFn(...args); + const [, ctx] = (0, context_js_1.splitArgsAndCtx)(idlIx, [...args]); + let resp = void 0; + if (provider.simulate === void 0) { + throw new Error("This function requires 'Provider.simulate' to be implemented."); + } + try { + resp = await provider.simulate(tx, ctx.signers, (_a = ctx.options) === null || _a === void 0 ? void 0 : _a.commitment); + } catch (err) { + throw (0, error_js_1.translateError)(err, idlErrors); + } + if (resp === void 0) { + throw new Error("Unable to simulate transaction"); + } + const logs = resp.logs; + if (!logs) { + throw new Error("Simulated logs not found"); + } + const events = []; + if (idl.events) { + let parser = new event_js_1.EventParser(programId, coder); + for (const event of parser.parseLogs(logs)) { + events.push(event); + } + } + return { events, raw: logs }; + }; + return simulate; + } + }; + exports2.default = SimulateFactory; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.js +var require_token_account_layout = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeTokenAccount = void 0; + var bn_js_1 = __importDefault2(require_bn()); + var BufferLayout = __importStar2(require_Layout2()); + var buffer_layout_1 = require_Layout2(); + var web3_js_1 = require_index_cjs(); + function uint64(property) { + return new WrappedLayout(BufferLayout.blob(8), (b) => u6415.fromBuffer(b), (n) => n.toBuffer(), property); + } + function publicKey23(property) { + return new WrappedLayout(BufferLayout.blob(32), (b) => new web3_js_1.PublicKey(b), (key) => key.toBuffer(), property); + } + function coption18(layout, property) { + return new COptionLayout(layout, property); + } + var WrappedLayout = class extends buffer_layout_1.Layout { + constructor(layout, decoder, encoder, property) { + super(layout.span, property); + this.layout = layout; + this.decoder = decoder; + this.encoder = encoder; + } + decode(b, offset) { + return this.decoder(this.layout.decode(b, offset)); + } + encode(src, b, offset) { + return this.layout.encode(this.encoder(src), b, offset); + } + getSpan(b, offset) { + return this.layout.getSpan(b, offset); + } + }; + var COptionLayout = class extends buffer_layout_1.Layout { + constructor(layout, property) { + super(-1, property); + this.layout = layout; + this.discriminator = BufferLayout.u32(); + } + encode(src, b, offset = 0) { + if (src === null || src === void 0) { + return this.layout.span + this.discriminator.encode(0, b, offset); + } + this.discriminator.encode(1, b, offset); + return this.layout.encode(src, b, offset + 4) + 4; + } + decode(b, offset = 0) { + const discriminator = this.discriminator.decode(b, offset); + if (discriminator === 0) { + return null; + } else if (discriminator === 1) { + return this.layout.decode(b, offset + 4); + } + throw new Error("Invalid coption " + this.layout.property); + } + getSpan(b, offset = 0) { + return this.layout.getSpan(b, offset + 4) + 4; + } + }; + var u6415 = class _u64 extends bn_js_1.default { + /** + * Convert to Buffer representation + */ + toBuffer() { + const a = super.toArray().reverse(); + const b = Buffer.from(a); + if (b.length === 8) { + return b; + } + if (b.length >= 8) { + throw new Error("u64 too large"); + } + const zeroPad = Buffer.alloc(8); + b.copy(zeroPad); + return zeroPad; + } + /** + * Construct a u64 from Buffer representation + */ + static fromBuffer(buffer) { + if (buffer.length !== 8) { + throw new Error(`Invalid buffer length: ${buffer.length}`); + } + return new _u64([...buffer].reverse().map((i) => `00${i.toString(16)}`.slice(-2)).join(""), 16); + } + }; + var TOKEN_ACCOUNT_LAYOUT = BufferLayout.struct([ + publicKey23("mint"), + publicKey23("owner"), + uint64("amount"), + coption18(publicKey23(), "delegate"), + ((p) => { + const U = BufferLayout.union(BufferLayout.u8("discriminator"), null, p); + U.addVariant(0, BufferLayout.struct([]), "uninitialized"); + U.addVariant(1, BufferLayout.struct([]), "initialized"); + U.addVariant(2, BufferLayout.struct([]), "frozen"); + return U; + })("state"), + coption18(uint64(), "isNative"), + uint64("delegatedAmount"), + coption18(publicKey23(), "closeAuthority") + ]); + function decodeTokenAccount(b) { + return TOKEN_ACCOUNT_LAYOUT.decode(b); + } + exports2.decodeTokenAccount = decodeTokenAccount; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js +var require_accounts_resolver = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AccountStore = exports2.AccountsResolver = exports2.isAccountsGeneric = void 0; + var camelcase_1 = __importDefault2(require_camelcase()); + var web3_js_1 = require_index_cjs(); + var idl_js_1 = require_idl2(); + var utf8 = __importStar2(require_utf8()); + var token_js_1 = require_token(); + var token_account_layout_1 = require_token_account_layout(); + var index_js_1 = require_program(); + var methods_1 = require_methods(); + function isAccountsGeneric(accounts) { + return !(accounts instanceof web3_js_1.PublicKey); + } + exports2.isAccountsGeneric = isAccountsGeneric; + var AccountsResolver = class _AccountsResolver { + constructor(_args, _accounts, _provider, _programId, _idlIx, _accountNamespace, _idlTypes, _customResolver) { + this._accounts = _accounts; + this._provider = _provider; + this._programId = _programId; + this._idlIx = _idlIx; + this._idlTypes = _idlTypes; + this._customResolver = _customResolver; + this._args = _args; + this._accountStore = new AccountStore(_provider, _accountNamespace, this._programId); + } + args(_args) { + this._args = _args; + } + // Note: We serially resolve PDAs one by one rather than doing them + // in parallel because there can be dependencies between + // addresses. That is, one PDA can be used as a seed in another. + async resolve() { + await this.resolveConst(this._idlIx.accounts); + this._resolveEventCpi(this._idlIx.accounts); + while (await this.resolvePdas(this._idlIx.accounts) + await this.resolveRelations(this._idlIx.accounts) + await this.resolveCustom() > 0) { + } + } + async resolveCustom() { + if (this._customResolver) { + const { accounts, resolved } = await this._customResolver({ + args: this._args, + accounts: this._accounts, + provider: this._provider, + programId: this._programId, + idlIx: this._idlIx + }); + this._accounts = accounts; + return resolved; + } + return 0; + } + resolveOptionalsHelper(partialAccounts, accountItems) { + const nestedAccountsGeneric = {}; + for (const accountItem of accountItems) { + const accountName = accountItem.name; + const partialAccount = partialAccounts[accountName]; + if (partialAccount === void 0) + continue; + if ((0, methods_1.isPartialAccounts)(partialAccount)) { + if ((0, idl_js_1.isIdlAccounts)(accountItem)) { + nestedAccountsGeneric[accountName] = this.resolveOptionalsHelper(partialAccount, accountItem["accounts"]); + } else { + nestedAccountsGeneric[accountName] = (0, methods_1.flattenPartialAccounts)(partialAccount, true); + } + } else { + if (partialAccount !== null) { + nestedAccountsGeneric[accountName] = (0, index_js_1.translateAddress)(partialAccount); + } else if (accountItem["isOptional"]) { + nestedAccountsGeneric[accountName] = this._programId; + } + } + } + return nestedAccountsGeneric; + } + resolveOptionals(accounts) { + Object.assign(this._accounts, this.resolveOptionalsHelper(accounts, this._idlIx.accounts)); + } + get(path) { + const ret = path.reduce((acc, subPath) => acc && acc[subPath], this._accounts); + if (ret && ret.toBase58) { + return ret; + } + } + set(path, value) { + let curr = this._accounts; + path.forEach((p, idx) => { + const isLast = idx == path.length - 1; + if (isLast) { + curr[p] = value; + } + curr[p] = curr[p] || {}; + curr = curr[p]; + }); + } + async resolveConst(accounts, path = []) { + for (let k = 0; k < accounts.length; k += 1) { + const accountDescOrAccounts = accounts[k]; + const subAccounts = accountDescOrAccounts.accounts; + if (subAccounts) { + await this.resolveConst(subAccounts, [ + ...path, + (0, camelcase_1.default)(accountDescOrAccounts.name) + ]); + } + const accountDesc = accountDescOrAccounts; + const accountDescName = (0, camelcase_1.default)(accountDescOrAccounts.name); + if (accountDesc.isSigner && !this.get([...path, accountDescName])) { + if (this._provider.wallet === void 0) { + throw new Error("This function requires the Provider interface implementor to have a 'wallet' field."); + } + this.set([...path, accountDescName], this._provider.wallet.publicKey); + } + if (Reflect.has(_AccountsResolver.CONST_ACCOUNTS, accountDescName) && !this.get([...path, accountDescName])) { + this.set([...path, accountDescName], _AccountsResolver.CONST_ACCOUNTS[accountDescName]); + } + } + } + /** + * Resolve event CPI accounts `eventAuthority` and `program`. + * + * Accounts will only be resolved if they are declared next to each other to + * reduce the chance of name collision. + */ + _resolveEventCpi(accounts, path = []) { + for (const i in accounts) { + const accountDescOrAccounts = accounts[i]; + const subAccounts = accountDescOrAccounts.accounts; + if (subAccounts) { + this._resolveEventCpi(subAccounts, [ + ...path, + (0, camelcase_1.default)(accountDescOrAccounts.name) + ]); + } + const nextIndex = +i + 1; + if (nextIndex === accounts.length) + return; + const currentName = (0, camelcase_1.default)(accounts[i].name); + const nextName = (0, camelcase_1.default)(accounts[nextIndex].name); + if (currentName === "eventAuthority" && nextName === "program") { + const currentPath = [...path, currentName]; + const nextPath = [...path, nextName]; + if (!this.get(currentPath)) { + this.set(currentPath, web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("__event_authority")], this._programId)[0]); + } + if (!this.get(nextPath)) { + this.set(nextPath, this._programId); + } + return; + } + } + } + async resolvePdas(accounts, path = []) { + let found = 0; + for (let k = 0; k < accounts.length; k += 1) { + const accountDesc = accounts[k]; + const subAccounts = accountDesc.accounts; + if (subAccounts) { + found += await this.resolvePdas(subAccounts, [ + ...path, + (0, camelcase_1.default)(accountDesc.name) + ]); + } + const accountDescCasted = accountDesc; + const accountDescName = (0, camelcase_1.default)(accountDesc.name); + if (accountDescCasted.pda && accountDescCasted.pda.seeds.length > 0 && !this.get([...path, accountDescName])) { + if (Boolean(await this.autoPopulatePda(accountDescCasted, path))) { + found += 1; + } + } + } + return found; + } + async resolveRelations(accounts, path = []) { + let found = 0; + for (let k = 0; k < accounts.length; k += 1) { + const accountDesc = accounts[k]; + const subAccounts = accountDesc.accounts; + if (subAccounts) { + found += await this.resolveRelations(subAccounts, [ + ...path, + (0, camelcase_1.default)(accountDesc.name) + ]); + } + const relations = accountDesc.relations || []; + const accountDescName = (0, camelcase_1.default)(accountDesc.name); + const newPath = [...path, accountDescName]; + const accountKey = this.get(newPath); + if (accountKey) { + const matching = relations.filter((rel) => !this.get([...path, (0, camelcase_1.default)(rel)])); + found += matching.length; + if (matching.length > 0) { + const account = await this._accountStore.fetchAccount({ + publicKey: accountKey + }); + await Promise.all(matching.map(async (rel) => { + const relName = (0, camelcase_1.default)(rel); + this.set([...path, relName], account[relName]); + return account[relName]; + })); + } + } + } + return found; + } + async autoPopulatePda(accountDesc, path = []) { + if (!accountDesc.pda || !accountDesc.pda.seeds) + throw new Error("Must have seeds"); + const seeds = await Promise.all(accountDesc.pda.seeds.map((seedDesc) => this.toBuffer(seedDesc, path))); + if (seeds.some((seed) => typeof seed == "undefined")) { + return; + } + const programId = await this.parseProgramId(accountDesc, path); + if (!programId) { + return; + } + const [pubkey] = await web3_js_1.PublicKey.findProgramAddress(seeds, programId); + this.set([...path, (0, camelcase_1.default)(accountDesc.name)], pubkey); + } + async parseProgramId(accountDesc, path = []) { + var _a; + if (!((_a = accountDesc.pda) === null || _a === void 0 ? void 0 : _a.programId)) { + return this._programId; + } + switch (accountDesc.pda.programId.kind) { + case "const": + return new web3_js_1.PublicKey(this.toBufferConst(accountDesc.pda.programId.value)); + case "arg": + return this.argValue(accountDesc.pda.programId); + case "account": + return await this.accountValue(accountDesc.pda.programId, path); + default: + throw new Error(`Unexpected program seed kind: ${accountDesc.pda.programId.kind}`); + } + } + async toBuffer(seedDesc, path = []) { + switch (seedDesc.kind) { + case "const": + return this.toBufferConst(seedDesc); + case "arg": + return await this.toBufferArg(seedDesc); + case "account": + return await this.toBufferAccount(seedDesc, path); + default: + throw new Error(`Unexpected seed kind: ${seedDesc.kind}`); + } + } + /** + * Recursively get the type at some path of either a primitive or a user defined struct. + */ + getType(type, path = []) { + if (path.length > 0 && type.defined) { + const subType = this._idlTypes.find((t) => t.name === type.defined); + if (!subType) { + throw new Error(`Cannot find type ${type.defined}`); + } + const structType = subType.type; + const field = structType.fields.find((field2) => field2.name === path[0]); + return this.getType(field.type, path.slice(1)); + } + return type; + } + toBufferConst(seedDesc) { + return this.toBufferValue(this.getType(seedDesc.type, (seedDesc.path || "").split(".").slice(1)), seedDesc.value); + } + async toBufferArg(seedDesc) { + const argValue = this.argValue(seedDesc); + if (typeof argValue === "undefined") { + return; + } + return this.toBufferValue(this.getType(seedDesc.type, (seedDesc.path || "").split(".").slice(1)), argValue); + } + argValue(seedDesc) { + const split = seedDesc.path.split("."); + const seedArgName = (0, camelcase_1.default)(split[0]); + const idlArgPosition = this._idlIx.args.findIndex((argDesc) => argDesc.name === seedArgName); + if (idlArgPosition === -1) { + throw new Error(`Unable to find argument for seed: ${seedArgName}`); + } + return split.slice(1).reduce((curr, path) => (curr || {})[path], this._args[idlArgPosition]); + } + async toBufferAccount(seedDesc, path = []) { + const accountValue = await this.accountValue(seedDesc, path); + if (!accountValue) { + return; + } + return this.toBufferValue(seedDesc.type, accountValue); + } + async accountValue(seedDesc, path = []) { + const pathComponents = seedDesc.path.split("."); + const fieldName = pathComponents[0]; + const fieldPubkey = this.get([...path, (0, camelcase_1.default)(fieldName)]); + if (fieldPubkey === null) { + throw new Error(`fieldPubkey is null`); + } + if (pathComponents.length === 1) { + return fieldPubkey; + } + const account = await this._accountStore.fetchAccount({ + publicKey: fieldPubkey, + name: seedDesc.account + }); + const fieldValue = this.parseAccountValue(account, pathComponents.slice(1)); + return fieldValue; + } + parseAccountValue(account, path) { + let accountField; + while (path.length > 0) { + accountField = account[(0, camelcase_1.default)(path[0])]; + path = path.slice(1); + } + return accountField; + } + // Converts the given idl valaue into a Buffer. The values here must be + // primitives. E.g. no structs. + // + // TODO: add more types here as needed. + toBufferValue(type, value) { + switch (type) { + case "u8": + return Buffer.from([value]); + case "u16": + let b = Buffer.alloc(2); + b.writeUInt16LE(value); + return b; + case "u32": + let buf = Buffer.alloc(4); + buf.writeUInt32LE(value); + return buf; + case "u64": + let bU64 = Buffer.alloc(8); + bU64.writeBigUInt64LE(BigInt(value)); + return bU64; + case "string": + return Buffer.from(utf8.encode(value)); + case "publicKey": + return value.toBuffer(); + default: + if (type.array) { + return Buffer.from(value); + } + throw new Error(`Unexpected seed type: ${type}`); + } + } + }; + exports2.AccountsResolver = AccountsResolver; + AccountsResolver.CONST_ACCOUNTS = { + associatedTokenProgram: token_js_1.ASSOCIATED_PROGRAM_ID, + rent: web3_js_1.SYSVAR_RENT_PUBKEY, + systemProgram: web3_js_1.SystemProgram.programId, + tokenProgram: token_js_1.TOKEN_PROGRAM_ID, + clock: web3_js_1.SYSVAR_CLOCK_PUBKEY + }; + var AccountStore = class { + // todo: don't use the progrma use the account namespace. + constructor(_provider, _accounts, _programId) { + this._provider = _provider; + this._programId = _programId; + this._cache = /* @__PURE__ */ new Map(); + this._idls = {}; + this._idls[_programId.toBase58()] = _accounts; + } + async ensureIdl(programId) { + if (!this._idls[programId.toBase58()]) { + const idl = await index_js_1.Program.fetchIdl(programId, this._provider); + if (idl) { + const program = new index_js_1.Program(idl, programId, this._provider); + this._idls[programId.toBase58()] = program.account; + } + } + return this._idls[programId.toBase58()]; + } + async fetchAccount({ publicKey: publicKey23, name, programId = this._programId }) { + const address = publicKey23.toString(); + if (!this._cache.has(address)) { + if (name === "TokenAccount") { + const accountInfo = await this._provider.connection.getAccountInfo(publicKey23); + if (accountInfo === null) { + throw new Error(`invalid account info for ${address}`); + } + const data = (0, token_account_layout_1.decodeTokenAccount)(accountInfo.data); + this._cache.set(address, data); + } else if (name) { + const accounts = await this.ensureIdl(programId); + if (accounts) { + const accountFetcher = accounts[(0, camelcase_1.default)(name)]; + if (accountFetcher) { + const account = await accountFetcher.fetch(publicKey23); + this._cache.set(address, account); + } + } + } else { + const account = await this._provider.connection.getAccountInfo(publicKey23); + if (account === null) { + throw new Error(`invalid account info for ${address}`); + } + const data = account.data; + const accounts = await this.ensureIdl(account.owner); + if (accounts) { + const firstAccountLayout = Object.values(accounts)[0]; + if (!firstAccountLayout) { + throw new Error("No accounts for this program"); + } + const result = firstAccountLayout.coder.accounts.decodeAny(data); + this._cache.set(address, result); + } + } + } + return this._cache.get(address); + } + }; + exports2.AccountStore = AccountStore; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.js +var require_methods = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MethodsBuilder = exports2.flattenPartialAccounts = exports2.isPartialAccounts = exports2.MethodsBuilderFactory = void 0; + var accounts_resolver_js_1 = require_accounts_resolver(); + var common_js_1 = require_common3(); + var MethodsBuilderFactory = class { + static build(provider, programId, idlIx, ixFn, txFn, rpcFn, simulateFn, viewFn, accountNamespace, idlTypes, customResolver) { + return (...args) => new MethodsBuilder(args, ixFn, txFn, rpcFn, simulateFn, viewFn, provider, programId, idlIx, accountNamespace, idlTypes, customResolver); + } + }; + exports2.MethodsBuilderFactory = MethodsBuilderFactory; + function isPartialAccounts(partialAccount) { + return typeof partialAccount === "object" && partialAccount !== null && !("_bn" in partialAccount); + } + exports2.isPartialAccounts = isPartialAccounts; + function flattenPartialAccounts(partialAccounts, throwOnNull) { + const toReturn = {}; + for (const accountName in partialAccounts) { + const account = partialAccounts[accountName]; + if (account === null) { + if (throwOnNull) + throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!"); + continue; + } + toReturn[accountName] = isPartialAccounts(account) ? flattenPartialAccounts(account, true) : (0, common_js_1.translateAddress)(account); + } + return toReturn; + } + exports2.flattenPartialAccounts = flattenPartialAccounts; + var MethodsBuilder = class { + constructor(_args, _ixFn, _txFn, _rpcFn, _simulateFn, _viewFn, _provider, _programId, _idlIx, _accountNamespace, _idlTypes, _customResolver) { + this._ixFn = _ixFn; + this._txFn = _txFn; + this._rpcFn = _rpcFn; + this._simulateFn = _simulateFn; + this._viewFn = _viewFn; + this._programId = _programId; + this._accounts = {}; + this._remainingAccounts = []; + this._signers = []; + this._preInstructions = []; + this._postInstructions = []; + this._autoResolveAccounts = true; + this._args = _args; + this._accountsResolver = new accounts_resolver_js_1.AccountsResolver(_args, this._accounts, _provider, _programId, _idlIx, _accountNamespace, _idlTypes, _customResolver); + } + args(_args) { + this._args = _args; + this._accountsResolver.args(_args); + } + async pubkeys() { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._accounts; + } + accounts(accounts) { + this._autoResolveAccounts = true; + this._accountsResolver.resolveOptionals(accounts); + return this; + } + accountsStrict(accounts) { + this._autoResolveAccounts = false; + this._accountsResolver.resolveOptionals(accounts); + return this; + } + signers(signers) { + this._signers = this._signers.concat(signers); + return this; + } + remainingAccounts(accounts) { + this._remainingAccounts = this._remainingAccounts.concat(accounts); + return this; + } + preInstructions(ixs) { + this._preInstructions = this._preInstructions.concat(ixs); + return this; + } + postInstructions(ixs) { + this._postInstructions = this._postInstructions.concat(ixs); + return this; + } + async rpc(options) { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._rpcFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions, + options + }); + } + async rpcAndKeys(options) { + const pubkeys = await this.pubkeys(); + return { + pubkeys, + signature: await this.rpc(options) + }; + } + async view(options) { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + if (!this._viewFn) { + throw new Error("Method does not support views"); + } + return this._viewFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions, + options + }); + } + async simulate(options) { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._simulateFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions, + options + }); + } + async instruction() { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._ixFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions + }); + } + /** + * Convenient shortcut to get instructions and pubkeys via + * const { pubkeys, instructions } = await prepare(); + */ + async prepare() { + return { + instruction: await this.instruction(), + pubkeys: await this.pubkeys(), + signers: await this._signers + }; + } + async transaction() { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._txFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions + }); + } + }; + exports2.MethodsBuilder = MethodsBuilder; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.js +var require_views = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var idl_1 = require_idl(); + var base64_1 = require_base64(); + var ViewFactory = class { + static build(programId, idlIx, simulateFn, idl) { + const isMut = idlIx.accounts.find((a) => a.isMut); + const hasReturn = !!idlIx.returns; + if (isMut || !hasReturn) + return; + const view = async (...args) => { + var _a, _b; + let simulationResult = await simulateFn(...args); + const returnPrefix = `Program return: ${programId} `; + let returnLog = simulationResult.raw.find((l) => l.startsWith(returnPrefix)); + if (!returnLog) { + throw new Error("View expected return log"); + } + let returnData = (0, base64_1.decode)(returnLog.slice(returnPrefix.length)); + let returnType = idlIx.returns; + if (!returnType) { + throw new Error("View expected return type"); + } + const coder = idl_1.IdlCoder.fieldLayout({ type: returnType }, Array.from([...(_a = idl.accounts) !== null && _a !== void 0 ? _a : [], ...(_b = idl.types) !== null && _b !== void 0 ? _b : []])); + return coder.decode(returnData); + }; + return view; + } + }; + exports2.default = ViewFactory; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.js +var require_namespace = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MethodsBuilderFactory = exports2.AccountClient = void 0; + var camelcase_1 = __importDefault2(require_camelcase()); + var instruction_js_1 = __importDefault2(require_instruction3()); + var transaction_js_1 = __importDefault2(require_transaction()); + var rpc_js_1 = __importDefault2(require_rpc2()); + var account_js_1 = __importDefault2(require_account()); + var simulate_js_1 = __importDefault2(require_simulate()); + var common_js_1 = require_common3(); + var methods_1 = require_methods(); + var views_1 = __importDefault2(require_views()); + var account_js_2 = require_account(); + Object.defineProperty(exports2, "AccountClient", { enumerable: true, get: function() { + return account_js_2.AccountClient; + } }); + var methods_2 = require_methods(); + Object.defineProperty(exports2, "MethodsBuilderFactory", { enumerable: true, get: function() { + return methods_2.MethodsBuilderFactory; + } }); + var NamespaceFactory = class { + /** + * Generates all namespaces for a given program. + */ + static build(idl, coder, programId, provider, getCustomResolver) { + const rpc = {}; + const instruction = {}; + const transaction = {}; + const simulate = {}; + const methods = {}; + const view = {}; + const idlErrors = (0, common_js_1.parseIdlErrors)(idl); + const account = idl.accounts ? account_js_1.default.build(idl, coder, programId, provider) : {}; + idl.instructions.forEach((idlIx) => { + const ixItem = instruction_js_1.default.build(idlIx, (ixName, ix) => coder.instruction.encode(ixName, ix), programId); + const txItem = transaction_js_1.default.build(idlIx, ixItem); + const rpcItem = rpc_js_1.default.build(idlIx, txItem, idlErrors, provider); + const simulateItem = simulate_js_1.default.build(idlIx, txItem, idlErrors, provider, coder, programId, idl); + const viewItem = views_1.default.build(programId, idlIx, simulateItem, idl); + const methodItem = methods_1.MethodsBuilderFactory.build(provider, programId, idlIx, ixItem, txItem, rpcItem, simulateItem, viewItem, account, idl.types || [], getCustomResolver && getCustomResolver(idlIx)); + const name = (0, camelcase_1.default)(idlIx.name); + instruction[name] = ixItem; + transaction[name] = txItem; + rpc[name] = rpcItem; + simulate[name] = simulateItem; + methods[name] = methodItem; + if (viewItem) { + view[name] = viewItem; + } + }); + return [ + rpc, + instruction, + transaction, + account, + simulate, + methods, + view + ]; + } + }; + exports2.default = NamespaceFactory; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/program/index.js +var require_program = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/program/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Program = void 0; + var pako_1 = require_pako(); + var provider_js_1 = require_provider(); + var idl_js_1 = require_idl2(); + var index_js_1 = require_coder(); + var index_js_2 = __importDefault2(require_namespace()); + var index_js_3 = require_bytes(); + var event_js_1 = require_event2(); + var common_js_1 = require_common3(); + __exportStar2(require_common3(), exports2); + __exportStar2(require_context(), exports2); + __exportStar2(require_event2(), exports2); + __exportStar2(require_namespace(), exports2); + var Program = class _Program { + /** + * Address of the program. + */ + get programId() { + return this._programId; + } + /** + * IDL defining the program's interface. + */ + get idl() { + return this._idl; + } + /** + * Coder for serializing requests. + */ + get coder() { + return this._coder; + } + /** + * Wallet and network provider. + */ + get provider() { + return this._provider; + } + /** + * @param idl The interface definition. + * @param programId The on-chain address of the program. + * @param provider The network and wallet context to use. If not provided + * then uses [[getProvider]]. + * @param getCustomResolver A function that returns a custom account resolver + * for the given instruction. This is useful for resolving + * public keys of missing accounts when building instructions + */ + constructor(idl, programId, provider, coder, getCustomResolver) { + programId = (0, common_js_1.translateAddress)(programId); + if (!provider) { + provider = (0, provider_js_1.getProvider)(); + } + this._idl = idl; + this._provider = provider; + this._programId = programId; + this._coder = coder !== null && coder !== void 0 ? coder : new index_js_1.BorshCoder(idl); + this._events = new event_js_1.EventManager(this._programId, provider, this._coder); + const [rpc, instruction, transaction, account, simulate, methods, views] = index_js_2.default.build(idl, this._coder, programId, provider, getCustomResolver !== null && getCustomResolver !== void 0 ? getCustomResolver : () => void 0); + this.rpc = rpc; + this.instruction = instruction; + this.transaction = transaction; + this.account = account; + this.simulate = simulate; + this.methods = methods; + this.views = views; + } + /** + * Generates a Program client by fetching the IDL from the network. + * + * In order to use this method, an IDL must have been previously initialized + * via the anchor CLI's `anchor idl init` command. + * + * @param programId The on-chain address of the program. + * @param provider The network and wallet context. + */ + static async at(address, provider) { + const programId = (0, common_js_1.translateAddress)(address); + const idl = await _Program.fetchIdl(programId, provider); + if (!idl) { + throw new Error(`IDL not found for program: ${address.toString()}`); + } + return new _Program(idl, programId, provider); + } + /** + * Fetches an idl from the blockchain. + * + * In order to use this method, an IDL must have been previously initialized + * via the anchor CLI's `anchor idl init` command. + * + * @param programId The on-chain address of the program. + * @param provider The network and wallet context. + */ + static async fetchIdl(address, provider) { + provider = provider !== null && provider !== void 0 ? provider : (0, provider_js_1.getProvider)(); + const programId = (0, common_js_1.translateAddress)(address); + const idlAddr = await (0, idl_js_1.idlAddress)(programId); + const accountInfo = await provider.connection.getAccountInfo(idlAddr); + if (!accountInfo) { + return null; + } + let idlAccount = (0, idl_js_1.decodeIdlAccount)(accountInfo.data.slice(8)); + const inflatedIdl = (0, pako_1.inflate)(idlAccount.data); + return JSON.parse(index_js_3.utf8.decode(inflatedIdl)); + } + /** + * Invokes the given callback every time the given event is emitted. + * + * @param eventName The PascalCase name of the event, provided by the IDL. + * @param callback The function to invoke whenever the event is emitted from + * program logs. + */ + addEventListener(eventName, callback) { + return this._events.addEventListener(eventName, callback); + } + /** + * Unsubscribes from the given eventName. + */ + async removeEventListener(listener) { + return await this._events.removeEventListener(listener); + } + }; + exports2.Program = Program; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/native/system.js +var require_system2 = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/native/system.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IDL = exports2.coder = exports2.program = void 0; + var web3_js_1 = require_index_cjs(); + var index_js_1 = require_program(); + var index_js_2 = require_system(); + var SYSTEM_PROGRAM_ID = new web3_js_1.PublicKey("11111111111111111111111111111111"); + function program(provider) { + return new index_js_1.Program(exports2.IDL, SYSTEM_PROGRAM_ID, provider, coder()); + } + exports2.program = program; + function coder() { + return new index_js_2.SystemCoder(exports2.IDL); + } + exports2.coder = coder; + exports2.IDL = { + version: "0.1.0", + name: "system_program", + instructions: [ + { + name: "createAccount", + accounts: [ + { + name: "from", + isMut: true, + isSigner: true + }, + { + name: "to", + isMut: true, + isSigner: true + } + ], + args: [ + { + name: "lamports", + type: "u64" + }, + { + name: "space", + type: "u64" + }, + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "assign", + accounts: [ + { + name: "pubkey", + isMut: true, + isSigner: true + } + ], + args: [ + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "transfer", + accounts: [ + { + name: "from", + isMut: true, + isSigner: true + }, + { + name: "to", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "lamports", + type: "u64" + } + ] + }, + { + name: "createAccountWithSeed", + accounts: [ + { + name: "from", + isMut: true, + isSigner: true + }, + { + name: "to", + isMut: true, + isSigner: false + }, + { + name: "base", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "base", + type: "publicKey" + }, + { + name: "seed", + type: "string" + }, + { + name: "lamports", + type: "u64" + }, + { + name: "space", + type: "u64" + }, + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "advanceNonceAccount", + accounts: [ + { + name: "nonce", + isMut: true, + isSigner: false + }, + { + name: "recentBlockhashes", + isMut: false, + isSigner: false + }, + { + name: "authorized", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "authorized", + type: "publicKey" + } + ] + }, + { + name: "withdrawNonceAccount", + accounts: [ + { + name: "nonce", + isMut: true, + isSigner: false + }, + { + name: "to", + isMut: true, + isSigner: false + }, + { + name: "recentBlockhashes", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "authorized", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "lamports", + type: "u64" + } + ] + }, + { + name: "initializeNonceAccount", + accounts: [ + { + name: "nonce", + isMut: true, + isSigner: true + }, + { + name: "recentBlockhashes", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "authorized", + type: "publicKey" + } + ] + }, + { + name: "authorizeNonceAccount", + accounts: [ + { + name: "nonce", + isMut: true, + isSigner: false + }, + { + name: "authorized", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "authorized", + type: "publicKey" + } + ] + }, + { + name: "allocate", + accounts: [ + { + name: "pubkey", + isMut: true, + isSigner: true + } + ], + args: [ + { + name: "space", + type: "u64" + } + ] + }, + { + name: "allocateWithSeed", + accounts: [ + { + name: "account", + isMut: true, + isSigner: false + }, + { + name: "base", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "base", + type: "publicKey" + }, + { + name: "seed", + type: "string" + }, + { + name: "space", + type: "u64" + }, + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "assignWithSeed", + accounts: [ + { + name: "account", + isMut: true, + isSigner: false + }, + { + name: "base", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "base", + type: "publicKey" + }, + { + name: "seed", + type: "string" + }, + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "transferWithSeed", + accounts: [ + { + name: "from", + isMut: true, + isSigner: false + }, + { + name: "base", + isMut: false, + isSigner: true + }, + { + name: "to", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "lamports", + type: "u64" + }, + { + name: "seed", + type: "string" + }, + { + name: "owner", + type: "publicKey" + } + ] + } + ], + accounts: [ + { + name: "nonce", + type: { + kind: "struct", + fields: [ + { + name: "version", + type: "u32" + }, + { + name: "state", + type: "u32" + }, + { + name: "authorizedPubkey", + type: "publicKey" + }, + { + name: "nonce", + type: "publicKey" + }, + { + name: "feeCalculator", + type: { + defined: "FeeCalculator" + } + } + ] + } + } + ], + types: [ + { + name: "FeeCalculator", + type: { + kind: "struct", + fields: [ + { + name: "lamportsPerSignature", + type: "u64" + } + ] + } + } + ] + }; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/native/index.js +var require_native = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/native/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Native = void 0; + var system_js_1 = require_system2(); + var Native = class { + static system(provider) { + return (0, system_js_1.program)(provider); + } + }; + exports2.Native = Native; + } +}); + +// node_modules/toml/lib/parser.js +var require_parser = __commonJS({ + "node_modules/toml/lib/parser.js"(exports2, module2) { + module2.exports = function() { + function peg$subclass(child, parent) { + function ctor() { + this.constructor = child; + } + ctor.prototype = parent.prototype; + child.prototype = new ctor(); + } + function SyntaxError2(message, expected, found, offset, line, column) { + this.message = message; + this.expected = expected; + this.found = found; + this.offset = offset; + this.line = line; + this.column = column; + this.name = "SyntaxError"; + } + peg$subclass(SyntaxError2, Error); + function parse2(input) { + var options = arguments.length > 1 ? arguments[1] : {}, peg$FAILED = {}, peg$startRuleFunctions = { start: peg$parsestart }, peg$startRuleFunction = peg$parsestart, peg$c0 = [], peg$c1 = function() { + return nodes; + }, peg$c2 = peg$FAILED, peg$c3 = "#", peg$c4 = { type: "literal", value: "#", description: '"#"' }, peg$c5 = void 0, peg$c6 = { type: "any", description: "any character" }, peg$c7 = "[", peg$c8 = { type: "literal", value: "[", description: '"["' }, peg$c9 = "]", peg$c10 = { type: "literal", value: "]", description: '"]"' }, peg$c11 = function(name) { + addNode(node("ObjectPath", name, line, column)); + }, peg$c12 = function(name) { + addNode(node("ArrayPath", name, line, column)); + }, peg$c13 = function(parts, name) { + return parts.concat(name); + }, peg$c14 = function(name) { + return [name]; + }, peg$c15 = function(name) { + return name; + }, peg$c16 = ".", peg$c17 = { type: "literal", value: ".", description: '"."' }, peg$c18 = "=", peg$c19 = { type: "literal", value: "=", description: '"="' }, peg$c20 = function(key, value) { + addNode(node("Assign", value, line, column, key)); + }, peg$c21 = function(chars) { + return chars.join(""); + }, peg$c22 = function(node2) { + return node2.value; + }, peg$c23 = '"""', peg$c24 = { type: "literal", value: '"""', description: '"\\"\\"\\""' }, peg$c25 = null, peg$c26 = function(chars) { + return node("String", chars.join(""), line, column); + }, peg$c27 = '"', peg$c28 = { type: "literal", value: '"', description: '"\\""' }, peg$c29 = "'''", peg$c30 = { type: "literal", value: "'''", description: `"'''"` }, peg$c31 = "'", peg$c32 = { type: "literal", value: "'", description: `"'"` }, peg$c33 = function(char) { + return char; + }, peg$c34 = function(char) { + return char; + }, peg$c35 = "\\", peg$c36 = { type: "literal", value: "\\", description: '"\\\\"' }, peg$c37 = function() { + return ""; + }, peg$c38 = "e", peg$c39 = { type: "literal", value: "e", description: '"e"' }, peg$c40 = "E", peg$c41 = { type: "literal", value: "E", description: '"E"' }, peg$c42 = function(left, right) { + return node("Float", parseFloat(left + "e" + right), line, column); + }, peg$c43 = function(text2) { + return node("Float", parseFloat(text2), line, column); + }, peg$c44 = "+", peg$c45 = { type: "literal", value: "+", description: '"+"' }, peg$c46 = function(digits) { + return digits.join(""); + }, peg$c47 = "-", peg$c48 = { type: "literal", value: "-", description: '"-"' }, peg$c49 = function(digits) { + return "-" + digits.join(""); + }, peg$c50 = function(text2) { + return node("Integer", parseInt(text2, 10), line, column); + }, peg$c51 = "true", peg$c52 = { type: "literal", value: "true", description: '"true"' }, peg$c53 = function() { + return node("Boolean", true, line, column); + }, peg$c54 = "false", peg$c55 = { type: "literal", value: "false", description: '"false"' }, peg$c56 = function() { + return node("Boolean", false, line, column); + }, peg$c57 = function() { + return node("Array", [], line, column); + }, peg$c58 = function(value) { + return node("Array", value ? [value] : [], line, column); + }, peg$c59 = function(values) { + return node("Array", values, line, column); + }, peg$c60 = function(values, value) { + return node("Array", values.concat(value), line, column); + }, peg$c61 = function(value) { + return value; + }, peg$c62 = ",", peg$c63 = { type: "literal", value: ",", description: '","' }, peg$c64 = "{", peg$c65 = { type: "literal", value: "{", description: '"{"' }, peg$c66 = "}", peg$c67 = { type: "literal", value: "}", description: '"}"' }, peg$c68 = function(values) { + return node("InlineTable", values, line, column); + }, peg$c69 = function(key, value) { + return node("InlineTableValue", value, line, column, key); + }, peg$c70 = function(digits) { + return "." + digits; + }, peg$c71 = function(date) { + return date.join(""); + }, peg$c72 = ":", peg$c73 = { type: "literal", value: ":", description: '":"' }, peg$c74 = function(time) { + return time.join(""); + }, peg$c75 = "T", peg$c76 = { type: "literal", value: "T", description: '"T"' }, peg$c77 = "Z", peg$c78 = { type: "literal", value: "Z", description: '"Z"' }, peg$c79 = function(date, time) { + return node("Date", /* @__PURE__ */ new Date(date + "T" + time + "Z"), line, column); + }, peg$c80 = function(date, time) { + return node("Date", /* @__PURE__ */ new Date(date + "T" + time), line, column); + }, peg$c81 = /^[ \t]/, peg$c82 = { type: "class", value: "[ \\t]", description: "[ \\t]" }, peg$c83 = "\n", peg$c84 = { type: "literal", value: "\n", description: '"\\n"' }, peg$c85 = "\r", peg$c86 = { type: "literal", value: "\r", description: '"\\r"' }, peg$c87 = /^[0-9a-f]/i, peg$c88 = { type: "class", value: "[0-9a-f]i", description: "[0-9a-f]i" }, peg$c89 = /^[0-9]/, peg$c90 = { type: "class", value: "[0-9]", description: "[0-9]" }, peg$c91 = "_", peg$c92 = { type: "literal", value: "_", description: '"_"' }, peg$c93 = function() { + return ""; + }, peg$c94 = /^[A-Za-z0-9_\-]/, peg$c95 = { type: "class", value: "[A-Za-z0-9_\\-]", description: "[A-Za-z0-9_\\-]" }, peg$c96 = function(d) { + return d.join(""); + }, peg$c97 = '\\"', peg$c98 = { type: "literal", value: '\\"', description: '"\\\\\\""' }, peg$c99 = function() { + return '"'; + }, peg$c100 = "\\\\", peg$c101 = { type: "literal", value: "\\\\", description: '"\\\\\\\\"' }, peg$c102 = function() { + return "\\"; + }, peg$c103 = "\\b", peg$c104 = { type: "literal", value: "\\b", description: '"\\\\b"' }, peg$c105 = function() { + return "\b"; + }, peg$c106 = "\\t", peg$c107 = { type: "literal", value: "\\t", description: '"\\\\t"' }, peg$c108 = function() { + return " "; + }, peg$c109 = "\\n", peg$c110 = { type: "literal", value: "\\n", description: '"\\\\n"' }, peg$c111 = function() { + return "\n"; + }, peg$c112 = "\\f", peg$c113 = { type: "literal", value: "\\f", description: '"\\\\f"' }, peg$c114 = function() { + return "\f"; + }, peg$c115 = "\\r", peg$c116 = { type: "literal", value: "\\r", description: '"\\\\r"' }, peg$c117 = function() { + return "\r"; + }, peg$c118 = "\\U", peg$c119 = { type: "literal", value: "\\U", description: '"\\\\U"' }, peg$c120 = function(digits) { + return convertCodePoint(digits.join("")); + }, peg$c121 = "\\u", peg$c122 = { type: "literal", value: "\\u", description: '"\\\\u"' }, peg$currPos = 0, peg$reportedPos = 0, peg$cachedPos = 0, peg$cachedPosDetails = { line: 1, column: 1, seenCR: false }, peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$cache = {}, peg$result; + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error(`Can't start parsing from rule "` + options.startRule + '".'); + } + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + function text() { + return input.substring(peg$reportedPos, peg$currPos); + } + function offset() { + return peg$reportedPos; + } + function line() { + return peg$computePosDetails(peg$reportedPos).line; + } + function column() { + return peg$computePosDetails(peg$reportedPos).column; + } + function expected(description) { + throw peg$buildException( + null, + [{ type: "other", description }], + peg$reportedPos + ); + } + function error(message) { + throw peg$buildException(message, null, peg$reportedPos); + } + function peg$computePosDetails(pos) { + function advance(details, startPos, endPos) { + var p, ch; + for (p = startPos; p < endPos; p++) { + ch = input.charAt(p); + if (ch === "\n") { + if (!details.seenCR) { + details.line++; + } + details.column = 1; + details.seenCR = false; + } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { + details.line++; + details.column = 1; + details.seenCR = true; + } else { + details.column++; + details.seenCR = false; + } + } + } + if (peg$cachedPos !== pos) { + if (peg$cachedPos > pos) { + peg$cachedPos = 0; + peg$cachedPosDetails = { line: 1, column: 1, seenCR: false }; + } + advance(peg$cachedPosDetails, peg$cachedPos, pos); + peg$cachedPos = pos; + } + return peg$cachedPosDetails; + } + function peg$fail(expected2) { + if (peg$currPos < peg$maxFailPos) { + return; + } + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + peg$maxFailExpected.push(expected2); + } + function peg$buildException(message, expected2, pos) { + function cleanupExpected(expected3) { + var i = 1; + expected3.sort(function(a, b) { + if (a.description < b.description) { + return -1; + } else if (a.description > b.description) { + return 1; + } else { + return 0; + } + }); + while (i < expected3.length) { + if (expected3[i - 1] === expected3[i]) { + expected3.splice(i, 1); + } else { + i++; + } + } + } + function buildMessage(expected3, found2) { + function stringEscape(s) { + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + return s.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\x08/g, "\\b").replace(/\t/g, "\\t").replace(/\n/g, "\\n").replace(/\f/g, "\\f").replace(/\r/g, "\\r").replace(/[\x00-\x07\x0B\x0E\x0F]/g, function(ch) { + return "\\x0" + hex(ch); + }).replace(/[\x10-\x1F\x80-\xFF]/g, function(ch) { + return "\\x" + hex(ch); + }).replace(/[\u0180-\u0FFF]/g, function(ch) { + return "\\u0" + hex(ch); + }).replace(/[\u1080-\uFFFF]/g, function(ch) { + return "\\u" + hex(ch); + }); + } + var expectedDescs = new Array(expected3.length), expectedDesc, foundDesc, i; + for (i = 0; i < expected3.length; i++) { + expectedDescs[i] = expected3[i].description; + } + expectedDesc = expected3.length > 1 ? expectedDescs.slice(0, -1).join(", ") + " or " + expectedDescs[expected3.length - 1] : expectedDescs[0]; + foundDesc = found2 ? '"' + stringEscape(found2) + '"' : "end of input"; + return "Expected " + expectedDesc + " but " + foundDesc + " found."; + } + var posDetails = peg$computePosDetails(pos), found = pos < input.length ? input.charAt(pos) : null; + if (expected2 !== null) { + cleanupExpected(expected2); + } + return new SyntaxError2( + message !== null ? message : buildMessage(expected2, found), + expected2, + found, + pos, + posDetails.line, + posDetails.column + ); + } + function peg$parsestart() { + var s0, s1, s2; + var key = peg$currPos * 49 + 0, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parseline(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseline(); + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c1(); + } + s0 = s1; + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseline() { + var s0, s1, s2, s3, s4, s5, s6; + var key = peg$currPos * 49 + 1, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parseexpression(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseS(); + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parsecomment(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parsecomment(); + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseNL(); + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseNL(); + } + } else { + s5 = peg$c2; + } + if (s5 === peg$FAILED) { + s5 = peg$parseEOF(); + } + if (s5 !== peg$FAILED) { + s1 = [s1, s2, s3, s4, s5]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + } + } else { + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseNL(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseNL(); + } + } else { + s2 = peg$c2; + } + if (s2 === peg$FAILED) { + s2 = peg$parseEOF(); + } + if (s2 !== peg$FAILED) { + s1 = [s1, s2]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$parseNL(); + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseexpression() { + var s0; + var key = peg$currPos * 49 + 2, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$parsecomment(); + if (s0 === peg$FAILED) { + s0 = peg$parsepath(); + if (s0 === peg$FAILED) { + s0 = peg$parsetablearray(); + if (s0 === peg$FAILED) { + s0 = peg$parseassignment(); + } + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsecomment() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 49 + 3, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 35) { + s1 = peg$c3; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c4); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + s5 = peg$parseNL(); + if (s5 === peg$FAILED) { + s5 = peg$parseEOF(); + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = peg$c5; + } else { + peg$currPos = s4; + s4 = peg$c2; + } + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c6); + } + } + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$c2; + } + } else { + peg$currPos = s3; + s3 = peg$c2; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + s5 = peg$parseNL(); + if (s5 === peg$FAILED) { + s5 = peg$parseEOF(); + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = peg$c5; + } else { + peg$currPos = s4; + s4 = peg$c2; + } + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c6); + } + } + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$c2; + } + } else { + peg$currPos = s3; + s3 = peg$c2; + } + } + if (s2 !== peg$FAILED) { + s1 = [s1, s2]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsepath() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 49 + 4, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c7; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c8); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseS(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseS(); + } + if (s2 !== peg$FAILED) { + s3 = peg$parsetable_key(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseS(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseS(); + } + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c9; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c10); + } + } + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c11(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsetablearray() { + var s0, s1, s2, s3, s4, s5, s6, s7; + var key = peg$currPos * 49 + 5, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c7; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c8); + } + } + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 91) { + s2 = peg$c7; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c8); + } + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseS(); + } + if (s3 !== peg$FAILED) { + s4 = peg$parsetable_key(); + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseS(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseS(); + } + if (s5 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s6 = peg$c9; + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c10); + } + } + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s7 = peg$c9; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c10); + } + } + if (s7 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c12(s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsetable_key() { + var s0, s1, s2; + var key = peg$currPos * 49 + 6, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parsedot_ended_table_key_part(); + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsedot_ended_table_key_part(); + } + } else { + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + s2 = peg$parsetable_key_part(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c13(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parsetable_key_part(); + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c14(s1); + } + s0 = s1; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsetable_key_part() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 49 + 7, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parsekey(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseS(); + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c15(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parsequoted_key(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseS(); + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c15(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsedot_ended_table_key_part() { + var s0, s1, s2, s3, s4, s5, s6; + var key = peg$currPos * 49 + 8, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parsekey(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseS(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c16; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c17); + } + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseS(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseS(); + } + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c15(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parsequoted_key(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseS(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c16; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c17); + } + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseS(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseS(); + } + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c15(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseassignment() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 49 + 9, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$parsekey(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseS(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseS(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s3 = peg$c18; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c19); + } + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseS(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseS(); + } + if (s4 !== peg$FAILED) { + s5 = peg$parsevalue(); + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c20(s1, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parsequoted_key(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseS(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseS(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s3 = peg$c18; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c19); + } + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseS(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseS(); + } + if (s4 !== peg$FAILED) { + s5 = peg$parsevalue(); + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c20(s1, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsekey() { + var s0, s1, s2; + var key = peg$currPos * 49 + 10, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parseASCII_BASIC(); + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseASCII_BASIC(); + } + } else { + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c21(s1); + } + s0 = s1; + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsequoted_key() { + var s0, s1; + var key = peg$currPos * 49 + 11, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$parsedouble_quoted_single_line_string(); + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c22(s1); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parsesingle_quoted_single_line_string(); + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c22(s1); + } + s0 = s1; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsevalue() { + var s0; + var key = peg$currPos * 49 + 12, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$parsestring(); + if (s0 === peg$FAILED) { + s0 = peg$parsedatetime(); + if (s0 === peg$FAILED) { + s0 = peg$parsefloat(); + if (s0 === peg$FAILED) { + s0 = peg$parseinteger(); + if (s0 === peg$FAILED) { + s0 = peg$parseboolean(); + if (s0 === peg$FAILED) { + s0 = peg$parsearray(); + if (s0 === peg$FAILED) { + s0 = peg$parseinline_table(); + } + } + } + } + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsestring() { + var s0; + var key = peg$currPos * 49 + 13, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$parsedouble_quoted_multiline_string(); + if (s0 === peg$FAILED) { + s0 = peg$parsedouble_quoted_single_line_string(); + if (s0 === peg$FAILED) { + s0 = peg$parsesingle_quoted_multiline_string(); + if (s0 === peg$FAILED) { + s0 = peg$parsesingle_quoted_single_line_string(); + } + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsedouble_quoted_multiline_string() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 49 + 14, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c23) { + s1 = peg$c23; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c24); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseNL(); + if (s2 === peg$FAILED) { + s2 = peg$c25; + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parsemultiline_string_char(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parsemultiline_string_char(); + } + if (s3 !== peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c23) { + s4 = peg$c23; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c24); + } + } + if (s4 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c26(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsedouble_quoted_single_line_string() { + var s0, s1, s2, s3; + var key = peg$currPos * 49 + 15, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c27; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c28); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsestring_char(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsestring_char(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c27; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c28); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c26(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsesingle_quoted_multiline_string() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 49 + 16, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c29) { + s1 = peg$c29; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c30); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseNL(); + if (s2 === peg$FAILED) { + s2 = peg$c25; + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parsemultiline_literal_char(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parsemultiline_literal_char(); + } + if (s3 !== peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c29) { + s4 = peg$c29; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c30); + } + } + if (s4 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c26(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsesingle_quoted_single_line_string() { + var s0, s1, s2, s3; + var key = peg$currPos * 49 + 17, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 39) { + s1 = peg$c31; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c32); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseliteral_char(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseliteral_char(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 39) { + s3 = peg$c31; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c32); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c26(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsestring_char() { + var s0, s1, s2; + var key = peg$currPos * 49 + 18, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$parseESCAPED(); + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 34) { + s2 = peg$c27; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c28); + } + } + peg$silentFails--; + if (s2 === peg$FAILED) { + s1 = peg$c5; + } else { + peg$currPos = s1; + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + if (input.length > peg$currPos) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c6); + } + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c33(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseliteral_char() { + var s0, s1, s2; + var key = peg$currPos * 49 + 19, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 39) { + s2 = peg$c31; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c32); + } + } + peg$silentFails--; + if (s2 === peg$FAILED) { + s1 = peg$c5; + } else { + peg$currPos = s1; + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + if (input.length > peg$currPos) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c6); + } + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c33(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsemultiline_string_char() { + var s0, s1, s2; + var key = peg$currPos * 49 + 20, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$parseESCAPED(); + if (s0 === peg$FAILED) { + s0 = peg$parsemultiline_string_delim(); + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c23) { + s2 = peg$c23; + peg$currPos += 3; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c24); + } + } + peg$silentFails--; + if (s2 === peg$FAILED) { + s1 = peg$c5; + } else { + peg$currPos = s1; + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + if (input.length > peg$currPos) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c6); + } + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c34(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsemultiline_string_delim() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 49 + 21, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c35; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c36); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseNL(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseNLS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseNLS(); + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c37(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsemultiline_literal_char() { + var s0, s1, s2; + var key = peg$currPos * 49 + 22, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c29) { + s2 = peg$c29; + peg$currPos += 3; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c30); + } + } + peg$silentFails--; + if (s2 === peg$FAILED) { + s1 = peg$c5; + } else { + peg$currPos = s1; + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + if (input.length > peg$currPos) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c6); + } + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c33(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsefloat() { + var s0, s1, s2, s3; + var key = peg$currPos * 49 + 23, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$parsefloat_text(); + if (s1 === peg$FAILED) { + s1 = peg$parseinteger_text(); + } + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 101) { + s2 = peg$c38; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c39); + } + } + if (s2 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 69) { + s2 = peg$c40; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c41); + } + } + } + if (s2 !== peg$FAILED) { + s3 = peg$parseinteger_text(); + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c42(s1, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parsefloat_text(); + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c43(s1); + } + s0 = s1; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsefloat_text() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 49 + 24, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 43) { + s1 = peg$c44; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c45); + } + } + if (s1 === peg$FAILED) { + s1 = peg$c25; + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = peg$parseDIGITS(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c16; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c17); + } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseDIGITS(); + if (s5 !== peg$FAILED) { + s3 = [s3, s4, s5]; + s2 = s3; + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c46(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 45) { + s1 = peg$c47; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c48); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = peg$parseDIGITS(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c16; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c17); + } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseDIGITS(); + if (s5 !== peg$FAILED) { + s3 = [s3, s4, s5]; + s2 = s3; + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c49(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseinteger() { + var s0, s1; + var key = peg$currPos * 49 + 25, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$parseinteger_text(); + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c50(s1); + } + s0 = s1; + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseinteger_text() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 49 + 26, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 43) { + s1 = peg$c44; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c45); + } + } + if (s1 === peg$FAILED) { + s1 = peg$c25; + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseDIGIT_OR_UNDER(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseDIGIT_OR_UNDER(); + } + } else { + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c16; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c17); + } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = peg$c5; + } else { + peg$currPos = s3; + s3 = peg$c2; + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c46(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 45) { + s1 = peg$c47; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c48); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseDIGIT_OR_UNDER(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseDIGIT_OR_UNDER(); + } + } else { + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c16; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c17); + } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = peg$c5; + } else { + peg$currPos = s3; + s3 = peg$c2; + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c49(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseboolean() { + var s0, s1; + var key = peg$currPos * 49 + 27, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.substr(peg$currPos, 4) === peg$c51) { + s1 = peg$c51; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c52); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c53(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 5) === peg$c54) { + s1 = peg$c54; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c55); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c56(); + } + s0 = s1; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsearray() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 49 + 28, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c7; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c8); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsearray_sep(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsearray_sep(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s3 = peg$c9; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c10); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c57(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c7; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c8); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsearray_value(); + if (s2 === peg$FAILED) { + s2 = peg$c25; + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s3 = peg$c9; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c10); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c58(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c7; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c8); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsearray_value_list(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsearray_value_list(); + } + } else { + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s3 = peg$c9; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c10); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c59(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c7; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c8); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parsearray_value_list(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parsearray_value_list(); + } + } else { + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + s3 = peg$parsearray_value(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s4 = peg$c9; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c10); + } + } + if (s4 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c60(s2, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsearray_value() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 49 + 29, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parsearray_sep(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsearray_sep(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parsevalue(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parsearray_sep(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parsearray_sep(); + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c61(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsearray_value_list() { + var s0, s1, s2, s3, s4, s5, s6; + var key = peg$currPos * 49 + 30, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parsearray_sep(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parsearray_sep(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parsevalue(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parsearray_sep(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parsearray_sep(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s4 = peg$c62; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c63); + } + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parsearray_sep(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parsearray_sep(); + } + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c61(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsearray_sep() { + var s0; + var key = peg$currPos * 49 + 31, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$parseS(); + if (s0 === peg$FAILED) { + s0 = peg$parseNL(); + if (s0 === peg$FAILED) { + s0 = peg$parsecomment(); + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseinline_table() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 49 + 32, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c64; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c65); + } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseS(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseS(); + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseinline_table_assignment(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseinline_table_assignment(); + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseS(); + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseS(); + } + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s5 = peg$c66; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c67); + } + } + if (s5 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c68(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseinline_table_assignment() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; + var key = peg$currPos * 49 + 33, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parsekey(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseS(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s4 = peg$c18; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c19); + } + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseS(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseS(); + } + if (s5 !== peg$FAILED) { + s6 = peg$parsevalue(); + if (s6 !== peg$FAILED) { + s7 = []; + s8 = peg$parseS(); + while (s8 !== peg$FAILED) { + s7.push(s8); + s8 = peg$parseS(); + } + if (s7 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s8 = peg$c62; + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c63); + } + } + if (s8 !== peg$FAILED) { + s9 = []; + s10 = peg$parseS(); + while (s10 !== peg$FAILED) { + s9.push(s10); + s10 = peg$parseS(); + } + if (s9 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c69(s2, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + } + if (s1 !== peg$FAILED) { + s2 = peg$parsekey(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseS(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseS(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s4 = peg$c18; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c19); + } + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseS(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseS(); + } + if (s5 !== peg$FAILED) { + s6 = peg$parsevalue(); + if (s6 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c69(s2, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsesecfragment() { + var s0, s1, s2; + var key = peg$currPos * 49 + 34, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 46) { + s1 = peg$c16; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c17); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseDIGITS(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c70(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsedate() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; + var key = peg$currPos * 49 + 35, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$currPos; + s2 = peg$parseDIGIT_OR_UNDER(); + if (s2 !== peg$FAILED) { + s3 = peg$parseDIGIT_OR_UNDER(); + if (s3 !== peg$FAILED) { + s4 = peg$parseDIGIT_OR_UNDER(); + if (s4 !== peg$FAILED) { + s5 = peg$parseDIGIT_OR_UNDER(); + if (s5 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 45) { + s6 = peg$c47; + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c48); + } + } + if (s6 !== peg$FAILED) { + s7 = peg$parseDIGIT_OR_UNDER(); + if (s7 !== peg$FAILED) { + s8 = peg$parseDIGIT_OR_UNDER(); + if (s8 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 45) { + s9 = peg$c47; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c48); + } + } + if (s9 !== peg$FAILED) { + s10 = peg$parseDIGIT_OR_UNDER(); + if (s10 !== peg$FAILED) { + s11 = peg$parseDIGIT_OR_UNDER(); + if (s11 !== peg$FAILED) { + s2 = [s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c71(s1); + } + s0 = s1; + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsetime() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; + var key = peg$currPos * 49 + 36, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$currPos; + s2 = peg$parseDIGIT_OR_UNDER(); + if (s2 !== peg$FAILED) { + s3 = peg$parseDIGIT_OR_UNDER(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 58) { + s4 = peg$c72; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseDIGIT_OR_UNDER(); + if (s5 !== peg$FAILED) { + s6 = peg$parseDIGIT_OR_UNDER(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 58) { + s7 = peg$c72; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s7 !== peg$FAILED) { + s8 = peg$parseDIGIT_OR_UNDER(); + if (s8 !== peg$FAILED) { + s9 = peg$parseDIGIT_OR_UNDER(); + if (s9 !== peg$FAILED) { + s10 = peg$parsesecfragment(); + if (s10 === peg$FAILED) { + s10 = peg$c25; + } + if (s10 !== peg$FAILED) { + s2 = [s2, s3, s4, s5, s6, s7, s8, s9, s10]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c74(s1); + } + s0 = s1; + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsetime_with_offset() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16; + var key = peg$currPos * 49 + 37, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$currPos; + s2 = peg$parseDIGIT_OR_UNDER(); + if (s2 !== peg$FAILED) { + s3 = peg$parseDIGIT_OR_UNDER(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 58) { + s4 = peg$c72; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseDIGIT_OR_UNDER(); + if (s5 !== peg$FAILED) { + s6 = peg$parseDIGIT_OR_UNDER(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 58) { + s7 = peg$c72; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s7 !== peg$FAILED) { + s8 = peg$parseDIGIT_OR_UNDER(); + if (s8 !== peg$FAILED) { + s9 = peg$parseDIGIT_OR_UNDER(); + if (s9 !== peg$FAILED) { + s10 = peg$parsesecfragment(); + if (s10 === peg$FAILED) { + s10 = peg$c25; + } + if (s10 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 45) { + s11 = peg$c47; + peg$currPos++; + } else { + s11 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c48); + } + } + if (s11 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 43) { + s11 = peg$c44; + peg$currPos++; + } else { + s11 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c45); + } + } + } + if (s11 !== peg$FAILED) { + s12 = peg$parseDIGIT_OR_UNDER(); + if (s12 !== peg$FAILED) { + s13 = peg$parseDIGIT_OR_UNDER(); + if (s13 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 58) { + s14 = peg$c72; + peg$currPos++; + } else { + s14 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s14 !== peg$FAILED) { + s15 = peg$parseDIGIT_OR_UNDER(); + if (s15 !== peg$FAILED) { + s16 = peg$parseDIGIT_OR_UNDER(); + if (s16 !== peg$FAILED) { + s2 = [s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + } else { + peg$currPos = s1; + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c74(s1); + } + s0 = s1; + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parsedatetime() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 49 + 38, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = peg$parsedate(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 84) { + s2 = peg$c75; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c76); + } + } + if (s2 !== peg$FAILED) { + s3 = peg$parsetime(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 90) { + s4 = peg$c77; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c78); + } + } + if (s4 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c79(s1, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parsedate(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 84) { + s2 = peg$c75; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c76); + } + } + if (s2 !== peg$FAILED) { + s3 = peg$parsetime_with_offset(); + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c80(s1, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseS() { + var s0; + var key = peg$currPos * 49 + 39, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + if (peg$c81.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c82); + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseNL() { + var s0, s1, s2; + var key = peg$currPos * 49 + 40, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + if (input.charCodeAt(peg$currPos) === 10) { + s0 = peg$c83; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c84); + } + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 13) { + s1 = peg$c85; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c86); + } + } + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 10) { + s2 = peg$c83; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c84); + } + } + if (s2 !== peg$FAILED) { + s1 = [s1, s2]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseNLS() { + var s0; + var key = peg$currPos * 49 + 41, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$parseNL(); + if (s0 === peg$FAILED) { + s0 = peg$parseS(); + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseEOF() { + var s0, s1; + var key = peg$currPos * 49 + 42, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + peg$silentFails++; + if (input.length > peg$currPos) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c6); + } + } + peg$silentFails--; + if (s1 === peg$FAILED) { + s0 = peg$c5; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseHEX() { + var s0; + var key = peg$currPos * 49 + 43, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + if (peg$c87.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c88); + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseDIGIT_OR_UNDER() { + var s0, s1; + var key = peg$currPos * 49 + 44, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + if (peg$c89.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c90); + } + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 95) { + s1 = peg$c91; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c92); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c93(); + } + s0 = s1; + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseASCII_BASIC() { + var s0; + var key = peg$currPos * 49 + 45, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + if (peg$c94.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c95); + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseDIGITS() { + var s0, s1, s2; + var key = peg$currPos * 49 + 46, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + s1 = []; + s2 = peg$parseDIGIT_OR_UNDER(); + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseDIGIT_OR_UNDER(); + } + } else { + s1 = peg$c2; + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c96(s1); + } + s0 = s1; + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseESCAPED() { + var s0, s1; + var key = peg$currPos * 49 + 47, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c97) { + s1 = peg$c97; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c98); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c99(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c100) { + s1 = peg$c100; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c101); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c102(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c103) { + s1 = peg$c103; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c104); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c105(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c106) { + s1 = peg$c106; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c107); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c108(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c109) { + s1 = peg$c109; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c110); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c111(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c112) { + s1 = peg$c112; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c113); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c114(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c115) { + s1 = peg$c115; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c116); + } + } + if (s1 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c117(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$parseESCAPED_UNICODE(); + } + } + } + } + } + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + function peg$parseESCAPED_UNICODE() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; + var key = peg$currPos * 49 + 48, cached = peg$cache[key]; + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c118) { + s1 = peg$c118; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c119); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = peg$parseHEX(); + if (s3 !== peg$FAILED) { + s4 = peg$parseHEX(); + if (s4 !== peg$FAILED) { + s5 = peg$parseHEX(); + if (s5 !== peg$FAILED) { + s6 = peg$parseHEX(); + if (s6 !== peg$FAILED) { + s7 = peg$parseHEX(); + if (s7 !== peg$FAILED) { + s8 = peg$parseHEX(); + if (s8 !== peg$FAILED) { + s9 = peg$parseHEX(); + if (s9 !== peg$FAILED) { + s10 = peg$parseHEX(); + if (s10 !== peg$FAILED) { + s3 = [s3, s4, s5, s6, s7, s8, s9, s10]; + s2 = s3; + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c120(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c121) { + s1 = peg$c121; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c122); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = peg$parseHEX(); + if (s3 !== peg$FAILED) { + s4 = peg$parseHEX(); + if (s4 !== peg$FAILED) { + s5 = peg$parseHEX(); + if (s5 !== peg$FAILED) { + s6 = peg$parseHEX(); + if (s6 !== peg$FAILED) { + s3 = [s3, s4, s5, s6]; + s2 = s3; + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + } else { + peg$currPos = s2; + s2 = peg$c2; + } + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c120(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } else { + peg$currPos = s0; + s0 = peg$c2; + } + } + peg$cache[key] = { nextPos: peg$currPos, result: s0 }; + return s0; + } + var nodes = []; + function genError(err, line2, col) { + var ex = new Error(err); + ex.line = line2; + ex.column = col; + throw ex; + } + function addNode(node2) { + nodes.push(node2); + } + function node(type, value, line2, column2, key) { + var obj = { type, value, line: line2(), column: column2() }; + if (key) obj.key = key; + return obj; + } + function convertCodePoint(str, line2, col) { + var num = parseInt("0x" + str); + if (!isFinite(num) || Math.floor(num) != num || num < 0 || num > 1114111 || num > 55295 && num < 57344) { + genError("Invalid Unicode escape code: " + str, line2, col); + } else { + return fromCodePoint(num); + } + } + function fromCodePoint() { + var MAX_SIZE = 16384; + var codeUnits = []; + var highSurrogate; + var lowSurrogate; + var index = -1; + var length = arguments.length; + if (!length) { + return ""; + } + var result = ""; + while (++index < length) { + var codePoint = Number(arguments[index]); + if (codePoint <= 65535) { + codeUnits.push(codePoint); + } else { + codePoint -= 65536; + highSurrogate = (codePoint >> 10) + 55296; + lowSurrogate = codePoint % 1024 + 56320; + codeUnits.push(highSurrogate, lowSurrogate); + } + if (index + 1 == length || codeUnits.length > MAX_SIZE) { + result += String.fromCharCode.apply(null, codeUnits); + codeUnits.length = 0; + } + } + return result; + } + peg$result = peg$startRuleFunction(); + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail({ type: "end", description: "end of input" }); + } + throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos); + } + } + return { + SyntaxError: SyntaxError2, + parse: parse2 + }; + }(); + } +}); + +// node_modules/toml/lib/compiler.js +var require_compiler = __commonJS({ + "node_modules/toml/lib/compiler.js"(exports2, module2) { + "use strict"; + function compile(nodes) { + var assignedPaths = []; + var valueAssignments = []; + var currentPath = ""; + var data = /* @__PURE__ */ Object.create(null); + var context = data; + var arrayMode = false; + return reduce(nodes); + function reduce(nodes2) { + var node; + for (var i = 0; i < nodes2.length; i++) { + node = nodes2[i]; + switch (node.type) { + case "Assign": + assign(node); + break; + case "ObjectPath": + setPath(node); + break; + case "ArrayPath": + addTableArray(node); + break; + } + } + return data; + } + function genError(err, line, col) { + var ex = new Error(err); + ex.line = line; + ex.column = col; + throw ex; + } + function assign(node) { + var key = node.key; + var value = node.value; + var line = node.line; + var column = node.column; + var fullPath; + if (currentPath) { + fullPath = currentPath + "." + key; + } else { + fullPath = key; + } + if (typeof context[key] !== "undefined") { + genError("Cannot redefine existing key '" + fullPath + "'.", line, column); + } + context[key] = reduceValueNode(value); + if (!pathAssigned(fullPath)) { + assignedPaths.push(fullPath); + valueAssignments.push(fullPath); + } + } + function pathAssigned(path) { + return assignedPaths.indexOf(path) !== -1; + } + function reduceValueNode(node) { + if (node.type === "Array") { + return reduceArrayWithTypeChecking(node.value); + } else if (node.type === "InlineTable") { + return reduceInlineTableNode(node.value); + } else { + return node.value; + } + } + function reduceInlineTableNode(values) { + var obj = /* @__PURE__ */ Object.create(null); + for (var i = 0; i < values.length; i++) { + var val = values[i]; + if (val.value.type === "InlineTable") { + obj[val.key] = reduceInlineTableNode(val.value.value); + } else if (val.type === "InlineTableValue") { + obj[val.key] = reduceValueNode(val.value); + } + } + return obj; + } + function setPath(node) { + var path = node.value; + var quotedPath = path.map(quoteDottedString).join("."); + var line = node.line; + var column = node.column; + if (pathAssigned(quotedPath)) { + genError("Cannot redefine existing key '" + path + "'.", line, column); + } + assignedPaths.push(quotedPath); + context = deepRef(data, path, /* @__PURE__ */ Object.create(null), line, column); + currentPath = path; + } + function addTableArray(node) { + var path = node.value; + var quotedPath = path.map(quoteDottedString).join("."); + var line = node.line; + var column = node.column; + if (!pathAssigned(quotedPath)) { + assignedPaths.push(quotedPath); + } + assignedPaths = assignedPaths.filter(function(p) { + return p.indexOf(quotedPath) !== 0; + }); + assignedPaths.push(quotedPath); + context = deepRef(data, path, [], line, column); + currentPath = quotedPath; + if (context instanceof Array) { + var newObj = /* @__PURE__ */ Object.create(null); + context.push(newObj); + context = newObj; + } else { + genError("Cannot redefine existing key '" + path + "'.", line, column); + } + } + function deepRef(start, keys, value, line, column) { + var traversed = []; + var traversedPath = ""; + var path = keys.join("."); + var ctx = start; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + traversed.push(key); + traversedPath = traversed.join("."); + if (typeof ctx[key] === "undefined") { + if (i === keys.length - 1) { + ctx[key] = value; + } else { + ctx[key] = /* @__PURE__ */ Object.create(null); + } + } else if (i !== keys.length - 1 && valueAssignments.indexOf(traversedPath) > -1) { + genError("Cannot redefine existing key '" + traversedPath + "'.", line, column); + } + ctx = ctx[key]; + if (ctx instanceof Array && ctx.length && i < keys.length - 1) { + ctx = ctx[ctx.length - 1]; + } + } + return ctx; + } + function reduceArrayWithTypeChecking(array11) { + var firstType = null; + for (var i = 0; i < array11.length; i++) { + var node = array11[i]; + if (firstType === null) { + firstType = node.type; + } else { + if (node.type !== firstType) { + genError("Cannot add value of type " + node.type + " to array of type " + firstType + ".", node.line, node.column); + } + } + } + return array11.map(reduceValueNode); + } + function quoteDottedString(str) { + if (str.indexOf(".") > -1) { + return '"' + str + '"'; + } else { + return str; + } + } + } + module2.exports = { + compile + }; + } +}); + +// node_modules/toml/index.js +var require_toml = __commonJS({ + "node_modules/toml/index.js"(exports2, module2) { + var parser = require_parser(); + var compiler = require_compiler(); + module2.exports = { + parse: function(input) { + var nodes = parser.parse(input.toString()); + return compiler.compile(nodes); + } + }; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/workspace.js +var require_workspace = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/workspace.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + var camelcase_1 = __importDefault2(require_camelcase()); + var toml = __importStar2(require_toml()); + var web3_js_1 = require_index_cjs(); + var index_js_1 = require_program(); + var common_js_1 = require_common2(); + var _populatedWorkspace = false; + var workspace = new Proxy({}, { + get(workspaceCache, programName) { + if (common_js_1.isBrowser) { + throw new Error("Workspaces aren't available in the browser"); + } + const fs = require("fs"); + const process2 = require("process"); + if (!_populatedWorkspace) { + const path = require("path"); + let projectRoot = process2.cwd(); + while (!fs.existsSync(path.join(projectRoot, "Anchor.toml"))) { + const parentDir = path.dirname(projectRoot); + if (parentDir === projectRoot) { + projectRoot = void 0; + } + projectRoot = parentDir; + } + if (projectRoot === void 0) { + throw new Error("Could not find workspace root."); + } + const idlFolder = `${projectRoot}/target/idl`; + if (!fs.existsSync(idlFolder)) { + throw new Error(`${idlFolder} doesn't exist. Did you use "anchor build"?`); + } + const idlMap = /* @__PURE__ */ new Map(); + fs.readdirSync(idlFolder).filter((file) => file.endsWith(".json")).forEach((file) => { + const filePath = `${idlFolder}/${file}`; + const idlStr = fs.readFileSync(filePath); + const idl = JSON.parse(idlStr); + idlMap.set(idl.name, idl); + const name = (0, camelcase_1.default)(idl.name, { pascalCase: true }); + if (idl.metadata && idl.metadata.address) { + workspaceCache[name] = new index_js_1.Program(idl, new web3_js_1.PublicKey(idl.metadata.address)); + } + }); + const anchorToml = toml.parse(fs.readFileSync(path.join(projectRoot, "Anchor.toml"), "utf-8")); + const clusterId = anchorToml.provider.cluster; + if (anchorToml.programs && anchorToml.programs[clusterId]) { + attachWorkspaceOverride(workspaceCache, anchorToml.programs[clusterId], idlMap); + } + _populatedWorkspace = true; + } + return workspaceCache[programName]; + } + }); + function attachWorkspaceOverride(workspaceCache, overrideConfig, idlMap) { + Object.keys(overrideConfig).forEach((programName) => { + const wsProgramName = (0, camelcase_1.default)(programName, { pascalCase: true }); + const entry = overrideConfig[programName]; + const overrideAddress = new web3_js_1.PublicKey(typeof entry === "string" ? entry : entry.address); + let idl = idlMap.get(programName); + if (typeof entry !== "string" && entry.idl) { + idl = JSON.parse(require("fs").readFileSync(entry.idl, "utf-8")); + } + if (!idl) { + throw new Error(`Error loading workspace IDL for ${programName}`); + } + workspaceCache[wsProgramName] = new index_js_1.Program(idl, overrideAddress); + }); + } + exports2.default = workspace; + } +}); + +// node_modules/@coral-xyz/anchor/dist/cjs/index.js +var require_cjs = __commonJS({ + "node_modules/@coral-xyz/anchor/dist/cjs/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.utils = exports2.AnchorProvider = exports2.setProvider = exports2.getProvider = exports2.web3 = exports2.BN = void 0; + var nodewallet_1 = __importDefault2(require_nodewallet()); + var common_js_1 = require_common2(); + var bn_js_1 = require_bn(); + Object.defineProperty(exports2, "BN", { enumerable: true, get: function() { + return __importDefault2(bn_js_1).default; + } }); + exports2.web3 = __importStar2(require_index_cjs()); + var provider_js_1 = require_provider(); + Object.defineProperty(exports2, "getProvider", { enumerable: true, get: function() { + return provider_js_1.getProvider; + } }); + Object.defineProperty(exports2, "setProvider", { enumerable: true, get: function() { + return provider_js_1.setProvider; + } }); + Object.defineProperty(exports2, "AnchorProvider", { enumerable: true, get: function() { + return provider_js_1.AnchorProvider; + } }); + __exportStar2(require_error(), exports2); + __exportStar2(require_coder(), exports2); + exports2.utils = __importStar2(require_utils8()); + __exportStar2(require_program(), exports2); + __exportStar2(require_native(), exports2); + if (!common_js_1.isBrowser) { + exports2.workspace = require_workspace().default; + exports2.Wallet = require_nodewallet().default; + } + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/config/marinade-config.js +var require_marinade_config = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/config/marinade-config.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MarinadeConfig = void 0; + var anchor_1 = require_cjs(); + var DEFAULT_PROVIDER_URL = "https://api.devnet.solana.com"; + var MarinadeConfig = class { + constructor(configOverrides = {}) { + this.marinadeFinanceProgramId = new anchor_1.web3.PublicKey("MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD"); + this.marinadeReferralProgramId = new anchor_1.web3.PublicKey("MR2LqxoSbw831bNy68utpu5n4YqBH3AzDmddkgk9LQv"); + this.marinadeStateAddress = new anchor_1.web3.PublicKey("8szGkuLTAux9XMgZ2vtY39jVSowEcpBfFfD8hXSEqdGC"); + this.marinadeReferralGlobalStateAddress = new anchor_1.web3.PublicKey("MRSh4rUNrpn7mjAq9ENHV4rvwwPKMij113ScZq3twp2"); + this.stakeWithdrawAuthPDA = new anchor_1.web3.PublicKey("9eG63CdHjsfhHmobHgLtESGC8GabbmRcaSpHAZrtmhco"); + this.lookupTableAddress = new anchor_1.web3.PublicKey("DCcQeBaCiYsEsjjmEsSYPCr9o4n174LKqXNDvQT5wVd8"); + this.connection = new anchor_1.web3.Connection(DEFAULT_PROVIDER_URL); + this.publicKey = null; + this.referralCode = null; + Object.assign(this, configOverrides); + } + }; + exports2.MarinadeConfig = MarinadeConfig; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/constants.js +var require_constants8 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.programSupportsExtensions = exports2.NATIVE_MINT_2022 = exports2.NATIVE_MINT = exports2.ASSOCIATED_TOKEN_PROGRAM_ID = exports2.TOKEN_2022_PROGRAM_ID = exports2.TOKEN_PROGRAM_ID = void 0; + var web3_js_1 = require_index_cjs(); + exports2.TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"); + exports2.TOKEN_2022_PROGRAM_ID = new web3_js_1.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"); + exports2.ASSOCIATED_TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"); + exports2.NATIVE_MINT = new web3_js_1.PublicKey("So11111111111111111111111111111111111111112"); + exports2.NATIVE_MINT_2022 = new web3_js_1.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP"); + function programSupportsExtensions(programId) { + if (programId === exports2.TOKEN_PROGRAM_ID) { + return false; + } else { + return true; + } + } + exports2.programSupportsExtensions = programSupportsExtensions; + } +}); + +// node_modules/@solana/buffer-layout-utils/lib/cjs/base.js +var require_base = __commonJS({ + "node_modules/@solana/buffer-layout-utils/lib/cjs/base.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.encodeDecode = void 0; + var encodeDecode2 = (layout) => { + const decode = layout.decode.bind(layout); + const encode = layout.encode.bind(layout); + return { decode, encode }; + }; + exports2.encodeDecode = encodeDecode2; + } +}); + +// node_modules/@solana/buffer-layout-utils/lib/cjs/bigint.js +var require_bigint = __commonJS({ + "node_modules/@solana/buffer-layout-utils/lib/cjs/bigint.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.u256be = exports2.u256 = exports2.u192be = exports2.u192 = exports2.u128be = exports2.u128 = exports2.u64be = exports2.u64 = exports2.bigIntBE = exports2.bigInt = void 0; + var buffer_layout_1 = require_Layout(); + var bigint_buffer_1 = require_node2(); + var base_1 = require_base(); + var bigInt2 = (length) => (property) => { + const layout = (0, buffer_layout_1.blob)(length, property); + const { encode, decode } = (0, base_1.encodeDecode)(layout); + const bigIntLayout = layout; + bigIntLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset); + return (0, bigint_buffer_1.toBigIntLE)(Buffer.from(src)); + }; + bigIntLayout.encode = (bigInt3, buffer, offset) => { + const src = (0, bigint_buffer_1.toBufferLE)(bigInt3, length); + return encode(src, buffer, offset); + }; + return bigIntLayout; + }; + exports2.bigInt = bigInt2; + var bigIntBE2 = (length) => (property) => { + const layout = (0, buffer_layout_1.blob)(length, property); + const { encode, decode } = (0, base_1.encodeDecode)(layout); + const bigIntLayout = layout; + bigIntLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset); + return (0, bigint_buffer_1.toBigIntBE)(Buffer.from(src)); + }; + bigIntLayout.encode = (bigInt3, buffer, offset) => { + const src = (0, bigint_buffer_1.toBufferBE)(bigInt3, length); + return encode(src, buffer, offset); + }; + return bigIntLayout; + }; + exports2.bigIntBE = bigIntBE2; + exports2.u64 = (0, exports2.bigInt)(8); + exports2.u64be = (0, exports2.bigIntBE)(8); + exports2.u128 = (0, exports2.bigInt)(16); + exports2.u128be = (0, exports2.bigIntBE)(16); + exports2.u192 = (0, exports2.bigInt)(24); + exports2.u192be = (0, exports2.bigIntBE)(24); + exports2.u256 = (0, exports2.bigInt)(32); + exports2.u256be = (0, exports2.bigIntBE)(32); + } +}); + +// node_modules/bignumber.js/bignumber.js +var require_bignumber = __commonJS({ + "node_modules/bignumber.js/bignumber.js"(exports2, module2) { + (function(globalObject) { + "use strict"; + var BigNumber2, isNumeric2 = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, mathceil2 = Math.ceil, mathfloor2 = Math.floor, bignumberError2 = "[BigNumber Error] ", tooManyDigits2 = bignumberError2 + "Number primitive has more than 15 significant digits: ", BASE2 = 1e14, LOG_BASE2 = 14, MAX_SAFE_INTEGER2 = 9007199254740991, POWS_TEN2 = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], SQRT_BASE2 = 1e7, MAX2 = 1e9; + function clone2(configObject) { + var div, convertBase, parseNumeric, P = BigNumber3.prototype = { constructor: BigNumber3, toString: null, valueOf: null }, ONE = new BigNumber3(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = { + prefix: "", + groupSize: 3, + secondaryGroupSize: 0, + groupSeparator: ",", + decimalSeparator: ".", + fractionGroupSize: 0, + fractionGroupSeparator: "\xA0", + // non-breaking space + suffix: "" + }, ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", alphabetHasNormalDecimalDigits = true; + function BigNumber3(v, b) { + var alphabet, c, caseChanged, e, i, isNum, len, str, x = this; + if (!(x instanceof BigNumber3)) return new BigNumber3(v, b); + if (b == null) { + if (v && v._isBigNumber === true) { + x.s = v.s; + if (!v.c || v.e > MAX_EXP) { + x.c = x.e = null; + } else if (v.e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = v.e; + x.c = v.c.slice(); + } + return; + } + if ((isNum = typeof v == "number") && v * 0 == 0) { + x.s = 1 / v < 0 ? (v = -v, -1) : 1; + if (v === ~~v) { + for (e = 0, i = v; i >= 10; i /= 10, e++) ; + if (e > MAX_EXP) { + x.c = x.e = null; + } else { + x.e = e; + x.c = [v]; + } + return; + } + str = String(v); + } else { + if (!isNumeric2.test(str = String(v))) return parseNumeric(x, str, isNum); + x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; + } + if ((e = str.indexOf(".")) > -1) str = str.replace(".", ""); + if ((i = str.search(/e/i)) > 0) { + if (e < 0) e = i; + e += +str.slice(i + 1); + str = str.substring(0, i); + } else if (e < 0) { + e = str.length; + } + } else { + intCheck2(b, 2, ALPHABET.length, "Base"); + if (b == 10 && alphabetHasNormalDecimalDigits) { + x = new BigNumber3(v); + return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); + } + str = String(v); + if (isNum = typeof v == "number") { + if (v * 0 != 0) return parseNumeric(x, str, isNum, b); + x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1; + if (BigNumber3.DEBUG && str.replace(/^0\.0*|\./, "").length > 15) { + throw Error(tooManyDigits2 + v); + } + } else { + x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; + } + alphabet = ALPHABET.slice(0, b); + e = i = 0; + for (len = str.length; i < len; i++) { + if (alphabet.indexOf(c = str.charAt(i)) < 0) { + if (c == ".") { + if (i > e) { + e = len; + continue; + } + } else if (!caseChanged) { + if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) { + caseChanged = true; + i = -1; + e = 0; + continue; + } + } + return parseNumeric(x, String(v), isNum, b); + } + } + isNum = false; + str = convertBase(str, b, 10, x.s); + if ((e = str.indexOf(".")) > -1) str = str.replace(".", ""); + else e = str.length; + } + for (i = 0; str.charCodeAt(i) === 48; i++) ; + for (len = str.length; str.charCodeAt(--len) === 48; ) ; + if (str = str.slice(i, ++len)) { + len -= i; + if (isNum && BigNumber3.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER2 || v !== mathfloor2(v))) { + throw Error(tooManyDigits2 + x.s * v); + } + if ((e = e - i - 1) > MAX_EXP) { + x.c = x.e = null; + } else if (e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = e; + x.c = []; + i = (e + 1) % LOG_BASE2; + if (e < 0) i += LOG_BASE2; + if (i < len) { + if (i) x.c.push(+str.slice(0, i)); + for (len -= LOG_BASE2; i < len; ) { + x.c.push(+str.slice(i, i += LOG_BASE2)); + } + i = LOG_BASE2 - (str = str.slice(i)).length; + } else { + i -= len; + } + for (; i--; str += "0") ; + x.c.push(+str); + } + } else { + x.c = [x.e = 0]; + } + } + BigNumber3.clone = clone2; + BigNumber3.ROUND_UP = 0; + BigNumber3.ROUND_DOWN = 1; + BigNumber3.ROUND_CEIL = 2; + BigNumber3.ROUND_FLOOR = 3; + BigNumber3.ROUND_HALF_UP = 4; + BigNumber3.ROUND_HALF_DOWN = 5; + BigNumber3.ROUND_HALF_EVEN = 6; + BigNumber3.ROUND_HALF_CEIL = 7; + BigNumber3.ROUND_HALF_FLOOR = 8; + BigNumber3.EUCLID = 9; + BigNumber3.config = BigNumber3.set = function(obj) { + var p, v; + if (obj != null) { + if (typeof obj == "object") { + if (obj.hasOwnProperty(p = "DECIMAL_PLACES")) { + v = obj[p]; + intCheck2(v, 0, MAX2, p); + DECIMAL_PLACES = v; + } + if (obj.hasOwnProperty(p = "ROUNDING_MODE")) { + v = obj[p]; + intCheck2(v, 0, 8, p); + ROUNDING_MODE = v; + } + if (obj.hasOwnProperty(p = "EXPONENTIAL_AT")) { + v = obj[p]; + if (v && v.pop) { + intCheck2(v[0], -MAX2, 0, p); + intCheck2(v[1], 0, MAX2, p); + TO_EXP_NEG = v[0]; + TO_EXP_POS = v[1]; + } else { + intCheck2(v, -MAX2, MAX2, p); + TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v); + } + } + if (obj.hasOwnProperty(p = "RANGE")) { + v = obj[p]; + if (v && v.pop) { + intCheck2(v[0], -MAX2, -1, p); + intCheck2(v[1], 1, MAX2, p); + MIN_EXP = v[0]; + MAX_EXP = v[1]; + } else { + intCheck2(v, -MAX2, MAX2, p); + if (v) { + MIN_EXP = -(MAX_EXP = v < 0 ? -v : v); + } else { + throw Error(bignumberError2 + p + " cannot be zero: " + v); + } + } + } + if (obj.hasOwnProperty(p = "CRYPTO")) { + v = obj[p]; + if (v === !!v) { + if (v) { + if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) { + CRYPTO = v; + } else { + CRYPTO = !v; + throw Error(bignumberError2 + "crypto unavailable"); + } + } else { + CRYPTO = v; + } + } else { + throw Error(bignumberError2 + p + " not true or false: " + v); + } + } + if (obj.hasOwnProperty(p = "MODULO_MODE")) { + v = obj[p]; + intCheck2(v, 0, 9, p); + MODULO_MODE = v; + } + if (obj.hasOwnProperty(p = "POW_PRECISION")) { + v = obj[p]; + intCheck2(v, 0, MAX2, p); + POW_PRECISION = v; + } + if (obj.hasOwnProperty(p = "FORMAT")) { + v = obj[p]; + if (typeof v == "object") FORMAT = v; + else throw Error(bignumberError2 + p + " not an object: " + v); + } + if (obj.hasOwnProperty(p = "ALPHABET")) { + v = obj[p]; + if (typeof v == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) { + alphabetHasNormalDecimalDigits = v.slice(0, 10) == "0123456789"; + ALPHABET = v; + } else { + throw Error(bignumberError2 + p + " invalid: " + v); + } + } + } else { + throw Error(bignumberError2 + "Object expected: " + obj); + } + } + return { + DECIMAL_PLACES, + ROUNDING_MODE, + EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS], + RANGE: [MIN_EXP, MAX_EXP], + CRYPTO, + MODULO_MODE, + POW_PRECISION, + FORMAT, + ALPHABET + }; + }; + BigNumber3.isBigNumber = function(v) { + if (!v || v._isBigNumber !== true) return false; + if (!BigNumber3.DEBUG) return true; + var i, n, c = v.c, e = v.e, s = v.s; + out: if ({}.toString.call(c) == "[object Array]") { + if ((s === 1 || s === -1) && e >= -MAX2 && e <= MAX2 && e === mathfloor2(e)) { + if (c[0] === 0) { + if (e === 0 && c.length === 1) return true; + break out; + } + i = (e + 1) % LOG_BASE2; + if (i < 1) i += LOG_BASE2; + if (String(c[0]).length == i) { + for (i = 0; i < c.length; i++) { + n = c[i]; + if (n < 0 || n >= BASE2 || n !== mathfloor2(n)) break out; + } + if (n !== 0) return true; + } + } + } else if (c === null && e === null && (s === null || s === 1 || s === -1)) { + return true; + } + throw Error(bignumberError2 + "Invalid BigNumber: " + v); + }; + BigNumber3.maximum = BigNumber3.max = function() { + return maxOrMin(arguments, -1); + }; + BigNumber3.minimum = BigNumber3.min = function() { + return maxOrMin(arguments, 1); + }; + BigNumber3.random = function() { + var pow2_53 = 9007199254740992; + var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() { + return mathfloor2(Math.random() * pow2_53); + } : function() { + return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0); + }; + return function(dp) { + var a, b, e, k, v, i = 0, c = [], rand = new BigNumber3(ONE); + if (dp == null) dp = DECIMAL_PLACES; + else intCheck2(dp, 0, MAX2); + k = mathceil2(dp / LOG_BASE2); + if (CRYPTO) { + if (crypto.getRandomValues) { + a = crypto.getRandomValues(new Uint32Array(k *= 2)); + for (; i < k; ) { + v = a[i] * 131072 + (a[i + 1] >>> 11); + if (v >= 9e15) { + b = crypto.getRandomValues(new Uint32Array(2)); + a[i] = b[0]; + a[i + 1] = b[1]; + } else { + c.push(v % 1e14); + i += 2; + } + } + i = k / 2; + } else if (crypto.randomBytes) { + a = crypto.randomBytes(k *= 7); + for (; i < k; ) { + v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6]; + if (v >= 9e15) { + crypto.randomBytes(7).copy(a, i); + } else { + c.push(v % 1e14); + i += 7; + } + } + i = k / 7; + } else { + CRYPTO = false; + throw Error(bignumberError2 + "crypto unavailable"); + } + } + if (!CRYPTO) { + for (; i < k; ) { + v = random53bitInt(); + if (v < 9e15) c[i++] = v % 1e14; + } + } + k = c[--i]; + dp %= LOG_BASE2; + if (k && dp) { + v = POWS_TEN2[LOG_BASE2 - dp]; + c[i] = mathfloor2(k / v) * v; + } + for (; c[i] === 0; c.pop(), i--) ; + if (i < 0) { + c = [e = 0]; + } else { + for (e = -1; c[0] === 0; c.splice(0, 1), e -= LOG_BASE2) ; + for (i = 1, v = c[0]; v >= 10; v /= 10, i++) ; + if (i < LOG_BASE2) e -= LOG_BASE2 - i; + } + rand.e = e; + rand.c = c; + return rand; + }; + }(); + BigNumber3.sum = function() { + var i = 1, args = arguments, sum = new BigNumber3(args[0]); + for (; i < args.length; ) sum = sum.plus(args[i++]); + return sum; + }; + convertBase = /* @__PURE__ */ function() { + var decimal = "0123456789"; + function toBaseOut(str, baseIn, baseOut, alphabet) { + var j, arr = [0], arrL, i = 0, len = str.length; + for (; i < len; ) { + for (arrL = arr.length; arrL--; arr[arrL] *= baseIn) ; + arr[0] += alphabet.indexOf(str.charAt(i++)); + for (j = 0; j < arr.length; j++) { + if (arr[j] > baseOut - 1) { + if (arr[j + 1] == null) arr[j + 1] = 0; + arr[j + 1] += arr[j] / baseOut | 0; + arr[j] %= baseOut; + } + } + } + return arr.reverse(); + } + return function(str, baseIn, baseOut, sign, callerIsToString) { + var alphabet, d, e, k, r, x, xc, y, i = str.indexOf("."), dp = DECIMAL_PLACES, rm = ROUNDING_MODE; + if (i >= 0) { + k = POW_PRECISION; + POW_PRECISION = 0; + str = str.replace(".", ""); + y = new BigNumber3(baseIn); + x = y.pow(str.length - i); + POW_PRECISION = k; + y.c = toBaseOut( + toFixedPoint2(coeffToString2(x.c), x.e, "0"), + 10, + baseOut, + decimal + ); + y.e = y.c.length; + } + xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET)); + e = k = xc.length; + for (; xc[--k] == 0; xc.pop()) ; + if (!xc[0]) return alphabet.charAt(0); + if (i < 0) { + --e; + } else { + x.c = xc; + x.e = e; + x.s = sign; + x = div(x, y, dp, rm, baseOut); + xc = x.c; + r = x.r; + e = x.e; + } + d = e + dp + 1; + i = xc[d]; + k = baseOut / 2; + r = r || d < 0 || xc[d + 1] != null; + r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7)); + if (d < 1 || !xc[0]) { + str = r ? toFixedPoint2(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0); + } else { + xc.length = d; + if (r) { + for (--baseOut; ++xc[--d] > baseOut; ) { + xc[d] = 0; + if (!d) { + ++e; + xc = [1].concat(xc); + } + } + } + for (k = xc.length; !xc[--k]; ) ; + for (i = 0, str = ""; i <= k; str += alphabet.charAt(xc[i++])) ; + str = toFixedPoint2(str, e, alphabet.charAt(0)); + } + return str; + }; + }(); + div = /* @__PURE__ */ function() { + function multiply(x, k, base) { + var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE2, khi = k / SQRT_BASE2 | 0; + for (x = x.slice(); i--; ) { + xlo = x[i] % SQRT_BASE2; + xhi = x[i] / SQRT_BASE2 | 0; + m = khi * xlo + xhi * klo; + temp = klo * xlo + m % SQRT_BASE2 * SQRT_BASE2 + carry; + carry = (temp / base | 0) + (m / SQRT_BASE2 | 0) + khi * xhi; + x[i] = temp % base; + } + if (carry) x = [carry].concat(x); + return x; + } + function compare3(a, b, aL, bL) { + var i, cmp; + if (aL != bL) { + cmp = aL > bL ? 1 : -1; + } else { + for (i = cmp = 0; i < aL; i++) { + if (a[i] != b[i]) { + cmp = a[i] > b[i] ? 1 : -1; + break; + } + } + } + return cmp; + } + function subtract(a, b, aL, base) { + var i = 0; + for (; aL--; ) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } + for (; !a[0] && a.length > 1; a.splice(0, 1)) ; + } + return function(x, y, dp, rm, base) { + var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c; + if (!xc || !xc[0] || !yc || !yc[0]) { + return new BigNumber3( + // Return NaN if either NaN, or both Infinity or 0. + !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : ( + // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0. + xc && xc[0] == 0 || !yc ? s * 0 : s / 0 + ) + ); + } + q = new BigNumber3(s); + qc = q.c = []; + e = x.e - y.e; + s = dp + e + 1; + if (!base) { + base = BASE2; + e = bitFloor2(x.e / LOG_BASE2) - bitFloor2(y.e / LOG_BASE2); + s = s / LOG_BASE2 | 0; + } + for (i = 0; yc[i] == (xc[i] || 0); i++) ; + if (yc[i] > (xc[i] || 0)) e--; + if (s < 0) { + qc.push(1); + more = true; + } else { + xL = xc.length; + yL = yc.length; + i = 0; + s += 2; + n = mathfloor2(base / (yc[0] + 1)); + if (n > 1) { + yc = multiply(yc, n, base); + xc = multiply(xc, n, base); + yL = yc.length; + xL = xc.length; + } + xi = yL; + rem = xc.slice(0, yL); + remL = rem.length; + for (; remL < yL; rem[remL++] = 0) ; + yz = yc.slice(); + yz = [0].concat(yz); + yc0 = yc[0]; + if (yc[1] >= base / 2) yc0++; + do { + n = 0; + cmp = compare3(yc, rem, yL, remL); + if (cmp < 0) { + rem0 = rem[0]; + if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); + n = mathfloor2(rem0 / yc0); + if (n > 1) { + if (n >= base) n = base - 1; + prod = multiply(yc, n, base); + prodL = prod.length; + remL = rem.length; + while (compare3(prod, rem, prodL, remL) == 1) { + n--; + subtract(prod, yL < prodL ? yz : yc, prodL, base); + prodL = prod.length; + cmp = 1; + } + } else { + if (n == 0) { + cmp = n = 1; + } + prod = yc.slice(); + prodL = prod.length; + } + if (prodL < remL) prod = [0].concat(prod); + subtract(rem, prod, remL, base); + remL = rem.length; + if (cmp == -1) { + while (compare3(yc, rem, yL, remL) < 1) { + n++; + subtract(rem, yL < remL ? yz : yc, remL, base); + remL = rem.length; + } + } + } else if (cmp === 0) { + n++; + rem = [0]; + } + qc[i++] = n; + if (rem[0]) { + rem[remL++] = xc[xi] || 0; + } else { + rem = [xc[xi]]; + remL = 1; + } + } while ((xi++ < xL || rem[0] != null) && s--); + more = rem[0] != null; + if (!qc[0]) qc.splice(0, 1); + } + if (base == BASE2) { + for (i = 1, s = qc[0]; s >= 10; s /= 10, i++) ; + round(q, dp + (q.e = i + e * LOG_BASE2 - 1) + 1, rm, more); + } else { + q.e = e; + q.r = +more; + } + return q; + }; + }(); + function format(n, i, rm, id) { + var c0, e, ne, len, str; + if (rm == null) rm = ROUNDING_MODE; + else intCheck2(rm, 0, 8); + if (!n.c) return n.toString(); + c0 = n.c[0]; + ne = n.e; + if (i == null) { + str = coeffToString2(n.c); + str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential2(str, ne) : toFixedPoint2(str, ne, "0"); + } else { + n = round(new BigNumber3(n), i, rm); + e = n.e; + str = coeffToString2(n.c); + len = str.length; + if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) { + for (; len < i; str += "0", len++) ; + str = toExponential2(str, e); + } else { + i -= ne; + str = toFixedPoint2(str, e, "0"); + if (e + 1 > len) { + if (--i > 0) for (str += "."; i--; str += "0") ; + } else { + i += e - len; + if (i > 0) { + if (e + 1 == len) str += "."; + for (; i--; str += "0") ; + } + } + } + } + return n.s < 0 && c0 ? "-" + str : str; + } + function maxOrMin(args, n) { + var k, y, i = 1, x = new BigNumber3(args[0]); + for (; i < args.length; i++) { + y = new BigNumber3(args[i]); + if (!y.s || (k = compare2(x, y)) === n || k === 0 && x.s === n) { + x = y; + } + } + return x; + } + function normalise(n, c, e) { + var i = 1, j = c.length; + for (; !c[--j]; c.pop()) ; + for (j = c[0]; j >= 10; j /= 10, i++) ; + if ((e = i + e * LOG_BASE2 - 1) > MAX_EXP) { + n.c = n.e = null; + } else if (e < MIN_EXP) { + n.c = [n.e = 0]; + } else { + n.e = e; + n.c = c; + } + return n; + } + parseNumeric = /* @__PURE__ */ function() { + var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g; + return function(x, str, isNum, b) { + var base, s = isNum ? str : str.replace(whitespaceOrPlus, ""); + if (isInfinityOrNaN.test(s)) { + x.s = isNaN(s) ? null : s < 0 ? -1 : 1; + } else { + if (!isNum) { + s = s.replace(basePrefix, function(m, p1, p2) { + base = (p2 = p2.toLowerCase()) == "x" ? 16 : p2 == "b" ? 2 : 8; + return !b || b == base ? p1 : m; + }); + if (b) { + base = b; + s = s.replace(dotAfter, "$1").replace(dotBefore, "0.$1"); + } + if (str != s) return new BigNumber3(s, base); + } + if (BigNumber3.DEBUG) { + throw Error(bignumberError2 + "Not a" + (b ? " base " + b : "") + " number: " + str); + } + x.s = null; + } + x.c = x.e = null; + }; + }(); + function round(x, sd, rm, r) { + var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN2; + if (xc) { + out: { + for (d = 1, k = xc[0]; k >= 10; k /= 10, d++) ; + i = sd - d; + if (i < 0) { + i += LOG_BASE2; + j = sd; + n = xc[ni = 0]; + rd = mathfloor2(n / pows10[d - j - 1] % 10); + } else { + ni = mathceil2((i + 1) / LOG_BASE2); + if (ni >= xc.length) { + if (r) { + for (; xc.length <= ni; xc.push(0)) ; + n = rd = 0; + d = 1; + i %= LOG_BASE2; + j = i - LOG_BASE2 + 1; + } else { + break out; + } + } else { + n = k = xc[ni]; + for (d = 1; k >= 10; k /= 10, d++) ; + i %= LOG_BASE2; + j = i - LOG_BASE2 + d; + rd = j < 0 ? 0 : mathfloor2(n / pows10[d - j - 1] % 10); + } + } + r = r || sd < 0 || // Are there any non-zero digits after the rounding digit? + // The expression n % pows10[d - j - 1] returns all digits of n to the right + // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714. + xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]); + r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && // Check whether the digit to the left of the rounding digit is odd. + (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7)); + if (sd < 1 || !xc[0]) { + xc.length = 0; + if (r) { + sd -= x.e + 1; + xc[0] = pows10[(LOG_BASE2 - sd % LOG_BASE2) % LOG_BASE2]; + x.e = -sd || 0; + } else { + xc[0] = x.e = 0; + } + return x; + } + if (i == 0) { + xc.length = ni; + k = 1; + ni--; + } else { + xc.length = ni + 1; + k = pows10[LOG_BASE2 - i]; + xc[ni] = j > 0 ? mathfloor2(n / pows10[d - j] % pows10[j]) * k : 0; + } + if (r) { + for (; ; ) { + if (ni == 0) { + for (i = 1, j = xc[0]; j >= 10; j /= 10, i++) ; + j = xc[0] += k; + for (k = 1; j >= 10; j /= 10, k++) ; + if (i != k) { + x.e++; + if (xc[0] == BASE2) xc[0] = 1; + } + break; + } else { + xc[ni] += k; + if (xc[ni] != BASE2) break; + xc[ni--] = 0; + k = 1; + } + } + } + for (i = xc.length; xc[--i] === 0; xc.pop()) ; + } + if (x.e > MAX_EXP) { + x.c = x.e = null; + } else if (x.e < MIN_EXP) { + x.c = [x.e = 0]; + } + } + return x; + } + function valueOf(n) { + var str, e = n.e; + if (e === null) return n.toString(); + str = coeffToString2(n.c); + str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential2(str, e) : toFixedPoint2(str, e, "0"); + return n.s < 0 ? "-" + str : str; + } + P.absoluteValue = P.abs = function() { + var x = new BigNumber3(this); + if (x.s < 0) x.s = 1; + return x; + }; + P.comparedTo = function(y, b) { + return compare2(this, new BigNumber3(y, b)); + }; + P.decimalPlaces = P.dp = function(dp, rm) { + var c, n, v, x = this; + if (dp != null) { + intCheck2(dp, 0, MAX2); + if (rm == null) rm = ROUNDING_MODE; + else intCheck2(rm, 0, 8); + return round(new BigNumber3(x), dp + x.e + 1, rm); + } + if (!(c = x.c)) return null; + n = ((v = c.length - 1) - bitFloor2(this.e / LOG_BASE2)) * LOG_BASE2; + if (v = c[v]) for (; v % 10 == 0; v /= 10, n--) ; + if (n < 0) n = 0; + return n; + }; + P.dividedBy = P.div = function(y, b) { + return div(this, new BigNumber3(y, b), DECIMAL_PLACES, ROUNDING_MODE); + }; + P.dividedToIntegerBy = P.idiv = function(y, b) { + return div(this, new BigNumber3(y, b), 0, 1); + }; + P.exponentiatedBy = P.pow = function(n, m) { + var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this; + n = new BigNumber3(n); + if (n.c && !n.isInteger()) { + throw Error(bignumberError2 + "Exponent not an integer: " + valueOf(n)); + } + if (m != null) m = new BigNumber3(m); + nIsBig = n.e > 14; + if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) { + y = new BigNumber3(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd2(n)) : +valueOf(n))); + return m ? y.mod(m) : y; + } + nIsNeg = n.s < 0; + if (m) { + if (m.c ? !m.c[0] : !m.s) return new BigNumber3(NaN); + isModExp = !nIsNeg && x.isInteger() && m.isInteger(); + if (isModExp) x = x.mod(m); + } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) { + k = x.s < 0 && isOdd2(n) ? -0 : 0; + if (x.e > -1) k = 1 / k; + return new BigNumber3(nIsNeg ? 1 / k : k); + } else if (POW_PRECISION) { + k = mathceil2(POW_PRECISION / LOG_BASE2 + 2); + } + if (nIsBig) { + half = new BigNumber3(0.5); + if (nIsNeg) n.s = 1; + nIsOdd = isOdd2(n); + } else { + i = Math.abs(+valueOf(n)); + nIsOdd = i % 2; + } + y = new BigNumber3(ONE); + for (; ; ) { + if (nIsOdd) { + y = y.times(x); + if (!y.c) break; + if (k) { + if (y.c.length > k) y.c.length = k; + } else if (isModExp) { + y = y.mod(m); + } + } + if (i) { + i = mathfloor2(i / 2); + if (i === 0) break; + nIsOdd = i % 2; + } else { + n = n.times(half); + round(n, n.e + 1, 1); + if (n.e > 14) { + nIsOdd = isOdd2(n); + } else { + i = +valueOf(n); + if (i === 0) break; + nIsOdd = i % 2; + } + } + x = x.times(x); + if (k) { + if (x.c && x.c.length > k) x.c.length = k; + } else if (isModExp) { + x = x.mod(m); + } + } + if (isModExp) return y; + if (nIsNeg) y = ONE.div(y); + return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y; + }; + P.integerValue = function(rm) { + var n = new BigNumber3(this); + if (rm == null) rm = ROUNDING_MODE; + else intCheck2(rm, 0, 8); + return round(n, n.e + 1, rm); + }; + P.isEqualTo = P.eq = function(y, b) { + return compare2(this, new BigNumber3(y, b)) === 0; + }; + P.isFinite = function() { + return !!this.c; + }; + P.isGreaterThan = P.gt = function(y, b) { + return compare2(this, new BigNumber3(y, b)) > 0; + }; + P.isGreaterThanOrEqualTo = P.gte = function(y, b) { + return (b = compare2(this, new BigNumber3(y, b))) === 1 || b === 0; + }; + P.isInteger = function() { + return !!this.c && bitFloor2(this.e / LOG_BASE2) > this.c.length - 2; + }; + P.isLessThan = P.lt = function(y, b) { + return compare2(this, new BigNumber3(y, b)) < 0; + }; + P.isLessThanOrEqualTo = P.lte = function(y, b) { + return (b = compare2(this, new BigNumber3(y, b))) === -1 || b === 0; + }; + P.isNaN = function() { + return !this.s; + }; + P.isNegative = function() { + return this.s < 0; + }; + P.isPositive = function() { + return this.s > 0; + }; + P.isZero = function() { + return !!this.c && this.c[0] == 0; + }; + P.minus = function(y, b) { + var i, j, t, xLTy, x = this, a = x.s; + y = new BigNumber3(y, b); + b = y.s; + if (!a || !b) return new BigNumber3(NaN); + if (a != b) { + y.s = -b; + return x.plus(y); + } + var xe = x.e / LOG_BASE2, ye = y.e / LOG_BASE2, xc = x.c, yc = y.c; + if (!xe || !ye) { + if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber3(yc ? x : NaN); + if (!xc[0] || !yc[0]) { + return yc[0] ? (y.s = -b, y) : new BigNumber3(xc[0] ? x : ( + // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity + ROUNDING_MODE == 3 ? -0 : 0 + )); + } + } + xe = bitFloor2(xe); + ye = bitFloor2(ye); + xc = xc.slice(); + if (a = xe - ye) { + if (xLTy = a < 0) { + a = -a; + t = xc; + } else { + ye = xe; + t = yc; + } + t.reverse(); + for (b = a; b--; t.push(0)) ; + t.reverse(); + } else { + j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b; + for (a = b = 0; b < j; b++) { + if (xc[b] != yc[b]) { + xLTy = xc[b] < yc[b]; + break; + } + } + } + if (xLTy) { + t = xc; + xc = yc; + yc = t; + y.s = -y.s; + } + b = (j = yc.length) - (i = xc.length); + if (b > 0) for (; b--; xc[i++] = 0) ; + b = BASE2 - 1; + for (; j > a; ) { + if (xc[--j] < yc[j]) { + for (i = j; i && !xc[--i]; xc[i] = b) ; + --xc[i]; + xc[j] += BASE2; + } + xc[j] -= yc[j]; + } + for (; xc[0] == 0; xc.splice(0, 1), --ye) ; + if (!xc[0]) { + y.s = ROUNDING_MODE == 3 ? -1 : 1; + y.c = [y.e = 0]; + return y; + } + return normalise(y, xc, ye); + }; + P.modulo = P.mod = function(y, b) { + var q, s, x = this; + y = new BigNumber3(y, b); + if (!x.c || !y.s || y.c && !y.c[0]) { + return new BigNumber3(NaN); + } else if (!y.c || x.c && !x.c[0]) { + return new BigNumber3(x); + } + if (MODULO_MODE == 9) { + s = y.s; + y.s = 1; + q = div(x, y, 0, 3); + y.s = s; + q.s *= s; + } else { + q = div(x, y, 0, MODULO_MODE); + } + y = x.minus(q.times(y)); + if (!y.c[0] && MODULO_MODE == 1) y.s = x.s; + return y; + }; + P.multipliedBy = P.times = function(y, b) { + var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber3(y, b)).c; + if (!xc || !yc || !xc[0] || !yc[0]) { + if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) { + y.c = y.e = y.s = null; + } else { + y.s *= x.s; + if (!xc || !yc) { + y.c = y.e = null; + } else { + y.c = [0]; + y.e = 0; + } + } + return y; + } + e = bitFloor2(x.e / LOG_BASE2) + bitFloor2(y.e / LOG_BASE2); + y.s *= x.s; + xcL = xc.length; + ycL = yc.length; + if (xcL < ycL) { + zc = xc; + xc = yc; + yc = zc; + i = xcL; + xcL = ycL; + ycL = i; + } + for (i = xcL + ycL, zc = []; i--; zc.push(0)) ; + base = BASE2; + sqrtBase = SQRT_BASE2; + for (i = ycL; --i >= 0; ) { + c = 0; + ylo = yc[i] % sqrtBase; + yhi = yc[i] / sqrtBase | 0; + for (k = xcL, j = i + k; j > i; ) { + xlo = xc[--k] % sqrtBase; + xhi = xc[k] / sqrtBase | 0; + m = yhi * xlo + xhi * ylo; + xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c; + c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi; + zc[j--] = xlo % base; + } + zc[j] = c; + } + if (c) { + ++e; + } else { + zc.splice(0, 1); + } + return normalise(y, zc, e); + }; + P.negated = function() { + var x = new BigNumber3(this); + x.s = -x.s || null; + return x; + }; + P.plus = function(y, b) { + var t, x = this, a = x.s; + y = new BigNumber3(y, b); + b = y.s; + if (!a || !b) return new BigNumber3(NaN); + if (a != b) { + y.s = -b; + return x.minus(y); + } + var xe = x.e / LOG_BASE2, ye = y.e / LOG_BASE2, xc = x.c, yc = y.c; + if (!xe || !ye) { + if (!xc || !yc) return new BigNumber3(a / 0); + if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber3(xc[0] ? x : a * 0); + } + xe = bitFloor2(xe); + ye = bitFloor2(ye); + xc = xc.slice(); + if (a = xe - ye) { + if (a > 0) { + ye = xe; + t = yc; + } else { + a = -a; + t = xc; + } + t.reverse(); + for (; a--; t.push(0)) ; + t.reverse(); + } + a = xc.length; + b = yc.length; + if (a - b < 0) { + t = yc; + yc = xc; + xc = t; + b = a; + } + for (a = 0; b; ) { + a = (xc[--b] = xc[b] + yc[b] + a) / BASE2 | 0; + xc[b] = BASE2 === xc[b] ? 0 : xc[b] % BASE2; + } + if (a) { + xc = [a].concat(xc); + ++ye; + } + return normalise(y, xc, ye); + }; + P.precision = P.sd = function(sd, rm) { + var c, n, v, x = this; + if (sd != null && sd !== !!sd) { + intCheck2(sd, 1, MAX2); + if (rm == null) rm = ROUNDING_MODE; + else intCheck2(rm, 0, 8); + return round(new BigNumber3(x), sd, rm); + } + if (!(c = x.c)) return null; + v = c.length - 1; + n = v * LOG_BASE2 + 1; + if (v = c[v]) { + for (; v % 10 == 0; v /= 10, n--) ; + for (v = c[0]; v >= 10; v /= 10, n++) ; + } + if (sd && x.e + 1 > n) n = x.e + 1; + return n; + }; + P.shiftedBy = function(k) { + intCheck2(k, -MAX_SAFE_INTEGER2, MAX_SAFE_INTEGER2); + return this.times("1e" + k); + }; + P.squareRoot = P.sqrt = function() { + var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber3("0.5"); + if (s !== 1 || !c || !c[0]) { + return new BigNumber3(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0); + } + s = Math.sqrt(+valueOf(x)); + if (s == 0 || s == 1 / 0) { + n = coeffToString2(c); + if ((n.length + e) % 2 == 0) n += "0"; + s = Math.sqrt(+n); + e = bitFloor2((e + 1) / 2) - (e < 0 || e % 2); + if (s == 1 / 0) { + n = "5e" + e; + } else { + n = s.toExponential(); + n = n.slice(0, n.indexOf("e") + 1) + e; + } + r = new BigNumber3(n); + } else { + r = new BigNumber3(s + ""); + } + if (r.c[0]) { + e = r.e; + s = e + dp; + if (s < 3) s = 0; + for (; ; ) { + t = r; + r = half.times(t.plus(div(x, t, dp, 1))); + if (coeffToString2(t.c).slice(0, s) === (n = coeffToString2(r.c)).slice(0, s)) { + if (r.e < e) --s; + n = n.slice(s - 3, s + 1); + if (n == "9999" || !rep && n == "4999") { + if (!rep) { + round(t, t.e + DECIMAL_PLACES + 2, 0); + if (t.times(t).eq(x)) { + r = t; + break; + } + } + dp += 4; + s += 4; + rep = 1; + } else { + if (!+n || !+n.slice(1) && n.charAt(0) == "5") { + round(r, r.e + DECIMAL_PLACES + 2, 1); + m = !r.times(r).eq(x); + } + break; + } + } + } + } + return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); + }; + P.toExponential = function(dp, rm) { + if (dp != null) { + intCheck2(dp, 0, MAX2); + dp++; + } + return format(this, dp, rm, 1); + }; + P.toFixed = function(dp, rm) { + if (dp != null) { + intCheck2(dp, 0, MAX2); + dp = dp + this.e + 1; + } + return format(this, dp, rm); + }; + P.toFormat = function(dp, rm, format2) { + var str, x = this; + if (format2 == null) { + if (dp != null && rm && typeof rm == "object") { + format2 = rm; + rm = null; + } else if (dp && typeof dp == "object") { + format2 = dp; + dp = rm = null; + } else { + format2 = FORMAT; + } + } else if (typeof format2 != "object") { + throw Error(bignumberError2 + "Argument not an object: " + format2); + } + str = x.toFixed(dp, rm); + if (x.c) { + var i, arr = str.split("."), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || "", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length; + if (g2) { + i = g1; + g1 = g2; + g2 = i; + len -= i; + } + if (g1 > 0 && len > 0) { + i = len % g1 || g1; + intPart = intDigits.substr(0, i); + for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1); + if (g2 > 0) intPart += groupSeparator + intDigits.slice(i); + if (isNeg) intPart = "-" + intPart; + } + str = fractionPart ? intPart + (format2.decimalSeparator || "") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace( + new RegExp("\\d{" + g2 + "}\\B", "g"), + "$&" + (format2.fractionGroupSeparator || "") + ) : fractionPart) : intPart; + } + return (format2.prefix || "") + str + (format2.suffix || ""); + }; + P.toFraction = function(md) { + var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c; + if (md != null) { + n = new BigNumber3(md); + if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) { + throw Error(bignumberError2 + "Argument " + (n.isInteger() ? "out of range: " : "not an integer: ") + valueOf(n)); + } + } + if (!xc) return new BigNumber3(x); + d = new BigNumber3(ONE); + n1 = d0 = new BigNumber3(ONE); + d1 = n0 = new BigNumber3(ONE); + s = coeffToString2(xc); + e = d.e = s.length - x.e - 1; + d.c[0] = POWS_TEN2[(exp = e % LOG_BASE2) < 0 ? LOG_BASE2 + exp : exp]; + md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n; + exp = MAX_EXP; + MAX_EXP = 1 / 0; + n = new BigNumber3(s); + n0.c[0] = 0; + for (; ; ) { + q = div(n, d, 0, 1); + d2 = d0.plus(q.times(d1)); + if (d2.comparedTo(md) == 1) break; + d0 = d1; + d1 = d2; + n1 = n0.plus(q.times(d2 = n1)); + n0 = d2; + d = n.minus(q.times(d2 = d)); + n = d2; + } + d2 = div(md.minus(d0), d1, 0, 1); + n0 = n0.plus(d2.times(n1)); + d0 = d0.plus(d2.times(d1)); + n0.s = n1.s = x.s; + e = e * 2; + r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo( + div(n0, d0, e, ROUNDING_MODE).minus(x).abs() + ) < 1 ? [n1, d1] : [n0, d0]; + MAX_EXP = exp; + return r; + }; + P.toNumber = function() { + return +valueOf(this); + }; + P.toPrecision = function(sd, rm) { + if (sd != null) intCheck2(sd, 1, MAX2); + return format(this, sd, rm, 2); + }; + P.toString = function(b) { + var str, n = this, s = n.s, e = n.e; + if (e === null) { + if (s) { + str = "Infinity"; + if (s < 0) str = "-" + str; + } else { + str = "NaN"; + } + } else { + if (b == null) { + str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential2(coeffToString2(n.c), e) : toFixedPoint2(coeffToString2(n.c), e, "0"); + } else if (b === 10 && alphabetHasNormalDecimalDigits) { + n = round(new BigNumber3(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE); + str = toFixedPoint2(coeffToString2(n.c), n.e, "0"); + } else { + intCheck2(b, 2, ALPHABET.length, "Base"); + str = convertBase(toFixedPoint2(coeffToString2(n.c), e, "0"), 10, b, s, true); + } + if (s < 0 && n.c[0]) str = "-" + str; + } + return str; + }; + P.valueOf = P.toJSON = function() { + return valueOf(this); + }; + P._isBigNumber = true; + if (configObject != null) BigNumber3.set(configObject); + return BigNumber3; + } + function bitFloor2(n) { + var i = n | 0; + return n > 0 || n === i ? i : i - 1; + } + function coeffToString2(a) { + var s, z, i = 1, j = a.length, r = a[0] + ""; + for (; i < j; ) { + s = a[i++] + ""; + z = LOG_BASE2 - s.length; + for (; z--; s = "0" + s) ; + r += s; + } + for (j = r.length; r.charCodeAt(--j) === 48; ) ; + return r.slice(0, j + 1 || 1); + } + function compare2(x, y) { + var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e; + if (!i || !j) return null; + a = xc && !xc[0]; + b = yc && !yc[0]; + if (a || b) return a ? b ? 0 : -j : i; + if (i != j) return i; + a = i < 0; + b = k == l; + if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1; + if (!b) return k > l ^ a ? 1 : -1; + j = (k = xc.length) < (l = yc.length) ? k : l; + for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1; + return k == l ? 0 : k > l ^ a ? 1 : -1; + } + function intCheck2(n, min, max, name) { + if (n < min || n > max || n !== mathfloor2(n)) { + throw Error(bignumberError2 + (name || "Argument") + (typeof n == "number" ? n < min || n > max ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(n)); + } + } + function isOdd2(n) { + var k = n.c.length - 1; + return bitFloor2(n.e / LOG_BASE2) == k && n.c[k] % 2 != 0; + } + function toExponential2(str, e) { + return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e < 0 ? "e" : "e+") + e; + } + function toFixedPoint2(str, e, z) { + var len, zs; + if (e < 0) { + for (zs = z + "."; ++e; zs += z) ; + str = zs + str; + } else { + len = str.length; + if (++e > len) { + for (zs = z, e -= len; --e; zs += z) ; + str += zs; + } else if (e < len) { + str = str.slice(0, e) + "." + str.slice(e); + } + } + return str; + } + BigNumber2 = clone2(); + BigNumber2["default"] = BigNumber2.BigNumber = BigNumber2; + if (typeof define == "function" && define.amd) { + define(function() { + return BigNumber2; + }); + } else if (typeof module2 != "undefined" && module2.exports) { + module2.exports = BigNumber2; + } else { + if (!globalObject) { + globalObject = typeof self != "undefined" && self ? self : window; + } + globalObject.BigNumber = BigNumber2; + } + })(exports2); + } +}); + +// node_modules/@solana/buffer-layout-utils/lib/cjs/decimal.js +var require_decimal = __commonJS({ + "node_modules/@solana/buffer-layout-utils/lib/cjs/decimal.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decimal = exports2.WAD = void 0; + var bignumber_js_1 = __importDefault2(require_bignumber()); + var base_1 = require_base(); + var bigint_1 = require_bigint(); + exports2.WAD = new bignumber_js_1.default("1e+18"); + var decimal = (property) => { + const layout = (0, bigint_1.u128)(property); + const { encode, decode } = (0, base_1.encodeDecode)(layout); + const decimalLayout = layout; + decimalLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset).toString(); + return new bignumber_js_1.default(src).div(exports2.WAD); + }; + decimalLayout.encode = (decimal2, buffer, offset) => { + const src = BigInt(decimal2.times(exports2.WAD).integerValue().toString()); + return encode(src, buffer, offset); + }; + return decimalLayout; + }; + exports2.decimal = decimal; + } +}); + +// node_modules/@solana/buffer-layout-utils/lib/cjs/native.js +var require_native2 = __commonJS({ + "node_modules/@solana/buffer-layout-utils/lib/cjs/native.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bool = void 0; + var buffer_layout_1 = require_Layout(); + var base_1 = require_base(); + var bool3 = (property) => { + const layout = (0, buffer_layout_1.u8)(property); + const { encode, decode } = (0, base_1.encodeDecode)(layout); + const boolLayout = layout; + boolLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset); + return !!src; + }; + boolLayout.encode = (bool4, buffer, offset) => { + const src = Number(bool4); + return encode(src, buffer, offset); + }; + return boolLayout; + }; + exports2.bool = bool3; + } +}); + +// node_modules/@solana/buffer-layout-utils/lib/cjs/web3.js +var require_web3 = __commonJS({ + "node_modules/@solana/buffer-layout-utils/lib/cjs/web3.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publicKey = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var base_1 = require_base(); + var publicKey23 = (property) => { + const layout = (0, buffer_layout_1.blob)(32, property); + const { encode, decode } = (0, base_1.encodeDecode)(layout); + const publicKeyLayout = layout; + publicKeyLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset); + return new web3_js_1.PublicKey(src); + }; + publicKeyLayout.encode = (publicKey24, buffer, offset) => { + const src = publicKey24.toBuffer(); + return encode(src, buffer, offset); + }; + return publicKeyLayout; + }; + exports2.publicKey = publicKey23; + } +}); + +// node_modules/@solana/buffer-layout-utils/lib/cjs/index.js +var require_cjs2 = __commonJS({ + "node_modules/@solana/buffer-layout-utils/lib/cjs/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_base(), exports2); + __exportStar2(require_bigint(), exports2); + __exportStar2(require_decimal(), exports2); + __exportStar2(require_native2(), exports2); + __exportStar2(require_web3(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/errors.js +var require_errors2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/errors.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TokenTransferHookAccountDataNotFound = exports2.TokenTransferHookInvalidSeed = exports2.TokenTransferHookAccountNotFound = exports2.TokenUnsupportedInstructionError = exports2.TokenInvalidInstructionTypeError = exports2.TokenInvalidInstructionDataError = exports2.TokenInvalidInstructionKeysError = exports2.TokenInvalidInstructionProgramError = exports2.TokenOwnerOffCurveError = exports2.TokenInvalidOwnerError = exports2.TokenInvalidMintError = exports2.TokenInvalidAccountSizeError = exports2.TokenInvalidAccountOwnerError = exports2.TokenInvalidAccountDataError = exports2.TokenInvalidAccountError = exports2.TokenAccountNotFoundError = exports2.TokenError = void 0; + var TokenError2 = class extends Error { + constructor(message) { + super(message); + } + }; + exports2.TokenError = TokenError2; + var TokenAccountNotFoundError2 = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenAccountNotFoundError"; + } + }; + exports2.TokenAccountNotFoundError = TokenAccountNotFoundError2; + var TokenInvalidAccountError = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidAccountError"; + } + }; + exports2.TokenInvalidAccountError = TokenInvalidAccountError; + var TokenInvalidAccountDataError = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidAccountDataError"; + } + }; + exports2.TokenInvalidAccountDataError = TokenInvalidAccountDataError; + var TokenInvalidAccountOwnerError2 = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidAccountOwnerError"; + } + }; + exports2.TokenInvalidAccountOwnerError = TokenInvalidAccountOwnerError2; + var TokenInvalidAccountSizeError2 = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidAccountSizeError"; + } + }; + exports2.TokenInvalidAccountSizeError = TokenInvalidAccountSizeError2; + var TokenInvalidMintError2 = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidMintError"; + } + }; + exports2.TokenInvalidMintError = TokenInvalidMintError2; + var TokenInvalidOwnerError = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidOwnerError"; + } + }; + exports2.TokenInvalidOwnerError = TokenInvalidOwnerError; + var TokenOwnerOffCurveError2 = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenOwnerOffCurveError"; + } + }; + exports2.TokenOwnerOffCurveError = TokenOwnerOffCurveError2; + var TokenInvalidInstructionProgramError = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidInstructionProgramError"; + } + }; + exports2.TokenInvalidInstructionProgramError = TokenInvalidInstructionProgramError; + var TokenInvalidInstructionKeysError = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidInstructionKeysError"; + } + }; + exports2.TokenInvalidInstructionKeysError = TokenInvalidInstructionKeysError; + var TokenInvalidInstructionDataError = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidInstructionDataError"; + } + }; + exports2.TokenInvalidInstructionDataError = TokenInvalidInstructionDataError; + var TokenInvalidInstructionTypeError = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenInvalidInstructionTypeError"; + } + }; + exports2.TokenInvalidInstructionTypeError = TokenInvalidInstructionTypeError; + var TokenUnsupportedInstructionError = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenUnsupportedInstructionError"; + } + }; + exports2.TokenUnsupportedInstructionError = TokenUnsupportedInstructionError; + var TokenTransferHookAccountNotFound = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenTransferHookAccountNotFound"; + } + }; + exports2.TokenTransferHookAccountNotFound = TokenTransferHookAccountNotFound; + var TokenTransferHookInvalidSeed = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenTransferHookInvalidSeed"; + } + }; + exports2.TokenTransferHookInvalidSeed = TokenTransferHookInvalidSeed; + var TokenTransferHookAccountDataNotFound = class extends TokenError2 { + constructor() { + super(...arguments); + this.name = "TokenTransferHookAccountDataNotFound"; + } + }; + exports2.TokenTransferHookAccountDataNotFound = TokenTransferHookAccountDataNotFound; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/types.js +var require_types5 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TokenInstruction = void 0; + var TokenInstruction; + (function(TokenInstruction2) { + TokenInstruction2[TokenInstruction2["InitializeMint"] = 0] = "InitializeMint"; + TokenInstruction2[TokenInstruction2["InitializeAccount"] = 1] = "InitializeAccount"; + TokenInstruction2[TokenInstruction2["InitializeMultisig"] = 2] = "InitializeMultisig"; + TokenInstruction2[TokenInstruction2["Transfer"] = 3] = "Transfer"; + TokenInstruction2[TokenInstruction2["Approve"] = 4] = "Approve"; + TokenInstruction2[TokenInstruction2["Revoke"] = 5] = "Revoke"; + TokenInstruction2[TokenInstruction2["SetAuthority"] = 6] = "SetAuthority"; + TokenInstruction2[TokenInstruction2["MintTo"] = 7] = "MintTo"; + TokenInstruction2[TokenInstruction2["Burn"] = 8] = "Burn"; + TokenInstruction2[TokenInstruction2["CloseAccount"] = 9] = "CloseAccount"; + TokenInstruction2[TokenInstruction2["FreezeAccount"] = 10] = "FreezeAccount"; + TokenInstruction2[TokenInstruction2["ThawAccount"] = 11] = "ThawAccount"; + TokenInstruction2[TokenInstruction2["TransferChecked"] = 12] = "TransferChecked"; + TokenInstruction2[TokenInstruction2["ApproveChecked"] = 13] = "ApproveChecked"; + TokenInstruction2[TokenInstruction2["MintToChecked"] = 14] = "MintToChecked"; + TokenInstruction2[TokenInstruction2["BurnChecked"] = 15] = "BurnChecked"; + TokenInstruction2[TokenInstruction2["InitializeAccount2"] = 16] = "InitializeAccount2"; + TokenInstruction2[TokenInstruction2["SyncNative"] = 17] = "SyncNative"; + TokenInstruction2[TokenInstruction2["InitializeAccount3"] = 18] = "InitializeAccount3"; + TokenInstruction2[TokenInstruction2["InitializeMultisig2"] = 19] = "InitializeMultisig2"; + TokenInstruction2[TokenInstruction2["InitializeMint2"] = 20] = "InitializeMint2"; + TokenInstruction2[TokenInstruction2["GetAccountDataSize"] = 21] = "GetAccountDataSize"; + TokenInstruction2[TokenInstruction2["InitializeImmutableOwner"] = 22] = "InitializeImmutableOwner"; + TokenInstruction2[TokenInstruction2["AmountToUiAmount"] = 23] = "AmountToUiAmount"; + TokenInstruction2[TokenInstruction2["UiAmountToAmount"] = 24] = "UiAmountToAmount"; + TokenInstruction2[TokenInstruction2["InitializeMintCloseAuthority"] = 25] = "InitializeMintCloseAuthority"; + TokenInstruction2[TokenInstruction2["TransferFeeExtension"] = 26] = "TransferFeeExtension"; + TokenInstruction2[TokenInstruction2["ConfidentialTransferExtension"] = 27] = "ConfidentialTransferExtension"; + TokenInstruction2[TokenInstruction2["DefaultAccountStateExtension"] = 28] = "DefaultAccountStateExtension"; + TokenInstruction2[TokenInstruction2["Reallocate"] = 29] = "Reallocate"; + TokenInstruction2[TokenInstruction2["MemoTransferExtension"] = 30] = "MemoTransferExtension"; + TokenInstruction2[TokenInstruction2["CreateNativeMint"] = 31] = "CreateNativeMint"; + TokenInstruction2[TokenInstruction2["InitializeNonTransferableMint"] = 32] = "InitializeNonTransferableMint"; + TokenInstruction2[TokenInstruction2["InterestBearingMintExtension"] = 33] = "InterestBearingMintExtension"; + TokenInstruction2[TokenInstruction2["CpiGuardExtension"] = 34] = "CpiGuardExtension"; + TokenInstruction2[TokenInstruction2["InitializePermanentDelegate"] = 35] = "InitializePermanentDelegate"; + TokenInstruction2[TokenInstruction2["TransferHookExtension"] = 36] = "TransferHookExtension"; + TokenInstruction2[TokenInstruction2["MetadataPointerExtension"] = 39] = "MetadataPointerExtension"; + })(TokenInstruction || (exports2.TokenInstruction = TokenInstruction = {})); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/amountToUiAmount.js +var require_amountToUiAmount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/amountToUiAmount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeAmountToUiAmountInstructionUnchecked = exports2.decodeAmountToUiAmountInstruction = exports2.createAmountToUiAmountInstruction = exports2.amountToUiAmountInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.amountToUiAmountInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_utils_1.u64)("amount") + ]); + function createAmountToUiAmountInstruction(mint, amount, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [{ pubkey: mint, isSigner: false, isWritable: false }]; + const data = Buffer.alloc(exports2.amountToUiAmountInstructionData.span); + exports2.amountToUiAmountInstructionData.encode({ + instruction: types_js_1.TokenInstruction.AmountToUiAmount, + amount: BigInt(amount) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createAmountToUiAmountInstruction = createAmountToUiAmountInstruction; + function decodeAmountToUiAmountInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.amountToUiAmountInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint }, data } = decodeAmountToUiAmountInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.AmountToUiAmount) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint + }, + data + }; + } + exports2.decodeAmountToUiAmountInstruction = decodeAmountToUiAmountInstruction; + function decodeAmountToUiAmountInstructionUnchecked({ programId, keys: [mint], data }) { + return { + programId, + keys: { + mint + }, + data: exports2.amountToUiAmountInstructionData.decode(data) + }; + } + exports2.decodeAmountToUiAmountInstructionUnchecked = decodeAmountToUiAmountInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/amountToUiAmount.js +var require_amountToUiAmount2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/amountToUiAmount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.amountToUiAmount = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var amountToUiAmount_js_1 = require_amountToUiAmount(); + function amountToUiAmount(connection, payer, mint, amount, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const transaction = new web3_js_1.Transaction().add((0, amountToUiAmount_js_1.createAmountToUiAmountInstruction)(mint, amount, programId)); + const { returnData, err } = (yield connection.simulateTransaction(transaction, [payer], false)).value; + if (returnData === null || returnData === void 0 ? void 0 : returnData.data) { + return Buffer.from(returnData.data[0], returnData.data[1]).toString("utf-8"); + } + return err; + }); + } + exports2.amountToUiAmount = amountToUiAmount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/internal.js +var require_internal = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/internal.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.addSigners = void 0; + var web3_js_1 = require_index_cjs(); + function addSigners(keys, ownerOrAuthority, multiSigners) { + if (multiSigners.length) { + keys.push({ pubkey: ownerOrAuthority, isSigner: false, isWritable: false }); + for (const signer of multiSigners) { + keys.push({ + pubkey: signer instanceof web3_js_1.PublicKey ? signer : signer.publicKey, + isSigner: true, + isWritable: false + }); + } + } else { + keys.push({ pubkey: ownerOrAuthority, isSigner: true, isWritable: false }); + } + return keys; + } + exports2.addSigners = addSigners; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/approve.js +var require_approve = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/approve.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeApproveInstructionUnchecked = exports2.decodeApproveInstruction = exports2.createApproveInstruction = exports2.approveInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.approveInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction"), (0, buffer_layout_utils_1.u64)("amount")]); + function createApproveInstruction(account, delegate, owner, amount, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: delegate, isSigner: false, isWritable: false } + ], owner, multiSigners); + const data = Buffer.alloc(exports2.approveInstructionData.span); + exports2.approveInstructionData.encode({ + instruction: types_js_1.TokenInstruction.Approve, + amount: BigInt(amount) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createApproveInstruction = createApproveInstruction; + function decodeApproveInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.approveInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, delegate, owner, multiSigners }, data } = decodeApproveInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.Approve) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !delegate || !owner) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + delegate, + owner, + multiSigners + }, + data + }; + } + exports2.decodeApproveInstruction = decodeApproveInstruction; + function decodeApproveInstructionUnchecked({ programId, keys: [account, delegate, owner, ...multiSigners], data }) { + return { + programId, + keys: { + account, + delegate, + owner, + multiSigners + }, + data: exports2.approveInstructionData.decode(data) + }; + } + exports2.decodeApproveInstructionUnchecked = decodeApproveInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/internal.js +var require_internal2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/internal.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getSigners = void 0; + var web3_js_1 = require_index_cjs(); + function getSigners(signerOrMultisig, multiSigners) { + return signerOrMultisig instanceof web3_js_1.PublicKey ? [signerOrMultisig, multiSigners] : [signerOrMultisig.publicKey, [signerOrMultisig]]; + } + exports2.getSigners = getSigners; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/approve.js +var require_approve2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/approve.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.approve = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var approve_js_1 = require_approve(); + var internal_js_1 = require_internal2(); + function approve(connection, payer, account, delegate, owner, amount, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, approve_js_1.createApproveInstruction)(account, delegate, ownerPublicKey, amount, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.approve = approve; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/approveChecked.js +var require_approveChecked = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/approveChecked.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeApproveCheckedInstructionUnchecked = exports2.decodeApproveCheckedInstruction = exports2.createApproveCheckedInstruction = exports2.approveCheckedInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.approveCheckedInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_utils_1.u64)("amount"), + (0, buffer_layout_1.u8)("decimals") + ]); + function createApproveCheckedInstruction(account, mint, delegate, owner, amount, decimals, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: false }, + { pubkey: delegate, isSigner: false, isWritable: false } + ], owner, multiSigners); + const data = Buffer.alloc(exports2.approveCheckedInstructionData.span); + exports2.approveCheckedInstructionData.encode({ + instruction: types_js_1.TokenInstruction.ApproveChecked, + amount: BigInt(amount), + decimals + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createApproveCheckedInstruction = createApproveCheckedInstruction; + function decodeApproveCheckedInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.approveCheckedInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, mint, delegate, owner, multiSigners }, data } = decodeApproveCheckedInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.ApproveChecked) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !mint || !delegate || !owner) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + mint, + delegate, + owner, + multiSigners + }, + data + }; + } + exports2.decodeApproveCheckedInstruction = decodeApproveCheckedInstruction; + function decodeApproveCheckedInstructionUnchecked({ programId, keys: [account, mint, delegate, owner, ...multiSigners], data }) { + return { + programId, + keys: { + account, + mint, + delegate, + owner, + multiSigners + }, + data: exports2.approveCheckedInstructionData.decode(data) + }; + } + exports2.decodeApproveCheckedInstructionUnchecked = decodeApproveCheckedInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/approveChecked.js +var require_approveChecked2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/approveChecked.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.approveChecked = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var approveChecked_js_1 = require_approveChecked(); + var internal_js_1 = require_internal2(); + function approveChecked(connection, payer, mint, account, delegate, owner, amount, decimals, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, approveChecked_js_1.createApproveCheckedInstruction)(account, mint, delegate, ownerPublicKey, amount, decimals, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.approveChecked = approveChecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/burn.js +var require_burn = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/burn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeBurnInstructionUnchecked = exports2.decodeBurnInstruction = exports2.createBurnInstruction = exports2.burnInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.burnInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction"), (0, buffer_layout_utils_1.u64)("amount")]); + function createBurnInstruction(account, mint, owner, amount, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: true } + ], owner, multiSigners); + const data = Buffer.alloc(exports2.burnInstructionData.span); + exports2.burnInstructionData.encode({ + instruction: types_js_1.TokenInstruction.Burn, + amount: BigInt(amount) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createBurnInstruction = createBurnInstruction; + function decodeBurnInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.burnInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, mint, owner, multiSigners }, data } = decodeBurnInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.Burn) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !mint || !owner) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + mint, + owner, + multiSigners + }, + data + }; + } + exports2.decodeBurnInstruction = decodeBurnInstruction; + function decodeBurnInstructionUnchecked({ programId, keys: [account, mint, owner, ...multiSigners], data }) { + return { + programId, + keys: { + account, + mint, + owner, + multiSigners + }, + data: exports2.burnInstructionData.decode(data) + }; + } + exports2.decodeBurnInstructionUnchecked = decodeBurnInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/burn.js +var require_burn2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/burn.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.burn = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var burn_js_1 = require_burn(); + var internal_js_1 = require_internal2(); + function burn(connection, payer, account, mint, owner, amount, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, burn_js_1.createBurnInstruction)(account, mint, ownerPublicKey, amount, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.burn = burn; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/burnChecked.js +var require_burnChecked = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/burnChecked.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeBurnCheckedInstructionUnchecked = exports2.decodeBurnCheckedInstruction = exports2.createBurnCheckedInstruction = exports2.burnCheckedInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.burnCheckedInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_utils_1.u64)("amount"), + (0, buffer_layout_1.u8)("decimals") + ]); + function createBurnCheckedInstruction(account, mint, owner, amount, decimals, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: true } + ], owner, multiSigners); + const data = Buffer.alloc(exports2.burnCheckedInstructionData.span); + exports2.burnCheckedInstructionData.encode({ + instruction: types_js_1.TokenInstruction.BurnChecked, + amount: BigInt(amount), + decimals + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createBurnCheckedInstruction = createBurnCheckedInstruction; + function decodeBurnCheckedInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.burnCheckedInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, mint, owner, multiSigners }, data } = decodeBurnCheckedInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.BurnChecked) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !mint || !owner) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + mint, + owner, + multiSigners + }, + data + }; + } + exports2.decodeBurnCheckedInstruction = decodeBurnCheckedInstruction; + function decodeBurnCheckedInstructionUnchecked({ programId, keys: [account, mint, owner, ...multiSigners], data }) { + return { + programId, + keys: { + account, + mint, + owner, + multiSigners + }, + data: exports2.burnCheckedInstructionData.decode(data) + }; + } + exports2.decodeBurnCheckedInstructionUnchecked = decodeBurnCheckedInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/burnChecked.js +var require_burnChecked2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/burnChecked.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.burnChecked = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var burnChecked_js_1 = require_burnChecked(); + var internal_js_1 = require_internal2(); + function burnChecked(connection, payer, account, mint, owner, amount, decimals, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, burnChecked_js_1.createBurnCheckedInstruction)(account, mint, ownerPublicKey, amount, decimals, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.burnChecked = burnChecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/closeAccount.js +var require_closeAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/closeAccount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeCloseAccountInstructionUnchecked = exports2.decodeCloseAccountInstruction = exports2.createCloseAccountInstruction = exports2.closeAccountInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.closeAccountInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction")]); + function createCloseAccountInstruction(account, destination, authority, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: destination, isSigner: false, isWritable: true } + ], authority, multiSigners); + const data = Buffer.alloc(exports2.closeAccountInstructionData.span); + exports2.closeAccountInstructionData.encode({ instruction: types_js_1.TokenInstruction.CloseAccount }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createCloseAccountInstruction = createCloseAccountInstruction; + function decodeCloseAccountInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.closeAccountInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, destination, authority, multiSigners }, data } = decodeCloseAccountInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.CloseAccount) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !destination || !authority) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + destination, + authority, + multiSigners + }, + data + }; + } + exports2.decodeCloseAccountInstruction = decodeCloseAccountInstruction; + function decodeCloseAccountInstructionUnchecked({ programId, keys: [account, destination, authority, ...multiSigners], data }) { + return { + programId, + keys: { + account, + destination, + authority, + multiSigners + }, + data: exports2.closeAccountInstructionData.decode(data) + }; + } + exports2.decodeCloseAccountInstructionUnchecked = decodeCloseAccountInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/closeAccount.js +var require_closeAccount2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/closeAccount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.closeAccount = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var closeAccount_js_1 = require_closeAccount(); + var internal_js_1 = require_internal2(); + function closeAccount(connection, payer, account, destination, authority, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, closeAccount_js_1.createCloseAccountInstruction)(account, destination, authorityPublicKey, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.closeAccount = closeAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/accountType.js +var require_accountType = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/accountType.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ACCOUNT_TYPE_SIZE = exports2.AccountType = void 0; + var AccountType; + (function(AccountType2) { + AccountType2[AccountType2["Uninitialized"] = 0] = "Uninitialized"; + AccountType2[AccountType2["Mint"] = 1] = "Mint"; + AccountType2[AccountType2["Account"] = 2] = "Account"; + })(AccountType || (exports2.AccountType = AccountType = {})); + exports2.ACCOUNT_TYPE_SIZE = 1; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/state/multisig.js +var require_multisig = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/state/multisig.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getMinimumBalanceForRentExemptMultisig = exports2.unpackMultisig = exports2.getMultisig = exports2.MULTISIG_SIZE = exports2.MultisigLayout = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + exports2.MultisigLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("m"), + (0, buffer_layout_1.u8)("n"), + (0, buffer_layout_utils_1.bool)("isInitialized"), + (0, buffer_layout_utils_1.publicKey)("signer1"), + (0, buffer_layout_utils_1.publicKey)("signer2"), + (0, buffer_layout_utils_1.publicKey)("signer3"), + (0, buffer_layout_utils_1.publicKey)("signer4"), + (0, buffer_layout_utils_1.publicKey)("signer5"), + (0, buffer_layout_utils_1.publicKey)("signer6"), + (0, buffer_layout_utils_1.publicKey)("signer7"), + (0, buffer_layout_utils_1.publicKey)("signer8"), + (0, buffer_layout_utils_1.publicKey)("signer9"), + (0, buffer_layout_utils_1.publicKey)("signer10"), + (0, buffer_layout_utils_1.publicKey)("signer11") + ]); + exports2.MULTISIG_SIZE = exports2.MultisigLayout.span; + function getMultisig(connection, address, commitment, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const info2 = yield connection.getAccountInfo(address, commitment); + return unpackMultisig(address, info2, programId); + }); + } + exports2.getMultisig = getMultisig; + function unpackMultisig(address, info2, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!info2) + throw new errors_js_1.TokenAccountNotFoundError(); + if (!info2.owner.equals(programId)) + throw new errors_js_1.TokenInvalidAccountOwnerError(); + if (info2.data.length != exports2.MULTISIG_SIZE) + throw new errors_js_1.TokenInvalidAccountSizeError(); + const multisig = exports2.MultisigLayout.decode(info2.data); + return Object.assign({ address }, multisig); + } + exports2.unpackMultisig = unpackMultisig; + function getMinimumBalanceForRentExemptMultisig(connection, commitment) { + return __awaiter2(this, void 0, void 0, function* () { + return yield connection.getMinimumBalanceForRentExemption(exports2.MULTISIG_SIZE, commitment); + }); + } + exports2.getMinimumBalanceForRentExemptMultisig = getMinimumBalanceForRentExemptMultisig; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/state/account.js +var require_account2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/state/account.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.unpackAccount = exports2.getMinimumBalanceForRentExemptAccountWithExtensions = exports2.getMinimumBalanceForRentExemptAccount = exports2.getMultipleAccounts = exports2.getAccount = exports2.ACCOUNT_SIZE = exports2.AccountLayout = exports2.AccountState = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var accountType_js_1 = require_accountType(); + var extensionType_js_1 = require_extensionType(); + var multisig_js_1 = require_multisig(); + var AccountState; + (function(AccountState2) { + AccountState2[AccountState2["Uninitialized"] = 0] = "Uninitialized"; + AccountState2[AccountState2["Initialized"] = 1] = "Initialized"; + AccountState2[AccountState2["Frozen"] = 2] = "Frozen"; + })(AccountState || (exports2.AccountState = AccountState = {})); + exports2.AccountLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_utils_1.publicKey)("mint"), + (0, buffer_layout_utils_1.publicKey)("owner"), + (0, buffer_layout_utils_1.u64)("amount"), + (0, buffer_layout_1.u32)("delegateOption"), + (0, buffer_layout_utils_1.publicKey)("delegate"), + (0, buffer_layout_1.u8)("state"), + (0, buffer_layout_1.u32)("isNativeOption"), + (0, buffer_layout_utils_1.u64)("isNative"), + (0, buffer_layout_utils_1.u64)("delegatedAmount"), + (0, buffer_layout_1.u32)("closeAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("closeAuthority") + ]); + exports2.ACCOUNT_SIZE = exports2.AccountLayout.span; + function getAccount(connection, address, commitment, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const info2 = yield connection.getAccountInfo(address, commitment); + return unpackAccount(address, info2, programId); + }); + } + exports2.getAccount = getAccount; + function getMultipleAccounts(connection, addresses, commitment, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const infos = yield connection.getMultipleAccountsInfo(addresses, commitment); + return addresses.map((address, i) => unpackAccount(address, infos[i], programId)); + }); + } + exports2.getMultipleAccounts = getMultipleAccounts; + function getMinimumBalanceForRentExemptAccount(connection, commitment) { + return __awaiter2(this, void 0, void 0, function* () { + return yield getMinimumBalanceForRentExemptAccountWithExtensions(connection, [], commitment); + }); + } + exports2.getMinimumBalanceForRentExemptAccount = getMinimumBalanceForRentExemptAccount; + function getMinimumBalanceForRentExemptAccountWithExtensions(connection, extensions, commitment) { + return __awaiter2(this, void 0, void 0, function* () { + const accountLen = (0, extensionType_js_1.getAccountLen)(extensions); + return yield connection.getMinimumBalanceForRentExemption(accountLen, commitment); + }); + } + exports2.getMinimumBalanceForRentExemptAccountWithExtensions = getMinimumBalanceForRentExemptAccountWithExtensions; + function unpackAccount(address, info2, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!info2) + throw new errors_js_1.TokenAccountNotFoundError(); + if (!info2.owner.equals(programId)) + throw new errors_js_1.TokenInvalidAccountOwnerError(); + if (info2.data.length < exports2.ACCOUNT_SIZE) + throw new errors_js_1.TokenInvalidAccountSizeError(); + const rawAccount = exports2.AccountLayout.decode(info2.data.slice(0, exports2.ACCOUNT_SIZE)); + let tlvData = Buffer.alloc(0); + if (info2.data.length > exports2.ACCOUNT_SIZE) { + if (info2.data.length === multisig_js_1.MULTISIG_SIZE) + throw new errors_js_1.TokenInvalidAccountSizeError(); + if (info2.data[exports2.ACCOUNT_SIZE] != accountType_js_1.AccountType.Account) + throw new errors_js_1.TokenInvalidAccountError(); + tlvData = info2.data.slice(exports2.ACCOUNT_SIZE + accountType_js_1.ACCOUNT_TYPE_SIZE); + } + return { + address, + mint: rawAccount.mint, + owner: rawAccount.owner, + amount: rawAccount.amount, + delegate: rawAccount.delegateOption ? rawAccount.delegate : null, + delegatedAmount: rawAccount.delegatedAmount, + isInitialized: rawAccount.state !== AccountState.Uninitialized, + isFrozen: rawAccount.state === AccountState.Frozen, + isNative: !!rawAccount.isNativeOption, + rentExemptReserve: rawAccount.isNativeOption ? rawAccount.isNative : null, + closeAuthority: rawAccount.closeAuthorityOption ? rawAccount.closeAuthority : null, + tlvData + }; + } + exports2.unpackAccount = unpackAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/state/mint.js +var require_mint = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/state/mint.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getAssociatedTokenAddressSync = exports2.getAssociatedTokenAddress = exports2.getMinimumBalanceForRentExemptMintWithExtensions = exports2.getMinimumBalanceForRentExemptMint = exports2.unpackMint = exports2.getMint = exports2.MINT_SIZE = exports2.MintLayout = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var accountType_js_1 = require_accountType(); + var extensionType_js_1 = require_extensionType(); + var account_js_1 = require_account2(); + var multisig_js_1 = require_multisig(); + exports2.MintLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u32)("mintAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("mintAuthority"), + (0, buffer_layout_utils_1.u64)("supply"), + (0, buffer_layout_1.u8)("decimals"), + (0, buffer_layout_utils_1.bool)("isInitialized"), + (0, buffer_layout_1.u32)("freezeAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("freezeAuthority") + ]); + exports2.MINT_SIZE = exports2.MintLayout.span; + function getMint(connection, address, commitment, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const info2 = yield connection.getAccountInfo(address, commitment); + return unpackMint(address, info2, programId); + }); + } + exports2.getMint = getMint; + function unpackMint(address, info2, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!info2) + throw new errors_js_1.TokenAccountNotFoundError(); + if (!info2.owner.equals(programId)) + throw new errors_js_1.TokenInvalidAccountOwnerError(); + if (info2.data.length < exports2.MINT_SIZE) + throw new errors_js_1.TokenInvalidAccountSizeError(); + const rawMint = exports2.MintLayout.decode(info2.data.slice(0, exports2.MINT_SIZE)); + let tlvData = Buffer.alloc(0); + if (info2.data.length > exports2.MINT_SIZE) { + if (info2.data.length <= account_js_1.ACCOUNT_SIZE) + throw new errors_js_1.TokenInvalidAccountSizeError(); + if (info2.data.length === multisig_js_1.MULTISIG_SIZE) + throw new errors_js_1.TokenInvalidAccountSizeError(); + if (info2.data[account_js_1.ACCOUNT_SIZE] != accountType_js_1.AccountType.Mint) + throw new errors_js_1.TokenInvalidMintError(); + tlvData = info2.data.slice(account_js_1.ACCOUNT_SIZE + accountType_js_1.ACCOUNT_TYPE_SIZE); + } + return { + address, + mintAuthority: rawMint.mintAuthorityOption ? rawMint.mintAuthority : null, + supply: rawMint.supply, + decimals: rawMint.decimals, + isInitialized: rawMint.isInitialized, + freezeAuthority: rawMint.freezeAuthorityOption ? rawMint.freezeAuthority : null, + tlvData + }; + } + exports2.unpackMint = unpackMint; + function getMinimumBalanceForRentExemptMint(connection, commitment) { + return __awaiter2(this, void 0, void 0, function* () { + return yield getMinimumBalanceForRentExemptMintWithExtensions(connection, [], commitment); + }); + } + exports2.getMinimumBalanceForRentExemptMint = getMinimumBalanceForRentExemptMint; + function getMinimumBalanceForRentExemptMintWithExtensions(connection, extensions, commitment) { + return __awaiter2(this, void 0, void 0, function* () { + const mintLen = (0, extensionType_js_1.getMintLen)(extensions); + return yield connection.getMinimumBalanceForRentExemption(mintLen, commitment); + }); + } + exports2.getMinimumBalanceForRentExemptMintWithExtensions = getMinimumBalanceForRentExemptMintWithExtensions; + function getAssociatedTokenAddress(mint, owner, allowOwnerOffCurve = false, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + if (!allowOwnerOffCurve && !web3_js_1.PublicKey.isOnCurve(owner.toBuffer())) + throw new errors_js_1.TokenOwnerOffCurveError(); + const [address] = yield web3_js_1.PublicKey.findProgramAddress([owner.toBuffer(), programId.toBuffer(), mint.toBuffer()], associatedTokenProgramId); + return address; + }); + } + exports2.getAssociatedTokenAddress = getAssociatedTokenAddress; + function getAssociatedTokenAddressSync2(mint, owner, allowOwnerOffCurve = false, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + if (!allowOwnerOffCurve && !web3_js_1.PublicKey.isOnCurve(owner.toBuffer())) + throw new errors_js_1.TokenOwnerOffCurveError(); + const [address] = web3_js_1.PublicKey.findProgramAddressSync([owner.toBuffer(), programId.toBuffer(), mint.toBuffer()], associatedTokenProgramId); + return address; + } + exports2.getAssociatedTokenAddressSync = getAssociatedTokenAddressSync2; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/cpiGuard/instructions.js +var require_instructions = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/cpiGuard/instructions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createDisableCpiGuardInstruction = exports2.createEnableCpiGuardInstruction = exports2.cpiGuardInstructionData = exports2.CpiGuardInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + var CpiGuardInstruction; + (function(CpiGuardInstruction2) { + CpiGuardInstruction2[CpiGuardInstruction2["Enable"] = 0] = "Enable"; + CpiGuardInstruction2[CpiGuardInstruction2["Disable"] = 1] = "Disable"; + })(CpiGuardInstruction || (exports2.CpiGuardInstruction = CpiGuardInstruction = {})); + exports2.cpiGuardInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction"), (0, buffer_layout_1.u8)("cpiGuardInstruction")]); + function createEnableCpiGuardInstruction(account, authority, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return createCpiGuardInstruction(CpiGuardInstruction.Enable, account, authority, multiSigners, programId); + } + exports2.createEnableCpiGuardInstruction = createEnableCpiGuardInstruction; + function createDisableCpiGuardInstruction(account, authority, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return createCpiGuardInstruction(CpiGuardInstruction.Disable, account, authority, multiSigners, programId); + } + exports2.createDisableCpiGuardInstruction = createDisableCpiGuardInstruction; + function createCpiGuardInstruction(cpiGuardInstruction, account, authority, multiSigners, programId) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = (0, internal_js_1.addSigners)([{ pubkey: account, isSigner: false, isWritable: true }], authority, multiSigners); + const data = Buffer.alloc(exports2.cpiGuardInstructionData.span); + exports2.cpiGuardInstructionData.encode({ + instruction: types_js_1.TokenInstruction.CpiGuardExtension, + cpiGuardInstruction + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/cpiGuard/actions.js +var require_actions = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/cpiGuard/actions.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.disableCpiGuard = exports2.enableCpiGuard = void 0; + var web3_js_1 = require_index_cjs(); + var internal_js_1 = require_internal2(); + var constants_js_1 = require_constants8(); + var instructions_js_1 = require_instructions(); + function enableCpiGuard(connection, payer, account, owner, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createEnableCpiGuardInstruction)(account, ownerPublicKey, signers, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.enableCpiGuard = enableCpiGuard; + function disableCpiGuard(connection, payer, account, owner, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createDisableCpiGuardInstruction)(account, ownerPublicKey, signers, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.disableCpiGuard = disableCpiGuard; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/cpiGuard/state.js +var require_state = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/cpiGuard/state.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getCpiGuard = exports2.CPI_GUARD_SIZE = exports2.CpiGuardLayout = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var extensionType_js_1 = require_extensionType(); + exports2.CpiGuardLayout = (0, buffer_layout_1.struct)([(0, buffer_layout_utils_1.bool)("lockCpi")]); + exports2.CPI_GUARD_SIZE = exports2.CpiGuardLayout.span; + function getCpiGuard(account) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.CpiGuard, account.tlvData); + if (extensionData !== null) { + return exports2.CpiGuardLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getCpiGuard = getCpiGuard; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/cpiGuard/index.js +var require_cpiGuard = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/cpiGuard/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_actions(), exports2); + __exportStar2(require_instructions(), exports2); + __exportStar2(require_state(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/defaultAccountState/instructions.js +var require_instructions2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/defaultAccountState/instructions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createUpdateDefaultAccountStateInstruction = exports2.createInitializeDefaultAccountStateInstruction = exports2.defaultAccountStateInstructionData = exports2.DefaultAccountStateInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + var DefaultAccountStateInstruction; + (function(DefaultAccountStateInstruction2) { + DefaultAccountStateInstruction2[DefaultAccountStateInstruction2["Initialize"] = 0] = "Initialize"; + DefaultAccountStateInstruction2[DefaultAccountStateInstruction2["Update"] = 1] = "Update"; + })(DefaultAccountStateInstruction || (exports2.DefaultAccountStateInstruction = DefaultAccountStateInstruction = {})); + exports2.defaultAccountStateInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("defaultAccountStateInstruction"), + (0, buffer_layout_1.u8)("accountState") + ]); + function createInitializeDefaultAccountStateInstruction(mint, accountState, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.defaultAccountStateInstructionData.span); + exports2.defaultAccountStateInstructionData.encode({ + instruction: types_js_1.TokenInstruction.DefaultAccountStateExtension, + defaultAccountStateInstruction: DefaultAccountStateInstruction.Initialize, + accountState + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeDefaultAccountStateInstruction = createInitializeDefaultAccountStateInstruction; + function createUpdateDefaultAccountStateInstruction(mint, accountState, freezeAuthority, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = (0, internal_js_1.addSigners)([{ pubkey: mint, isSigner: false, isWritable: true }], freezeAuthority, multiSigners); + const data = Buffer.alloc(exports2.defaultAccountStateInstructionData.span); + exports2.defaultAccountStateInstructionData.encode({ + instruction: types_js_1.TokenInstruction.DefaultAccountStateExtension, + defaultAccountStateInstruction: DefaultAccountStateInstruction.Update, + accountState + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createUpdateDefaultAccountStateInstruction = createUpdateDefaultAccountStateInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/defaultAccountState/actions.js +var require_actions2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/defaultAccountState/actions.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.updateDefaultAccountState = exports2.initializeDefaultAccountState = void 0; + var web3_js_1 = require_index_cjs(); + var internal_js_1 = require_internal2(); + var constants_js_1 = require_constants8(); + var instructions_js_1 = require_instructions2(); + function initializeDefaultAccountState(connection, payer, mint, state, confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createInitializeDefaultAccountStateInstruction)(mint, state, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer], confirmOptions); + }); + } + exports2.initializeDefaultAccountState = initializeDefaultAccountState; + function updateDefaultAccountState(connection, payer, mint, state, freezeAuthority, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [freezeAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(freezeAuthority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createUpdateDefaultAccountStateInstruction)(mint, state, freezeAuthorityPublicKey, signers, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.updateDefaultAccountState = updateDefaultAccountState; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/defaultAccountState/state.js +var require_state2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/defaultAccountState/state.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getDefaultAccountState = exports2.DEFAULT_ACCOUNT_STATE_SIZE = exports2.DefaultAccountStateLayout = void 0; + var buffer_layout_1 = require_Layout(); + var extensionType_js_1 = require_extensionType(); + exports2.DefaultAccountStateLayout = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("state")]); + exports2.DEFAULT_ACCOUNT_STATE_SIZE = exports2.DefaultAccountStateLayout.span; + function getDefaultAccountState(mint) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.DefaultAccountState, mint.tlvData); + if (extensionData !== null) { + return exports2.DefaultAccountStateLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getDefaultAccountState = getDefaultAccountState; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/defaultAccountState/index.js +var require_defaultAccountState = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/defaultAccountState/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_actions2(), exports2); + __exportStar2(require_instructions2(), exports2); + __exportStar2(require_state2(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/immutableOwner.js +var require_immutableOwner = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/immutableOwner.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getImmutableOwner = exports2.IMMUTABLE_OWNER_SIZE = exports2.ImmutableOwnerLayout = void 0; + var buffer_layout_1 = require_Layout(); + var extensionType_js_1 = require_extensionType(); + exports2.ImmutableOwnerLayout = (0, buffer_layout_1.struct)([]); + exports2.IMMUTABLE_OWNER_SIZE = exports2.ImmutableOwnerLayout.span; + function getImmutableOwner(account) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.ImmutableOwner, account.tlvData); + if (extensionData !== null) { + return exports2.ImmutableOwnerLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getImmutableOwner = getImmutableOwner; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/interestBearingMint/state.js +var require_state3 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/interestBearingMint/state.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getInterestBearingMintConfigState = exports2.INTEREST_BEARING_MINT_CONFIG_STATE_SIZE = exports2.InterestBearingMintConfigStateLayout = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var extensionType_js_1 = require_extensionType(); + exports2.InterestBearingMintConfigStateLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_utils_1.publicKey)("rateAuthority"), + (0, buffer_layout_1.ns64)("initializationTimestamp"), + (0, buffer_layout_1.s16)("preUpdateAverageRate"), + (0, buffer_layout_1.ns64)("lastUpdateTimestamp"), + (0, buffer_layout_1.s16)("currentRate") + ]); + exports2.INTEREST_BEARING_MINT_CONFIG_STATE_SIZE = exports2.InterestBearingMintConfigStateLayout.span; + function getInterestBearingMintConfigState(mint) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.InterestBearingConfig, mint.tlvData); + if (extensionData !== null) { + return exports2.InterestBearingMintConfigStateLayout.decode(extensionData); + } + return null; + } + exports2.getInterestBearingMintConfigState = getInterestBearingMintConfigState; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/memoTransfer/instructions.js +var require_instructions3 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/memoTransfer/instructions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createDisableRequiredMemoTransfersInstruction = exports2.createEnableRequiredMemoTransfersInstruction = exports2.memoTransferInstructionData = exports2.MemoTransferInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + var MemoTransferInstruction; + (function(MemoTransferInstruction2) { + MemoTransferInstruction2[MemoTransferInstruction2["Enable"] = 0] = "Enable"; + MemoTransferInstruction2[MemoTransferInstruction2["Disable"] = 1] = "Disable"; + })(MemoTransferInstruction || (exports2.MemoTransferInstruction = MemoTransferInstruction = {})); + exports2.memoTransferInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("memoTransferInstruction") + ]); + function createEnableRequiredMemoTransfersInstruction(account, authority, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return createMemoTransferInstruction(MemoTransferInstruction.Enable, account, authority, multiSigners, programId); + } + exports2.createEnableRequiredMemoTransfersInstruction = createEnableRequiredMemoTransfersInstruction; + function createDisableRequiredMemoTransfersInstruction(account, authority, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return createMemoTransferInstruction(MemoTransferInstruction.Disable, account, authority, multiSigners, programId); + } + exports2.createDisableRequiredMemoTransfersInstruction = createDisableRequiredMemoTransfersInstruction; + function createMemoTransferInstruction(memoTransferInstruction, account, authority, multiSigners, programId) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = (0, internal_js_1.addSigners)([{ pubkey: account, isSigner: false, isWritable: true }], authority, multiSigners); + const data = Buffer.alloc(exports2.memoTransferInstructionData.span); + exports2.memoTransferInstructionData.encode({ + instruction: types_js_1.TokenInstruction.MemoTransferExtension, + memoTransferInstruction + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/memoTransfer/actions.js +var require_actions3 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/memoTransfer/actions.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.disableRequiredMemoTransfers = exports2.enableRequiredMemoTransfers = void 0; + var web3_js_1 = require_index_cjs(); + var internal_js_1 = require_internal2(); + var constants_js_1 = require_constants8(); + var instructions_js_1 = require_instructions3(); + function enableRequiredMemoTransfers(connection, payer, account, owner, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createEnableRequiredMemoTransfersInstruction)(account, ownerPublicKey, signers, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.enableRequiredMemoTransfers = enableRequiredMemoTransfers; + function disableRequiredMemoTransfers(connection, payer, account, owner, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createDisableRequiredMemoTransfersInstruction)(account, ownerPublicKey, signers, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.disableRequiredMemoTransfers = disableRequiredMemoTransfers; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/memoTransfer/state.js +var require_state4 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/memoTransfer/state.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getMemoTransfer = exports2.MEMO_TRANSFER_SIZE = exports2.MemoTransferLayout = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var extensionType_js_1 = require_extensionType(); + exports2.MemoTransferLayout = (0, buffer_layout_1.struct)([(0, buffer_layout_utils_1.bool)("requireIncomingTransferMemos")]); + exports2.MEMO_TRANSFER_SIZE = exports2.MemoTransferLayout.span; + function getMemoTransfer(account) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.MemoTransfer, account.tlvData); + if (extensionData !== null) { + return exports2.MemoTransferLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getMemoTransfer = getMemoTransfer; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/memoTransfer/index.js +var require_memoTransfer = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/memoTransfer/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_actions3(), exports2); + __exportStar2(require_instructions3(), exports2); + __exportStar2(require_state4(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/metadataPointer/state.js +var require_state5 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/metadataPointer/state.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getMetadataPointerState = exports2.METADATA_POINTER_SIZE = exports2.MetadataPointerLayout = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var extensionType_js_1 = require_extensionType(); + exports2.MetadataPointerLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_utils_1.publicKey)("authority"), + (0, buffer_layout_utils_1.publicKey)("metadataAddress") + ]); + exports2.METADATA_POINTER_SIZE = exports2.MetadataPointerLayout.span; + function getMetadataPointerState(mint) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.MetadataPointer, mint.tlvData); + if (extensionData !== null) { + const { authority, metadataAddress } = exports2.MetadataPointerLayout.decode(extensionData); + return { + authority: authority.equals(web3_js_1.PublicKey.default) ? null : authority, + metadataAddress: metadataAddress.equals(web3_js_1.PublicKey.default) ? null : metadataAddress + }; + } else { + return null; + } + } + exports2.getMetadataPointerState = getMetadataPointerState; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/mintCloseAuthority.js +var require_mintCloseAuthority = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/mintCloseAuthority.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getMintCloseAuthority = exports2.MINT_CLOSE_AUTHORITY_SIZE = exports2.MintCloseAuthorityLayout = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var extensionType_js_1 = require_extensionType(); + exports2.MintCloseAuthorityLayout = (0, buffer_layout_1.struct)([(0, buffer_layout_utils_1.publicKey)("closeAuthority")]); + exports2.MINT_CLOSE_AUTHORITY_SIZE = exports2.MintCloseAuthorityLayout.span; + function getMintCloseAuthority(mint) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.MintCloseAuthority, mint.tlvData); + if (extensionData !== null) { + return exports2.MintCloseAuthorityLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getMintCloseAuthority = getMintCloseAuthority; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/nonTransferable.js +var require_nonTransferable = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/nonTransferable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getNonTransferableAccount = exports2.getNonTransferable = exports2.NON_TRANSFERABLE_ACCOUNT_SIZE = exports2.NON_TRANSFERABLE_SIZE = exports2.NonTransferableLayout = void 0; + var buffer_layout_1 = require_Layout(); + var extensionType_js_1 = require_extensionType(); + exports2.NonTransferableLayout = (0, buffer_layout_1.struct)([]); + exports2.NON_TRANSFERABLE_SIZE = exports2.NonTransferableLayout.span; + exports2.NON_TRANSFERABLE_ACCOUNT_SIZE = exports2.NonTransferableLayout.span; + function getNonTransferable(mint) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.NonTransferable, mint.tlvData); + if (extensionData !== null) { + return exports2.NonTransferableLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getNonTransferable = getNonTransferable; + function getNonTransferableAccount(account) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.NonTransferableAccount, account.tlvData); + if (extensionData !== null) { + return exports2.NonTransferableLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getNonTransferableAccount = getNonTransferableAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/permanentDelegate.js +var require_permanentDelegate = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/permanentDelegate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getPermanentDelegate = exports2.PERMANENT_DELEGATE_SIZE = exports2.PermanentDelegateLayout = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var extensionType_js_1 = require_extensionType(); + exports2.PermanentDelegateLayout = (0, buffer_layout_1.struct)([(0, buffer_layout_utils_1.publicKey)("delegate")]); + exports2.PERMANENT_DELEGATE_SIZE = exports2.PermanentDelegateLayout.span; + function getPermanentDelegate(mint) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.PermanentDelegate, mint.tlvData); + if (extensionData !== null) { + return exports2.PermanentDelegateLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getPermanentDelegate = getPermanentDelegate; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferFee/instructions.js +var require_instructions4 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferFee/instructions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeHarvestWithheldTokensToMintInstructionUnchecked = exports2.decodeHarvestWithheldTokensToMintInstruction = exports2.createHarvestWithheldTokensToMintInstruction = exports2.harvestWithheldTokensToMintInstructionData = exports2.decodeWithdrawWithheldTokensFromAccountsInstructionUnchecked = exports2.decodeWithdrawWithheldTokensFromAccountsInstruction = exports2.createWithdrawWithheldTokensFromAccountsInstruction = exports2.withdrawWithheldTokensFromAccountsInstructionData = exports2.decodeWithdrawWithheldTokensFromMintInstructionUnchecked = exports2.decodeWithdrawWithheldTokensFromMintInstruction = exports2.createWithdrawWithheldTokensFromMintInstruction = exports2.withdrawWithheldTokensFromMintInstructionData = exports2.decodeTransferCheckedWithFeeInstructionUnchecked = exports2.decodeTransferCheckedWithFeeInstruction = exports2.createTransferCheckedWithFeeInstruction = exports2.transferCheckedWithFeeInstructionData = exports2.decodeInitializeTransferFeeConfigInstructionUnchecked = exports2.decodeInitializeTransferFeeConfigInstruction = exports2.createInitializeTransferFeeConfigInstruction = exports2.initializeTransferFeeConfigInstructionData = exports2.TransferFeeInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + var TransferFeeInstruction; + (function(TransferFeeInstruction2) { + TransferFeeInstruction2[TransferFeeInstruction2["InitializeTransferFeeConfig"] = 0] = "InitializeTransferFeeConfig"; + TransferFeeInstruction2[TransferFeeInstruction2["TransferCheckedWithFee"] = 1] = "TransferCheckedWithFee"; + TransferFeeInstruction2[TransferFeeInstruction2["WithdrawWithheldTokensFromMint"] = 2] = "WithdrawWithheldTokensFromMint"; + TransferFeeInstruction2[TransferFeeInstruction2["WithdrawWithheldTokensFromAccounts"] = 3] = "WithdrawWithheldTokensFromAccounts"; + TransferFeeInstruction2[TransferFeeInstruction2["HarvestWithheldTokensToMint"] = 4] = "HarvestWithheldTokensToMint"; + TransferFeeInstruction2[TransferFeeInstruction2["SetTransferFee"] = 5] = "SetTransferFee"; + })(TransferFeeInstruction || (exports2.TransferFeeInstruction = TransferFeeInstruction = {})); + exports2.initializeTransferFeeConfigInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("transferFeeInstruction"), + (0, buffer_layout_1.u8)("transferFeeConfigAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("transferFeeConfigAuthority"), + (0, buffer_layout_1.u8)("withdrawWithheldAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("withdrawWithheldAuthority"), + (0, buffer_layout_1.u16)("transferFeeBasisPoints"), + (0, buffer_layout_utils_1.u64)("maximumFee") + ]); + function createInitializeTransferFeeConfigInstruction(mint, transferFeeConfigAuthority, withdrawWithheldAuthority, transferFeeBasisPoints, maximumFee, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.initializeTransferFeeConfigInstructionData.span); + exports2.initializeTransferFeeConfigInstructionData.encode({ + instruction: types_js_1.TokenInstruction.TransferFeeExtension, + transferFeeInstruction: TransferFeeInstruction.InitializeTransferFeeConfig, + transferFeeConfigAuthorityOption: transferFeeConfigAuthority ? 1 : 0, + transferFeeConfigAuthority: transferFeeConfigAuthority || new web3_js_1.PublicKey(0), + withdrawWithheldAuthorityOption: withdrawWithheldAuthority ? 1 : 0, + withdrawWithheldAuthority: withdrawWithheldAuthority || new web3_js_1.PublicKey(0), + transferFeeBasisPoints, + maximumFee + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeTransferFeeConfigInstruction = createInitializeTransferFeeConfigInstruction; + function decodeInitializeTransferFeeConfigInstruction(instruction, programId) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeTransferFeeConfigInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint }, data } = decodeInitializeTransferFeeConfigInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.TransferFeeExtension || data.transferFeeInstruction !== TransferFeeInstruction.InitializeTransferFeeConfig) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint + }, + data + }; + } + exports2.decodeInitializeTransferFeeConfigInstruction = decodeInitializeTransferFeeConfigInstruction; + function decodeInitializeTransferFeeConfigInstructionUnchecked({ programId, keys: [mint], data }) { + const { instruction, transferFeeInstruction, transferFeeConfigAuthorityOption, transferFeeConfigAuthority, withdrawWithheldAuthorityOption, withdrawWithheldAuthority, transferFeeBasisPoints, maximumFee } = exports2.initializeTransferFeeConfigInstructionData.decode(data); + return { + programId, + keys: { + mint + }, + data: { + instruction, + transferFeeInstruction, + transferFeeConfigAuthority: transferFeeConfigAuthorityOption ? transferFeeConfigAuthority : null, + withdrawWithheldAuthority: withdrawWithheldAuthorityOption ? withdrawWithheldAuthority : null, + transferFeeBasisPoints, + maximumFee + } + }; + } + exports2.decodeInitializeTransferFeeConfigInstructionUnchecked = decodeInitializeTransferFeeConfigInstructionUnchecked; + exports2.transferCheckedWithFeeInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("transferFeeInstruction"), + (0, buffer_layout_utils_1.u64)("amount"), + (0, buffer_layout_1.u8)("decimals"), + (0, buffer_layout_utils_1.u64)("fee") + ]); + function createTransferCheckedWithFeeInstruction(source, mint, destination, authority, amount, decimals, fee, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const data = Buffer.alloc(exports2.transferCheckedWithFeeInstructionData.span); + exports2.transferCheckedWithFeeInstructionData.encode({ + instruction: types_js_1.TokenInstruction.TransferFeeExtension, + transferFeeInstruction: TransferFeeInstruction.TransferCheckedWithFee, + amount, + decimals, + fee + }, data); + const keys = (0, internal_js_1.addSigners)([ + { pubkey: source, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: false }, + { pubkey: destination, isSigner: false, isWritable: true } + ], authority, multiSigners); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createTransferCheckedWithFeeInstruction = createTransferCheckedWithFeeInstruction; + function decodeTransferCheckedWithFeeInstruction(instruction, programId) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.transferCheckedWithFeeInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { source, mint, destination, authority, signers }, data } = decodeTransferCheckedWithFeeInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.TransferFeeExtension || data.transferFeeInstruction !== TransferFeeInstruction.TransferCheckedWithFee) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + source, + mint, + destination, + authority, + signers: signers ? signers : null + }, + data + }; + } + exports2.decodeTransferCheckedWithFeeInstruction = decodeTransferCheckedWithFeeInstruction; + function decodeTransferCheckedWithFeeInstructionUnchecked({ programId, keys: [source, mint, destination, authority, ...signers], data }) { + const { instruction, transferFeeInstruction, amount, decimals, fee } = exports2.transferCheckedWithFeeInstructionData.decode(data); + return { + programId, + keys: { + source, + mint, + destination, + authority, + signers + }, + data: { + instruction, + transferFeeInstruction, + amount, + decimals, + fee + } + }; + } + exports2.decodeTransferCheckedWithFeeInstructionUnchecked = decodeTransferCheckedWithFeeInstructionUnchecked; + exports2.withdrawWithheldTokensFromMintInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("transferFeeInstruction") + ]); + function createWithdrawWithheldTokensFromMintInstruction(mint, destination, authority, signers = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const data = Buffer.alloc(exports2.withdrawWithheldTokensFromMintInstructionData.span); + exports2.withdrawWithheldTokensFromMintInstructionData.encode({ + instruction: types_js_1.TokenInstruction.TransferFeeExtension, + transferFeeInstruction: TransferFeeInstruction.WithdrawWithheldTokensFromMint + }, data); + const keys = (0, internal_js_1.addSigners)([ + { pubkey: mint, isSigner: false, isWritable: true }, + { pubkey: destination, isSigner: false, isWritable: true } + ], authority, signers); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createWithdrawWithheldTokensFromMintInstruction = createWithdrawWithheldTokensFromMintInstruction; + function decodeWithdrawWithheldTokensFromMintInstruction(instruction, programId) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.withdrawWithheldTokensFromMintInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint, destination, authority, signers }, data } = decodeWithdrawWithheldTokensFromMintInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.TransferFeeExtension || data.transferFeeInstruction !== TransferFeeInstruction.WithdrawWithheldTokensFromMint) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint, + destination, + authority, + signers: signers ? signers : null + }, + data + }; + } + exports2.decodeWithdrawWithheldTokensFromMintInstruction = decodeWithdrawWithheldTokensFromMintInstruction; + function decodeWithdrawWithheldTokensFromMintInstructionUnchecked({ programId, keys: [mint, destination, authority, ...signers], data }) { + const { instruction, transferFeeInstruction } = exports2.withdrawWithheldTokensFromMintInstructionData.decode(data); + return { + programId, + keys: { + mint, + destination, + authority, + signers + }, + data: { + instruction, + transferFeeInstruction + } + }; + } + exports2.decodeWithdrawWithheldTokensFromMintInstructionUnchecked = decodeWithdrawWithheldTokensFromMintInstructionUnchecked; + exports2.withdrawWithheldTokensFromAccountsInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("transferFeeInstruction"), + (0, buffer_layout_1.u8)("numTokenAccounts") + ]); + function createWithdrawWithheldTokensFromAccountsInstruction(mint, destination, authority, signers, sources, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const data = Buffer.alloc(exports2.withdrawWithheldTokensFromAccountsInstructionData.span); + exports2.withdrawWithheldTokensFromAccountsInstructionData.encode({ + instruction: types_js_1.TokenInstruction.TransferFeeExtension, + transferFeeInstruction: TransferFeeInstruction.WithdrawWithheldTokensFromAccounts, + numTokenAccounts: sources.length + }, data); + const keys = (0, internal_js_1.addSigners)([ + { pubkey: mint, isSigner: false, isWritable: true }, + { pubkey: destination, isSigner: false, isWritable: true } + ], authority, signers); + for (const source of sources) { + keys.push({ pubkey: source, isSigner: false, isWritable: true }); + } + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createWithdrawWithheldTokensFromAccountsInstruction = createWithdrawWithheldTokensFromAccountsInstruction; + function decodeWithdrawWithheldTokensFromAccountsInstruction(instruction, programId) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.withdrawWithheldTokensFromAccountsInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint, destination, authority, signers, sources }, data } = decodeWithdrawWithheldTokensFromAccountsInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.TransferFeeExtension || data.transferFeeInstruction !== TransferFeeInstruction.WithdrawWithheldTokensFromAccounts) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint, + destination, + authority, + signers: signers ? signers : null, + sources: sources ? sources : null + }, + data + }; + } + exports2.decodeWithdrawWithheldTokensFromAccountsInstruction = decodeWithdrawWithheldTokensFromAccountsInstruction; + function decodeWithdrawWithheldTokensFromAccountsInstructionUnchecked({ programId, keys, data }) { + const { instruction, transferFeeInstruction, numTokenAccounts } = exports2.withdrawWithheldTokensFromAccountsInstructionData.decode(data); + const [mint, destination, authority, signers, sources] = [ + keys[0], + keys[1], + keys[2], + keys.slice(3, 3 + numTokenAccounts), + keys.slice(-1 * numTokenAccounts) + ]; + return { + programId, + keys: { + mint, + destination, + authority, + signers, + sources + }, + data: { + instruction, + transferFeeInstruction, + numTokenAccounts + } + }; + } + exports2.decodeWithdrawWithheldTokensFromAccountsInstructionUnchecked = decodeWithdrawWithheldTokensFromAccountsInstructionUnchecked; + exports2.harvestWithheldTokensToMintInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("transferFeeInstruction") + ]); + function createHarvestWithheldTokensToMintInstruction(mint, sources, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const data = Buffer.alloc(exports2.harvestWithheldTokensToMintInstructionData.span); + exports2.harvestWithheldTokensToMintInstructionData.encode({ + instruction: types_js_1.TokenInstruction.TransferFeeExtension, + transferFeeInstruction: TransferFeeInstruction.HarvestWithheldTokensToMint + }, data); + const keys = []; + keys.push({ pubkey: mint, isSigner: false, isWritable: true }); + for (const source of sources) { + keys.push({ pubkey: source, isSigner: false, isWritable: true }); + } + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createHarvestWithheldTokensToMintInstruction = createHarvestWithheldTokensToMintInstruction; + function decodeHarvestWithheldTokensToMintInstruction(instruction, programId) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.harvestWithheldTokensToMintInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint, sources }, data } = decodeHarvestWithheldTokensToMintInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.TransferFeeExtension || data.transferFeeInstruction !== TransferFeeInstruction.HarvestWithheldTokensToMint) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint, + sources + }, + data + }; + } + exports2.decodeHarvestWithheldTokensToMintInstruction = decodeHarvestWithheldTokensToMintInstruction; + function decodeHarvestWithheldTokensToMintInstructionUnchecked({ programId, keys: [mint, ...sources], data }) { + const { instruction, transferFeeInstruction } = exports2.harvestWithheldTokensToMintInstructionData.decode(data); + return { + programId, + keys: { + mint, + sources + }, + data: { + instruction, + transferFeeInstruction + } + }; + } + exports2.decodeHarvestWithheldTokensToMintInstructionUnchecked = decodeHarvestWithheldTokensToMintInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferFee/actions.js +var require_actions4 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferFee/actions.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.harvestWithheldTokensToMint = exports2.withdrawWithheldTokensFromAccounts = exports2.withdrawWithheldTokensFromMint = exports2.transferCheckedWithFee = void 0; + var web3_js_1 = require_index_cjs(); + var internal_js_1 = require_internal2(); + var constants_js_1 = require_constants8(); + var instructions_js_1 = require_instructions4(); + function transferCheckedWithFee(connection, payer, source, mint, destination, owner, amount, decimals, fee, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createTransferCheckedWithFeeInstruction)(source, mint, destination, ownerPublicKey, amount, decimals, fee, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.transferCheckedWithFee = transferCheckedWithFee; + function withdrawWithheldTokensFromMint(connection, payer, mint, destination, authority, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createWithdrawWithheldTokensFromMintInstruction)(mint, destination, authorityPublicKey, signers, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.withdrawWithheldTokensFromMint = withdrawWithheldTokensFromMint; + function withdrawWithheldTokensFromAccounts(connection, payer, mint, destination, authority, multiSigners, sources, confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createWithdrawWithheldTokensFromAccountsInstruction)(mint, destination, authorityPublicKey, signers, sources, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.withdrawWithheldTokensFromAccounts = withdrawWithheldTokensFromAccounts; + function harvestWithheldTokensToMint(connection, payer, mint, sources, confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createHarvestWithheldTokensToMintInstruction)(mint, sources, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer], confirmOptions); + }); + } + exports2.harvestWithheldTokensToMint = harvestWithheldTokensToMint; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferFee/state.js +var require_state6 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferFee/state.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getTransferFeeAmount = exports2.getTransferFeeConfig = exports2.TRANSFER_FEE_AMOUNT_SIZE = exports2.TransferFeeAmountLayout = exports2.calculateEpochFee = exports2.getEpochFee = exports2.TRANSFER_FEE_CONFIG_SIZE = exports2.TransferFeeConfigLayout = exports2.calculateFee = exports2.transferFeeLayout = exports2.ONE_IN_BASIS_POINTS = exports2.MAX_FEE_BASIS_POINTS = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var extensionType_js_1 = require_extensionType(); + exports2.MAX_FEE_BASIS_POINTS = 1e4; + exports2.ONE_IN_BASIS_POINTS = BigInt(exports2.MAX_FEE_BASIS_POINTS); + function transferFeeLayout(property) { + return (0, buffer_layout_1.struct)([(0, buffer_layout_utils_1.u64)("epoch"), (0, buffer_layout_utils_1.u64)("maximumFee"), (0, buffer_layout_1.u16)("transferFeeBasisPoints")], property); + } + exports2.transferFeeLayout = transferFeeLayout; + function calculateFee(transferFee, preFeeAmount) { + const transferFeeBasisPoints = transferFee.transferFeeBasisPoints; + if (transferFeeBasisPoints === 0 || preFeeAmount === BigInt(0)) { + return BigInt(0); + } else { + const numerator = preFeeAmount * BigInt(transferFeeBasisPoints); + const rawFee = (numerator + exports2.ONE_IN_BASIS_POINTS - BigInt(1)) / exports2.ONE_IN_BASIS_POINTS; + const fee = rawFee > transferFee.maximumFee ? transferFee.maximumFee : rawFee; + return BigInt(fee); + } + } + exports2.calculateFee = calculateFee; + exports2.TransferFeeConfigLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_utils_1.publicKey)("transferFeeConfigAuthority"), + (0, buffer_layout_utils_1.publicKey)("withdrawWithheldAuthority"), + (0, buffer_layout_utils_1.u64)("withheldAmount"), + transferFeeLayout("olderTransferFee"), + transferFeeLayout("newerTransferFee") + ]); + exports2.TRANSFER_FEE_CONFIG_SIZE = exports2.TransferFeeConfigLayout.span; + function getEpochFee(transferFeeConfig, epoch) { + if (epoch >= transferFeeConfig.newerTransferFee.epoch) { + return transferFeeConfig.newerTransferFee; + } else { + return transferFeeConfig.olderTransferFee; + } + } + exports2.getEpochFee = getEpochFee; + function calculateEpochFee(transferFeeConfig, epoch, preFeeAmount) { + const transferFee = getEpochFee(transferFeeConfig, epoch); + return calculateFee(transferFee, preFeeAmount); + } + exports2.calculateEpochFee = calculateEpochFee; + exports2.TransferFeeAmountLayout = (0, buffer_layout_1.struct)([(0, buffer_layout_utils_1.u64)("withheldAmount")]); + exports2.TRANSFER_FEE_AMOUNT_SIZE = exports2.TransferFeeAmountLayout.span; + function getTransferFeeConfig(mint) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.TransferFeeConfig, mint.tlvData); + if (extensionData !== null) { + return exports2.TransferFeeConfigLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getTransferFeeConfig = getTransferFeeConfig; + function getTransferFeeAmount(account) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.TransferFeeAmount, account.tlvData); + if (extensionData !== null) { + return exports2.TransferFeeAmountLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getTransferFeeAmount = getTransferFeeAmount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferFee/index.js +var require_transferFee = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferFee/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_actions4(), exports2); + __exportStar2(require_instructions4(), exports2); + __exportStar2(require_state6(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/transferChecked.js +var require_transferChecked = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/transferChecked.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeTransferCheckedInstructionUnchecked = exports2.decodeTransferCheckedInstruction = exports2.createTransferCheckedInstruction = exports2.transferCheckedInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.transferCheckedInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_utils_1.u64)("amount"), + (0, buffer_layout_1.u8)("decimals") + ]); + function createTransferCheckedInstruction(source, mint, destination, owner, amount, decimals, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: source, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: false }, + { pubkey: destination, isSigner: false, isWritable: true } + ], owner, multiSigners); + const data = Buffer.alloc(exports2.transferCheckedInstructionData.span); + exports2.transferCheckedInstructionData.encode({ + instruction: types_js_1.TokenInstruction.TransferChecked, + amount: BigInt(amount), + decimals + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createTransferCheckedInstruction = createTransferCheckedInstruction; + function decodeTransferCheckedInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.transferCheckedInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { source, mint, destination, owner, multiSigners }, data } = decodeTransferCheckedInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.TransferChecked) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!source || !mint || !destination || !owner) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + source, + mint, + destination, + owner, + multiSigners + }, + data + }; + } + exports2.decodeTransferCheckedInstruction = decodeTransferCheckedInstruction; + function decodeTransferCheckedInstructionUnchecked({ programId, keys: [source, mint, destination, owner, ...multiSigners], data }) { + return { + programId, + keys: { + source, + mint, + destination, + owner, + multiSigners + }, + data: exports2.transferCheckedInstructionData.decode(data) + }; + } + exports2.decodeTransferCheckedInstructionUnchecked = decodeTransferCheckedInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/seeds.js +var require_seeds = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/seeds.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.unpackSeeds = void 0; + var errors_js_1 = require_errors2(); + var DISCRIMINATOR_SPAN = 1; + var LITERAL_LENGTH_SPAN = 1; + var INSTRUCTION_ARG_OFFSET_SPAN = 1; + var INSTRUCTION_ARG_LENGTH_SPAN = 1; + var ACCOUNT_KEY_INDEX_SPAN = 1; + var ACCOUNT_DATA_ACCOUNT_INDEX_SPAN = 1; + var ACCOUNT_DATA_OFFSET_SPAN = 1; + var ACCOUNT_DATA_LENGTH_SPAN = 1; + function unpackSeedLiteral(seeds) { + if (seeds.length < 1) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + const [length, ...rest] = seeds; + if (rest.length < length) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + return { + data: Buffer.from(rest.slice(0, length)), + packedLength: DISCRIMINATOR_SPAN + LITERAL_LENGTH_SPAN + length + }; + } + function unpackSeedInstructionArg(seeds, instructionData) { + if (seeds.length < 2) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + const [index, length] = seeds; + if (instructionData.length < length + index) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + return { + data: instructionData.subarray(index, index + length), + packedLength: DISCRIMINATOR_SPAN + INSTRUCTION_ARG_OFFSET_SPAN + INSTRUCTION_ARG_LENGTH_SPAN + }; + } + function unpackSeedAccountKey(seeds, previousMetas) { + if (seeds.length < 1) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + const [index] = seeds; + if (previousMetas.length <= index) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + return { + data: previousMetas[index].pubkey.toBuffer(), + packedLength: DISCRIMINATOR_SPAN + ACCOUNT_KEY_INDEX_SPAN + }; + } + function unpackSeedAccountData(seeds, previousMetas, connection) { + return __awaiter2(this, void 0, void 0, function* () { + if (seeds.length < 3) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + const [accountIndex, dataIndex, length] = seeds; + if (previousMetas.length <= accountIndex) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + const accountInfo = yield connection.getAccountInfo(previousMetas[accountIndex].pubkey); + if (accountInfo == null) { + throw new errors_js_1.TokenTransferHookAccountDataNotFound(); + } + if (accountInfo.data.length < dataIndex + length) { + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + return { + data: accountInfo.data.subarray(dataIndex, dataIndex + length), + packedLength: DISCRIMINATOR_SPAN + ACCOUNT_DATA_ACCOUNT_INDEX_SPAN + ACCOUNT_DATA_OFFSET_SPAN + ACCOUNT_DATA_LENGTH_SPAN + }; + }); + } + function unpackFirstSeed(seeds, previousMetas, instructionData, connection) { + return __awaiter2(this, void 0, void 0, function* () { + const [discriminator, ...rest] = seeds; + const remaining = new Uint8Array(rest); + switch (discriminator) { + case 0: + return null; + case 1: + return unpackSeedLiteral(remaining); + case 2: + return unpackSeedInstructionArg(remaining, instructionData); + case 3: + return unpackSeedAccountKey(remaining, previousMetas); + case 4: + return unpackSeedAccountData(remaining, previousMetas, connection); + default: + throw new errors_js_1.TokenTransferHookInvalidSeed(); + } + }); + } + function unpackSeeds(seeds, previousMetas, instructionData, connection) { + return __awaiter2(this, void 0, void 0, function* () { + const unpackedSeeds = []; + let i = 0; + while (i < 32) { + const seed = yield unpackFirstSeed(seeds.slice(i), previousMetas, instructionData, connection); + if (seed == null) { + break; + } + unpackedSeeds.push(seed.data); + i += seed.packedLength; + } + return unpackedSeeds; + }); + } + exports2.unpackSeeds = unpackSeeds; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/state.js +var require_state7 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/state.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.resolveExtraAccountMeta = exports2.getExtraAccountMetas = exports2.ExtraAccountMetaAccountDataLayout = exports2.ExtraAccountMetaListLayout = exports2.ExtraAccountMetaLayout = exports2.getExtraAccountMetaAddress = exports2.getTransferHookAccount = exports2.TRANSFER_HOOK_ACCOUNT_SIZE = exports2.TransferHookAccountLayout = exports2.getTransferHook = exports2.TRANSFER_HOOK_SIZE = exports2.TransferHookLayout = void 0; + var buffer_layout_1 = require_Layout(); + var extensionType_js_1 = require_extensionType(); + var web3_js_1 = require_index_cjs(); + var buffer_layout_utils_1 = require_cjs2(); + var errors_js_1 = require_errors2(); + var seeds_js_1 = require_seeds(); + exports2.TransferHookLayout = (0, buffer_layout_1.struct)([(0, buffer_layout_utils_1.publicKey)("authority"), (0, buffer_layout_utils_1.publicKey)("programId")]); + exports2.TRANSFER_HOOK_SIZE = exports2.TransferHookLayout.span; + function getTransferHook(mint) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.TransferHook, mint.tlvData); + if (extensionData !== null) { + return exports2.TransferHookLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getTransferHook = getTransferHook; + exports2.TransferHookAccountLayout = (0, buffer_layout_1.struct)([(0, buffer_layout_utils_1.bool)("transferring")]); + exports2.TRANSFER_HOOK_ACCOUNT_SIZE = exports2.TransferHookAccountLayout.span; + function getTransferHookAccount(account) { + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.TransferHookAccount, account.tlvData); + if (extensionData !== null) { + return exports2.TransferHookAccountLayout.decode(extensionData); + } else { + return null; + } + } + exports2.getTransferHookAccount = getTransferHookAccount; + function getExtraAccountMetaAddress(mint, programId) { + const seeds = [Buffer.from("extra-account-metas"), mint.toBuffer()]; + return web3_js_1.PublicKey.findProgramAddressSync(seeds, programId)[0]; + } + exports2.getExtraAccountMetaAddress = getExtraAccountMetaAddress; + exports2.ExtraAccountMetaLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("discriminator"), + (0, buffer_layout_1.blob)(32, "addressConfig"), + (0, buffer_layout_utils_1.bool)("isSigner"), + (0, buffer_layout_utils_1.bool)("isWritable") + ]); + exports2.ExtraAccountMetaListLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u32)("count"), + (0, buffer_layout_1.seq)(exports2.ExtraAccountMetaLayout, (0, buffer_layout_1.greedy)(exports2.ExtraAccountMetaLayout.span), "extraAccounts") + ]); + exports2.ExtraAccountMetaAccountDataLayout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_utils_1.u64)("instructionDiscriminator"), + (0, buffer_layout_1.u32)("length"), + exports2.ExtraAccountMetaListLayout.replicate("extraAccountsList") + ]); + function getExtraAccountMetas(account) { + const extraAccountsList = exports2.ExtraAccountMetaAccountDataLayout.decode(account.data).extraAccountsList; + return extraAccountsList.extraAccounts.slice(0, extraAccountsList.count); + } + exports2.getExtraAccountMetas = getExtraAccountMetas; + function resolveExtraAccountMeta(connection, extraMeta, previousMetas, instructionData, transferHookProgramId) { + return __awaiter2(this, void 0, void 0, function* () { + if (extraMeta.discriminator === 0) { + return { + pubkey: new web3_js_1.PublicKey(extraMeta.addressConfig), + isSigner: extraMeta.isSigner, + isWritable: extraMeta.isWritable + }; + } + let programId = web3_js_1.PublicKey.default; + if (extraMeta.discriminator === 1) { + programId = transferHookProgramId; + } else { + const accountIndex = extraMeta.discriminator - (1 << 7); + if (previousMetas.length <= accountIndex) { + throw new errors_js_1.TokenTransferHookAccountNotFound(); + } + programId = previousMetas[accountIndex].pubkey; + } + const seeds = yield (0, seeds_js_1.unpackSeeds)(extraMeta.addressConfig, previousMetas, instructionData, connection); + const pubkey = web3_js_1.PublicKey.findProgramAddressSync(seeds, programId)[0]; + return { pubkey, isSigner: extraMeta.isSigner, isWritable: extraMeta.isWritable }; + }); + } + exports2.resolveExtraAccountMeta = resolveExtraAccountMeta; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/instructions.js +var require_instructions5 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/instructions.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createTransferCheckedWithFeeAndTransferHookInstruction = exports2.createTransferCheckedWithTransferHookInstruction = exports2.addExtraAccountsToInstruction = exports2.createUpdateTransferHookInstruction = exports2.updateTransferHookInstructionData = exports2.createInitializeTransferHookInstruction = exports2.initializeTransferHookInstructionData = exports2.TransferHookInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + var buffer_layout_utils_1 = require_cjs2(); + var transferChecked_js_1 = require_transferChecked(); + var instructions_js_1 = require_instructions4(); + var mint_js_1 = require_mint(); + var state_js_1 = require_state7(); + var TransferHookInstruction; + (function(TransferHookInstruction2) { + TransferHookInstruction2[TransferHookInstruction2["Initialize"] = 0] = "Initialize"; + TransferHookInstruction2[TransferHookInstruction2["Update"] = 1] = "Update"; + })(TransferHookInstruction || (exports2.TransferHookInstruction = TransferHookInstruction = {})); + exports2.initializeTransferHookInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("transferHookInstruction"), + (0, buffer_layout_utils_1.publicKey)("authority"), + (0, buffer_layout_utils_1.publicKey)("transferHookProgramId") + ]); + function createInitializeTransferHookInstruction(mint, authority, transferHookProgramId, programId) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.initializeTransferHookInstructionData.span); + exports2.initializeTransferHookInstructionData.encode({ + instruction: types_js_1.TokenInstruction.TransferHookExtension, + transferHookInstruction: TransferHookInstruction.Initialize, + authority, + transferHookProgramId + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeTransferHookInstruction = createInitializeTransferHookInstruction; + exports2.updateTransferHookInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("transferHookInstruction"), + (0, buffer_layout_utils_1.publicKey)("transferHookProgramId") + ]); + function createUpdateTransferHookInstruction(mint, authority, transferHookProgramId, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = (0, internal_js_1.addSigners)([{ pubkey: mint, isSigner: false, isWritable: true }], authority, multiSigners); + const data = Buffer.alloc(exports2.updateTransferHookInstructionData.span); + exports2.updateTransferHookInstructionData.encode({ + instruction: types_js_1.TokenInstruction.TransferHookExtension, + transferHookInstruction: TransferHookInstruction.Update, + transferHookProgramId + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createUpdateTransferHookInstruction = createUpdateTransferHookInstruction; + function deEscalateAccountMeta(accountMeta, accountMetas) { + const maybeHighestPrivileges = accountMetas.filter((x) => x.pubkey === accountMeta.pubkey).reduce((acc, x) => { + if (!acc) + return { isSigner: x.isSigner, isWritable: x.isWritable }; + return { isSigner: acc.isSigner || x.isSigner, isWritable: acc.isWritable || x.isWritable }; + }, void 0); + if (maybeHighestPrivileges) { + const { isSigner, isWritable } = maybeHighestPrivileges; + if (!isSigner && isSigner !== accountMeta.isSigner) { + accountMeta.isSigner = false; + } + if (!isWritable && isWritable !== accountMeta.isWritable) { + accountMeta.isWritable = false; + } + } + return accountMeta; + } + function addExtraAccountsToInstruction(connection, instruction, mint, commitment, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const mintInfo = yield (0, mint_js_1.getMint)(connection, mint, commitment, programId); + const transferHook = (0, state_js_1.getTransferHook)(mintInfo); + if (transferHook == null) { + return instruction; + } + const extraAccountsAccount = (0, state_js_1.getExtraAccountMetaAddress)(mint, transferHook.programId); + const extraAccountsInfo = yield connection.getAccountInfo(extraAccountsAccount, commitment); + if (extraAccountsInfo == null) { + return instruction; + } + const extraAccountMetas = (0, state_js_1.getExtraAccountMetas)(extraAccountsInfo); + const accountMetas = instruction.keys; + for (const extraAccountMeta of extraAccountMetas) { + const accountMetaUnchecked = yield (0, state_js_1.resolveExtraAccountMeta)(connection, extraAccountMeta, accountMetas, instruction.data, transferHook.programId); + const accountMeta = deEscalateAccountMeta(accountMetaUnchecked, accountMetas); + accountMetas.push(accountMeta); + } + accountMetas.push({ pubkey: transferHook.programId, isSigner: false, isWritable: false }); + accountMetas.push({ pubkey: extraAccountsAccount, isSigner: false, isWritable: false }); + return new web3_js_1.TransactionInstruction({ keys: accountMetas, programId, data: instruction.data }); + }); + } + exports2.addExtraAccountsToInstruction = addExtraAccountsToInstruction; + function createTransferCheckedWithTransferHookInstruction(connection, source, mint, destination, authority, amount, decimals, multiSigners = [], commitment, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const rawInstruction = (0, transferChecked_js_1.createTransferCheckedInstruction)(source, mint, destination, authority, amount, decimals, multiSigners, programId); + const hydratedInstruction = yield addExtraAccountsToInstruction(connection, rawInstruction, mint, commitment, programId); + return hydratedInstruction; + }); + } + exports2.createTransferCheckedWithTransferHookInstruction = createTransferCheckedWithTransferHookInstruction; + function createTransferCheckedWithFeeAndTransferHookInstruction(connection, source, mint, destination, authority, amount, decimals, fee, multiSigners = [], commitment, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const rawInstruction = (0, instructions_js_1.createTransferCheckedWithFeeInstruction)(source, mint, destination, authority, amount, decimals, fee, multiSigners, programId); + const hydratedInstruction = yield addExtraAccountsToInstruction(connection, rawInstruction, mint, commitment, programId); + return hydratedInstruction; + }); + } + exports2.createTransferCheckedWithFeeAndTransferHookInstruction = createTransferCheckedWithFeeAndTransferHookInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/actions.js +var require_actions5 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/actions.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.transferCheckedWithFeeAndTransferHook = exports2.transferCheckedWithTransferHook = exports2.updateTransferHook = exports2.initializeTransferHook = void 0; + var web3_js_1 = require_index_cjs(); + var internal_js_1 = require_internal2(); + var constants_js_1 = require_constants8(); + var instructions_js_1 = require_instructions5(); + function initializeTransferHook(connection, payer, mint, authority, transferHookProgramId, confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createInitializeTransferHookInstruction)(mint, authority, transferHookProgramId, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer], confirmOptions); + }); + } + exports2.initializeTransferHook = initializeTransferHook; + function updateTransferHook(connection, payer, mint, transferHookProgramId, authority, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createUpdateTransferHookInstruction)(mint, authorityPublicKey, transferHookProgramId, signers, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.updateTransferHook = updateTransferHook; + function transferCheckedWithTransferHook(connection, payer, source, mint, destination, authority, amount, decimals, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add(yield (0, instructions_js_1.createTransferCheckedWithTransferHookInstruction)(connection, source, mint, destination, authorityPublicKey, amount, decimals, signers, confirmOptions === null || confirmOptions === void 0 ? void 0 : confirmOptions.commitment, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.transferCheckedWithTransferHook = transferCheckedWithTransferHook; + function transferCheckedWithFeeAndTransferHook(connection, payer, source, mint, destination, authority, amount, decimals, fee, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add(yield (0, instructions_js_1.createTransferCheckedWithFeeAndTransferHookInstruction)(connection, source, mint, destination, authorityPublicKey, amount, decimals, fee, signers, confirmOptions === null || confirmOptions === void 0 ? void 0 : confirmOptions.commitment, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.transferCheckedWithFeeAndTransferHook = transferCheckedWithFeeAndTransferHook; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/index.js +var require_transferHook = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/transferHook/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_actions5(), exports2); + __exportStar2(require_instructions5(), exports2); + __exportStar2(require_seeds(), exports2); + __exportStar2(require_state7(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/extensionType.js +var require_extensionType = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/extensionType.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getNewAccountLenForExtensionLen = exports2.getAccountLenForMint = exports2.getExtensionTypes = exports2.getExtensionData = exports2.getAccountLen = exports2.getMintLen = exports2.getAccountTypeOfMintType = exports2.isAccountExtension = exports2.isMintExtension = exports2.getTypeLen = exports2.LENGTH_SIZE = exports2.TYPE_SIZE = exports2.ExtensionType = void 0; + var account_js_1 = require_account2(); + var mint_js_1 = require_mint(); + var multisig_js_1 = require_multisig(); + var accountType_js_1 = require_accountType(); + var index_js_1 = require_cpiGuard(); + var index_js_2 = require_defaultAccountState(); + var immutableOwner_js_1 = require_immutableOwner(); + var state_js_1 = require_state3(); + var index_js_3 = require_memoTransfer(); + var state_js_2 = require_state5(); + var mintCloseAuthority_js_1 = require_mintCloseAuthority(); + var nonTransferable_js_1 = require_nonTransferable(); + var permanentDelegate_js_1 = require_permanentDelegate(); + var index_js_4 = require_transferFee(); + var index_js_5 = require_transferHook(); + var constants_js_1 = require_constants8(); + var ExtensionType; + (function(ExtensionType2) { + ExtensionType2[ExtensionType2["Uninitialized"] = 0] = "Uninitialized"; + ExtensionType2[ExtensionType2["TransferFeeConfig"] = 1] = "TransferFeeConfig"; + ExtensionType2[ExtensionType2["TransferFeeAmount"] = 2] = "TransferFeeAmount"; + ExtensionType2[ExtensionType2["MintCloseAuthority"] = 3] = "MintCloseAuthority"; + ExtensionType2[ExtensionType2["ConfidentialTransferMint"] = 4] = "ConfidentialTransferMint"; + ExtensionType2[ExtensionType2["ConfidentialTransferAccount"] = 5] = "ConfidentialTransferAccount"; + ExtensionType2[ExtensionType2["DefaultAccountState"] = 6] = "DefaultAccountState"; + ExtensionType2[ExtensionType2["ImmutableOwner"] = 7] = "ImmutableOwner"; + ExtensionType2[ExtensionType2["MemoTransfer"] = 8] = "MemoTransfer"; + ExtensionType2[ExtensionType2["NonTransferable"] = 9] = "NonTransferable"; + ExtensionType2[ExtensionType2["InterestBearingConfig"] = 10] = "InterestBearingConfig"; + ExtensionType2[ExtensionType2["CpiGuard"] = 11] = "CpiGuard"; + ExtensionType2[ExtensionType2["PermanentDelegate"] = 12] = "PermanentDelegate"; + ExtensionType2[ExtensionType2["NonTransferableAccount"] = 13] = "NonTransferableAccount"; + ExtensionType2[ExtensionType2["TransferHook"] = 14] = "TransferHook"; + ExtensionType2[ExtensionType2["TransferHookAccount"] = 15] = "TransferHookAccount"; + ExtensionType2[ExtensionType2["MetadataPointer"] = 18] = "MetadataPointer"; + ExtensionType2[ExtensionType2["TokenMetadata"] = 19] = "TokenMetadata"; + })(ExtensionType || (exports2.ExtensionType = ExtensionType = {})); + exports2.TYPE_SIZE = 2; + exports2.LENGTH_SIZE = 2; + function addTypeAndLengthToLen(len) { + return len + exports2.TYPE_SIZE + exports2.LENGTH_SIZE; + } + function isVariableLengthExtension(e) { + switch (e) { + case ExtensionType.TokenMetadata: + return true; + default: + return false; + } + } + function getTypeLen(e) { + switch (e) { + case ExtensionType.Uninitialized: + return 0; + case ExtensionType.TransferFeeConfig: + return index_js_4.TRANSFER_FEE_CONFIG_SIZE; + case ExtensionType.TransferFeeAmount: + return index_js_4.TRANSFER_FEE_AMOUNT_SIZE; + case ExtensionType.MintCloseAuthority: + return mintCloseAuthority_js_1.MINT_CLOSE_AUTHORITY_SIZE; + case ExtensionType.ConfidentialTransferMint: + return 97; + case ExtensionType.ConfidentialTransferAccount: + return 286; + case ExtensionType.CpiGuard: + return index_js_1.CPI_GUARD_SIZE; + case ExtensionType.DefaultAccountState: + return index_js_2.DEFAULT_ACCOUNT_STATE_SIZE; + case ExtensionType.ImmutableOwner: + return immutableOwner_js_1.IMMUTABLE_OWNER_SIZE; + case ExtensionType.MemoTransfer: + return index_js_3.MEMO_TRANSFER_SIZE; + case ExtensionType.MetadataPointer: + return state_js_2.METADATA_POINTER_SIZE; + case ExtensionType.NonTransferable: + return nonTransferable_js_1.NON_TRANSFERABLE_SIZE; + case ExtensionType.InterestBearingConfig: + return state_js_1.INTEREST_BEARING_MINT_CONFIG_STATE_SIZE; + case ExtensionType.PermanentDelegate: + return permanentDelegate_js_1.PERMANENT_DELEGATE_SIZE; + case ExtensionType.NonTransferableAccount: + return nonTransferable_js_1.NON_TRANSFERABLE_ACCOUNT_SIZE; + case ExtensionType.TransferHook: + return index_js_5.TRANSFER_HOOK_SIZE; + case ExtensionType.TransferHookAccount: + return index_js_5.TRANSFER_HOOK_ACCOUNT_SIZE; + case ExtensionType.TokenMetadata: + throw Error(`Cannot get type length for variable extension type: ${e}`); + default: + throw Error(`Unknown extension type: ${e}`); + } + } + exports2.getTypeLen = getTypeLen; + function isMintExtension(e) { + switch (e) { + case ExtensionType.TransferFeeConfig: + case ExtensionType.MintCloseAuthority: + case ExtensionType.ConfidentialTransferMint: + case ExtensionType.DefaultAccountState: + case ExtensionType.NonTransferable: + case ExtensionType.InterestBearingConfig: + case ExtensionType.PermanentDelegate: + case ExtensionType.TransferHook: + case ExtensionType.MetadataPointer: + case ExtensionType.TokenMetadata: + return true; + case ExtensionType.Uninitialized: + case ExtensionType.TransferFeeAmount: + case ExtensionType.ConfidentialTransferAccount: + case ExtensionType.ImmutableOwner: + case ExtensionType.MemoTransfer: + case ExtensionType.CpiGuard: + case ExtensionType.NonTransferableAccount: + case ExtensionType.TransferHookAccount: + return false; + default: + throw Error(`Unknown extension type: ${e}`); + } + } + exports2.isMintExtension = isMintExtension; + function isAccountExtension(e) { + switch (e) { + case ExtensionType.TransferFeeAmount: + case ExtensionType.ConfidentialTransferAccount: + case ExtensionType.ImmutableOwner: + case ExtensionType.MemoTransfer: + case ExtensionType.CpiGuard: + case ExtensionType.NonTransferableAccount: + case ExtensionType.TransferHookAccount: + return true; + case ExtensionType.Uninitialized: + case ExtensionType.TransferFeeConfig: + case ExtensionType.MintCloseAuthority: + case ExtensionType.ConfidentialTransferMint: + case ExtensionType.DefaultAccountState: + case ExtensionType.NonTransferable: + case ExtensionType.InterestBearingConfig: + case ExtensionType.PermanentDelegate: + case ExtensionType.TransferHook: + case ExtensionType.MetadataPointer: + case ExtensionType.TokenMetadata: + return false; + default: + throw Error(`Unknown extension type: ${e}`); + } + } + exports2.isAccountExtension = isAccountExtension; + function getAccountTypeOfMintType(e) { + switch (e) { + case ExtensionType.TransferFeeConfig: + return ExtensionType.TransferFeeAmount; + case ExtensionType.ConfidentialTransferMint: + return ExtensionType.ConfidentialTransferAccount; + case ExtensionType.NonTransferable: + return ExtensionType.NonTransferableAccount; + case ExtensionType.TransferHook: + return ExtensionType.TransferHookAccount; + case ExtensionType.TransferFeeAmount: + case ExtensionType.ConfidentialTransferAccount: + case ExtensionType.CpiGuard: + case ExtensionType.DefaultAccountState: + case ExtensionType.ImmutableOwner: + case ExtensionType.MemoTransfer: + case ExtensionType.MintCloseAuthority: + case ExtensionType.MetadataPointer: + case ExtensionType.TokenMetadata: + case ExtensionType.Uninitialized: + case ExtensionType.InterestBearingConfig: + case ExtensionType.PermanentDelegate: + case ExtensionType.NonTransferableAccount: + case ExtensionType.TransferHookAccount: + return ExtensionType.Uninitialized; + } + } + exports2.getAccountTypeOfMintType = getAccountTypeOfMintType; + function getLen(extensionTypes, baseSize, variableLengthExtensions = {}) { + if (extensionTypes.length === 0 && Object.keys(variableLengthExtensions).length === 0) { + return baseSize; + } else { + const accountLength = account_js_1.ACCOUNT_SIZE + accountType_js_1.ACCOUNT_TYPE_SIZE + extensionTypes.filter((element, i) => i === extensionTypes.indexOf(element)).map((element) => addTypeAndLengthToLen(getTypeLen(element))).reduce((a, b) => a + b, 0) + Object.entries(variableLengthExtensions).map(([extension, len]) => { + if (!isVariableLengthExtension(Number(extension))) { + throw Error(`Extension ${extension} is not variable length`); + } + return addTypeAndLengthToLen(len); + }).reduce((a, b) => a + b, 0); + if (accountLength === multisig_js_1.MULTISIG_SIZE) { + return accountLength + exports2.TYPE_SIZE; + } else { + return accountLength; + } + } + } + function getMintLen(extensionTypes, variableLengthExtensions = {}) { + return getLen(extensionTypes, mint_js_1.MINT_SIZE, variableLengthExtensions); + } + exports2.getMintLen = getMintLen; + function getAccountLen(extensionTypes) { + return getLen(extensionTypes, account_js_1.ACCOUNT_SIZE); + } + exports2.getAccountLen = getAccountLen; + function getExtensionData(extension, tlvData) { + let extensionTypeIndex = 0; + while (addTypeAndLengthToLen(extensionTypeIndex) <= tlvData.length) { + const entryType = tlvData.readUInt16LE(extensionTypeIndex); + const entryLength = tlvData.readUInt16LE(extensionTypeIndex + exports2.TYPE_SIZE); + const typeIndex = addTypeAndLengthToLen(extensionTypeIndex); + if (entryType == extension) { + return tlvData.slice(typeIndex, typeIndex + entryLength); + } + extensionTypeIndex = typeIndex + entryLength; + } + return null; + } + exports2.getExtensionData = getExtensionData; + function getExtensionTypes(tlvData) { + const extensionTypes = []; + let extensionTypeIndex = 0; + while (extensionTypeIndex < tlvData.length) { + const entryType = tlvData.readUInt16LE(extensionTypeIndex); + extensionTypes.push(entryType); + const entryLength = tlvData.readUInt16LE(extensionTypeIndex + exports2.TYPE_SIZE); + extensionTypeIndex += addTypeAndLengthToLen(entryLength); + } + return extensionTypes; + } + exports2.getExtensionTypes = getExtensionTypes; + function getAccountLenForMint(mint) { + const extensionTypes = getExtensionTypes(mint.tlvData); + const accountExtensions = extensionTypes.map(getAccountTypeOfMintType); + return getAccountLen(accountExtensions); + } + exports2.getAccountLenForMint = getAccountLenForMint; + function getNewAccountLenForExtensionLen(info2, address, extensionType, extensionLen, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + const mint = (0, mint_js_1.unpackMint)(address, info2, programId); + const extensionData = getExtensionData(extensionType, mint.tlvData); + const currentExtensionLen = extensionData ? addTypeAndLengthToLen(extensionData.length) : 0; + const newExtensionLen = addTypeAndLengthToLen(extensionLen); + return info2.data.length + newExtensionLen - currentExtensionLen; + } + exports2.getNewAccountLenForExtensionLen = getNewAccountLenForExtensionLen; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeAccount.js +var require_initializeAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeAccount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializeAccountInstructionUnchecked = exports2.decodeInitializeAccountInstruction = exports2.createInitializeAccountInstruction = exports2.initializeAccountInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeAccountInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction")]); + function createInitializeAccountInstruction(account, mint, owner, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: false }, + { pubkey: owner, isSigner: false, isWritable: false }, + { pubkey: web3_js_1.SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false } + ]; + const data = Buffer.alloc(exports2.initializeAccountInstructionData.span); + exports2.initializeAccountInstructionData.encode({ instruction: types_js_1.TokenInstruction.InitializeAccount }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeAccountInstruction = createInitializeAccountInstruction; + function decodeInitializeAccountInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeAccountInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, mint, owner, rent }, data } = decodeInitializeAccountInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializeAccount) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !mint || !owner || !rent) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + mint, + owner, + rent + }, + data + }; + } + exports2.decodeInitializeAccountInstruction = decodeInitializeAccountInstruction; + function decodeInitializeAccountInstructionUnchecked({ programId, keys: [account, mint, owner, rent], data }) { + return { + programId, + keys: { + account, + mint, + owner, + rent + }, + data: exports2.initializeAccountInstructionData.decode(data) + }; + } + exports2.decodeInitializeAccountInstructionUnchecked = decodeInitializeAccountInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/associatedTokenAccount.js +var require_associatedTokenAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/associatedTokenAccount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createRecoverNestedInstruction = exports2.createAssociatedTokenAccountIdempotentInstruction = exports2.createAssociatedTokenAccountInstruction = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + function createAssociatedTokenAccountInstruction(payer, associatedToken, owner, mint, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + return buildAssociatedTokenAccountInstruction(payer, associatedToken, owner, mint, Buffer.alloc(0), programId, associatedTokenProgramId); + } + exports2.createAssociatedTokenAccountInstruction = createAssociatedTokenAccountInstruction; + function createAssociatedTokenAccountIdempotentInstruction(payer, associatedToken, owner, mint, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + return buildAssociatedTokenAccountInstruction(payer, associatedToken, owner, mint, Buffer.from([1]), programId, associatedTokenProgramId); + } + exports2.createAssociatedTokenAccountIdempotentInstruction = createAssociatedTokenAccountIdempotentInstruction; + function buildAssociatedTokenAccountInstruction(payer, associatedToken, owner, mint, instructionData, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + const keys = [ + { pubkey: payer, isSigner: true, isWritable: true }, + { pubkey: associatedToken, isSigner: false, isWritable: true }, + { pubkey: owner, isSigner: false, isWritable: false }, + { pubkey: mint, isSigner: false, isWritable: false }, + { pubkey: web3_js_1.SystemProgram.programId, isSigner: false, isWritable: false }, + { pubkey: programId, isSigner: false, isWritable: false } + ]; + return new web3_js_1.TransactionInstruction({ + keys, + programId: associatedTokenProgramId, + data: instructionData + }); + } + function createRecoverNestedInstruction(nestedAssociatedToken, nestedMint, destinationAssociatedToken, ownerAssociatedToken, ownerMint, owner, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + const keys = [ + { pubkey: nestedAssociatedToken, isSigner: false, isWritable: true }, + { pubkey: nestedMint, isSigner: false, isWritable: false }, + { pubkey: destinationAssociatedToken, isSigner: false, isWritable: true }, + { pubkey: ownerAssociatedToken, isSigner: false, isWritable: true }, + { pubkey: ownerMint, isSigner: false, isWritable: false }, + { pubkey: owner, isSigner: true, isWritable: true }, + { pubkey: programId, isSigner: false, isWritable: false } + ]; + return new web3_js_1.TransactionInstruction({ + keys, + programId: associatedTokenProgramId, + data: Buffer.from([2]) + }); + } + exports2.createRecoverNestedInstruction = createRecoverNestedInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/createAssociatedTokenAccount.js +var require_createAssociatedTokenAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/createAssociatedTokenAccount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createAssociatedTokenAccount = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var associatedTokenAccount_js_1 = require_associatedTokenAccount(); + var mint_js_1 = require_mint(); + function createAssociatedTokenAccount(connection, payer, mint, owner, confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const associatedToken = (0, mint_js_1.getAssociatedTokenAddressSync)(mint, owner, false, programId, associatedTokenProgramId); + const transaction = new web3_js_1.Transaction().add((0, associatedTokenAccount_js_1.createAssociatedTokenAccountInstruction)(payer.publicKey, associatedToken, owner, mint, programId, associatedTokenProgramId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer], confirmOptions); + return associatedToken; + }); + } + exports2.createAssociatedTokenAccount = createAssociatedTokenAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/createAccount.js +var require_createAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/createAccount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createAccount = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var extensionType_js_1 = require_extensionType(); + var initializeAccount_js_1 = require_initializeAccount(); + var mint_js_1 = require_mint(); + var createAssociatedTokenAccount_js_1 = require_createAssociatedTokenAccount(); + function createAccount(connection, payer, mint, owner, keypair, confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + if (!keypair) + return yield (0, createAssociatedTokenAccount_js_1.createAssociatedTokenAccount)(connection, payer, mint, owner, confirmOptions, programId); + const mintState = yield (0, mint_js_1.getMint)(connection, mint, confirmOptions === null || confirmOptions === void 0 ? void 0 : confirmOptions.commitment, programId); + const space = (0, extensionType_js_1.getAccountLenForMint)(mintState); + const lamports = yield connection.getMinimumBalanceForRentExemption(space); + const transaction = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({ + fromPubkey: payer.publicKey, + newAccountPubkey: keypair.publicKey, + space, + lamports, + programId + }), (0, initializeAccount_js_1.createInitializeAccountInstruction)(keypair.publicKey, mint, owner, programId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, keypair], confirmOptions); + return keypair.publicKey; + }); + } + exports2.createAccount = createAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/createAssociatedTokenAccountIdempotent.js +var require_createAssociatedTokenAccountIdempotent = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/createAssociatedTokenAccountIdempotent.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createAssociatedTokenAccountIdempotent = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var associatedTokenAccount_js_1 = require_associatedTokenAccount(); + var mint_js_1 = require_mint(); + function createAssociatedTokenAccountIdempotent(connection, payer, mint, owner, confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const associatedToken = (0, mint_js_1.getAssociatedTokenAddressSync)(mint, owner, false, programId, associatedTokenProgramId); + const transaction = new web3_js_1.Transaction().add((0, associatedTokenAccount_js_1.createAssociatedTokenAccountIdempotentInstruction)(payer.publicKey, associatedToken, owner, mint, programId, associatedTokenProgramId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer], confirmOptions); + return associatedToken; + }); + } + exports2.createAssociatedTokenAccountIdempotent = createAssociatedTokenAccountIdempotent; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMint2.js +var require_initializeMint2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMint2.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializeMint2InstructionUnchecked = exports2.decodeInitializeMint2Instruction = exports2.createInitializeMint2Instruction = exports2.initializeMint2InstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeMint2InstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("decimals"), + (0, buffer_layout_utils_1.publicKey)("mintAuthority"), + (0, buffer_layout_1.u8)("freezeAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("freezeAuthority") + ]); + function createInitializeMint2Instruction(mint, decimals, mintAuthority, freezeAuthority, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.initializeMint2InstructionData.span); + exports2.initializeMint2InstructionData.encode({ + instruction: types_js_1.TokenInstruction.InitializeMint2, + decimals, + mintAuthority, + freezeAuthorityOption: freezeAuthority ? 1 : 0, + freezeAuthority: freezeAuthority || new web3_js_1.PublicKey(0) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeMint2Instruction = createInitializeMint2Instruction; + function decodeInitializeMint2Instruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeMint2InstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint }, data } = decodeInitializeMint2InstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializeMint2) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint + }, + data + }; + } + exports2.decodeInitializeMint2Instruction = decodeInitializeMint2Instruction; + function decodeInitializeMint2InstructionUnchecked({ programId, keys: [mint], data }) { + const { instruction, decimals, mintAuthority, freezeAuthorityOption, freezeAuthority } = exports2.initializeMint2InstructionData.decode(data); + return { + programId, + keys: { + mint + }, + data: { + instruction, + decimals, + mintAuthority, + freezeAuthority: freezeAuthorityOption ? freezeAuthority : null + } + }; + } + exports2.decodeInitializeMint2InstructionUnchecked = decodeInitializeMint2InstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/createMint.js +var require_createMint = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/createMint.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createMint = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var initializeMint2_js_1 = require_initializeMint2(); + var mint_js_1 = require_mint(); + function createMint(connection, payer, mintAuthority, freezeAuthority, decimals, keypair = web3_js_1.Keypair.generate(), confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const lamports = yield (0, mint_js_1.getMinimumBalanceForRentExemptMint)(connection); + const transaction = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({ + fromPubkey: payer.publicKey, + newAccountPubkey: keypair.publicKey, + space: mint_js_1.MINT_SIZE, + lamports, + programId + }), (0, initializeMint2_js_1.createInitializeMint2Instruction)(keypair.publicKey, decimals, mintAuthority, freezeAuthority, programId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, keypair], confirmOptions); + return keypair.publicKey; + }); + } + exports2.createMint = createMint; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMultisig.js +var require_initializeMultisig = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMultisig.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializeMultisigInstructionUnchecked = exports2.decodeInitializeMultisigInstruction = exports2.createInitializeMultisigInstruction = exports2.initializeMultisigInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeMultisigInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("m") + ]); + function createInitializeMultisigInstruction(account, signers, m, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: web3_js_1.SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false } + ]; + for (const signer of signers) { + keys.push({ + pubkey: signer instanceof web3_js_1.PublicKey ? signer : signer.publicKey, + isSigner: false, + isWritable: false + }); + } + const data = Buffer.alloc(exports2.initializeMultisigInstructionData.span); + exports2.initializeMultisigInstructionData.encode({ + instruction: types_js_1.TokenInstruction.InitializeMultisig, + m + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeMultisigInstruction = createInitializeMultisigInstruction; + function decodeInitializeMultisigInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeMultisigInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, rent, signers }, data } = decodeInitializeMultisigInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializeMultisig) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !rent || !signers.length) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + rent, + signers + }, + data + }; + } + exports2.decodeInitializeMultisigInstruction = decodeInitializeMultisigInstruction; + function decodeInitializeMultisigInstructionUnchecked({ programId, keys: [account, rent, ...signers], data }) { + return { + programId, + keys: { + account, + rent, + signers + }, + data: exports2.initializeMultisigInstructionData.decode(data) + }; + } + exports2.decodeInitializeMultisigInstructionUnchecked = decodeInitializeMultisigInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/createMultisig.js +var require_createMultisig = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/createMultisig.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createMultisig = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var initializeMultisig_js_1 = require_initializeMultisig(); + var multisig_js_1 = require_multisig(); + function createMultisig(connection, payer, signers, m, keypair = web3_js_1.Keypair.generate(), confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const lamports = yield (0, multisig_js_1.getMinimumBalanceForRentExemptMultisig)(connection); + const transaction = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({ + fromPubkey: payer.publicKey, + newAccountPubkey: keypair.publicKey, + space: multisig_js_1.MULTISIG_SIZE, + lamports, + programId + }), (0, initializeMultisig_js_1.createInitializeMultisigInstruction)(keypair.publicKey, signers, m, programId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, keypair], confirmOptions); + return keypair.publicKey; + }); + } + exports2.createMultisig = createMultisig; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/createNativeMint.js +var require_createNativeMint = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/createNativeMint.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createCreateNativeMintInstruction = exports2.createNativeMintInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.createNativeMintInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction")]); + function createCreateNativeMintInstruction(payer, nativeMintId = constants_js_1.NATIVE_MINT_2022, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = [ + { pubkey: payer, isSigner: true, isWritable: true }, + { pubkey: nativeMintId, isSigner: false, isWritable: true }, + { pubkey: web3_js_1.SystemProgram.programId, isSigner: false, isWritable: false } + ]; + const data = Buffer.alloc(exports2.createNativeMintInstructionData.span); + exports2.createNativeMintInstructionData.encode({ instruction: types_js_1.TokenInstruction.CreateNativeMint }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createCreateNativeMintInstruction = createCreateNativeMintInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/createNativeMint.js +var require_createNativeMint2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/createNativeMint.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createNativeMint = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var createNativeMint_js_1 = require_createNativeMint(); + function createNativeMint(connection, payer, confirmOptions, nativeMint = constants_js_1.NATIVE_MINT_2022, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const transaction = new web3_js_1.Transaction().add((0, createNativeMint_js_1.createCreateNativeMintInstruction)(payer.publicKey, nativeMint, programId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer], confirmOptions); + }); + } + exports2.createNativeMint = createNativeMint; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/syncNative.js +var require_syncNative = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/syncNative.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeSyncNativeInstructionUnchecked = exports2.decodeSyncNativeInstruction = exports2.createSyncNativeInstruction = exports2.syncNativeInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.syncNativeInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction")]); + function createSyncNativeInstruction(account, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [{ pubkey: account, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.syncNativeInstructionData.span); + exports2.syncNativeInstructionData.encode({ instruction: types_js_1.TokenInstruction.SyncNative }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createSyncNativeInstruction = createSyncNativeInstruction; + function decodeSyncNativeInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.syncNativeInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account }, data } = decodeSyncNativeInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.SyncNative) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account + }, + data + }; + } + exports2.decodeSyncNativeInstruction = decodeSyncNativeInstruction; + function decodeSyncNativeInstructionUnchecked({ programId, keys: [account], data }) { + return { + programId, + keys: { + account + }, + data: exports2.syncNativeInstructionData.decode(data) + }; + } + exports2.decodeSyncNativeInstructionUnchecked = decodeSyncNativeInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/createWrappedNativeAccount.js +var require_createWrappedNativeAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/createWrappedNativeAccount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createWrappedNativeAccount = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var associatedTokenAccount_js_1 = require_associatedTokenAccount(); + var initializeAccount_js_1 = require_initializeAccount(); + var syncNative_js_1 = require_syncNative(); + var account_js_1 = require_account2(); + var mint_js_1 = require_mint(); + var createAccount_js_1 = require_createAccount(); + function createWrappedNativeAccount(connection, payer, owner, amount, keypair, confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID, nativeMint = constants_js_1.NATIVE_MINT) { + return __awaiter2(this, void 0, void 0, function* () { + if (!amount) + return yield (0, createAccount_js_1.createAccount)(connection, payer, nativeMint, owner, keypair, confirmOptions, programId); + if (!keypair) { + const associatedToken = (0, mint_js_1.getAssociatedTokenAddressSync)(nativeMint, owner, false, programId, constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID); + const transaction2 = new web3_js_1.Transaction().add((0, associatedTokenAccount_js_1.createAssociatedTokenAccountInstruction)(payer.publicKey, associatedToken, owner, nativeMint, programId, constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID), web3_js_1.SystemProgram.transfer({ + fromPubkey: payer.publicKey, + toPubkey: associatedToken, + lamports: amount + }), (0, syncNative_js_1.createSyncNativeInstruction)(associatedToken, programId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction2, [payer], confirmOptions); + return associatedToken; + } + const lamports = yield (0, account_js_1.getMinimumBalanceForRentExemptAccount)(connection); + const transaction = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({ + fromPubkey: payer.publicKey, + newAccountPubkey: keypair.publicKey, + space: account_js_1.ACCOUNT_SIZE, + lamports, + programId + }), web3_js_1.SystemProgram.transfer({ + fromPubkey: payer.publicKey, + toPubkey: keypair.publicKey, + lamports: amount + }), (0, initializeAccount_js_1.createInitializeAccountInstruction)(keypair.publicKey, nativeMint, owner, programId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, keypair], confirmOptions); + return keypair.publicKey; + }); + } + exports2.createWrappedNativeAccount = createWrappedNativeAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/freezeAccount.js +var require_freezeAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/freezeAccount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeFreezeAccountInstructionUnchecked = exports2.decodeFreezeAccountInstruction = exports2.createFreezeAccountInstruction = exports2.freezeAccountInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.freezeAccountInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction")]); + function createFreezeAccountInstruction(account, mint, authority, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: false } + ], authority, multiSigners); + const data = Buffer.alloc(exports2.freezeAccountInstructionData.span); + exports2.freezeAccountInstructionData.encode({ instruction: types_js_1.TokenInstruction.FreezeAccount }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createFreezeAccountInstruction = createFreezeAccountInstruction; + function decodeFreezeAccountInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.freezeAccountInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, mint, authority, multiSigners }, data } = decodeFreezeAccountInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.FreezeAccount) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !mint || !authority) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + mint, + authority, + multiSigners + }, + data + }; + } + exports2.decodeFreezeAccountInstruction = decodeFreezeAccountInstruction; + function decodeFreezeAccountInstructionUnchecked({ programId, keys: [account, mint, authority, ...multiSigners], data }) { + return { + programId, + keys: { + account, + mint, + authority, + multiSigners + }, + data: exports2.freezeAccountInstructionData.decode(data) + }; + } + exports2.decodeFreezeAccountInstructionUnchecked = decodeFreezeAccountInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/freezeAccount.js +var require_freezeAccount2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/freezeAccount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.freezeAccount = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var freezeAccount_js_1 = require_freezeAccount(); + var internal_js_1 = require_internal2(); + function freezeAccount(connection, payer, account, mint, authority, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, freezeAccount_js_1.createFreezeAccountInstruction)(account, mint, authorityPublicKey, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.freezeAccount = freezeAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/getOrCreateAssociatedTokenAccount.js +var require_getOrCreateAssociatedTokenAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/getOrCreateAssociatedTokenAccount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getOrCreateAssociatedTokenAccount = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var associatedTokenAccount_js_1 = require_associatedTokenAccount(); + var account_js_1 = require_account2(); + var mint_js_1 = require_mint(); + function getOrCreateAssociatedTokenAccount(connection, payer, mint, owner, allowOwnerOffCurve = false, commitment, confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const associatedToken = (0, mint_js_1.getAssociatedTokenAddressSync)(mint, owner, allowOwnerOffCurve, programId, associatedTokenProgramId); + let account; + try { + account = yield (0, account_js_1.getAccount)(connection, associatedToken, commitment, programId); + } catch (error) { + if (error instanceof errors_js_1.TokenAccountNotFoundError || error instanceof errors_js_1.TokenInvalidAccountOwnerError) { + try { + const transaction = new web3_js_1.Transaction().add((0, associatedTokenAccount_js_1.createAssociatedTokenAccountInstruction)(payer.publicKey, associatedToken, owner, mint, programId, associatedTokenProgramId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer], confirmOptions); + } catch (error2) { + } + account = yield (0, account_js_1.getAccount)(connection, associatedToken, commitment, programId); + } else { + throw error; + } + } + if (!account.mint.equals(mint)) + throw new errors_js_1.TokenInvalidMintError(); + if (!account.owner.equals(owner)) + throw new errors_js_1.TokenInvalidOwnerError(); + return account; + }); + } + exports2.getOrCreateAssociatedTokenAccount = getOrCreateAssociatedTokenAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/mintTo.js +var require_mintTo = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/mintTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeMintToInstructionUnchecked = exports2.decodeMintToInstruction = exports2.createMintToInstruction = exports2.mintToInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.mintToInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction"), (0, buffer_layout_utils_1.u64)("amount")]); + function createMintToInstruction(mint, destination, authority, amount, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: mint, isSigner: false, isWritable: true }, + { pubkey: destination, isSigner: false, isWritable: true } + ], authority, multiSigners); + const data = Buffer.alloc(exports2.mintToInstructionData.span); + exports2.mintToInstructionData.encode({ + instruction: types_js_1.TokenInstruction.MintTo, + amount: BigInt(amount) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createMintToInstruction = createMintToInstruction; + function decodeMintToInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.mintToInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint, destination, authority, multiSigners }, data } = decodeMintToInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.MintTo) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint || !destination || !authority) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint, + destination, + authority, + multiSigners + }, + data + }; + } + exports2.decodeMintToInstruction = decodeMintToInstruction; + function decodeMintToInstructionUnchecked({ programId, keys: [mint, destination, authority, ...multiSigners], data }) { + return { + programId, + keys: { + mint, + destination, + authority, + multiSigners + }, + data: exports2.mintToInstructionData.decode(data) + }; + } + exports2.decodeMintToInstructionUnchecked = decodeMintToInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/mintTo.js +var require_mintTo2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/mintTo.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mintTo = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var mintTo_js_1 = require_mintTo(); + var internal_js_1 = require_internal2(); + function mintTo(connection, payer, mint, destination, authority, amount, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, mintTo_js_1.createMintToInstruction)(mint, destination, authorityPublicKey, amount, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.mintTo = mintTo; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/mintToChecked.js +var require_mintToChecked = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/mintToChecked.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeMintToCheckedInstructionUnchecked = exports2.decodeMintToCheckedInstruction = exports2.createMintToCheckedInstruction = exports2.mintToCheckedInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.mintToCheckedInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_utils_1.u64)("amount"), + (0, buffer_layout_1.u8)("decimals") + ]); + function createMintToCheckedInstruction(mint, destination, authority, amount, decimals, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: mint, isSigner: false, isWritable: true }, + { pubkey: destination, isSigner: false, isWritable: true } + ], authority, multiSigners); + const data = Buffer.alloc(exports2.mintToCheckedInstructionData.span); + exports2.mintToCheckedInstructionData.encode({ + instruction: types_js_1.TokenInstruction.MintToChecked, + amount: BigInt(amount), + decimals + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createMintToCheckedInstruction = createMintToCheckedInstruction; + function decodeMintToCheckedInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.mintToCheckedInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint, destination, authority, multiSigners }, data } = decodeMintToCheckedInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.MintToChecked) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint || !destination || !authority) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint, + destination, + authority, + multiSigners + }, + data + }; + } + exports2.decodeMintToCheckedInstruction = decodeMintToCheckedInstruction; + function decodeMintToCheckedInstructionUnchecked({ programId, keys: [mint, destination, authority, ...multiSigners], data }) { + return { + programId, + keys: { + mint, + destination, + authority, + multiSigners + }, + data: exports2.mintToCheckedInstructionData.decode(data) + }; + } + exports2.decodeMintToCheckedInstructionUnchecked = decodeMintToCheckedInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/mintToChecked.js +var require_mintToChecked2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/mintToChecked.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mintToChecked = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var mintToChecked_js_1 = require_mintToChecked(); + var internal_js_1 = require_internal2(); + function mintToChecked(connection, payer, mint, destination, authority, amount, decimals, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, mintToChecked_js_1.createMintToCheckedInstruction)(mint, destination, authorityPublicKey, amount, decimals, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.mintToChecked = mintToChecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/recoverNested.js +var require_recoverNested = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/recoverNested.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.recoverNested = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var associatedTokenAccount_js_1 = require_associatedTokenAccount(); + var mint_js_1 = require_mint(); + function recoverNested(connection, payer, owner, mint, nestedMint, confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAssociatedToken = (0, mint_js_1.getAssociatedTokenAddressSync)(mint, owner.publicKey, false, programId, associatedTokenProgramId); + const destinationAssociatedToken = (0, mint_js_1.getAssociatedTokenAddressSync)(nestedMint, owner.publicKey, false, programId, associatedTokenProgramId); + const nestedAssociatedToken = (0, mint_js_1.getAssociatedTokenAddressSync)(nestedMint, ownerAssociatedToken, true, programId, associatedTokenProgramId); + const transaction = new web3_js_1.Transaction().add((0, associatedTokenAccount_js_1.createRecoverNestedInstruction)(nestedAssociatedToken, nestedMint, destinationAssociatedToken, ownerAssociatedToken, mint, owner.publicKey, programId, associatedTokenProgramId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, owner], confirmOptions); + }); + } + exports2.recoverNested = recoverNested; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/revoke.js +var require_revoke = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/revoke.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeRevokeInstructionUnchecked = exports2.decodeRevokeInstruction = exports2.createRevokeInstruction = exports2.revokeInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.revokeInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction")]); + function createRevokeInstruction(account, owner, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([{ pubkey: account, isSigner: false, isWritable: true }], owner, multiSigners); + const data = Buffer.alloc(exports2.revokeInstructionData.span); + exports2.revokeInstructionData.encode({ instruction: types_js_1.TokenInstruction.Revoke }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createRevokeInstruction = createRevokeInstruction; + function decodeRevokeInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.revokeInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, owner, multiSigners }, data } = decodeRevokeInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.Revoke) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !owner) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + owner, + multiSigners + }, + data + }; + } + exports2.decodeRevokeInstruction = decodeRevokeInstruction; + function decodeRevokeInstructionUnchecked({ programId, keys: [account, owner, ...multiSigners], data }) { + return { + programId, + keys: { + account, + owner, + multiSigners + }, + data: exports2.revokeInstructionData.decode(data) + }; + } + exports2.decodeRevokeInstructionUnchecked = decodeRevokeInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/revoke.js +var require_revoke2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/revoke.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.revoke = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var revoke_js_1 = require_revoke(); + var internal_js_1 = require_internal2(); + function revoke(connection, payer, account, owner, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, revoke_js_1.createRevokeInstruction)(account, ownerPublicKey, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.revoke = revoke; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/setAuthority.js +var require_setAuthority = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/setAuthority.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeSetAuthorityInstructionUnchecked = exports2.decodeSetAuthorityInstruction = exports2.createSetAuthorityInstruction = exports2.setAuthorityInstructionData = exports2.AuthorityType = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + var AuthorityType; + (function(AuthorityType2) { + AuthorityType2[AuthorityType2["MintTokens"] = 0] = "MintTokens"; + AuthorityType2[AuthorityType2["FreezeAccount"] = 1] = "FreezeAccount"; + AuthorityType2[AuthorityType2["AccountOwner"] = 2] = "AccountOwner"; + AuthorityType2[AuthorityType2["CloseAccount"] = 3] = "CloseAccount"; + AuthorityType2[AuthorityType2["TransferFeeConfig"] = 4] = "TransferFeeConfig"; + AuthorityType2[AuthorityType2["WithheldWithdraw"] = 5] = "WithheldWithdraw"; + AuthorityType2[AuthorityType2["CloseMint"] = 6] = "CloseMint"; + AuthorityType2[AuthorityType2["InterestRate"] = 7] = "InterestRate"; + AuthorityType2[AuthorityType2["PermanentDelegate"] = 8] = "PermanentDelegate"; + AuthorityType2[AuthorityType2["ConfidentialTransferMint"] = 9] = "ConfidentialTransferMint"; + AuthorityType2[AuthorityType2["TransferHookProgramId"] = 10] = "TransferHookProgramId"; + AuthorityType2[AuthorityType2["ConfidentialTransferFeeConfig"] = 11] = "ConfidentialTransferFeeConfig"; + AuthorityType2[AuthorityType2["MetadataPointer"] = 12] = "MetadataPointer"; + })(AuthorityType || (exports2.AuthorityType = AuthorityType = {})); + exports2.setAuthorityInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("authorityType"), + (0, buffer_layout_1.u8)("newAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("newAuthority") + ]); + function createSetAuthorityInstruction(account, currentAuthority, authorityType, newAuthority, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([{ pubkey: account, isSigner: false, isWritable: true }], currentAuthority, multiSigners); + const data = Buffer.alloc(exports2.setAuthorityInstructionData.span); + exports2.setAuthorityInstructionData.encode({ + instruction: types_js_1.TokenInstruction.SetAuthority, + authorityType, + newAuthorityOption: newAuthority ? 1 : 0, + newAuthority: newAuthority || new web3_js_1.PublicKey(0) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createSetAuthorityInstruction = createSetAuthorityInstruction; + function decodeSetAuthorityInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.setAuthorityInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, currentAuthority, multiSigners }, data } = decodeSetAuthorityInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.SetAuthority) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !currentAuthority) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + currentAuthority, + multiSigners + }, + data + }; + } + exports2.decodeSetAuthorityInstruction = decodeSetAuthorityInstruction; + function decodeSetAuthorityInstructionUnchecked({ programId, keys: [account, currentAuthority, ...multiSigners], data }) { + const { instruction, authorityType, newAuthorityOption, newAuthority } = exports2.setAuthorityInstructionData.decode(data); + return { + programId, + keys: { + account, + currentAuthority, + multiSigners + }, + data: { + instruction, + authorityType, + newAuthority: newAuthorityOption ? newAuthority : null + } + }; + } + exports2.decodeSetAuthorityInstructionUnchecked = decodeSetAuthorityInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/setAuthority.js +var require_setAuthority2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/setAuthority.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.setAuthority = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var setAuthority_js_1 = require_setAuthority(); + var internal_js_1 = require_internal2(); + function setAuthority(connection, payer, account, currentAuthority, authorityType, newAuthority, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [currentAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(currentAuthority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, setAuthority_js_1.createSetAuthorityInstruction)(account, currentAuthorityPublicKey, authorityType, newAuthority, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.setAuthority = setAuthority; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/syncNative.js +var require_syncNative2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/syncNative.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.syncNative = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var syncNative_js_1 = require_syncNative(); + function syncNative(connection, payer, account, confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const transaction = new web3_js_1.Transaction().add((0, syncNative_js_1.createSyncNativeInstruction)(account, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer], confirmOptions); + }); + } + exports2.syncNative = syncNative; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/thawAccount.js +var require_thawAccount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/thawAccount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeThawAccountInstructionUnchecked = exports2.decodeThawAccountInstruction = exports2.createThawAccountInstruction = exports2.thawAccountInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.thawAccountInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction")]); + function createThawAccountInstruction(account, mint, authority, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: false } + ], authority, multiSigners); + const data = Buffer.alloc(exports2.thawAccountInstructionData.span); + exports2.thawAccountInstructionData.encode({ instruction: types_js_1.TokenInstruction.ThawAccount }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createThawAccountInstruction = createThawAccountInstruction; + function decodeThawAccountInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.thawAccountInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, mint, authority, multiSigners }, data } = decodeThawAccountInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.ThawAccount) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !mint || !authority) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + mint, + authority, + multiSigners + }, + data + }; + } + exports2.decodeThawAccountInstruction = decodeThawAccountInstruction; + function decodeThawAccountInstructionUnchecked({ programId, keys: [account, mint, authority, ...multiSigners], data }) { + return { + programId, + keys: { + account, + mint, + authority, + multiSigners + }, + data: exports2.thawAccountInstructionData.decode(data) + }; + } + exports2.decodeThawAccountInstructionUnchecked = decodeThawAccountInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/thawAccount.js +var require_thawAccount2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/thawAccount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.thawAccount = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var thawAccount_js_1 = require_thawAccount(); + var internal_js_1 = require_internal2(); + function thawAccount(connection, payer, account, mint, authority, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [authorityPublicKey, signers] = (0, internal_js_1.getSigners)(authority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, thawAccount_js_1.createThawAccountInstruction)(account, mint, authorityPublicKey, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.thawAccount = thawAccount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/transfer.js +var require_transfer = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/transfer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeTransferInstructionUnchecked = exports2.decodeTransferInstruction = exports2.createTransferInstruction = exports2.transferInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + exports2.transferInstructionData = (0, buffer_layout_1.struct)([(0, buffer_layout_1.u8)("instruction"), (0, buffer_layout_utils_1.u64)("amount")]); + function createTransferInstruction(source, destination, owner, amount, multiSigners = [], programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: source, isSigner: false, isWritable: true }, + { pubkey: destination, isSigner: false, isWritable: true } + ], owner, multiSigners); + const data = Buffer.alloc(exports2.transferInstructionData.span); + exports2.transferInstructionData.encode({ + instruction: types_js_1.TokenInstruction.Transfer, + amount: BigInt(amount) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createTransferInstruction = createTransferInstruction; + function decodeTransferInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.transferInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { source, destination, owner, multiSigners }, data } = decodeTransferInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.Transfer) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!source || !destination || !owner) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + source, + destination, + owner, + multiSigners + }, + data + }; + } + exports2.decodeTransferInstruction = decodeTransferInstruction; + function decodeTransferInstructionUnchecked({ programId, keys: [source, destination, owner, ...multiSigners], data }) { + return { + programId, + keys: { + source, + destination, + owner, + multiSigners + }, + data: exports2.transferInstructionData.decode(data) + }; + } + exports2.decodeTransferInstructionUnchecked = decodeTransferInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/transfer.js +var require_transfer2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/transfer.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.transfer = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var transfer_js_1 = require_transfer(); + var internal_js_1 = require_internal2(); + function transfer(connection, payer, source, destination, owner, amount, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, transfer_js_1.createTransferInstruction)(source, destination, ownerPublicKey, amount, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.transfer = transfer; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/transferChecked.js +var require_transferChecked2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/transferChecked.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.transferChecked = void 0; + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var transferChecked_js_1 = require_transferChecked(); + var internal_js_1 = require_internal2(); + function transferChecked(connection, payer, source, mint, destination, owner, amount, decimals, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [ownerPublicKey, signers] = (0, internal_js_1.getSigners)(owner, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, transferChecked_js_1.createTransferCheckedInstruction)(source, mint, destination, ownerPublicKey, amount, decimals, multiSigners, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.transferChecked = transferChecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/uiAmountToAmount.js +var require_uiAmountToAmount = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/uiAmountToAmount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeUiAmountToAmountInstructionUnchecked = exports2.decodeUiAmountToAmountInstruction = exports2.createUiAmountToAmountInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + function createUiAmountToAmountInstruction(mint, amount, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [{ pubkey: mint, isSigner: false, isWritable: false }]; + const buf = Buffer.from(amount, "utf8"); + const uiAmountToAmountInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.blob)(buf.length, "amount") + ]); + const data = Buffer.alloc(uiAmountToAmountInstructionData.span); + uiAmountToAmountInstructionData.encode({ + instruction: types_js_1.TokenInstruction.UiAmountToAmount, + amount: buf + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createUiAmountToAmountInstruction = createUiAmountToAmountInstruction; + function decodeUiAmountToAmountInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + const uiAmountToAmountInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.blob)(instruction.data.length - 1, "amount") + ]); + if (instruction.data.length !== uiAmountToAmountInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint }, data } = decodeUiAmountToAmountInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.UiAmountToAmount) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint + }, + data + }; + } + exports2.decodeUiAmountToAmountInstruction = decodeUiAmountToAmountInstruction; + function decodeUiAmountToAmountInstructionUnchecked({ programId, keys: [mint], data }) { + const uiAmountToAmountInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.blob)(data.length - 1, "amount") + ]); + return { + programId, + keys: { + mint + }, + data: uiAmountToAmountInstructionData.decode(data) + }; + } + exports2.decodeUiAmountToAmountInstructionUnchecked = decodeUiAmountToAmountInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/uiAmountToAmount.js +var require_uiAmountToAmount2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/uiAmountToAmount.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.uiAmountToAmount = void 0; + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var uiAmountToAmount_js_1 = require_uiAmountToAmount(); + function uiAmountToAmount(connection, payer, mint, amount, programId = constants_js_1.TOKEN_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const transaction = new web3_js_1.Transaction().add((0, uiAmountToAmount_js_1.createUiAmountToAmountInstruction)(mint, amount, programId)); + const { returnData, err } = (yield connection.simulateTransaction(transaction, [payer], false)).value; + if (returnData) { + const data = Buffer.from(returnData.data[0], returnData.data[1]); + return (0, buffer_layout_utils_1.u64)().decode(data); + } + return err; + }); + } + exports2.uiAmountToAmount = uiAmountToAmount; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/actions/index.js +var require_actions6 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/actions/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_amountToUiAmount2(), exports2); + __exportStar2(require_approve2(), exports2); + __exportStar2(require_approveChecked2(), exports2); + __exportStar2(require_burn2(), exports2); + __exportStar2(require_burnChecked2(), exports2); + __exportStar2(require_closeAccount2(), exports2); + __exportStar2(require_createAccount(), exports2); + __exportStar2(require_createAssociatedTokenAccount(), exports2); + __exportStar2(require_createAssociatedTokenAccountIdempotent(), exports2); + __exportStar2(require_createMint(), exports2); + __exportStar2(require_createMultisig(), exports2); + __exportStar2(require_createNativeMint2(), exports2); + __exportStar2(require_createWrappedNativeAccount(), exports2); + __exportStar2(require_freezeAccount2(), exports2); + __exportStar2(require_getOrCreateAssociatedTokenAccount(), exports2); + __exportStar2(require_mintTo2(), exports2); + __exportStar2(require_mintToChecked2(), exports2); + __exportStar2(require_recoverNested(), exports2); + __exportStar2(require_revoke2(), exports2); + __exportStar2(require_setAuthority2(), exports2); + __exportStar2(require_syncNative2(), exports2); + __exportStar2(require_thawAccount2(), exports2); + __exportStar2(require_transfer2(), exports2); + __exportStar2(require_transferChecked2(), exports2); + __exportStar2(require_uiAmountToAmount2(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMint.js +var require_initializeMint = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMint.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializeMintInstructionUnchecked = exports2.decodeInitializeMintInstruction = exports2.createInitializeMintInstruction = exports2.initializeMintInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeMintInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("decimals"), + (0, buffer_layout_utils_1.publicKey)("mintAuthority"), + (0, buffer_layout_1.u8)("freezeAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("freezeAuthority") + ]); + function createInitializeMintInstruction(mint, decimals, mintAuthority, freezeAuthority, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [ + { pubkey: mint, isSigner: false, isWritable: true }, + { pubkey: web3_js_1.SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false } + ]; + const data = Buffer.alloc(exports2.initializeMintInstructionData.span); + exports2.initializeMintInstructionData.encode({ + instruction: types_js_1.TokenInstruction.InitializeMint, + decimals, + mintAuthority, + freezeAuthorityOption: freezeAuthority ? 1 : 0, + freezeAuthority: freezeAuthority || new web3_js_1.PublicKey(0) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeMintInstruction = createInitializeMintInstruction; + function decodeInitializeMintInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeMintInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint, rent }, data } = decodeInitializeMintInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializeMint) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint || !rent) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint, + rent + }, + data + }; + } + exports2.decodeInitializeMintInstruction = decodeInitializeMintInstruction; + function decodeInitializeMintInstructionUnchecked({ programId, keys: [mint, rent], data }) { + const { instruction, decimals, mintAuthority, freezeAuthorityOption, freezeAuthority } = exports2.initializeMintInstructionData.decode(data); + return { + programId, + keys: { + mint, + rent + }, + data: { + instruction, + decimals, + mintAuthority, + freezeAuthority: freezeAuthorityOption ? freezeAuthority : null + } + }; + } + exports2.decodeInitializeMintInstructionUnchecked = decodeInitializeMintInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/interestBearingMint/instructions.js +var require_instructions6 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/interestBearingMint/instructions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createUpdateRateInterestBearingMintInstruction = exports2.createInitializeInterestBearingMintInstruction = exports2.interestBearingMintUpdateRateInstructionData = exports2.interestBearingMintInitializeInstructionData = exports2.InterestBearingMintInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + var InterestBearingMintInstruction; + (function(InterestBearingMintInstruction2) { + InterestBearingMintInstruction2[InterestBearingMintInstruction2["Initialize"] = 0] = "Initialize"; + InterestBearingMintInstruction2[InterestBearingMintInstruction2["UpdateRate"] = 1] = "UpdateRate"; + })(InterestBearingMintInstruction || (exports2.InterestBearingMintInstruction = InterestBearingMintInstruction = {})); + exports2.interestBearingMintInitializeInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("interestBearingMintInstruction"), + // TODO: Make this an optional public key + (0, buffer_layout_utils_1.publicKey)("rateAuthority"), + (0, buffer_layout_1.s16)("rate") + ]); + exports2.interestBearingMintUpdateRateInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("interestBearingMintInstruction"), + (0, buffer_layout_1.s16)("rate") + ]); + function createInitializeInterestBearingMintInstruction(mint, rateAuthority, rate, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.interestBearingMintInitializeInstructionData.span); + exports2.interestBearingMintInitializeInstructionData.encode({ + instruction: types_js_1.TokenInstruction.InterestBearingMintExtension, + interestBearingMintInstruction: InterestBearingMintInstruction.Initialize, + rateAuthority, + rate + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeInterestBearingMintInstruction = createInitializeInterestBearingMintInstruction; + function createUpdateRateInterestBearingMintInstruction(mint, rateAuthority, rate, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + const keys = (0, internal_js_1.addSigners)([ + { pubkey: mint, isSigner: false, isWritable: true }, + { pubkey: rateAuthority, isSigner: !multiSigners.length, isWritable: false } + ], rateAuthority, multiSigners); + const data = Buffer.alloc(exports2.interestBearingMintUpdateRateInstructionData.span); + exports2.interestBearingMintUpdateRateInstructionData.encode({ + instruction: types_js_1.TokenInstruction.InterestBearingMintExtension, + interestBearingMintInstruction: InterestBearingMintInstruction.UpdateRate, + rate + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createUpdateRateInterestBearingMintInstruction = createUpdateRateInterestBearingMintInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/interestBearingMint/actions.js +var require_actions7 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/interestBearingMint/actions.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.updateRateInterestBearingMint = exports2.createInterestBearingMint = void 0; + var web3_js_1 = require_index_cjs(); + var internal_js_1 = require_internal2(); + var constants_js_1 = require_constants8(); + var initializeMint_js_1 = require_initializeMint(); + var extensionType_js_1 = require_extensionType(); + var instructions_js_1 = require_instructions6(); + function createInterestBearingMint(connection, payer, mintAuthority, freezeAuthority, rateAuthority, rate, decimals, keypair = web3_js_1.Keypair.generate(), confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const mintLen = (0, extensionType_js_1.getMintLen)([extensionType_js_1.ExtensionType.InterestBearingConfig]); + const lamports = yield connection.getMinimumBalanceForRentExemption(mintLen); + const transaction = new web3_js_1.Transaction().add(web3_js_1.SystemProgram.createAccount({ + fromPubkey: payer.publicKey, + newAccountPubkey: keypair.publicKey, + space: mintLen, + lamports, + programId + }), (0, instructions_js_1.createInitializeInterestBearingMintInstruction)(keypair.publicKey, rateAuthority, rate, programId), (0, initializeMint_js_1.createInitializeMintInstruction)(keypair.publicKey, decimals, mintAuthority, freezeAuthority, programId)); + yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, keypair], confirmOptions); + return keypair.publicKey; + }); + } + exports2.createInterestBearingMint = createInterestBearingMint; + function updateRateInterestBearingMint(connection, payer, mint, rateAuthority, rate, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [rateAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(rateAuthority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, instructions_js_1.createUpdateRateInterestBearingMintInstruction)(mint, rateAuthorityPublicKey, rate, signers, programId)); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, rateAuthority, ...signers], confirmOptions); + }); + } + exports2.updateRateInterestBearingMint = updateRateInterestBearingMint; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/interestBearingMint/index.js +var require_interestBearingMint = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/interestBearingMint/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_actions7(), exports2); + __exportStar2(require_instructions6(), exports2); + __exportStar2(require_state3(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/metadataPointer/instructions.js +var require_instructions7 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/metadataPointer/instructions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createUpdateMetadataPointerInstruction = exports2.updateMetadataPointerData = exports2.createInitializeMetadataPointerInstruction = exports2.initializeMetadataPointerData = exports2.MetadataPointerInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + var internal_js_1 = require_internal(); + var MetadataPointerInstruction; + (function(MetadataPointerInstruction2) { + MetadataPointerInstruction2[MetadataPointerInstruction2["Initialize"] = 0] = "Initialize"; + MetadataPointerInstruction2[MetadataPointerInstruction2["Update"] = 1] = "Update"; + })(MetadataPointerInstruction || (exports2.MetadataPointerInstruction = MetadataPointerInstruction = {})); + exports2.initializeMetadataPointerData = (0, buffer_layout_1.struct)([ + // prettier-ignore + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("metadataPointerInstruction"), + (0, buffer_layout_utils_1.publicKey)("authority"), + (0, buffer_layout_utils_1.publicKey)("metadataAddress") + ]); + function createInitializeMetadataPointerInstruction(mint, authority, metadataAddress, programId) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.initializeMetadataPointerData.span); + exports2.initializeMetadataPointerData.encode({ + instruction: types_js_1.TokenInstruction.MetadataPointerExtension, + metadataPointerInstruction: MetadataPointerInstruction.Initialize, + authority: authority !== null && authority !== void 0 ? authority : web3_js_1.PublicKey.default, + metadataAddress: metadataAddress !== null && metadataAddress !== void 0 ? metadataAddress : web3_js_1.PublicKey.default + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeMetadataPointerInstruction = createInitializeMetadataPointerInstruction; + exports2.updateMetadataPointerData = (0, buffer_layout_1.struct)([ + // prettier-ignore + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("metadataPointerInstruction"), + (0, buffer_layout_utils_1.publicKey)("metadataAddress") + ]); + function createUpdateMetadataPointerInstruction(mint, authority, metadataAddress, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = (0, internal_js_1.addSigners)([{ pubkey: mint, isSigner: false, isWritable: true }], authority, multiSigners); + const data = Buffer.alloc(exports2.updateMetadataPointerData.span); + exports2.updateMetadataPointerData.encode({ + instruction: types_js_1.TokenInstruction.MetadataPointerExtension, + metadataPointerInstruction: MetadataPointerInstruction.Update, + metadataAddress: metadataAddress !== null && metadataAddress !== void 0 ? metadataAddress : web3_js_1.PublicKey.default + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createUpdateMetadataPointerInstruction = createUpdateMetadataPointerInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/metadataPointer/index.js +var require_metadataPointer = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/metadataPointer/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_instructions7(), exports2); + __exportStar2(require_state5(), exports2); + } +}); + +// node_modules/@solana/spl-token-metadata/lib/cjs/errors.js +var require_errors3 = __commonJS({ + "node_modules/@solana/spl-token-metadata/lib/cjs/errors.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.KeyNotFoundError = exports2.ImmutableMetadataError = exports2.IncorrectUpdateAuthorityError = exports2.IncorrectMintAuthorityError = exports2.MintHasNoMintAuthorityError = exports2.IncorrectAccountError = exports2.TokenMetadataError = void 0; + var TokenMetadataError = class extends Error { + constructor(message) { + super(message); + } + }; + exports2.TokenMetadataError = TokenMetadataError; + var IncorrectAccountError = class extends TokenMetadataError { + constructor() { + super(...arguments); + this.name = "IncorrectAccountError"; + } + }; + exports2.IncorrectAccountError = IncorrectAccountError; + var MintHasNoMintAuthorityError = class extends TokenMetadataError { + constructor() { + super(...arguments); + this.name = "MintHasNoMintAuthorityError"; + } + }; + exports2.MintHasNoMintAuthorityError = MintHasNoMintAuthorityError; + var IncorrectMintAuthorityError = class extends TokenMetadataError { + constructor() { + super(...arguments); + this.name = "IncorrectMintAuthorityError"; + } + }; + exports2.IncorrectMintAuthorityError = IncorrectMintAuthorityError; + var IncorrectUpdateAuthorityError = class extends TokenMetadataError { + constructor() { + super(...arguments); + this.name = "IncorrectUpdateAuthorityError"; + } + }; + exports2.IncorrectUpdateAuthorityError = IncorrectUpdateAuthorityError; + var ImmutableMetadataError = class extends TokenMetadataError { + constructor() { + super(...arguments); + this.name = "ImmutableMetadataError"; + } + }; + exports2.ImmutableMetadataError = ImmutableMetadataError; + var KeyNotFoundError = class extends TokenMetadataError { + constructor() { + super(...arguments); + this.name = "KeyNotFoundError"; + } + }; + exports2.KeyNotFoundError = KeyNotFoundError; + } +}); + +// node_modules/@solana/codecs/node_modules/@solana/codecs-core/node_modules/@solana/errors/dist/index.node.cjs +var require_index_node4 = __commonJS({ + "node_modules/@solana/codecs/node_modules/@solana/codecs-core/node_modules/@solana/errors/dist/index.node.cjs"(exports2) { + "use strict"; + var SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = 1; + var SOLANA_ERROR__INVALID_NONCE = 2; + var SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = 3; + var SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = 4; + var SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = 5; + var SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = 6; + var SOLANA_ERROR__MALFORMED_BIGINT_STRING = 7; + var SOLANA_ERROR__MALFORMED_NUMBER_STRING = 8; + var SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = 9; + var SOLANA_ERROR__JSON_RPC__PARSE_ERROR = -32700; + var SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603; + var SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602; + var SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601; + var SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = -32016; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = -32015; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = -32014; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = -32013; + var SOLANA_ERROR__JSON_RPC__SCAN_ERROR = -32012; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = -32011; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = -32010; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = -32009; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = -32008; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = -32007; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = -32006; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = -32005; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = -32004; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = -32003; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = -32002; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = -32001; + var SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = 28e5; + var SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = 2800001; + var SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = 2800002; + var SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = 2800003; + var SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = 2800004; + var SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = 2800005; + var SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = 2800006; + var SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = 2800007; + var SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = 2800008; + var SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = 2800009; + var SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = 2800010; + var SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = 323e4; + var SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = 32300001; + var SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = 3230002; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = 3230003; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = 3230004; + var SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = 361e4; + var SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = 3610001; + var SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = 3610002; + var SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = 3610003; + var SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = 3610004; + var SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = 3610005; + var SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = 3610006; + var SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = 3610007; + var SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = 3611e3; + var SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = 3704e3; + var SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = 3704001; + var SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = 3704002; + var SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = 3704003; + var SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = 3704004; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = 4128e3; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = 4128001; + var SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = 4128002; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = 4615e3; + var SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = 4615001; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = 4615002; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = 4615003; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = 4615004; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = 4615005; + var SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = 4615006; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = 4615007; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = 4615008; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = 4615009; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = 4615010; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = 4615011; + var SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = 4615012; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = 4615013; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = 4615014; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = 4615015; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = 4615016; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = 4615017; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = 4615018; + var SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = 4615019; + var SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = 4615020; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = 4615021; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = 4615022; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = 4615023; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 4615024; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = 4615025; + var SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = 4615026; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = 4615027; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = 4615028; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = 4615029; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = 4615030; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = 4615031; + var SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = 4615032; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = 4615033; + var SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = 4615034; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = 4615035; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = 4615036; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = 4615037; + var SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = 4615038; + var SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = 4615039; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = 4615040; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = 4615041; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = 4615042; + var SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = 4615043; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = 4615044; + var SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = 4615045; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = 4615046; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = 4615047; + var SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = 4615048; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = 4615049; + var SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = 4615050; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = 4615051; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = 4615052; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = 4615053; + var SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = 4615054; + var SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = 5508e3; + var SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = 5508001; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = 5508002; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = 5508003; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = 5508004; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = 5508005; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = 5508006; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = 5508007; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = 5508008; + var SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = 5508009; + var SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = 5508010; + var SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = 5508011; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = 5663e3; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = 5663001; + var SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = 5663002; + var SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = 5663003; + var SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = 5663004; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = 5663005; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = 5663006; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = 5663007; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = 5663008; + var SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = 5663009; + var SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = 5663010; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = 5663011; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = 5663012; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = 5663013; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = 5663014; + var SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = 5663015; + var SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = 5663016; + var SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = 5663017; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = 5663018; + var SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = 705e4; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = 7050001; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = 7050002; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = 7050003; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = 7050004; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 7050005; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = 7050006; + var SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = 7050007; + var SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = 7050008; + var SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = 7050009; + var SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = 7050010; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = 7050011; + var SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = 7050012; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = 7050013; + var SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = 7050014; + var SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = 7050015; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 7050016; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = 7050017; + var SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = 7050018; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = 7050019; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = 7050020; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = 7050021; + var SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = 7050022; + var SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = 7050023; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = 7050024; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = 7050025; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = 7050026; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = 7050027; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = 7050028; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = 7050029; + var SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = 7050030; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = 7050031; + var SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = 7050032; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 7050033; + var SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = 7050034; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = 7050035; + var SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = 7050036; + var SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = 8078e3; + var SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = 8078001; + var SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = 8078002; + var SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = 8078003; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = 8078004; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = 8078005; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = 8078006; + var SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = 8078007; + var SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = 8078008; + var SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = 8078009; + var SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = 8078010; + var SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = 8078011; + var SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = 8078012; + var SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = 8078013; + var SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = 8078014; + var SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = 8078015; + var SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = 8078016; + var SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = 8078017; + var SOLANA_ERROR__CODECS__INVALID_CONSTANT = 8078018; + var SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = 8078019; + var SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = 8078020; + var SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = 8078021; + var SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = 8078022; + var SOLANA_ERROR__RPC__INTEGER_OVERFLOW = 81e5; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = 8100001; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = 8100002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = 819e4; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = 8190001; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = 8190002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = 8190003; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = 8190004; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = 99e5; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = 9900001; + var SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = 9900002; + var SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = 9900003; + function encodeValue(value) { + if (Array.isArray(value)) { + const commaSeparatedValues = value.map(encodeValue).join( + "%2C%20" + /* ", " */ + ); + return "%5B" + commaSeparatedValues + /* "]" */ + "%5D"; + } else if (typeof value === "bigint") { + return `${value}n`; + } else { + return encodeURIComponent( + String( + value != null && Object.getPrototypeOf(value) === null ? ( + // Plain objects with no prototype don't have a `toString` method. + // Convert them before stringifying them. + { ...value } + ) : value + ) + ); + } + } + function encodeObjectContextEntry([key, value]) { + return `${key}=${encodeValue(value)}`; + } + function encodeContextObject(context) { + const searchParamsString = Object.entries(context).map(encodeObjectContextEntry).join("&"); + return Buffer.from(searchParamsString, "utf8").toString("base64"); + } + var SolanaErrorMessages = { + [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: "Account not found at address: $address", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]: "Not all accounts were decoded. Encoded accounts found at addresses: $addresses.", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: "Expected decoded account at address: $address", + [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: "Failed to decode account data at address: $address", + [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: "Accounts not found at addresses: $addresses", + [SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED]: "Unable to find a viable program address bump seed.", + [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: "$putativeAddress is not a base58-encoded address.", + [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]: "Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY]: "The `CryptoKey` must be an `Ed25519` public key.", + [SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE]: "Invalid seeds; point must fall off the Ed25519 curve.", + [SOLANA_ERROR__ADDRESSES__MALFORMED_PDA]: "Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].", + [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]: "A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.", + [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]: "The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.", + [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]: "Expected program derived address bump to be in the range [0, 255], got: $bump.", + [SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER]: "Program address cannot end with PDA marker.", + [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]: "The network has progressed past the last block for which this transaction could have been committed.", + [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]: "Codec [$codecDescription] cannot decode empty byte arrays.", + [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]: "Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.", + [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]: "Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]: "Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]: "Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH]: "Encoder and decoder must either both be fixed-size or variable-size.", + [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]: "Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.", + [SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH]: "Expected a fixed-size codec, got a variable-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]: "Codec [$codecDescription] expected a positive byte length, got $bytesLength.", + [SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH]: "Expected a variable-size codec, got a fixed-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]: "Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].", + [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]: "Codec [$codecDescription] expected $expected bytes, got $bytesLength.", + [SOLANA_ERROR__CODECS__INVALID_CONSTANT]: "Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].", + [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]: "Invalid discriminated union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]: "Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.", + [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]: "Invalid literal union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]: "Expected [$codecDescription] to have $expected items, got $actual.", + [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: "Invalid value $value for base $base with alphabet $alphabet.", + [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]: "Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.", + [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]: "Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.", + [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]: "Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.", + [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]: "Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].", + [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]: "Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.", + [SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED]: "No random values implementation could be found.", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED]: "instruction requires an uninitialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED]: "instruction tries to borrow reference for an account which is already borrowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "instruction left account with an outstanding borrowed reference", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED]: "program other than the account's owner changed the size of the account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL]: "account data too small for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE]: "instruction expected an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT]: "An account does not have enough lamports to be rent-exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW]: "Program arithmetic overflowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: "Failed to serialize or deserialize account data: $encodedData", + [SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS]: "Builtin programs must consume compute units", + [SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH]: "Cross-program invocation call depth too deep", + [SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED]: "Computational budget exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: "custom program error: #$code", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX]: "instruction contains duplicate accounts", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC]: "instruction modifications of multiply-passed account differ", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT]: "executable accounts must be rent exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED]: "instruction changed executable accounts data", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE]: "instruction changed the balance of an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED]: "instruction changed executable bit of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED]: "instruction modified data of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND]: "instruction spent from the balance of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR]: "generic instruction error", + [SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER]: "Provided owner is not allowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE]: "Account is immutable", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY]: "Incorrect authority provided", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID]: "incorrect program id for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS]: "insufficient funds for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA]: "invalid account data for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER]: "Invalid account owner", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT]: "invalid program argument", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR]: "program returned invalid error code", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA]: "invalid instruction data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC]: "Failed to reallocate account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS]: "Provided seeds do not result in a valid address", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED]: "Accounts data allocations exceeded the maximum allowed per transaction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED]: "Max accounts exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED]: "Max instruction trace length exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED]: "Length of the seed is too long for address generation", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT]: "An account required by the instruction is missing", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE]: "missing required signature for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID]: "instruction illegally modified the program id of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS]: "insufficient account keys for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION]: "Cross-program invocation with unauthorized signer or writable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE]: "Failed to create program execution environment", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE]: "Program failed to compile", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE]: "Program failed to complete", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED]: "instruction modified data of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE]: "instruction changed the balance of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED]: "Cross-program invocation reentrancy not allowed for this instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED]: "instruction modified rent epoch of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION]: "sum of account balances before and after instruction do not match", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT]: "instruction requires an initialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: "", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID]: "Unsupported program id", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR]: "Unsupported sysvar", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: "The instruction does not have any accounts.", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: "The instruction does not have any data.", + [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]: "Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.", + [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]: "Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__INVALID_NONCE]: "The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`", + [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]: "Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]: "Invariant violation: Switch statement non-exhaustive. Received unexpected value `$unexpectedValue`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE]: "Invariant violation: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING]: "Invariant violation: WebSocket message iterator is missing state storage. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: "JSON-RPC error: Internal JSON-RPC error ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: "JSON-RPC error: Invalid method parameter(s) ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]: "JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]: "JSON-RPC error: The method does not exist / is not available ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]: "JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: "Minimum context slot has not been reached", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: "Node is unhealthy; behind by $numSlotsBehind slots", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT]: "No snapshot", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: "Transaction simulation failed", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE]: "Transaction history is not available from this node", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH]: "Transaction signature length mismatch", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE]: "Transaction signature verification failure", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: "$__serverMessage", + [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: "Key pair bytes must be of length 64, got $byteLength.", + [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]: "Expected private key bytes with length 32. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]: "Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY]: "The provided private key does not match the provided public key.", + [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.", + [SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE]: "Lamports value must be in the range [0, 2e64-1]", + [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: "`$value` cannot be parsed as a `BigInt`", + [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: "`$value` cannot be parsed as a `Number`", + [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: "No nonce account could be found at address `$nonceAccountAddress`", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST]: "Either the notification name must end in 'Notifications' or the API must supply a subscription creator function for the notification '$notificationName' to map between the notification name and the subscribe/unsubscribe method names.", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID]: "Failed to obtain a subscription id from the server", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED]: "WebSocket was closed before payload could be added to the send buffer", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED]: "WebSocket connection closed", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT]: "WebSocket failed to connect", + [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]: "The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was `$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds `Number.MAX_SAFE_INTEGER`.", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: "HTTP error ($statusCode): $message", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]: "HTTP header(s) forbidden: $headers. Learn more at https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.", + [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]: "Multiple distinct signers were identified for address `$address`. Please ensure that you are using the same signer instance for each address.", + [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]: "The provided value does not implement the `KeyPairSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]: "The provided value does not implement the `MessageModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]: "The provided value does not implement the `MessagePartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]: "The provided value does not implement any of the `MessageSigner` interfaces", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]: "The provided value does not implement the `TransactionModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]: "The provided value does not implement the `TransactionPartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]: "The provided value does not implement the `TransactionSendingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]: "The provided value does not implement any of the `TransactionSigner` interfaces", + [SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS]: "More than one `TransactionSendingSigner` was identified.", + [SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING]: "No `TransactionSendingSigner` was identified. Please provide a valid `ITransactionWithSingleSendingSigner` transaction.", + [SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED]: "Wallet account signers do not support signing multiple messages/transactions in a single operation", + [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: "Cannot export a non-extractable key.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED]: "No digest implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT]: "Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.", + [SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED]: "This runtime does not support the generation of Ed25519 key pairs.\n\nInstall @solana/webcrypto-ed25519-polyfill and call its `install` function before generating keys in environments that do not support Ed25519.\n\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.", + [SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED]: "No signature verification implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED]: "No key generation implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED]: "No signing implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED]: "No key export implementation could be found.", + [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]: "Timestamp value must be in the range [-8.64e15, 8.64e15]. `$value` given", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "Transaction processing left an account with an outstanding borrowed reference", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE]: "Account in use", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE]: "Account loaded twice", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND]: "Attempt to debit an account but found no record of a prior credit.", + [SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND]: "Transaction loads an address table account that doesn't exist", + [SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED]: "This transaction has already been processed", + [SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND]: "Blockhash not found", + [SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP]: "Loader call chain is too deep", + [SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE]: "Transactions are currently disabled due to cluster maintenance", + [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]: "Transaction contains a duplicate instruction ($index) that is not allowed", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: "Insufficient funds for fee", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]: "Transaction results in an account ($accountIndex) with insufficient funds for rent", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE]: "This account may not be used to pay transaction fees", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX]: "Transaction contains an invalid account reference", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA]: "Transaction loads an address table account with invalid data", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX]: "Transaction address table lookup uses an invalid index", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER]: "Transaction loads an address table account with an invalid owner", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT]: "LoadedAccountsDataSizeLimit set for transaction must be greater than 0.", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION]: "This program may not be used for executing instructions", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT]: "Transaction leaves an account with a lower balance than rent-exempt minimum", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT]: "Transaction loads a writable account that cannot be written", + [SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED]: "Transaction exceeded max loaded accounts data size cap", + [SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE]: "Transaction requires a fee but has no signature present", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND]: "Attempt to load a program that does not exist", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]: "Execution of the program referenced by account at index $accountIndex is temporarily restricted.", + [SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED]: "ResanitizationNeeded", + [SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE]: "Transaction failed to sanitize accounts offsets correctly", + [SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE]: "Transaction did not pass signature verification", + [SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS]: "Transaction locked too many accounts", + [SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION]: "Sum of account balances before and after transaction do not match", + [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: "The transaction failed with the error `$errorName`", + [SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION]: "Transaction version is unsupported", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT]: "Transaction would exceed account data limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT]: "Transaction would exceed total account data limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT]: "Transaction would exceed max account limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT]: "Transaction would exceed max Block Cost Limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT]: "Transaction would exceed max Vote Cost Limit", + [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]: "Attempted to sign a transaction with an address that is not a signer for it", + [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: "Transaction is missing an address at index: $index.", + [SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES]: "Transaction has no expected signers therefore it cannot be encoded", + [SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME]: "Transaction does not have a blockhash lifetime", + [SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME]: "Transaction is not a durable nonce transaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]: "Contents of these address lookup tables unknown: $lookupTableAddresses", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]: "Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING]: "No fee payer set in CompiledTransaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]: "Could not find program address at index $index", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT]: "Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING]: "Transaction is missing a fee payer.", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING]: "Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE]: "Transaction first instruction is not advance nonce account instruction.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING]: "Transaction with no instructions cannot be durable nonce transaction.", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]: "This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]: "This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable", + [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]: "The transaction message expected the transaction to have $signerAddressesLength signatures, got $signaturesLength.", + [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: "Transaction is missing signatures for addresses: $addresses.", + [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]: "Transaction version must be in the range [0, 127]. `$actualVersion` given" + }; + var START_INDEX = "i"; + var TYPE = "t"; + function getHumanReadableErrorMessage(code, context = {}) { + const messageFormatString = SolanaErrorMessages[code]; + if (messageFormatString.length === 0) { + return ""; + } + let state; + function commitStateUpTo(endIndex) { + if (state[TYPE] === 2) { + const variableName = messageFormatString.slice(state[START_INDEX] + 1, endIndex); + fragments.push( + variableName in context ? `${context[variableName]}` : `$${variableName}` + ); + } else if (state[TYPE] === 1) { + fragments.push(messageFormatString.slice(state[START_INDEX], endIndex)); + } + } + const fragments = []; + messageFormatString.split("").forEach((char, ii) => { + if (ii === 0) { + state = { + [START_INDEX]: 0, + [TYPE]: messageFormatString[0] === "\\" ? 0 : messageFormatString[0] === "$" ? 2 : 1 + /* Text */ + }; + return; + } + let nextState; + switch (state[TYPE]) { + case 0: + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + break; + case 1: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } + break; + case 2: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } else if (!char.match(/\w/)) { + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + } + break; + } + if (nextState) { + if (state !== nextState) { + commitStateUpTo(ii); + } + state = nextState; + } + }); + commitStateUpTo(); + return fragments.join(""); + } + function getErrorMessage(code, context = {}) { + if (process.env.NODE_ENV !== "production") { + return getHumanReadableErrorMessage(code, context); + } else { + let decodingAdviceMessage = `Solana error #${code}; Decode this error by running \`npx @solana/errors decode -- ${code}`; + if (Object.keys(context).length) { + decodingAdviceMessage += ` '${encodeContextObject(context)}'`; + } + return `${decodingAdviceMessage}\``; + } + } + function isSolanaError(e, code) { + const isSolanaError2 = e instanceof Error && e.name === "SolanaError"; + if (isSolanaError2) { + if (code !== void 0) { + return e.context.__code === code; + } + return true; + } + return false; + } + var SolanaError = class extends Error { + cause = this.cause; + context; + constructor(...[code, contextAndErrorOptions]) { + let context; + let errorOptions; + if (contextAndErrorOptions) { + const { cause, ...contextRest } = contextAndErrorOptions; + if (cause) { + errorOptions = { cause }; + } + if (Object.keys(contextRest).length > 0) { + context = contextRest; + } + } + const message = getErrorMessage(code, context); + super(message, errorOptions); + this.context = { + __code: code, + ...context + }; + this.name = "SolanaError"; + } + }; + function safeCaptureStackTrace(...args) { + if ("captureStackTrace" in Error && typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(...args); + } + } + function getSolanaErrorFromRpcError({ errorCodeBaseOffset, getErrorContext, orderedErrorNames, rpcEnumError }, constructorOpt) { + let rpcErrorName; + let rpcErrorContext; + if (typeof rpcEnumError === "string") { + rpcErrorName = rpcEnumError; + } else { + rpcErrorName = Object.keys(rpcEnumError)[0]; + rpcErrorContext = rpcEnumError[rpcErrorName]; + } + const codeOffset = orderedErrorNames.indexOf(rpcErrorName); + const errorCode = errorCodeBaseOffset + codeOffset; + const errorContext = getErrorContext(errorCode, rpcErrorName, rpcErrorContext); + const err = new SolanaError(errorCode, errorContext); + safeCaptureStackTrace(err, constructorOpt); + return err; + } + var ORDERED_ERROR_NAMES = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/program/src/instruction.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "GenericError", + "InvalidArgument", + "InvalidInstructionData", + "InvalidAccountData", + "AccountDataTooSmall", + "InsufficientFunds", + "IncorrectProgramId", + "MissingRequiredSignature", + "AccountAlreadyInitialized", + "UninitializedAccount", + "UnbalancedInstruction", + "ModifiedProgramId", + "ExternalAccountLamportSpend", + "ExternalAccountDataModified", + "ReadonlyLamportChange", + "ReadonlyDataModified", + "DuplicateAccountIndex", + "ExecutableModified", + "RentEpochModified", + "NotEnoughAccountKeys", + "AccountDataSizeChanged", + "AccountNotExecutable", + "AccountBorrowFailed", + "AccountBorrowOutstanding", + "DuplicateAccountOutOfSync", + "Custom", + "InvalidError", + "ExecutableDataModified", + "ExecutableLamportChange", + "ExecutableAccountNotRentExempt", + "UnsupportedProgramId", + "CallDepth", + "MissingAccount", + "ReentrancyNotAllowed", + "MaxSeedLengthExceeded", + "InvalidSeeds", + "InvalidRealloc", + "ComputationalBudgetExceeded", + "PrivilegeEscalation", + "ProgramEnvironmentSetupFailure", + "ProgramFailedToComplete", + "ProgramFailedToCompile", + "Immutable", + "IncorrectAuthority", + "BorshIoError", + "AccountNotRentExempt", + "InvalidAccountOwner", + "ArithmeticOverflow", + "UnsupportedSysvar", + "IllegalOwner", + "MaxAccountsDataAllocationsExceeded", + "MaxAccountsExceeded", + "MaxInstructionTraceLengthExceeded", + "BuiltinProgramsMustConsumeComputeUnits" + ]; + function getSolanaErrorFromInstructionError(index, instructionError) { + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 4615001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + index, + ...rpcErrorContext !== void 0 ? { instructionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM) { + return { + code: rpcErrorContext, + index + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR) { + return { + encodedData: rpcErrorContext, + index + }; + } + return { index }; + }, + orderedErrorNames: ORDERED_ERROR_NAMES, + rpcEnumError: instructionError + }, + getSolanaErrorFromInstructionError + ); + } + var ORDERED_ERROR_NAMES2 = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/src/transaction/error.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "AccountInUse", + "AccountLoadedTwice", + "AccountNotFound", + "ProgramAccountNotFound", + "InsufficientFundsForFee", + "InvalidAccountForFee", + "AlreadyProcessed", + "BlockhashNotFound", + // `InstructionError` intentionally omitted; delegated to `getSolanaErrorFromInstructionError` + "CallChainTooDeep", + "MissingSignatureForFee", + "InvalidAccountIndex", + "SignatureFailure", + "InvalidProgramForExecution", + "SanitizeFailure", + "ClusterMaintenance", + "AccountBorrowOutstanding", + "WouldExceedMaxBlockCostLimit", + "UnsupportedVersion", + "InvalidWritableAccount", + "WouldExceedMaxAccountCostLimit", + "WouldExceedAccountDataBlockLimit", + "TooManyAccountLocks", + "AddressLookupTableNotFound", + "InvalidAddressLookupTableOwner", + "InvalidAddressLookupTableData", + "InvalidAddressLookupTableIndex", + "InvalidRentPayingAccount", + "WouldExceedMaxVoteCostLimit", + "WouldExceedAccountDataTotalLimit", + "DuplicateInstruction", + "InsufficientFundsForRent", + "MaxLoadedAccountsDataSizeExceeded", + "InvalidLoadedAccountsDataSizeLimit", + "ResanitizationNeeded", + "ProgramExecutionTemporarilyRestricted", + "UnbalancedTransaction" + ]; + function getSolanaErrorFromTransactionError(transactionError) { + if (typeof transactionError === "object" && "InstructionError" in transactionError) { + return getSolanaErrorFromInstructionError( + ...transactionError.InstructionError + ); + } + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 7050001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + ...rpcErrorContext !== void 0 ? { transactionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION) { + return { + index: rpcErrorContext + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT || errorCode === SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED) { + return { + accountIndex: rpcErrorContext.account_index + }; + } + }, + orderedErrorNames: ORDERED_ERROR_NAMES2, + rpcEnumError: transactionError + }, + getSolanaErrorFromTransactionError + ); + } + function getSolanaErrorFromJsonRpcError({ code, data, message }) { + let out; + if (code === SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE) { + const { err, ...preflightErrorContext } = data; + const causeObject = err ? { cause: getSolanaErrorFromTransactionError(err) } : null; + out = new SolanaError(SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, { + ...preflightErrorContext, + ...causeObject + }); + } else { + let errorContext; + switch (code) { + case SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR: + case SOLANA_ERROR__JSON_RPC__INVALID_PARAMS: + case SOLANA_ERROR__JSON_RPC__INVALID_REQUEST: + case SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND: + case SOLANA_ERROR__JSON_RPC__PARSE_ERROR: + case SOLANA_ERROR__JSON_RPC__SCAN_ERROR: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: + errorContext = { __serverMessage: message }; + break; + default: + if (typeof data === "object" && !Array.isArray(data)) { + errorContext = data; + } + } + out = new SolanaError(code, errorContext); + } + safeCaptureStackTrace(out, getSolanaErrorFromJsonRpcError); + return out; + } + exports2.SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND; + exports2.SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE; + exports2.SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = SOLANA_ERROR__ADDRESSES__MALFORMED_PDA; + exports2.SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE; + exports2.SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER; + exports2.SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED; + exports2.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY; + exports2.SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS; + exports2.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE; + exports2.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__INVALID_CONSTANT = SOLANA_ERROR__CODECS__INVALID_CONSTANT; + exports2.SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS; + exports2.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE; + exports2.SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES; + exports2.SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA; + exports2.SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH; + exports2.SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH; + exports2.SOLANA_ERROR__INVALID_NONCE = SOLANA_ERROR__INVALID_NONCE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING; + exports2.SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = SOLANA_ERROR__JSON_RPC__INVALID_PARAMS; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = SOLANA_ERROR__JSON_RPC__INVALID_REQUEST; + exports2.SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND; + exports2.SOLANA_ERROR__JSON_RPC__PARSE_ERROR = SOLANA_ERROR__JSON_RPC__PARSE_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SCAN_ERROR = SOLANA_ERROR__JSON_RPC__SCAN_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION; + exports2.SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY; + exports2.SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE; + exports2.SOLANA_ERROR__MALFORMED_BIGINT_STRING = SOLANA_ERROR__MALFORMED_BIGINT_STRING; + exports2.SOLANA_ERROR__MALFORMED_NUMBER_STRING = SOLANA_ERROR__MALFORMED_NUMBER_STRING; + exports2.SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT; + exports2.SOLANA_ERROR__RPC__INTEGER_OVERFLOW = SOLANA_ERROR__RPC__INTEGER_OVERFLOW; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN; + exports2.SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING; + exports2.SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE; + exports2.SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH; + exports2.SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE; + exports2.SolanaError = SolanaError; + exports2.getSolanaErrorFromInstructionError = getSolanaErrorFromInstructionError; + exports2.getSolanaErrorFromJsonRpcError = getSolanaErrorFromJsonRpcError; + exports2.getSolanaErrorFromTransactionError = getSolanaErrorFromTransactionError; + exports2.isSolanaError = isSolanaError; + exports2.safeCaptureStackTrace = safeCaptureStackTrace; + } +}); + +// node_modules/@solana/codecs/node_modules/@solana/codecs-core/dist/index.node.cjs +var require_index_node5 = __commonJS({ + "node_modules/@solana/codecs/node_modules/@solana/codecs-core/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node4(); + var mergeBytes = (byteArrays) => { + const nonEmptyByteArrays = byteArrays.filter((arr) => arr.length); + if (nonEmptyByteArrays.length === 0) { + return byteArrays.length ? byteArrays[0] : new Uint8Array(); + } + if (nonEmptyByteArrays.length === 1) { + return nonEmptyByteArrays[0]; + } + const totalLength = nonEmptyByteArrays.reduce((total, arr) => total + arr.length, 0); + const result = new Uint8Array(totalLength); + let offset = 0; + nonEmptyByteArrays.forEach((arr) => { + result.set(arr, offset); + offset += arr.length; + }); + return result; + }; + var padBytes = (bytes7, length) => { + if (bytes7.length >= length) return bytes7; + const paddedBytes = new Uint8Array(length).fill(0); + paddedBytes.set(bytes7); + return paddedBytes; + }; + var fixBytes = (bytes7, length) => padBytes(bytes7.length <= length ? bytes7 : bytes7.slice(0, length), length); + function containsBytes(data, bytes7, offset) { + const slice = offset === 0 && data.length === bytes7.length ? data : data.slice(offset, offset + bytes7.length); + if (slice.length !== bytes7.length) return false; + return bytes7.every((b, i) => b === slice[i]); + } + function getEncodedSize(value, encoder) { + return "fixedSize" in encoder ? encoder.fixedSize : encoder.getSizeFromValue(value); + } + function createEncoder(encoder) { + return Object.freeze({ + ...encoder, + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, encoder)); + encoder.write(value, bytes7, 0); + return bytes7; + } + }); + } + function createDecoder(decoder) { + return Object.freeze({ + ...decoder, + decode: (bytes7, offset = 0) => decoder.read(bytes7, offset)[0] + }); + } + function createCodec(codec) { + return Object.freeze({ + ...codec, + decode: (bytes7, offset = 0) => codec.read(bytes7, offset)[0], + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, codec)); + codec.write(value, bytes7, 0); + return bytes7; + } + }); + } + function isFixedSize(codec) { + return "fixedSize" in codec && typeof codec.fixedSize === "number"; + } + function assertIsFixedSize(codec) { + if (!isFixedSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH); + } + } + function isVariableSize(codec) { + return !isFixedSize(codec); + } + function assertIsVariableSize(codec) { + if (!isVariableSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH); + } + } + function combineCodec(encoder, decoder) { + if (isFixedSize(encoder) !== isFixedSize(decoder)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH); + } + if (isFixedSize(encoder) && isFixedSize(decoder) && encoder.fixedSize !== decoder.fixedSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH, { + decoderFixedSize: decoder.fixedSize, + encoderFixedSize: encoder.fixedSize + }); + } + if (!isFixedSize(encoder) && !isFixedSize(decoder) && encoder.maxSize !== decoder.maxSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH, { + decoderMaxSize: decoder.maxSize, + encoderMaxSize: encoder.maxSize + }); + } + return { + ...decoder, + ...encoder, + decode: decoder.decode, + encode: encoder.encode, + read: decoder.read, + write: encoder.write + }; + } + function addEncoderSentinel(encoder, sentinel) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + if (findSentinelIndex(encoderBytes, sentinel) >= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL, { + encodedBytes: encoderBytes, + hexEncodedBytes: hexBytes(encoderBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + bytes7.set(encoderBytes, offset); + offset += encoderBytes.length; + bytes7.set(sentinel, offset); + offset += sentinel.length; + return offset; + }; + if (isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: encoder.fixedSize + sentinel.length, write }); + } + return createEncoder({ + ...encoder, + ...encoder.maxSize != null ? { maxSize: encoder.maxSize + sentinel.length } : {}, + getSizeFromValue: (value) => encoder.getSizeFromValue(value) + sentinel.length, + write + }); + } + function addDecoderSentinel(decoder, sentinel) { + const read = (bytes7, offset) => { + const candidateBytes = offset === 0 ? bytes7 : bytes7.slice(offset); + const sentinelIndex = findSentinelIndex(candidateBytes, sentinel); + if (sentinelIndex === -1) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES, { + decodedBytes: candidateBytes, + hexDecodedBytes: hexBytes(candidateBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + const preSentinelBytes = candidateBytes.slice(0, sentinelIndex); + return [decoder.decode(preSentinelBytes), offset + preSentinelBytes.length + sentinel.length]; + }; + if (isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: decoder.fixedSize + sentinel.length, read }); + } + return createDecoder({ + ...decoder, + ...decoder.maxSize != null ? { maxSize: decoder.maxSize + sentinel.length } : {}, + read + }); + } + function addCodecSentinel(codec, sentinel) { + return combineCodec(addEncoderSentinel(codec, sentinel), addDecoderSentinel(codec, sentinel)); + } + function findSentinelIndex(bytes7, sentinel) { + return bytes7.findIndex((byte, index, arr) => { + if (sentinel.length === 1) return byte === sentinel[0]; + return containsBytes(arr, sentinel, index); + }); + } + function hexBytes(bytes7) { + return bytes7.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); + } + function assertByteArrayIsNotEmptyForCodec(codecDescription, bytes7, offset = 0) { + if (bytes7.length - offset <= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY, { + codecDescription + }); + } + } + function assertByteArrayHasEnoughBytesForCodec(codecDescription, expected, bytes7, offset = 0) { + const bytesLength = bytes7.length - offset; + if (bytesLength < expected) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH, { + bytesLength, + codecDescription, + expected + }); + } + } + function assertByteArrayOffsetIsNotOutOfRange(codecDescription, offset, bytesLength) { + if (offset < 0 || offset > bytesLength) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE, { + bytesLength, + codecDescription, + offset + }); + } + } + function addEncoderSizePrefix(encoder, prefix) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + offset = prefix.write(encoderBytes.length, bytes7, offset); + bytes7.set(encoderBytes, offset); + return offset + encoderBytes.length; + }; + if (isFixedSize(prefix) && isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: prefix.fixedSize + encoder.fixedSize, write }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const encoderMaxSize = isFixedSize(encoder) ? encoder.fixedSize : encoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && encoderMaxSize !== null ? prefixMaxSize + encoderMaxSize : null; + return createEncoder({ + ...encoder, + ...maxSize !== null ? { maxSize } : {}, + getSizeFromValue: (value) => { + const encoderSize = getEncodedSize(value, encoder); + return getEncodedSize(encoderSize, prefix) + encoderSize; + }, + write + }); + } + function addDecoderSizePrefix(decoder, prefix) { + const read = (bytes7, offset) => { + const [bigintSize, decoderOffset] = prefix.read(bytes7, offset); + const size = Number(bigintSize); + offset = decoderOffset; + if (offset > 0 || bytes7.length > size) { + bytes7 = bytes7.slice(offset, offset + size); + } + assertByteArrayHasEnoughBytesForCodec("addDecoderSizePrefix", size, bytes7); + return [decoder.decode(bytes7), offset + size]; + }; + if (isFixedSize(prefix) && isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: prefix.fixedSize + decoder.fixedSize, read }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const decoderMaxSize = isFixedSize(decoder) ? decoder.fixedSize : decoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && decoderMaxSize !== null ? prefixMaxSize + decoderMaxSize : null; + return createDecoder({ ...decoder, ...maxSize !== null ? { maxSize } : {}, read }); + } + function addCodecSizePrefix(codec, prefix) { + return combineCodec(addEncoderSizePrefix(codec, prefix), addDecoderSizePrefix(codec, prefix)); + } + function fixEncoderSize(encoder, fixedBytes) { + return createEncoder({ + fixedSize: fixedBytes, + write: (value, bytes7, offset) => { + const variableByteArray = encoder.encode(value); + const fixedByteArray = variableByteArray.length > fixedBytes ? variableByteArray.slice(0, fixedBytes) : variableByteArray; + bytes7.set(fixedByteArray, offset); + return offset + fixedBytes; + } + }); + } + function fixDecoderSize(decoder, fixedBytes) { + return createDecoder({ + fixedSize: fixedBytes, + read: (bytes7, offset) => { + assertByteArrayHasEnoughBytesForCodec("fixCodecSize", fixedBytes, bytes7, offset); + if (offset > 0 || bytes7.length > fixedBytes) { + bytes7 = bytes7.slice(offset, offset + fixedBytes); + } + if (isFixedSize(decoder)) { + bytes7 = fixBytes(bytes7, decoder.fixedSize); + } + const [value] = decoder.read(bytes7, 0); + return [value, offset + fixedBytes]; + } + }); + } + function fixCodecSize(codec, fixedBytes) { + return combineCodec(fixEncoderSize(codec, fixedBytes), fixDecoderSize(codec, fixedBytes)); + } + function offsetEncoder(encoder, config) { + return createEncoder({ + ...encoder, + write: (value, bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPreOffset, bytes7.length); + const postOffset = encoder.write(value, bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPostOffset, bytes7.length); + return newPostOffset; + } + }); + } + function offsetDecoder(decoder, config) { + return createDecoder({ + ...decoder, + read: (bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPreOffset, bytes7.length); + const [value, postOffset] = decoder.read(bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPostOffset, bytes7.length); + return [value, newPostOffset]; + } + }); + } + function offsetCodec(codec, config) { + return combineCodec(offsetEncoder(codec, config), offsetDecoder(codec, config)); + } + function modulo(dividend, divisor) { + if (divisor === 0) return 0; + return (dividend % divisor + divisor) % divisor; + } + function resizeEncoder(encoder, resize) { + if (isFixedSize(encoder)) { + const fixedSize = resize(encoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeEncoder" + }); + } + return createEncoder({ ...encoder, fixedSize }); + } + return createEncoder({ + ...encoder, + getSizeFromValue: (value) => { + const newSize = resize(encoder.getSizeFromValue(value)); + if (newSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: newSize, + codecDescription: "resizeEncoder" + }); + } + return newSize; + } + }); + } + function resizeDecoder(decoder, resize) { + if (isFixedSize(decoder)) { + const fixedSize = resize(decoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeDecoder" + }); + } + return createDecoder({ ...decoder, fixedSize }); + } + return decoder; + } + function resizeCodec(codec, resize) { + return combineCodec(resizeEncoder(codec, resize), resizeDecoder(codec, resize)); + } + function padLeftEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftCodec(codec, offset) { + return combineCodec(padLeftEncoder(codec, offset), padLeftDecoder(codec, offset)); + } + function padRightCodec(codec, offset) { + return combineCodec(padRightEncoder(codec, offset), padRightDecoder(codec, offset)); + } + function copySourceToTargetInReverse(source, target_WILL_MUTATE, sourceOffset, sourceLength, targetOffset = 0) { + while (sourceOffset < --sourceLength) { + const leftValue = source[sourceOffset]; + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceLength]; + target_WILL_MUTATE[sourceLength + targetOffset] = leftValue; + sourceOffset++; + } + if (sourceOffset === sourceLength) { + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceOffset]; + } + } + function reverseEncoder(encoder) { + assertIsFixedSize(encoder); + return createEncoder({ + ...encoder, + write: (value, bytes7, offset) => { + const newOffset = encoder.write(value, bytes7, offset); + copySourceToTargetInReverse( + bytes7, + bytes7, + offset, + offset + encoder.fixedSize + ); + return newOffset; + } + }); + } + function reverseDecoder(decoder) { + assertIsFixedSize(decoder); + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const reversedBytes = bytes7.slice(); + copySourceToTargetInReverse( + bytes7, + reversedBytes, + offset, + offset + decoder.fixedSize + ); + return decoder.read(reversedBytes, offset); + } + }); + } + function reverseCodec(codec) { + return combineCodec(reverseEncoder(codec), reverseDecoder(codec)); + } + function transformEncoder(encoder, unmap) { + return createEncoder({ + ...isVariableSize(encoder) ? { ...encoder, getSizeFromValue: (value) => encoder.getSizeFromValue(unmap(value)) } : encoder, + write: (value, bytes7, offset) => encoder.write(unmap(value), bytes7, offset) + }); + } + function transformDecoder(decoder, map) { + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const [value, newOffset] = decoder.read(bytes7, offset); + return [map(value, bytes7, offset), newOffset]; + } + }); + } + function transformCodec(codec, unmap, map) { + return createCodec({ + ...transformEncoder(codec, unmap), + read: map ? transformDecoder(codec, map).read : codec.read + }); + } + exports2.addCodecSentinel = addCodecSentinel; + exports2.addCodecSizePrefix = addCodecSizePrefix; + exports2.addDecoderSentinel = addDecoderSentinel; + exports2.addDecoderSizePrefix = addDecoderSizePrefix; + exports2.addEncoderSentinel = addEncoderSentinel; + exports2.addEncoderSizePrefix = addEncoderSizePrefix; + exports2.assertByteArrayHasEnoughBytesForCodec = assertByteArrayHasEnoughBytesForCodec; + exports2.assertByteArrayIsNotEmptyForCodec = assertByteArrayIsNotEmptyForCodec; + exports2.assertByteArrayOffsetIsNotOutOfRange = assertByteArrayOffsetIsNotOutOfRange; + exports2.assertIsFixedSize = assertIsFixedSize; + exports2.assertIsVariableSize = assertIsVariableSize; + exports2.combineCodec = combineCodec; + exports2.containsBytes = containsBytes; + exports2.createCodec = createCodec; + exports2.createDecoder = createDecoder; + exports2.createEncoder = createEncoder; + exports2.fixBytes = fixBytes; + exports2.fixCodecSize = fixCodecSize; + exports2.fixDecoderSize = fixDecoderSize; + exports2.fixEncoderSize = fixEncoderSize; + exports2.getEncodedSize = getEncodedSize; + exports2.isFixedSize = isFixedSize; + exports2.isVariableSize = isVariableSize; + exports2.mergeBytes = mergeBytes; + exports2.offsetCodec = offsetCodec; + exports2.offsetDecoder = offsetDecoder; + exports2.offsetEncoder = offsetEncoder; + exports2.padBytes = padBytes; + exports2.padLeftCodec = padLeftCodec; + exports2.padLeftDecoder = padLeftDecoder; + exports2.padLeftEncoder = padLeftEncoder; + exports2.padRightCodec = padRightCodec; + exports2.padRightDecoder = padRightDecoder; + exports2.padRightEncoder = padRightEncoder; + exports2.resizeCodec = resizeCodec; + exports2.resizeDecoder = resizeDecoder; + exports2.resizeEncoder = resizeEncoder; + exports2.reverseCodec = reverseCodec; + exports2.reverseDecoder = reverseDecoder; + exports2.reverseEncoder = reverseEncoder; + exports2.transformCodec = transformCodec; + exports2.transformDecoder = transformDecoder; + exports2.transformEncoder = transformEncoder; + } +}); + +// node_modules/@solana/codecs-data-structures/node_modules/@solana/errors/dist/index.node.cjs +var require_index_node6 = __commonJS({ + "node_modules/@solana/codecs-data-structures/node_modules/@solana/errors/dist/index.node.cjs"(exports2) { + "use strict"; + var SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = 1; + var SOLANA_ERROR__INVALID_NONCE = 2; + var SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = 3; + var SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = 4; + var SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = 5; + var SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = 6; + var SOLANA_ERROR__MALFORMED_BIGINT_STRING = 7; + var SOLANA_ERROR__MALFORMED_NUMBER_STRING = 8; + var SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = 9; + var SOLANA_ERROR__JSON_RPC__PARSE_ERROR = -32700; + var SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603; + var SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602; + var SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601; + var SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = -32016; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = -32015; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = -32014; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = -32013; + var SOLANA_ERROR__JSON_RPC__SCAN_ERROR = -32012; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = -32011; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = -32010; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = -32009; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = -32008; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = -32007; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = -32006; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = -32005; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = -32004; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = -32003; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = -32002; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = -32001; + var SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = 28e5; + var SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = 2800001; + var SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = 2800002; + var SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = 2800003; + var SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = 2800004; + var SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = 2800005; + var SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = 2800006; + var SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = 2800007; + var SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = 2800008; + var SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = 2800009; + var SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = 2800010; + var SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = 323e4; + var SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = 32300001; + var SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = 3230002; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = 3230003; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = 3230004; + var SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = 361e4; + var SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = 3610001; + var SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = 3610002; + var SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = 3610003; + var SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = 3610004; + var SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = 3610005; + var SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = 3610006; + var SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = 3610007; + var SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = 3611e3; + var SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = 3704e3; + var SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = 3704001; + var SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = 3704002; + var SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = 3704003; + var SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = 3704004; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = 4128e3; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = 4128001; + var SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = 4128002; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = 4615e3; + var SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = 4615001; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = 4615002; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = 4615003; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = 4615004; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = 4615005; + var SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = 4615006; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = 4615007; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = 4615008; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = 4615009; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = 4615010; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = 4615011; + var SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = 4615012; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = 4615013; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = 4615014; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = 4615015; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = 4615016; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = 4615017; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = 4615018; + var SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = 4615019; + var SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = 4615020; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = 4615021; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = 4615022; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = 4615023; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 4615024; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = 4615025; + var SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = 4615026; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = 4615027; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = 4615028; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = 4615029; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = 4615030; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = 4615031; + var SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = 4615032; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = 4615033; + var SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = 4615034; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = 4615035; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = 4615036; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = 4615037; + var SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = 4615038; + var SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = 4615039; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = 4615040; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = 4615041; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = 4615042; + var SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = 4615043; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = 4615044; + var SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = 4615045; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = 4615046; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = 4615047; + var SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = 4615048; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = 4615049; + var SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = 4615050; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = 4615051; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = 4615052; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = 4615053; + var SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = 4615054; + var SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = 5508e3; + var SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = 5508001; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = 5508002; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = 5508003; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = 5508004; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = 5508005; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = 5508006; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = 5508007; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = 5508008; + var SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = 5508009; + var SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = 5508010; + var SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = 5508011; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = 5663e3; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = 5663001; + var SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = 5663002; + var SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = 5663003; + var SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = 5663004; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = 5663005; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = 5663006; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = 5663007; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = 5663008; + var SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = 5663009; + var SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = 5663010; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = 5663011; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = 5663012; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = 5663013; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = 5663014; + var SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = 5663015; + var SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = 5663016; + var SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = 5663017; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = 5663018; + var SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = 705e4; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = 7050001; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = 7050002; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = 7050003; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = 7050004; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 7050005; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = 7050006; + var SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = 7050007; + var SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = 7050008; + var SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = 7050009; + var SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = 7050010; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = 7050011; + var SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = 7050012; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = 7050013; + var SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = 7050014; + var SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = 7050015; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 7050016; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = 7050017; + var SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = 7050018; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = 7050019; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = 7050020; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = 7050021; + var SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = 7050022; + var SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = 7050023; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = 7050024; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = 7050025; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = 7050026; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = 7050027; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = 7050028; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = 7050029; + var SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = 7050030; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = 7050031; + var SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = 7050032; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 7050033; + var SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = 7050034; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = 7050035; + var SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = 7050036; + var SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = 8078e3; + var SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = 8078001; + var SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = 8078002; + var SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = 8078003; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = 8078004; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = 8078005; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = 8078006; + var SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = 8078007; + var SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = 8078008; + var SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = 8078009; + var SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = 8078010; + var SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = 8078011; + var SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = 8078012; + var SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = 8078013; + var SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = 8078014; + var SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = 8078015; + var SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = 8078016; + var SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = 8078017; + var SOLANA_ERROR__CODECS__INVALID_CONSTANT = 8078018; + var SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = 8078019; + var SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = 8078020; + var SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = 8078021; + var SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = 8078022; + var SOLANA_ERROR__RPC__INTEGER_OVERFLOW = 81e5; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = 8100001; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = 8100002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = 819e4; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = 8190001; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = 8190002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = 8190003; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = 8190004; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = 99e5; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = 9900001; + var SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = 9900002; + var SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = 9900003; + function encodeValue(value) { + if (Array.isArray(value)) { + const commaSeparatedValues = value.map(encodeValue).join( + "%2C%20" + /* ", " */ + ); + return "%5B" + commaSeparatedValues + /* "]" */ + "%5D"; + } else if (typeof value === "bigint") { + return `${value}n`; + } else { + return encodeURIComponent( + String( + value != null && Object.getPrototypeOf(value) === null ? ( + // Plain objects with no prototype don't have a `toString` method. + // Convert them before stringifying them. + { ...value } + ) : value + ) + ); + } + } + function encodeObjectContextEntry([key, value]) { + return `${key}=${encodeValue(value)}`; + } + function encodeContextObject(context) { + const searchParamsString = Object.entries(context).map(encodeObjectContextEntry).join("&"); + return Buffer.from(searchParamsString, "utf8").toString("base64"); + } + var SolanaErrorMessages = { + [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: "Account not found at address: $address", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]: "Not all accounts were decoded. Encoded accounts found at addresses: $addresses.", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: "Expected decoded account at address: $address", + [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: "Failed to decode account data at address: $address", + [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: "Accounts not found at addresses: $addresses", + [SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED]: "Unable to find a viable program address bump seed.", + [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: "$putativeAddress is not a base58-encoded address.", + [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]: "Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY]: "The `CryptoKey` must be an `Ed25519` public key.", + [SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE]: "Invalid seeds; point must fall off the Ed25519 curve.", + [SOLANA_ERROR__ADDRESSES__MALFORMED_PDA]: "Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].", + [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]: "A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.", + [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]: "The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.", + [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]: "Expected program derived address bump to be in the range [0, 255], got: $bump.", + [SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER]: "Program address cannot end with PDA marker.", + [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]: "The network has progressed past the last block for which this transaction could have been committed.", + [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]: "Codec [$codecDescription] cannot decode empty byte arrays.", + [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]: "Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.", + [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]: "Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]: "Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]: "Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH]: "Encoder and decoder must either both be fixed-size or variable-size.", + [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]: "Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.", + [SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH]: "Expected a fixed-size codec, got a variable-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]: "Codec [$codecDescription] expected a positive byte length, got $bytesLength.", + [SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH]: "Expected a variable-size codec, got a fixed-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]: "Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].", + [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]: "Codec [$codecDescription] expected $expected bytes, got $bytesLength.", + [SOLANA_ERROR__CODECS__INVALID_CONSTANT]: "Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].", + [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]: "Invalid discriminated union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]: "Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.", + [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]: "Invalid literal union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]: "Expected [$codecDescription] to have $expected items, got $actual.", + [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: "Invalid value $value for base $base with alphabet $alphabet.", + [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]: "Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.", + [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]: "Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.", + [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]: "Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.", + [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]: "Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].", + [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]: "Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.", + [SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED]: "No random values implementation could be found.", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED]: "instruction requires an uninitialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED]: "instruction tries to borrow reference for an account which is already borrowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "instruction left account with an outstanding borrowed reference", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED]: "program other than the account's owner changed the size of the account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL]: "account data too small for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE]: "instruction expected an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT]: "An account does not have enough lamports to be rent-exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW]: "Program arithmetic overflowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: "Failed to serialize or deserialize account data: $encodedData", + [SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS]: "Builtin programs must consume compute units", + [SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH]: "Cross-program invocation call depth too deep", + [SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED]: "Computational budget exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: "custom program error: #$code", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX]: "instruction contains duplicate accounts", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC]: "instruction modifications of multiply-passed account differ", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT]: "executable accounts must be rent exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED]: "instruction changed executable accounts data", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE]: "instruction changed the balance of an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED]: "instruction changed executable bit of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED]: "instruction modified data of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND]: "instruction spent from the balance of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR]: "generic instruction error", + [SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER]: "Provided owner is not allowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE]: "Account is immutable", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY]: "Incorrect authority provided", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID]: "incorrect program id for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS]: "insufficient funds for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA]: "invalid account data for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER]: "Invalid account owner", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT]: "invalid program argument", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR]: "program returned invalid error code", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA]: "invalid instruction data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC]: "Failed to reallocate account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS]: "Provided seeds do not result in a valid address", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED]: "Accounts data allocations exceeded the maximum allowed per transaction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED]: "Max accounts exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED]: "Max instruction trace length exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED]: "Length of the seed is too long for address generation", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT]: "An account required by the instruction is missing", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE]: "missing required signature for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID]: "instruction illegally modified the program id of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS]: "insufficient account keys for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION]: "Cross-program invocation with unauthorized signer or writable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE]: "Failed to create program execution environment", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE]: "Program failed to compile", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE]: "Program failed to complete", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED]: "instruction modified data of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE]: "instruction changed the balance of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED]: "Cross-program invocation reentrancy not allowed for this instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED]: "instruction modified rent epoch of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION]: "sum of account balances before and after instruction do not match", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT]: "instruction requires an initialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: "", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID]: "Unsupported program id", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR]: "Unsupported sysvar", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: "The instruction does not have any accounts.", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: "The instruction does not have any data.", + [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]: "Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.", + [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]: "Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__INVALID_NONCE]: "The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`", + [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]: "Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]: "Invariant violation: Switch statement non-exhaustive. Received unexpected value `$unexpectedValue`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE]: "Invariant violation: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING]: "Invariant violation: WebSocket message iterator is missing state storage. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: "JSON-RPC error: Internal JSON-RPC error ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: "JSON-RPC error: Invalid method parameter(s) ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]: "JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]: "JSON-RPC error: The method does not exist / is not available ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]: "JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: "Minimum context slot has not been reached", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: "Node is unhealthy; behind by $numSlotsBehind slots", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT]: "No snapshot", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: "Transaction simulation failed", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE]: "Transaction history is not available from this node", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH]: "Transaction signature length mismatch", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE]: "Transaction signature verification failure", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: "$__serverMessage", + [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: "Key pair bytes must be of length 64, got $byteLength.", + [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]: "Expected private key bytes with length 32. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]: "Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY]: "The provided private key does not match the provided public key.", + [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.", + [SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE]: "Lamports value must be in the range [0, 2e64-1]", + [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: "`$value` cannot be parsed as a `BigInt`", + [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: "`$value` cannot be parsed as a `Number`", + [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: "No nonce account could be found at address `$nonceAccountAddress`", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST]: "Either the notification name must end in 'Notifications' or the API must supply a subscription creator function for the notification '$notificationName' to map between the notification name and the subscribe/unsubscribe method names.", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID]: "Failed to obtain a subscription id from the server", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED]: "WebSocket was closed before payload could be added to the send buffer", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED]: "WebSocket connection closed", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT]: "WebSocket failed to connect", + [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]: "The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was `$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds `Number.MAX_SAFE_INTEGER`.", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: "HTTP error ($statusCode): $message", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]: "HTTP header(s) forbidden: $headers. Learn more at https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.", + [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]: "Multiple distinct signers were identified for address `$address`. Please ensure that you are using the same signer instance for each address.", + [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]: "The provided value does not implement the `KeyPairSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]: "The provided value does not implement the `MessageModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]: "The provided value does not implement the `MessagePartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]: "The provided value does not implement any of the `MessageSigner` interfaces", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]: "The provided value does not implement the `TransactionModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]: "The provided value does not implement the `TransactionPartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]: "The provided value does not implement the `TransactionSendingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]: "The provided value does not implement any of the `TransactionSigner` interfaces", + [SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS]: "More than one `TransactionSendingSigner` was identified.", + [SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING]: "No `TransactionSendingSigner` was identified. Please provide a valid `ITransactionWithSingleSendingSigner` transaction.", + [SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED]: "Wallet account signers do not support signing multiple messages/transactions in a single operation", + [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: "Cannot export a non-extractable key.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED]: "No digest implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT]: "Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.", + [SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED]: "This runtime does not support the generation of Ed25519 key pairs.\n\nInstall @solana/webcrypto-ed25519-polyfill and call its `install` function before generating keys in environments that do not support Ed25519.\n\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.", + [SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED]: "No signature verification implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED]: "No key generation implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED]: "No signing implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED]: "No key export implementation could be found.", + [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]: "Timestamp value must be in the range [-8.64e15, 8.64e15]. `$value` given", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "Transaction processing left an account with an outstanding borrowed reference", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE]: "Account in use", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE]: "Account loaded twice", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND]: "Attempt to debit an account but found no record of a prior credit.", + [SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND]: "Transaction loads an address table account that doesn't exist", + [SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED]: "This transaction has already been processed", + [SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND]: "Blockhash not found", + [SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP]: "Loader call chain is too deep", + [SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE]: "Transactions are currently disabled due to cluster maintenance", + [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]: "Transaction contains a duplicate instruction ($index) that is not allowed", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: "Insufficient funds for fee", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]: "Transaction results in an account ($accountIndex) with insufficient funds for rent", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE]: "This account may not be used to pay transaction fees", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX]: "Transaction contains an invalid account reference", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA]: "Transaction loads an address table account with invalid data", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX]: "Transaction address table lookup uses an invalid index", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER]: "Transaction loads an address table account with an invalid owner", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT]: "LoadedAccountsDataSizeLimit set for transaction must be greater than 0.", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION]: "This program may not be used for executing instructions", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT]: "Transaction leaves an account with a lower balance than rent-exempt minimum", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT]: "Transaction loads a writable account that cannot be written", + [SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED]: "Transaction exceeded max loaded accounts data size cap", + [SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE]: "Transaction requires a fee but has no signature present", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND]: "Attempt to load a program that does not exist", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]: "Execution of the program referenced by account at index $accountIndex is temporarily restricted.", + [SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED]: "ResanitizationNeeded", + [SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE]: "Transaction failed to sanitize accounts offsets correctly", + [SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE]: "Transaction did not pass signature verification", + [SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS]: "Transaction locked too many accounts", + [SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION]: "Sum of account balances before and after transaction do not match", + [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: "The transaction failed with the error `$errorName`", + [SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION]: "Transaction version is unsupported", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT]: "Transaction would exceed account data limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT]: "Transaction would exceed total account data limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT]: "Transaction would exceed max account limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT]: "Transaction would exceed max Block Cost Limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT]: "Transaction would exceed max Vote Cost Limit", + [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]: "Attempted to sign a transaction with an address that is not a signer for it", + [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: "Transaction is missing an address at index: $index.", + [SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES]: "Transaction has no expected signers therefore it cannot be encoded", + [SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME]: "Transaction does not have a blockhash lifetime", + [SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME]: "Transaction is not a durable nonce transaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]: "Contents of these address lookup tables unknown: $lookupTableAddresses", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]: "Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING]: "No fee payer set in CompiledTransaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]: "Could not find program address at index $index", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT]: "Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING]: "Transaction is missing a fee payer.", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING]: "Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE]: "Transaction first instruction is not advance nonce account instruction.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING]: "Transaction with no instructions cannot be durable nonce transaction.", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]: "This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]: "This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable", + [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]: "The transaction message expected the transaction to have $signerAddressesLength signatures, got $signaturesLength.", + [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: "Transaction is missing signatures for addresses: $addresses.", + [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]: "Transaction version must be in the range [0, 127]. `$actualVersion` given" + }; + var START_INDEX = "i"; + var TYPE = "t"; + function getHumanReadableErrorMessage(code, context = {}) { + const messageFormatString = SolanaErrorMessages[code]; + if (messageFormatString.length === 0) { + return ""; + } + let state; + function commitStateUpTo(endIndex) { + if (state[TYPE] === 2) { + const variableName = messageFormatString.slice(state[START_INDEX] + 1, endIndex); + fragments.push( + variableName in context ? `${context[variableName]}` : `$${variableName}` + ); + } else if (state[TYPE] === 1) { + fragments.push(messageFormatString.slice(state[START_INDEX], endIndex)); + } + } + const fragments = []; + messageFormatString.split("").forEach((char, ii) => { + if (ii === 0) { + state = { + [START_INDEX]: 0, + [TYPE]: messageFormatString[0] === "\\" ? 0 : messageFormatString[0] === "$" ? 2 : 1 + /* Text */ + }; + return; + } + let nextState; + switch (state[TYPE]) { + case 0: + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + break; + case 1: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } + break; + case 2: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } else if (!char.match(/\w/)) { + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + } + break; + } + if (nextState) { + if (state !== nextState) { + commitStateUpTo(ii); + } + state = nextState; + } + }); + commitStateUpTo(); + return fragments.join(""); + } + function getErrorMessage(code, context = {}) { + if (process.env.NODE_ENV !== "production") { + return getHumanReadableErrorMessage(code, context); + } else { + let decodingAdviceMessage = `Solana error #${code}; Decode this error by running \`npx @solana/errors decode -- ${code}`; + if (Object.keys(context).length) { + decodingAdviceMessage += ` '${encodeContextObject(context)}'`; + } + return `${decodingAdviceMessage}\``; + } + } + function isSolanaError(e, code) { + const isSolanaError2 = e instanceof Error && e.name === "SolanaError"; + if (isSolanaError2) { + if (code !== void 0) { + return e.context.__code === code; + } + return true; + } + return false; + } + var SolanaError = class extends Error { + cause = this.cause; + context; + constructor(...[code, contextAndErrorOptions]) { + let context; + let errorOptions; + if (contextAndErrorOptions) { + const { cause, ...contextRest } = contextAndErrorOptions; + if (cause) { + errorOptions = { cause }; + } + if (Object.keys(contextRest).length > 0) { + context = contextRest; + } + } + const message = getErrorMessage(code, context); + super(message, errorOptions); + this.context = { + __code: code, + ...context + }; + this.name = "SolanaError"; + } + }; + function safeCaptureStackTrace(...args) { + if ("captureStackTrace" in Error && typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(...args); + } + } + function getSolanaErrorFromRpcError({ errorCodeBaseOffset, getErrorContext, orderedErrorNames, rpcEnumError }, constructorOpt) { + let rpcErrorName; + let rpcErrorContext; + if (typeof rpcEnumError === "string") { + rpcErrorName = rpcEnumError; + } else { + rpcErrorName = Object.keys(rpcEnumError)[0]; + rpcErrorContext = rpcEnumError[rpcErrorName]; + } + const codeOffset = orderedErrorNames.indexOf(rpcErrorName); + const errorCode = errorCodeBaseOffset + codeOffset; + const errorContext = getErrorContext(errorCode, rpcErrorName, rpcErrorContext); + const err = new SolanaError(errorCode, errorContext); + safeCaptureStackTrace(err, constructorOpt); + return err; + } + var ORDERED_ERROR_NAMES = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/program/src/instruction.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "GenericError", + "InvalidArgument", + "InvalidInstructionData", + "InvalidAccountData", + "AccountDataTooSmall", + "InsufficientFunds", + "IncorrectProgramId", + "MissingRequiredSignature", + "AccountAlreadyInitialized", + "UninitializedAccount", + "UnbalancedInstruction", + "ModifiedProgramId", + "ExternalAccountLamportSpend", + "ExternalAccountDataModified", + "ReadonlyLamportChange", + "ReadonlyDataModified", + "DuplicateAccountIndex", + "ExecutableModified", + "RentEpochModified", + "NotEnoughAccountKeys", + "AccountDataSizeChanged", + "AccountNotExecutable", + "AccountBorrowFailed", + "AccountBorrowOutstanding", + "DuplicateAccountOutOfSync", + "Custom", + "InvalidError", + "ExecutableDataModified", + "ExecutableLamportChange", + "ExecutableAccountNotRentExempt", + "UnsupportedProgramId", + "CallDepth", + "MissingAccount", + "ReentrancyNotAllowed", + "MaxSeedLengthExceeded", + "InvalidSeeds", + "InvalidRealloc", + "ComputationalBudgetExceeded", + "PrivilegeEscalation", + "ProgramEnvironmentSetupFailure", + "ProgramFailedToComplete", + "ProgramFailedToCompile", + "Immutable", + "IncorrectAuthority", + "BorshIoError", + "AccountNotRentExempt", + "InvalidAccountOwner", + "ArithmeticOverflow", + "UnsupportedSysvar", + "IllegalOwner", + "MaxAccountsDataAllocationsExceeded", + "MaxAccountsExceeded", + "MaxInstructionTraceLengthExceeded", + "BuiltinProgramsMustConsumeComputeUnits" + ]; + function getSolanaErrorFromInstructionError(index, instructionError) { + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 4615001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + index, + ...rpcErrorContext !== void 0 ? { instructionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM) { + return { + code: rpcErrorContext, + index + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR) { + return { + encodedData: rpcErrorContext, + index + }; + } + return { index }; + }, + orderedErrorNames: ORDERED_ERROR_NAMES, + rpcEnumError: instructionError + }, + getSolanaErrorFromInstructionError + ); + } + var ORDERED_ERROR_NAMES2 = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/src/transaction/error.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "AccountInUse", + "AccountLoadedTwice", + "AccountNotFound", + "ProgramAccountNotFound", + "InsufficientFundsForFee", + "InvalidAccountForFee", + "AlreadyProcessed", + "BlockhashNotFound", + // `InstructionError` intentionally omitted; delegated to `getSolanaErrorFromInstructionError` + "CallChainTooDeep", + "MissingSignatureForFee", + "InvalidAccountIndex", + "SignatureFailure", + "InvalidProgramForExecution", + "SanitizeFailure", + "ClusterMaintenance", + "AccountBorrowOutstanding", + "WouldExceedMaxBlockCostLimit", + "UnsupportedVersion", + "InvalidWritableAccount", + "WouldExceedMaxAccountCostLimit", + "WouldExceedAccountDataBlockLimit", + "TooManyAccountLocks", + "AddressLookupTableNotFound", + "InvalidAddressLookupTableOwner", + "InvalidAddressLookupTableData", + "InvalidAddressLookupTableIndex", + "InvalidRentPayingAccount", + "WouldExceedMaxVoteCostLimit", + "WouldExceedAccountDataTotalLimit", + "DuplicateInstruction", + "InsufficientFundsForRent", + "MaxLoadedAccountsDataSizeExceeded", + "InvalidLoadedAccountsDataSizeLimit", + "ResanitizationNeeded", + "ProgramExecutionTemporarilyRestricted", + "UnbalancedTransaction" + ]; + function getSolanaErrorFromTransactionError(transactionError) { + if (typeof transactionError === "object" && "InstructionError" in transactionError) { + return getSolanaErrorFromInstructionError( + ...transactionError.InstructionError + ); + } + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 7050001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + ...rpcErrorContext !== void 0 ? { transactionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION) { + return { + index: rpcErrorContext + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT || errorCode === SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED) { + return { + accountIndex: rpcErrorContext.account_index + }; + } + }, + orderedErrorNames: ORDERED_ERROR_NAMES2, + rpcEnumError: transactionError + }, + getSolanaErrorFromTransactionError + ); + } + function getSolanaErrorFromJsonRpcError({ code, data, message }) { + let out; + if (code === SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE) { + const { err, ...preflightErrorContext } = data; + const causeObject = err ? { cause: getSolanaErrorFromTransactionError(err) } : null; + out = new SolanaError(SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, { + ...preflightErrorContext, + ...causeObject + }); + } else { + let errorContext; + switch (code) { + case SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR: + case SOLANA_ERROR__JSON_RPC__INVALID_PARAMS: + case SOLANA_ERROR__JSON_RPC__INVALID_REQUEST: + case SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND: + case SOLANA_ERROR__JSON_RPC__PARSE_ERROR: + case SOLANA_ERROR__JSON_RPC__SCAN_ERROR: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: + errorContext = { __serverMessage: message }; + break; + default: + if (typeof data === "object" && !Array.isArray(data)) { + errorContext = data; + } + } + out = new SolanaError(code, errorContext); + } + safeCaptureStackTrace(out, getSolanaErrorFromJsonRpcError); + return out; + } + exports2.SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND; + exports2.SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE; + exports2.SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = SOLANA_ERROR__ADDRESSES__MALFORMED_PDA; + exports2.SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE; + exports2.SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER; + exports2.SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED; + exports2.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY; + exports2.SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS; + exports2.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE; + exports2.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__INVALID_CONSTANT = SOLANA_ERROR__CODECS__INVALID_CONSTANT; + exports2.SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS; + exports2.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE; + exports2.SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES; + exports2.SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA; + exports2.SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH; + exports2.SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH; + exports2.SOLANA_ERROR__INVALID_NONCE = SOLANA_ERROR__INVALID_NONCE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING; + exports2.SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = SOLANA_ERROR__JSON_RPC__INVALID_PARAMS; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = SOLANA_ERROR__JSON_RPC__INVALID_REQUEST; + exports2.SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND; + exports2.SOLANA_ERROR__JSON_RPC__PARSE_ERROR = SOLANA_ERROR__JSON_RPC__PARSE_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SCAN_ERROR = SOLANA_ERROR__JSON_RPC__SCAN_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION; + exports2.SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY; + exports2.SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE; + exports2.SOLANA_ERROR__MALFORMED_BIGINT_STRING = SOLANA_ERROR__MALFORMED_BIGINT_STRING; + exports2.SOLANA_ERROR__MALFORMED_NUMBER_STRING = SOLANA_ERROR__MALFORMED_NUMBER_STRING; + exports2.SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT; + exports2.SOLANA_ERROR__RPC__INTEGER_OVERFLOW = SOLANA_ERROR__RPC__INTEGER_OVERFLOW; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN; + exports2.SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING; + exports2.SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE; + exports2.SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH; + exports2.SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE; + exports2.SolanaError = SolanaError; + exports2.getSolanaErrorFromInstructionError = getSolanaErrorFromInstructionError; + exports2.getSolanaErrorFromJsonRpcError = getSolanaErrorFromJsonRpcError; + exports2.getSolanaErrorFromTransactionError = getSolanaErrorFromTransactionError; + exports2.isSolanaError = isSolanaError; + exports2.safeCaptureStackTrace = safeCaptureStackTrace; + } +}); + +// node_modules/@solana/codecs-data-structures/node_modules/@solana/codecs-core/dist/index.node.cjs +var require_index_node7 = __commonJS({ + "node_modules/@solana/codecs-data-structures/node_modules/@solana/codecs-core/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node6(); + var mergeBytes = (byteArrays) => { + const nonEmptyByteArrays = byteArrays.filter((arr) => arr.length); + if (nonEmptyByteArrays.length === 0) { + return byteArrays.length ? byteArrays[0] : new Uint8Array(); + } + if (nonEmptyByteArrays.length === 1) { + return nonEmptyByteArrays[0]; + } + const totalLength = nonEmptyByteArrays.reduce((total, arr) => total + arr.length, 0); + const result = new Uint8Array(totalLength); + let offset = 0; + nonEmptyByteArrays.forEach((arr) => { + result.set(arr, offset); + offset += arr.length; + }); + return result; + }; + var padBytes = (bytes7, length) => { + if (bytes7.length >= length) return bytes7; + const paddedBytes = new Uint8Array(length).fill(0); + paddedBytes.set(bytes7); + return paddedBytes; + }; + var fixBytes = (bytes7, length) => padBytes(bytes7.length <= length ? bytes7 : bytes7.slice(0, length), length); + function containsBytes(data, bytes7, offset) { + const slice = offset === 0 && data.length === bytes7.length ? data : data.slice(offset, offset + bytes7.length); + if (slice.length !== bytes7.length) return false; + return bytes7.every((b, i) => b === slice[i]); + } + function getEncodedSize(value, encoder) { + return "fixedSize" in encoder ? encoder.fixedSize : encoder.getSizeFromValue(value); + } + function createEncoder(encoder) { + return Object.freeze({ + ...encoder, + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, encoder)); + encoder.write(value, bytes7, 0); + return bytes7; + } + }); + } + function createDecoder(decoder) { + return Object.freeze({ + ...decoder, + decode: (bytes7, offset = 0) => decoder.read(bytes7, offset)[0] + }); + } + function createCodec(codec) { + return Object.freeze({ + ...codec, + decode: (bytes7, offset = 0) => codec.read(bytes7, offset)[0], + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, codec)); + codec.write(value, bytes7, 0); + return bytes7; + } + }); + } + function isFixedSize(codec) { + return "fixedSize" in codec && typeof codec.fixedSize === "number"; + } + function assertIsFixedSize(codec) { + if (!isFixedSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH); + } + } + function isVariableSize(codec) { + return !isFixedSize(codec); + } + function assertIsVariableSize(codec) { + if (!isVariableSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH); + } + } + function combineCodec(encoder, decoder) { + if (isFixedSize(encoder) !== isFixedSize(decoder)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH); + } + if (isFixedSize(encoder) && isFixedSize(decoder) && encoder.fixedSize !== decoder.fixedSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH, { + decoderFixedSize: decoder.fixedSize, + encoderFixedSize: encoder.fixedSize + }); + } + if (!isFixedSize(encoder) && !isFixedSize(decoder) && encoder.maxSize !== decoder.maxSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH, { + decoderMaxSize: decoder.maxSize, + encoderMaxSize: encoder.maxSize + }); + } + return { + ...decoder, + ...encoder, + decode: decoder.decode, + encode: encoder.encode, + read: decoder.read, + write: encoder.write + }; + } + function addEncoderSentinel(encoder, sentinel) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + if (findSentinelIndex(encoderBytes, sentinel) >= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL, { + encodedBytes: encoderBytes, + hexEncodedBytes: hexBytes(encoderBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + bytes7.set(encoderBytes, offset); + offset += encoderBytes.length; + bytes7.set(sentinel, offset); + offset += sentinel.length; + return offset; + }; + if (isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: encoder.fixedSize + sentinel.length, write }); + } + return createEncoder({ + ...encoder, + ...encoder.maxSize != null ? { maxSize: encoder.maxSize + sentinel.length } : {}, + getSizeFromValue: (value) => encoder.getSizeFromValue(value) + sentinel.length, + write + }); + } + function addDecoderSentinel(decoder, sentinel) { + const read = (bytes7, offset) => { + const candidateBytes = offset === 0 ? bytes7 : bytes7.slice(offset); + const sentinelIndex = findSentinelIndex(candidateBytes, sentinel); + if (sentinelIndex === -1) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES, { + decodedBytes: candidateBytes, + hexDecodedBytes: hexBytes(candidateBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + const preSentinelBytes = candidateBytes.slice(0, sentinelIndex); + return [decoder.decode(preSentinelBytes), offset + preSentinelBytes.length + sentinel.length]; + }; + if (isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: decoder.fixedSize + sentinel.length, read }); + } + return createDecoder({ + ...decoder, + ...decoder.maxSize != null ? { maxSize: decoder.maxSize + sentinel.length } : {}, + read + }); + } + function addCodecSentinel(codec, sentinel) { + return combineCodec(addEncoderSentinel(codec, sentinel), addDecoderSentinel(codec, sentinel)); + } + function findSentinelIndex(bytes7, sentinel) { + return bytes7.findIndex((byte, index, arr) => { + if (sentinel.length === 1) return byte === sentinel[0]; + return containsBytes(arr, sentinel, index); + }); + } + function hexBytes(bytes7) { + return bytes7.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); + } + function assertByteArrayIsNotEmptyForCodec(codecDescription, bytes7, offset = 0) { + if (bytes7.length - offset <= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY, { + codecDescription + }); + } + } + function assertByteArrayHasEnoughBytesForCodec(codecDescription, expected, bytes7, offset = 0) { + const bytesLength = bytes7.length - offset; + if (bytesLength < expected) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH, { + bytesLength, + codecDescription, + expected + }); + } + } + function assertByteArrayOffsetIsNotOutOfRange(codecDescription, offset, bytesLength) { + if (offset < 0 || offset > bytesLength) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE, { + bytesLength, + codecDescription, + offset + }); + } + } + function addEncoderSizePrefix(encoder, prefix) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + offset = prefix.write(encoderBytes.length, bytes7, offset); + bytes7.set(encoderBytes, offset); + return offset + encoderBytes.length; + }; + if (isFixedSize(prefix) && isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: prefix.fixedSize + encoder.fixedSize, write }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const encoderMaxSize = isFixedSize(encoder) ? encoder.fixedSize : encoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && encoderMaxSize !== null ? prefixMaxSize + encoderMaxSize : null; + return createEncoder({ + ...encoder, + ...maxSize !== null ? { maxSize } : {}, + getSizeFromValue: (value) => { + const encoderSize = getEncodedSize(value, encoder); + return getEncodedSize(encoderSize, prefix) + encoderSize; + }, + write + }); + } + function addDecoderSizePrefix(decoder, prefix) { + const read = (bytes7, offset) => { + const [bigintSize, decoderOffset] = prefix.read(bytes7, offset); + const size = Number(bigintSize); + offset = decoderOffset; + if (offset > 0 || bytes7.length > size) { + bytes7 = bytes7.slice(offset, offset + size); + } + assertByteArrayHasEnoughBytesForCodec("addDecoderSizePrefix", size, bytes7); + return [decoder.decode(bytes7), offset + size]; + }; + if (isFixedSize(prefix) && isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: prefix.fixedSize + decoder.fixedSize, read }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const decoderMaxSize = isFixedSize(decoder) ? decoder.fixedSize : decoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && decoderMaxSize !== null ? prefixMaxSize + decoderMaxSize : null; + return createDecoder({ ...decoder, ...maxSize !== null ? { maxSize } : {}, read }); + } + function addCodecSizePrefix(codec, prefix) { + return combineCodec(addEncoderSizePrefix(codec, prefix), addDecoderSizePrefix(codec, prefix)); + } + function fixEncoderSize(encoder, fixedBytes) { + return createEncoder({ + fixedSize: fixedBytes, + write: (value, bytes7, offset) => { + const variableByteArray = encoder.encode(value); + const fixedByteArray = variableByteArray.length > fixedBytes ? variableByteArray.slice(0, fixedBytes) : variableByteArray; + bytes7.set(fixedByteArray, offset); + return offset + fixedBytes; + } + }); + } + function fixDecoderSize(decoder, fixedBytes) { + return createDecoder({ + fixedSize: fixedBytes, + read: (bytes7, offset) => { + assertByteArrayHasEnoughBytesForCodec("fixCodecSize", fixedBytes, bytes7, offset); + if (offset > 0 || bytes7.length > fixedBytes) { + bytes7 = bytes7.slice(offset, offset + fixedBytes); + } + if (isFixedSize(decoder)) { + bytes7 = fixBytes(bytes7, decoder.fixedSize); + } + const [value] = decoder.read(bytes7, 0); + return [value, offset + fixedBytes]; + } + }); + } + function fixCodecSize(codec, fixedBytes) { + return combineCodec(fixEncoderSize(codec, fixedBytes), fixDecoderSize(codec, fixedBytes)); + } + function offsetEncoder(encoder, config) { + return createEncoder({ + ...encoder, + write: (value, bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPreOffset, bytes7.length); + const postOffset = encoder.write(value, bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPostOffset, bytes7.length); + return newPostOffset; + } + }); + } + function offsetDecoder(decoder, config) { + return createDecoder({ + ...decoder, + read: (bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPreOffset, bytes7.length); + const [value, postOffset] = decoder.read(bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPostOffset, bytes7.length); + return [value, newPostOffset]; + } + }); + } + function offsetCodec(codec, config) { + return combineCodec(offsetEncoder(codec, config), offsetDecoder(codec, config)); + } + function modulo(dividend, divisor) { + if (divisor === 0) return 0; + return (dividend % divisor + divisor) % divisor; + } + function resizeEncoder(encoder, resize) { + if (isFixedSize(encoder)) { + const fixedSize = resize(encoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeEncoder" + }); + } + return createEncoder({ ...encoder, fixedSize }); + } + return createEncoder({ + ...encoder, + getSizeFromValue: (value) => { + const newSize = resize(encoder.getSizeFromValue(value)); + if (newSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: newSize, + codecDescription: "resizeEncoder" + }); + } + return newSize; + } + }); + } + function resizeDecoder(decoder, resize) { + if (isFixedSize(decoder)) { + const fixedSize = resize(decoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeDecoder" + }); + } + return createDecoder({ ...decoder, fixedSize }); + } + return decoder; + } + function resizeCodec(codec, resize) { + return combineCodec(resizeEncoder(codec, resize), resizeDecoder(codec, resize)); + } + function padLeftEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftCodec(codec, offset) { + return combineCodec(padLeftEncoder(codec, offset), padLeftDecoder(codec, offset)); + } + function padRightCodec(codec, offset) { + return combineCodec(padRightEncoder(codec, offset), padRightDecoder(codec, offset)); + } + function copySourceToTargetInReverse(source, target_WILL_MUTATE, sourceOffset, sourceLength, targetOffset = 0) { + while (sourceOffset < --sourceLength) { + const leftValue = source[sourceOffset]; + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceLength]; + target_WILL_MUTATE[sourceLength + targetOffset] = leftValue; + sourceOffset++; + } + if (sourceOffset === sourceLength) { + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceOffset]; + } + } + function reverseEncoder(encoder) { + assertIsFixedSize(encoder); + return createEncoder({ + ...encoder, + write: (value, bytes7, offset) => { + const newOffset = encoder.write(value, bytes7, offset); + copySourceToTargetInReverse( + bytes7, + bytes7, + offset, + offset + encoder.fixedSize + ); + return newOffset; + } + }); + } + function reverseDecoder(decoder) { + assertIsFixedSize(decoder); + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const reversedBytes = bytes7.slice(); + copySourceToTargetInReverse( + bytes7, + reversedBytes, + offset, + offset + decoder.fixedSize + ); + return decoder.read(reversedBytes, offset); + } + }); + } + function reverseCodec(codec) { + return combineCodec(reverseEncoder(codec), reverseDecoder(codec)); + } + function transformEncoder(encoder, unmap) { + return createEncoder({ + ...isVariableSize(encoder) ? { ...encoder, getSizeFromValue: (value) => encoder.getSizeFromValue(unmap(value)) } : encoder, + write: (value, bytes7, offset) => encoder.write(unmap(value), bytes7, offset) + }); + } + function transformDecoder(decoder, map) { + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const [value, newOffset] = decoder.read(bytes7, offset); + return [map(value, bytes7, offset), newOffset]; + } + }); + } + function transformCodec(codec, unmap, map) { + return createCodec({ + ...transformEncoder(codec, unmap), + read: map ? transformDecoder(codec, map).read : codec.read + }); + } + exports2.addCodecSentinel = addCodecSentinel; + exports2.addCodecSizePrefix = addCodecSizePrefix; + exports2.addDecoderSentinel = addDecoderSentinel; + exports2.addDecoderSizePrefix = addDecoderSizePrefix; + exports2.addEncoderSentinel = addEncoderSentinel; + exports2.addEncoderSizePrefix = addEncoderSizePrefix; + exports2.assertByteArrayHasEnoughBytesForCodec = assertByteArrayHasEnoughBytesForCodec; + exports2.assertByteArrayIsNotEmptyForCodec = assertByteArrayIsNotEmptyForCodec; + exports2.assertByteArrayOffsetIsNotOutOfRange = assertByteArrayOffsetIsNotOutOfRange; + exports2.assertIsFixedSize = assertIsFixedSize; + exports2.assertIsVariableSize = assertIsVariableSize; + exports2.combineCodec = combineCodec; + exports2.containsBytes = containsBytes; + exports2.createCodec = createCodec; + exports2.createDecoder = createDecoder; + exports2.createEncoder = createEncoder; + exports2.fixBytes = fixBytes; + exports2.fixCodecSize = fixCodecSize; + exports2.fixDecoderSize = fixDecoderSize; + exports2.fixEncoderSize = fixEncoderSize; + exports2.getEncodedSize = getEncodedSize; + exports2.isFixedSize = isFixedSize; + exports2.isVariableSize = isVariableSize; + exports2.mergeBytes = mergeBytes; + exports2.offsetCodec = offsetCodec; + exports2.offsetDecoder = offsetDecoder; + exports2.offsetEncoder = offsetEncoder; + exports2.padBytes = padBytes; + exports2.padLeftCodec = padLeftCodec; + exports2.padLeftDecoder = padLeftDecoder; + exports2.padLeftEncoder = padLeftEncoder; + exports2.padRightCodec = padRightCodec; + exports2.padRightDecoder = padRightDecoder; + exports2.padRightEncoder = padRightEncoder; + exports2.resizeCodec = resizeCodec; + exports2.resizeDecoder = resizeDecoder; + exports2.resizeEncoder = resizeEncoder; + exports2.reverseCodec = reverseCodec; + exports2.reverseDecoder = reverseDecoder; + exports2.reverseEncoder = reverseEncoder; + exports2.transformCodec = transformCodec; + exports2.transformDecoder = transformDecoder; + exports2.transformEncoder = transformEncoder; + } +}); + +// node_modules/@solana/codecs-data-structures/node_modules/@solana/codecs-numbers/dist/index.node.cjs +var require_index_node8 = __commonJS({ + "node_modules/@solana/codecs-data-structures/node_modules/@solana/codecs-numbers/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node6(); + var codecsCore = require_index_node7(); + function assertNumberIsBetweenForCodec(codecDescription, min, max, value) { + if (value < min || value > max) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE, { + codecDescription, + max, + min, + value + }); + } + } + var Endian = /* @__PURE__ */ ((Endian2) => { + Endian2[Endian2["Little"] = 0] = "Little"; + Endian2[Endian2["Big"] = 1] = "Big"; + return Endian2; + })(Endian || {}); + function isLittleEndian(config) { + return config?.endian === 1 ? false : true; + } + function numberEncoderFactory(input) { + return codecsCore.createEncoder({ + fixedSize: input.size, + write(value, bytes7, offset) { + if (input.range) { + assertNumberIsBetweenForCodec(input.name, input.range[0], input.range[1], value); + } + const arrayBuffer = new ArrayBuffer(input.size); + input.set(new DataView(arrayBuffer), value, isLittleEndian(input.config)); + bytes7.set(new Uint8Array(arrayBuffer), offset); + return offset + input.size; + } + }); + } + function numberDecoderFactory(input) { + return codecsCore.createDecoder({ + fixedSize: input.size, + read(bytes7, offset = 0) { + codecsCore.assertByteArrayIsNotEmptyForCodec(input.name, bytes7, offset); + codecsCore.assertByteArrayHasEnoughBytesForCodec(input.name, input.size, bytes7, offset); + const view = new DataView(toArrayBuffer(bytes7, offset, input.size)); + return [input.get(view, isLittleEndian(input.config)), offset + input.size]; + } + }); + } + function toArrayBuffer(bytes7, offset, length) { + const bytesOffset = bytes7.byteOffset + (offset ?? 0); + const bytesLength = length ?? bytes7.byteLength; + return bytes7.buffer.slice(bytesOffset, bytesOffset + bytesLength); + } + var getF32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "f32", + set: (view, value, le) => view.setFloat32(0, Number(value), le), + size: 4 + }); + var getF32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getFloat32(0, le), + name: "f32", + size: 4 + }); + var getF32Codec = (config = {}) => codecsCore.combineCodec(getF32Encoder(config), getF32Decoder(config)); + var getF64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "f64", + set: (view, value, le) => view.setFloat64(0, Number(value), le), + size: 8 + }); + var getF64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getFloat64(0, le), + name: "f64", + size: 8 + }); + var getF64Codec = (config = {}) => codecsCore.combineCodec(getF64Encoder(config), getF64Decoder(config)); + var getI128Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i128", + range: [-BigInt("0x7fffffffffffffffffffffffffffffff") - 1n, BigInt("0x7fffffffffffffffffffffffffffffff")], + set: (view, value, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const rightMask = 0xffffffffffffffffn; + view.setBigInt64(leftOffset, BigInt(value) >> 64n, le); + view.setBigUint64(rightOffset, BigInt(value) & rightMask, le); + }, + size: 16 + }); + var getI128Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const left = view.getBigInt64(leftOffset, le); + const right = view.getBigUint64(rightOffset, le); + return (left << 64n) + right; + }, + name: "i128", + size: 16 + }); + var getI128Codec = (config = {}) => codecsCore.combineCodec(getI128Encoder(config), getI128Decoder(config)); + var getI16Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i16", + range: [-Number("0x7fff") - 1, Number("0x7fff")], + set: (view, value, le) => view.setInt16(0, Number(value), le), + size: 2 + }); + var getI16Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getInt16(0, le), + name: "i16", + size: 2 + }); + var getI16Codec = (config = {}) => codecsCore.combineCodec(getI16Encoder(config), getI16Decoder(config)); + var getI32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i32", + range: [-Number("0x7fffffff") - 1, Number("0x7fffffff")], + set: (view, value, le) => view.setInt32(0, Number(value), le), + size: 4 + }); + var getI32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getInt32(0, le), + name: "i32", + size: 4 + }); + var getI32Codec = (config = {}) => codecsCore.combineCodec(getI32Encoder(config), getI32Decoder(config)); + var getI64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i64", + range: [-BigInt("0x7fffffffffffffff") - 1n, BigInt("0x7fffffffffffffff")], + set: (view, value, le) => view.setBigInt64(0, BigInt(value), le), + size: 8 + }); + var getI64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getBigInt64(0, le), + name: "i64", + size: 8 + }); + var getI64Codec = (config = {}) => codecsCore.combineCodec(getI64Encoder(config), getI64Decoder(config)); + var getI8Encoder = () => numberEncoderFactory({ + name: "i8", + range: [-Number("0x7f") - 1, Number("0x7f")], + set: (view, value) => view.setInt8(0, Number(value)), + size: 1 + }); + var getI8Decoder = () => numberDecoderFactory({ + get: (view) => view.getInt8(0), + name: "i8", + size: 1 + }); + var getI8Codec = () => codecsCore.combineCodec(getI8Encoder(), getI8Decoder()); + var getShortU16Encoder = () => codecsCore.createEncoder({ + getSizeFromValue: (value) => { + if (value <= 127) return 1; + if (value <= 16383) return 2; + return 3; + }, + maxSize: 3, + write: (value, bytes7, offset) => { + assertNumberIsBetweenForCodec("shortU16", 0, 65535, value); + const shortU16Bytes = [0]; + for (let ii = 0; ; ii += 1) { + const alignedValue = Number(value) >> ii * 7; + if (alignedValue === 0) { + break; + } + const nextSevenBits = 127 & alignedValue; + shortU16Bytes[ii] = nextSevenBits; + if (ii > 0) { + shortU16Bytes[ii - 1] |= 128; + } + } + bytes7.set(shortU16Bytes, offset); + return offset + shortU16Bytes.length; + } + }); + var getShortU16Decoder = () => codecsCore.createDecoder({ + maxSize: 3, + read: (bytes7, offset) => { + let value = 0; + let byteCount = 0; + while (++byteCount) { + const byteIndex = byteCount - 1; + const currentByte = bytes7[offset + byteIndex]; + const nextSevenBits = 127 & currentByte; + value |= nextSevenBits << byteIndex * 7; + if ((currentByte & 128) === 0) { + break; + } + } + return [value, offset + byteCount]; + } + }); + var getShortU16Codec = () => codecsCore.combineCodec(getShortU16Encoder(), getShortU16Decoder()); + var getU128Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u128", + range: [0n, BigInt("0xffffffffffffffffffffffffffffffff")], + set: (view, value, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const rightMask = 0xffffffffffffffffn; + view.setBigUint64(leftOffset, BigInt(value) >> 64n, le); + view.setBigUint64(rightOffset, BigInt(value) & rightMask, le); + }, + size: 16 + }); + var getU128Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const left = view.getBigUint64(leftOffset, le); + const right = view.getBigUint64(rightOffset, le); + return (left << 64n) + right; + }, + name: "u128", + size: 16 + }); + var getU128Codec = (config = {}) => codecsCore.combineCodec(getU128Encoder(config), getU128Decoder(config)); + var getU16Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u16", + range: [0, Number("0xffff")], + set: (view, value, le) => view.setUint16(0, Number(value), le), + size: 2 + }); + var getU16Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getUint16(0, le), + name: "u16", + size: 2 + }); + var getU16Codec = (config = {}) => codecsCore.combineCodec(getU16Encoder(config), getU16Decoder(config)); + var getU32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u32", + range: [0, Number("0xffffffff")], + set: (view, value, le) => view.setUint32(0, Number(value), le), + size: 4 + }); + var getU32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getUint32(0, le), + name: "u32", + size: 4 + }); + var getU32Codec = (config = {}) => codecsCore.combineCodec(getU32Encoder(config), getU32Decoder(config)); + var getU64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u64", + range: [0n, BigInt("0xffffffffffffffff")], + set: (view, value, le) => view.setBigUint64(0, BigInt(value), le), + size: 8 + }); + var getU64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getBigUint64(0, le), + name: "u64", + size: 8 + }); + var getU64Codec = (config = {}) => codecsCore.combineCodec(getU64Encoder(config), getU64Decoder(config)); + var getU8Encoder = () => numberEncoderFactory({ + name: "u8", + range: [0, Number("0xff")], + set: (view, value) => view.setUint8(0, Number(value)), + size: 1 + }); + var getU8Decoder = () => numberDecoderFactory({ + get: (view) => view.getUint8(0), + name: "u8", + size: 1 + }); + var getU8Codec = () => codecsCore.combineCodec(getU8Encoder(), getU8Decoder()); + exports2.Endian = Endian; + exports2.assertNumberIsBetweenForCodec = assertNumberIsBetweenForCodec; + exports2.getF32Codec = getF32Codec; + exports2.getF32Decoder = getF32Decoder; + exports2.getF32Encoder = getF32Encoder; + exports2.getF64Codec = getF64Codec; + exports2.getF64Decoder = getF64Decoder; + exports2.getF64Encoder = getF64Encoder; + exports2.getI128Codec = getI128Codec; + exports2.getI128Decoder = getI128Decoder; + exports2.getI128Encoder = getI128Encoder; + exports2.getI16Codec = getI16Codec; + exports2.getI16Decoder = getI16Decoder; + exports2.getI16Encoder = getI16Encoder; + exports2.getI32Codec = getI32Codec; + exports2.getI32Decoder = getI32Decoder; + exports2.getI32Encoder = getI32Encoder; + exports2.getI64Codec = getI64Codec; + exports2.getI64Decoder = getI64Decoder; + exports2.getI64Encoder = getI64Encoder; + exports2.getI8Codec = getI8Codec; + exports2.getI8Decoder = getI8Decoder; + exports2.getI8Encoder = getI8Encoder; + exports2.getShortU16Codec = getShortU16Codec; + exports2.getShortU16Decoder = getShortU16Decoder; + exports2.getShortU16Encoder = getShortU16Encoder; + exports2.getU128Codec = getU128Codec; + exports2.getU128Decoder = getU128Decoder; + exports2.getU128Encoder = getU128Encoder; + exports2.getU16Codec = getU16Codec; + exports2.getU16Decoder = getU16Decoder; + exports2.getU16Encoder = getU16Encoder; + exports2.getU32Codec = getU32Codec; + exports2.getU32Decoder = getU32Decoder; + exports2.getU32Encoder = getU32Encoder; + exports2.getU64Codec = getU64Codec; + exports2.getU64Decoder = getU64Decoder; + exports2.getU64Encoder = getU64Encoder; + exports2.getU8Codec = getU8Codec; + exports2.getU8Decoder = getU8Decoder; + exports2.getU8Encoder = getU8Encoder; + } +}); + +// node_modules/@solana/codecs-data-structures/dist/index.node.cjs +var require_index_node9 = __commonJS({ + "node_modules/@solana/codecs-data-structures/dist/index.node.cjs"(exports2) { + "use strict"; + var codecsCore = require_index_node7(); + var codecsNumbers = require_index_node8(); + var errors = require_index_node6(); + function assertValidNumberOfItemsForCodec(codecDescription, expected, actual) { + if (expected !== actual) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS, { + actual, + codecDescription, + expected + }); + } + } + function maxCodecSizes(sizes) { + return sizes.reduce( + (all, size) => all === null || size === null ? null : Math.max(all, size), + 0 + ); + } + function sumCodecSizes(sizes) { + return sizes.reduce((all, size) => all === null || size === null ? null : all + size, 0); + } + function getFixedSize(codec) { + return codecsCore.isFixedSize(codec) ? codec.fixedSize : null; + } + function getMaxSize(codec) { + return codecsCore.isFixedSize(codec) ? codec.fixedSize : codec.maxSize ?? null; + } + function getArrayEncoder(item, config = {}) { + const size = config.size ?? codecsNumbers.getU32Encoder(); + const fixedSize = computeArrayLikeCodecSize(size, getFixedSize(item)); + const maxSize = computeArrayLikeCodecSize(size, getMaxSize(item)) ?? void 0; + return codecsCore.createEncoder({ + ...fixedSize !== null ? { fixedSize } : { + getSizeFromValue: (array11) => { + const prefixSize = typeof size === "object" ? codecsCore.getEncodedSize(array11.length, size) : 0; + return prefixSize + [...array11].reduce((all, value) => all + codecsCore.getEncodedSize(value, item), 0); + }, + maxSize + }, + write: (array11, bytes7, offset) => { + if (typeof size === "number") { + assertValidNumberOfItemsForCodec("array", size, array11.length); + } + if (typeof size === "object") { + offset = size.write(array11.length, bytes7, offset); + } + array11.forEach((value) => { + offset = item.write(value, bytes7, offset); + }); + return offset; + } + }); + } + function getArrayDecoder(item, config = {}) { + const size = config.size ?? codecsNumbers.getU32Decoder(); + const itemSize = getFixedSize(item); + const fixedSize = computeArrayLikeCodecSize(size, itemSize); + const maxSize = computeArrayLikeCodecSize(size, getMaxSize(item)) ?? void 0; + return codecsCore.createDecoder({ + ...fixedSize !== null ? { fixedSize } : { maxSize }, + read: (bytes7, offset) => { + const array11 = []; + if (typeof size === "object" && bytes7.slice(offset).length === 0) { + return [array11, offset]; + } + if (size === "remainder") { + while (offset < bytes7.length) { + const [value, newOffset2] = item.read(bytes7, offset); + offset = newOffset2; + array11.push(value); + } + return [array11, offset]; + } + const [resolvedSize, newOffset] = typeof size === "number" ? [size, offset] : size.read(bytes7, offset); + offset = newOffset; + for (let i = 0; i < resolvedSize; i += 1) { + const [value, newOffset2] = item.read(bytes7, offset); + offset = newOffset2; + array11.push(value); + } + return [array11, offset]; + } + }); + } + function getArrayCodec(item, config = {}) { + return codecsCore.combineCodec(getArrayEncoder(item, config), getArrayDecoder(item, config)); + } + function computeArrayLikeCodecSize(size, itemSize) { + if (typeof size !== "number") return null; + if (size === 0) return 0; + return itemSize === null ? null : itemSize * size; + } + function getBitArrayEncoder(size, config = {}) { + const parsedConfig = typeof config === "boolean" ? { backward: config } : config; + const backward = parsedConfig.backward ?? false; + return codecsCore.createEncoder({ + fixedSize: size, + write(value, bytes7, offset) { + const bytesToAdd = []; + for (let i = 0; i < size; i += 1) { + let byte = 0; + for (let j = 0; j < 8; j += 1) { + const feature = Number(value[i * 8 + j] ?? 0); + byte |= feature << (backward ? j : 7 - j); + } + if (backward) { + bytesToAdd.unshift(byte); + } else { + bytesToAdd.push(byte); + } + } + bytes7.set(bytesToAdd, offset); + return size; + } + }); + } + function getBitArrayDecoder(size, config = {}) { + const parsedConfig = typeof config === "boolean" ? { backward: config } : config; + const backward = parsedConfig.backward ?? false; + return codecsCore.createDecoder({ + fixedSize: size, + read(bytes7, offset) { + codecsCore.assertByteArrayHasEnoughBytesForCodec("bitArray", size, bytes7, offset); + const booleans = []; + let slice = bytes7.slice(offset, offset + size); + slice = backward ? slice.reverse() : slice; + slice.forEach((byte) => { + for (let i = 0; i < 8; i += 1) { + if (backward) { + booleans.push(Boolean(byte & 1)); + byte >>= 1; + } else { + booleans.push(Boolean(byte & 128)); + byte <<= 1; + } + } + }); + return [booleans, offset + size]; + } + }); + } + function getBitArrayCodec(size, config = {}) { + return codecsCore.combineCodec(getBitArrayEncoder(size, config), getBitArrayDecoder(size, config)); + } + function getBooleanEncoder(config = {}) { + return codecsCore.transformEncoder(config.size ?? codecsNumbers.getU8Encoder(), (value) => value ? 1 : 0); + } + function getBooleanDecoder(config = {}) { + return codecsCore.transformDecoder(config.size ?? codecsNumbers.getU8Decoder(), (value) => Number(value) === 1); + } + function getBooleanCodec(config = {}) { + return codecsCore.combineCodec(getBooleanEncoder(config), getBooleanDecoder(config)); + } + function getBytesEncoder() { + return codecsCore.createEncoder({ + getSizeFromValue: (value) => value.length, + write: (value, bytes7, offset) => { + bytes7.set(value, offset); + return offset + value.length; + } + }); + } + function getBytesDecoder() { + return codecsCore.createDecoder({ + read: (bytes7, offset) => { + const slice = bytes7.slice(offset); + return [slice, offset + slice.length]; + } + }); + } + function getBytesCodec() { + return codecsCore.combineCodec(getBytesEncoder(), getBytesDecoder()); + } + var getBase16Decoder = () => codecsCore.createDecoder({ + read(bytes7, offset) { + const value = bytes7.slice(offset).reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); + return [value, bytes7.length]; + } + }); + function getConstantEncoder(constant) { + return codecsCore.createEncoder({ + fixedSize: constant.length, + write: (_, bytes7, offset) => { + bytes7.set(constant, offset); + return offset + constant.length; + } + }); + } + function getConstantDecoder(constant) { + return codecsCore.createDecoder({ + fixedSize: constant.length, + read: (bytes7, offset) => { + const base16 = getBase16Decoder(); + if (!codecsCore.containsBytes(bytes7, constant, offset)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_CONSTANT, { + constant, + data: bytes7, + hexConstant: base16.decode(constant), + hexData: base16.decode(bytes7), + offset + }); + } + return [void 0, offset + constant.length]; + } + }); + } + function getConstantCodec(constant) { + return codecsCore.combineCodec(getConstantEncoder(constant), getConstantDecoder(constant)); + } + function getTupleEncoder(items) { + const fixedSize = sumCodecSizes(items.map(getFixedSize)); + const maxSize = sumCodecSizes(items.map(getMaxSize)) ?? void 0; + return codecsCore.createEncoder({ + ...fixedSize === null ? { + getSizeFromValue: (value) => items.map((item, index) => codecsCore.getEncodedSize(value[index], item)).reduce((all, one) => all + one, 0), + maxSize + } : { fixedSize }, + write: (value, bytes7, offset) => { + assertValidNumberOfItemsForCodec("tuple", items.length, value.length); + items.forEach((item, index) => { + offset = item.write(value[index], bytes7, offset); + }); + return offset; + } + }); + } + function getTupleDecoder(items) { + const fixedSize = sumCodecSizes(items.map(getFixedSize)); + const maxSize = sumCodecSizes(items.map(getMaxSize)) ?? void 0; + return codecsCore.createDecoder({ + ...fixedSize === null ? { maxSize } : { fixedSize }, + read: (bytes7, offset) => { + const values = []; + items.forEach((item) => { + const [newValue, newOffset] = item.read(bytes7, offset); + values.push(newValue); + offset = newOffset; + }); + return [values, offset]; + } + }); + } + function getTupleCodec(items) { + return codecsCore.combineCodec( + getTupleEncoder(items), + getTupleDecoder(items) + ); + } + function getUnionEncoder(variants, getIndexFromValue) { + const fixedSize = getUnionFixedSize(variants); + const write = (variant, bytes7, offset) => { + const index = getIndexFromValue(variant); + assertValidVariantIndex(variants, index); + return variants[index].write(variant, bytes7, offset); + }; + if (fixedSize !== null) { + return codecsCore.createEncoder({ fixedSize, write }); + } + const maxSize = getUnionMaxSize(variants); + return codecsCore.createEncoder({ + ...maxSize !== null ? { maxSize } : {}, + getSizeFromValue: (variant) => { + const index = getIndexFromValue(variant); + assertValidVariantIndex(variants, index); + return codecsCore.getEncodedSize(variant, variants[index]); + }, + write + }); + } + function getUnionDecoder(variants, getIndexFromBytes) { + const fixedSize = getUnionFixedSize(variants); + const read = (bytes7, offset) => { + const index = getIndexFromBytes(bytes7, offset); + assertValidVariantIndex(variants, index); + return variants[index].read(bytes7, offset); + }; + if (fixedSize !== null) { + return codecsCore.createDecoder({ fixedSize, read }); + } + const maxSize = getUnionMaxSize(variants); + return codecsCore.createDecoder({ ...maxSize !== null ? { maxSize } : {}, read }); + } + function getUnionCodec(variants, getIndexFromValue, getIndexFromBytes) { + return codecsCore.combineCodec( + getUnionEncoder(variants, getIndexFromValue), + getUnionDecoder(variants, getIndexFromBytes) + ); + } + function assertValidVariantIndex(variants, index) { + if (typeof variants[index] === "undefined") { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE, { + maxRange: variants.length - 1, + minRange: 0, + variant: index + }); + } + } + function getUnionFixedSize(variants) { + if (variants.length === 0) return 0; + if (!codecsCore.isFixedSize(variants[0])) return null; + const variantSize = variants[0].fixedSize; + const sameSizedVariants = variants.every((variant) => codecsCore.isFixedSize(variant) && variant.fixedSize === variantSize); + return sameSizedVariants ? variantSize : null; + } + function getUnionMaxSize(variants) { + return maxCodecSizes(variants.map((variant) => getMaxSize(variant))); + } + function getDiscriminatedUnionEncoder(variants, config = {}) { + const discriminatorProperty = config.discriminator ?? "__kind"; + const prefix = config.size ?? codecsNumbers.getU8Encoder(); + return getUnionEncoder( + variants.map( + ([, variant], index) => codecsCore.transformEncoder(getTupleEncoder([prefix, variant]), (value) => [index, value]) + ), + (value) => getVariantDiscriminator(variants, value[discriminatorProperty]) + ); + } + function getDiscriminatedUnionDecoder(variants, config = {}) { + const discriminatorProperty = config.discriminator ?? "__kind"; + const prefix = config.size ?? codecsNumbers.getU8Decoder(); + return getUnionDecoder( + variants.map( + ([discriminator, variant]) => codecsCore.transformDecoder(getTupleDecoder([prefix, variant]), ([, value]) => ({ + [discriminatorProperty]: discriminator, + ...value + })) + ), + (bytes7, offset) => Number(prefix.read(bytes7, offset)[0]) + ); + } + function getDiscriminatedUnionCodec(variants, config = {}) { + return codecsCore.combineCodec( + getDiscriminatedUnionEncoder(variants, config), + getDiscriminatedUnionDecoder(variants, config) + ); + } + function getVariantDiscriminator(variants, discriminatorValue) { + const discriminator = variants.findIndex(([key]) => discriminatorValue === key); + if (discriminator < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT, { + value: discriminatorValue, + variants: variants.map(([key]) => key) + }); + } + return discriminator; + } + var getDataEnumEncoder = getDiscriminatedUnionEncoder; + var getDataEnumDecoder = getDiscriminatedUnionDecoder; + var getDataEnumCodec = getDiscriminatedUnionCodec; + function getEnumStats(constructor) { + const numericalValues = [ + ...new Set(Object.values(constructor).filter((v) => typeof v === "number")) + ].sort(); + const enumRecord = Object.fromEntries(Object.entries(constructor).slice(numericalValues.length)); + const enumKeys = Object.keys(enumRecord); + const enumValues = Object.values(enumRecord); + const stringValues = [ + .../* @__PURE__ */ new Set([...enumKeys, ...enumValues.filter((v) => typeof v === "string")]) + ]; + return { enumKeys, enumRecord, enumValues, numericalValues, stringValues }; + } + function getEnumIndexFromVariant({ + enumKeys, + enumValues, + variant + }) { + const valueIndex = findLastIndex(enumValues, (value) => value === variant); + if (valueIndex >= 0) return valueIndex; + return enumKeys.findIndex((key) => key === variant); + } + function getEnumIndexFromDiscriminator({ + discriminator, + enumKeys, + enumValues, + useValuesAsDiscriminators + }) { + if (!useValuesAsDiscriminators) { + return discriminator >= 0 && discriminator < enumKeys.length ? discriminator : -1; + } + return findLastIndex(enumValues, (value) => value === discriminator); + } + function findLastIndex(array11, predicate) { + let l = array11.length; + while (l--) { + if (predicate(array11[l], l, array11)) return l; + } + return -1; + } + function formatNumericalValues(values) { + if (values.length === 0) return ""; + let range = [values[0], values[0]]; + const ranges = []; + for (let index = 1; index < values.length; index++) { + const value = values[index]; + if (range[1] + 1 === value) { + range[1] = value; + } else { + ranges.push(range[0] === range[1] ? `${range[0]}` : `${range[0]}-${range[1]}`); + range = [value, value]; + } + } + ranges.push(range[0] === range[1] ? `${range[0]}` : `${range[0]}-${range[1]}`); + return ranges.join(", "); + } + function getEnumEncoder(constructor, config = {}) { + const prefix = config.size ?? codecsNumbers.getU8Encoder(); + const useValuesAsDiscriminators = config.useValuesAsDiscriminators ?? false; + const { enumKeys, enumValues, numericalValues, stringValues } = getEnumStats(constructor); + if (useValuesAsDiscriminators && enumValues.some((value) => typeof value === "string")) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS, { + stringValues: enumValues.filter((v) => typeof v === "string") + }); + } + return codecsCore.transformEncoder(prefix, (variant) => { + const index = getEnumIndexFromVariant({ enumKeys, enumValues, variant }); + if (index < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT, { + formattedNumericalValues: formatNumericalValues(numericalValues), + numericalValues, + stringValues, + variant + }); + } + return useValuesAsDiscriminators ? enumValues[index] : index; + }); + } + function getEnumDecoder(constructor, config = {}) { + const prefix = config.size ?? codecsNumbers.getU8Decoder(); + const useValuesAsDiscriminators = config.useValuesAsDiscriminators ?? false; + const { enumKeys, enumValues, numericalValues } = getEnumStats(constructor); + if (useValuesAsDiscriminators && enumValues.some((value) => typeof value === "string")) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS, { + stringValues: enumValues.filter((v) => typeof v === "string") + }); + } + return codecsCore.transformDecoder(prefix, (value) => { + const discriminator = Number(value); + const index = getEnumIndexFromDiscriminator({ + discriminator, + enumKeys, + enumValues, + useValuesAsDiscriminators + }); + if (index < 0) { + const validDiscriminators = useValuesAsDiscriminators ? numericalValues : [...Array(enumKeys.length).keys()]; + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE, { + discriminator, + formattedValidDiscriminators: formatNumericalValues(validDiscriminators), + validDiscriminators + }); + } + return enumValues[index]; + }); + } + function getEnumCodec(constructor, config = {}) { + return codecsCore.combineCodec(getEnumEncoder(constructor, config), getEnumDecoder(constructor, config)); + } + var getScalarEnumEncoder = getEnumEncoder; + var getScalarEnumDecoder = getEnumDecoder; + var getScalarEnumCodec = getEnumCodec; + function getHiddenPrefixEncoder(encoder, prefixedEncoders) { + return codecsCore.transformEncoder( + getTupleEncoder([...prefixedEncoders, encoder]), + (value) => [...prefixedEncoders.map(() => void 0), value] + ); + } + function getHiddenPrefixDecoder(decoder, prefixedDecoders) { + return codecsCore.transformDecoder( + getTupleDecoder([...prefixedDecoders, decoder]), + (tuple) => tuple[tuple.length - 1] + ); + } + function getHiddenPrefixCodec(codec, prefixedCodecs) { + return codecsCore.combineCodec(getHiddenPrefixEncoder(codec, prefixedCodecs), getHiddenPrefixDecoder(codec, prefixedCodecs)); + } + function getHiddenSuffixEncoder(encoder, suffixedEncoders) { + return codecsCore.transformEncoder( + getTupleEncoder([encoder, ...suffixedEncoders]), + (value) => [value, ...suffixedEncoders.map(() => void 0)] + ); + } + function getHiddenSuffixDecoder(decoder, suffixedDecoders) { + return codecsCore.transformDecoder( + getTupleDecoder([decoder, ...suffixedDecoders]), + (tuple) => tuple[0] + ); + } + function getHiddenSuffixCodec(codec, suffixedCodecs) { + return codecsCore.combineCodec(getHiddenSuffixEncoder(codec, suffixedCodecs), getHiddenSuffixDecoder(codec, suffixedCodecs)); + } + function getMapEncoder(key, value, config = {}) { + return codecsCore.transformEncoder( + getArrayEncoder(getTupleEncoder([key, value]), config), + (map) => [...map.entries()] + ); + } + function getMapDecoder(key, value, config = {}) { + return codecsCore.transformDecoder( + getArrayDecoder(getTupleDecoder([key, value]), config), + (entries) => new Map(entries) + ); + } + function getMapCodec(key, value, config = {}) { + return codecsCore.combineCodec(getMapEncoder(key, value, config), getMapDecoder(key, value, config)); + } + function getUnitEncoder() { + return codecsCore.createEncoder({ + fixedSize: 0, + write: (_value, _bytes, offset) => offset + }); + } + function getUnitDecoder() { + return codecsCore.createDecoder({ + fixedSize: 0, + read: (_bytes, offset) => [void 0, offset] + }); + } + function getUnitCodec() { + return codecsCore.combineCodec(getUnitEncoder(), getUnitDecoder()); + } + function getNullableEncoder(item, config = {}) { + const prefix = (() => { + if (config.prefix === null) { + return codecsCore.transformEncoder(getUnitEncoder(), (_boolean) => void 0); + } + return getBooleanEncoder({ size: config.prefix ?? codecsNumbers.getU8Encoder() }); + })(); + const noneValue = (() => { + if (config.noneValue === "zeroes") { + codecsCore.assertIsFixedSize(item); + return codecsCore.fixEncoderSize(getUnitEncoder(), item.fixedSize); + } + if (!config.noneValue) { + return getUnitEncoder(); + } + return getConstantEncoder(config.noneValue); + })(); + return getUnionEncoder( + [ + codecsCore.transformEncoder(getTupleEncoder([prefix, noneValue]), (_value) => [ + false, + void 0 + ]), + codecsCore.transformEncoder(getTupleEncoder([prefix, item]), (value) => [true, value]) + ], + (variant) => Number(variant !== null) + ); + } + function getNullableDecoder(item, config = {}) { + const prefix = (() => { + if (config.prefix === null) { + return codecsCore.transformDecoder(getUnitDecoder(), () => false); + } + return getBooleanDecoder({ size: config.prefix ?? codecsNumbers.getU8Decoder() }); + })(); + const noneValue = (() => { + if (config.noneValue === "zeroes") { + codecsCore.assertIsFixedSize(item); + return codecsCore.fixDecoderSize(getUnitDecoder(), item.fixedSize); + } + if (!config.noneValue) { + return getUnitDecoder(); + } + return getConstantDecoder(config.noneValue); + })(); + return getUnionDecoder( + [ + codecsCore.transformDecoder(getTupleDecoder([prefix, noneValue]), () => null), + codecsCore.transformDecoder(getTupleDecoder([prefix, item]), ([, value]) => value) + ], + (bytes7, offset) => { + if (config.prefix === null && !config.noneValue) { + return Number(offset < bytes7.length); + } + if (config.prefix === null && config.noneValue != null) { + const zeroValue = config.noneValue === "zeroes" ? new Uint8Array(noneValue.fixedSize).fill(0) : config.noneValue; + return codecsCore.containsBytes(bytes7, zeroValue, offset) ? 0 : 1; + } + return Number(prefix.read(bytes7, offset)[0]); + } + ); + } + function getNullableCodec(item, config = {}) { + return codecsCore.combineCodec( + getNullableEncoder(item, config), + getNullableDecoder(item, config) + ); + } + function getSetEncoder(item, config = {}) { + return codecsCore.transformEncoder(getArrayEncoder(item, config), (set) => [...set]); + } + function getSetDecoder(item, config = {}) { + return codecsCore.transformDecoder(getArrayDecoder(item, config), (entries) => new Set(entries)); + } + function getSetCodec(item, config = {}) { + return codecsCore.combineCodec(getSetEncoder(item, config), getSetDecoder(item, config)); + } + function getStructEncoder(fields) { + const fieldCodecs = fields.map(([, codec]) => codec); + const fixedSize = sumCodecSizes(fieldCodecs.map(getFixedSize)); + const maxSize = sumCodecSizes(fieldCodecs.map(getMaxSize)) ?? void 0; + return codecsCore.createEncoder({ + ...fixedSize === null ? { + getSizeFromValue: (value) => fields.map(([key, codec]) => codecsCore.getEncodedSize(value[key], codec)).reduce((all, one) => all + one, 0), + maxSize + } : { fixedSize }, + write: (struct2, bytes7, offset) => { + fields.forEach(([key, codec]) => { + offset = codec.write(struct2[key], bytes7, offset); + }); + return offset; + } + }); + } + function getStructDecoder(fields) { + const fieldCodecs = fields.map(([, codec]) => codec); + const fixedSize = sumCodecSizes(fieldCodecs.map(getFixedSize)); + const maxSize = sumCodecSizes(fieldCodecs.map(getMaxSize)) ?? void 0; + return codecsCore.createDecoder({ + ...fixedSize === null ? { maxSize } : { fixedSize }, + read: (bytes7, offset) => { + const struct2 = {}; + fields.forEach(([key, codec]) => { + const [value, newOffset] = codec.read(bytes7, offset); + offset = newOffset; + struct2[key] = value; + }); + return [struct2, offset]; + } + }); + } + function getStructCodec(fields) { + return codecsCore.combineCodec( + getStructEncoder(fields), + getStructDecoder(fields) + ); + } + exports2.assertValidNumberOfItemsForCodec = assertValidNumberOfItemsForCodec; + exports2.getArrayCodec = getArrayCodec; + exports2.getArrayDecoder = getArrayDecoder; + exports2.getArrayEncoder = getArrayEncoder; + exports2.getBitArrayCodec = getBitArrayCodec; + exports2.getBitArrayDecoder = getBitArrayDecoder; + exports2.getBitArrayEncoder = getBitArrayEncoder; + exports2.getBooleanCodec = getBooleanCodec; + exports2.getBooleanDecoder = getBooleanDecoder; + exports2.getBooleanEncoder = getBooleanEncoder; + exports2.getBytesCodec = getBytesCodec; + exports2.getBytesDecoder = getBytesDecoder; + exports2.getBytesEncoder = getBytesEncoder; + exports2.getConstantCodec = getConstantCodec; + exports2.getConstantDecoder = getConstantDecoder; + exports2.getConstantEncoder = getConstantEncoder; + exports2.getDataEnumCodec = getDataEnumCodec; + exports2.getDataEnumDecoder = getDataEnumDecoder; + exports2.getDataEnumEncoder = getDataEnumEncoder; + exports2.getDiscriminatedUnionCodec = getDiscriminatedUnionCodec; + exports2.getDiscriminatedUnionDecoder = getDiscriminatedUnionDecoder; + exports2.getDiscriminatedUnionEncoder = getDiscriminatedUnionEncoder; + exports2.getEnumCodec = getEnumCodec; + exports2.getEnumDecoder = getEnumDecoder; + exports2.getEnumEncoder = getEnumEncoder; + exports2.getHiddenPrefixCodec = getHiddenPrefixCodec; + exports2.getHiddenPrefixDecoder = getHiddenPrefixDecoder; + exports2.getHiddenPrefixEncoder = getHiddenPrefixEncoder; + exports2.getHiddenSuffixCodec = getHiddenSuffixCodec; + exports2.getHiddenSuffixDecoder = getHiddenSuffixDecoder; + exports2.getHiddenSuffixEncoder = getHiddenSuffixEncoder; + exports2.getMapCodec = getMapCodec; + exports2.getMapDecoder = getMapDecoder; + exports2.getMapEncoder = getMapEncoder; + exports2.getNullableCodec = getNullableCodec; + exports2.getNullableDecoder = getNullableDecoder; + exports2.getNullableEncoder = getNullableEncoder; + exports2.getScalarEnumCodec = getScalarEnumCodec; + exports2.getScalarEnumDecoder = getScalarEnumDecoder; + exports2.getScalarEnumEncoder = getScalarEnumEncoder; + exports2.getSetCodec = getSetCodec; + exports2.getSetDecoder = getSetDecoder; + exports2.getSetEncoder = getSetEncoder; + exports2.getStructCodec = getStructCodec; + exports2.getStructDecoder = getStructDecoder; + exports2.getStructEncoder = getStructEncoder; + exports2.getTupleCodec = getTupleCodec; + exports2.getTupleDecoder = getTupleDecoder; + exports2.getTupleEncoder = getTupleEncoder; + exports2.getUnionCodec = getUnionCodec; + exports2.getUnionDecoder = getUnionDecoder; + exports2.getUnionEncoder = getUnionEncoder; + exports2.getUnitCodec = getUnitCodec; + exports2.getUnitDecoder = getUnitDecoder; + exports2.getUnitEncoder = getUnitEncoder; + } +}); + +// node_modules/@solana/codecs/node_modules/@solana/codecs-numbers/node_modules/@solana/errors/dist/index.node.cjs +var require_index_node10 = __commonJS({ + "node_modules/@solana/codecs/node_modules/@solana/codecs-numbers/node_modules/@solana/errors/dist/index.node.cjs"(exports2) { + "use strict"; + var SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = 1; + var SOLANA_ERROR__INVALID_NONCE = 2; + var SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = 3; + var SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = 4; + var SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = 5; + var SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = 6; + var SOLANA_ERROR__MALFORMED_BIGINT_STRING = 7; + var SOLANA_ERROR__MALFORMED_NUMBER_STRING = 8; + var SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = 9; + var SOLANA_ERROR__JSON_RPC__PARSE_ERROR = -32700; + var SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603; + var SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602; + var SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601; + var SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = -32016; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = -32015; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = -32014; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = -32013; + var SOLANA_ERROR__JSON_RPC__SCAN_ERROR = -32012; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = -32011; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = -32010; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = -32009; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = -32008; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = -32007; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = -32006; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = -32005; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = -32004; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = -32003; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = -32002; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = -32001; + var SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = 28e5; + var SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = 2800001; + var SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = 2800002; + var SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = 2800003; + var SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = 2800004; + var SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = 2800005; + var SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = 2800006; + var SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = 2800007; + var SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = 2800008; + var SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = 2800009; + var SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = 2800010; + var SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = 323e4; + var SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = 32300001; + var SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = 3230002; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = 3230003; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = 3230004; + var SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = 361e4; + var SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = 3610001; + var SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = 3610002; + var SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = 3610003; + var SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = 3610004; + var SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = 3610005; + var SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = 3610006; + var SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = 3610007; + var SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = 3611e3; + var SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = 3704e3; + var SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = 3704001; + var SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = 3704002; + var SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = 3704003; + var SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = 3704004; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = 4128e3; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = 4128001; + var SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = 4128002; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = 4615e3; + var SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = 4615001; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = 4615002; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = 4615003; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = 4615004; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = 4615005; + var SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = 4615006; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = 4615007; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = 4615008; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = 4615009; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = 4615010; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = 4615011; + var SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = 4615012; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = 4615013; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = 4615014; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = 4615015; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = 4615016; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = 4615017; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = 4615018; + var SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = 4615019; + var SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = 4615020; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = 4615021; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = 4615022; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = 4615023; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 4615024; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = 4615025; + var SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = 4615026; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = 4615027; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = 4615028; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = 4615029; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = 4615030; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = 4615031; + var SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = 4615032; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = 4615033; + var SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = 4615034; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = 4615035; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = 4615036; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = 4615037; + var SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = 4615038; + var SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = 4615039; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = 4615040; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = 4615041; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = 4615042; + var SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = 4615043; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = 4615044; + var SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = 4615045; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = 4615046; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = 4615047; + var SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = 4615048; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = 4615049; + var SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = 4615050; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = 4615051; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = 4615052; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = 4615053; + var SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = 4615054; + var SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = 5508e3; + var SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = 5508001; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = 5508002; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = 5508003; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = 5508004; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = 5508005; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = 5508006; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = 5508007; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = 5508008; + var SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = 5508009; + var SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = 5508010; + var SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = 5508011; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = 5663e3; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = 5663001; + var SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = 5663002; + var SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = 5663003; + var SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = 5663004; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = 5663005; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = 5663006; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = 5663007; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = 5663008; + var SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = 5663009; + var SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = 5663010; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = 5663011; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = 5663012; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = 5663013; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = 5663014; + var SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = 5663015; + var SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = 5663016; + var SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = 5663017; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = 5663018; + var SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = 705e4; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = 7050001; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = 7050002; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = 7050003; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = 7050004; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 7050005; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = 7050006; + var SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = 7050007; + var SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = 7050008; + var SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = 7050009; + var SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = 7050010; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = 7050011; + var SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = 7050012; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = 7050013; + var SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = 7050014; + var SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = 7050015; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 7050016; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = 7050017; + var SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = 7050018; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = 7050019; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = 7050020; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = 7050021; + var SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = 7050022; + var SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = 7050023; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = 7050024; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = 7050025; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = 7050026; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = 7050027; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = 7050028; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = 7050029; + var SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = 7050030; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = 7050031; + var SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = 7050032; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 7050033; + var SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = 7050034; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = 7050035; + var SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = 7050036; + var SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = 8078e3; + var SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = 8078001; + var SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = 8078002; + var SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = 8078003; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = 8078004; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = 8078005; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = 8078006; + var SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = 8078007; + var SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = 8078008; + var SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = 8078009; + var SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = 8078010; + var SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = 8078011; + var SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = 8078012; + var SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = 8078013; + var SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = 8078014; + var SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = 8078015; + var SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = 8078016; + var SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = 8078017; + var SOLANA_ERROR__CODECS__INVALID_CONSTANT = 8078018; + var SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = 8078019; + var SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = 8078020; + var SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = 8078021; + var SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = 8078022; + var SOLANA_ERROR__RPC__INTEGER_OVERFLOW = 81e5; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = 8100001; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = 8100002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = 819e4; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = 8190001; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = 8190002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = 8190003; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = 8190004; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = 99e5; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = 9900001; + var SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = 9900002; + var SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = 9900003; + function encodeValue(value) { + if (Array.isArray(value)) { + const commaSeparatedValues = value.map(encodeValue).join( + "%2C%20" + /* ", " */ + ); + return "%5B" + commaSeparatedValues + /* "]" */ + "%5D"; + } else if (typeof value === "bigint") { + return `${value}n`; + } else { + return encodeURIComponent( + String( + value != null && Object.getPrototypeOf(value) === null ? ( + // Plain objects with no prototype don't have a `toString` method. + // Convert them before stringifying them. + { ...value } + ) : value + ) + ); + } + } + function encodeObjectContextEntry([key, value]) { + return `${key}=${encodeValue(value)}`; + } + function encodeContextObject(context) { + const searchParamsString = Object.entries(context).map(encodeObjectContextEntry).join("&"); + return Buffer.from(searchParamsString, "utf8").toString("base64"); + } + var SolanaErrorMessages = { + [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: "Account not found at address: $address", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]: "Not all accounts were decoded. Encoded accounts found at addresses: $addresses.", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: "Expected decoded account at address: $address", + [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: "Failed to decode account data at address: $address", + [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: "Accounts not found at addresses: $addresses", + [SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED]: "Unable to find a viable program address bump seed.", + [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: "$putativeAddress is not a base58-encoded address.", + [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]: "Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY]: "The `CryptoKey` must be an `Ed25519` public key.", + [SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE]: "Invalid seeds; point must fall off the Ed25519 curve.", + [SOLANA_ERROR__ADDRESSES__MALFORMED_PDA]: "Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].", + [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]: "A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.", + [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]: "The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.", + [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]: "Expected program derived address bump to be in the range [0, 255], got: $bump.", + [SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER]: "Program address cannot end with PDA marker.", + [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]: "The network has progressed past the last block for which this transaction could have been committed.", + [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]: "Codec [$codecDescription] cannot decode empty byte arrays.", + [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]: "Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.", + [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]: "Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]: "Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]: "Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH]: "Encoder and decoder must either both be fixed-size or variable-size.", + [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]: "Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.", + [SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH]: "Expected a fixed-size codec, got a variable-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]: "Codec [$codecDescription] expected a positive byte length, got $bytesLength.", + [SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH]: "Expected a variable-size codec, got a fixed-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]: "Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].", + [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]: "Codec [$codecDescription] expected $expected bytes, got $bytesLength.", + [SOLANA_ERROR__CODECS__INVALID_CONSTANT]: "Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].", + [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]: "Invalid discriminated union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]: "Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.", + [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]: "Invalid literal union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]: "Expected [$codecDescription] to have $expected items, got $actual.", + [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: "Invalid value $value for base $base with alphabet $alphabet.", + [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]: "Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.", + [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]: "Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.", + [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]: "Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.", + [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]: "Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].", + [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]: "Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.", + [SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED]: "No random values implementation could be found.", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED]: "instruction requires an uninitialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED]: "instruction tries to borrow reference for an account which is already borrowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "instruction left account with an outstanding borrowed reference", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED]: "program other than the account's owner changed the size of the account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL]: "account data too small for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE]: "instruction expected an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT]: "An account does not have enough lamports to be rent-exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW]: "Program arithmetic overflowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: "Failed to serialize or deserialize account data: $encodedData", + [SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS]: "Builtin programs must consume compute units", + [SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH]: "Cross-program invocation call depth too deep", + [SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED]: "Computational budget exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: "custom program error: #$code", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX]: "instruction contains duplicate accounts", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC]: "instruction modifications of multiply-passed account differ", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT]: "executable accounts must be rent exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED]: "instruction changed executable accounts data", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE]: "instruction changed the balance of an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED]: "instruction changed executable bit of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED]: "instruction modified data of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND]: "instruction spent from the balance of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR]: "generic instruction error", + [SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER]: "Provided owner is not allowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE]: "Account is immutable", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY]: "Incorrect authority provided", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID]: "incorrect program id for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS]: "insufficient funds for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA]: "invalid account data for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER]: "Invalid account owner", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT]: "invalid program argument", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR]: "program returned invalid error code", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA]: "invalid instruction data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC]: "Failed to reallocate account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS]: "Provided seeds do not result in a valid address", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED]: "Accounts data allocations exceeded the maximum allowed per transaction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED]: "Max accounts exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED]: "Max instruction trace length exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED]: "Length of the seed is too long for address generation", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT]: "An account required by the instruction is missing", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE]: "missing required signature for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID]: "instruction illegally modified the program id of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS]: "insufficient account keys for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION]: "Cross-program invocation with unauthorized signer or writable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE]: "Failed to create program execution environment", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE]: "Program failed to compile", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE]: "Program failed to complete", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED]: "instruction modified data of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE]: "instruction changed the balance of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED]: "Cross-program invocation reentrancy not allowed for this instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED]: "instruction modified rent epoch of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION]: "sum of account balances before and after instruction do not match", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT]: "instruction requires an initialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: "", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID]: "Unsupported program id", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR]: "Unsupported sysvar", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: "The instruction does not have any accounts.", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: "The instruction does not have any data.", + [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]: "Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.", + [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]: "Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__INVALID_NONCE]: "The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`", + [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]: "Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]: "Invariant violation: Switch statement non-exhaustive. Received unexpected value `$unexpectedValue`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE]: "Invariant violation: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING]: "Invariant violation: WebSocket message iterator is missing state storage. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: "JSON-RPC error: Internal JSON-RPC error ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: "JSON-RPC error: Invalid method parameter(s) ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]: "JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]: "JSON-RPC error: The method does not exist / is not available ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]: "JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: "Minimum context slot has not been reached", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: "Node is unhealthy; behind by $numSlotsBehind slots", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT]: "No snapshot", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: "Transaction simulation failed", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE]: "Transaction history is not available from this node", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH]: "Transaction signature length mismatch", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE]: "Transaction signature verification failure", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: "$__serverMessage", + [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: "Key pair bytes must be of length 64, got $byteLength.", + [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]: "Expected private key bytes with length 32. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]: "Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY]: "The provided private key does not match the provided public key.", + [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.", + [SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE]: "Lamports value must be in the range [0, 2e64-1]", + [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: "`$value` cannot be parsed as a `BigInt`", + [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: "`$value` cannot be parsed as a `Number`", + [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: "No nonce account could be found at address `$nonceAccountAddress`", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST]: "Either the notification name must end in 'Notifications' or the API must supply a subscription creator function for the notification '$notificationName' to map between the notification name and the subscribe/unsubscribe method names.", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID]: "Failed to obtain a subscription id from the server", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED]: "WebSocket was closed before payload could be added to the send buffer", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED]: "WebSocket connection closed", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT]: "WebSocket failed to connect", + [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]: "The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was `$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds `Number.MAX_SAFE_INTEGER`.", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: "HTTP error ($statusCode): $message", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]: "HTTP header(s) forbidden: $headers. Learn more at https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.", + [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]: "Multiple distinct signers were identified for address `$address`. Please ensure that you are using the same signer instance for each address.", + [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]: "The provided value does not implement the `KeyPairSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]: "The provided value does not implement the `MessageModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]: "The provided value does not implement the `MessagePartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]: "The provided value does not implement any of the `MessageSigner` interfaces", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]: "The provided value does not implement the `TransactionModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]: "The provided value does not implement the `TransactionPartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]: "The provided value does not implement the `TransactionSendingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]: "The provided value does not implement any of the `TransactionSigner` interfaces", + [SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS]: "More than one `TransactionSendingSigner` was identified.", + [SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING]: "No `TransactionSendingSigner` was identified. Please provide a valid `ITransactionWithSingleSendingSigner` transaction.", + [SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED]: "Wallet account signers do not support signing multiple messages/transactions in a single operation", + [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: "Cannot export a non-extractable key.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED]: "No digest implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT]: "Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.", + [SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED]: "This runtime does not support the generation of Ed25519 key pairs.\n\nInstall @solana/webcrypto-ed25519-polyfill and call its `install` function before generating keys in environments that do not support Ed25519.\n\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.", + [SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED]: "No signature verification implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED]: "No key generation implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED]: "No signing implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED]: "No key export implementation could be found.", + [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]: "Timestamp value must be in the range [-8.64e15, 8.64e15]. `$value` given", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "Transaction processing left an account with an outstanding borrowed reference", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE]: "Account in use", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE]: "Account loaded twice", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND]: "Attempt to debit an account but found no record of a prior credit.", + [SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND]: "Transaction loads an address table account that doesn't exist", + [SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED]: "This transaction has already been processed", + [SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND]: "Blockhash not found", + [SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP]: "Loader call chain is too deep", + [SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE]: "Transactions are currently disabled due to cluster maintenance", + [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]: "Transaction contains a duplicate instruction ($index) that is not allowed", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: "Insufficient funds for fee", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]: "Transaction results in an account ($accountIndex) with insufficient funds for rent", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE]: "This account may not be used to pay transaction fees", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX]: "Transaction contains an invalid account reference", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA]: "Transaction loads an address table account with invalid data", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX]: "Transaction address table lookup uses an invalid index", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER]: "Transaction loads an address table account with an invalid owner", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT]: "LoadedAccountsDataSizeLimit set for transaction must be greater than 0.", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION]: "This program may not be used for executing instructions", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT]: "Transaction leaves an account with a lower balance than rent-exempt minimum", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT]: "Transaction loads a writable account that cannot be written", + [SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED]: "Transaction exceeded max loaded accounts data size cap", + [SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE]: "Transaction requires a fee but has no signature present", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND]: "Attempt to load a program that does not exist", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]: "Execution of the program referenced by account at index $accountIndex is temporarily restricted.", + [SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED]: "ResanitizationNeeded", + [SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE]: "Transaction failed to sanitize accounts offsets correctly", + [SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE]: "Transaction did not pass signature verification", + [SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS]: "Transaction locked too many accounts", + [SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION]: "Sum of account balances before and after transaction do not match", + [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: "The transaction failed with the error `$errorName`", + [SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION]: "Transaction version is unsupported", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT]: "Transaction would exceed account data limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT]: "Transaction would exceed total account data limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT]: "Transaction would exceed max account limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT]: "Transaction would exceed max Block Cost Limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT]: "Transaction would exceed max Vote Cost Limit", + [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]: "Attempted to sign a transaction with an address that is not a signer for it", + [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: "Transaction is missing an address at index: $index.", + [SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES]: "Transaction has no expected signers therefore it cannot be encoded", + [SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME]: "Transaction does not have a blockhash lifetime", + [SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME]: "Transaction is not a durable nonce transaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]: "Contents of these address lookup tables unknown: $lookupTableAddresses", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]: "Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING]: "No fee payer set in CompiledTransaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]: "Could not find program address at index $index", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT]: "Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING]: "Transaction is missing a fee payer.", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING]: "Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE]: "Transaction first instruction is not advance nonce account instruction.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING]: "Transaction with no instructions cannot be durable nonce transaction.", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]: "This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]: "This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable", + [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]: "The transaction message expected the transaction to have $signerAddressesLength signatures, got $signaturesLength.", + [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: "Transaction is missing signatures for addresses: $addresses.", + [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]: "Transaction version must be in the range [0, 127]. `$actualVersion` given" + }; + var START_INDEX = "i"; + var TYPE = "t"; + function getHumanReadableErrorMessage(code, context = {}) { + const messageFormatString = SolanaErrorMessages[code]; + if (messageFormatString.length === 0) { + return ""; + } + let state; + function commitStateUpTo(endIndex) { + if (state[TYPE] === 2) { + const variableName = messageFormatString.slice(state[START_INDEX] + 1, endIndex); + fragments.push( + variableName in context ? `${context[variableName]}` : `$${variableName}` + ); + } else if (state[TYPE] === 1) { + fragments.push(messageFormatString.slice(state[START_INDEX], endIndex)); + } + } + const fragments = []; + messageFormatString.split("").forEach((char, ii) => { + if (ii === 0) { + state = { + [START_INDEX]: 0, + [TYPE]: messageFormatString[0] === "\\" ? 0 : messageFormatString[0] === "$" ? 2 : 1 + /* Text */ + }; + return; + } + let nextState; + switch (state[TYPE]) { + case 0: + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + break; + case 1: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } + break; + case 2: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } else if (!char.match(/\w/)) { + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + } + break; + } + if (nextState) { + if (state !== nextState) { + commitStateUpTo(ii); + } + state = nextState; + } + }); + commitStateUpTo(); + return fragments.join(""); + } + function getErrorMessage(code, context = {}) { + if (process.env.NODE_ENV !== "production") { + return getHumanReadableErrorMessage(code, context); + } else { + let decodingAdviceMessage = `Solana error #${code}; Decode this error by running \`npx @solana/errors decode -- ${code}`; + if (Object.keys(context).length) { + decodingAdviceMessage += ` '${encodeContextObject(context)}'`; + } + return `${decodingAdviceMessage}\``; + } + } + function isSolanaError(e, code) { + const isSolanaError2 = e instanceof Error && e.name === "SolanaError"; + if (isSolanaError2) { + if (code !== void 0) { + return e.context.__code === code; + } + return true; + } + return false; + } + var SolanaError = class extends Error { + cause = this.cause; + context; + constructor(...[code, contextAndErrorOptions]) { + let context; + let errorOptions; + if (contextAndErrorOptions) { + const { cause, ...contextRest } = contextAndErrorOptions; + if (cause) { + errorOptions = { cause }; + } + if (Object.keys(contextRest).length > 0) { + context = contextRest; + } + } + const message = getErrorMessage(code, context); + super(message, errorOptions); + this.context = { + __code: code, + ...context + }; + this.name = "SolanaError"; + } + }; + function safeCaptureStackTrace(...args) { + if ("captureStackTrace" in Error && typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(...args); + } + } + function getSolanaErrorFromRpcError({ errorCodeBaseOffset, getErrorContext, orderedErrorNames, rpcEnumError }, constructorOpt) { + let rpcErrorName; + let rpcErrorContext; + if (typeof rpcEnumError === "string") { + rpcErrorName = rpcEnumError; + } else { + rpcErrorName = Object.keys(rpcEnumError)[0]; + rpcErrorContext = rpcEnumError[rpcErrorName]; + } + const codeOffset = orderedErrorNames.indexOf(rpcErrorName); + const errorCode = errorCodeBaseOffset + codeOffset; + const errorContext = getErrorContext(errorCode, rpcErrorName, rpcErrorContext); + const err = new SolanaError(errorCode, errorContext); + safeCaptureStackTrace(err, constructorOpt); + return err; + } + var ORDERED_ERROR_NAMES = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/program/src/instruction.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "GenericError", + "InvalidArgument", + "InvalidInstructionData", + "InvalidAccountData", + "AccountDataTooSmall", + "InsufficientFunds", + "IncorrectProgramId", + "MissingRequiredSignature", + "AccountAlreadyInitialized", + "UninitializedAccount", + "UnbalancedInstruction", + "ModifiedProgramId", + "ExternalAccountLamportSpend", + "ExternalAccountDataModified", + "ReadonlyLamportChange", + "ReadonlyDataModified", + "DuplicateAccountIndex", + "ExecutableModified", + "RentEpochModified", + "NotEnoughAccountKeys", + "AccountDataSizeChanged", + "AccountNotExecutable", + "AccountBorrowFailed", + "AccountBorrowOutstanding", + "DuplicateAccountOutOfSync", + "Custom", + "InvalidError", + "ExecutableDataModified", + "ExecutableLamportChange", + "ExecutableAccountNotRentExempt", + "UnsupportedProgramId", + "CallDepth", + "MissingAccount", + "ReentrancyNotAllowed", + "MaxSeedLengthExceeded", + "InvalidSeeds", + "InvalidRealloc", + "ComputationalBudgetExceeded", + "PrivilegeEscalation", + "ProgramEnvironmentSetupFailure", + "ProgramFailedToComplete", + "ProgramFailedToCompile", + "Immutable", + "IncorrectAuthority", + "BorshIoError", + "AccountNotRentExempt", + "InvalidAccountOwner", + "ArithmeticOverflow", + "UnsupportedSysvar", + "IllegalOwner", + "MaxAccountsDataAllocationsExceeded", + "MaxAccountsExceeded", + "MaxInstructionTraceLengthExceeded", + "BuiltinProgramsMustConsumeComputeUnits" + ]; + function getSolanaErrorFromInstructionError(index, instructionError) { + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 4615001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + index, + ...rpcErrorContext !== void 0 ? { instructionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM) { + return { + code: rpcErrorContext, + index + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR) { + return { + encodedData: rpcErrorContext, + index + }; + } + return { index }; + }, + orderedErrorNames: ORDERED_ERROR_NAMES, + rpcEnumError: instructionError + }, + getSolanaErrorFromInstructionError + ); + } + var ORDERED_ERROR_NAMES2 = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/src/transaction/error.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "AccountInUse", + "AccountLoadedTwice", + "AccountNotFound", + "ProgramAccountNotFound", + "InsufficientFundsForFee", + "InvalidAccountForFee", + "AlreadyProcessed", + "BlockhashNotFound", + // `InstructionError` intentionally omitted; delegated to `getSolanaErrorFromInstructionError` + "CallChainTooDeep", + "MissingSignatureForFee", + "InvalidAccountIndex", + "SignatureFailure", + "InvalidProgramForExecution", + "SanitizeFailure", + "ClusterMaintenance", + "AccountBorrowOutstanding", + "WouldExceedMaxBlockCostLimit", + "UnsupportedVersion", + "InvalidWritableAccount", + "WouldExceedMaxAccountCostLimit", + "WouldExceedAccountDataBlockLimit", + "TooManyAccountLocks", + "AddressLookupTableNotFound", + "InvalidAddressLookupTableOwner", + "InvalidAddressLookupTableData", + "InvalidAddressLookupTableIndex", + "InvalidRentPayingAccount", + "WouldExceedMaxVoteCostLimit", + "WouldExceedAccountDataTotalLimit", + "DuplicateInstruction", + "InsufficientFundsForRent", + "MaxLoadedAccountsDataSizeExceeded", + "InvalidLoadedAccountsDataSizeLimit", + "ResanitizationNeeded", + "ProgramExecutionTemporarilyRestricted", + "UnbalancedTransaction" + ]; + function getSolanaErrorFromTransactionError(transactionError) { + if (typeof transactionError === "object" && "InstructionError" in transactionError) { + return getSolanaErrorFromInstructionError( + ...transactionError.InstructionError + ); + } + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 7050001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + ...rpcErrorContext !== void 0 ? { transactionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION) { + return { + index: rpcErrorContext + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT || errorCode === SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED) { + return { + accountIndex: rpcErrorContext.account_index + }; + } + }, + orderedErrorNames: ORDERED_ERROR_NAMES2, + rpcEnumError: transactionError + }, + getSolanaErrorFromTransactionError + ); + } + function getSolanaErrorFromJsonRpcError({ code, data, message }) { + let out; + if (code === SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE) { + const { err, ...preflightErrorContext } = data; + const causeObject = err ? { cause: getSolanaErrorFromTransactionError(err) } : null; + out = new SolanaError(SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, { + ...preflightErrorContext, + ...causeObject + }); + } else { + let errorContext; + switch (code) { + case SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR: + case SOLANA_ERROR__JSON_RPC__INVALID_PARAMS: + case SOLANA_ERROR__JSON_RPC__INVALID_REQUEST: + case SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND: + case SOLANA_ERROR__JSON_RPC__PARSE_ERROR: + case SOLANA_ERROR__JSON_RPC__SCAN_ERROR: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: + errorContext = { __serverMessage: message }; + break; + default: + if (typeof data === "object" && !Array.isArray(data)) { + errorContext = data; + } + } + out = new SolanaError(code, errorContext); + } + safeCaptureStackTrace(out, getSolanaErrorFromJsonRpcError); + return out; + } + exports2.SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND; + exports2.SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE; + exports2.SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = SOLANA_ERROR__ADDRESSES__MALFORMED_PDA; + exports2.SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE; + exports2.SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER; + exports2.SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED; + exports2.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY; + exports2.SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS; + exports2.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE; + exports2.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__INVALID_CONSTANT = SOLANA_ERROR__CODECS__INVALID_CONSTANT; + exports2.SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS; + exports2.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE; + exports2.SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES; + exports2.SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA; + exports2.SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH; + exports2.SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH; + exports2.SOLANA_ERROR__INVALID_NONCE = SOLANA_ERROR__INVALID_NONCE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING; + exports2.SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = SOLANA_ERROR__JSON_RPC__INVALID_PARAMS; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = SOLANA_ERROR__JSON_RPC__INVALID_REQUEST; + exports2.SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND; + exports2.SOLANA_ERROR__JSON_RPC__PARSE_ERROR = SOLANA_ERROR__JSON_RPC__PARSE_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SCAN_ERROR = SOLANA_ERROR__JSON_RPC__SCAN_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION; + exports2.SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY; + exports2.SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE; + exports2.SOLANA_ERROR__MALFORMED_BIGINT_STRING = SOLANA_ERROR__MALFORMED_BIGINT_STRING; + exports2.SOLANA_ERROR__MALFORMED_NUMBER_STRING = SOLANA_ERROR__MALFORMED_NUMBER_STRING; + exports2.SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT; + exports2.SOLANA_ERROR__RPC__INTEGER_OVERFLOW = SOLANA_ERROR__RPC__INTEGER_OVERFLOW; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN; + exports2.SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING; + exports2.SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE; + exports2.SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH; + exports2.SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE; + exports2.SolanaError = SolanaError; + exports2.getSolanaErrorFromInstructionError = getSolanaErrorFromInstructionError; + exports2.getSolanaErrorFromJsonRpcError = getSolanaErrorFromJsonRpcError; + exports2.getSolanaErrorFromTransactionError = getSolanaErrorFromTransactionError; + exports2.isSolanaError = isSolanaError; + exports2.safeCaptureStackTrace = safeCaptureStackTrace; + } +}); + +// node_modules/@solana/codecs/node_modules/@solana/codecs-numbers/dist/index.node.cjs +var require_index_node11 = __commonJS({ + "node_modules/@solana/codecs/node_modules/@solana/codecs-numbers/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node10(); + var codecsCore = require_index_node5(); + function assertNumberIsBetweenForCodec(codecDescription, min, max, value) { + if (value < min || value > max) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE, { + codecDescription, + max, + min, + value + }); + } + } + var Endian = /* @__PURE__ */ ((Endian2) => { + Endian2[Endian2["Little"] = 0] = "Little"; + Endian2[Endian2["Big"] = 1] = "Big"; + return Endian2; + })(Endian || {}); + function isLittleEndian(config) { + return config?.endian === 1 ? false : true; + } + function numberEncoderFactory(input) { + return codecsCore.createEncoder({ + fixedSize: input.size, + write(value, bytes7, offset) { + if (input.range) { + assertNumberIsBetweenForCodec(input.name, input.range[0], input.range[1], value); + } + const arrayBuffer = new ArrayBuffer(input.size); + input.set(new DataView(arrayBuffer), value, isLittleEndian(input.config)); + bytes7.set(new Uint8Array(arrayBuffer), offset); + return offset + input.size; + } + }); + } + function numberDecoderFactory(input) { + return codecsCore.createDecoder({ + fixedSize: input.size, + read(bytes7, offset = 0) { + codecsCore.assertByteArrayIsNotEmptyForCodec(input.name, bytes7, offset); + codecsCore.assertByteArrayHasEnoughBytesForCodec(input.name, input.size, bytes7, offset); + const view = new DataView(toArrayBuffer(bytes7, offset, input.size)); + return [input.get(view, isLittleEndian(input.config)), offset + input.size]; + } + }); + } + function toArrayBuffer(bytes7, offset, length) { + const bytesOffset = bytes7.byteOffset + (offset ?? 0); + const bytesLength = length ?? bytes7.byteLength; + return bytes7.buffer.slice(bytesOffset, bytesOffset + bytesLength); + } + var getF32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "f32", + set: (view, value, le) => view.setFloat32(0, Number(value), le), + size: 4 + }); + var getF32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getFloat32(0, le), + name: "f32", + size: 4 + }); + var getF32Codec = (config = {}) => codecsCore.combineCodec(getF32Encoder(config), getF32Decoder(config)); + var getF64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "f64", + set: (view, value, le) => view.setFloat64(0, Number(value), le), + size: 8 + }); + var getF64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getFloat64(0, le), + name: "f64", + size: 8 + }); + var getF64Codec = (config = {}) => codecsCore.combineCodec(getF64Encoder(config), getF64Decoder(config)); + var getI128Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i128", + range: [-BigInt("0x7fffffffffffffffffffffffffffffff") - 1n, BigInt("0x7fffffffffffffffffffffffffffffff")], + set: (view, value, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const rightMask = 0xffffffffffffffffn; + view.setBigInt64(leftOffset, BigInt(value) >> 64n, le); + view.setBigUint64(rightOffset, BigInt(value) & rightMask, le); + }, + size: 16 + }); + var getI128Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const left = view.getBigInt64(leftOffset, le); + const right = view.getBigUint64(rightOffset, le); + return (left << 64n) + right; + }, + name: "i128", + size: 16 + }); + var getI128Codec = (config = {}) => codecsCore.combineCodec(getI128Encoder(config), getI128Decoder(config)); + var getI16Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i16", + range: [-Number("0x7fff") - 1, Number("0x7fff")], + set: (view, value, le) => view.setInt16(0, Number(value), le), + size: 2 + }); + var getI16Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getInt16(0, le), + name: "i16", + size: 2 + }); + var getI16Codec = (config = {}) => codecsCore.combineCodec(getI16Encoder(config), getI16Decoder(config)); + var getI32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i32", + range: [-Number("0x7fffffff") - 1, Number("0x7fffffff")], + set: (view, value, le) => view.setInt32(0, Number(value), le), + size: 4 + }); + var getI32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getInt32(0, le), + name: "i32", + size: 4 + }); + var getI32Codec = (config = {}) => codecsCore.combineCodec(getI32Encoder(config), getI32Decoder(config)); + var getI64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i64", + range: [-BigInt("0x7fffffffffffffff") - 1n, BigInt("0x7fffffffffffffff")], + set: (view, value, le) => view.setBigInt64(0, BigInt(value), le), + size: 8 + }); + var getI64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getBigInt64(0, le), + name: "i64", + size: 8 + }); + var getI64Codec = (config = {}) => codecsCore.combineCodec(getI64Encoder(config), getI64Decoder(config)); + var getI8Encoder = () => numberEncoderFactory({ + name: "i8", + range: [-Number("0x7f") - 1, Number("0x7f")], + set: (view, value) => view.setInt8(0, Number(value)), + size: 1 + }); + var getI8Decoder = () => numberDecoderFactory({ + get: (view) => view.getInt8(0), + name: "i8", + size: 1 + }); + var getI8Codec = () => codecsCore.combineCodec(getI8Encoder(), getI8Decoder()); + var getShortU16Encoder = () => codecsCore.createEncoder({ + getSizeFromValue: (value) => { + if (value <= 127) return 1; + if (value <= 16383) return 2; + return 3; + }, + maxSize: 3, + write: (value, bytes7, offset) => { + assertNumberIsBetweenForCodec("shortU16", 0, 65535, value); + const shortU16Bytes = [0]; + for (let ii = 0; ; ii += 1) { + const alignedValue = Number(value) >> ii * 7; + if (alignedValue === 0) { + break; + } + const nextSevenBits = 127 & alignedValue; + shortU16Bytes[ii] = nextSevenBits; + if (ii > 0) { + shortU16Bytes[ii - 1] |= 128; + } + } + bytes7.set(shortU16Bytes, offset); + return offset + shortU16Bytes.length; + } + }); + var getShortU16Decoder = () => codecsCore.createDecoder({ + maxSize: 3, + read: (bytes7, offset) => { + let value = 0; + let byteCount = 0; + while (++byteCount) { + const byteIndex = byteCount - 1; + const currentByte = bytes7[offset + byteIndex]; + const nextSevenBits = 127 & currentByte; + value |= nextSevenBits << byteIndex * 7; + if ((currentByte & 128) === 0) { + break; + } + } + return [value, offset + byteCount]; + } + }); + var getShortU16Codec = () => codecsCore.combineCodec(getShortU16Encoder(), getShortU16Decoder()); + var getU128Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u128", + range: [0n, BigInt("0xffffffffffffffffffffffffffffffff")], + set: (view, value, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const rightMask = 0xffffffffffffffffn; + view.setBigUint64(leftOffset, BigInt(value) >> 64n, le); + view.setBigUint64(rightOffset, BigInt(value) & rightMask, le); + }, + size: 16 + }); + var getU128Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const left = view.getBigUint64(leftOffset, le); + const right = view.getBigUint64(rightOffset, le); + return (left << 64n) + right; + }, + name: "u128", + size: 16 + }); + var getU128Codec = (config = {}) => codecsCore.combineCodec(getU128Encoder(config), getU128Decoder(config)); + var getU16Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u16", + range: [0, Number("0xffff")], + set: (view, value, le) => view.setUint16(0, Number(value), le), + size: 2 + }); + var getU16Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getUint16(0, le), + name: "u16", + size: 2 + }); + var getU16Codec = (config = {}) => codecsCore.combineCodec(getU16Encoder(config), getU16Decoder(config)); + var getU32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u32", + range: [0, Number("0xffffffff")], + set: (view, value, le) => view.setUint32(0, Number(value), le), + size: 4 + }); + var getU32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getUint32(0, le), + name: "u32", + size: 4 + }); + var getU32Codec = (config = {}) => codecsCore.combineCodec(getU32Encoder(config), getU32Decoder(config)); + var getU64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u64", + range: [0n, BigInt("0xffffffffffffffff")], + set: (view, value, le) => view.setBigUint64(0, BigInt(value), le), + size: 8 + }); + var getU64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getBigUint64(0, le), + name: "u64", + size: 8 + }); + var getU64Codec = (config = {}) => codecsCore.combineCodec(getU64Encoder(config), getU64Decoder(config)); + var getU8Encoder = () => numberEncoderFactory({ + name: "u8", + range: [0, Number("0xff")], + set: (view, value) => view.setUint8(0, Number(value)), + size: 1 + }); + var getU8Decoder = () => numberDecoderFactory({ + get: (view) => view.getUint8(0), + name: "u8", + size: 1 + }); + var getU8Codec = () => codecsCore.combineCodec(getU8Encoder(), getU8Decoder()); + exports2.Endian = Endian; + exports2.assertNumberIsBetweenForCodec = assertNumberIsBetweenForCodec; + exports2.getF32Codec = getF32Codec; + exports2.getF32Decoder = getF32Decoder; + exports2.getF32Encoder = getF32Encoder; + exports2.getF64Codec = getF64Codec; + exports2.getF64Decoder = getF64Decoder; + exports2.getF64Encoder = getF64Encoder; + exports2.getI128Codec = getI128Codec; + exports2.getI128Decoder = getI128Decoder; + exports2.getI128Encoder = getI128Encoder; + exports2.getI16Codec = getI16Codec; + exports2.getI16Decoder = getI16Decoder; + exports2.getI16Encoder = getI16Encoder; + exports2.getI32Codec = getI32Codec; + exports2.getI32Decoder = getI32Decoder; + exports2.getI32Encoder = getI32Encoder; + exports2.getI64Codec = getI64Codec; + exports2.getI64Decoder = getI64Decoder; + exports2.getI64Encoder = getI64Encoder; + exports2.getI8Codec = getI8Codec; + exports2.getI8Decoder = getI8Decoder; + exports2.getI8Encoder = getI8Encoder; + exports2.getShortU16Codec = getShortU16Codec; + exports2.getShortU16Decoder = getShortU16Decoder; + exports2.getShortU16Encoder = getShortU16Encoder; + exports2.getU128Codec = getU128Codec; + exports2.getU128Decoder = getU128Decoder; + exports2.getU128Encoder = getU128Encoder; + exports2.getU16Codec = getU16Codec; + exports2.getU16Decoder = getU16Decoder; + exports2.getU16Encoder = getU16Encoder; + exports2.getU32Codec = getU32Codec; + exports2.getU32Decoder = getU32Decoder; + exports2.getU32Encoder = getU32Encoder; + exports2.getU64Codec = getU64Codec; + exports2.getU64Decoder = getU64Decoder; + exports2.getU64Encoder = getU64Encoder; + exports2.getU8Codec = getU8Codec; + exports2.getU8Decoder = getU8Decoder; + exports2.getU8Encoder = getU8Encoder; + } +}); + +// node_modules/@solana/codecs-strings/node_modules/@solana/errors/dist/index.node.cjs +var require_index_node12 = __commonJS({ + "node_modules/@solana/codecs-strings/node_modules/@solana/errors/dist/index.node.cjs"(exports2) { + "use strict"; + var SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = 1; + var SOLANA_ERROR__INVALID_NONCE = 2; + var SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = 3; + var SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = 4; + var SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = 5; + var SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = 6; + var SOLANA_ERROR__MALFORMED_BIGINT_STRING = 7; + var SOLANA_ERROR__MALFORMED_NUMBER_STRING = 8; + var SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = 9; + var SOLANA_ERROR__JSON_RPC__PARSE_ERROR = -32700; + var SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603; + var SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602; + var SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601; + var SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = -32016; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = -32015; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = -32014; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = -32013; + var SOLANA_ERROR__JSON_RPC__SCAN_ERROR = -32012; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = -32011; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = -32010; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = -32009; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = -32008; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = -32007; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = -32006; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = -32005; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = -32004; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = -32003; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = -32002; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = -32001; + var SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = 28e5; + var SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = 2800001; + var SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = 2800002; + var SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = 2800003; + var SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = 2800004; + var SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = 2800005; + var SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = 2800006; + var SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = 2800007; + var SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = 2800008; + var SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = 2800009; + var SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = 2800010; + var SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = 323e4; + var SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = 32300001; + var SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = 3230002; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = 3230003; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = 3230004; + var SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = 361e4; + var SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = 3610001; + var SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = 3610002; + var SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = 3610003; + var SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = 3610004; + var SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = 3610005; + var SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = 3610006; + var SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = 3610007; + var SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = 3611e3; + var SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = 3704e3; + var SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = 3704001; + var SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = 3704002; + var SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = 3704003; + var SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = 3704004; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = 4128e3; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = 4128001; + var SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = 4128002; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = 4615e3; + var SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = 4615001; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = 4615002; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = 4615003; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = 4615004; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = 4615005; + var SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = 4615006; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = 4615007; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = 4615008; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = 4615009; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = 4615010; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = 4615011; + var SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = 4615012; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = 4615013; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = 4615014; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = 4615015; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = 4615016; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = 4615017; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = 4615018; + var SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = 4615019; + var SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = 4615020; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = 4615021; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = 4615022; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = 4615023; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 4615024; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = 4615025; + var SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = 4615026; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = 4615027; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = 4615028; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = 4615029; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = 4615030; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = 4615031; + var SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = 4615032; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = 4615033; + var SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = 4615034; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = 4615035; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = 4615036; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = 4615037; + var SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = 4615038; + var SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = 4615039; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = 4615040; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = 4615041; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = 4615042; + var SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = 4615043; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = 4615044; + var SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = 4615045; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = 4615046; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = 4615047; + var SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = 4615048; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = 4615049; + var SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = 4615050; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = 4615051; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = 4615052; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = 4615053; + var SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = 4615054; + var SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = 5508e3; + var SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = 5508001; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = 5508002; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = 5508003; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = 5508004; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = 5508005; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = 5508006; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = 5508007; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = 5508008; + var SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = 5508009; + var SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = 5508010; + var SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = 5508011; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = 5663e3; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = 5663001; + var SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = 5663002; + var SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = 5663003; + var SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = 5663004; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = 5663005; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = 5663006; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = 5663007; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = 5663008; + var SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = 5663009; + var SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = 5663010; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = 5663011; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = 5663012; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = 5663013; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = 5663014; + var SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = 5663015; + var SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = 5663016; + var SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = 5663017; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = 5663018; + var SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = 705e4; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = 7050001; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = 7050002; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = 7050003; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = 7050004; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 7050005; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = 7050006; + var SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = 7050007; + var SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = 7050008; + var SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = 7050009; + var SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = 7050010; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = 7050011; + var SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = 7050012; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = 7050013; + var SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = 7050014; + var SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = 7050015; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 7050016; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = 7050017; + var SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = 7050018; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = 7050019; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = 7050020; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = 7050021; + var SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = 7050022; + var SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = 7050023; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = 7050024; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = 7050025; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = 7050026; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = 7050027; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = 7050028; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = 7050029; + var SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = 7050030; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = 7050031; + var SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = 7050032; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 7050033; + var SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = 7050034; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = 7050035; + var SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = 7050036; + var SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = 8078e3; + var SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = 8078001; + var SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = 8078002; + var SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = 8078003; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = 8078004; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = 8078005; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = 8078006; + var SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = 8078007; + var SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = 8078008; + var SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = 8078009; + var SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = 8078010; + var SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = 8078011; + var SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = 8078012; + var SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = 8078013; + var SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = 8078014; + var SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = 8078015; + var SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = 8078016; + var SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = 8078017; + var SOLANA_ERROR__CODECS__INVALID_CONSTANT = 8078018; + var SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = 8078019; + var SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = 8078020; + var SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = 8078021; + var SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = 8078022; + var SOLANA_ERROR__RPC__INTEGER_OVERFLOW = 81e5; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = 8100001; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = 8100002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = 819e4; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = 8190001; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = 8190002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = 8190003; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = 8190004; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = 99e5; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = 9900001; + var SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = 9900002; + var SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = 9900003; + function encodeValue(value) { + if (Array.isArray(value)) { + const commaSeparatedValues = value.map(encodeValue).join( + "%2C%20" + /* ", " */ + ); + return "%5B" + commaSeparatedValues + /* "]" */ + "%5D"; + } else if (typeof value === "bigint") { + return `${value}n`; + } else { + return encodeURIComponent( + String( + value != null && Object.getPrototypeOf(value) === null ? ( + // Plain objects with no prototype don't have a `toString` method. + // Convert them before stringifying them. + { ...value } + ) : value + ) + ); + } + } + function encodeObjectContextEntry([key, value]) { + return `${key}=${encodeValue(value)}`; + } + function encodeContextObject(context) { + const searchParamsString = Object.entries(context).map(encodeObjectContextEntry).join("&"); + return Buffer.from(searchParamsString, "utf8").toString("base64"); + } + var SolanaErrorMessages = { + [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: "Account not found at address: $address", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]: "Not all accounts were decoded. Encoded accounts found at addresses: $addresses.", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: "Expected decoded account at address: $address", + [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: "Failed to decode account data at address: $address", + [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: "Accounts not found at addresses: $addresses", + [SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED]: "Unable to find a viable program address bump seed.", + [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: "$putativeAddress is not a base58-encoded address.", + [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]: "Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY]: "The `CryptoKey` must be an `Ed25519` public key.", + [SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE]: "Invalid seeds; point must fall off the Ed25519 curve.", + [SOLANA_ERROR__ADDRESSES__MALFORMED_PDA]: "Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].", + [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]: "A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.", + [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]: "The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.", + [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]: "Expected program derived address bump to be in the range [0, 255], got: $bump.", + [SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER]: "Program address cannot end with PDA marker.", + [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]: "The network has progressed past the last block for which this transaction could have been committed.", + [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]: "Codec [$codecDescription] cannot decode empty byte arrays.", + [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]: "Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.", + [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]: "Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]: "Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]: "Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH]: "Encoder and decoder must either both be fixed-size or variable-size.", + [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]: "Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.", + [SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH]: "Expected a fixed-size codec, got a variable-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]: "Codec [$codecDescription] expected a positive byte length, got $bytesLength.", + [SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH]: "Expected a variable-size codec, got a fixed-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]: "Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].", + [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]: "Codec [$codecDescription] expected $expected bytes, got $bytesLength.", + [SOLANA_ERROR__CODECS__INVALID_CONSTANT]: "Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].", + [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]: "Invalid discriminated union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]: "Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.", + [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]: "Invalid literal union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]: "Expected [$codecDescription] to have $expected items, got $actual.", + [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: "Invalid value $value for base $base with alphabet $alphabet.", + [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]: "Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.", + [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]: "Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.", + [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]: "Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.", + [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]: "Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].", + [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]: "Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.", + [SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED]: "No random values implementation could be found.", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED]: "instruction requires an uninitialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED]: "instruction tries to borrow reference for an account which is already borrowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "instruction left account with an outstanding borrowed reference", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED]: "program other than the account's owner changed the size of the account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL]: "account data too small for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE]: "instruction expected an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT]: "An account does not have enough lamports to be rent-exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW]: "Program arithmetic overflowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: "Failed to serialize or deserialize account data: $encodedData", + [SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS]: "Builtin programs must consume compute units", + [SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH]: "Cross-program invocation call depth too deep", + [SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED]: "Computational budget exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: "custom program error: #$code", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX]: "instruction contains duplicate accounts", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC]: "instruction modifications of multiply-passed account differ", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT]: "executable accounts must be rent exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED]: "instruction changed executable accounts data", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE]: "instruction changed the balance of an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED]: "instruction changed executable bit of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED]: "instruction modified data of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND]: "instruction spent from the balance of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR]: "generic instruction error", + [SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER]: "Provided owner is not allowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE]: "Account is immutable", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY]: "Incorrect authority provided", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID]: "incorrect program id for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS]: "insufficient funds for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA]: "invalid account data for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER]: "Invalid account owner", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT]: "invalid program argument", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR]: "program returned invalid error code", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA]: "invalid instruction data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC]: "Failed to reallocate account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS]: "Provided seeds do not result in a valid address", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED]: "Accounts data allocations exceeded the maximum allowed per transaction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED]: "Max accounts exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED]: "Max instruction trace length exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED]: "Length of the seed is too long for address generation", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT]: "An account required by the instruction is missing", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE]: "missing required signature for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID]: "instruction illegally modified the program id of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS]: "insufficient account keys for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION]: "Cross-program invocation with unauthorized signer or writable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE]: "Failed to create program execution environment", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE]: "Program failed to compile", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE]: "Program failed to complete", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED]: "instruction modified data of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE]: "instruction changed the balance of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED]: "Cross-program invocation reentrancy not allowed for this instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED]: "instruction modified rent epoch of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION]: "sum of account balances before and after instruction do not match", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT]: "instruction requires an initialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: "", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID]: "Unsupported program id", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR]: "Unsupported sysvar", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: "The instruction does not have any accounts.", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: "The instruction does not have any data.", + [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]: "Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.", + [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]: "Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__INVALID_NONCE]: "The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`", + [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]: "Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]: "Invariant violation: Switch statement non-exhaustive. Received unexpected value `$unexpectedValue`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE]: "Invariant violation: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING]: "Invariant violation: WebSocket message iterator is missing state storage. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: "JSON-RPC error: Internal JSON-RPC error ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: "JSON-RPC error: Invalid method parameter(s) ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]: "JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]: "JSON-RPC error: The method does not exist / is not available ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]: "JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: "Minimum context slot has not been reached", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: "Node is unhealthy; behind by $numSlotsBehind slots", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT]: "No snapshot", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: "Transaction simulation failed", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE]: "Transaction history is not available from this node", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH]: "Transaction signature length mismatch", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE]: "Transaction signature verification failure", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: "$__serverMessage", + [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: "Key pair bytes must be of length 64, got $byteLength.", + [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]: "Expected private key bytes with length 32. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]: "Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY]: "The provided private key does not match the provided public key.", + [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.", + [SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE]: "Lamports value must be in the range [0, 2e64-1]", + [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: "`$value` cannot be parsed as a `BigInt`", + [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: "`$value` cannot be parsed as a `Number`", + [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: "No nonce account could be found at address `$nonceAccountAddress`", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST]: "Either the notification name must end in 'Notifications' or the API must supply a subscription creator function for the notification '$notificationName' to map between the notification name and the subscribe/unsubscribe method names.", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID]: "Failed to obtain a subscription id from the server", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED]: "WebSocket was closed before payload could be added to the send buffer", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED]: "WebSocket connection closed", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT]: "WebSocket failed to connect", + [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]: "The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was `$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds `Number.MAX_SAFE_INTEGER`.", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: "HTTP error ($statusCode): $message", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]: "HTTP header(s) forbidden: $headers. Learn more at https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.", + [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]: "Multiple distinct signers were identified for address `$address`. Please ensure that you are using the same signer instance for each address.", + [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]: "The provided value does not implement the `KeyPairSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]: "The provided value does not implement the `MessageModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]: "The provided value does not implement the `MessagePartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]: "The provided value does not implement any of the `MessageSigner` interfaces", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]: "The provided value does not implement the `TransactionModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]: "The provided value does not implement the `TransactionPartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]: "The provided value does not implement the `TransactionSendingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]: "The provided value does not implement any of the `TransactionSigner` interfaces", + [SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS]: "More than one `TransactionSendingSigner` was identified.", + [SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING]: "No `TransactionSendingSigner` was identified. Please provide a valid `ITransactionWithSingleSendingSigner` transaction.", + [SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED]: "Wallet account signers do not support signing multiple messages/transactions in a single operation", + [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: "Cannot export a non-extractable key.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED]: "No digest implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT]: "Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.", + [SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED]: "This runtime does not support the generation of Ed25519 key pairs.\n\nInstall @solana/webcrypto-ed25519-polyfill and call its `install` function before generating keys in environments that do not support Ed25519.\n\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.", + [SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED]: "No signature verification implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED]: "No key generation implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED]: "No signing implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED]: "No key export implementation could be found.", + [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]: "Timestamp value must be in the range [-8.64e15, 8.64e15]. `$value` given", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "Transaction processing left an account with an outstanding borrowed reference", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE]: "Account in use", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE]: "Account loaded twice", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND]: "Attempt to debit an account but found no record of a prior credit.", + [SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND]: "Transaction loads an address table account that doesn't exist", + [SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED]: "This transaction has already been processed", + [SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND]: "Blockhash not found", + [SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP]: "Loader call chain is too deep", + [SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE]: "Transactions are currently disabled due to cluster maintenance", + [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]: "Transaction contains a duplicate instruction ($index) that is not allowed", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: "Insufficient funds for fee", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]: "Transaction results in an account ($accountIndex) with insufficient funds for rent", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE]: "This account may not be used to pay transaction fees", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX]: "Transaction contains an invalid account reference", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA]: "Transaction loads an address table account with invalid data", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX]: "Transaction address table lookup uses an invalid index", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER]: "Transaction loads an address table account with an invalid owner", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT]: "LoadedAccountsDataSizeLimit set for transaction must be greater than 0.", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION]: "This program may not be used for executing instructions", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT]: "Transaction leaves an account with a lower balance than rent-exempt minimum", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT]: "Transaction loads a writable account that cannot be written", + [SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED]: "Transaction exceeded max loaded accounts data size cap", + [SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE]: "Transaction requires a fee but has no signature present", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND]: "Attempt to load a program that does not exist", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]: "Execution of the program referenced by account at index $accountIndex is temporarily restricted.", + [SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED]: "ResanitizationNeeded", + [SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE]: "Transaction failed to sanitize accounts offsets correctly", + [SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE]: "Transaction did not pass signature verification", + [SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS]: "Transaction locked too many accounts", + [SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION]: "Sum of account balances before and after transaction do not match", + [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: "The transaction failed with the error `$errorName`", + [SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION]: "Transaction version is unsupported", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT]: "Transaction would exceed account data limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT]: "Transaction would exceed total account data limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT]: "Transaction would exceed max account limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT]: "Transaction would exceed max Block Cost Limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT]: "Transaction would exceed max Vote Cost Limit", + [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]: "Attempted to sign a transaction with an address that is not a signer for it", + [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: "Transaction is missing an address at index: $index.", + [SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES]: "Transaction has no expected signers therefore it cannot be encoded", + [SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME]: "Transaction does not have a blockhash lifetime", + [SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME]: "Transaction is not a durable nonce transaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]: "Contents of these address lookup tables unknown: $lookupTableAddresses", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]: "Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING]: "No fee payer set in CompiledTransaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]: "Could not find program address at index $index", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT]: "Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING]: "Transaction is missing a fee payer.", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING]: "Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE]: "Transaction first instruction is not advance nonce account instruction.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING]: "Transaction with no instructions cannot be durable nonce transaction.", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]: "This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]: "This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable", + [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]: "The transaction message expected the transaction to have $signerAddressesLength signatures, got $signaturesLength.", + [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: "Transaction is missing signatures for addresses: $addresses.", + [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]: "Transaction version must be in the range [0, 127]. `$actualVersion` given" + }; + var START_INDEX = "i"; + var TYPE = "t"; + function getHumanReadableErrorMessage(code, context = {}) { + const messageFormatString = SolanaErrorMessages[code]; + if (messageFormatString.length === 0) { + return ""; + } + let state; + function commitStateUpTo(endIndex) { + if (state[TYPE] === 2) { + const variableName = messageFormatString.slice(state[START_INDEX] + 1, endIndex); + fragments.push( + variableName in context ? `${context[variableName]}` : `$${variableName}` + ); + } else if (state[TYPE] === 1) { + fragments.push(messageFormatString.slice(state[START_INDEX], endIndex)); + } + } + const fragments = []; + messageFormatString.split("").forEach((char, ii) => { + if (ii === 0) { + state = { + [START_INDEX]: 0, + [TYPE]: messageFormatString[0] === "\\" ? 0 : messageFormatString[0] === "$" ? 2 : 1 + /* Text */ + }; + return; + } + let nextState; + switch (state[TYPE]) { + case 0: + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + break; + case 1: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } + break; + case 2: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } else if (!char.match(/\w/)) { + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + } + break; + } + if (nextState) { + if (state !== nextState) { + commitStateUpTo(ii); + } + state = nextState; + } + }); + commitStateUpTo(); + return fragments.join(""); + } + function getErrorMessage(code, context = {}) { + if (process.env.NODE_ENV !== "production") { + return getHumanReadableErrorMessage(code, context); + } else { + let decodingAdviceMessage = `Solana error #${code}; Decode this error by running \`npx @solana/errors decode -- ${code}`; + if (Object.keys(context).length) { + decodingAdviceMessage += ` '${encodeContextObject(context)}'`; + } + return `${decodingAdviceMessage}\``; + } + } + function isSolanaError(e, code) { + const isSolanaError2 = e instanceof Error && e.name === "SolanaError"; + if (isSolanaError2) { + if (code !== void 0) { + return e.context.__code === code; + } + return true; + } + return false; + } + var SolanaError = class extends Error { + cause = this.cause; + context; + constructor(...[code, contextAndErrorOptions]) { + let context; + let errorOptions; + if (contextAndErrorOptions) { + const { cause, ...contextRest } = contextAndErrorOptions; + if (cause) { + errorOptions = { cause }; + } + if (Object.keys(contextRest).length > 0) { + context = contextRest; + } + } + const message = getErrorMessage(code, context); + super(message, errorOptions); + this.context = { + __code: code, + ...context + }; + this.name = "SolanaError"; + } + }; + function safeCaptureStackTrace(...args) { + if ("captureStackTrace" in Error && typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(...args); + } + } + function getSolanaErrorFromRpcError({ errorCodeBaseOffset, getErrorContext, orderedErrorNames, rpcEnumError }, constructorOpt) { + let rpcErrorName; + let rpcErrorContext; + if (typeof rpcEnumError === "string") { + rpcErrorName = rpcEnumError; + } else { + rpcErrorName = Object.keys(rpcEnumError)[0]; + rpcErrorContext = rpcEnumError[rpcErrorName]; + } + const codeOffset = orderedErrorNames.indexOf(rpcErrorName); + const errorCode = errorCodeBaseOffset + codeOffset; + const errorContext = getErrorContext(errorCode, rpcErrorName, rpcErrorContext); + const err = new SolanaError(errorCode, errorContext); + safeCaptureStackTrace(err, constructorOpt); + return err; + } + var ORDERED_ERROR_NAMES = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/program/src/instruction.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "GenericError", + "InvalidArgument", + "InvalidInstructionData", + "InvalidAccountData", + "AccountDataTooSmall", + "InsufficientFunds", + "IncorrectProgramId", + "MissingRequiredSignature", + "AccountAlreadyInitialized", + "UninitializedAccount", + "UnbalancedInstruction", + "ModifiedProgramId", + "ExternalAccountLamportSpend", + "ExternalAccountDataModified", + "ReadonlyLamportChange", + "ReadonlyDataModified", + "DuplicateAccountIndex", + "ExecutableModified", + "RentEpochModified", + "NotEnoughAccountKeys", + "AccountDataSizeChanged", + "AccountNotExecutable", + "AccountBorrowFailed", + "AccountBorrowOutstanding", + "DuplicateAccountOutOfSync", + "Custom", + "InvalidError", + "ExecutableDataModified", + "ExecutableLamportChange", + "ExecutableAccountNotRentExempt", + "UnsupportedProgramId", + "CallDepth", + "MissingAccount", + "ReentrancyNotAllowed", + "MaxSeedLengthExceeded", + "InvalidSeeds", + "InvalidRealloc", + "ComputationalBudgetExceeded", + "PrivilegeEscalation", + "ProgramEnvironmentSetupFailure", + "ProgramFailedToComplete", + "ProgramFailedToCompile", + "Immutable", + "IncorrectAuthority", + "BorshIoError", + "AccountNotRentExempt", + "InvalidAccountOwner", + "ArithmeticOverflow", + "UnsupportedSysvar", + "IllegalOwner", + "MaxAccountsDataAllocationsExceeded", + "MaxAccountsExceeded", + "MaxInstructionTraceLengthExceeded", + "BuiltinProgramsMustConsumeComputeUnits" + ]; + function getSolanaErrorFromInstructionError(index, instructionError) { + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 4615001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + index, + ...rpcErrorContext !== void 0 ? { instructionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM) { + return { + code: rpcErrorContext, + index + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR) { + return { + encodedData: rpcErrorContext, + index + }; + } + return { index }; + }, + orderedErrorNames: ORDERED_ERROR_NAMES, + rpcEnumError: instructionError + }, + getSolanaErrorFromInstructionError + ); + } + var ORDERED_ERROR_NAMES2 = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/src/transaction/error.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "AccountInUse", + "AccountLoadedTwice", + "AccountNotFound", + "ProgramAccountNotFound", + "InsufficientFundsForFee", + "InvalidAccountForFee", + "AlreadyProcessed", + "BlockhashNotFound", + // `InstructionError` intentionally omitted; delegated to `getSolanaErrorFromInstructionError` + "CallChainTooDeep", + "MissingSignatureForFee", + "InvalidAccountIndex", + "SignatureFailure", + "InvalidProgramForExecution", + "SanitizeFailure", + "ClusterMaintenance", + "AccountBorrowOutstanding", + "WouldExceedMaxBlockCostLimit", + "UnsupportedVersion", + "InvalidWritableAccount", + "WouldExceedMaxAccountCostLimit", + "WouldExceedAccountDataBlockLimit", + "TooManyAccountLocks", + "AddressLookupTableNotFound", + "InvalidAddressLookupTableOwner", + "InvalidAddressLookupTableData", + "InvalidAddressLookupTableIndex", + "InvalidRentPayingAccount", + "WouldExceedMaxVoteCostLimit", + "WouldExceedAccountDataTotalLimit", + "DuplicateInstruction", + "InsufficientFundsForRent", + "MaxLoadedAccountsDataSizeExceeded", + "InvalidLoadedAccountsDataSizeLimit", + "ResanitizationNeeded", + "ProgramExecutionTemporarilyRestricted", + "UnbalancedTransaction" + ]; + function getSolanaErrorFromTransactionError(transactionError) { + if (typeof transactionError === "object" && "InstructionError" in transactionError) { + return getSolanaErrorFromInstructionError( + ...transactionError.InstructionError + ); + } + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 7050001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + ...rpcErrorContext !== void 0 ? { transactionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION) { + return { + index: rpcErrorContext + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT || errorCode === SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED) { + return { + accountIndex: rpcErrorContext.account_index + }; + } + }, + orderedErrorNames: ORDERED_ERROR_NAMES2, + rpcEnumError: transactionError + }, + getSolanaErrorFromTransactionError + ); + } + function getSolanaErrorFromJsonRpcError({ code, data, message }) { + let out; + if (code === SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE) { + const { err, ...preflightErrorContext } = data; + const causeObject = err ? { cause: getSolanaErrorFromTransactionError(err) } : null; + out = new SolanaError(SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, { + ...preflightErrorContext, + ...causeObject + }); + } else { + let errorContext; + switch (code) { + case SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR: + case SOLANA_ERROR__JSON_RPC__INVALID_PARAMS: + case SOLANA_ERROR__JSON_RPC__INVALID_REQUEST: + case SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND: + case SOLANA_ERROR__JSON_RPC__PARSE_ERROR: + case SOLANA_ERROR__JSON_RPC__SCAN_ERROR: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: + errorContext = { __serverMessage: message }; + break; + default: + if (typeof data === "object" && !Array.isArray(data)) { + errorContext = data; + } + } + out = new SolanaError(code, errorContext); + } + safeCaptureStackTrace(out, getSolanaErrorFromJsonRpcError); + return out; + } + exports2.SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND; + exports2.SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE; + exports2.SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = SOLANA_ERROR__ADDRESSES__MALFORMED_PDA; + exports2.SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE; + exports2.SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER; + exports2.SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED; + exports2.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY; + exports2.SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS; + exports2.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE; + exports2.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__INVALID_CONSTANT = SOLANA_ERROR__CODECS__INVALID_CONSTANT; + exports2.SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS; + exports2.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE; + exports2.SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES; + exports2.SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA; + exports2.SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH; + exports2.SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH; + exports2.SOLANA_ERROR__INVALID_NONCE = SOLANA_ERROR__INVALID_NONCE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING; + exports2.SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = SOLANA_ERROR__JSON_RPC__INVALID_PARAMS; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = SOLANA_ERROR__JSON_RPC__INVALID_REQUEST; + exports2.SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND; + exports2.SOLANA_ERROR__JSON_RPC__PARSE_ERROR = SOLANA_ERROR__JSON_RPC__PARSE_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SCAN_ERROR = SOLANA_ERROR__JSON_RPC__SCAN_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION; + exports2.SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY; + exports2.SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE; + exports2.SOLANA_ERROR__MALFORMED_BIGINT_STRING = SOLANA_ERROR__MALFORMED_BIGINT_STRING; + exports2.SOLANA_ERROR__MALFORMED_NUMBER_STRING = SOLANA_ERROR__MALFORMED_NUMBER_STRING; + exports2.SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT; + exports2.SOLANA_ERROR__RPC__INTEGER_OVERFLOW = SOLANA_ERROR__RPC__INTEGER_OVERFLOW; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN; + exports2.SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING; + exports2.SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE; + exports2.SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH; + exports2.SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE; + exports2.SolanaError = SolanaError; + exports2.getSolanaErrorFromInstructionError = getSolanaErrorFromInstructionError; + exports2.getSolanaErrorFromJsonRpcError = getSolanaErrorFromJsonRpcError; + exports2.getSolanaErrorFromTransactionError = getSolanaErrorFromTransactionError; + exports2.isSolanaError = isSolanaError; + exports2.safeCaptureStackTrace = safeCaptureStackTrace; + } +}); + +// node_modules/@solana/codecs-strings/node_modules/@solana/codecs-core/dist/index.node.cjs +var require_index_node13 = __commonJS({ + "node_modules/@solana/codecs-strings/node_modules/@solana/codecs-core/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node12(); + var mergeBytes = (byteArrays) => { + const nonEmptyByteArrays = byteArrays.filter((arr) => arr.length); + if (nonEmptyByteArrays.length === 0) { + return byteArrays.length ? byteArrays[0] : new Uint8Array(); + } + if (nonEmptyByteArrays.length === 1) { + return nonEmptyByteArrays[0]; + } + const totalLength = nonEmptyByteArrays.reduce((total, arr) => total + arr.length, 0); + const result = new Uint8Array(totalLength); + let offset = 0; + nonEmptyByteArrays.forEach((arr) => { + result.set(arr, offset); + offset += arr.length; + }); + return result; + }; + var padBytes = (bytes7, length) => { + if (bytes7.length >= length) return bytes7; + const paddedBytes = new Uint8Array(length).fill(0); + paddedBytes.set(bytes7); + return paddedBytes; + }; + var fixBytes = (bytes7, length) => padBytes(bytes7.length <= length ? bytes7 : bytes7.slice(0, length), length); + function containsBytes(data, bytes7, offset) { + const slice = offset === 0 && data.length === bytes7.length ? data : data.slice(offset, offset + bytes7.length); + if (slice.length !== bytes7.length) return false; + return bytes7.every((b, i) => b === slice[i]); + } + function getEncodedSize(value, encoder) { + return "fixedSize" in encoder ? encoder.fixedSize : encoder.getSizeFromValue(value); + } + function createEncoder(encoder) { + return Object.freeze({ + ...encoder, + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, encoder)); + encoder.write(value, bytes7, 0); + return bytes7; + } + }); + } + function createDecoder(decoder) { + return Object.freeze({ + ...decoder, + decode: (bytes7, offset = 0) => decoder.read(bytes7, offset)[0] + }); + } + function createCodec(codec) { + return Object.freeze({ + ...codec, + decode: (bytes7, offset = 0) => codec.read(bytes7, offset)[0], + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, codec)); + codec.write(value, bytes7, 0); + return bytes7; + } + }); + } + function isFixedSize(codec) { + return "fixedSize" in codec && typeof codec.fixedSize === "number"; + } + function assertIsFixedSize(codec) { + if (!isFixedSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH); + } + } + function isVariableSize(codec) { + return !isFixedSize(codec); + } + function assertIsVariableSize(codec) { + if (!isVariableSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH); + } + } + function combineCodec(encoder, decoder) { + if (isFixedSize(encoder) !== isFixedSize(decoder)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH); + } + if (isFixedSize(encoder) && isFixedSize(decoder) && encoder.fixedSize !== decoder.fixedSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH, { + decoderFixedSize: decoder.fixedSize, + encoderFixedSize: encoder.fixedSize + }); + } + if (!isFixedSize(encoder) && !isFixedSize(decoder) && encoder.maxSize !== decoder.maxSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH, { + decoderMaxSize: decoder.maxSize, + encoderMaxSize: encoder.maxSize + }); + } + return { + ...decoder, + ...encoder, + decode: decoder.decode, + encode: encoder.encode, + read: decoder.read, + write: encoder.write + }; + } + function addEncoderSentinel(encoder, sentinel) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + if (findSentinelIndex(encoderBytes, sentinel) >= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL, { + encodedBytes: encoderBytes, + hexEncodedBytes: hexBytes(encoderBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + bytes7.set(encoderBytes, offset); + offset += encoderBytes.length; + bytes7.set(sentinel, offset); + offset += sentinel.length; + return offset; + }; + if (isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: encoder.fixedSize + sentinel.length, write }); + } + return createEncoder({ + ...encoder, + ...encoder.maxSize != null ? { maxSize: encoder.maxSize + sentinel.length } : {}, + getSizeFromValue: (value) => encoder.getSizeFromValue(value) + sentinel.length, + write + }); + } + function addDecoderSentinel(decoder, sentinel) { + const read = (bytes7, offset) => { + const candidateBytes = offset === 0 ? bytes7 : bytes7.slice(offset); + const sentinelIndex = findSentinelIndex(candidateBytes, sentinel); + if (sentinelIndex === -1) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES, { + decodedBytes: candidateBytes, + hexDecodedBytes: hexBytes(candidateBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + const preSentinelBytes = candidateBytes.slice(0, sentinelIndex); + return [decoder.decode(preSentinelBytes), offset + preSentinelBytes.length + sentinel.length]; + }; + if (isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: decoder.fixedSize + sentinel.length, read }); + } + return createDecoder({ + ...decoder, + ...decoder.maxSize != null ? { maxSize: decoder.maxSize + sentinel.length } : {}, + read + }); + } + function addCodecSentinel(codec, sentinel) { + return combineCodec(addEncoderSentinel(codec, sentinel), addDecoderSentinel(codec, sentinel)); + } + function findSentinelIndex(bytes7, sentinel) { + return bytes7.findIndex((byte, index, arr) => { + if (sentinel.length === 1) return byte === sentinel[0]; + return containsBytes(arr, sentinel, index); + }); + } + function hexBytes(bytes7) { + return bytes7.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); + } + function assertByteArrayIsNotEmptyForCodec(codecDescription, bytes7, offset = 0) { + if (bytes7.length - offset <= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY, { + codecDescription + }); + } + } + function assertByteArrayHasEnoughBytesForCodec(codecDescription, expected, bytes7, offset = 0) { + const bytesLength = bytes7.length - offset; + if (bytesLength < expected) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH, { + bytesLength, + codecDescription, + expected + }); + } + } + function assertByteArrayOffsetIsNotOutOfRange(codecDescription, offset, bytesLength) { + if (offset < 0 || offset > bytesLength) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE, { + bytesLength, + codecDescription, + offset + }); + } + } + function addEncoderSizePrefix(encoder, prefix) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + offset = prefix.write(encoderBytes.length, bytes7, offset); + bytes7.set(encoderBytes, offset); + return offset + encoderBytes.length; + }; + if (isFixedSize(prefix) && isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: prefix.fixedSize + encoder.fixedSize, write }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const encoderMaxSize = isFixedSize(encoder) ? encoder.fixedSize : encoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && encoderMaxSize !== null ? prefixMaxSize + encoderMaxSize : null; + return createEncoder({ + ...encoder, + ...maxSize !== null ? { maxSize } : {}, + getSizeFromValue: (value) => { + const encoderSize = getEncodedSize(value, encoder); + return getEncodedSize(encoderSize, prefix) + encoderSize; + }, + write + }); + } + function addDecoderSizePrefix(decoder, prefix) { + const read = (bytes7, offset) => { + const [bigintSize, decoderOffset] = prefix.read(bytes7, offset); + const size = Number(bigintSize); + offset = decoderOffset; + if (offset > 0 || bytes7.length > size) { + bytes7 = bytes7.slice(offset, offset + size); + } + assertByteArrayHasEnoughBytesForCodec("addDecoderSizePrefix", size, bytes7); + return [decoder.decode(bytes7), offset + size]; + }; + if (isFixedSize(prefix) && isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: prefix.fixedSize + decoder.fixedSize, read }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const decoderMaxSize = isFixedSize(decoder) ? decoder.fixedSize : decoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && decoderMaxSize !== null ? prefixMaxSize + decoderMaxSize : null; + return createDecoder({ ...decoder, ...maxSize !== null ? { maxSize } : {}, read }); + } + function addCodecSizePrefix(codec, prefix) { + return combineCodec(addEncoderSizePrefix(codec, prefix), addDecoderSizePrefix(codec, prefix)); + } + function fixEncoderSize(encoder, fixedBytes) { + return createEncoder({ + fixedSize: fixedBytes, + write: (value, bytes7, offset) => { + const variableByteArray = encoder.encode(value); + const fixedByteArray = variableByteArray.length > fixedBytes ? variableByteArray.slice(0, fixedBytes) : variableByteArray; + bytes7.set(fixedByteArray, offset); + return offset + fixedBytes; + } + }); + } + function fixDecoderSize(decoder, fixedBytes) { + return createDecoder({ + fixedSize: fixedBytes, + read: (bytes7, offset) => { + assertByteArrayHasEnoughBytesForCodec("fixCodecSize", fixedBytes, bytes7, offset); + if (offset > 0 || bytes7.length > fixedBytes) { + bytes7 = bytes7.slice(offset, offset + fixedBytes); + } + if (isFixedSize(decoder)) { + bytes7 = fixBytes(bytes7, decoder.fixedSize); + } + const [value] = decoder.read(bytes7, 0); + return [value, offset + fixedBytes]; + } + }); + } + function fixCodecSize(codec, fixedBytes) { + return combineCodec(fixEncoderSize(codec, fixedBytes), fixDecoderSize(codec, fixedBytes)); + } + function offsetEncoder(encoder, config) { + return createEncoder({ + ...encoder, + write: (value, bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPreOffset, bytes7.length); + const postOffset = encoder.write(value, bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPostOffset, bytes7.length); + return newPostOffset; + } + }); + } + function offsetDecoder(decoder, config) { + return createDecoder({ + ...decoder, + read: (bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPreOffset, bytes7.length); + const [value, postOffset] = decoder.read(bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPostOffset, bytes7.length); + return [value, newPostOffset]; + } + }); + } + function offsetCodec(codec, config) { + return combineCodec(offsetEncoder(codec, config), offsetDecoder(codec, config)); + } + function modulo(dividend, divisor) { + if (divisor === 0) return 0; + return (dividend % divisor + divisor) % divisor; + } + function resizeEncoder(encoder, resize) { + if (isFixedSize(encoder)) { + const fixedSize = resize(encoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeEncoder" + }); + } + return createEncoder({ ...encoder, fixedSize }); + } + return createEncoder({ + ...encoder, + getSizeFromValue: (value) => { + const newSize = resize(encoder.getSizeFromValue(value)); + if (newSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: newSize, + codecDescription: "resizeEncoder" + }); + } + return newSize; + } + }); + } + function resizeDecoder(decoder, resize) { + if (isFixedSize(decoder)) { + const fixedSize = resize(decoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeDecoder" + }); + } + return createDecoder({ ...decoder, fixedSize }); + } + return decoder; + } + function resizeCodec(codec, resize) { + return combineCodec(resizeEncoder(codec, resize), resizeDecoder(codec, resize)); + } + function padLeftEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftCodec(codec, offset) { + return combineCodec(padLeftEncoder(codec, offset), padLeftDecoder(codec, offset)); + } + function padRightCodec(codec, offset) { + return combineCodec(padRightEncoder(codec, offset), padRightDecoder(codec, offset)); + } + function copySourceToTargetInReverse(source, target_WILL_MUTATE, sourceOffset, sourceLength, targetOffset = 0) { + while (sourceOffset < --sourceLength) { + const leftValue = source[sourceOffset]; + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceLength]; + target_WILL_MUTATE[sourceLength + targetOffset] = leftValue; + sourceOffset++; + } + if (sourceOffset === sourceLength) { + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceOffset]; + } + } + function reverseEncoder(encoder) { + assertIsFixedSize(encoder); + return createEncoder({ + ...encoder, + write: (value, bytes7, offset) => { + const newOffset = encoder.write(value, bytes7, offset); + copySourceToTargetInReverse( + bytes7, + bytes7, + offset, + offset + encoder.fixedSize + ); + return newOffset; + } + }); + } + function reverseDecoder(decoder) { + assertIsFixedSize(decoder); + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const reversedBytes = bytes7.slice(); + copySourceToTargetInReverse( + bytes7, + reversedBytes, + offset, + offset + decoder.fixedSize + ); + return decoder.read(reversedBytes, offset); + } + }); + } + function reverseCodec(codec) { + return combineCodec(reverseEncoder(codec), reverseDecoder(codec)); + } + function transformEncoder(encoder, unmap) { + return createEncoder({ + ...isVariableSize(encoder) ? { ...encoder, getSizeFromValue: (value) => encoder.getSizeFromValue(unmap(value)) } : encoder, + write: (value, bytes7, offset) => encoder.write(unmap(value), bytes7, offset) + }); + } + function transformDecoder(decoder, map) { + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const [value, newOffset] = decoder.read(bytes7, offset); + return [map(value, bytes7, offset), newOffset]; + } + }); + } + function transformCodec(codec, unmap, map) { + return createCodec({ + ...transformEncoder(codec, unmap), + read: map ? transformDecoder(codec, map).read : codec.read + }); + } + exports2.addCodecSentinel = addCodecSentinel; + exports2.addCodecSizePrefix = addCodecSizePrefix; + exports2.addDecoderSentinel = addDecoderSentinel; + exports2.addDecoderSizePrefix = addDecoderSizePrefix; + exports2.addEncoderSentinel = addEncoderSentinel; + exports2.addEncoderSizePrefix = addEncoderSizePrefix; + exports2.assertByteArrayHasEnoughBytesForCodec = assertByteArrayHasEnoughBytesForCodec; + exports2.assertByteArrayIsNotEmptyForCodec = assertByteArrayIsNotEmptyForCodec; + exports2.assertByteArrayOffsetIsNotOutOfRange = assertByteArrayOffsetIsNotOutOfRange; + exports2.assertIsFixedSize = assertIsFixedSize; + exports2.assertIsVariableSize = assertIsVariableSize; + exports2.combineCodec = combineCodec; + exports2.containsBytes = containsBytes; + exports2.createCodec = createCodec; + exports2.createDecoder = createDecoder; + exports2.createEncoder = createEncoder; + exports2.fixBytes = fixBytes; + exports2.fixCodecSize = fixCodecSize; + exports2.fixDecoderSize = fixDecoderSize; + exports2.fixEncoderSize = fixEncoderSize; + exports2.getEncodedSize = getEncodedSize; + exports2.isFixedSize = isFixedSize; + exports2.isVariableSize = isVariableSize; + exports2.mergeBytes = mergeBytes; + exports2.offsetCodec = offsetCodec; + exports2.offsetDecoder = offsetDecoder; + exports2.offsetEncoder = offsetEncoder; + exports2.padBytes = padBytes; + exports2.padLeftCodec = padLeftCodec; + exports2.padLeftDecoder = padLeftDecoder; + exports2.padLeftEncoder = padLeftEncoder; + exports2.padRightCodec = padRightCodec; + exports2.padRightDecoder = padRightDecoder; + exports2.padRightEncoder = padRightEncoder; + exports2.resizeCodec = resizeCodec; + exports2.resizeDecoder = resizeDecoder; + exports2.resizeEncoder = resizeEncoder; + exports2.reverseCodec = reverseCodec; + exports2.reverseDecoder = reverseDecoder; + exports2.reverseEncoder = reverseEncoder; + exports2.transformCodec = transformCodec; + exports2.transformDecoder = transformDecoder; + exports2.transformEncoder = transformEncoder; + } +}); + +// node_modules/@solana/codecs-strings/dist/index.node.cjs +var require_index_node14 = __commonJS({ + "node_modules/@solana/codecs-strings/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node12(); + var codecsCore = require_index_node13(); + function assertValidBaseString(alphabet4, testValue, givenValue = testValue) { + if (!testValue.match(new RegExp(`^[${alphabet4}]*$`))) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE, { + alphabet: alphabet4, + base: alphabet4.length, + value: givenValue + }); + } + } + var getBaseXEncoder = (alphabet4) => { + return codecsCore.createEncoder({ + getSizeFromValue: (value) => { + const [leadingZeroes, tailChars] = partitionLeadingZeroes(value, alphabet4[0]); + if (!tailChars) return value.length; + const base10Number = getBigIntFromBaseX(tailChars, alphabet4); + return leadingZeroes.length + Math.ceil(base10Number.toString(16).length / 2); + }, + write(value, bytes7, offset) { + assertValidBaseString(alphabet4, value); + if (value === "") return offset; + const [leadingZeroes, tailChars] = partitionLeadingZeroes(value, alphabet4[0]); + if (!tailChars) { + bytes7.set(new Uint8Array(leadingZeroes.length).fill(0), offset); + return offset + leadingZeroes.length; + } + let base10Number = getBigIntFromBaseX(tailChars, alphabet4); + const tailBytes = []; + while (base10Number > 0n) { + tailBytes.unshift(Number(base10Number % 256n)); + base10Number /= 256n; + } + const bytesToAdd = [...Array(leadingZeroes.length).fill(0), ...tailBytes]; + bytes7.set(bytesToAdd, offset); + return offset + bytesToAdd.length; + } + }); + }; + var getBaseXDecoder = (alphabet4) => { + return codecsCore.createDecoder({ + read(rawBytes, offset) { + const bytes7 = offset === 0 ? rawBytes : rawBytes.slice(offset); + if (bytes7.length === 0) return ["", 0]; + let trailIndex = bytes7.findIndex((n) => n !== 0); + trailIndex = trailIndex === -1 ? bytes7.length : trailIndex; + const leadingZeroes = alphabet4[0].repeat(trailIndex); + if (trailIndex === bytes7.length) return [leadingZeroes, rawBytes.length]; + const base10Number = bytes7.slice(trailIndex).reduce((sum, byte) => sum * 256n + BigInt(byte), 0n); + const tailChars = getBaseXFromBigInt(base10Number, alphabet4); + return [leadingZeroes + tailChars, rawBytes.length]; + } + }); + }; + var getBaseXCodec = (alphabet4) => codecsCore.combineCodec(getBaseXEncoder(alphabet4), getBaseXDecoder(alphabet4)); + function partitionLeadingZeroes(value, zeroCharacter) { + const [leadingZeros, tailChars] = value.split(new RegExp(`((?!${zeroCharacter}).*)`)); + return [leadingZeros, tailChars]; + } + function getBigIntFromBaseX(value, alphabet4) { + const base = BigInt(alphabet4.length); + let sum = 0n; + for (const char of value) { + sum *= base; + sum += BigInt(alphabet4.indexOf(char)); + } + return sum; + } + function getBaseXFromBigInt(value, alphabet4) { + const base = BigInt(alphabet4.length); + const tailChars = []; + while (value > 0n) { + tailChars.unshift(alphabet4[Number(value % base)]); + value /= base; + } + return tailChars.join(""); + } + var alphabet = "0123456789"; + var getBase10Encoder = () => getBaseXEncoder(alphabet); + var getBase10Decoder = () => getBaseXDecoder(alphabet); + var getBase10Codec = () => getBaseXCodec(alphabet); + var INVALID_STRING_ERROR_BASE_CONFIG = { + alphabet: "0123456789abcdef", + base: 16 + }; + function charCodeToBase16(char) { + if (char >= 48 && char <= 57) return char - 48; + if (char >= 65 && char <= 70) return char - (65 - 10); + if (char >= 97 && char <= 102) return char - (97 - 10); + } + var getBase16Encoder = () => codecsCore.createEncoder({ + getSizeFromValue: (value) => Math.ceil(value.length / 2), + write(value, bytes7, offset) { + const len = value.length; + const al = len / 2; + if (len === 1) { + const c = value.charCodeAt(0); + const n = charCodeToBase16(c); + if (n === void 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE, { + ...INVALID_STRING_ERROR_BASE_CONFIG, + value + }); + } + bytes7.set([n], offset); + return 1 + offset; + } + const hexBytes = new Uint8Array(al); + for (let i = 0, j = 0; i < al; i++) { + const c1 = value.charCodeAt(j++); + const c2 = value.charCodeAt(j++); + const n1 = charCodeToBase16(c1); + const n2 = charCodeToBase16(c2); + if (n1 === void 0 || n2 === void 0 && !Number.isNaN(c2)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE, { + ...INVALID_STRING_ERROR_BASE_CONFIG, + value + }); + } + hexBytes[i] = !Number.isNaN(c2) ? n1 << 4 | (n2 ?? 0) : n1; + } + bytes7.set(hexBytes, offset); + return hexBytes.length + offset; + } + }); + var getBase16Decoder = () => codecsCore.createDecoder({ + read(bytes7, offset) { + const value = bytes7.slice(offset).reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); + return [value, bytes7.length]; + } + }); + var getBase16Codec = () => codecsCore.combineCodec(getBase16Encoder(), getBase16Decoder()); + var alphabet2 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; + var getBase58Encoder = () => getBaseXEncoder(alphabet2); + var getBase58Decoder = () => getBaseXDecoder(alphabet2); + var getBase58Codec = () => getBaseXCodec(alphabet2); + var getBaseXResliceEncoder = (alphabet4, bits) => codecsCore.createEncoder({ + getSizeFromValue: (value) => Math.floor(value.length * bits / 8), + write(value, bytes7, offset) { + assertValidBaseString(alphabet4, value); + if (value === "") return offset; + const charIndices = [...value].map((c) => alphabet4.indexOf(c)); + const reslicedBytes = reslice(charIndices, bits, 8, false); + bytes7.set(reslicedBytes, offset); + return reslicedBytes.length + offset; + } + }); + var getBaseXResliceDecoder = (alphabet4, bits) => codecsCore.createDecoder({ + read(rawBytes, offset = 0) { + const bytes7 = offset === 0 ? rawBytes : rawBytes.slice(offset); + if (bytes7.length === 0) return ["", rawBytes.length]; + const charIndices = reslice([...bytes7], 8, bits, true); + return [charIndices.map((i) => alphabet4[i]).join(""), rawBytes.length]; + } + }); + var getBaseXResliceCodec = (alphabet4, bits) => codecsCore.combineCodec(getBaseXResliceEncoder(alphabet4, bits), getBaseXResliceDecoder(alphabet4, bits)); + function reslice(input, inputBits, outputBits, useRemainder) { + const output = []; + let accumulator = 0; + let bitsInAccumulator = 0; + const mask = (1 << outputBits) - 1; + for (const value of input) { + accumulator = accumulator << inputBits | value; + bitsInAccumulator += inputBits; + while (bitsInAccumulator >= outputBits) { + bitsInAccumulator -= outputBits; + output.push(accumulator >> bitsInAccumulator & mask); + } + } + if (useRemainder && bitsInAccumulator > 0) { + output.push(accumulator << outputBits - bitsInAccumulator & mask); + } + return output; + } + var alphabet3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var getBase64Encoder = () => { + { + return codecsCore.createEncoder({ + getSizeFromValue: (value) => Buffer.from(value, "base64").length, + write(value, bytes7, offset) { + assertValidBaseString(alphabet3, value.replace(/=/g, "")); + const buffer = Buffer.from(value, "base64"); + bytes7.set(buffer, offset); + return buffer.length + offset; + } + }); + } + }; + var getBase64Decoder = () => { + { + return codecsCore.createDecoder({ + read: (bytes7, offset = 0) => [Buffer.from(bytes7, offset).toString("base64"), bytes7.length] + }); + } + }; + var getBase64Codec = () => codecsCore.combineCodec(getBase64Encoder(), getBase64Decoder()); + var removeNullCharacters = (value) => ( + // eslint-disable-next-line no-control-regex + value.replace(/\u0000/g, "") + ); + var padNullCharacters = (value, chars) => value.padEnd(chars, "\0"); + var e = globalThis.TextDecoder; + var o = globalThis.TextEncoder; + var getUtf8Encoder = () => { + let textEncoder; + return codecsCore.createEncoder({ + getSizeFromValue: (value) => (textEncoder ||= new o()).encode(value).length, + write: (value, bytes7, offset) => { + const bytesToAdd = (textEncoder ||= new o()).encode(value); + bytes7.set(bytesToAdd, offset); + return offset + bytesToAdd.length; + } + }); + }; + var getUtf8Decoder = () => { + let textDecoder; + return codecsCore.createDecoder({ + read(bytes7, offset) { + const value = (textDecoder ||= new e()).decode(bytes7.slice(offset)); + return [removeNullCharacters(value), bytes7.length]; + } + }); + }; + var getUtf8Codec = () => codecsCore.combineCodec(getUtf8Encoder(), getUtf8Decoder()); + exports2.assertValidBaseString = assertValidBaseString; + exports2.getBase10Codec = getBase10Codec; + exports2.getBase10Decoder = getBase10Decoder; + exports2.getBase10Encoder = getBase10Encoder; + exports2.getBase16Codec = getBase16Codec; + exports2.getBase16Decoder = getBase16Decoder; + exports2.getBase16Encoder = getBase16Encoder; + exports2.getBase58Codec = getBase58Codec; + exports2.getBase58Decoder = getBase58Decoder; + exports2.getBase58Encoder = getBase58Encoder; + exports2.getBase64Codec = getBase64Codec; + exports2.getBase64Decoder = getBase64Decoder; + exports2.getBase64Encoder = getBase64Encoder; + exports2.getBaseXCodec = getBaseXCodec; + exports2.getBaseXDecoder = getBaseXDecoder; + exports2.getBaseXEncoder = getBaseXEncoder; + exports2.getBaseXResliceCodec = getBaseXResliceCodec; + exports2.getBaseXResliceDecoder = getBaseXResliceDecoder; + exports2.getBaseXResliceEncoder = getBaseXResliceEncoder; + exports2.getUtf8Codec = getUtf8Codec; + exports2.getUtf8Decoder = getUtf8Decoder; + exports2.getUtf8Encoder = getUtf8Encoder; + exports2.padNullCharacters = padNullCharacters; + exports2.removeNullCharacters = removeNullCharacters; + } +}); + +// node_modules/@solana/options/node_modules/@solana/errors/dist/index.node.cjs +var require_index_node15 = __commonJS({ + "node_modules/@solana/options/node_modules/@solana/errors/dist/index.node.cjs"(exports2) { + "use strict"; + var SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = 1; + var SOLANA_ERROR__INVALID_NONCE = 2; + var SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = 3; + var SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = 4; + var SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = 5; + var SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = 6; + var SOLANA_ERROR__MALFORMED_BIGINT_STRING = 7; + var SOLANA_ERROR__MALFORMED_NUMBER_STRING = 8; + var SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = 9; + var SOLANA_ERROR__JSON_RPC__PARSE_ERROR = -32700; + var SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603; + var SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602; + var SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601; + var SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = -32016; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = -32015; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = -32014; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = -32013; + var SOLANA_ERROR__JSON_RPC__SCAN_ERROR = -32012; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = -32011; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = -32010; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = -32009; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = -32008; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = -32007; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = -32006; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = -32005; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = -32004; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = -32003; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = -32002; + var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = -32001; + var SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = 28e5; + var SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = 2800001; + var SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = 2800002; + var SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = 2800003; + var SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = 2800004; + var SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = 2800005; + var SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = 2800006; + var SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = 2800007; + var SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = 2800008; + var SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = 2800009; + var SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = 2800010; + var SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = 323e4; + var SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = 32300001; + var SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = 3230002; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = 3230003; + var SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = 3230004; + var SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = 361e4; + var SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = 3610001; + var SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = 3610002; + var SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = 3610003; + var SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = 3610004; + var SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = 3610005; + var SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = 3610006; + var SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = 3610007; + var SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = 3611e3; + var SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = 3704e3; + var SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = 3704001; + var SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = 3704002; + var SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = 3704003; + var SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = 3704004; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = 4128e3; + var SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = 4128001; + var SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = 4128002; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = 4615e3; + var SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = 4615001; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = 4615002; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = 4615003; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = 4615004; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = 4615005; + var SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = 4615006; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = 4615007; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = 4615008; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = 4615009; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = 4615010; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = 4615011; + var SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = 4615012; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = 4615013; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = 4615014; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = 4615015; + var SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = 4615016; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = 4615017; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = 4615018; + var SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = 4615019; + var SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = 4615020; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = 4615021; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = 4615022; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = 4615023; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 4615024; + var SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = 4615025; + var SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = 4615026; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = 4615027; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = 4615028; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = 4615029; + var SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = 4615030; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = 4615031; + var SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = 4615032; + var SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = 4615033; + var SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = 4615034; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = 4615035; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = 4615036; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = 4615037; + var SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = 4615038; + var SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = 4615039; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = 4615040; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = 4615041; + var SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = 4615042; + var SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = 4615043; + var SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = 4615044; + var SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = 4615045; + var SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = 4615046; + var SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = 4615047; + var SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = 4615048; + var SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = 4615049; + var SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = 4615050; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = 4615051; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = 4615052; + var SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = 4615053; + var SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = 4615054; + var SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = 5508e3; + var SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = 5508001; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = 5508002; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = 5508003; + var SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = 5508004; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = 5508005; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = 5508006; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = 5508007; + var SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = 5508008; + var SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = 5508009; + var SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = 5508010; + var SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = 5508011; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = 5663e3; + var SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = 5663001; + var SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = 5663002; + var SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = 5663003; + var SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = 5663004; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = 5663005; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = 5663006; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = 5663007; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = 5663008; + var SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = 5663009; + var SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = 5663010; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = 5663011; + var SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = 5663012; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = 5663013; + var SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = 5663014; + var SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = 5663015; + var SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = 5663016; + var SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = 5663017; + var SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = 5663018; + var SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = 705e4; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = 7050001; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = 7050002; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = 7050003; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = 7050004; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 7050005; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = 7050006; + var SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = 7050007; + var SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = 7050008; + var SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = 7050009; + var SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = 7050010; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = 7050011; + var SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = 7050012; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = 7050013; + var SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = 7050014; + var SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = 7050015; + var SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 7050016; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = 7050017; + var SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = 7050018; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = 7050019; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = 7050020; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = 7050021; + var SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = 7050022; + var SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = 7050023; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = 7050024; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = 7050025; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = 7050026; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = 7050027; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = 7050028; + var SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = 7050029; + var SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = 7050030; + var SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = 7050031; + var SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = 7050032; + var SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 7050033; + var SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = 7050034; + var SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = 7050035; + var SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = 7050036; + var SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = 8078e3; + var SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = 8078001; + var SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = 8078002; + var SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = 8078003; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = 8078004; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = 8078005; + var SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = 8078006; + var SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = 8078007; + var SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = 8078008; + var SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = 8078009; + var SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = 8078010; + var SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = 8078011; + var SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = 8078012; + var SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = 8078013; + var SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = 8078014; + var SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = 8078015; + var SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = 8078016; + var SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = 8078017; + var SOLANA_ERROR__CODECS__INVALID_CONSTANT = 8078018; + var SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = 8078019; + var SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = 8078020; + var SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = 8078021; + var SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = 8078022; + var SOLANA_ERROR__RPC__INTEGER_OVERFLOW = 81e5; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = 8100001; + var SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = 8100002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = 819e4; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = 8190001; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = 8190002; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = 8190003; + var SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = 8190004; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = 99e5; + var SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = 9900001; + var SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = 9900002; + var SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = 9900003; + function encodeValue(value) { + if (Array.isArray(value)) { + const commaSeparatedValues = value.map(encodeValue).join( + "%2C%20" + /* ", " */ + ); + return "%5B" + commaSeparatedValues + /* "]" */ + "%5D"; + } else if (typeof value === "bigint") { + return `${value}n`; + } else { + return encodeURIComponent( + String( + value != null && Object.getPrototypeOf(value) === null ? ( + // Plain objects with no prototype don't have a `toString` method. + // Convert them before stringifying them. + { ...value } + ) : value + ) + ); + } + } + function encodeObjectContextEntry([key, value]) { + return `${key}=${encodeValue(value)}`; + } + function encodeContextObject(context) { + const searchParamsString = Object.entries(context).map(encodeObjectContextEntry).join("&"); + return Buffer.from(searchParamsString, "utf8").toString("base64"); + } + var SolanaErrorMessages = { + [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: "Account not found at address: $address", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]: "Not all accounts were decoded. Encoded accounts found at addresses: $addresses.", + [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: "Expected decoded account at address: $address", + [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: "Failed to decode account data at address: $address", + [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: "Accounts not found at addresses: $addresses", + [SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED]: "Unable to find a viable program address bump seed.", + [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: "$putativeAddress is not a base58-encoded address.", + [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]: "Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY]: "The `CryptoKey` must be an `Ed25519` public key.", + [SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE]: "Invalid seeds; point must fall off the Ed25519 curve.", + [SOLANA_ERROR__ADDRESSES__MALFORMED_PDA]: "Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].", + [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]: "A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.", + [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]: "The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.", + [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]: "Expected program derived address bump to be in the range [0, 255], got: $bump.", + [SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER]: "Program address cannot end with PDA marker.", + [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.", + [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]: "The network has progressed past the last block for which this transaction could have been committed.", + [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]: "Codec [$codecDescription] cannot decode empty byte arrays.", + [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]: "Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.", + [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]: "Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]: "Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]: "Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].", + [SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH]: "Encoder and decoder must either both be fixed-size or variable-size.", + [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]: "Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.", + [SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH]: "Expected a fixed-size codec, got a variable-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]: "Codec [$codecDescription] expected a positive byte length, got $bytesLength.", + [SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH]: "Expected a variable-size codec, got a fixed-size one.", + [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]: "Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].", + [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]: "Codec [$codecDescription] expected $expected bytes, got $bytesLength.", + [SOLANA_ERROR__CODECS__INVALID_CONSTANT]: "Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].", + [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]: "Invalid discriminated union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]: "Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.", + [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]: "Invalid literal union variant. Expected one of [$variants], got $value.", + [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]: "Expected [$codecDescription] to have $expected items, got $actual.", + [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: "Invalid value $value for base $base with alphabet $alphabet.", + [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]: "Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.", + [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]: "Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.", + [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]: "Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.", + [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]: "Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].", + [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]: "Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.", + [SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED]: "No random values implementation could be found.", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED]: "instruction requires an uninitialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED]: "instruction tries to borrow reference for an account which is already borrowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "instruction left account with an outstanding borrowed reference", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED]: "program other than the account's owner changed the size of the account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL]: "account data too small for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE]: "instruction expected an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT]: "An account does not have enough lamports to be rent-exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW]: "Program arithmetic overflowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: "Failed to serialize or deserialize account data: $encodedData", + [SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS]: "Builtin programs must consume compute units", + [SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH]: "Cross-program invocation call depth too deep", + [SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED]: "Computational budget exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: "custom program error: #$code", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX]: "instruction contains duplicate accounts", + [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC]: "instruction modifications of multiply-passed account differ", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT]: "executable accounts must be rent exempt", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED]: "instruction changed executable accounts data", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE]: "instruction changed the balance of an executable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED]: "instruction changed executable bit of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED]: "instruction modified data of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND]: "instruction spent from the balance of an account it does not own", + [SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR]: "generic instruction error", + [SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER]: "Provided owner is not allowed", + [SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE]: "Account is immutable", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY]: "Incorrect authority provided", + [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID]: "incorrect program id for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS]: "insufficient funds for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA]: "invalid account data for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER]: "Invalid account owner", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT]: "invalid program argument", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR]: "program returned invalid error code", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA]: "invalid instruction data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC]: "Failed to reallocate account data", + [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS]: "Provided seeds do not result in a valid address", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED]: "Accounts data allocations exceeded the maximum allowed per transaction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED]: "Max accounts exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED]: "Max instruction trace length exceeded", + [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED]: "Length of the seed is too long for address generation", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT]: "An account required by the instruction is missing", + [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE]: "missing required signature for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID]: "instruction illegally modified the program id of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS]: "insufficient account keys for instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION]: "Cross-program invocation with unauthorized signer or writable account", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE]: "Failed to create program execution environment", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE]: "Program failed to compile", + [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE]: "Program failed to complete", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED]: "instruction modified data of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE]: "instruction changed the balance of a read-only account", + [SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED]: "Cross-program invocation reentrancy not allowed for this instruction", + [SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED]: "instruction modified rent epoch of an account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION]: "sum of account balances before and after instruction do not match", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT]: "instruction requires an initialized account", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: "", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID]: "Unsupported program id", + [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR]: "Unsupported sysvar", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: "The instruction does not have any accounts.", + [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: "The instruction does not have any data.", + [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]: "Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.", + [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]: "Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.", + [SOLANA_ERROR__INVALID_NONCE]: "The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`", + [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]: "Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]: "Invariant violation: Switch statement non-exhaustive. Received unexpected value `$unexpectedValue`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE]: "Invariant violation: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING]: "Invariant violation: WebSocket message iterator is missing state storage. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant", + [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: "JSON-RPC error: Internal JSON-RPC error ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: "JSON-RPC error: Invalid method parameter(s) ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]: "JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]: "JSON-RPC error: The method does not exist / is not available ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]: "JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)", + [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: "Minimum context slot has not been reached", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: "Node is unhealthy; behind by $numSlotsBehind slots", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT]: "No snapshot", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: "Transaction simulation failed", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE]: "Transaction history is not available from this node", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: "$__serverMessage", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH]: "Transaction signature length mismatch", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE]: "Transaction signature verification failure", + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: "$__serverMessage", + [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: "Key pair bytes must be of length 64, got $byteLength.", + [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]: "Expected private key bytes with length 32. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]: "Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.", + [SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY]: "The provided private key does not match the provided public key.", + [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]: "Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.", + [SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE]: "Lamports value must be in the range [0, 2e64-1]", + [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: "`$value` cannot be parsed as a `BigInt`", + [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: "`$value` cannot be parsed as a `Number`", + [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: "No nonce account could be found at address `$nonceAccountAddress`", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST]: "Either the notification name must end in 'Notifications' or the API must supply a subscription creator function for the notification '$notificationName' to map between the notification name and the subscribe/unsubscribe method names.", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID]: "Failed to obtain a subscription id from the server", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED]: "WebSocket was closed before payload could be added to the send buffer", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED]: "WebSocket connection closed", + [SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT]: "WebSocket failed to connect", + [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]: "The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was `$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds `Number.MAX_SAFE_INTEGER`.", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: "HTTP error ($statusCode): $message", + [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]: "HTTP header(s) forbidden: $headers. Learn more at https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.", + [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]: "Multiple distinct signers were identified for address `$address`. Please ensure that you are using the same signer instance for each address.", + [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]: "The provided value does not implement the `KeyPairSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]: "The provided value does not implement the `MessageModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]: "The provided value does not implement the `MessagePartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]: "The provided value does not implement any of the `MessageSigner` interfaces", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]: "The provided value does not implement the `TransactionModifyingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]: "The provided value does not implement the `TransactionPartialSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]: "The provided value does not implement the `TransactionSendingSigner` interface", + [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]: "The provided value does not implement any of the `TransactionSigner` interfaces", + [SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS]: "More than one `TransactionSendingSigner` was identified.", + [SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING]: "No `TransactionSendingSigner` was identified. Please provide a valid `ITransactionWithSingleSendingSigner` transaction.", + [SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED]: "Wallet account signers do not support signing multiple messages/transactions in a single operation", + [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: "Cannot export a non-extractable key.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED]: "No digest implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT]: "Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.", + [SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED]: "This runtime does not support the generation of Ed25519 key pairs.\n\nInstall @solana/webcrypto-ed25519-polyfill and call its `install` function before generating keys in environments that do not support Ed25519.\n\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.", + [SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED]: "No signature verification implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED]: "No key generation implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED]: "No signing implementation could be found.", + [SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED]: "No key export implementation could be found.", + [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]: "Timestamp value must be in the range [-8.64e15, 8.64e15]. `$value` given", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: "Transaction processing left an account with an outstanding borrowed reference", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE]: "Account in use", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE]: "Account loaded twice", + [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND]: "Attempt to debit an account but found no record of a prior credit.", + [SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND]: "Transaction loads an address table account that doesn't exist", + [SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED]: "This transaction has already been processed", + [SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND]: "Blockhash not found", + [SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP]: "Loader call chain is too deep", + [SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE]: "Transactions are currently disabled due to cluster maintenance", + [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]: "Transaction contains a duplicate instruction ($index) that is not allowed", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: "Insufficient funds for fee", + [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]: "Transaction results in an account ($accountIndex) with insufficient funds for rent", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE]: "This account may not be used to pay transaction fees", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX]: "Transaction contains an invalid account reference", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA]: "Transaction loads an address table account with invalid data", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX]: "Transaction address table lookup uses an invalid index", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER]: "Transaction loads an address table account with an invalid owner", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT]: "LoadedAccountsDataSizeLimit set for transaction must be greater than 0.", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION]: "This program may not be used for executing instructions", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT]: "Transaction leaves an account with a lower balance than rent-exempt minimum", + [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT]: "Transaction loads a writable account that cannot be written", + [SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED]: "Transaction exceeded max loaded accounts data size cap", + [SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE]: "Transaction requires a fee but has no signature present", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND]: "Attempt to load a program that does not exist", + [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]: "Execution of the program referenced by account at index $accountIndex is temporarily restricted.", + [SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED]: "ResanitizationNeeded", + [SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE]: "Transaction failed to sanitize accounts offsets correctly", + [SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE]: "Transaction did not pass signature verification", + [SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS]: "Transaction locked too many accounts", + [SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION]: "Sum of account balances before and after transaction do not match", + [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: "The transaction failed with the error `$errorName`", + [SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION]: "Transaction version is unsupported", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT]: "Transaction would exceed account data limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT]: "Transaction would exceed total account data limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT]: "Transaction would exceed max account limit within the block", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT]: "Transaction would exceed max Block Cost Limit", + [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT]: "Transaction would exceed max Vote Cost Limit", + [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]: "Attempted to sign a transaction with an address that is not a signer for it", + [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: "Transaction is missing an address at index: $index.", + [SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES]: "Transaction has no expected signers therefore it cannot be encoded", + [SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME]: "Transaction does not have a blockhash lifetime", + [SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME]: "Transaction is not a durable nonce transaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]: "Contents of these address lookup tables unknown: $lookupTableAddresses", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]: "Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING]: "No fee payer set in CompiledTransaction", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]: "Could not find program address at index $index", + [SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT]: "Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING]: "Transaction is missing a fee payer.", + [SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING]: "Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE]: "Transaction first instruction is not advance nonce account instruction.", + [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING]: "Transaction with no instructions cannot be durable nonce transaction.", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]: "This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees", + [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]: "This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable", + [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]: "The transaction message expected the transaction to have $signerAddressesLength signatures, got $signaturesLength.", + [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: "Transaction is missing signatures for addresses: $addresses.", + [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]: "Transaction version must be in the range [0, 127]. `$actualVersion` given" + }; + var START_INDEX = "i"; + var TYPE = "t"; + function getHumanReadableErrorMessage(code, context = {}) { + const messageFormatString = SolanaErrorMessages[code]; + if (messageFormatString.length === 0) { + return ""; + } + let state; + function commitStateUpTo(endIndex) { + if (state[TYPE] === 2) { + const variableName = messageFormatString.slice(state[START_INDEX] + 1, endIndex); + fragments.push( + variableName in context ? `${context[variableName]}` : `$${variableName}` + ); + } else if (state[TYPE] === 1) { + fragments.push(messageFormatString.slice(state[START_INDEX], endIndex)); + } + } + const fragments = []; + messageFormatString.split("").forEach((char, ii) => { + if (ii === 0) { + state = { + [START_INDEX]: 0, + [TYPE]: messageFormatString[0] === "\\" ? 0 : messageFormatString[0] === "$" ? 2 : 1 + /* Text */ + }; + return; + } + let nextState; + switch (state[TYPE]) { + case 0: + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + break; + case 1: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } + break; + case 2: + if (char === "\\") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 0 + /* EscapeSequence */ + }; + } else if (char === "$") { + nextState = { + [START_INDEX]: ii, + [TYPE]: 2 + /* Variable */ + }; + } else if (!char.match(/\w/)) { + nextState = { + [START_INDEX]: ii, + [TYPE]: 1 + /* Text */ + }; + } + break; + } + if (nextState) { + if (state !== nextState) { + commitStateUpTo(ii); + } + state = nextState; + } + }); + commitStateUpTo(); + return fragments.join(""); + } + function getErrorMessage(code, context = {}) { + if (process.env.NODE_ENV !== "production") { + return getHumanReadableErrorMessage(code, context); + } else { + let decodingAdviceMessage = `Solana error #${code}; Decode this error by running \`npx @solana/errors decode -- ${code}`; + if (Object.keys(context).length) { + decodingAdviceMessage += ` '${encodeContextObject(context)}'`; + } + return `${decodingAdviceMessage}\``; + } + } + function isSolanaError(e, code) { + const isSolanaError2 = e instanceof Error && e.name === "SolanaError"; + if (isSolanaError2) { + if (code !== void 0) { + return e.context.__code === code; + } + return true; + } + return false; + } + var SolanaError = class extends Error { + cause = this.cause; + context; + constructor(...[code, contextAndErrorOptions]) { + let context; + let errorOptions; + if (contextAndErrorOptions) { + const { cause, ...contextRest } = contextAndErrorOptions; + if (cause) { + errorOptions = { cause }; + } + if (Object.keys(contextRest).length > 0) { + context = contextRest; + } + } + const message = getErrorMessage(code, context); + super(message, errorOptions); + this.context = { + __code: code, + ...context + }; + this.name = "SolanaError"; + } + }; + function safeCaptureStackTrace(...args) { + if ("captureStackTrace" in Error && typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(...args); + } + } + function getSolanaErrorFromRpcError({ errorCodeBaseOffset, getErrorContext, orderedErrorNames, rpcEnumError }, constructorOpt) { + let rpcErrorName; + let rpcErrorContext; + if (typeof rpcEnumError === "string") { + rpcErrorName = rpcEnumError; + } else { + rpcErrorName = Object.keys(rpcEnumError)[0]; + rpcErrorContext = rpcEnumError[rpcErrorName]; + } + const codeOffset = orderedErrorNames.indexOf(rpcErrorName); + const errorCode = errorCodeBaseOffset + codeOffset; + const errorContext = getErrorContext(errorCode, rpcErrorName, rpcErrorContext); + const err = new SolanaError(errorCode, errorContext); + safeCaptureStackTrace(err, constructorOpt); + return err; + } + var ORDERED_ERROR_NAMES = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/program/src/instruction.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "GenericError", + "InvalidArgument", + "InvalidInstructionData", + "InvalidAccountData", + "AccountDataTooSmall", + "InsufficientFunds", + "IncorrectProgramId", + "MissingRequiredSignature", + "AccountAlreadyInitialized", + "UninitializedAccount", + "UnbalancedInstruction", + "ModifiedProgramId", + "ExternalAccountLamportSpend", + "ExternalAccountDataModified", + "ReadonlyLamportChange", + "ReadonlyDataModified", + "DuplicateAccountIndex", + "ExecutableModified", + "RentEpochModified", + "NotEnoughAccountKeys", + "AccountDataSizeChanged", + "AccountNotExecutable", + "AccountBorrowFailed", + "AccountBorrowOutstanding", + "DuplicateAccountOutOfSync", + "Custom", + "InvalidError", + "ExecutableDataModified", + "ExecutableLamportChange", + "ExecutableAccountNotRentExempt", + "UnsupportedProgramId", + "CallDepth", + "MissingAccount", + "ReentrancyNotAllowed", + "MaxSeedLengthExceeded", + "InvalidSeeds", + "InvalidRealloc", + "ComputationalBudgetExceeded", + "PrivilegeEscalation", + "ProgramEnvironmentSetupFailure", + "ProgramFailedToComplete", + "ProgramFailedToCompile", + "Immutable", + "IncorrectAuthority", + "BorshIoError", + "AccountNotRentExempt", + "InvalidAccountOwner", + "ArithmeticOverflow", + "UnsupportedSysvar", + "IllegalOwner", + "MaxAccountsDataAllocationsExceeded", + "MaxAccountsExceeded", + "MaxInstructionTraceLengthExceeded", + "BuiltinProgramsMustConsumeComputeUnits" + ]; + function getSolanaErrorFromInstructionError(index, instructionError) { + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 4615001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + index, + ...rpcErrorContext !== void 0 ? { instructionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM) { + return { + code: rpcErrorContext, + index + }; + } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR) { + return { + encodedData: rpcErrorContext, + index + }; + } + return { index }; + }, + orderedErrorNames: ORDERED_ERROR_NAMES, + rpcEnumError: instructionError + }, + getSolanaErrorFromInstructionError + ); + } + var ORDERED_ERROR_NAMES2 = [ + // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/src/transaction/error.rs + // If this list ever gets too large, consider implementing a compression strategy like this: + // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47 + "AccountInUse", + "AccountLoadedTwice", + "AccountNotFound", + "ProgramAccountNotFound", + "InsufficientFundsForFee", + "InvalidAccountForFee", + "AlreadyProcessed", + "BlockhashNotFound", + // `InstructionError` intentionally omitted; delegated to `getSolanaErrorFromInstructionError` + "CallChainTooDeep", + "MissingSignatureForFee", + "InvalidAccountIndex", + "SignatureFailure", + "InvalidProgramForExecution", + "SanitizeFailure", + "ClusterMaintenance", + "AccountBorrowOutstanding", + "WouldExceedMaxBlockCostLimit", + "UnsupportedVersion", + "InvalidWritableAccount", + "WouldExceedMaxAccountCostLimit", + "WouldExceedAccountDataBlockLimit", + "TooManyAccountLocks", + "AddressLookupTableNotFound", + "InvalidAddressLookupTableOwner", + "InvalidAddressLookupTableData", + "InvalidAddressLookupTableIndex", + "InvalidRentPayingAccount", + "WouldExceedMaxVoteCostLimit", + "WouldExceedAccountDataTotalLimit", + "DuplicateInstruction", + "InsufficientFundsForRent", + "MaxLoadedAccountsDataSizeExceeded", + "InvalidLoadedAccountsDataSizeLimit", + "ResanitizationNeeded", + "ProgramExecutionTemporarilyRestricted", + "UnbalancedTransaction" + ]; + function getSolanaErrorFromTransactionError(transactionError) { + if (typeof transactionError === "object" && "InstructionError" in transactionError) { + return getSolanaErrorFromInstructionError( + ...transactionError.InstructionError + ); + } + return getSolanaErrorFromRpcError( + { + errorCodeBaseOffset: 7050001, + getErrorContext(errorCode, rpcErrorName, rpcErrorContext) { + if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN) { + return { + errorName: rpcErrorName, + ...rpcErrorContext !== void 0 ? { transactionErrorContext: rpcErrorContext } : null + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION) { + return { + index: rpcErrorContext + }; + } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT || errorCode === SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED) { + return { + accountIndex: rpcErrorContext.account_index + }; + } + }, + orderedErrorNames: ORDERED_ERROR_NAMES2, + rpcEnumError: transactionError + }, + getSolanaErrorFromTransactionError + ); + } + function getSolanaErrorFromJsonRpcError({ code, data, message }) { + let out; + if (code === SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE) { + const { err, ...preflightErrorContext } = data; + const causeObject = err ? { cause: getSolanaErrorFromTransactionError(err) } : null; + out = new SolanaError(SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, { + ...preflightErrorContext, + ...causeObject + }); + } else { + let errorContext; + switch (code) { + case SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR: + case SOLANA_ERROR__JSON_RPC__INVALID_PARAMS: + case SOLANA_ERROR__JSON_RPC__INVALID_REQUEST: + case SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND: + case SOLANA_ERROR__JSON_RPC__PARSE_ERROR: + case SOLANA_ERROR__JSON_RPC__SCAN_ERROR: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: + errorContext = { __serverMessage: message }; + break; + default: + if (typeof data === "object" && !Array.isArray(data)) { + errorContext = data; + } + } + out = new SolanaError(code, errorContext); + } + safeCaptureStackTrace(out, getSolanaErrorFromJsonRpcError); + return out; + } + exports2.SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED; + exports2.SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT; + exports2.SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND; + exports2.SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY; + exports2.SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE; + exports2.SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = SOLANA_ERROR__ADDRESSES__MALFORMED_PDA; + exports2.SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE; + exports2.SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER; + exports2.SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED; + exports2.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY; + exports2.SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS; + exports2.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH; + exports2.SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH; + exports2.SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE; + exports2.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH; + exports2.SOLANA_ERROR__CODECS__INVALID_CONSTANT = SOLANA_ERROR__CODECS__INVALID_CONSTANT; + exports2.SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT; + exports2.SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS; + exports2.SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE; + exports2.SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES; + exports2.SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE; + exports2.SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID; + exports2.SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS; + exports2.SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA; + exports2.SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH; + exports2.SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH; + exports2.SOLANA_ERROR__INVALID_NONCE = SOLANA_ERROR__INVALID_NONCE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE; + exports2.SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING = SOLANA_ERROR__INVARIANT_VIOLATION__WEBSOCKET_MESSAGE_ITERATOR_STATE_MISSING; + exports2.SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = SOLANA_ERROR__JSON_RPC__INVALID_PARAMS; + exports2.SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = SOLANA_ERROR__JSON_RPC__INVALID_REQUEST; + exports2.SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND; + exports2.SOLANA_ERROR__JSON_RPC__PARSE_ERROR = SOLANA_ERROR__JSON_RPC__PARSE_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SCAN_ERROR = SOLANA_ERROR__JSON_RPC__SCAN_ERROR; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE; + exports2.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION; + exports2.SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH; + exports2.SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY; + exports2.SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE; + exports2.SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE; + exports2.SOLANA_ERROR__MALFORMED_BIGINT_STRING = SOLANA_ERROR__MALFORMED_BIGINT_STRING; + exports2.SOLANA_ERROR__MALFORMED_NUMBER_STRING = SOLANA_ERROR__MALFORMED_NUMBER_STRING; + exports2.SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST = SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_REQUEST; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CLOSED_BEFORE_MESSAGE_BUFFERED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_CONNECTION_CLOSED; + exports2.SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT = SOLANA_ERROR__RPC_SUBSCRIPTIONS__TRANSPORT_FAILED_TO_CONNECT; + exports2.SOLANA_ERROR__RPC__INTEGER_OVERFLOW = SOLANA_ERROR__RPC__INTEGER_OVERFLOW; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR; + exports2.SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN; + exports2.SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER; + exports2.SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS; + exports2.SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING; + exports2.SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED; + exports2.SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION; + exports2.SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND; + exports2.SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE; + exports2.SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES; + exports2.SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE; + exports2.SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH; + exports2.SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING; + exports2.SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE; + exports2.SolanaError = SolanaError; + exports2.getSolanaErrorFromInstructionError = getSolanaErrorFromInstructionError; + exports2.getSolanaErrorFromJsonRpcError = getSolanaErrorFromJsonRpcError; + exports2.getSolanaErrorFromTransactionError = getSolanaErrorFromTransactionError; + exports2.isSolanaError = isSolanaError; + exports2.safeCaptureStackTrace = safeCaptureStackTrace; + } +}); + +// node_modules/@solana/options/node_modules/@solana/codecs-core/dist/index.node.cjs +var require_index_node16 = __commonJS({ + "node_modules/@solana/options/node_modules/@solana/codecs-core/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node15(); + var mergeBytes = (byteArrays) => { + const nonEmptyByteArrays = byteArrays.filter((arr) => arr.length); + if (nonEmptyByteArrays.length === 0) { + return byteArrays.length ? byteArrays[0] : new Uint8Array(); + } + if (nonEmptyByteArrays.length === 1) { + return nonEmptyByteArrays[0]; + } + const totalLength = nonEmptyByteArrays.reduce((total, arr) => total + arr.length, 0); + const result = new Uint8Array(totalLength); + let offset = 0; + nonEmptyByteArrays.forEach((arr) => { + result.set(arr, offset); + offset += arr.length; + }); + return result; + }; + var padBytes = (bytes7, length) => { + if (bytes7.length >= length) return bytes7; + const paddedBytes = new Uint8Array(length).fill(0); + paddedBytes.set(bytes7); + return paddedBytes; + }; + var fixBytes = (bytes7, length) => padBytes(bytes7.length <= length ? bytes7 : bytes7.slice(0, length), length); + function containsBytes(data, bytes7, offset) { + const slice = offset === 0 && data.length === bytes7.length ? data : data.slice(offset, offset + bytes7.length); + if (slice.length !== bytes7.length) return false; + return bytes7.every((b, i) => b === slice[i]); + } + function getEncodedSize(value, encoder) { + return "fixedSize" in encoder ? encoder.fixedSize : encoder.getSizeFromValue(value); + } + function createEncoder(encoder) { + return Object.freeze({ + ...encoder, + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, encoder)); + encoder.write(value, bytes7, 0); + return bytes7; + } + }); + } + function createDecoder(decoder) { + return Object.freeze({ + ...decoder, + decode: (bytes7, offset = 0) => decoder.read(bytes7, offset)[0] + }); + } + function createCodec(codec) { + return Object.freeze({ + ...codec, + decode: (bytes7, offset = 0) => codec.read(bytes7, offset)[0], + encode: (value) => { + const bytes7 = new Uint8Array(getEncodedSize(value, codec)); + codec.write(value, bytes7, 0); + return bytes7; + } + }); + } + function isFixedSize(codec) { + return "fixedSize" in codec && typeof codec.fixedSize === "number"; + } + function assertIsFixedSize(codec) { + if (!isFixedSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH); + } + } + function isVariableSize(codec) { + return !isFixedSize(codec); + } + function assertIsVariableSize(codec) { + if (!isVariableSize(codec)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH); + } + } + function combineCodec(encoder, decoder) { + if (isFixedSize(encoder) !== isFixedSize(decoder)) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH); + } + if (isFixedSize(encoder) && isFixedSize(decoder) && encoder.fixedSize !== decoder.fixedSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH, { + decoderFixedSize: decoder.fixedSize, + encoderFixedSize: encoder.fixedSize + }); + } + if (!isFixedSize(encoder) && !isFixedSize(decoder) && encoder.maxSize !== decoder.maxSize) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH, { + decoderMaxSize: decoder.maxSize, + encoderMaxSize: encoder.maxSize + }); + } + return { + ...decoder, + ...encoder, + decode: decoder.decode, + encode: encoder.encode, + read: decoder.read, + write: encoder.write + }; + } + function addEncoderSentinel(encoder, sentinel) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + if (findSentinelIndex(encoderBytes, sentinel) >= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL, { + encodedBytes: encoderBytes, + hexEncodedBytes: hexBytes(encoderBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + bytes7.set(encoderBytes, offset); + offset += encoderBytes.length; + bytes7.set(sentinel, offset); + offset += sentinel.length; + return offset; + }; + if (isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: encoder.fixedSize + sentinel.length, write }); + } + return createEncoder({ + ...encoder, + ...encoder.maxSize != null ? { maxSize: encoder.maxSize + sentinel.length } : {}, + getSizeFromValue: (value) => encoder.getSizeFromValue(value) + sentinel.length, + write + }); + } + function addDecoderSentinel(decoder, sentinel) { + const read = (bytes7, offset) => { + const candidateBytes = offset === 0 ? bytes7 : bytes7.slice(offset); + const sentinelIndex = findSentinelIndex(candidateBytes, sentinel); + if (sentinelIndex === -1) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES, { + decodedBytes: candidateBytes, + hexDecodedBytes: hexBytes(candidateBytes), + hexSentinel: hexBytes(sentinel), + sentinel + }); + } + const preSentinelBytes = candidateBytes.slice(0, sentinelIndex); + return [decoder.decode(preSentinelBytes), offset + preSentinelBytes.length + sentinel.length]; + }; + if (isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: decoder.fixedSize + sentinel.length, read }); + } + return createDecoder({ + ...decoder, + ...decoder.maxSize != null ? { maxSize: decoder.maxSize + sentinel.length } : {}, + read + }); + } + function addCodecSentinel(codec, sentinel) { + return combineCodec(addEncoderSentinel(codec, sentinel), addDecoderSentinel(codec, sentinel)); + } + function findSentinelIndex(bytes7, sentinel) { + return bytes7.findIndex((byte, index, arr) => { + if (sentinel.length === 1) return byte === sentinel[0]; + return containsBytes(arr, sentinel, index); + }); + } + function hexBytes(bytes7) { + return bytes7.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), ""); + } + function assertByteArrayIsNotEmptyForCodec(codecDescription, bytes7, offset = 0) { + if (bytes7.length - offset <= 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY, { + codecDescription + }); + } + } + function assertByteArrayHasEnoughBytesForCodec(codecDescription, expected, bytes7, offset = 0) { + const bytesLength = bytes7.length - offset; + if (bytesLength < expected) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH, { + bytesLength, + codecDescription, + expected + }); + } + } + function assertByteArrayOffsetIsNotOutOfRange(codecDescription, offset, bytesLength) { + if (offset < 0 || offset > bytesLength) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE, { + bytesLength, + codecDescription, + offset + }); + } + } + function addEncoderSizePrefix(encoder, prefix) { + const write = (value, bytes7, offset) => { + const encoderBytes = encoder.encode(value); + offset = prefix.write(encoderBytes.length, bytes7, offset); + bytes7.set(encoderBytes, offset); + return offset + encoderBytes.length; + }; + if (isFixedSize(prefix) && isFixedSize(encoder)) { + return createEncoder({ ...encoder, fixedSize: prefix.fixedSize + encoder.fixedSize, write }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const encoderMaxSize = isFixedSize(encoder) ? encoder.fixedSize : encoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && encoderMaxSize !== null ? prefixMaxSize + encoderMaxSize : null; + return createEncoder({ + ...encoder, + ...maxSize !== null ? { maxSize } : {}, + getSizeFromValue: (value) => { + const encoderSize = getEncodedSize(value, encoder); + return getEncodedSize(encoderSize, prefix) + encoderSize; + }, + write + }); + } + function addDecoderSizePrefix(decoder, prefix) { + const read = (bytes7, offset) => { + const [bigintSize, decoderOffset] = prefix.read(bytes7, offset); + const size = Number(bigintSize); + offset = decoderOffset; + if (offset > 0 || bytes7.length > size) { + bytes7 = bytes7.slice(offset, offset + size); + } + assertByteArrayHasEnoughBytesForCodec("addDecoderSizePrefix", size, bytes7); + return [decoder.decode(bytes7), offset + size]; + }; + if (isFixedSize(prefix) && isFixedSize(decoder)) { + return createDecoder({ ...decoder, fixedSize: prefix.fixedSize + decoder.fixedSize, read }); + } + const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : prefix.maxSize ?? null; + const decoderMaxSize = isFixedSize(decoder) ? decoder.fixedSize : decoder.maxSize ?? null; + const maxSize = prefixMaxSize !== null && decoderMaxSize !== null ? prefixMaxSize + decoderMaxSize : null; + return createDecoder({ ...decoder, ...maxSize !== null ? { maxSize } : {}, read }); + } + function addCodecSizePrefix(codec, prefix) { + return combineCodec(addEncoderSizePrefix(codec, prefix), addDecoderSizePrefix(codec, prefix)); + } + function fixEncoderSize(encoder, fixedBytes) { + return createEncoder({ + fixedSize: fixedBytes, + write: (value, bytes7, offset) => { + const variableByteArray = encoder.encode(value); + const fixedByteArray = variableByteArray.length > fixedBytes ? variableByteArray.slice(0, fixedBytes) : variableByteArray; + bytes7.set(fixedByteArray, offset); + return offset + fixedBytes; + } + }); + } + function fixDecoderSize(decoder, fixedBytes) { + return createDecoder({ + fixedSize: fixedBytes, + read: (bytes7, offset) => { + assertByteArrayHasEnoughBytesForCodec("fixCodecSize", fixedBytes, bytes7, offset); + if (offset > 0 || bytes7.length > fixedBytes) { + bytes7 = bytes7.slice(offset, offset + fixedBytes); + } + if (isFixedSize(decoder)) { + bytes7 = fixBytes(bytes7, decoder.fixedSize); + } + const [value] = decoder.read(bytes7, 0); + return [value, offset + fixedBytes]; + } + }); + } + function fixCodecSize(codec, fixedBytes) { + return combineCodec(fixEncoderSize(codec, fixedBytes), fixDecoderSize(codec, fixedBytes)); + } + function offsetEncoder(encoder, config) { + return createEncoder({ + ...encoder, + write: (value, bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPreOffset, bytes7.length); + const postOffset = encoder.write(value, bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetEncoder", newPostOffset, bytes7.length); + return newPostOffset; + } + }); + } + function offsetDecoder(decoder, config) { + return createDecoder({ + ...decoder, + read: (bytes7, preOffset) => { + const wrapBytes = (offset) => modulo(offset, bytes7.length); + const newPreOffset = config.preOffset ? config.preOffset({ bytes: bytes7, preOffset, wrapBytes }) : preOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPreOffset, bytes7.length); + const [value, postOffset] = decoder.read(bytes7, newPreOffset); + const newPostOffset = config.postOffset ? config.postOffset({ bytes: bytes7, newPreOffset, postOffset, preOffset, wrapBytes }) : postOffset; + assertByteArrayOffsetIsNotOutOfRange("offsetDecoder", newPostOffset, bytes7.length); + return [value, newPostOffset]; + } + }); + } + function offsetCodec(codec, config) { + return combineCodec(offsetEncoder(codec, config), offsetDecoder(codec, config)); + } + function modulo(dividend, divisor) { + if (divisor === 0) return 0; + return (dividend % divisor + divisor) % divisor; + } + function resizeEncoder(encoder, resize) { + if (isFixedSize(encoder)) { + const fixedSize = resize(encoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeEncoder" + }); + } + return createEncoder({ ...encoder, fixedSize }); + } + return createEncoder({ + ...encoder, + getSizeFromValue: (value) => { + const newSize = resize(encoder.getSizeFromValue(value)); + if (newSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: newSize, + codecDescription: "resizeEncoder" + }); + } + return newSize; + } + }); + } + function resizeDecoder(decoder, resize) { + if (isFixedSize(decoder)) { + const fixedSize = resize(decoder.fixedSize); + if (fixedSize < 0) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, { + bytesLength: fixedSize, + codecDescription: "resizeDecoder" + }); + } + return createDecoder({ ...decoder, fixedSize }); + } + return decoder; + } + function resizeCodec(codec, resize) { + return combineCodec(resizeEncoder(codec, resize), resizeDecoder(codec, resize)); + } + function padLeftEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightEncoder(encoder, offset) { + return offsetEncoder( + resizeEncoder(encoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { preOffset: ({ preOffset }) => preOffset + offset } + ); + } + function padRightDecoder(decoder, offset) { + return offsetDecoder( + resizeDecoder(decoder, (size) => size + offset), + { postOffset: ({ postOffset }) => postOffset + offset } + ); + } + function padLeftCodec(codec, offset) { + return combineCodec(padLeftEncoder(codec, offset), padLeftDecoder(codec, offset)); + } + function padRightCodec(codec, offset) { + return combineCodec(padRightEncoder(codec, offset), padRightDecoder(codec, offset)); + } + function copySourceToTargetInReverse(source, target_WILL_MUTATE, sourceOffset, sourceLength, targetOffset = 0) { + while (sourceOffset < --sourceLength) { + const leftValue = source[sourceOffset]; + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceLength]; + target_WILL_MUTATE[sourceLength + targetOffset] = leftValue; + sourceOffset++; + } + if (sourceOffset === sourceLength) { + target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceOffset]; + } + } + function reverseEncoder(encoder) { + assertIsFixedSize(encoder); + return createEncoder({ + ...encoder, + write: (value, bytes7, offset) => { + const newOffset = encoder.write(value, bytes7, offset); + copySourceToTargetInReverse( + bytes7, + bytes7, + offset, + offset + encoder.fixedSize + ); + return newOffset; + } + }); + } + function reverseDecoder(decoder) { + assertIsFixedSize(decoder); + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const reversedBytes = bytes7.slice(); + copySourceToTargetInReverse( + bytes7, + reversedBytes, + offset, + offset + decoder.fixedSize + ); + return decoder.read(reversedBytes, offset); + } + }); + } + function reverseCodec(codec) { + return combineCodec(reverseEncoder(codec), reverseDecoder(codec)); + } + function transformEncoder(encoder, unmap) { + return createEncoder({ + ...isVariableSize(encoder) ? { ...encoder, getSizeFromValue: (value) => encoder.getSizeFromValue(unmap(value)) } : encoder, + write: (value, bytes7, offset) => encoder.write(unmap(value), bytes7, offset) + }); + } + function transformDecoder(decoder, map) { + return createDecoder({ + ...decoder, + read: (bytes7, offset) => { + const [value, newOffset] = decoder.read(bytes7, offset); + return [map(value, bytes7, offset), newOffset]; + } + }); + } + function transformCodec(codec, unmap, map) { + return createCodec({ + ...transformEncoder(codec, unmap), + read: map ? transformDecoder(codec, map).read : codec.read + }); + } + exports2.addCodecSentinel = addCodecSentinel; + exports2.addCodecSizePrefix = addCodecSizePrefix; + exports2.addDecoderSentinel = addDecoderSentinel; + exports2.addDecoderSizePrefix = addDecoderSizePrefix; + exports2.addEncoderSentinel = addEncoderSentinel; + exports2.addEncoderSizePrefix = addEncoderSizePrefix; + exports2.assertByteArrayHasEnoughBytesForCodec = assertByteArrayHasEnoughBytesForCodec; + exports2.assertByteArrayIsNotEmptyForCodec = assertByteArrayIsNotEmptyForCodec; + exports2.assertByteArrayOffsetIsNotOutOfRange = assertByteArrayOffsetIsNotOutOfRange; + exports2.assertIsFixedSize = assertIsFixedSize; + exports2.assertIsVariableSize = assertIsVariableSize; + exports2.combineCodec = combineCodec; + exports2.containsBytes = containsBytes; + exports2.createCodec = createCodec; + exports2.createDecoder = createDecoder; + exports2.createEncoder = createEncoder; + exports2.fixBytes = fixBytes; + exports2.fixCodecSize = fixCodecSize; + exports2.fixDecoderSize = fixDecoderSize; + exports2.fixEncoderSize = fixEncoderSize; + exports2.getEncodedSize = getEncodedSize; + exports2.isFixedSize = isFixedSize; + exports2.isVariableSize = isVariableSize; + exports2.mergeBytes = mergeBytes; + exports2.offsetCodec = offsetCodec; + exports2.offsetDecoder = offsetDecoder; + exports2.offsetEncoder = offsetEncoder; + exports2.padBytes = padBytes; + exports2.padLeftCodec = padLeftCodec; + exports2.padLeftDecoder = padLeftDecoder; + exports2.padLeftEncoder = padLeftEncoder; + exports2.padRightCodec = padRightCodec; + exports2.padRightDecoder = padRightDecoder; + exports2.padRightEncoder = padRightEncoder; + exports2.resizeCodec = resizeCodec; + exports2.resizeDecoder = resizeDecoder; + exports2.resizeEncoder = resizeEncoder; + exports2.reverseCodec = reverseCodec; + exports2.reverseDecoder = reverseDecoder; + exports2.reverseEncoder = reverseEncoder; + exports2.transformCodec = transformCodec; + exports2.transformDecoder = transformDecoder; + exports2.transformEncoder = transformEncoder; + } +}); + +// node_modules/@solana/options/node_modules/@solana/codecs-numbers/dist/index.node.cjs +var require_index_node17 = __commonJS({ + "node_modules/@solana/options/node_modules/@solana/codecs-numbers/dist/index.node.cjs"(exports2) { + "use strict"; + var errors = require_index_node15(); + var codecsCore = require_index_node16(); + function assertNumberIsBetweenForCodec(codecDescription, min, max, value) { + if (value < min || value > max) { + throw new errors.SolanaError(errors.SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE, { + codecDescription, + max, + min, + value + }); + } + } + var Endian = /* @__PURE__ */ ((Endian2) => { + Endian2[Endian2["Little"] = 0] = "Little"; + Endian2[Endian2["Big"] = 1] = "Big"; + return Endian2; + })(Endian || {}); + function isLittleEndian(config) { + return config?.endian === 1 ? false : true; + } + function numberEncoderFactory(input) { + return codecsCore.createEncoder({ + fixedSize: input.size, + write(value, bytes7, offset) { + if (input.range) { + assertNumberIsBetweenForCodec(input.name, input.range[0], input.range[1], value); + } + const arrayBuffer = new ArrayBuffer(input.size); + input.set(new DataView(arrayBuffer), value, isLittleEndian(input.config)); + bytes7.set(new Uint8Array(arrayBuffer), offset); + return offset + input.size; + } + }); + } + function numberDecoderFactory(input) { + return codecsCore.createDecoder({ + fixedSize: input.size, + read(bytes7, offset = 0) { + codecsCore.assertByteArrayIsNotEmptyForCodec(input.name, bytes7, offset); + codecsCore.assertByteArrayHasEnoughBytesForCodec(input.name, input.size, bytes7, offset); + const view = new DataView(toArrayBuffer(bytes7, offset, input.size)); + return [input.get(view, isLittleEndian(input.config)), offset + input.size]; + } + }); + } + function toArrayBuffer(bytes7, offset, length) { + const bytesOffset = bytes7.byteOffset + (offset ?? 0); + const bytesLength = length ?? bytes7.byteLength; + return bytes7.buffer.slice(bytesOffset, bytesOffset + bytesLength); + } + var getF32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "f32", + set: (view, value, le) => view.setFloat32(0, Number(value), le), + size: 4 + }); + var getF32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getFloat32(0, le), + name: "f32", + size: 4 + }); + var getF32Codec = (config = {}) => codecsCore.combineCodec(getF32Encoder(config), getF32Decoder(config)); + var getF64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "f64", + set: (view, value, le) => view.setFloat64(0, Number(value), le), + size: 8 + }); + var getF64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getFloat64(0, le), + name: "f64", + size: 8 + }); + var getF64Codec = (config = {}) => codecsCore.combineCodec(getF64Encoder(config), getF64Decoder(config)); + var getI128Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i128", + range: [-BigInt("0x7fffffffffffffffffffffffffffffff") - 1n, BigInt("0x7fffffffffffffffffffffffffffffff")], + set: (view, value, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const rightMask = 0xffffffffffffffffn; + view.setBigInt64(leftOffset, BigInt(value) >> 64n, le); + view.setBigUint64(rightOffset, BigInt(value) & rightMask, le); + }, + size: 16 + }); + var getI128Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const left = view.getBigInt64(leftOffset, le); + const right = view.getBigUint64(rightOffset, le); + return (left << 64n) + right; + }, + name: "i128", + size: 16 + }); + var getI128Codec = (config = {}) => codecsCore.combineCodec(getI128Encoder(config), getI128Decoder(config)); + var getI16Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i16", + range: [-Number("0x7fff") - 1, Number("0x7fff")], + set: (view, value, le) => view.setInt16(0, Number(value), le), + size: 2 + }); + var getI16Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getInt16(0, le), + name: "i16", + size: 2 + }); + var getI16Codec = (config = {}) => codecsCore.combineCodec(getI16Encoder(config), getI16Decoder(config)); + var getI32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i32", + range: [-Number("0x7fffffff") - 1, Number("0x7fffffff")], + set: (view, value, le) => view.setInt32(0, Number(value), le), + size: 4 + }); + var getI32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getInt32(0, le), + name: "i32", + size: 4 + }); + var getI32Codec = (config = {}) => codecsCore.combineCodec(getI32Encoder(config), getI32Decoder(config)); + var getI64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "i64", + range: [-BigInt("0x7fffffffffffffff") - 1n, BigInt("0x7fffffffffffffff")], + set: (view, value, le) => view.setBigInt64(0, BigInt(value), le), + size: 8 + }); + var getI64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getBigInt64(0, le), + name: "i64", + size: 8 + }); + var getI64Codec = (config = {}) => codecsCore.combineCodec(getI64Encoder(config), getI64Decoder(config)); + var getI8Encoder = () => numberEncoderFactory({ + name: "i8", + range: [-Number("0x7f") - 1, Number("0x7f")], + set: (view, value) => view.setInt8(0, Number(value)), + size: 1 + }); + var getI8Decoder = () => numberDecoderFactory({ + get: (view) => view.getInt8(0), + name: "i8", + size: 1 + }); + var getI8Codec = () => codecsCore.combineCodec(getI8Encoder(), getI8Decoder()); + var getShortU16Encoder = () => codecsCore.createEncoder({ + getSizeFromValue: (value) => { + if (value <= 127) return 1; + if (value <= 16383) return 2; + return 3; + }, + maxSize: 3, + write: (value, bytes7, offset) => { + assertNumberIsBetweenForCodec("shortU16", 0, 65535, value); + const shortU16Bytes = [0]; + for (let ii = 0; ; ii += 1) { + const alignedValue = Number(value) >> ii * 7; + if (alignedValue === 0) { + break; + } + const nextSevenBits = 127 & alignedValue; + shortU16Bytes[ii] = nextSevenBits; + if (ii > 0) { + shortU16Bytes[ii - 1] |= 128; + } + } + bytes7.set(shortU16Bytes, offset); + return offset + shortU16Bytes.length; + } + }); + var getShortU16Decoder = () => codecsCore.createDecoder({ + maxSize: 3, + read: (bytes7, offset) => { + let value = 0; + let byteCount = 0; + while (++byteCount) { + const byteIndex = byteCount - 1; + const currentByte = bytes7[offset + byteIndex]; + const nextSevenBits = 127 & currentByte; + value |= nextSevenBits << byteIndex * 7; + if ((currentByte & 128) === 0) { + break; + } + } + return [value, offset + byteCount]; + } + }); + var getShortU16Codec = () => codecsCore.combineCodec(getShortU16Encoder(), getShortU16Decoder()); + var getU128Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u128", + range: [0n, BigInt("0xffffffffffffffffffffffffffffffff")], + set: (view, value, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const rightMask = 0xffffffffffffffffn; + view.setBigUint64(leftOffset, BigInt(value) >> 64n, le); + view.setBigUint64(rightOffset, BigInt(value) & rightMask, le); + }, + size: 16 + }); + var getU128Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => { + const leftOffset = le ? 8 : 0; + const rightOffset = le ? 0 : 8; + const left = view.getBigUint64(leftOffset, le); + const right = view.getBigUint64(rightOffset, le); + return (left << 64n) + right; + }, + name: "u128", + size: 16 + }); + var getU128Codec = (config = {}) => codecsCore.combineCodec(getU128Encoder(config), getU128Decoder(config)); + var getU16Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u16", + range: [0, Number("0xffff")], + set: (view, value, le) => view.setUint16(0, Number(value), le), + size: 2 + }); + var getU16Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getUint16(0, le), + name: "u16", + size: 2 + }); + var getU16Codec = (config = {}) => codecsCore.combineCodec(getU16Encoder(config), getU16Decoder(config)); + var getU32Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u32", + range: [0, Number("0xffffffff")], + set: (view, value, le) => view.setUint32(0, Number(value), le), + size: 4 + }); + var getU32Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getUint32(0, le), + name: "u32", + size: 4 + }); + var getU32Codec = (config = {}) => codecsCore.combineCodec(getU32Encoder(config), getU32Decoder(config)); + var getU64Encoder = (config = {}) => numberEncoderFactory({ + config, + name: "u64", + range: [0n, BigInt("0xffffffffffffffff")], + set: (view, value, le) => view.setBigUint64(0, BigInt(value), le), + size: 8 + }); + var getU64Decoder = (config = {}) => numberDecoderFactory({ + config, + get: (view, le) => view.getBigUint64(0, le), + name: "u64", + size: 8 + }); + var getU64Codec = (config = {}) => codecsCore.combineCodec(getU64Encoder(config), getU64Decoder(config)); + var getU8Encoder = () => numberEncoderFactory({ + name: "u8", + range: [0, Number("0xff")], + set: (view, value) => view.setUint8(0, Number(value)), + size: 1 + }); + var getU8Decoder = () => numberDecoderFactory({ + get: (view) => view.getUint8(0), + name: "u8", + size: 1 + }); + var getU8Codec = () => codecsCore.combineCodec(getU8Encoder(), getU8Decoder()); + exports2.Endian = Endian; + exports2.assertNumberIsBetweenForCodec = assertNumberIsBetweenForCodec; + exports2.getF32Codec = getF32Codec; + exports2.getF32Decoder = getF32Decoder; + exports2.getF32Encoder = getF32Encoder; + exports2.getF64Codec = getF64Codec; + exports2.getF64Decoder = getF64Decoder; + exports2.getF64Encoder = getF64Encoder; + exports2.getI128Codec = getI128Codec; + exports2.getI128Decoder = getI128Decoder; + exports2.getI128Encoder = getI128Encoder; + exports2.getI16Codec = getI16Codec; + exports2.getI16Decoder = getI16Decoder; + exports2.getI16Encoder = getI16Encoder; + exports2.getI32Codec = getI32Codec; + exports2.getI32Decoder = getI32Decoder; + exports2.getI32Encoder = getI32Encoder; + exports2.getI64Codec = getI64Codec; + exports2.getI64Decoder = getI64Decoder; + exports2.getI64Encoder = getI64Encoder; + exports2.getI8Codec = getI8Codec; + exports2.getI8Decoder = getI8Decoder; + exports2.getI8Encoder = getI8Encoder; + exports2.getShortU16Codec = getShortU16Codec; + exports2.getShortU16Decoder = getShortU16Decoder; + exports2.getShortU16Encoder = getShortU16Encoder; + exports2.getU128Codec = getU128Codec; + exports2.getU128Decoder = getU128Decoder; + exports2.getU128Encoder = getU128Encoder; + exports2.getU16Codec = getU16Codec; + exports2.getU16Decoder = getU16Decoder; + exports2.getU16Encoder = getU16Encoder; + exports2.getU32Codec = getU32Codec; + exports2.getU32Decoder = getU32Decoder; + exports2.getU32Encoder = getU32Encoder; + exports2.getU64Codec = getU64Codec; + exports2.getU64Decoder = getU64Decoder; + exports2.getU64Encoder = getU64Encoder; + exports2.getU8Codec = getU8Codec; + exports2.getU8Decoder = getU8Decoder; + exports2.getU8Encoder = getU8Encoder; + } +}); + +// node_modules/@solana/options/dist/index.node.cjs +var require_index_node18 = __commonJS({ + "node_modules/@solana/options/dist/index.node.cjs"(exports2) { + "use strict"; + var codecsCore = require_index_node16(); + var codecsDataStructures = require_index_node9(); + var codecsNumbers = require_index_node17(); + var some = (value) => ({ __option: "Some", value }); + var none = () => ({ __option: "None" }); + var isOption = (input) => !!(input && typeof input === "object" && "__option" in input && (input.__option === "Some" && "value" in input || input.__option === "None")); + var isSome = (option) => option.__option === "Some"; + var isNone = (option) => option.__option === "None"; + function unwrapOption(option, fallback) { + if (isSome(option)) return option.value; + return fallback ? fallback() : null; + } + var wrapNullable = (nullable) => nullable !== null ? some(nullable) : none(); + function getOptionEncoder(item, config = {}) { + const prefix = (() => { + if (config.prefix === null) { + return codecsCore.transformEncoder(codecsDataStructures.getUnitEncoder(), (_boolean) => void 0); + } + return codecsDataStructures.getBooleanEncoder({ size: config.prefix ?? codecsNumbers.getU8Encoder() }); + })(); + const noneValue = (() => { + if (config.noneValue === "zeroes") { + codecsCore.assertIsFixedSize(item); + return codecsCore.fixEncoderSize(codecsDataStructures.getUnitEncoder(), item.fixedSize); + } + if (!config.noneValue) { + return codecsDataStructures.getUnitEncoder(); + } + return codecsDataStructures.getConstantEncoder(config.noneValue); + })(); + return codecsDataStructures.getUnionEncoder( + [ + codecsCore.transformEncoder(codecsDataStructures.getTupleEncoder([prefix, noneValue]), (_value) => [ + false, + void 0 + ]), + codecsCore.transformEncoder(codecsDataStructures.getTupleEncoder([prefix, item]), (value) => [ + true, + isOption(value) && isSome(value) ? value.value : value + ]) + ], + (variant) => { + const option = isOption(variant) ? variant : wrapNullable(variant); + return Number(isSome(option)); + } + ); + } + function getOptionDecoder(item, config = {}) { + const prefix = (() => { + if (config.prefix === null) { + return codecsCore.transformDecoder(codecsDataStructures.getUnitDecoder(), () => false); + } + return codecsDataStructures.getBooleanDecoder({ size: config.prefix ?? codecsNumbers.getU8Decoder() }); + })(); + const noneValue = (() => { + if (config.noneValue === "zeroes") { + codecsCore.assertIsFixedSize(item); + return codecsCore.fixDecoderSize(codecsDataStructures.getUnitDecoder(), item.fixedSize); + } + if (!config.noneValue) { + return codecsDataStructures.getUnitDecoder(); + } + return codecsDataStructures.getConstantDecoder(config.noneValue); + })(); + return codecsDataStructures.getUnionDecoder( + [ + codecsCore.transformDecoder(codecsDataStructures.getTupleDecoder([prefix, noneValue]), () => none()), + codecsCore.transformDecoder(codecsDataStructures.getTupleDecoder([prefix, item]), ([, value]) => some(value)) + ], + (bytes7, offset) => { + if (config.prefix === null && !config.noneValue) { + return Number(offset < bytes7.length); + } + if (config.prefix === null && config.noneValue != null) { + const zeroValue = config.noneValue === "zeroes" ? new Uint8Array(noneValue.fixedSize).fill(0) : config.noneValue; + return codecsCore.containsBytes(bytes7, zeroValue, offset) ? 0 : 1; + } + return Number(prefix.read(bytes7, offset)[0]); + } + ); + } + function getOptionCodec(item, config = {}) { + return codecsCore.combineCodec( + getOptionEncoder(item, config), + getOptionDecoder(item, config) + ); + } + function unwrapOptionRecursively(input, fallback) { + if (!input || ArrayBuffer.isView(input)) { + return input; + } + const next = (x) => fallback ? unwrapOptionRecursively(x, fallback) : unwrapOptionRecursively(x); + if (isOption(input)) { + if (isSome(input)) return next(input.value); + return fallback ? fallback() : null; + } + if (Array.isArray(input)) { + return input.map(next); + } + if (typeof input === "object") { + return Object.fromEntries(Object.entries(input).map(([k, v]) => [k, next(v)])); + } + return input; + } + exports2.getOptionCodec = getOptionCodec; + exports2.getOptionDecoder = getOptionDecoder; + exports2.getOptionEncoder = getOptionEncoder; + exports2.isNone = isNone; + exports2.isOption = isOption; + exports2.isSome = isSome; + exports2.none = none; + exports2.some = some; + exports2.unwrapOption = unwrapOption; + exports2.unwrapOptionRecursively = unwrapOptionRecursively; + exports2.wrapNullable = wrapNullable; + } +}); + +// node_modules/@solana/codecs/dist/index.node.cjs +var require_index_node19 = __commonJS({ + "node_modules/@solana/codecs/dist/index.node.cjs"(exports2) { + "use strict"; + var codecsCore = require_index_node5(); + var codecsDataStructures = require_index_node9(); + var codecsNumbers = require_index_node11(); + var codecsStrings = require_index_node14(); + var options = require_index_node18(); + Object.keys(codecsCore).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports2, k)) Object.defineProperty(exports2, k, { + enumerable: true, + get: function() { + return codecsCore[k]; + } + }); + }); + Object.keys(codecsDataStructures).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports2, k)) Object.defineProperty(exports2, k, { + enumerable: true, + get: function() { + return codecsDataStructures[k]; + } + }); + }); + Object.keys(codecsNumbers).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports2, k)) Object.defineProperty(exports2, k, { + enumerable: true, + get: function() { + return codecsNumbers[k]; + } + }); + }); + Object.keys(codecsStrings).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports2, k)) Object.defineProperty(exports2, k, { + enumerable: true, + get: function() { + return codecsStrings[k]; + } + }); + }); + Object.keys(options).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports2, k)) Object.defineProperty(exports2, k, { + enumerable: true, + get: function() { + return options[k]; + } + }); + }); + } +}); + +// node_modules/@solana/spl-token-metadata/lib/cjs/field.js +var require_field = __commonJS({ + "node_modules/@solana/spl-token-metadata/lib/cjs/field.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getFieldCodec = exports2.Field = void 0; + exports2.getFieldConfig = getFieldConfig; + var codecs_1 = require_index_node19(); + var Field; + (function(Field2) { + Field2[Field2["Name"] = 0] = "Name"; + Field2[Field2["Symbol"] = 1] = "Symbol"; + Field2[Field2["Uri"] = 2] = "Uri"; + })(Field || (exports2.Field = Field = {})); + var getFieldCodec = () => [ + ["Name", (0, codecs_1.getUnitCodec)()], + ["Symbol", (0, codecs_1.getUnitCodec)()], + ["Uri", (0, codecs_1.getUnitCodec)()], + ["Key", (0, codecs_1.getStructCodec)([["value", (0, codecs_1.getTupleCodec)([(0, codecs_1.addCodecSizePrefix)((0, codecs_1.getUtf8Codec)(), (0, codecs_1.getU32Codec)())])]])] + ]; + exports2.getFieldCodec = getFieldCodec; + function getFieldConfig(field) { + if (field === Field.Name || field === "Name" || field === "name") { + return { __kind: "Name" }; + } else if (field === Field.Symbol || field === "Symbol" || field === "symbol") { + return { __kind: "Symbol" }; + } else if (field === Field.Uri || field === "Uri" || field === "uri") { + return { __kind: "Uri" }; + } else { + return { __kind: "Key", value: [field] }; + } + } + } +}); + +// node_modules/@solana/spl-token-metadata/lib/cjs/instruction.js +var require_instruction4 = __commonJS({ + "node_modules/@solana/spl-token-metadata/lib/cjs/instruction.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createInitializeInstruction = createInitializeInstruction; + exports2.createUpdateFieldInstruction = createUpdateFieldInstruction; + exports2.createRemoveKeyInstruction = createRemoveKeyInstruction; + exports2.createUpdateAuthorityInstruction = createUpdateAuthorityInstruction; + exports2.createEmitInstruction = createEmitInstruction; + var codecs_1 = require_index_node19(); + var web3_js_1 = require_index_cjs(); + var field_js_1 = require_field(); + function getInstructionEncoder(discriminator, dataEncoder) { + return (0, codecs_1.transformEncoder)((0, codecs_1.getTupleEncoder)([(0, codecs_1.getBytesEncoder)(), dataEncoder]), (data) => [ + discriminator, + data + ]); + } + function getPublicKeyEncoder() { + return (0, codecs_1.transformEncoder)((0, codecs_1.fixEncoderSize)((0, codecs_1.getBytesEncoder)(), 32), (publicKey23) => publicKey23.toBytes()); + } + function getStringEncoder() { + return (0, codecs_1.addEncoderSizePrefix)((0, codecs_1.getUtf8Encoder)(), (0, codecs_1.getU32Encoder)()); + } + function createInitializeInstruction(args) { + const { programId, metadata, updateAuthority, mint, mintAuthority, name, symbol, uri } = args; + return new web3_js_1.TransactionInstruction({ + programId, + keys: [ + { isSigner: false, isWritable: true, pubkey: metadata }, + { isSigner: false, isWritable: false, pubkey: updateAuthority }, + { isSigner: false, isWritable: false, pubkey: mint }, + { isSigner: true, isWritable: false, pubkey: mintAuthority } + ], + data: Buffer.from(getInstructionEncoder(new Uint8Array([ + /* await splDiscriminate('spl_token_metadata_interface:initialize_account') */ + 210, + 225, + 30, + 162, + 88, + 184, + 77, + 141 + ]), (0, codecs_1.getStructEncoder)([ + ["name", getStringEncoder()], + ["symbol", getStringEncoder()], + ["uri", getStringEncoder()] + ])).encode({ name, symbol, uri })) + }); + } + function createUpdateFieldInstruction(args) { + const { programId, metadata, updateAuthority, field, value } = args; + return new web3_js_1.TransactionInstruction({ + programId, + keys: [ + { isSigner: false, isWritable: true, pubkey: metadata }, + { isSigner: true, isWritable: false, pubkey: updateAuthority } + ], + data: Buffer.from(getInstructionEncoder(new Uint8Array([ + /* await splDiscriminate('spl_token_metadata_interface:updating_field') */ + 221, + 233, + 49, + 45, + 181, + 202, + 220, + 200 + ]), (0, codecs_1.getStructEncoder)([ + ["field", (0, codecs_1.getDataEnumCodec)((0, field_js_1.getFieldCodec)())], + ["value", getStringEncoder()] + ])).encode({ field: (0, field_js_1.getFieldConfig)(field), value })) + }); + } + function createRemoveKeyInstruction(args) { + const { programId, metadata, updateAuthority, key, idempotent } = args; + return new web3_js_1.TransactionInstruction({ + programId, + keys: [ + { isSigner: false, isWritable: true, pubkey: metadata }, + { isSigner: true, isWritable: false, pubkey: updateAuthority } + ], + data: Buffer.from(getInstructionEncoder(new Uint8Array([ + /* await splDiscriminate('spl_token_metadata_interface:remove_key_ix') */ + 234, + 18, + 32, + 56, + 89, + 141, + 37, + 181 + ]), (0, codecs_1.getStructEncoder)([ + ["idempotent", (0, codecs_1.getBooleanEncoder)()], + ["key", getStringEncoder()] + ])).encode({ idempotent, key })) + }); + } + function createUpdateAuthorityInstruction(args) { + const { programId, metadata, oldAuthority, newAuthority } = args; + return new web3_js_1.TransactionInstruction({ + programId, + keys: [ + { isSigner: false, isWritable: true, pubkey: metadata }, + { isSigner: true, isWritable: false, pubkey: oldAuthority } + ], + data: Buffer.from(getInstructionEncoder(new Uint8Array([ + /* await splDiscriminate('spl_token_metadata_interface:update_the_authority') */ + 215, + 228, + 166, + 228, + 84, + 100, + 86, + 123 + ]), (0, codecs_1.getStructEncoder)([["newAuthority", getPublicKeyEncoder()]])).encode({ newAuthority: newAuthority !== null && newAuthority !== void 0 ? newAuthority : web3_js_1.SystemProgram.programId })) + }); + } + function createEmitInstruction(args) { + const { programId, metadata, start, end } = args; + return new web3_js_1.TransactionInstruction({ + programId, + keys: [{ isSigner: false, isWritable: false, pubkey: metadata }], + data: Buffer.from(getInstructionEncoder(new Uint8Array([ + /* await splDiscriminate('spl_token_metadata_interface:emitter') */ + 250, + 166, + 180, + 250, + 13, + 12, + 184, + 70 + ]), (0, codecs_1.getStructEncoder)([ + ["start", (0, codecs_1.getOptionEncoder)((0, codecs_1.getU64Encoder)())], + ["end", (0, codecs_1.getOptionEncoder)((0, codecs_1.getU64Encoder)())] + ])).encode({ start: start !== null && start !== void 0 ? start : null, end: end !== null && end !== void 0 ? end : null })) + }); + } + } +}); + +// node_modules/@solana/spl-token-metadata/lib/cjs/state.js +var require_state8 = __commonJS({ + "node_modules/@solana/spl-token-metadata/lib/cjs/state.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TOKEN_METADATA_DISCRIMINATOR = void 0; + exports2.pack = pack; + exports2.unpack = unpack; + var web3_js_1 = require_index_cjs(); + var codecs_1 = require_index_node19(); + exports2.TOKEN_METADATA_DISCRIMINATOR = Buffer.from([112, 132, 90, 90, 11, 88, 157, 87]); + function getStringCodec() { + return (0, codecs_1.addCodecSizePrefix)((0, codecs_1.getUtf8Codec)(), (0, codecs_1.getU32Codec)()); + } + var tokenMetadataCodec = (0, codecs_1.getStructCodec)([ + ["updateAuthority", (0, codecs_1.fixCodecSize)((0, codecs_1.getBytesCodec)(), 32)], + ["mint", (0, codecs_1.fixCodecSize)((0, codecs_1.getBytesCodec)(), 32)], + ["name", getStringCodec()], + ["symbol", getStringCodec()], + ["uri", getStringCodec()], + ["additionalMetadata", (0, codecs_1.getArrayCodec)((0, codecs_1.getTupleCodec)([getStringCodec(), getStringCodec()]))] + ]); + function isNonePubkey(buffer) { + for (let i = 0; i < buffer.length; i++) { + if (buffer[i] !== 0) { + return false; + } + } + return true; + } + function pack(meta) { + var _a; + const updateAuthority = (_a = meta.updateAuthority) !== null && _a !== void 0 ? _a : web3_js_1.PublicKey.default; + return tokenMetadataCodec.encode(Object.assign(Object.assign({}, meta), { updateAuthority: updateAuthority.toBuffer(), mint: meta.mint.toBuffer() })); + } + function unpack(buffer) { + const data = tokenMetadataCodec.decode(buffer); + return isNonePubkey(data.updateAuthority) ? { + mint: new web3_js_1.PublicKey(data.mint), + name: data.name, + symbol: data.symbol, + uri: data.uri, + additionalMetadata: data.additionalMetadata + } : { + updateAuthority: new web3_js_1.PublicKey(data.updateAuthority), + mint: new web3_js_1.PublicKey(data.mint), + name: data.name, + symbol: data.symbol, + uri: data.uri, + additionalMetadata: data.additionalMetadata + }; + } + } +}); + +// node_modules/@solana/spl-token-metadata/lib/cjs/index.js +var require_cjs3 = __commonJS({ + "node_modules/@solana/spl-token-metadata/lib/cjs/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_errors3(), exports2); + __exportStar2(require_field(), exports2); + __exportStar2(require_instruction4(), exports2); + __exportStar2(require_state8(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/tokenMetadata/state.js +var require_state9 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/tokenMetadata/state.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getTokenMetadata = exports2.updateTokenMetadata = void 0; + var spl_token_metadata_1 = require_cjs3(); + var constants_js_1 = require_constants8(); + var extensionType_js_1 = require_extensionType(); + var mint_js_1 = require_mint(); + var getNormalizedTokenMetadataField = (field) => { + if (field === spl_token_metadata_1.Field.Name || field === "Name" || field === "name") { + return "name"; + } + if (field === spl_token_metadata_1.Field.Symbol || field === "Symbol" || field === "symbol") { + return "symbol"; + } + if (field === spl_token_metadata_1.Field.Uri || field === "Uri" || field === "uri") { + return "uri"; + } + return field; + }; + function updateTokenMetadata(current, key, value) { + const field = getNormalizedTokenMetadataField(key); + if (field === "mint" || field === "updateAuthority") { + throw new Error(`Cannot update ${field} via this instruction`); + } + if (["name", "symbol", "uri"].includes(field)) { + return Object.assign(Object.assign({}, current), { [field]: value }); + } + const additionalMetadata = [...current.additionalMetadata]; + const i = current.additionalMetadata.findIndex((x) => x[0] === field); + if (i === -1) { + additionalMetadata.push([field, value]); + } else { + additionalMetadata[i] = [field, value]; + } + return Object.assign(Object.assign({}, current), { additionalMetadata }); + } + exports2.updateTokenMetadata = updateTokenMetadata; + function getTokenMetadata(connection, address, commitment, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const mintInfo = yield (0, mint_js_1.getMint)(connection, address, commitment, programId); + const data = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.TokenMetadata, mintInfo.tlvData); + if (data === null) { + return null; + } + return (0, spl_token_metadata_1.unpack)(data); + }); + } + exports2.getTokenMetadata = getTokenMetadata; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/state/index.js +var require_state10 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/state/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_account2(), exports2); + __exportStar2(require_mint(), exports2); + __exportStar2(require_multisig(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/tokenMetadata/actions.js +var require_actions8 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/tokenMetadata/actions.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.tokenMetadataUpdateAuthority = exports2.tokenMetadataRemoveKey = exports2.tokenMetadataUpdateFieldWithRentTransfer = exports2.tokenMetadataUpdateField = exports2.tokenMetadataInitializeWithRentTransfer = exports2.tokenMetadataInitialize = void 0; + var web3_js_1 = require_index_cjs(); + var spl_token_metadata_1 = require_cjs3(); + var constants_js_1 = require_constants8(); + var internal_js_1 = require_internal2(); + var extensionType_js_1 = require_extensionType(); + var state_js_1 = require_state9(); + var errors_js_1 = require_errors2(); + var index_js_1 = require_state10(); + function getAdditionalRentForNewMetadata(connection, address, tokenMetadata, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const info2 = yield connection.getAccountInfo(address); + if (!info2) { + throw new errors_js_1.TokenAccountNotFoundError(); + } + const extensionLen = (0, spl_token_metadata_1.pack)(tokenMetadata).length; + const newAccountLen = (0, extensionType_js_1.getNewAccountLenForExtensionLen)(info2, address, extensionType_js_1.ExtensionType.TokenMetadata, extensionLen, programId); + if (newAccountLen <= info2.data.length) { + return 0; + } + const newRentExemptMinimum = yield connection.getMinimumBalanceForRentExemption(newAccountLen); + return newRentExemptMinimum - info2.lamports; + }); + } + function getAdditionalRentForUpdatedMetadata(connection, address, field, value, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const info2 = yield connection.getAccountInfo(address); + if (!info2) { + throw new errors_js_1.TokenAccountNotFoundError(); + } + const mint = (0, index_js_1.unpackMint)(address, info2, programId); + const extensionData = (0, extensionType_js_1.getExtensionData)(extensionType_js_1.ExtensionType.TokenMetadata, mint.tlvData); + if (extensionData === null) { + throw new Error("TokenMetadata extension not initialized"); + } + const updatedTokenMetadata = (0, state_js_1.updateTokenMetadata)((0, spl_token_metadata_1.unpack)(extensionData), field, value); + const extensionLen = (0, spl_token_metadata_1.pack)(updatedTokenMetadata).length; + const newAccountLen = (0, extensionType_js_1.getNewAccountLenForExtensionLen)(info2, address, extensionType_js_1.ExtensionType.TokenMetadata, extensionLen, programId); + if (newAccountLen <= info2.data.length) { + return 0; + } + const newRentExemptMinimum = yield connection.getMinimumBalanceForRentExemption(newAccountLen); + return newRentExemptMinimum - info2.lamports; + }); + } + function tokenMetadataInitialize(connection, payer, mint, updateAuthority, mintAuthority, name, symbol, uri, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [mintAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(mintAuthority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, spl_token_metadata_1.createInitializeInstruction)({ + programId, + metadata: mint, + updateAuthority, + mint, + mintAuthority: mintAuthorityPublicKey, + name, + symbol, + uri + })); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.tokenMetadataInitialize = tokenMetadataInitialize; + function tokenMetadataInitializeWithRentTransfer(connection, payer, mint, updateAuthority, mintAuthority, name, symbol, uri, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [mintAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(mintAuthority, multiSigners); + const transaction = new web3_js_1.Transaction(); + const lamports = yield getAdditionalRentForNewMetadata(connection, mint, { + updateAuthority, + mint, + name, + symbol, + uri, + additionalMetadata: [] + }, programId); + if (lamports > 0) { + transaction.add(web3_js_1.SystemProgram.transfer({ fromPubkey: payer.publicKey, toPubkey: mint, lamports })); + } + transaction.add((0, spl_token_metadata_1.createInitializeInstruction)({ + programId, + metadata: mint, + updateAuthority, + mint, + mintAuthority: mintAuthorityPublicKey, + name, + symbol, + uri + })); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.tokenMetadataInitializeWithRentTransfer = tokenMetadataInitializeWithRentTransfer; + function tokenMetadataUpdateField(connection, payer, mint, updateAuthority, field, value, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [updateAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(updateAuthority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, spl_token_metadata_1.createUpdateFieldInstruction)({ + programId, + metadata: mint, + updateAuthority: updateAuthorityPublicKey, + field, + value + })); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.tokenMetadataUpdateField = tokenMetadataUpdateField; + function tokenMetadataUpdateFieldWithRentTransfer(connection, payer, mint, updateAuthority, field, value, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [updateAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(updateAuthority, multiSigners); + const transaction = new web3_js_1.Transaction(); + const lamports = yield getAdditionalRentForUpdatedMetadata(connection, mint, field, value, programId); + if (lamports > 0) { + transaction.add(web3_js_1.SystemProgram.transfer({ fromPubkey: payer.publicKey, toPubkey: mint, lamports })); + } + transaction.add((0, spl_token_metadata_1.createUpdateFieldInstruction)({ + programId, + metadata: mint, + updateAuthority: updateAuthorityPublicKey, + field, + value + })); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.tokenMetadataUpdateFieldWithRentTransfer = tokenMetadataUpdateFieldWithRentTransfer; + function tokenMetadataRemoveKey(connection, payer, mint, updateAuthority, key, idempotent, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [updateAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(updateAuthority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, spl_token_metadata_1.createRemoveKeyInstruction)({ + programId, + metadata: mint, + updateAuthority: updateAuthorityPublicKey, + key, + idempotent + })); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.tokenMetadataRemoveKey = tokenMetadataRemoveKey; + function tokenMetadataUpdateAuthority(connection, payer, mint, updateAuthority, newAuthority, multiSigners = [], confirmOptions, programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + return __awaiter2(this, void 0, void 0, function* () { + const [updateAuthorityPublicKey, signers] = (0, internal_js_1.getSigners)(updateAuthority, multiSigners); + const transaction = new web3_js_1.Transaction().add((0, spl_token_metadata_1.createUpdateAuthorityInstruction)({ + programId, + metadata: mint, + oldAuthority: updateAuthorityPublicKey, + newAuthority + })); + return yield (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [payer, ...signers], confirmOptions); + }); + } + exports2.tokenMetadataUpdateAuthority = tokenMetadataUpdateAuthority; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/tokenMetadata/index.js +var require_tokenMetadata = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/tokenMetadata/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_actions8(), exports2); + __exportStar2(require_state9(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/extensions/index.js +var require_extensions = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/extensions/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_accountType(), exports2); + __exportStar2(require_cpiGuard(), exports2); + __exportStar2(require_defaultAccountState(), exports2); + __exportStar2(require_extensionType(), exports2); + __exportStar2(require_immutableOwner(), exports2); + __exportStar2(require_interestBearingMint(), exports2); + __exportStar2(require_memoTransfer(), exports2); + __exportStar2(require_metadataPointer(), exports2); + __exportStar2(require_tokenMetadata(), exports2); + __exportStar2(require_mintCloseAuthority(), exports2); + __exportStar2(require_nonTransferable(), exports2); + __exportStar2(require_transferFee(), exports2); + __exportStar2(require_permanentDelegate(), exports2); + __exportStar2(require_transferHook(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeAccount2.js +var require_initializeAccount2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeAccount2.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializeAccount2InstructionUnchecked = exports2.decodeInitializeAccount2Instruction = exports2.createInitializeAccount2Instruction = exports2.initializeAccount2InstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeAccount2InstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_utils_1.publicKey)("owner") + ]); + function createInitializeAccount2Instruction(account, mint, owner, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: false }, + { pubkey: web3_js_1.SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false } + ]; + const data = Buffer.alloc(exports2.initializeAccount2InstructionData.span); + exports2.initializeAccount2InstructionData.encode({ instruction: types_js_1.TokenInstruction.InitializeAccount2, owner }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeAccount2Instruction = createInitializeAccount2Instruction; + function decodeInitializeAccount2Instruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeAccount2InstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, mint, rent }, data } = decodeInitializeAccount2InstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializeAccount2) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !mint || !rent) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + mint, + rent + }, + data + }; + } + exports2.decodeInitializeAccount2Instruction = decodeInitializeAccount2Instruction; + function decodeInitializeAccount2InstructionUnchecked({ programId, keys: [account, mint, rent], data }) { + return { + programId, + keys: { + account, + mint, + rent + }, + data: exports2.initializeAccount2InstructionData.decode(data) + }; + } + exports2.decodeInitializeAccount2InstructionUnchecked = decodeInitializeAccount2InstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeAccount3.js +var require_initializeAccount3 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeAccount3.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializeAccount3InstructionUnchecked = exports2.decodeInitializeAccount3Instruction = exports2.createInitializeAccount3Instruction = exports2.initializeAccount3InstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeAccount3InstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_utils_1.publicKey)("owner") + ]); + function createInitializeAccount3Instruction(account, mint, owner, programId = constants_js_1.TOKEN_PROGRAM_ID) { + const keys = [ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: mint, isSigner: false, isWritable: false } + ]; + const data = Buffer.alloc(exports2.initializeAccount3InstructionData.span); + exports2.initializeAccount3InstructionData.encode({ instruction: types_js_1.TokenInstruction.InitializeAccount3, owner }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeAccount3Instruction = createInitializeAccount3Instruction; + function decodeInitializeAccount3Instruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeAccount3InstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account, mint }, data } = decodeInitializeAccount3InstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializeAccount3) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account || !mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account, + mint + }, + data + }; + } + exports2.decodeInitializeAccount3Instruction = decodeInitializeAccount3Instruction; + function decodeInitializeAccount3InstructionUnchecked({ programId, keys: [account, mint], data }) { + return { + programId, + keys: { + account, + mint + }, + data: exports2.initializeAccount3InstructionData.decode(data) + }; + } + exports2.decodeInitializeAccount3InstructionUnchecked = decodeInitializeAccount3InstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/decode.js +var require_decode = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/decode.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isUiamountToAmountInstruction = exports2.isAmountToUiAmountInstruction = exports2.isInitializeMint2Instruction = exports2.isInitializeAccount3Instruction = exports2.isSyncNativeInstruction = exports2.isInitializeAccount2Instruction = exports2.isBurnCheckedInstruction = exports2.isMintToCheckedInstruction = exports2.isApproveCheckedInstruction = exports2.isTransferCheckedInstruction = exports2.isThawAccountInstruction = exports2.isFreezeAccountInstruction = exports2.isCloseAccountInstruction = exports2.isBurnInstruction = exports2.isMintToInstruction = exports2.isSetAuthorityInstruction = exports2.isRevokeInstruction = exports2.isApproveInstruction = exports2.isTransferInstruction = exports2.isInitializeMultisigInstruction = exports2.isInitializeAccountInstruction = exports2.isInitializeMintInstruction = exports2.decodeInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var amountToUiAmount_js_1 = require_amountToUiAmount(); + var approve_js_1 = require_approve(); + var approveChecked_js_1 = require_approveChecked(); + var burn_js_1 = require_burn(); + var burnChecked_js_1 = require_burnChecked(); + var closeAccount_js_1 = require_closeAccount(); + var freezeAccount_js_1 = require_freezeAccount(); + var initializeAccount_js_1 = require_initializeAccount(); + var initializeAccount2_js_1 = require_initializeAccount2(); + var initializeAccount3_js_1 = require_initializeAccount3(); + var initializeMint_js_1 = require_initializeMint(); + var initializeMint2_js_1 = require_initializeMint2(); + var initializeMultisig_js_1 = require_initializeMultisig(); + var mintTo_js_1 = require_mintTo(); + var mintToChecked_js_1 = require_mintToChecked(); + var revoke_js_1 = require_revoke(); + var setAuthority_js_1 = require_setAuthority(); + var syncNative_js_1 = require_syncNative(); + var thawAccount_js_1 = require_thawAccount(); + var transfer_js_1 = require_transfer(); + var transferChecked_js_1 = require_transferChecked(); + var types_js_1 = require_types5(); + var uiAmountToAmount_js_1 = require_uiAmountToAmount(); + function decodeInstruction(instruction, programId = constants_js_1.TOKEN_PROGRAM_ID) { + if (!instruction.data.length) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const type = (0, buffer_layout_1.u8)().decode(instruction.data); + if (type === types_js_1.TokenInstruction.InitializeMint) + return (0, initializeMint_js_1.decodeInitializeMintInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.InitializeAccount) + return (0, initializeAccount_js_1.decodeInitializeAccountInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.InitializeMultisig) + return (0, initializeMultisig_js_1.decodeInitializeMultisigInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.Transfer) + return (0, transfer_js_1.decodeTransferInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.Approve) + return (0, approve_js_1.decodeApproveInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.Revoke) + return (0, revoke_js_1.decodeRevokeInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.SetAuthority) + return (0, setAuthority_js_1.decodeSetAuthorityInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.MintTo) + return (0, mintTo_js_1.decodeMintToInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.Burn) + return (0, burn_js_1.decodeBurnInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.CloseAccount) + return (0, closeAccount_js_1.decodeCloseAccountInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.FreezeAccount) + return (0, freezeAccount_js_1.decodeFreezeAccountInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.ThawAccount) + return (0, thawAccount_js_1.decodeThawAccountInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.TransferChecked) + return (0, transferChecked_js_1.decodeTransferCheckedInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.ApproveChecked) + return (0, approveChecked_js_1.decodeApproveCheckedInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.MintToChecked) + return (0, mintToChecked_js_1.decodeMintToCheckedInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.BurnChecked) + return (0, burnChecked_js_1.decodeBurnCheckedInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.InitializeAccount2) + return (0, initializeAccount2_js_1.decodeInitializeAccount2Instruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.SyncNative) + return (0, syncNative_js_1.decodeSyncNativeInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.InitializeAccount3) + return (0, initializeAccount3_js_1.decodeInitializeAccount3Instruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.InitializeMint2) + return (0, initializeMint2_js_1.decodeInitializeMint2Instruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.AmountToUiAmount) + return (0, amountToUiAmount_js_1.decodeAmountToUiAmountInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.UiAmountToAmount) + return (0, uiAmountToAmount_js_1.decodeUiAmountToAmountInstruction)(instruction, programId); + if (type === types_js_1.TokenInstruction.InitializeMultisig2) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + throw new errors_js_1.TokenInvalidInstructionTypeError(); + } + exports2.decodeInstruction = decodeInstruction; + function isInitializeMintInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.InitializeMint; + } + exports2.isInitializeMintInstruction = isInitializeMintInstruction; + function isInitializeAccountInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.InitializeAccount; + } + exports2.isInitializeAccountInstruction = isInitializeAccountInstruction; + function isInitializeMultisigInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.InitializeMultisig; + } + exports2.isInitializeMultisigInstruction = isInitializeMultisigInstruction; + function isTransferInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.Transfer; + } + exports2.isTransferInstruction = isTransferInstruction; + function isApproveInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.Approve; + } + exports2.isApproveInstruction = isApproveInstruction; + function isRevokeInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.Revoke; + } + exports2.isRevokeInstruction = isRevokeInstruction; + function isSetAuthorityInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.SetAuthority; + } + exports2.isSetAuthorityInstruction = isSetAuthorityInstruction; + function isMintToInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.MintTo; + } + exports2.isMintToInstruction = isMintToInstruction; + function isBurnInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.Burn; + } + exports2.isBurnInstruction = isBurnInstruction; + function isCloseAccountInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.CloseAccount; + } + exports2.isCloseAccountInstruction = isCloseAccountInstruction; + function isFreezeAccountInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.FreezeAccount; + } + exports2.isFreezeAccountInstruction = isFreezeAccountInstruction; + function isThawAccountInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.ThawAccount; + } + exports2.isThawAccountInstruction = isThawAccountInstruction; + function isTransferCheckedInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.TransferChecked; + } + exports2.isTransferCheckedInstruction = isTransferCheckedInstruction; + function isApproveCheckedInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.ApproveChecked; + } + exports2.isApproveCheckedInstruction = isApproveCheckedInstruction; + function isMintToCheckedInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.MintToChecked; + } + exports2.isMintToCheckedInstruction = isMintToCheckedInstruction; + function isBurnCheckedInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.BurnChecked; + } + exports2.isBurnCheckedInstruction = isBurnCheckedInstruction; + function isInitializeAccount2Instruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.InitializeAccount2; + } + exports2.isInitializeAccount2Instruction = isInitializeAccount2Instruction; + function isSyncNativeInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.SyncNative; + } + exports2.isSyncNativeInstruction = isSyncNativeInstruction; + function isInitializeAccount3Instruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.InitializeAccount3; + } + exports2.isInitializeAccount3Instruction = isInitializeAccount3Instruction; + function isInitializeMint2Instruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.InitializeMint2; + } + exports2.isInitializeMint2Instruction = isInitializeMint2Instruction; + function isAmountToUiAmountInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.AmountToUiAmount; + } + exports2.isAmountToUiAmountInstruction = isAmountToUiAmountInstruction; + function isUiamountToAmountInstruction(decoded) { + return decoded.data.instruction === types_js_1.TokenInstruction.UiAmountToAmount; + } + exports2.isUiamountToAmountInstruction = isUiamountToAmountInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMultisig2.js +var require_initializeMultisig2 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMultisig2.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeImmutableOwner.js +var require_initializeImmutableOwner = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeImmutableOwner.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializeImmutableOwnerInstructionUnchecked = exports2.decodeInitializeImmutableOwnerInstruction = exports2.createInitializeImmutableOwnerInstruction = exports2.initializeImmutableOwnerInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeImmutableOwnerInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction") + ]); + function createInitializeImmutableOwnerInstruction(account, programId) { + const keys = [{ pubkey: account, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.initializeImmutableOwnerInstructionData.span); + exports2.initializeImmutableOwnerInstructionData.encode({ + instruction: types_js_1.TokenInstruction.InitializeImmutableOwner + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeImmutableOwnerInstruction = createInitializeImmutableOwnerInstruction; + function decodeInitializeImmutableOwnerInstruction(instruction, programId) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeImmutableOwnerInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { account }, data } = decodeInitializeImmutableOwnerInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializeImmutableOwner) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!account) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + account + }, + data + }; + } + exports2.decodeInitializeImmutableOwnerInstruction = decodeInitializeImmutableOwnerInstruction; + function decodeInitializeImmutableOwnerInstructionUnchecked({ programId, keys: [account], data }) { + const { instruction } = exports2.initializeImmutableOwnerInstructionData.decode(data); + return { + programId, + keys: { + account + }, + data: { + instruction + } + }; + } + exports2.decodeInitializeImmutableOwnerInstructionUnchecked = decodeInitializeImmutableOwnerInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMintCloseAuthority.js +var require_initializeMintCloseAuthority = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeMintCloseAuthority.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializeMintCloseAuthorityInstructionUnchecked = exports2.decodeInitializeMintCloseAuthorityInstruction = exports2.createInitializeMintCloseAuthorityInstruction = exports2.initializeMintCloseAuthorityInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeMintCloseAuthorityInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.u8)("closeAuthorityOption"), + (0, buffer_layout_utils_1.publicKey)("closeAuthority") + ]); + function createInitializeMintCloseAuthorityInstruction(mint, closeAuthority, programId) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.initializeMintCloseAuthorityInstructionData.span); + exports2.initializeMintCloseAuthorityInstructionData.encode({ + instruction: types_js_1.TokenInstruction.InitializeMintCloseAuthority, + closeAuthorityOption: closeAuthority ? 1 : 0, + closeAuthority: closeAuthority || new web3_js_1.PublicKey(0) + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeMintCloseAuthorityInstruction = createInitializeMintCloseAuthorityInstruction; + function decodeInitializeMintCloseAuthorityInstruction(instruction, programId) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializeMintCloseAuthorityInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint }, data } = decodeInitializeMintCloseAuthorityInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializeMintCloseAuthority) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint + }, + data + }; + } + exports2.decodeInitializeMintCloseAuthorityInstruction = decodeInitializeMintCloseAuthorityInstruction; + function decodeInitializeMintCloseAuthorityInstructionUnchecked({ programId, keys: [mint], data }) { + const { instruction, closeAuthorityOption, closeAuthority } = exports2.initializeMintCloseAuthorityInstructionData.decode(data); + return { + programId, + keys: { + mint + }, + data: { + instruction, + closeAuthority: closeAuthorityOption ? closeAuthority : null + } + }; + } + exports2.decodeInitializeMintCloseAuthorityInstructionUnchecked = decodeInitializeMintCloseAuthorityInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/reallocate.js +var require_reallocate = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/reallocate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createReallocateInstruction = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var internal_js_1 = require_internal(); + var types_js_1 = require_types5(); + function createReallocateInstruction(account, payer, extensionTypes, owner, multiSigners = [], programId = constants_js_1.TOKEN_2022_PROGRAM_ID) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const baseKeys = [ + { pubkey: account, isSigner: false, isWritable: true }, + { pubkey: payer, isSigner: true, isWritable: true }, + { pubkey: web3_js_1.SystemProgram.programId, isSigner: false, isWritable: false } + ]; + const keys = (0, internal_js_1.addSigners)(baseKeys, owner, multiSigners); + const reallocateInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_1.seq)((0, buffer_layout_1.u16)(), extensionTypes.length, "extensionTypes") + ]); + const data = Buffer.alloc(reallocateInstructionData.span); + reallocateInstructionData.encode({ instruction: types_js_1.TokenInstruction.Reallocate, extensionTypes }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createReallocateInstruction = createReallocateInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeNonTransferableMint.js +var require_initializeNonTransferableMint = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializeNonTransferableMint.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createInitializeNonTransferableMintInstruction = exports2.initializeNonTransferableMintInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var web3_js_1 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializeNonTransferableMintInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction") + ]); + function createInitializeNonTransferableMintInstruction(mint, programId) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.initializeNonTransferableMintInstructionData.span); + exports2.initializeNonTransferableMintInstructionData.encode({ + instruction: types_js_1.TokenInstruction.InitializeNonTransferableMint + }, data); + return new web3_js_1.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializeNonTransferableMintInstruction = createInitializeNonTransferableMintInstruction; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializePermanentDelegate.js +var require_initializePermanentDelegate = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/initializePermanentDelegate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeInitializePermanentDelegateInstructionUnchecked = exports2.decodeInitializePermanentDelegateInstruction = exports2.createInitializePermanentDelegateInstruction = exports2.initializePermanentDelegateInstructionData = void 0; + var buffer_layout_1 = require_Layout(); + var buffer_layout_utils_1 = require_cjs2(); + var web3_js_1 = require_index_cjs(); + var web3_js_2 = require_index_cjs(); + var constants_js_1 = require_constants8(); + var errors_js_1 = require_errors2(); + var types_js_1 = require_types5(); + exports2.initializePermanentDelegateInstructionData = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.u8)("instruction"), + (0, buffer_layout_utils_1.publicKey)("delegate") + ]); + function createInitializePermanentDelegateInstruction(mint, permanentDelegate, programId) { + if (!(0, constants_js_1.programSupportsExtensions)(programId)) { + throw new errors_js_1.TokenUnsupportedInstructionError(); + } + const keys = [{ pubkey: mint, isSigner: false, isWritable: true }]; + const data = Buffer.alloc(exports2.initializePermanentDelegateInstructionData.span); + exports2.initializePermanentDelegateInstructionData.encode({ + instruction: types_js_1.TokenInstruction.InitializePermanentDelegate, + delegate: permanentDelegate || new web3_js_1.PublicKey(0) + }, data); + return new web3_js_2.TransactionInstruction({ keys, programId, data }); + } + exports2.createInitializePermanentDelegateInstruction = createInitializePermanentDelegateInstruction; + function decodeInitializePermanentDelegateInstruction(instruction, programId) { + if (!instruction.programId.equals(programId)) + throw new errors_js_1.TokenInvalidInstructionProgramError(); + if (instruction.data.length !== exports2.initializePermanentDelegateInstructionData.span) + throw new errors_js_1.TokenInvalidInstructionDataError(); + const { keys: { mint }, data } = decodeInitializePermanentDelegateInstructionUnchecked(instruction); + if (data.instruction !== types_js_1.TokenInstruction.InitializePermanentDelegate) + throw new errors_js_1.TokenInvalidInstructionTypeError(); + if (!mint) + throw new errors_js_1.TokenInvalidInstructionKeysError(); + return { + programId, + keys: { + mint + }, + data + }; + } + exports2.decodeInitializePermanentDelegateInstruction = decodeInitializePermanentDelegateInstruction; + function decodeInitializePermanentDelegateInstructionUnchecked({ programId, keys: [mint], data }) { + const { instruction, delegate } = exports2.initializePermanentDelegateInstructionData.decode(data); + return { + programId, + keys: { + mint + }, + data: { + instruction, + delegate + } + }; + } + exports2.decodeInitializePermanentDelegateInstructionUnchecked = decodeInitializePermanentDelegateInstructionUnchecked; + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/instructions/index.js +var require_instructions8 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/instructions/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createEmitInstruction = exports2.createUpdateAuthorityInstruction = exports2.createRemoveKeyInstruction = exports2.createUpdateFieldInstruction = exports2.createInitializeInstruction = void 0; + var spl_token_metadata_1 = require_cjs3(); + Object.defineProperty(exports2, "createInitializeInstruction", { enumerable: true, get: function() { + return spl_token_metadata_1.createInitializeInstruction; + } }); + Object.defineProperty(exports2, "createUpdateFieldInstruction", { enumerable: true, get: function() { + return spl_token_metadata_1.createUpdateFieldInstruction; + } }); + Object.defineProperty(exports2, "createRemoveKeyInstruction", { enumerable: true, get: function() { + return spl_token_metadata_1.createRemoveKeyInstruction; + } }); + Object.defineProperty(exports2, "createUpdateAuthorityInstruction", { enumerable: true, get: function() { + return spl_token_metadata_1.createUpdateAuthorityInstruction; + } }); + Object.defineProperty(exports2, "createEmitInstruction", { enumerable: true, get: function() { + return spl_token_metadata_1.createEmitInstruction; + } }); + __exportStar2(require_associatedTokenAccount(), exports2); + __exportStar2(require_decode(), exports2); + __exportStar2(require_types5(), exports2); + __exportStar2(require_initializeMint(), exports2); + __exportStar2(require_initializeAccount(), exports2); + __exportStar2(require_initializeMultisig(), exports2); + __exportStar2(require_transfer(), exports2); + __exportStar2(require_approve(), exports2); + __exportStar2(require_revoke(), exports2); + __exportStar2(require_setAuthority(), exports2); + __exportStar2(require_mintTo(), exports2); + __exportStar2(require_burn(), exports2); + __exportStar2(require_closeAccount(), exports2); + __exportStar2(require_freezeAccount(), exports2); + __exportStar2(require_thawAccount(), exports2); + __exportStar2(require_transferChecked(), exports2); + __exportStar2(require_approveChecked(), exports2); + __exportStar2(require_mintToChecked(), exports2); + __exportStar2(require_burnChecked(), exports2); + __exportStar2(require_initializeAccount2(), exports2); + __exportStar2(require_syncNative(), exports2); + __exportStar2(require_initializeAccount3(), exports2); + __exportStar2(require_initializeMultisig2(), exports2); + __exportStar2(require_initializeMint2(), exports2); + __exportStar2(require_initializeImmutableOwner(), exports2); + __exportStar2(require_amountToUiAmount(), exports2); + __exportStar2(require_uiAmountToAmount(), exports2); + __exportStar2(require_initializeMintCloseAuthority(), exports2); + __exportStar2(require_reallocate(), exports2); + __exportStar2(require_createNativeMint(), exports2); + __exportStar2(require_initializeNonTransferableMint(), exports2); + __exportStar2(require_initializePermanentDelegate(), exports2); + } +}); + +// node_modules/@solana/spl-token-3.x/lib/cjs/index.js +var require_cjs4 = __commonJS({ + "node_modules/@solana/spl-token-3.x/lib/cjs/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_actions6(), exports2); + __exportStar2(require_constants8(), exports2); + __exportStar2(require_errors2(), exports2); + __exportStar2(require_extensions(), exports2); + __exportStar2(require_instructions8(), exports2); + __exportStar2(require_state10(), exports2); + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/conversion.js +var require_conversion = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/conversion.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.calcLamportsWithdrawAmount = exports2.divideBnToNumber = exports2.solToLamports = exports2.lamportsToSol = exports2.tokenBalanceToNumber = exports2.withDecimalPoint = void 0; + var anchor_1 = require_cjs(); + var SOL_DECIMALS = 9; + function withDecimalPoint(bn, decimals) { + const s = bn.toString().padStart(decimals + 1, "0"); + const l = s.length; + return s.slice(0, l - decimals) + "." + s.slice(-decimals); + } + exports2.withDecimalPoint = withDecimalPoint; + function tokenBalanceToNumber(bn, decimals) { + return Number(withDecimalPoint(bn, decimals)); + } + exports2.tokenBalanceToNumber = tokenBalanceToNumber; + function lamportsToSol(bn) { + return tokenBalanceToNumber(bn, SOL_DECIMALS); + } + exports2.lamportsToSol = lamportsToSol; + function solToLamports(amountSol) { + return new anchor_1.BN(amountSol.toFixed(SOL_DECIMALS).replace(".", "")); + } + exports2.solToLamports = solToLamports; + function divideBnToNumber(numerator, denominator) { + if (denominator.isZero()) { + return 0; + } + const quotient = numerator.div(denominator).toNumber(); + const rem = numerator.umod(denominator); + const gcd = rem.gcd(denominator); + return quotient + rem.div(gcd).toNumber() / denominator.div(gcd).toNumber(); + } + exports2.divideBnToNumber = divideBnToNumber; + function calcLamportsWithdrawAmount(stakePool, poolTokens) { + const numerator = poolTokens.mul(stakePool.totalLamports); + const denominator = stakePool.poolTokenSupply; + if (numerator.lt(denominator)) { + return 0; + } + return divideBnToNumber(numerator, denominator); + } + exports2.calcLamportsWithdrawAmount = calcLamportsWithdrawAmount; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-mint/marinade-mint.js +var require_marinade_mint = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-mint/marinade-mint.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MarinadeMint = void 0; + var anchor_1 = require_cjs(); + var spl_token_3_x_1 = require_cjs4(); + var conversion_1 = require_conversion(); + var MarinadeMint = class _MarinadeMint { + constructor(anchorProvider, address) { + this.anchorProvider = anchorProvider; + this.address = address; + this.mintInfo = () => (0, spl_token_3_x_1.getMint)(this.anchorProvider.connection, this.address); + } + static build(anchorProvider, mintAddress) { + return new _MarinadeMint(anchorProvider, mintAddress); + } + /** + * Returns Total supply as a number with decimals + * @param mintInfoCached optional + * @returns + */ + totalSupply(mintInfoCached) { + return __awaiter2(this, void 0, void 0, function* () { + const mintInfo = mintInfoCached !== null && mintInfoCached !== void 0 ? mintInfoCached : yield this.mintInfo(); + return (0, conversion_1.tokenBalanceToNumber)(new anchor_1.BN(mintInfo.supply.toString()), mintInfo.decimals); + }); + } + /** + * @deprecated use totalSupply() instead + */ + tokenBalance(mintInfoCached) { + return __awaiter2(this, void 0, void 0, function* () { + return this.totalSupply(mintInfoCached); + }); + } + }; + exports2.MarinadeMint = MarinadeMint; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/anchor.js +var require_anchor2 = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/anchor.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getEpochInfo = exports2.getParsedStakeAccountInfo = exports2.getOrCreateAssociatedTokenAccount = exports2.getAssociatedTokenAccountAddress = exports2.BNOrNull = exports2.web3PubKeyOrNull = exports2.U64_MAX = exports2.STAKE_PROGRAM_ID = exports2.SYSTEM_PROGRAM_ID = void 0; + var anchor_1 = require_cjs(); + var spl_token_3_x_1 = require_cjs4(); + var web3_js_1 = require_index_cjs(); + exports2.SYSTEM_PROGRAM_ID = anchor_1.web3.SystemProgram.programId; + exports2.STAKE_PROGRAM_ID = anchor_1.web3.StakeProgram.programId; + exports2.U64_MAX = new anchor_1.BN("ffffffffffffffff", 16); + function web3PubKeyOrNull(value) { + return value === null ? null : new anchor_1.web3.PublicKey(value); + } + exports2.web3PubKeyOrNull = web3PubKeyOrNull; + function BNOrNull(value) { + return value === null ? null : new anchor_1.BN(value); + } + exports2.BNOrNull = BNOrNull; + function getAssociatedTokenAccountAddress(mint, owner) { + return __awaiter2(this, void 0, void 0, function* () { + return anchor_1.utils.token.associatedAddress({ mint, owner }); + }); + } + exports2.getAssociatedTokenAccountAddress = getAssociatedTokenAccountAddress; + function getOrCreateAssociatedTokenAccount(anchorProvider, mintAddress, ownerAddress, payerAddress) { + var _a; + return __awaiter2(this, void 0, void 0, function* () { + const existingTokenAccounts = yield anchorProvider.connection.getTokenAccountsByOwner(ownerAddress, { + mint: mintAddress + }); + const [existingTokenAccount] = existingTokenAccounts.value; + const associatedTokenAccountAddress = (_a = existingTokenAccount === null || existingTokenAccount === void 0 ? void 0 : existingTokenAccount.pubkey) !== null && _a !== void 0 ? _a : yield getAssociatedTokenAccountAddress(mintAddress, ownerAddress); + let createAssociateTokenInstruction = null; + try { + yield (0, spl_token_3_x_1.getAccount)(anchorProvider.connection, associatedTokenAccountAddress); + } catch (err) { + if (!(err instanceof spl_token_3_x_1.TokenError) || err.name !== "TokenAccountNotFoundError") { + throw err; + } + createAssociateTokenInstruction = (0, spl_token_3_x_1.createAssociatedTokenAccountInstruction)(payerAddress !== null && payerAddress !== void 0 ? payerAddress : ownerAddress, associatedTokenAccountAddress, ownerAddress, mintAddress); + } + return { + associatedTokenAccountAddress, + createAssociateTokenInstruction + }; + }); + } + exports2.getOrCreateAssociatedTokenAccount = getOrCreateAssociatedTokenAccount; + function getParsedStakeAccountInfo(providerOrConnection, stakeAccountAddress) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0; + return __awaiter2(this, void 0, void 0, function* () { + const connection = providerOrConnection instanceof web3_js_1.Connection ? providerOrConnection : providerOrConnection.connection; + const { value: stakeAccountInfo } = yield connection.getParsedAccountInfo(stakeAccountAddress); + if (!stakeAccountInfo) { + throw new Error(`Failed to find the stake account ${stakeAccountAddress.toBase58()}`); + } + if (!stakeAccountInfo.owner.equals(exports2.STAKE_PROGRAM_ID)) { + throw new Error(`${stakeAccountAddress.toBase58()} is not a stake account because owner is ${stakeAccountInfo.owner}`); + } + if (!stakeAccountInfo.data || stakeAccountInfo.data instanceof Buffer) { + throw new Error("Failed to parse the stake account data"); + } + const { parsed: parsedData } = stakeAccountInfo.data; + const activationEpoch = BNOrNull((_d = (_c = (_b = (_a = parsedData === null || parsedData === void 0 ? void 0 : parsedData.info) === null || _a === void 0 ? void 0 : _a.stake) === null || _b === void 0 ? void 0 : _b.delegation) === null || _c === void 0 ? void 0 : _c.activationEpoch) !== null && _d !== void 0 ? _d : null); + const deactivationEpoch = BNOrNull((_h = (_g = (_f = (_e = parsedData === null || parsedData === void 0 ? void 0 : parsedData.info) === null || _e === void 0 ? void 0 : _e.stake) === null || _f === void 0 ? void 0 : _f.delegation) === null || _g === void 0 ? void 0 : _g.deactivationEpoch) !== null && _h !== void 0 ? _h : null); + const lockup = (_k = (_j = parsedData === null || parsedData === void 0 ? void 0 : parsedData.info) === null || _j === void 0 ? void 0 : _j.meta) === null || _k === void 0 ? void 0 : _k.lockup; + const balanceLamports = BNOrNull(stakeAccountInfo.lamports); + const stakedLamports = BNOrNull((_o = (_m = (_l = parsedData === null || parsedData === void 0 ? void 0 : parsedData.info) === null || _l === void 0 ? void 0 : _l.stake) === null || _m === void 0 ? void 0 : _m.delegation.stake) !== null && _o !== void 0 ? _o : null); + const { epoch: currentEpoch } = yield connection.getEpochInfo(); + const currentUnixTimestamp = Date.now() / 1e3; + return { + address: stakeAccountAddress, + ownerAddress: stakeAccountInfo.owner, + authorizedStakerAddress: web3PubKeyOrNull((_s = (_r = (_q = (_p = parsedData === null || parsedData === void 0 ? void 0 : parsedData.info) === null || _p === void 0 ? void 0 : _p.meta) === null || _q === void 0 ? void 0 : _q.authorized) === null || _r === void 0 ? void 0 : _r.staker) !== null && _s !== void 0 ? _s : null), + authorizedWithdrawerAddress: web3PubKeyOrNull((_w = (_v = (_u = (_t = parsedData === null || parsedData === void 0 ? void 0 : parsedData.info) === null || _t === void 0 ? void 0 : _t.meta) === null || _u === void 0 ? void 0 : _u.authorized) === null || _v === void 0 ? void 0 : _v.withdrawer) !== null && _w !== void 0 ? _w : null), + voterAddress: web3PubKeyOrNull((_0 = (_z = (_y = (_x = parsedData === null || parsedData === void 0 ? void 0 : parsedData.info) === null || _x === void 0 ? void 0 : _x.stake) === null || _y === void 0 ? void 0 : _y.delegation) === null || _z === void 0 ? void 0 : _z.voter) !== null && _0 !== void 0 ? _0 : null), + activationEpoch, + deactivationEpoch, + isCoolingDown: deactivationEpoch ? !deactivationEpoch.eq(exports2.U64_MAX) : false, + isLockedUp: (lockup === null || lockup === void 0 ? void 0 : lockup.custodian) && (lockup === null || lockup === void 0 ? void 0 : lockup.custodian) !== "" && ((lockup === null || lockup === void 0 ? void 0 : lockup.epoch) > currentEpoch || (lockup === null || lockup === void 0 ? void 0 : lockup.unixTimestamp) > currentUnixTimestamp), + balanceLamports, + stakedLamports + }; + }); + } + exports2.getParsedStakeAccountInfo = getParsedStakeAccountInfo; + function getEpochInfo(connection) { + return __awaiter2(this, void 0, void 0, function* () { + const epochInfo = yield connection.getEpochInfo(); + const samples = yield connection.getRecentPerformanceSamples(64); + const sampleSlots = samples.reduce((slots, sample) => sample.numSlots + slots, 0); + const sampleSeconds = samples.reduce((seconds, sample) => sample.samplePeriodSecs + seconds, 0); + const avgSlotDuration = sampleSeconds / sampleSlots * 1e3; + const slotsRemainingInEpoch = epochInfo.slotsInEpoch - epochInfo.slotIndex; + const msUntilEpochEnd = avgSlotDuration * slotsRemainingInEpoch; + const msElapsed = epochInfo.slotIndex * avgSlotDuration; + const epochProgress = 100 * epochInfo.slotIndex / epochInfo.slotsInEpoch; + return Object.assign(Object.assign({}, epochInfo), { + msUntilEpochEnd, + msElapsed, + epochProgress, + avgSlotDuration, + slotsRemainingInEpoch + }); + }); + } + exports2.getEpochInfo = getEpochInfo; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/anchor.types.js +var require_anchor_types = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/anchor.types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/array.js +var require_array = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/array.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bounds = void 0; + var bounds = (index, itemSize, offset = 0) => [ + offset + index * itemSize, + offset + (index + 1) * itemSize + ]; + exports2.bounds = bounds; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/state-helpers.js +var require_state_helpers = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/state-helpers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.computeMsolAmount = exports2.proportionalBN = exports2.unstakeNowFeeBp = void 0; + var anchor_1 = require_cjs(); + function unstakeNowFeeBp(lpMinFeeBasisPoints, lpMaxFeeBasisPoints, lpLiquidityTarget, lamportsAvailable, lamportsToObtain) { + if (lamportsToObtain.gte(lamportsAvailable)) { + return lpMaxFeeBasisPoints; + } + const lamportsAfter = lamportsAvailable.sub(lamportsToObtain); + if (lamportsAfter.gte(lpLiquidityTarget)) { + return lpMinFeeBasisPoints; + } else { + const delta = lpMaxFeeBasisPoints - lpMinFeeBasisPoints; + return lpMaxFeeBasisPoints - proportionalBN(new anchor_1.BN(delta), lamportsAfter, lpLiquidityTarget).toNumber(); + } + } + exports2.unstakeNowFeeBp = unstakeNowFeeBp; + function proportionalBN(amount, numerator, denominator) { + if (denominator.isZero()) { + return amount; + } + const result = BigInt(amount.toString()) * BigInt(numerator.toString()) / BigInt(denominator.toString()); + return new anchor_1.BN(result.toString()); + } + exports2.proportionalBN = proportionalBN; + function computeMsolAmount(solAmount, marinadeState) { + const total_cooling_down = marinadeState.state.stakeSystem.delayedUnstakeCoolingDown.add(marinadeState.state.emergencyCoolingDown); + const total_lamports_under_control = marinadeState.state.validatorSystem.totalActiveBalance.add(total_cooling_down).add(marinadeState.state.availableReserveBalance); + const total_virtual_staked_lamports = total_lamports_under_control.sub(marinadeState.state.circulatingTicketBalance); + return proportionalBN(solAmount, marinadeState.state.msolSupply, total_virtual_staked_lamports); + } + exports2.computeMsolAmount = computeMsolAmount; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/ticket-date-info.js +var require_ticket_date_info = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/ticket-date-info.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.estimateTicketDateInfo = exports2.getTicketDateInfo = void 0; + var EXTRA_WAIT_MILLISECONDS = 1e3 * 60 * 45; + function getTicketDateInfo(currentEpoch, createdEpochNumber, currentTime = Date.now()) { + const currentEpochStart = currentTime - currentEpoch.msElapsed; + const estimatedEpochDuration = currentEpoch.avgSlotDuration * currentEpoch.slotsInEpoch; + const dueDate = currentEpochStart - estimatedEpochDuration * (currentEpoch.epoch - createdEpochNumber - 1) + EXTRA_WAIT_MILLISECONDS; + return { ticketDue: dueDate < currentTime, ticketDueDate: new Date(dueDate) }; + } + exports2.getTicketDateInfo = getTicketDateInfo; + function estimateTicketDateInfo(currentEpoch, currentTime = Date.now(), slotsForStakeDelta) { + const currentEpochEnd = currentTime + currentEpoch.msUntilEpochEnd; + const estimatedEpochDuration = currentEpoch.avgSlotDuration * currentEpoch.slotsInEpoch; + const dueDate = currentEpochEnd + (currentEpoch.slotsRemainingInEpoch <= slotsForStakeDelta ? estimatedEpochDuration : 0) + EXTRA_WAIT_MILLISECONDS; + return { + ticketDue: false, + ticketDueDate: new Date(dueDate) + }; + } + exports2.estimateTicketDateInfo = estimateTicketDateInfo; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/index.js +var require_util9 = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_anchor2(), exports2); + __exportStar2(require_anchor_types(), exports2); + __exportStar2(require_array(), exports2); + __exportStar2(require_conversion(), exports2); + __exportStar2(require_state_helpers(), exports2); + __exportStar2(require_ticket_date_info(), exports2); + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/common.js +var require_common6 = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.commonBorshSchema = exports2.deserializeF64 = exports2.deserializePublicKey = void 0; + var anchor_1 = require_cjs(); + function deserializePublicKey({ publicKey: publicKey23 }) { + return new anchor_1.web3.PublicKey(publicKey23); + } + exports2.deserializePublicKey = deserializePublicKey; + function deserializeF64({ bytes: bytes7 }) { + const buffer = new ArrayBuffer(8); + const view = new DataView(buffer); + const bytesArray = [...new Uint8Array(bytes7)]; + bytesArray.forEach((byte, index) => { + view.setUint8(index, byte); + }); + return { value: new DataView(buffer).getFloat64(0, true) }; + } + exports2.deserializeF64 = deserializeF64; + exports2.commonBorshSchema = [ + [ + deserializePublicKey, + { + kind: "struct", + fields: [["publicKey", [32]]] + } + ], + [ + deserializeF64, + { + kind: "struct", + fields: [["bytes", [8]]] + } + ] + ]; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/stake-state.js +var require_stake_state = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/stake-state.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.STAKE_STATE_BORSH_SCHEMA = exports2.stakeStateBorshSchema = exports2.Delegation = exports2.Stake = exports2.Lockup = exports2.Authorized = exports2.Meta = exports2.StakeState = void 0; + var common_1 = require_common6(); + var StakeState = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.StakeState = StakeState; + (function(StakeState_1) { + class UninitializedState { + constructor(args) { + Object.assign(this, args); + } + } + StakeState_1.UninitializedState = UninitializedState; + class InitializedState { + constructor(args) { + Object.assign(this, args); + } + } + StakeState_1.InitializedState = InitializedState; + class StakeState2 { + constructor(args) { + Object.assign(this, args); + } + } + StakeState_1.StakeState = StakeState2; + class RewardsPoolState { + constructor(args) { + Object.assign(this, args); + } + } + StakeState_1.RewardsPoolState = RewardsPoolState; + })(StakeState = exports2.StakeState || (exports2.StakeState = {})); + var Meta = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.Meta = Meta; + var Authorized = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.Authorized = Authorized; + var Lockup = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.Lockup = Lockup; + var Stake = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.Stake = Stake; + var Delegation = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.Delegation = Delegation; + exports2.stakeStateBorshSchema = [ + [ + StakeState.UninitializedState, + { + kind: "struct", + fields: [] + } + ], + [ + StakeState.InitializedState, + { + kind: "struct", + fields: [["meta", Meta]] + } + ], + [ + StakeState.StakeState, + { + kind: "struct", + fields: [ + ["meta", Meta], + ["stake", Stake] + ] + } + ], + [ + StakeState.RewardsPoolState, + { + kind: "struct", + fields: [] + } + ], + [ + Meta, + { + kind: "struct", + fields: [ + ["rentExemptReserve", "u64"], + ["authorized", Authorized], + ["lockup", Lockup] + ] + } + ], + [ + Authorized, + { + kind: "struct", + fields: [ + ["staker", common_1.deserializePublicKey], + ["withdrawer", common_1.deserializePublicKey] + ] + } + ], + [ + Lockup, + { + kind: "struct", + fields: [ + ["unixTimestamp", "u64"], + ["epoch", "u64"], + ["custodian", common_1.deserializePublicKey] + ] + } + ], + [ + Stake, + { + kind: "struct", + fields: [ + ["delegation", Delegation], + ["creditsObserved", "u64"] + ] + } + ], + [ + Delegation, + { + kind: "struct", + fields: [ + ["voterPubkey", common_1.deserializePublicKey], + ["stake", "u64"], + ["activationEpoch", "u64"], + ["deactivationEpoch", "u64"], + ["warmupCooldownRate", common_1.deserializeF64] + ] + } + ], + [ + StakeState, + { + kind: "enum", + values: [ + ["Uninitialized", StakeState.UninitializedState], + ["Initialized", StakeState.InitializedState], + ["Stake", StakeState.StakeState], + ["RewardsPool", StakeState.RewardsPoolState] + ] + } + ] + ]; + exports2.STAKE_STATE_BORSH_SCHEMA = new Map([ + ...common_1.commonBorshSchema, + ...exports2.stakeStateBorshSchema + ]); + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/stake-info.js +var require_stake_info = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/stake-info.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StakeInfo = void 0; + var StakeInfo = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.StakeInfo = StakeInfo; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/marinade-state.js +var require_marinade_state = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/marinade-state.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MarinadeState = void 0; + var anchor_1 = require_cjs(); + var borsh_1 = require_lib2(); + var marinade_mint_1 = require_marinade_mint(); + var util_1 = require_util9(); + var StateHelper = __importStar2(require_state_helpers()); + var stake_state_1 = require_stake_state(); + var stake_info_1 = require_stake_info(); + var MarinadeState = class _MarinadeState { + // @todo rework args + constructor(marinade, anchorProvider, state, marinadeStateAddress, marinadeFinanceProgramId) { + this.marinade = marinade; + this.anchorProvider = anchorProvider; + this.state = state; + this.marinadeStateAddress = marinadeStateAddress; + this.marinadeFinanceProgramId = marinadeFinanceProgramId; + this.reserveAddress = () => __awaiter2(this, void 0, void 0, function* () { + return this.findProgramDerivedAddress( + "reserve" + /* ProgramDerivedAddressSeed.RESERVE_ACCOUNT */ + ); + }); + this.mSolPrice = this.state.msolPrice.toNumber() / 4294967296; + this.mSolMintAddress = this.state.msolMint; + this.mSolMint = marinade_mint_1.MarinadeMint.build(this.anchorProvider, this.mSolMintAddress); + this.mSolMintAuthority = () => __awaiter2(this, void 0, void 0, function* () { + return this.findProgramDerivedAddress( + "st_mint" + /* ProgramDerivedAddressSeed.LIQ_POOL_MSOL_MINT_AUTHORITY */ + ); + }); + this.mSolLegAuthority = () => __awaiter2(this, void 0, void 0, function* () { + return this.findProgramDerivedAddress( + "liq_st_sol_authority" + /* ProgramDerivedAddressSeed.LIQ_POOL_MSOL_AUTHORITY */ + ); + }); + this.mSolLeg = this.state.liqPool.msolLeg; + this.lpMintAddress = this.state.liqPool.lpMint; + this.lpMint = marinade_mint_1.MarinadeMint.build(this.anchorProvider, this.lpMintAddress); + this.lpMintAuthority = () => __awaiter2(this, void 0, void 0, function* () { + return this.findProgramDerivedAddress( + "liq_mint" + /* ProgramDerivedAddressSeed.LIQ_POOL_MINT_AUTHORITY */ + ); + }); + this.solLeg = () => __awaiter2(this, void 0, void 0, function* () { + return this.findProgramDerivedAddress( + "liq_sol" + /* ProgramDerivedAddressSeed.LIQ_POOL_SOL_ACCOUNT */ + ); + }); + this.stakeDepositAuthority = () => __awaiter2(this, void 0, void 0, function* () { + return this.findProgramDerivedAddress( + "deposit" + /* ProgramDerivedAddressSeed.STAKE_DEPOSIT */ + ); + }); + this.stakeWithdrawAuthority = () => __awaiter2(this, void 0, void 0, function* () { + return this.findProgramDerivedAddress( + "withdraw" + /* ProgramDerivedAddressSeed.STAKE_WITHDRAW */ + ); + }); + this.validatorDuplicationFlag = (validatorAddress) => __awaiter2(this, void 0, void 0, function* () { + return this.findProgramDerivedAddress("unique_validator", [ + validatorAddress.toBuffer() + ]); + }); + this.epochInfo = () => __awaiter2(this, void 0, void 0, function* () { + return this.anchorProvider.connection.getEpochInfo(); + }); + this.treasuryMsolAccount = this.state.treasuryMsolAccount; + this.rewardsCommissionPercent = this.state.rewardFee.basisPoints / 100; + this.maxStakeMovedPerEpoch = this.state.maxStakeMovedPerEpoch.basisPoints / 100; + } + static fetch(marinade) { + return __awaiter2(this, void 0, void 0, function* () { + const { marinadeFinanceProgram, config } = marinade; + const state = yield marinadeFinanceProgram.program.account.state.fetch(config.marinadeStateAddress); + return new _MarinadeState(marinade, marinade.provider, state, config.marinadeStateAddress, config.marinadeFinanceProgramId); + }); + } + findProgramDerivedAddress(seed, extraSeeds = []) { + return __awaiter2(this, void 0, void 0, function* () { + const seeds = [ + this.marinade.config.marinadeStateAddress.toBuffer(), + Buffer.from(seed), + ...extraSeeds + ]; + const [result] = yield anchor_1.web3.PublicKey.findProgramAddress(seeds, this.marinade.config.marinadeFinanceProgramId); + return result; + }); + } + unstakeNowFeeBp(lamportsToObtain) { + return __awaiter2(this, void 0, void 0, function* () { + const solLeg = yield this.solLeg(); + const solLegBalance = yield this.anchorProvider.connection.getBalance(solLeg); + const maxLamports = new anchor_1.BN(solLegBalance).sub(this.state.rentExemptForTokenAcc); + return StateHelper.unstakeNowFeeBp(this.state.liqPool.lpMinFee.basisPoints, this.state.liqPool.lpMaxFee.basisPoints, this.state.liqPool.lpLiquidityTarget, maxLamports, lamportsToObtain); + }); + } + // stakeDelta is roughly: stake-orders (deposits) minus unstake-orders during the epoch. + // before the end of the epoch, the bot will perform staking, if stakeDelta is positive, + // or unstaking, if stakeDelta is negative. + stakeDelta() { + const raw = this.state.availableReserveBalance.sub(this.state.rentExemptForTokenAcc).add(this.state.stakeSystem.delayedUnstakeCoolingDown).sub(this.state.circulatingTicketBalance); + if (!raw.isNeg() || raw.isZero()) { + return raw; + } else { + const withEmergency = raw.add(this.state.emergencyCoolingDown); + if (withEmergency.isNeg()) { + return withEmergency; + } + return new anchor_1.BN(0); + } + } + /** + * return validatorRecords with capacity + */ + getValidatorRecords() { + return __awaiter2(this, void 0, void 0, function* () { + const { validatorList } = this.state.validatorSystem; + const recordBounds = (index) => (0, util_1.bounds)(index, validatorList.itemSize, 8); + const validators = yield this.anchorProvider.connection.getAccountInfo(validatorList.account); + if (!validators) { + throw new Error("Failed to fetch validators' details!"); + } + return { + validatorRecords: Array.from({ length: validatorList.count }, (_, index) => { + return this.marinade.marinadeFinanceProgram.program.coder.types.decode("ValidatorRecord", validators.data.subarray(...recordBounds(index))); + }), + capacity: (validators.data.length - 8) / validatorList.itemSize + }; + }); + } + /** + * return stakeRecords with capacity + */ + getStakeRecords() { + return __awaiter2(this, void 0, void 0, function* () { + const { stakeList } = this.state.stakeSystem; + const recordBounds = (index) => (0, util_1.bounds)(index, stakeList.itemSize, 8); + const stakes = yield this.anchorProvider.connection.getAccountInfo(stakeList.account); + if (!stakes) { + throw new Error("Failed to fetch stakes' details!"); + } + return { + stakeRecords: Array.from({ length: stakeList.count }, (_, index) => { + return this.marinade.marinadeFinanceProgram.program.coder.types.decode("StakeRecord", stakes.data.subarray(...recordBounds(index))); + }), + capacity: (stakes.data.length - 8) / stakeList.itemSize + }; + }); + } + getStakeStates() { + return __awaiter2(this, void 0, void 0, function* () { + const stakeAccountInfos = yield this.anchorProvider.connection.getProgramAccounts(util_1.STAKE_PROGRAM_ID, { + filters: [ + { dataSize: 200 }, + { + memcmp: { + offset: 44, + bytes: this.marinade.config.stakeWithdrawAuthPDA.toString() + } + } + ] + }); + return stakeAccountInfos.map((stakeAccountInfo) => { + const { data } = stakeAccountInfo.account; + return this.deserializeStakeState(data); + }); + }); + } + deserializeStakeState(data) { + const adjustedData = Buffer.concat([ + data.subarray(0, 1), + data.subarray(4, data.length) + // the first byte indexing the enum + ]); + return (0, borsh_1.deserializeUnchecked)(stake_state_1.STAKE_STATE_BORSH_SCHEMA, stake_state_1.StakeState, adjustedData); + } + /** + * return listStakeInfos with capacity + */ + getStakeInfos() { + return __awaiter2(this, void 0, void 0, function* () { + const { stakeRecords, capacity } = yield this.getStakeRecords(); + const stakeInfos = new Array(); + const toProcess = stakeRecords.length; + let processed = 0; + const BATCH_SIZE = 100; + while (processed < toProcess) { + const accountInfos = yield this.anchorProvider.connection.getMultipleAccountsInfo(stakeRecords.slice(processed, processed + BATCH_SIZE).map((stakeRecord) => stakeRecord.stakeAccount)); + stakeInfos.push(...accountInfos.map((accountInfo, index) => { + return new stake_info_1.StakeInfo({ + index: processed + index, + record: stakeRecords[processed + index], + stake: this.deserializeStakeState(accountInfo === null || accountInfo === void 0 ? void 0 : accountInfo.data), + balance: new anchor_1.BN(accountInfo.lamports) + }); + })); + processed += BATCH_SIZE; + } + return { stakeInfos, capacity }; + }); + } + }; + exports2.MarinadeState = MarinadeState; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/programs/idl/types/marinade_finance.js +var require_marinade_finance = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/programs/idl/types/marinade_finance.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IDL = void 0; + exports2.IDL = { + version: "0.1.0", + name: "marinade_finance", + instructions: [ + { + name: "initialize", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "reservePda", + isMut: false, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: false, + isSigner: false + }, + { + name: "operationalSolAccount", + isMut: false, + isSigner: false + }, + { + name: "liqPool", + accounts: [ + { + name: "lpMint", + isMut: false, + isSigner: false + }, + { + name: "solLegPda", + isMut: false, + isSigner: false + }, + { + name: "msolLeg", + isMut: false, + isSigner: false + } + ] + }, + { + name: "treasuryMsolAccount", + isMut: false, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "data", + type: { + defined: "InitializeData" + } + } + ] + }, + { + name: "changeAuthority", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "adminAuthority", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "data", + type: { + defined: "ChangeAuthorityData" + } + } + ] + }, + { + name: "addValidator", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "managerAuthority", + isMut: false, + isSigner: true + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "validatorVote", + isMut: false, + isSigner: false + }, + { + name: "duplicationFlag", + isMut: true, + isSigner: false, + docs: ["by initializing this account we mark the validator as added"] + }, + { + name: "rentPayer", + isMut: true, + isSigner: true + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "score", + type: "u32" + } + ] + }, + { + name: "removeValidator", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "managerAuthority", + isMut: false, + isSigner: true + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "duplicationFlag", + isMut: true, + isSigner: false + }, + { + name: "operationalSolAccount", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "index", + type: "u32" + }, + { + name: "validatorVote", + type: "publicKey" + } + ] + }, + { + name: "setValidatorScore", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "managerAuthority", + isMut: false, + isSigner: true + }, + { + name: "validatorList", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "index", + type: "u32" + }, + { + name: "validatorVote", + type: "publicKey" + }, + { + name: "score", + type: "u32" + } + ] + }, + { + name: "configValidatorSystem", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "managerAuthority", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "extraRuns", + type: "u32" + } + ] + }, + { + name: "deposit", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "liqPoolSolLegPda", + isMut: true, + isSigner: false + }, + { + name: "liqPoolMsolLeg", + isMut: true, + isSigner: false + }, + { + name: "liqPoolMsolLegAuthority", + isMut: false, + isSigner: false + }, + { + name: "reservePda", + isMut: true, + isSigner: false + }, + { + name: "transferFrom", + isMut: true, + isSigner: true + }, + { + name: "mintTo", + isMut: true, + isSigner: false, + docs: ["user mSOL Token account to send the mSOL"] + }, + { + name: "msolMintAuthority", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "lamports", + type: "u64" + } + ] + }, + { + name: "depositStakeAccount", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "stakeAuthority", + isMut: false, + isSigner: true + }, + { + name: "duplicationFlag", + isMut: true, + isSigner: false + }, + { + name: "rentPayer", + isMut: true, + isSigner: true + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "mintTo", + isMut: true, + isSigner: false, + docs: ["user mSOL Token account to send the mSOL"] + }, + { + name: "msolMintAuthority", + isMut: false, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "validatorIndex", + type: "u32" + } + ] + }, + { + name: "liquidUnstake", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "liqPoolSolLegPda", + isMut: true, + isSigner: false + }, + { + name: "liqPoolMsolLeg", + isMut: true, + isSigner: false + }, + { + name: "treasuryMsolAccount", + isMut: true, + isSigner: false + }, + { + name: "getMsolFrom", + isMut: true, + isSigner: false + }, + { + name: "getMsolFromAuthority", + isMut: false, + isSigner: true + }, + { + name: "transferSolTo", + isMut: true, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "msolAmount", + type: "u64" + } + ] + }, + { + name: "addLiquidity", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "lpMint", + isMut: true, + isSigner: false + }, + { + name: "lpMintAuthority", + isMut: false, + isSigner: false + }, + { + name: "liqPoolMsolLeg", + isMut: false, + isSigner: false + }, + { + name: "liqPoolSolLegPda", + isMut: true, + isSigner: false + }, + { + name: "transferFrom", + isMut: true, + isSigner: true + }, + { + name: "mintTo", + isMut: true, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "lamports", + type: "u64" + } + ] + }, + { + name: "removeLiquidity", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "lpMint", + isMut: true, + isSigner: false + }, + { + name: "burnFrom", + isMut: true, + isSigner: false + }, + { + name: "burnFromAuthority", + isMut: false, + isSigner: true + }, + { + name: "transferSolTo", + isMut: true, + isSigner: false + }, + { + name: "transferMsolTo", + isMut: true, + isSigner: false + }, + { + name: "liqPoolSolLegPda", + isMut: true, + isSigner: false + }, + { + name: "liqPoolMsolLeg", + isMut: true, + isSigner: false + }, + { + name: "liqPoolMsolLegAuthority", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "tokens", + type: "u64" + } + ] + }, + { + name: "configLp", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "adminAuthority", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "params", + type: { + defined: "ConfigLpParams" + } + } + ] + }, + { + name: "configMarinade", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "adminAuthority", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "params", + type: { + defined: "ConfigMarinadeParams" + } + } + ] + }, + { + name: "orderUnstake", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "burnMsolFrom", + isMut: true, + isSigner: false + }, + { + name: "burnMsolAuthority", + isMut: false, + isSigner: true + }, + { + name: "newTicketAccount", + isMut: true, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "msolAmount", + type: "u64" + } + ] + }, + { + name: "claim", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "reservePda", + isMut: true, + isSigner: false + }, + { + name: "ticketAccount", + isMut: true, + isSigner: false + }, + { + name: "transferSolTo", + isMut: true, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + } + ], + args: [] + }, + { + name: "stakeReserve", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "validatorVote", + isMut: true, + isSigner: false + }, + { + name: "reservePda", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: true + }, + { + name: "stakeDepositAuthority", + isMut: false, + isSigner: false + }, + { + name: "rentPayer", + isMut: true, + isSigner: true + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "epochSchedule", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "stakeHistory", + isMut: false, + isSigner: false + }, + { + name: "stakeConfig", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "validatorIndex", + type: "u32" + } + ] + }, + { + name: "updateActive", + accounts: [ + { + name: "common", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "stakeWithdrawAuthority", + isMut: false, + isSigner: false + }, + { + name: "reservePda", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "msolMintAuthority", + isMut: false, + isSigner: false + }, + { + name: "treasuryMsolAccount", + isMut: true, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "stakeHistory", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + } + ] + }, + { + name: "validatorList", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "stakeIndex", + type: "u32" + }, + { + name: "validatorIndex", + type: "u32" + } + ] + }, + { + name: "updateDeactivated", + accounts: [ + { + name: "common", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "stakeWithdrawAuthority", + isMut: false, + isSigner: false + }, + { + name: "reservePda", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "msolMintAuthority", + isMut: false, + isSigner: false + }, + { + name: "treasuryMsolAccount", + isMut: true, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "stakeHistory", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + } + ] + }, + { + name: "operationalSolAccount", + isMut: true, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "stakeIndex", + type: "u32" + } + ] + }, + { + name: "deactivateStake", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "reservePda", + isMut: false, + isSigner: false + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "stakeDepositAuthority", + isMut: false, + isSigner: false + }, + { + name: "splitStakeAccount", + isMut: true, + isSigner: true + }, + { + name: "splitStakeRentPayer", + isMut: true, + isSigner: true + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "epochSchedule", + isMut: false, + isSigner: false + }, + { + name: "stakeHistory", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "stakeIndex", + type: "u32" + }, + { + name: "validatorIndex", + type: "u32" + } + ] + }, + { + name: "emergencyUnstake", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "validatorManagerAuthority", + isMut: false, + isSigner: true + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "stakeDepositAuthority", + isMut: false, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "stakeIndex", + type: "u32" + }, + { + name: "validatorIndex", + type: "u32" + } + ] + }, + { + name: "partialUnstake", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "validatorManagerAuthority", + isMut: false, + isSigner: true + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "stakeDepositAuthority", + isMut: false, + isSigner: false + }, + { + name: "reservePda", + isMut: false, + isSigner: false + }, + { + name: "splitStakeAccount", + isMut: true, + isSigner: true + }, + { + name: "splitStakeRentPayer", + isMut: true, + isSigner: true + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "stakeHistory", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "stakeIndex", + type: "u32" + }, + { + name: "validatorIndex", + type: "u32" + }, + { + name: "desiredUnstakeAmount", + type: "u64" + } + ] + }, + { + name: "mergeStakes", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "destinationStake", + isMut: true, + isSigner: false + }, + { + name: "sourceStake", + isMut: true, + isSigner: false + }, + { + name: "stakeDepositAuthority", + isMut: false, + isSigner: false + }, + { + name: "stakeWithdrawAuthority", + isMut: false, + isSigner: false + }, + { + name: "operationalSolAccount", + isMut: true, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "stakeHistory", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "destinationStakeIndex", + type: "u32" + }, + { + name: "sourceStakeIndex", + type: "u32" + }, + { + name: "validatorIndex", + type: "u32" + } + ] + }, + { + name: "redelegate", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "stakeDepositAuthority", + isMut: false, + isSigner: false + }, + { + name: "reservePda", + isMut: false, + isSigner: false + }, + { + name: "splitStakeAccount", + isMut: true, + isSigner: true + }, + { + name: "splitStakeRentPayer", + isMut: true, + isSigner: true + }, + { + name: "destValidatorAccount", + isMut: false, + isSigner: false + }, + { + name: "redelegateStakeAccount", + isMut: true, + isSigner: true + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "stakeHistory", + isMut: false, + isSigner: false + }, + { + name: "stakeConfig", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "stakeIndex", + type: "u32" + }, + { + name: "sourceValidatorIndex", + type: "u32" + }, + { + name: "destValidatorIndex", + type: "u32" + } + ] + }, + { + name: "pause", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "pauseAuthority", + isMut: false, + isSigner: true + } + ], + args: [] + }, + { + name: "resume", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "pauseAuthority", + isMut: false, + isSigner: true + } + ], + args: [] + }, + { + name: "withdrawStakeAccount", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "burnMsolFrom", + isMut: true, + isSigner: false + }, + { + name: "burnMsolAuthority", + isMut: true, + isSigner: true + }, + { + name: "treasuryMsolAccount", + isMut: true, + isSigner: false + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeWithdrawAuthority", + isMut: false, + isSigner: false + }, + { + name: "stakeDepositAuthority", + isMut: false, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "splitStakeAccount", + isMut: true, + isSigner: true + }, + { + name: "splitStakeRentPayer", + isMut: true, + isSigner: true + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "stakeIndex", + type: "u32" + }, + { + name: "validatorIndex", + type: "u32" + }, + { + name: "msolAmount", + type: "u64" + }, + { + name: "beneficiary", + type: "publicKey" + } + ] + }, + { + name: "reallocValidatorList", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "adminAuthority", + isMut: false, + isSigner: true + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "rentFunds", + isMut: true, + isSigner: true + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "capacity", + type: "u32" + } + ] + }, + { + name: "reallocStakeList", + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "adminAuthority", + isMut: false, + isSigner: true + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "rentFunds", + isMut: true, + isSigner: true + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "capacity", + type: "u32" + } + ] + } + ], + accounts: [ + { + name: "ticketAccountData", + type: { + kind: "struct", + fields: [ + { + name: "stateAddress", + type: "publicKey" + }, + { + name: "beneficiary", + type: "publicKey" + }, + { + name: "lamportsAmount", + type: "u64" + }, + { + name: "createdEpoch", + type: "u64" + } + ] + } + }, + { + name: "state", + type: { + kind: "struct", + fields: [ + { + name: "msolMint", + type: "publicKey" + }, + { + name: "adminAuthority", + type: "publicKey" + }, + { + name: "operationalSolAccount", + type: "publicKey" + }, + { + name: "treasuryMsolAccount", + type: "publicKey" + }, + { + name: "reserveBumpSeed", + type: "u8" + }, + { + name: "msolMintAuthorityBumpSeed", + type: "u8" + }, + { + name: "rentExemptForTokenAcc", + type: "u64" + }, + { + name: "rewardFee", + type: { + defined: "Fee" + } + }, + { + name: "stakeSystem", + type: { + defined: "StakeSystem" + } + }, + { + name: "validatorSystem", + type: { + defined: "ValidatorSystem" + } + }, + { + name: "liqPool", + type: { + defined: "LiqPool" + } + }, + { + name: "availableReserveBalance", + type: "u64" + }, + { + name: "msolSupply", + type: "u64" + }, + { + name: "msolPrice", + type: "u64" + }, + { + name: "circulatingTicketCount", + docs: ["count tickets for delayed-unstake"], + type: "u64" + }, + { + name: "circulatingTicketBalance", + docs: [ + "total lamports amount of generated and not claimed yet tickets" + ], + type: "u64" + }, + { + name: "lentFromReserve", + type: "u64" + }, + { + name: "minDeposit", + type: "u64" + }, + { + name: "minWithdraw", + type: "u64" + }, + { + name: "stakingSolCap", + type: "u64" + }, + { + name: "emergencyCoolingDown", + type: "u64" + }, + { + name: "pauseAuthority", + docs: ["emergency pause"], + type: "publicKey" + }, + { + name: "paused", + type: "bool" + }, + { + name: "delayedUnstakeFee", + type: { + defined: "FeeCents" + } + }, + { + name: "withdrawStakeAccountFee", + type: { + defined: "FeeCents" + } + }, + { + name: "withdrawStakeAccountEnabled", + type: "bool" + }, + { + name: "lastStakeMoveEpoch", + type: "u64" + }, + { + name: "stakeMoved", + type: "u64" + }, + { + name: "maxStakeMovedPerEpoch", + type: { + defined: "Fee" + } + } + ] + } + } + ], + types: [ + { + name: "SplitStakeAccountInfo", + type: { + kind: "struct", + fields: [ + { + name: "account", + type: "publicKey" + }, + { + name: "index", + type: "u32" + } + ] + } + }, + { + name: "U64ValueChange", + type: { + kind: "struct", + fields: [ + { + name: "old", + type: "u64" + }, + { + name: "new", + type: "u64" + } + ] + } + }, + { + name: "U32ValueChange", + type: { + kind: "struct", + fields: [ + { + name: "old", + type: "u32" + }, + { + name: "new", + type: "u32" + } + ] + } + }, + { + name: "FeeValueChange", + type: { + kind: "struct", + fields: [ + { + name: "old", + type: { + defined: "Fee" + } + }, + { + name: "new", + type: { + defined: "Fee" + } + } + ] + } + }, + { + name: "FeeCentsValueChange", + type: { + kind: "struct", + fields: [ + { + name: "old", + type: { + defined: "FeeCents" + } + }, + { + name: "new", + type: { + defined: "FeeCents" + } + } + ] + } + }, + { + name: "PubkeyValueChange", + type: { + kind: "struct", + fields: [ + { + name: "old", + type: "publicKey" + }, + { + name: "new", + type: "publicKey" + } + ] + } + }, + { + name: "BoolValueChange", + type: { + kind: "struct", + fields: [ + { + name: "old", + type: "bool" + }, + { + name: "new", + type: "bool" + } + ] + } + }, + { + name: "ChangeAuthorityData", + type: { + kind: "struct", + fields: [ + { + name: "admin", + type: { + option: "publicKey" + } + }, + { + name: "validatorManager", + type: { + option: "publicKey" + } + }, + { + name: "operationalSolAccount", + type: { + option: "publicKey" + } + }, + { + name: "treasuryMsolAccount", + type: { + option: "publicKey" + } + }, + { + name: "pauseAuthority", + type: { + option: "publicKey" + } + } + ] + } + }, + { + name: "ConfigLpParams", + type: { + kind: "struct", + fields: [ + { + name: "minFee", + type: { + option: { + defined: "Fee" + } + } + }, + { + name: "maxFee", + type: { + option: { + defined: "Fee" + } + } + }, + { + name: "liquidityTarget", + type: { + option: "u64" + } + }, + { + name: "treasuryCut", + type: { + option: { + defined: "Fee" + } + } + } + ] + } + }, + { + name: "ConfigMarinadeParams", + type: { + kind: "struct", + fields: [ + { + name: "rewardsFee", + type: { + option: { + defined: "Fee" + } + } + }, + { + name: "slotsForStakeDelta", + type: { + option: "u64" + } + }, + { + name: "minStake", + type: { + option: "u64" + } + }, + { + name: "minDeposit", + type: { + option: "u64" + } + }, + { + name: "minWithdraw", + type: { + option: "u64" + } + }, + { + name: "stakingSolCap", + type: { + option: "u64" + } + }, + { + name: "liquiditySolCap", + type: { + option: "u64" + } + }, + { + name: "withdrawStakeAccountEnabled", + type: { + option: "bool" + } + }, + { + name: "delayedUnstakeFee", + type: { + option: { + defined: "FeeCents" + } + } + }, + { + name: "withdrawStakeAccountFee", + type: { + option: { + defined: "FeeCents" + } + } + }, + { + name: "maxStakeMovedPerEpoch", + type: { + option: { + defined: "Fee" + } + } + } + ] + } + }, + { + name: "InitializeData", + type: { + kind: "struct", + fields: [ + { + name: "adminAuthority", + type: "publicKey" + }, + { + name: "validatorManagerAuthority", + type: "publicKey" + }, + { + name: "minStake", + type: "u64" + }, + { + name: "rewardsFee", + type: { + defined: "Fee" + } + }, + { + name: "liqPool", + type: { + defined: "LiqPoolInitializeData" + } + }, + { + name: "additionalStakeRecordSpace", + type: "u32" + }, + { + name: "additionalValidatorRecordSpace", + type: "u32" + }, + { + name: "slotsForStakeDelta", + type: "u64" + }, + { + name: "pauseAuthority", + type: "publicKey" + } + ] + } + }, + { + name: "LiqPoolInitializeData", + type: { + kind: "struct", + fields: [ + { + name: "lpLiquidityTarget", + type: "u64" + }, + { + name: "lpMaxFee", + type: { + defined: "Fee" + } + }, + { + name: "lpMinFee", + type: { + defined: "Fee" + } + }, + { + name: "lpTreasuryCut", + type: { + defined: "Fee" + } + } + ] + } + }, + { + name: "Fee", + type: { + kind: "struct", + fields: [ + { + name: "basisPoints", + type: "u32" + } + ] + } + }, + { + name: "FeeCents", + docs: [ + "FeeCents, same as Fee but / 1_000_000 instead of 10_000", + "1 FeeCent = 0.0001%, 10_000 FeeCent = 1%, 1_000_000 FeeCent = 100%" + ], + type: { + kind: "struct", + fields: [ + { + name: "bpCents", + type: "u32" + } + ] + } + }, + { + name: "LiqPool", + type: { + kind: "struct", + fields: [ + { + name: "lpMint", + type: "publicKey" + }, + { + name: "lpMintAuthorityBumpSeed", + type: "u8" + }, + { + name: "solLegBumpSeed", + type: "u8" + }, + { + name: "msolLegAuthorityBumpSeed", + type: "u8" + }, + { + name: "msolLeg", + type: "publicKey" + }, + { + name: "lpLiquidityTarget", + docs: [ + "Liquidity target. If the Liquidity reach this amount, the fee reaches lp_min_discount_fee" + ], + type: "u64" + }, + { + name: "lpMaxFee", + docs: ["Liquidity pool max fee"], + type: { + defined: "Fee" + } + }, + { + name: "lpMinFee", + docs: ["SOL/mSOL Liquidity pool min fee"], + type: { + defined: "Fee" + } + }, + { + name: "treasuryCut", + docs: ["Treasury cut"], + type: { + defined: "Fee" + } + }, + { + name: "lpSupply", + type: "u64" + }, + { + name: "lentFromSolLeg", + type: "u64" + }, + { + name: "liquiditySolCap", + type: "u64" + } + ] + } + }, + { + name: "List", + type: { + kind: "struct", + fields: [ + { + name: "account", + type: "publicKey" + }, + { + name: "itemSize", + type: "u32" + }, + { + name: "count", + type: "u32" + }, + { + name: "reserved1", + type: "publicKey" + }, + { + name: "reserved2", + type: "u32" + } + ] + } + }, + { + name: "StakeRecord", + type: { + kind: "struct", + fields: [ + { + name: "stakeAccount", + type: "publicKey" + }, + { + name: "lastUpdateDelegatedLamports", + type: "u64" + }, + { + name: "lastUpdateEpoch", + type: "u64" + }, + { + name: "isEmergencyUnstaking", + type: "u8" + } + ] + } + }, + { + name: "StakeList", + type: { + kind: "struct", + fields: [] + } + }, + { + name: "StakeSystem", + type: { + kind: "struct", + fields: [ + { + name: "stakeList", + type: { + defined: "List" + } + }, + { + name: "delayedUnstakeCoolingDown", + type: "u64" + }, + { + name: "stakeDepositBumpSeed", + type: "u8" + }, + { + name: "stakeWithdrawBumpSeed", + type: "u8" + }, + { + name: "slotsForStakeDelta", + docs: [ + "set by admin, how much slots before the end of the epoch, stake-delta can start" + ], + type: "u64" + }, + { + name: "lastStakeDeltaEpoch", + docs: [ + "Marks the start of stake-delta operations, meaning that if somebody starts a delayed-unstake ticket", + "after this var is set with epoch_num the ticket will have epoch_created = current_epoch+1", + "(the user must wait one more epoch, because their unstake-delta will be execute in this epoch)" + ], + type: "u64" + }, + { + name: "minStake", + type: "u64" + }, + { + name: "extraStakeDeltaRuns", + docs: [ + "can be set by validator-manager-auth to allow a second run of stake-delta to stake late stakers in the last minute of the epoch", + "so we maximize user's rewards" + ], + type: "u32" + } + ] + } + }, + { + name: "ValidatorRecord", + type: { + kind: "struct", + fields: [ + { + name: "validatorAccount", + docs: ["Validator vote pubkey"], + type: "publicKey" + }, + { + name: "activeBalance", + docs: ["Validator total balance in lamports"], + type: "u64" + }, + { + name: "score", + type: "u32" + }, + { + name: "lastStakeDeltaEpoch", + type: "u64" + }, + { + name: "duplicationFlagBumpSeed", + type: "u8" + } + ] + } + }, + { + name: "ValidatorList", + type: { + kind: "struct", + fields: [] + } + }, + { + name: "ValidatorSystem", + type: { + kind: "struct", + fields: [ + { + name: "validatorList", + type: { + defined: "List" + } + }, + { + name: "managerAuthority", + type: "publicKey" + }, + { + name: "totalValidatorScore", + type: "u32" + }, + { + name: "totalActiveBalance", + docs: ["sum of all active lamports staked"], + type: "u64" + }, + { + name: "autoAddValidatorEnabled", + docs: ["DEPRECATED, no longer used"], + type: "u8" + } + ] + } + } + ], + events: [ + { + name: "ChangeAuthorityEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "adminChange", + type: { + option: { + defined: "PubkeyValueChange" + } + }, + index: false + }, + { + name: "validatorManagerChange", + type: { + option: { + defined: "PubkeyValueChange" + } + }, + index: false + }, + { + name: "operationalSolAccountChange", + type: { + option: { + defined: "PubkeyValueChange" + } + }, + index: false + }, + { + name: "treasuryMsolAccountChange", + type: { + option: { + defined: "PubkeyValueChange" + } + }, + index: false + }, + { + name: "pauseAuthorityChange", + type: { + option: { + defined: "PubkeyValueChange" + } + }, + index: false + } + ] + }, + { + name: "ConfigLpEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "minFeeChange", + type: { + option: { + defined: "FeeValueChange" + } + }, + index: false + }, + { + name: "maxFeeChange", + type: { + option: { + defined: "FeeValueChange" + } + }, + index: false + }, + { + name: "liquidityTargetChange", + type: { + option: { + defined: "U64ValueChange" + } + }, + index: false + }, + { + name: "treasuryCutChange", + type: { + option: { + defined: "FeeValueChange" + } + }, + index: false + } + ] + }, + { + name: "ConfigMarinadeEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "rewardsFeeChange", + type: { + option: { + defined: "FeeValueChange" + } + }, + index: false + }, + { + name: "slotsForStakeDeltaChange", + type: { + option: { + defined: "U64ValueChange" + } + }, + index: false + }, + { + name: "minStakeChange", + type: { + option: { + defined: "U64ValueChange" + } + }, + index: false + }, + { + name: "minDepositChange", + type: { + option: { + defined: "U64ValueChange" + } + }, + index: false + }, + { + name: "minWithdrawChange", + type: { + option: { + defined: "U64ValueChange" + } + }, + index: false + }, + { + name: "stakingSolCapChange", + type: { + option: { + defined: "U64ValueChange" + } + }, + index: false + }, + { + name: "liquiditySolCapChange", + type: { + option: { + defined: "U64ValueChange" + } + }, + index: false + }, + { + name: "withdrawStakeAccountEnabledChange", + type: { + option: { + defined: "BoolValueChange" + } + }, + index: false + }, + { + name: "delayedUnstakeFeeChange", + type: { + option: { + defined: "FeeCentsValueChange" + } + }, + index: false + }, + { + name: "withdrawStakeAccountFeeChange", + type: { + option: { + defined: "FeeCentsValueChange" + } + }, + index: false + }, + { + name: "maxStakeMovedPerEpochChange", + type: { + option: { + defined: "FeeValueChange" + } + }, + index: false + } + ] + }, + { + name: "InitializeEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "params", + type: { + defined: "InitializeData" + }, + index: false + }, + { + name: "stakeList", + type: "publicKey", + index: false + }, + { + name: "validatorList", + type: "publicKey", + index: false + }, + { + name: "msolMint", + type: "publicKey", + index: false + }, + { + name: "operationalSolAccount", + type: "publicKey", + index: false + }, + { + name: "lpMint", + type: "publicKey", + index: false + }, + { + name: "lpMsolLeg", + type: "publicKey", + index: false + }, + { + name: "treasuryMsolAccount", + type: "publicKey", + index: false + } + ] + }, + { + name: "EmergencyPauseEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + } + ] + }, + { + name: "ResumeEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + } + ] + }, + { + name: "ReallocValidatorListEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "count", + type: "u32", + index: false + }, + { + name: "newCapacity", + type: "u32", + index: false + } + ] + }, + { + name: "ReallocStakeListEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "count", + type: "u32", + index: false + }, + { + name: "newCapacity", + type: "u32", + index: false + } + ] + }, + { + name: "DeactivateStakeEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "epoch", + type: "u64", + index: false + }, + { + name: "stakeIndex", + type: "u32", + index: false + }, + { + name: "stakeAccount", + type: "publicKey", + index: false + }, + { + name: "lastUpdateStakeDelegation", + type: "u64", + index: false + }, + { + name: "splitStakeAccount", + type: { + option: { + defined: "SplitStakeAccountInfo" + } + }, + index: false + }, + { + name: "validatorIndex", + type: "u32", + index: false + }, + { + name: "validatorVote", + type: "publicKey", + index: false + }, + { + name: "totalStakeTarget", + type: "u64", + index: false + }, + { + name: "validatorStakeTarget", + type: "u64", + index: false + }, + { + name: "totalActiveBalance", + type: "u64", + index: false + }, + { + name: "delayedUnstakeCoolingDown", + type: "u64", + index: false + }, + { + name: "validatorActiveBalance", + type: "u64", + index: false + }, + { + name: "totalUnstakeDelta", + type: "u64", + index: false + }, + { + name: "unstakedAmount", + type: "u64", + index: false + } + ] + }, + { + name: "MergeStakesEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "epoch", + type: "u64", + index: false + }, + { + name: "destinationStakeIndex", + type: "u32", + index: false + }, + { + name: "destinationStakeAccount", + type: "publicKey", + index: false + }, + { + name: "lastUpdateDestinationStakeDelegation", + type: "u64", + index: false + }, + { + name: "sourceStakeIndex", + type: "u32", + index: false + }, + { + name: "sourceStakeAccount", + type: "publicKey", + index: false + }, + { + name: "lastUpdateSourceStakeDelegation", + type: "u64", + index: false + }, + { + name: "validatorIndex", + type: "u32", + index: false + }, + { + name: "validatorVote", + type: "publicKey", + index: false + }, + { + name: "extraDelegated", + type: "u64", + index: false + }, + { + name: "returnedStakeRent", + type: "u64", + index: false + }, + { + name: "validatorActiveBalance", + type: "u64", + index: false + }, + { + name: "totalActiveBalance", + type: "u64", + index: false + }, + { + name: "operationalSolBalance", + type: "u64", + index: false + } + ] + }, + { + name: "RedelegateEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "epoch", + type: "u64", + index: false + }, + { + name: "stakeIndex", + type: "u32", + index: false + }, + { + name: "stakeAccount", + type: "publicKey", + index: false + }, + { + name: "lastUpdateDelegation", + type: "u64", + index: false + }, + { + name: "sourceValidatorIndex", + type: "u32", + index: false + }, + { + name: "sourceValidatorVote", + type: "publicKey", + index: false + }, + { + name: "sourceValidatorScore", + type: "u32", + index: false + }, + { + name: "sourceValidatorBalance", + type: "u64", + index: false + }, + { + name: "sourceValidatorStakeTarget", + type: "u64", + index: false + }, + { + name: "destValidatorIndex", + type: "u32", + index: false + }, + { + name: "destValidatorVote", + type: "publicKey", + index: false + }, + { + name: "destValidatorScore", + type: "u32", + index: false + }, + { + name: "destValidatorBalance", + type: "u64", + index: false + }, + { + name: "destValidatorStakeTarget", + type: "u64", + index: false + }, + { + name: "redelegateAmount", + type: "u64", + index: false + }, + { + name: "splitStakeAccount", + type: { + option: { + defined: "SplitStakeAccountInfo" + } + }, + index: false + }, + { + name: "redelegateStakeIndex", + type: "u32", + index: false + }, + { + name: "redelegateStakeAccount", + type: "publicKey", + index: false + } + ] + }, + { + name: "StakeReserveEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "epoch", + type: "u64", + index: false + }, + { + name: "stakeIndex", + type: "u32", + index: false + }, + { + name: "stakeAccount", + type: "publicKey", + index: false + }, + { + name: "validatorIndex", + type: "u32", + index: false + }, + { + name: "validatorVote", + type: "publicKey", + index: false + }, + { + name: "totalStakeTarget", + type: "u64", + index: false + }, + { + name: "validatorStakeTarget", + type: "u64", + index: false + }, + { + name: "reserveBalance", + type: "u64", + index: false + }, + { + name: "totalActiveBalance", + type: "u64", + index: false + }, + { + name: "validatorActiveBalance", + type: "u64", + index: false + }, + { + name: "totalStakeDelta", + type: "u64", + index: false + }, + { + name: "amount", + type: "u64", + index: false + } + ] + }, + { + name: "UpdateActiveEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "epoch", + type: "u64", + index: false + }, + { + name: "stakeIndex", + type: "u32", + index: false + }, + { + name: "stakeAccount", + type: "publicKey", + index: false + }, + { + name: "validatorIndex", + type: "u32", + index: false + }, + { + name: "validatorVote", + type: "publicKey", + index: false + }, + { + name: "delegationChange", + type: { + defined: "U64ValueChange" + }, + index: false + }, + { + name: "delegationGrowthMsolFees", + type: { + option: "u64" + }, + index: false + }, + { + name: "extraLamports", + type: "u64", + index: false + }, + { + name: "extraMsolFees", + type: { + option: "u64" + }, + index: false + }, + { + name: "validatorActiveBalance", + type: "u64", + index: false + }, + { + name: "totalActiveBalance", + type: "u64", + index: false + }, + { + name: "msolPriceChange", + type: { + defined: "U64ValueChange" + }, + index: false + }, + { + name: "rewardFeeUsed", + type: { + defined: "Fee" + }, + index: false + }, + { + name: "totalVirtualStakedLamports", + type: "u64", + index: false + }, + { + name: "msolSupply", + type: "u64", + index: false + } + ] + }, + { + name: "UpdateDeactivatedEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "epoch", + type: "u64", + index: false + }, + { + name: "stakeIndex", + type: "u32", + index: false + }, + { + name: "stakeAccount", + type: "publicKey", + index: false + }, + { + name: "balanceWithoutRentExempt", + type: "u64", + index: false + }, + { + name: "lastUpdateDelegatedLamports", + type: "u64", + index: false + }, + { + name: "msolFees", + type: { + option: "u64" + }, + index: false + }, + { + name: "msolPriceChange", + type: { + defined: "U64ValueChange" + }, + index: false + }, + { + name: "rewardFeeUsed", + type: { + defined: "Fee" + }, + index: false + }, + { + name: "operationalSolBalance", + type: "u64", + index: false + }, + { + name: "totalVirtualStakedLamports", + type: "u64", + index: false + }, + { + name: "msolSupply", + type: "u64", + index: false + } + ] + }, + { + name: "ClaimEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "epoch", + type: "u64", + index: false + }, + { + name: "ticket", + type: "publicKey", + index: false + }, + { + name: "beneficiary", + type: "publicKey", + index: false + }, + { + name: "circulatingTicketBalance", + type: "u64", + index: false + }, + { + name: "circulatingTicketCount", + type: "u64", + index: false + }, + { + name: "reserveBalance", + type: "u64", + index: false + }, + { + name: "userBalance", + type: "u64", + index: false + }, + { + name: "amount", + type: "u64", + index: false + } + ] + }, + { + name: "OrderUnstakeEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "ticketEpoch", + type: "u64", + index: false + }, + { + name: "ticket", + type: "publicKey", + index: false + }, + { + name: "beneficiary", + type: "publicKey", + index: false + }, + { + name: "circulatingTicketBalance", + type: "u64", + index: false + }, + { + name: "circulatingTicketCount", + type: "u64", + index: false + }, + { + name: "userMsolBalance", + type: "u64", + index: false + }, + { + name: "burnedMsolAmount", + type: "u64", + index: false + }, + { + name: "solAmount", + type: "u64", + index: false + }, + { + name: "feeBpCents", + type: "u32", + index: false + }, + { + name: "totalVirtualStakedLamports", + type: "u64", + index: false + }, + { + name: "msolSupply", + type: "u64", + index: false + } + ] + }, + { + name: "AddLiquidityEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "solOwner", + type: "publicKey", + index: false + }, + { + name: "userSolBalance", + type: "u64", + index: false + }, + { + name: "userLpBalance", + type: "u64", + index: false + }, + { + name: "solLegBalance", + type: "u64", + index: false + }, + { + name: "lpSupply", + type: "u64", + index: false + }, + { + name: "solAddedAmount", + type: "u64", + index: false + }, + { + name: "lpMinted", + type: "u64", + index: false + }, + { + name: "totalVirtualStakedLamports", + type: "u64", + index: false + }, + { + name: "msolSupply", + type: "u64", + index: false + } + ] + }, + { + name: "LiquidUnstakeEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "msolOwner", + type: "publicKey", + index: false + }, + { + name: "liqPoolSolBalance", + type: "u64", + index: false + }, + { + name: "liqPoolMsolBalance", + type: "u64", + index: false + }, + { + name: "treasuryMsolBalance", + type: { + option: "u64" + }, + index: false + }, + { + name: "userMsolBalance", + type: "u64", + index: false + }, + { + name: "userSolBalance", + type: "u64", + index: false + }, + { + name: "msolAmount", + type: "u64", + index: false + }, + { + name: "msolFee", + type: "u64", + index: false + }, + { + name: "treasuryMsolCut", + type: "u64", + index: false + }, + { + name: "solAmount", + type: "u64", + index: false + }, + { + name: "lpLiquidityTarget", + type: "u64", + index: false + }, + { + name: "lpMaxFee", + type: { + defined: "Fee" + }, + index: false + }, + { + name: "lpMinFee", + type: { + defined: "Fee" + }, + index: false + }, + { + name: "treasuryCut", + type: { + defined: "Fee" + }, + index: false + } + ] + }, + { + name: "RemoveLiquidityEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "solLegBalance", + type: "u64", + index: false + }, + { + name: "msolLegBalance", + type: "u64", + index: false + }, + { + name: "userLpBalance", + type: "u64", + index: false + }, + { + name: "userSolBalance", + type: "u64", + index: false + }, + { + name: "userMsolBalance", + type: "u64", + index: false + }, + { + name: "lpMintSupply", + type: "u64", + index: false + }, + { + name: "lpBurned", + type: "u64", + index: false + }, + { + name: "solOutAmount", + type: "u64", + index: false + }, + { + name: "msolOutAmount", + type: "u64", + index: false + } + ] + }, + { + name: "AddValidatorEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "validator", + type: "publicKey", + index: false + }, + { + name: "index", + type: "u32", + index: false + }, + { + name: "score", + type: "u32", + index: false + } + ] + }, + { + name: "RemoveValidatorEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "validator", + type: "publicKey", + index: false + }, + { + name: "index", + type: "u32", + index: false + }, + { + name: "operationalSolBalance", + type: "u64", + index: false + } + ] + }, + { + name: "SetValidatorScoreEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "validator", + type: "publicKey", + index: false + }, + { + name: "index", + type: "u32", + index: false + }, + { + name: "scoreChange", + type: { + defined: "U32ValueChange" + }, + index: false + } + ] + }, + { + name: "DepositStakeAccountEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "stake", + type: "publicKey", + index: false + }, + { + name: "delegated", + type: "u64", + index: false + }, + { + name: "withdrawer", + type: "publicKey", + index: false + }, + { + name: "stakeIndex", + type: "u32", + index: false + }, + { + name: "validator", + type: "publicKey", + index: false + }, + { + name: "validatorIndex", + type: "u32", + index: false + }, + { + name: "validatorActiveBalance", + type: "u64", + index: false + }, + { + name: "totalActiveBalance", + type: "u64", + index: false + }, + { + name: "userMsolBalance", + type: "u64", + index: false + }, + { + name: "msolMinted", + type: "u64", + index: false + }, + { + name: "totalVirtualStakedLamports", + type: "u64", + index: false + }, + { + name: "msolSupply", + type: "u64", + index: false + } + ] + }, + { + name: "DepositEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "solOwner", + type: "publicKey", + index: false + }, + { + name: "userSolBalance", + type: "u64", + index: false + }, + { + name: "userMsolBalance", + type: "u64", + index: false + }, + { + name: "solLegBalance", + type: "u64", + index: false + }, + { + name: "msolLegBalance", + type: "u64", + index: false + }, + { + name: "reserveBalance", + type: "u64", + index: false + }, + { + name: "solSwapped", + type: "u64", + index: false + }, + { + name: "msolSwapped", + type: "u64", + index: false + }, + { + name: "solDeposited", + type: "u64", + index: false + }, + { + name: "msolMinted", + type: "u64", + index: false + }, + { + name: "totalVirtualStakedLamports", + type: "u64", + index: false + }, + { + name: "msolSupply", + type: "u64", + index: false + } + ] + }, + { + name: "WithdrawStakeAccountEvent", + fields: [ + { + name: "state", + type: "publicKey", + index: false + }, + { + name: "epoch", + type: "u64", + index: false + }, + { + name: "stake", + type: "publicKey", + index: false + }, + { + name: "lastUpdateStakeDelegation", + type: "u64", + index: false + }, + { + name: "stakeIndex", + type: "u32", + index: false + }, + { + name: "validator", + type: "publicKey", + index: false + }, + { + name: "validatorIndex", + type: "u32", + index: false + }, + { + name: "userMsolBalance", + type: "u64", + index: false + }, + { + name: "userMsolAuth", + type: "publicKey", + index: false + }, + { + name: "msolBurned", + type: "u64", + index: false + }, + { + name: "msolFees", + type: "u64", + index: false + }, + { + name: "splitStake", + type: "publicKey", + index: false + }, + { + name: "beneficiary", + type: "publicKey", + index: false + }, + { + name: "splitLamports", + type: "u64", + index: false + }, + { + name: "feeBpCents", + type: "u32", + index: false + }, + { + name: "totalVirtualStakedLamports", + type: "u64", + index: false + }, + { + name: "msolSupply", + type: "u64", + index: false + } + ] + } + ], + errors: [ + { + code: 6e3, + name: "WrongReserveOwner", + msg: "Wrong reserve owner. Must be a system account" + }, + { + code: 6001, + name: "NonEmptyReserveData", + msg: "Reserve must have no data, but has data" + }, + { + code: 6002, + name: "InvalidInitialReserveLamports", + msg: "Invalid initial reserve lamports" + }, + { + code: 6003, + name: "ZeroValidatorChunkSize", + msg: "Zero validator chunk size" + }, + { + code: 6004, + name: "TooBigValidatorChunkSize", + msg: "Too big validator chunk size" + }, + { + code: 6005, + name: "ZeroCreditChunkSize", + msg: "Zero credit chunk size" + }, + { + code: 6006, + name: "TooBigCreditChunkSize", + msg: "Too big credit chunk size" + }, + { + code: 6007, + name: "TooLowCreditFee", + msg: "Too low credit fee" + }, + { + code: 6008, + name: "InvalidMintAuthority", + msg: "Invalid mint authority" + }, + { + code: 6009, + name: "MintHasInitialSupply", + msg: "Non empty initial mint supply" + }, + { + code: 6010, + name: "InvalidOwnerFeeState", + msg: "Invalid owner fee state" + }, + { + code: 6011, + name: "InvalidProgramId", + msg: "Invalid program id. For using program from another account please update id in the code" + }, + { + code: 6012, + name: "UnexpectedAccount", + msg: "Unexpected account" + }, + { + code: 6013, + name: "CalculationFailure", + msg: "Calculation failure" + }, + { + code: 6014, + name: "StakeAccountWithLockup", + msg: "You can't deposit a stake-account with lockup" + }, + { + code: 6015, + name: "MinStakeIsTooLow", + msg: "Min stake is too low" + }, + { + code: 6016, + name: "LpMaxFeeIsTooHigh", + msg: "Lp max fee is too high" + }, + { + code: 6017, + name: "BasisPointsOverflow", + msg: "Basis points overflow" + }, + { + code: 6018, + name: "LpFeesAreWrongWayRound", + msg: "LP min fee > LP max fee" + }, + { + code: 6019, + name: "LiquidityTargetTooLow", + msg: "Liquidity target too low" + }, + { + code: 6020, + name: "TicketNotDue", + msg: "Ticket not due. Wait more epochs" + }, + { + code: 6021, + name: "TicketNotReady", + msg: "Ticket not ready. Wait a few hours and try again" + }, + { + code: 6022, + name: "WrongBeneficiary", + msg: "Wrong Ticket Beneficiary" + }, + { + code: 6023, + name: "StakeAccountNotUpdatedYet", + msg: "Stake Account not updated yet" + }, + { + code: 6024, + name: "StakeNotDelegated", + msg: "Stake Account not delegated" + }, + { + code: 6025, + name: "StakeAccountIsEmergencyUnstaking", + msg: "Stake Account is emergency unstaking" + }, + { + code: 6026, + name: "InsufficientLiquidity", + msg: "Insufficient Liquidity in the Liquidity Pool" + }, + { + code: 6027, + name: "NotUsed6027" + }, + { + code: 6028, + name: "InvalidAdminAuthority", + msg: "Invalid admin authority" + }, + { + code: 6029, + name: "InvalidValidatorManager", + msg: "Invalid validator system manager" + }, + { + code: 6030, + name: "InvalidStakeListDiscriminator", + msg: "Invalid stake list account discriminator" + }, + { + code: 6031, + name: "InvalidValidatorListDiscriminator", + msg: "Invalid validator list account discriminator" + }, + { + code: 6032, + name: "TreasuryCutIsTooHigh", + msg: "Treasury cut is too high" + }, + { + code: 6033, + name: "RewardsFeeIsTooHigh", + msg: "Reward fee is too high" + }, + { + code: 6034, + name: "StakingIsCapped", + msg: "Staking is capped" + }, + { + code: 6035, + name: "LiquidityIsCapped", + msg: "Liquidity is capped" + }, + { + code: 6036, + name: "UpdateWindowIsTooLow", + msg: "Update window is too low" + }, + { + code: 6037, + name: "MinWithdrawIsTooHigh", + msg: "Min withdraw is too high" + }, + { + code: 6038, + name: "WithdrawAmountIsTooLow", + msg: "Withdraw amount is too low" + }, + { + code: 6039, + name: "DepositAmountIsTooLow", + msg: "Deposit amount is too low" + }, + { + code: 6040, + name: "NotEnoughUserFunds", + msg: "Not enough user funds" + }, + { + code: 6041, + name: "WrongTokenOwnerOrDelegate", + msg: "Wrong token owner or delegate" + }, + { + code: 6042, + name: "TooEarlyForStakeDelta", + msg: "Too early for stake delta" + }, + { + code: 6043, + name: "RequiredDelegatedStake", + msg: "Required delegated stake" + }, + { + code: 6044, + name: "RequiredActiveStake", + msg: "Required active stake" + }, + { + code: 6045, + name: "RequiredDeactivatingStake", + msg: "Required deactivating stake" + }, + { + code: 6046, + name: "DepositingNotActivatedStake", + msg: "Depositing not activated stake" + }, + { + code: 6047, + name: "TooLowDelegationInDepositingStake", + msg: "Too low delegation in the depositing stake" + }, + { + code: 6048, + name: "WrongStakeBalance", + msg: "Wrong deposited stake balance" + }, + { + code: 6049, + name: "WrongValidatorAccountOrIndex", + msg: "Wrong validator account or index" + }, + { + code: 6050, + name: "WrongStakeAccountOrIndex", + msg: "Wrong stake account or index" + }, + { + code: 6051, + name: "UnstakingOnPositiveDelta", + msg: "Delta stake is positive so we must stake instead of unstake" + }, + { + code: 6052, + name: "StakingOnNegativeDelta", + msg: "Delta stake is negative so we must unstake instead of stake" + }, + { + code: 6053, + name: "MovingStakeIsCapped", + msg: "Moving stake during an epoch is capped" + }, + { + code: 6054, + name: "StakeMustBeUninitialized", + msg: "Stake must be uninitialized" + }, + { + code: 6055, + name: "DestinationStakeMustBeDelegated", + msg: "Destination stake must be delegated" + }, + { + code: 6056, + name: "DestinationStakeMustNotBeDeactivating", + msg: "Destination stake must not be deactivating" + }, + { + code: 6057, + name: "DestinationStakeMustBeUpdated", + msg: "Destination stake must be updated" + }, + { + code: 6058, + name: "InvalidDestinationStakeDelegation", + msg: "Invalid destination stake delegation" + }, + { + code: 6059, + name: "SourceStakeMustBeDelegated", + msg: "Source stake must be delegated" + }, + { + code: 6060, + name: "SourceStakeMustNotBeDeactivating", + msg: "Source stake must not be deactivating" + }, + { + code: 6061, + name: "SourceStakeMustBeUpdated", + msg: "Source stake must be updated" + }, + { + code: 6062, + name: "InvalidSourceStakeDelegation", + msg: "Invalid source stake delegation" + }, + { + code: 6063, + name: "InvalidDelayedUnstakeTicket", + msg: "Invalid delayed unstake ticket" + }, + { + code: 6064, + name: "ReusingDelayedUnstakeTicket", + msg: "Reusing delayed unstake ticket" + }, + { + code: 6065, + name: "EmergencyUnstakingFromNonZeroScoredValidator", + msg: "Emergency unstaking from non zero scored validator" + }, + { + code: 6066, + name: "WrongValidatorDuplicationFlag", + msg: "Wrong validator duplication flag" + }, + { + code: 6067, + name: "RedepositingMarinadeStake", + msg: "Redepositing marinade stake" + }, + { + code: 6068, + name: "RemovingValidatorWithBalance", + msg: "Removing validator with balance" + }, + { + code: 6069, + name: "RedelegateOverTarget", + msg: "Redelegate will put validator over stake target" + }, + { + code: 6070, + name: "SourceAndDestValidatorsAreTheSame", + msg: "Source and Dest Validators are the same" + }, + { + code: 6071, + name: "UnregisteredMsolMinted", + msg: "Some mSOL tokens was minted outside of marinade contract" + }, + { + code: 6072, + name: "UnregisteredLPMinted", + msg: "Some LP tokens was minted outside of marinade contract" + }, + { + code: 6073, + name: "ListIndexOutOfBounds", + msg: "List index out of bounds" + }, + { + code: 6074, + name: "ListOverflow", + msg: "List overflow" + }, + { + code: 6075, + name: "AlreadyPaused", + msg: "Requested pause and already Paused" + }, + { + code: 6076, + name: "NotPaused", + msg: "Requested resume, but not Paused" + }, + { + code: 6077, + name: "ProgramIsPaused", + msg: "Emergency Pause is Active" + }, + { + code: 6078, + name: "InvalidPauseAuthority", + msg: "Invalid pause authority" + }, + { + code: 6079, + name: "SelectedStakeAccountHasNotEnoughFunds", + msg: "Selected Stake account has not enough funds" + }, + { + code: 6080, + name: "BasisPointCentsOverflow", + msg: "Basis point CENTS overflow" + }, + { + code: 6081, + name: "WithdrawStakeAccountIsNotEnabled", + msg: "Withdraw stake account is not enabled" + }, + { + code: 6082, + name: "WithdrawStakeAccountFeeIsTooHigh", + msg: "Withdraw stake account fee is too high" + }, + { + code: 6083, + name: "DelayedUnstakeFeeIsTooHigh", + msg: "Delayed unstake fee is too high" + }, + { + code: 6084, + name: "WithdrawStakeLamportsIsTooLow", + msg: "Withdraw stake account value is too low" + }, + { + code: 6085, + name: "StakeAccountRemainderTooLow", + msg: "Stake account remainder too low" + }, + { + code: 6086, + name: "ShrinkingListWithDeletingContents", + msg: "Capacity of the list must be not less than it's current size" + } + ] + }; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/programs/marinade-finance-program.js +var require_marinade_finance_program = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/programs/marinade-finance-program.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MarinadeFinanceProgram = void 0; + var anchor_1 = require_cjs(); + var util_1 = require_util9(); + var spl_token_3_x_1 = require_cjs4(); + var mariandeFinance = __importStar2(require_marinade_finance()); + var MarinadeFinanceIDL = mariandeFinance.IDL; + var MarinadeFinanceProgram = class { + constructor(programAddress, anchorProvider) { + this.programAddress = programAddress; + this.anchorProvider = anchorProvider; + this.getEstimatedUnstakeTicketDueDate = (marinadeState) => __awaiter2(this, void 0, void 0, function* () { + const epochInfo = yield (0, util_1.getEpochInfo)(this.anchorProvider.connection); + return (0, util_1.estimateTicketDateInfo)(epochInfo, Date.now(), marinadeState.state.stakeSystem.slotsForStakeDelta.toNumber()); + }); + this.addLiquidityInstructionBuilder = ({ marinadeState, ownerAddress, associatedLPTokenAccountAddress, amountLamports }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.addLiquidity(amountLamports).accountsStrict({ + state: marinadeState.marinadeStateAddress, + lpMint: marinadeState.lpMintAddress, + lpMintAuthority: yield marinadeState.lpMintAuthority(), + liqPoolMsolLeg: marinadeState.mSolLeg, + liqPoolSolLegPda: yield marinadeState.solLeg(), + transferFrom: ownerAddress, + mintTo: associatedLPTokenAccountAddress, + systemProgram: util_1.SYSTEM_PROGRAM_ID, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID + }).instruction(); + }); + this.removeLiquidityInstructionBuilder = ({ marinadeState, ownerAddress, associatedLPTokenAccountAddress, associatedMSolTokenAccountAddress, amountLamports }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.removeLiquidity(amountLamports).accountsStrict({ + state: marinadeState.marinadeStateAddress, + lpMint: marinadeState.lpMintAddress, + burnFrom: associatedLPTokenAccountAddress, + burnFromAuthority: ownerAddress, + liqPoolSolLegPda: yield marinadeState.solLeg(), + transferSolTo: ownerAddress, + transferMsolTo: associatedMSolTokenAccountAddress, + liqPoolMsolLeg: marinadeState.mSolLeg, + liqPoolMsolLegAuthority: yield marinadeState.mSolLegAuthority(), + systemProgram: util_1.SYSTEM_PROGRAM_ID, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID + }).instruction(); + }); + this.liquidUnstakeInstructionBuilder = ({ marinadeState, ownerAddress, associatedMSolTokenAccountAddress, amountLamports }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.liquidUnstake(amountLamports).accountsStrict({ + state: marinadeState.marinadeStateAddress, + msolMint: marinadeState.mSolMintAddress, + liqPoolMsolLeg: marinadeState.mSolLeg, + liqPoolSolLegPda: yield marinadeState.solLeg(), + getMsolFrom: associatedMSolTokenAccountAddress, + getMsolFromAuthority: ownerAddress, + transferSolTo: ownerAddress, + treasuryMsolAccount: marinadeState.treasuryMsolAccount, + systemProgram: util_1.SYSTEM_PROGRAM_ID, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID + }).instruction(); + }); + this.depositInstructionBuilder = ({ marinadeState, transferFrom, associatedMSolTokenAccountAddress, amountLamports }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.deposit(amountLamports).accountsStrict({ + reservePda: yield marinadeState.reserveAddress(), + state: marinadeState.marinadeStateAddress, + msolMint: marinadeState.mSolMintAddress, + msolMintAuthority: yield marinadeState.mSolMintAuthority(), + liqPoolMsolLegAuthority: yield marinadeState.mSolLegAuthority(), + liqPoolMsolLeg: marinadeState.mSolLeg, + liqPoolSolLegPda: yield marinadeState.solLeg(), + mintTo: associatedMSolTokenAccountAddress, + transferFrom, + systemProgram: util_1.SYSTEM_PROGRAM_ID, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID + }).instruction(); + }); + this.depositStakeAccountInstructionBuilder = ({ marinadeState, duplicationFlag, ownerAddress, stakeAccountAddress, authorizedWithdrawerAddress, associatedMSolTokenAccountAddress, validatorIndex }) => __awaiter2(this, void 0, void 0, function* () { + return this.program.methods.depositStakeAccount(validatorIndex).accountsStrict({ + duplicationFlag, + stakeAuthority: authorizedWithdrawerAddress, + state: marinadeState.marinadeStateAddress, + stakeList: marinadeState.state.stakeSystem.stakeList.account, + stakeAccount: stakeAccountAddress, + validatorList: marinadeState.state.validatorSystem.validatorList.account, + msolMint: marinadeState.mSolMintAddress, + msolMintAuthority: yield marinadeState.mSolMintAuthority(), + mintTo: associatedMSolTokenAccountAddress, + rentPayer: ownerAddress, + clock: anchor_1.web3.SYSVAR_CLOCK_PUBKEY, + rent: anchor_1.web3.SYSVAR_RENT_PUBKEY, + systemProgram: util_1.SYSTEM_PROGRAM_ID, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID, + stakeProgram: util_1.STAKE_PROGRAM_ID + }).instruction(); + }); + this.claimInstructionBuilder = ({ marinadeState, ticketAccount, transferSolTo }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.claim().accountsStrict({ + state: marinadeState.marinadeStateAddress, + reservePda: yield marinadeState.reserveAddress(), + ticketAccount, + transferSolTo, + clock: anchor_1.web3.SYSVAR_CLOCK_PUBKEY, + systemProgram: util_1.SYSTEM_PROGRAM_ID + }).instruction(); + }); + this.orderUnstakeInstructionBuilder = ({ marinadeState, ownerAddress, associatedMSolTokenAccountAddress, newTicketAccount, msolAmount }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.orderUnstake(msolAmount).accountsStrict({ + state: marinadeState.marinadeStateAddress, + msolMint: marinadeState.mSolMintAddress, + burnMsolFrom: associatedMSolTokenAccountAddress, + burnMsolAuthority: ownerAddress, + newTicketAccount, + rent: anchor_1.web3.SYSVAR_RENT_PUBKEY, + clock: anchor_1.web3.SYSVAR_CLOCK_PUBKEY, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID + }).instruction(); + }); + } + get program() { + return new anchor_1.Program(MarinadeFinanceIDL, this.programAddress, this.anchorProvider); + } + getDelayedUnstakeTickets(beneficiary) { + return __awaiter2(this, void 0, void 0, function* () { + const filters = [ + { + dataSize: 88 + } + ]; + if (beneficiary) { + filters.push({ + memcmp: { + offset: 8 + 32, + bytes: beneficiary.toBase58() + } + }); + } + const ticketAccounts = yield this.program.account.ticketAccountData.all(filters); + const epochInfo = yield (0, util_1.getEpochInfo)(this.anchorProvider.connection); + return new Map(ticketAccounts.map((ticketAccount) => { + const ticketAccountdata = ticketAccount.account; + const ticketAcconuntPubkey = ticketAccount.publicKey; + const ticketDateInfo = (0, util_1.getTicketDateInfo)(epochInfo, ticketAccountdata.createdEpoch.toNumber(), Date.now()); + return [ + ticketAcconuntPubkey, + Object.assign(Object.assign({}, ticketAccountdata), ticketDateInfo) + ]; + })); + }); + } + }; + exports2.MarinadeFinanceProgram = MarinadeFinanceProgram; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/assert.js +var require_assert = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/assert.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.assertNotNullAndReturn = void 0; + var assertNotNull = (arg, err = "Asserted value is null!") => { + if (arg === null) { + throw new Error(err); + } + }; + var assertNotNullAndReturn = (arg, err = "Asserted value is null!") => { + assertNotNull(arg, err); + return arg; + }; + exports2.assertNotNullAndReturn = assertNotNullAndReturn; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/programs/idl/types/marinade_referral.js +var require_marinade_referral = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/programs/idl/types/marinade_referral.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IDL = void 0; + exports2.IDL = { + version: "0.2.0", + name: "marinade_referral", + instructions: [ + { + name: "deposit", + docs: ["deposit SOL"], + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "liqPoolSolLegPda", + isMut: true, + isSigner: false + }, + { + name: "liqPoolMsolLeg", + isMut: true, + isSigner: false + }, + { + name: "liqPoolMsolLegAuthority", + isMut: false, + isSigner: false + }, + { + name: "reservePda", + isMut: true, + isSigner: false + }, + { + name: "transferFrom", + isMut: true, + isSigner: true + }, + { + name: "mintTo", + isMut: true, + isSigner: false + }, + { + name: "msolMintAuthority", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + }, + { + name: "marinadeFinanceProgram", + isMut: false, + isSigner: false + }, + { + name: "referralState", + isMut: true, + isSigner: false + }, + { + name: "msolTokenPartnerAccount", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "lamports", + type: "u64" + } + ] + }, + { + name: "depositStakeAccount", + docs: ["deposit stake account"], + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "validatorList", + isMut: true, + isSigner: false + }, + { + name: "stakeList", + isMut: true, + isSigner: false + }, + { + name: "stakeAccount", + isMut: true, + isSigner: false + }, + { + name: "stakeAuthority", + isMut: false, + isSigner: true + }, + { + name: "duplicationFlag", + isMut: true, + isSigner: false + }, + { + name: "rentPayer", + isMut: true, + isSigner: true + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "mintTo", + isMut: true, + isSigner: false + }, + { + name: "msolMintAuthority", + isMut: false, + isSigner: false + }, + { + name: "clock", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + }, + { + name: "stakeProgram", + isMut: false, + isSigner: false + }, + { + name: "marinadeFinanceProgram", + isMut: false, + isSigner: false + }, + { + name: "referralState", + isMut: true, + isSigner: false + }, + { + name: "msolTokenPartnerAccount", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "validatorIndex", + type: "u32" + } + ] + }, + { + name: "liquidUnstake", + docs: ["liquid-unstake mSOL"], + accounts: [ + { + name: "state", + isMut: true, + isSigner: false + }, + { + name: "msolMint", + isMut: true, + isSigner: false + }, + { + name: "liqPoolSolLegPda", + isMut: true, + isSigner: false + }, + { + name: "liqPoolMsolLeg", + isMut: true, + isSigner: false + }, + { + name: "treasuryMsolAccount", + isMut: true, + isSigner: false + }, + { + name: "getMsolFrom", + isMut: true, + isSigner: false + }, + { + name: "getMsolFromAuthority", + isMut: false, + isSigner: true + }, + { + name: "transferSolTo", + isMut: true, + isSigner: false + }, + { + name: "systemProgram", + isMut: false, + isSigner: false + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false + }, + { + name: "marinadeFinanceProgram", + isMut: false, + isSigner: false + }, + { + name: "referralState", + isMut: true, + isSigner: false + }, + { + name: "msolTokenPartnerAccount", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "msolAmount", + type: "u64" + } + ] + }, + { + name: "initialize", + docs: ["Admin", "create global state"], + accounts: [ + { + name: "adminAccount", + isMut: false, + isSigner: true + }, + { + name: "globalState", + isMut: true, + isSigner: false + }, + { + name: "msolMintAccount", + isMut: false, + isSigner: false + }, + { + name: "foreman1", + isMut: false, + isSigner: false + }, + { + name: "foreman2", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "minKeepPct", + type: "u8" + }, + { + name: "maxKeepPct", + type: "u8" + } + ] + }, + { + name: "initReferralAccount", + docs: ["create referral state"], + accounts: [ + { + name: "globalState", + isMut: false, + isSigner: false + }, + { + name: "signer", + isMut: false, + isSigner: true + }, + { + name: "referralState", + isMut: true, + isSigner: false + }, + { + name: "partnerAccount", + isMut: false, + isSigner: false + }, + { + name: "msolTokenPartnerAccount", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "partnerName", + type: "string" + }, + { + name: "validatorVoteKey", + type: { + option: "publicKey" + } + }, + { + name: "keepSelfStakePct", + type: "u8" + } + ] + }, + { + name: "updateReferral", + docs: ["update referral state"], + accounts: [ + { + name: "globalState", + isMut: false, + isSigner: false + }, + { + name: "adminAccount", + isMut: false, + isSigner: true + }, + { + name: "referralState", + isMut: true, + isSigner: false + }, + { + name: "newPartnerAccount", + isMut: false, + isSigner: false + }, + { + name: "newMsolTokenPartnerAccount", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "pause", + type: "bool" + } + ] + }, + { + name: "updateOperationFees", + docs: ["update referral operation fees"], + accounts: [ + { + name: "globalState", + isMut: false, + isSigner: false + }, + { + name: "signer", + isMut: false, + isSigner: true + }, + { + name: "referralState", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "operationDepositSolFee", + type: { + option: "u8" + } + }, + { + name: "operationDepositStakeAccountFee", + type: { + option: "u8" + } + }, + { + name: "operationLiquidUnstakeFee", + type: { + option: "u8" + } + }, + { + name: "operationDelayedUnstakeFee", + type: { + option: "u8" + } + } + ] + }, + { + name: "changeAuthority", + docs: [ + "update partner, authority and beneficiary account based on the new partner" + ], + accounts: [ + { + name: "globalState", + isMut: true, + isSigner: false + }, + { + name: "adminAccount", + isMut: false, + isSigner: true + }, + { + name: "newAdminAccount", + isMut: false, + isSigner: false + }, + { + name: "newForeman1", + isMut: false, + isSigner: false + }, + { + name: "newForeman2", + isMut: false, + isSigner: false + } + ], + args: [] + }, + { + name: "adminRecognizeDeposit", + docs: ["deposit SOL"], + accounts: [ + { + name: "signer", + isMut: false, + isSigner: true + }, + { + name: "globalState", + isMut: false, + isSigner: false + }, + { + name: "referralState", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "lamports", + type: "u64" + } + ] + } + ], + accounts: [ + { + name: "globalState", + docs: ["marinade-referral-program PDA"], + type: { + kind: "struct", + fields: [ + { + name: "adminAccount", + type: "publicKey" + }, + { + name: "msolMintAccount", + type: "publicKey" + }, + { + name: "foreman1", + type: "publicKey" + }, + { + name: "foreman2", + type: "publicKey" + }, + { + name: "minKeepPct", + type: "u8" + }, + { + name: "maxKeepPct", + type: "u8" + } + ] + } + }, + { + name: "referralState", + docs: ["referral PDA"], + type: { + kind: "struct", + fields: [ + { + name: "partnerName", + type: "string" + }, + { + name: "validatorVoteKey", + docs: [ + "set value if this referral-account is a stake-account-as-collateral partner record" + ], + type: { + option: "publicKey" + } + }, + { + name: "keepSelfStakePct", + type: "u8" + }, + { + name: "partnerAccount", + type: "publicKey" + }, + { + name: "msolTokenPartnerAccount", + type: "publicKey" + }, + { + name: "depositSolAmount", + type: "u64" + }, + { + name: "depositSolOperations", + type: "u64" + }, + { + name: "depositStakeAccountAmount", + type: "u64" + }, + { + name: "depositStakeAccountOperations", + type: "u64" + }, + { + name: "liqUnstakeMsolFees", + type: "u64" + }, + { + name: "liqUnstakeSolAmount", + type: "u64" + }, + { + name: "liqUnstakeMsolAmount", + type: "u64" + }, + { + name: "liqUnstakeOperations", + type: "u64" + }, + { + name: "delayedUnstakeAmount", + type: "u64" + }, + { + name: "delayedUnstakeOperations", + type: "u64" + }, + { + name: "baseFee", + type: "u32" + }, + { + name: "maxFee", + type: "u32" + }, + { + name: "maxNetStake", + type: "u64" + }, + { + name: "pause", + type: "bool" + }, + { + name: "operationDepositSolFee", + type: "u8" + }, + { + name: "operationDepositStakeAccountFee", + type: "u8" + }, + { + name: "operationLiquidUnstakeFee", + type: "u8" + }, + { + name: "operationDelayedUnstakeFee", + type: "u8" + }, + { + name: "accumDepositSolFee", + type: "u64" + }, + { + name: "accumDepositStakeAccountFee", + type: "u64" + }, + { + name: "accumLiquidUnstakeFee", + type: "u64" + }, + { + name: "accumDelayedUnstakeFee", + type: "u64" + } + ] + } + } + ], + types: [ + { + name: "ReferralError", + type: { + kind: "enum", + variants: [ + { + name: "AccessDenied" + }, + { + name: "Paused" + }, + { + name: "TransferNotAvailable" + }, + { + name: "InvalidPartnerAccountOwner" + }, + { + name: "InvalidPartnerAccountMint" + }, + { + name: "PartnerNameTooLong" + }, + { + name: "NotInitializedMintAccount" + }, + { + name: "ReferralOperationFeeOverMax" + }, + { + name: "NotAllowedForStakeAsCollateralPartner" + }, + { + name: "KeepPctOutOfRange" + }, + { + name: "MaxKeepPctOutOfRange" + }, + { + name: "MinMaxKeepPctOutOfRange" + }, + { + name: "StakeAccountMustBeDelegatedToPartnerValidator" + }, + { + name: "StakeAccountAuthMustBePartnerAccount" + }, + { + name: "OnlyAllowedForStakeAsCollateralPartner" + }, + { + name: "InvalidGlobalAccount" + } + ] + } + } + ] + }; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/programs/marinade-referral-program.js +var require_marinade_referral_program = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/programs/marinade-referral-program.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MarinadeReferralProgram = void 0; + var anchor_1 = require_cjs(); + var spl_token_3_x_1 = require_cjs4(); + var util_1 = require_util9(); + var assert_1 = require_assert(); + var mariandeReferral = __importStar2(require_marinade_referral()); + var MarinadeReferralIDL = mariandeReferral.IDL; + var MarinadeReferralProgram = class { + constructor(programAddress, anchorProvider, referralState, marinade) { + this.programAddress = programAddress; + this.anchorProvider = anchorProvider; + this.referralState = referralState; + this.marinade = marinade; + this.referralStateData = null; + this.liquidUnstakeInstructionBuilder = ({ marinadeState, ownerAddress, associatedMSolTokenAccountAddress, amountLamports }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.liquidUnstake(amountLamports).accountsStrict({ + marinadeFinanceProgram: marinadeState.marinadeFinanceProgramId, + state: marinadeState.marinadeStateAddress, + referralState: (0, assert_1.assertNotNullAndReturn)(this.referralState, "The referral code must be provided!"), + msolMint: marinadeState.mSolMintAddress, + liqPoolMsolLeg: marinadeState.mSolLeg, + liqPoolSolLegPda: yield marinadeState.solLeg(), + getMsolFrom: associatedMSolTokenAccountAddress, + getMsolFromAuthority: ownerAddress, + transferSolTo: ownerAddress, + treasuryMsolAccount: marinadeState.treasuryMsolAccount, + systemProgram: util_1.SYSTEM_PROGRAM_ID, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID, + msolTokenPartnerAccount: (yield this.getReferralStateData()).msolTokenPartnerAccount + }).instruction(); + }); + this.depositInstructionBuilder = ({ marinadeState, transferFrom, associatedMSolTokenAccountAddress, amountLamports }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.deposit(amountLamports).accountsStrict({ + reservePda: yield marinadeState.reserveAddress(), + marinadeFinanceProgram: marinadeState.marinadeFinanceProgramId, + referralState: (0, assert_1.assertNotNullAndReturn)(this.referralState, "The referral code must be provided!"), + state: marinadeState.marinadeStateAddress, + msolMint: marinadeState.mSolMintAddress, + msolMintAuthority: yield marinadeState.mSolMintAuthority(), + liqPoolMsolLegAuthority: yield marinadeState.mSolLegAuthority(), + liqPoolMsolLeg: marinadeState.mSolLeg, + liqPoolSolLegPda: yield marinadeState.solLeg(), + mintTo: associatedMSolTokenAccountAddress, + transferFrom, + systemProgram: util_1.SYSTEM_PROGRAM_ID, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID, + msolTokenPartnerAccount: (yield this.getReferralStateData()).msolTokenPartnerAccount + }).instruction(); + }); + this.depositStakeAccountInstructionBuilder = ({ marinadeState, duplicationFlag, ownerAddress, stakeAccountAddress, authorizedWithdrawerAddress, associatedMSolTokenAccountAddress, validatorIndex }) => __awaiter2(this, void 0, void 0, function* () { + return yield this.program.methods.depositStakeAccount(validatorIndex).accountsStrict({ + duplicationFlag, + stakeAuthority: authorizedWithdrawerAddress, + state: marinadeState.marinadeStateAddress, + marinadeFinanceProgram: marinadeState.marinadeFinanceProgramId, + referralState: (0, assert_1.assertNotNullAndReturn)(this.referralState, "The referral code must be provided!"), + stakeList: marinadeState.state.stakeSystem.stakeList.account, + stakeAccount: stakeAccountAddress, + validatorList: marinadeState.state.validatorSystem.validatorList.account, + msolMint: marinadeState.mSolMintAddress, + msolMintAuthority: yield marinadeState.mSolMintAuthority(), + mintTo: associatedMSolTokenAccountAddress, + rentPayer: ownerAddress, + clock: anchor_1.web3.SYSVAR_CLOCK_PUBKEY, + rent: anchor_1.web3.SYSVAR_RENT_PUBKEY, + systemProgram: util_1.SYSTEM_PROGRAM_ID, + tokenProgram: spl_token_3_x_1.TOKEN_PROGRAM_ID, + stakeProgram: util_1.STAKE_PROGRAM_ID, + msolTokenPartnerAccount: (yield this.getReferralStateData()).msolTokenPartnerAccount + }).instruction(); + }); + } + get program() { + return new anchor_1.Program(MarinadeReferralIDL, this.programAddress, this.anchorProvider); + } + getReferralStateData() { + return __awaiter2(this, void 0, void 0, function* () { + if (!this.referralStateData) { + this.referralStateData = (yield this.marinade.getReferralPartnerState()).state; + } + return this.referralStateData; + }); + } + }; + exports2.MarinadeReferralProgram = MarinadeReferralProgram; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-referral-state/marinade-referral-partner-state.js +var require_marinade_referral_partner_state = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-referral-state/marinade-referral-partner-state.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MarinadeReferralPartnerState = void 0; + var MarinadeReferralPartnerState = class _MarinadeReferralPartnerState { + constructor(state, referralStateAddress, marinadeReferralProgramId) { + this.state = state; + this.referralStateAddress = referralStateAddress; + this.marinadeReferralProgramId = marinadeReferralProgramId; + } + static fetch(marinade, referralCode) { + return __awaiter2(this, void 0, void 0, function* () { + const { marinadeReferralProgram, config } = marinade; + const code = referralCode !== null && referralCode !== void 0 ? referralCode : config.referralCode; + if (!code) { + throw new Error("The Referral Code must be provided in the MarinadeConfigor supplied as an arg!"); + } + const state = yield marinadeReferralProgram.program.account.referralState.fetch(code); + return new _MarinadeReferralPartnerState(state, code, config.marinadeReferralProgramId); + }); + } + }; + exports2.MarinadeReferralPartnerState = MarinadeReferralPartnerState; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-referral-state/marinade-referral-global-state.js +var require_marinade_referral_global_state = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-referral-state/marinade-referral-global-state.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MarinadeReferralGlobalState = void 0; + var MarinadeReferralGlobalState = class _MarinadeReferralGlobalState { + constructor(state, marinadeReferralProgramId) { + this.state = state; + this.marinadeReferralProgramId = marinadeReferralProgramId; + } + static fetch(marinade) { + return __awaiter2(this, void 0, void 0, function* () { + const { marinadeReferralProgram, config } = marinade; + const globalState = yield marinadeReferralProgram.program.account.globalState.fetch(config.marinadeReferralGlobalStateAddress); + return new _MarinadeReferralGlobalState(globalState, config.marinadeReferralProgramId); + }); + } + }; + exports2.MarinadeReferralGlobalState = MarinadeReferralGlobalState; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/ticket-account.js +var require_ticket_account = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/ticket-account.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TicketAccount = exports2.TICKET_ACCOUNT_SIZE = void 0; + exports2.TICKET_ACCOUNT_SIZE = 8 + 2 * 32 + 2 * 8; + var TicketAccount = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.TicketAccount = TicketAccount; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/generated/directed_stake.js +var require_directed_stake = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/generated/directed_stake.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IDL = void 0; + exports2.IDL = { + "version": "0.1.0", + "name": "directed_stake", + "constants": [ + { + "name": "STAKE_DIRECTION_SEED", + "type": "bytes", + "value": "[115, 116, 97, 107, 101, 45, 100, 105, 114, 101, 99, 116, 105, 111, 110]" + } + ], + "instructions": [ + { + "name": "createVote", + "accounts": [ + { + "name": "voteRecord", + "isMut": true, + "isSigner": false, + "docs": [ + "vote record that will be created" + ] + }, + { + "name": "owner", + "isMut": false, + "isSigner": true, + "docs": [ + "pubkey that the directed stake vote record will be created for" + ] + }, + { + "name": "root", + "isMut": true, + "isSigner": false, + "docs": [ + "root account that the vote record belongs under" + ] + }, + { + "name": "rentPayer", + "isMut": true, + "isSigner": true, + "docs": [ + "rent payer for creation of the vote record account" + ] + }, + { + "name": "validatorVote", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "updateVote", + "accounts": [ + { + "name": "voteRecord", + "isMut": true, + "isSigner": false, + "docs": [ + "vote record that will be updated" + ] + }, + { + "name": "owner", + "isMut": false, + "isSigner": true, + "docs": [ + "pubkey that the directed stake vote record belongs to" + ] + }, + { + "name": "validatorVote", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "removeVote", + "accounts": [ + { + "name": "voteRecord", + "isMut": true, + "isSigner": false, + "docs": [ + "vote record that will be closed" + ] + }, + { + "name": "owner", + "isMut": false, + "isSigner": true, + "docs": [ + "pubkey that the directed stake vote record belongs to" + ] + }, + { + "name": "root", + "isMut": true, + "isSigner": false, + "docs": [ + "root account the directed stake vote record PDA account was derived from" + ] + }, + { + "name": "rentCollector", + "isMut": true, + "isSigner": false, + "docs": [ + "account to obtain rent for closing the vote record account" + ] + } + ], + "args": [] + }, + { + "name": "createRoot", + "accounts": [ + { + "name": "root", + "isMut": true, + "isSigner": true, + "docs": [ + "root account that will be created" + ] + }, + { + "name": "rentPayer", + "isMut": true, + "isSigner": true, + "docs": [ + "to deduct rent for account creation from" + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + } + ], + "accounts": [ + { + "name": "root", + "docs": [ + "Directed Stake Root account", + "Used as a root account for PDA calculation of the vote record accounts, storing a statistic information." + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "voteCount", + "docs": [ + "how many vote records created the directed stake contract with this root account" + ], + "type": "u64" + } + ] + } + }, + { + "name": "voteRecord", + "docs": [ + "Account storing information to direct the stake directly to a validator", + "An user can create one vote record account directing to a validator" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "root", + "docs": [ + "root account that the vote record belongs under" + ], + "type": "publicKey" + }, + { + "name": "owner", + "docs": [ + "the pubkey that the directed stake vote recorded will be created for" + ], + "type": "publicKey" + }, + { + "name": "validatorVote", + "docs": [ + "validator vote account that the owner's stake directs to" + ], + "type": "publicKey" + }, + { + "name": "bump", + "docs": [ + "PDA bump this account was created with" + ], + "type": "u8" + } + ] + } + } + ], + "events": [ + { + "name": "CreateRootEvent", + "fields": [ + { + "name": "root", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "CreateVoteRecordEvent", + "fields": [ + { + "name": "root", + "type": "publicKey", + "index": false + }, + { + "name": "validatorVote", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "bump", + "type": "u8", + "index": false + }, + { + "name": "newVoteCount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "RemoveVoteRecordEvent", + "fields": [ + { + "name": "root", + "type": "publicKey", + "index": false + }, + { + "name": "validatorVote", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "newVoteCount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "UpdateVoteRecordEvent", + "fields": [ + { + "name": "root", + "type": "publicKey", + "index": false + }, + { + "name": "oldValidatorVote", + "type": "publicKey", + "index": false + }, + { + "name": "newValidatorVote", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + } + ] + } + ], + "errors": [ + { + "code": 6e3, + "name": "InvalidVoteProgram", + "msg": "Account not owned by Solana Vote program" + }, + { + "code": 6001, + "name": "InvalidValidatorVoteAccount", + "msg": "Account is has not a correct validator vote account" + } + ] + }; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.js +var require_common7 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.js"(exports2) { + "use strict"; + var _a; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isVersionedTransaction = exports2.chunks = exports2.isBrowser = void 0; + exports2.isBrowser = process.env.ANCHOR_BROWSER || typeof window !== "undefined" && !((_a = window.process) === null || _a === void 0 ? void 0 : _a.hasOwnProperty("type")); + function chunks(array11, size) { + return Array.apply(0, new Array(Math.ceil(array11.length / size))).map((_, index) => array11.slice(index * size, (index + 1) * size)); + } + exports2.chunks = chunks; + var isVersionedTransaction = (tx) => { + return "version" in tx; + }; + exports2.isVersionedTransaction = isVersionedTransaction; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.js +var require_nodewallet2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var buffer_1 = require("buffer"); + var web3_js_1 = require_index_cjs(); + var common_js_1 = require_common7(); + var NodeWallet = class _NodeWallet { + constructor(payer) { + this.payer = payer; + } + static local() { + const process2 = require("process"); + if (!process2.env.ANCHOR_WALLET || process2.env.ANCHOR_WALLET === "") { + throw new Error("expected environment variable `ANCHOR_WALLET` is not set."); + } + const payer = web3_js_1.Keypair.fromSecretKey(buffer_1.Buffer.from(JSON.parse(require("fs").readFileSync(process2.env.ANCHOR_WALLET, { + encoding: "utf-8" + })))); + return new _NodeWallet(payer); + } + async signTransaction(tx) { + if ((0, common_js_1.isVersionedTransaction)(tx)) { + tx.sign([this.payer]); + } else { + tx.partialSign(this.payer); + } + return tx; + } + async signAllTransactions(txs) { + return txs.map((t) => { + if ((0, common_js_1.isVersionedTransaction)(t)) { + t.sign([this.payer]); + } else { + t.partialSign(this.payer); + } + return t; + }); + } + get publicKey() { + return this.payer.publicKey; + } + }; + exports2.default = NodeWallet; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.js +var require_hex2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decode = exports2.encode = void 0; + var buffer_1 = require("buffer"); + function encode(data) { + return data.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), "0x"); + } + exports2.encode = encode; + function decode(data) { + if (data.indexOf("0x") === 0) { + data = data.substr(2); + } + if (data.length % 2 === 1) { + data = "0" + data; + } + let key = data.match(/.{2}/g); + if (key === null) { + return buffer_1.Buffer.from([]); + } + return buffer_1.Buffer.from(key.map((byte) => parseInt(byte, 16))); + } + exports2.decode = decode; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.js +var require_utf82 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.encode = exports2.decode = void 0; + var common_1 = require_common7(); + function decode(array11) { + const decoder = common_1.isBrowser ? new TextDecoder("utf-8") : new (require("util")).TextDecoder("utf-8"); + return decoder.decode(array11); + } + exports2.decode = decode; + function encode(input) { + const encoder = common_1.isBrowser ? new TextEncoder() : new (require("util")).TextEncoder("utf-8"); + return encoder.encode(input); + } + exports2.encode = encode; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/bs58/node_modules/base-x/src/index.js +var require_src6 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/bs58/node_modules/base-x/src/index.js"(exports2, module2) { + "use strict"; + var _Buffer = require_safe_buffer().Buffer; + function base(ALPHABET) { + if (ALPHABET.length >= 255) { + throw new TypeError("Alphabet too long"); + } + var BASE_MAP = new Uint8Array(256); + for (var j = 0; j < BASE_MAP.length; j++) { + BASE_MAP[j] = 255; + } + for (var i = 0; i < ALPHABET.length; i++) { + var x = ALPHABET.charAt(i); + var xc = x.charCodeAt(0); + if (BASE_MAP[xc] !== 255) { + throw new TypeError(x + " is ambiguous"); + } + BASE_MAP[xc] = i; + } + var BASE2 = ALPHABET.length; + var LEADER = ALPHABET.charAt(0); + var FACTOR = Math.log(BASE2) / Math.log(256); + var iFACTOR = Math.log(256) / Math.log(BASE2); + function encode(source) { + if (Array.isArray(source) || source instanceof Uint8Array) { + source = _Buffer.from(source); + } + if (!_Buffer.isBuffer(source)) { + throw new TypeError("Expected Buffer"); + } + if (source.length === 0) { + return ""; + } + var zeroes = 0; + var length = 0; + var pbegin = 0; + var pend = source.length; + while (pbegin !== pend && source[pbegin] === 0) { + pbegin++; + zeroes++; + } + var size = (pend - pbegin) * iFACTOR + 1 >>> 0; + var b58 = new Uint8Array(size); + while (pbegin !== pend) { + var carry = source[pbegin]; + var i2 = 0; + for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) { + carry += 256 * b58[it1] >>> 0; + b58[it1] = carry % BASE2 >>> 0; + carry = carry / BASE2 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + pbegin++; + } + var it2 = size - length; + while (it2 !== size && b58[it2] === 0) { + it2++; + } + var str = LEADER.repeat(zeroes); + for (; it2 < size; ++it2) { + str += ALPHABET.charAt(b58[it2]); + } + return str; + } + function decodeUnsafe(source) { + if (typeof source !== "string") { + throw new TypeError("Expected String"); + } + if (source.length === 0) { + return _Buffer.alloc(0); + } + var psz = 0; + var zeroes = 0; + var length = 0; + while (source[psz] === LEADER) { + zeroes++; + psz++; + } + var size = (source.length - psz) * FACTOR + 1 >>> 0; + var b256 = new Uint8Array(size); + while (psz < source.length) { + var charCode = source.charCodeAt(psz); + if (charCode > 255) { + return; + } + var carry = BASE_MAP[charCode]; + if (carry === 255) { + return; + } + var i2 = 0; + for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) { + carry += BASE2 * b256[it3] >>> 0; + b256[it3] = carry % 256 >>> 0; + carry = carry / 256 >>> 0; + } + if (carry !== 0) { + throw new Error("Non-zero carry"); + } + length = i2; + psz++; + } + var it4 = size - length; + while (it4 !== size && b256[it4] === 0) { + it4++; + } + var vch = _Buffer.allocUnsafe(zeroes + (size - it4)); + vch.fill(0, 0, zeroes); + var j2 = zeroes; + while (it4 !== size) { + vch[j2++] = b256[it4++]; + } + return vch; + } + function decode(string) { + var buffer = decodeUnsafe(string); + if (buffer) { + return buffer; + } + throw new Error("Non-base" + BASE2 + " character"); + } + return { + encode, + decodeUnsafe, + decode + }; + } + module2.exports = base; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/bs58/index.js +var require_bs586 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/bs58/index.js"(exports2, module2) { + var basex = require_src6(); + var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; + module2.exports = basex(ALPHABET); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.js +var require_bs587 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decode = exports2.encode = void 0; + var bs58_1 = __importDefault2(require_bs586()); + function encode(data) { + return bs58_1.default.encode(data); + } + exports2.encode = encode; + function decode(data) { + return bs58_1.default.decode(data); + } + exports2.decode = decode; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.js +var require_base642 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decode = exports2.encode = void 0; + var buffer_1 = require("buffer"); + var base64 = __importStar2(require_base64_js()); + function encode(data) { + return base64.fromByteArray(data); + } + exports2.encode = encode; + function decode(data) { + return buffer_1.Buffer.from(base64.toByteArray(data)); + } + exports2.decode = decode; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.js +var require_bytes2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.base64 = exports2.bs58 = exports2.utf8 = exports2.hex = void 0; + exports2.hex = __importStar2(require_hex2()); + exports2.utf8 = __importStar2(require_utf82()); + exports2.bs58 = __importStar2(require_bs587()); + exports2.base64 = __importStar2(require_base642()); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/common.js +var require_common8 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.translateAddress = exports2.validateAccounts = exports2.toInstruction = exports2.parseIdlErrors = void 0; + var web3_js_1 = require_index_cjs(); + function parseIdlErrors(idl) { + const errors = /* @__PURE__ */ new Map(); + if (idl.errors) { + idl.errors.forEach((e) => { + var _a; + let msg = (_a = e.msg) !== null && _a !== void 0 ? _a : e.name; + errors.set(e.code, msg); + }); + } + return errors; + } + exports2.parseIdlErrors = parseIdlErrors; + function toInstruction(idlIx, ...args) { + if (idlIx.args.length != args.length) { + throw new Error("Invalid argument length"); + } + const ix = {}; + let idx = 0; + idlIx.args.forEach((ixArg) => { + ix[ixArg.name] = args[idx]; + idx += 1; + }); + return ix; + } + exports2.toInstruction = toInstruction; + function validateAccounts(ixAccounts, accounts = {}) { + ixAccounts.forEach((acc) => { + if ("accounts" in acc) { + validateAccounts(acc.accounts, accounts[acc.name]); + } else { + if (accounts[acc.name] === void 0) { + throw new Error(`Invalid arguments: ${acc.name} not provided.`); + } + } + }); + } + exports2.validateAccounts = validateAccounts; + function translateAddress(address) { + return address instanceof web3_js_1.PublicKey ? address : new web3_js_1.PublicKey(address); + } + exports2.translateAddress = translateAddress; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/superstruct/lib/index.cjs +var require_lib6 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/superstruct/lib/index.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var StructError = class extends TypeError { + constructor(failure, failures) { + let cached; + const { + message, + ...rest + } = failure; + const { + path + } = failure; + const msg = path.length === 0 ? message : "At path: " + path.join(".") + " -- " + message; + super(msg); + this.value = void 0; + this.key = void 0; + this.type = void 0; + this.refinement = void 0; + this.path = void 0; + this.branch = void 0; + this.failures = void 0; + Object.assign(this, rest); + this.name = this.constructor.name; + this.failures = () => { + var _cached; + return (_cached = cached) != null ? _cached : cached = [failure, ...failures()]; + }; + } + }; + function isIterable(x) { + return isObject(x) && typeof x[Symbol.iterator] === "function"; + } + function isObject(x) { + return typeof x === "object" && x != null; + } + function isPlainObject(x) { + if (Object.prototype.toString.call(x) !== "[object Object]") { + return false; + } + const prototype = Object.getPrototypeOf(x); + return prototype === null || prototype === Object.prototype; + } + function print(value) { + return typeof value === "string" ? JSON.stringify(value) : "" + value; + } + function shiftIterator(input) { + const { + done, + value + } = input.next(); + return done ? void 0 : value; + } + function toFailure(result, context, struct3, value) { + if (result === true) { + return; + } else if (result === false) { + result = {}; + } else if (typeof result === "string") { + result = { + message: result + }; + } + const { + path, + branch + } = context; + const { + type: type2 + } = struct3; + const { + refinement, + message = "Expected a value of type `" + type2 + "`" + (refinement ? " with refinement `" + refinement + "`" : "") + ", but received: `" + print(value) + "`" + } = result; + return { + value, + type: type2, + refinement, + key: path[path.length - 1], + path, + branch, + ...result, + message + }; + } + function* toFailures(result, context, struct3, value) { + if (!isIterable(result)) { + result = [result]; + } + for (const r of result) { + const failure = toFailure(r, context, struct3, value); + if (failure) { + yield failure; + } + } + } + function* run(value, struct3, options) { + if (options === void 0) { + options = {}; + } + const { + path = [], + branch = [value], + coerce: coerce2 = false, + mask: mask2 = false + } = options; + const ctx = { + path, + branch + }; + if (coerce2) { + value = struct3.coercer(value, ctx); + if (mask2 && struct3.type !== "type" && isObject(struct3.schema) && isObject(value) && !Array.isArray(value)) { + for (const key in value) { + if (struct3.schema[key] === void 0) { + delete value[key]; + } + } + } + } + let valid = true; + for (const failure of struct3.validator(value, ctx)) { + valid = false; + yield [failure, void 0]; + } + for (let [k, v, s] of struct3.entries(value, ctx)) { + const ts = run(v, s, { + path: k === void 0 ? path : [...path, k], + branch: k === void 0 ? branch : [...branch, v], + coerce: coerce2, + mask: mask2 + }); + for (const t of ts) { + if (t[0]) { + valid = false; + yield [t[0], void 0]; + } else if (coerce2) { + v = t[1]; + if (k === void 0) { + value = v; + } else if (value instanceof Map) { + value.set(k, v); + } else if (value instanceof Set) { + value.add(v); + } else if (isObject(value)) { + value[k] = v; + } + } + } + } + if (valid) { + for (const failure of struct3.refiner(value, ctx)) { + valid = false; + yield [failure, void 0]; + } + } + if (valid) { + yield [void 0, value]; + } + } + var Struct = class { + constructor(props) { + this.TYPE = void 0; + this.type = void 0; + this.schema = void 0; + this.coercer = void 0; + this.validator = void 0; + this.refiner = void 0; + this.entries = void 0; + const { + type: type2, + schema, + validator, + refiner, + coercer = (value) => value, + entries = function* () { + } + } = props; + this.type = type2; + this.schema = schema; + this.entries = entries; + this.coercer = coercer; + if (validator) { + this.validator = (value, context) => { + const result = validator(value, context); + return toFailures(result, context, this, value); + }; + } else { + this.validator = () => []; + } + if (refiner) { + this.refiner = (value, context) => { + const result = refiner(value, context); + return toFailures(result, context, this, value); + }; + } else { + this.refiner = () => []; + } + } + /** + * Assert that a value passes the struct's validation, throwing if it doesn't. + */ + assert(value) { + return assert2(value, this); + } + /** + * Create a value with the struct's coercion logic, then validate it. + */ + create(value) { + return create(value, this); + } + /** + * Check if a value passes the struct's validation. + */ + is(value) { + return is(value, this); + } + /** + * Mask a value, coercing and validating it, but returning only the subset of + * properties defined by the struct's schema. + */ + mask(value) { + return mask(value, this); + } + /** + * Validate a value with the struct's validation logic, returning a tuple + * representing the result. + * + * You may optionally pass `true` for the `withCoercion` argument to coerce + * the value before attempting to validate it. If you do, the result will + * contain the coerced result when successful. + */ + validate(value, options) { + if (options === void 0) { + options = {}; + } + return validate2(value, this, options); + } + }; + function assert2(value, struct3) { + const result = validate2(value, struct3); + if (result[0]) { + throw result[0]; + } + } + function create(value, struct3) { + const result = validate2(value, struct3, { + coerce: true + }); + if (result[0]) { + throw result[0]; + } else { + return result[1]; + } + } + function mask(value, struct3) { + const result = validate2(value, struct3, { + coerce: true, + mask: true + }); + if (result[0]) { + throw result[0]; + } else { + return result[1]; + } + } + function is(value, struct3) { + const result = validate2(value, struct3); + return !result[0]; + } + function validate2(value, struct3, options) { + if (options === void 0) { + options = {}; + } + const tuples = run(value, struct3, options); + const tuple2 = shiftIterator(tuples); + if (tuple2[0]) { + const error = new StructError(tuple2[0], function* () { + for (const t of tuples) { + if (t[0]) { + yield t[0]; + } + } + }); + return [error, void 0]; + } else { + const v = tuple2[1]; + return [void 0, v]; + } + } + function assign() { + for (var _len = arguments.length, Structs = new Array(_len), _key = 0; _key < _len; _key++) { + Structs[_key] = arguments[_key]; + } + const isType = Structs[0].type === "type"; + const schemas = Structs.map((s) => s.schema); + const schema = Object.assign({}, ...schemas); + return isType ? type(schema) : object(schema); + } + function define2(name, validator) { + return new Struct({ + type: name, + schema: null, + validator + }); + } + function deprecated(struct3, log) { + return new Struct({ + ...struct3, + refiner: (value, ctx) => value === void 0 || struct3.refiner(value, ctx), + validator(value, ctx) { + if (value === void 0) { + return true; + } else { + log(value, ctx); + return struct3.validator(value, ctx); + } + } + }); + } + function dynamic(fn) { + return new Struct({ + type: "dynamic", + schema: null, + *entries(value, ctx) { + const struct3 = fn(value, ctx); + yield* struct3.entries(value, ctx); + }, + validator(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.validator(value, ctx); + }, + coercer(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.coercer(value, ctx); + }, + refiner(value, ctx) { + const struct3 = fn(value, ctx); + return struct3.refiner(value, ctx); + } + }); + } + function lazy(fn) { + let struct3; + return new Struct({ + type: "lazy", + schema: null, + *entries(value, ctx) { + var _struct; + (_struct = struct3) != null ? _struct : struct3 = fn(); + yield* struct3.entries(value, ctx); + }, + validator(value, ctx) { + var _struct2; + (_struct2 = struct3) != null ? _struct2 : struct3 = fn(); + return struct3.validator(value, ctx); + }, + coercer(value, ctx) { + var _struct3; + (_struct3 = struct3) != null ? _struct3 : struct3 = fn(); + return struct3.coercer(value, ctx); + }, + refiner(value, ctx) { + var _struct4; + (_struct4 = struct3) != null ? _struct4 : struct3 = fn(); + return struct3.refiner(value, ctx); + } + }); + } + function omit(struct3, keys) { + const { + schema + } = struct3; + const subschema = { + ...schema + }; + for (const key of keys) { + delete subschema[key]; + } + switch (struct3.type) { + case "type": + return type(subschema); + default: + return object(subschema); + } + } + function partial(struct3) { + const schema = struct3 instanceof Struct ? { + ...struct3.schema + } : { + ...struct3 + }; + for (const key in schema) { + schema[key] = optional(schema[key]); + } + return object(schema); + } + function pick(struct3, keys) { + const { + schema + } = struct3; + const subschema = {}; + for (const key of keys) { + subschema[key] = schema[key]; + } + return object(subschema); + } + function struct2(name, validator) { + console.warn("superstruct@0.11 - The `struct` helper has been renamed to `define`."); + return define2(name, validator); + } + function any() { + return define2("any", () => true); + } + function array11(Element) { + return new Struct({ + type: "array", + schema: Element, + *entries(value) { + if (Element && Array.isArray(value)) { + for (const [i, v] of value.entries()) { + yield [i, v, Element]; + } + } + }, + coercer(value) { + return Array.isArray(value) ? value.slice() : value; + }, + validator(value) { + return Array.isArray(value) || "Expected an array value, but received: " + print(value); + } + }); + } + function bigint() { + return define2("bigint", (value) => { + return typeof value === "bigint"; + }); + } + function boolean() { + return define2("boolean", (value) => { + return typeof value === "boolean"; + }); + } + function date() { + return define2("date", (value) => { + return value instanceof Date && !isNaN(value.getTime()) || "Expected a valid `Date` object, but received: " + print(value); + }); + } + function enums(values) { + const schema = {}; + const description = values.map((v) => print(v)).join(); + for (const key of values) { + schema[key] = key; + } + return new Struct({ + type: "enums", + schema, + validator(value) { + return values.includes(value) || "Expected one of `" + description + "`, but received: " + print(value); + } + }); + } + function func() { + return define2("func", (value) => { + return typeof value === "function" || "Expected a function, but received: " + print(value); + }); + } + function instance(Class) { + return define2("instance", (value) => { + return value instanceof Class || "Expected a `" + Class.name + "` instance, but received: " + print(value); + }); + } + function integer() { + return define2("integer", (value) => { + return typeof value === "number" && !isNaN(value) && Number.isInteger(value) || "Expected an integer, but received: " + print(value); + }); + } + function intersection(Structs) { + return new Struct({ + type: "intersection", + schema: null, + *entries(value, ctx) { + for (const S of Structs) { + yield* S.entries(value, ctx); + } + }, + *validator(value, ctx) { + for (const S of Structs) { + yield* S.validator(value, ctx); + } + }, + *refiner(value, ctx) { + for (const S of Structs) { + yield* S.refiner(value, ctx); + } + } + }); + } + function literal(constant) { + const description = print(constant); + const t = typeof constant; + return new Struct({ + type: "literal", + schema: t === "string" || t === "number" || t === "boolean" ? constant : null, + validator(value) { + return value === constant || "Expected the literal `" + description + "`, but received: " + print(value); + } + }); + } + function map(Key, Value) { + return new Struct({ + type: "map", + schema: null, + *entries(value) { + if (Key && Value && value instanceof Map) { + for (const [k, v] of value.entries()) { + yield [k, k, Key]; + yield [k, v, Value]; + } + } + }, + coercer(value) { + return value instanceof Map ? new Map(value) : value; + }, + validator(value) { + return value instanceof Map || "Expected a `Map` object, but received: " + print(value); + } + }); + } + function never() { + return define2("never", () => false); + } + function nullable(struct3) { + return new Struct({ + ...struct3, + validator: (value, ctx) => value === null || struct3.validator(value, ctx), + refiner: (value, ctx) => value === null || struct3.refiner(value, ctx) + }); + } + function number() { + return define2("number", (value) => { + return typeof value === "number" && !isNaN(value) || "Expected a number, but received: " + print(value); + }); + } + function object(schema) { + const knowns = schema ? Object.keys(schema) : []; + const Never = never(); + return new Struct({ + type: "object", + schema: schema ? schema : null, + *entries(value) { + if (schema && isObject(value)) { + const unknowns = new Set(Object.keys(value)); + for (const key of knowns) { + unknowns.delete(key); + yield [key, value[key], schema[key]]; + } + for (const key of unknowns) { + yield [key, value[key], Never]; + } + } + }, + validator(value) { + return isObject(value) || "Expected an object, but received: " + print(value); + }, + coercer(value) { + return isObject(value) ? { + ...value + } : value; + } + }); + } + function optional(struct3) { + return new Struct({ + ...struct3, + validator: (value, ctx) => value === void 0 || struct3.validator(value, ctx), + refiner: (value, ctx) => value === void 0 || struct3.refiner(value, ctx) + }); + } + function record(Key, Value) { + return new Struct({ + type: "record", + schema: null, + *entries(value) { + if (isObject(value)) { + for (const k in value) { + const v = value[k]; + yield [k, k, Key]; + yield [k, v, Value]; + } + } + }, + validator(value) { + return isObject(value) || "Expected an object, but received: " + print(value); + } + }); + } + function regexp() { + return define2("regexp", (value) => { + return value instanceof RegExp; + }); + } + function set(Element) { + return new Struct({ + type: "set", + schema: null, + *entries(value) { + if (Element && value instanceof Set) { + for (const v of value) { + yield [v, v, Element]; + } + } + }, + coercer(value) { + return value instanceof Set ? new Set(value) : value; + }, + validator(value) { + return value instanceof Set || "Expected a `Set` object, but received: " + print(value); + } + }); + } + function string() { + return define2("string", (value) => { + return typeof value === "string" || "Expected a string, but received: " + print(value); + }); + } + function tuple(Structs) { + const Never = never(); + return new Struct({ + type: "tuple", + schema: null, + *entries(value) { + if (Array.isArray(value)) { + const length = Math.max(Structs.length, value.length); + for (let i = 0; i < length; i++) { + yield [i, value[i], Structs[i] || Never]; + } + } + }, + validator(value) { + return Array.isArray(value) || "Expected an array, but received: " + print(value); + } + }); + } + function type(schema) { + const keys = Object.keys(schema); + return new Struct({ + type: "type", + schema, + *entries(value) { + if (isObject(value)) { + for (const k of keys) { + yield [k, value[k], schema[k]]; + } + } + }, + validator(value) { + return isObject(value) || "Expected an object, but received: " + print(value); + } + }); + } + function union(Structs) { + const description = Structs.map((s) => s.type).join(" | "); + return new Struct({ + type: "union", + schema: null, + coercer(value, ctx) { + const firstMatch = Structs.find((s) => { + const [e] = s.validate(value, { + coerce: true + }); + return !e; + }) || unknown(); + return firstMatch.coercer(value, ctx); + }, + validator(value, ctx) { + const failures = []; + for (const S of Structs) { + const [...tuples] = run(value, S, ctx); + const [first] = tuples; + if (!first[0]) { + return []; + } else { + for (const [failure] of tuples) { + if (failure) { + failures.push(failure); + } + } + } + } + return ["Expected the value to satisfy a union of `" + description + "`, but received: " + print(value), ...failures]; + } + }); + } + function unknown() { + return define2("unknown", () => true); + } + function coerce(struct3, condition, coercer) { + return new Struct({ + ...struct3, + coercer: (value, ctx) => { + return is(value, condition) ? struct3.coercer(coercer(value, ctx), ctx) : struct3.coercer(value, ctx); + } + }); + } + function defaulted(struct3, fallback, options) { + if (options === void 0) { + options = {}; + } + return coerce(struct3, unknown(), (x) => { + const f = typeof fallback === "function" ? fallback() : fallback; + if (x === void 0) { + return f; + } + if (!options.strict && isPlainObject(x) && isPlainObject(f)) { + const ret = { + ...x + }; + let changed = false; + for (const key in f) { + if (ret[key] === void 0) { + ret[key] = f[key]; + changed = true; + } + } + if (changed) { + return ret; + } + } + return x; + }); + } + function trimmed(struct3) { + return coerce(struct3, string(), (x) => x.trim()); + } + function empty(struct3) { + return refine(struct3, "empty", (value) => { + const size2 = getSize(value); + return size2 === 0 || "Expected an empty " + struct3.type + " but received one with a size of `" + size2 + "`"; + }); + } + function getSize(value) { + if (value instanceof Map || value instanceof Set) { + return value.size; + } else { + return value.length; + } + } + function max(struct3, threshold, options) { + if (options === void 0) { + options = {}; + } + const { + exclusive + } = options; + return refine(struct3, "max", (value) => { + return exclusive ? value < threshold : value <= threshold || "Expected a " + struct3.type + " less than " + (exclusive ? "" : "or equal to ") + threshold + " but received `" + value + "`"; + }); + } + function min(struct3, threshold, options) { + if (options === void 0) { + options = {}; + } + const { + exclusive + } = options; + return refine(struct3, "min", (value) => { + return exclusive ? value > threshold : value >= threshold || "Expected a " + struct3.type + " greater than " + (exclusive ? "" : "or equal to ") + threshold + " but received `" + value + "`"; + }); + } + function nonempty(struct3) { + return refine(struct3, "nonempty", (value) => { + const size2 = getSize(value); + return size2 > 0 || "Expected a nonempty " + struct3.type + " but received an empty one"; + }); + } + function pattern(struct3, regexp2) { + return refine(struct3, "pattern", (value) => { + return regexp2.test(value) || "Expected a " + struct3.type + " matching `/" + regexp2.source + '/` but received "' + value + '"'; + }); + } + function size(struct3, min2, max2) { + if (max2 === void 0) { + max2 = min2; + } + const expected = "Expected a " + struct3.type; + const of = min2 === max2 ? "of `" + min2 + "`" : "between `" + min2 + "` and `" + max2 + "`"; + return refine(struct3, "size", (value) => { + if (typeof value === "number" || value instanceof Date) { + return min2 <= value && value <= max2 || expected + " " + of + " but received `" + value + "`"; + } else if (value instanceof Map || value instanceof Set) { + const { + size: size2 + } = value; + return min2 <= size2 && size2 <= max2 || expected + " with a size " + of + " but received one with a size of `" + size2 + "`"; + } else { + const { + length + } = value; + return min2 <= length && length <= max2 || expected + " with a length " + of + " but received one with a length of `" + length + "`"; + } + }); + } + function refine(struct3, name, refiner) { + return new Struct({ + ...struct3, + *refiner(value, ctx) { + yield* struct3.refiner(value, ctx); + const result = refiner(value, ctx); + const failures = toFailures(result, ctx, struct3, value); + for (const failure of failures) { + yield { + ...failure, + refinement: name + }; + } + } + }); + } + exports2.Struct = Struct; + exports2.StructError = StructError; + exports2.any = any; + exports2.array = array11; + exports2.assert = assert2; + exports2.assign = assign; + exports2.bigint = bigint; + exports2.boolean = boolean; + exports2.coerce = coerce; + exports2.create = create; + exports2.date = date; + exports2.defaulted = defaulted; + exports2.define = define2; + exports2.deprecated = deprecated; + exports2.dynamic = dynamic; + exports2.empty = empty; + exports2.enums = enums; + exports2.func = func; + exports2.instance = instance; + exports2.integer = integer; + exports2.intersection = intersection; + exports2.is = is; + exports2.lazy = lazy; + exports2.literal = literal; + exports2.map = map; + exports2.mask = mask; + exports2.max = max; + exports2.min = min; + exports2.never = never; + exports2.nonempty = nonempty; + exports2.nullable = nullable; + exports2.number = number; + exports2.object = object; + exports2.omit = omit; + exports2.optional = optional; + exports2.partial = partial; + exports2.pattern = pattern; + exports2.pick = pick; + exports2.record = record; + exports2.refine = refine; + exports2.regexp = regexp; + exports2.set = set; + exports2.size = size; + exports2.string = string; + exports2.struct = struct2; + exports2.trimmed = trimmed; + exports2.tuple = tuple; + exports2.type = type; + exports2.union = union; + exports2.unknown = unknown; + exports2.validate = validate2; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.js +var require_rpc3 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.simulateTransaction = exports2.getMultipleAccountsAndContext = exports2.getMultipleAccounts = exports2.invoke = void 0; + var web3_js_1 = require_index_cjs(); + var common_js_1 = require_common7(); + var common_js_2 = require_common8(); + var provider_js_1 = require_provider2(); + var superstruct_1 = require_lib6(); + async function invoke(programId, accounts, data, provider) { + programId = (0, common_js_2.translateAddress)(programId); + if (!provider) { + provider = (0, provider_js_1.getProvider)(); + } + const tx = new web3_js_1.Transaction(); + tx.add(new web3_js_1.TransactionInstruction({ + programId, + keys: accounts !== null && accounts !== void 0 ? accounts : [], + data + })); + if (provider.sendAndConfirm === void 0) { + throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented."); + } + return await provider.sendAndConfirm(tx, []); + } + exports2.invoke = invoke; + var GET_MULTIPLE_ACCOUNTS_LIMIT = 99; + async function getMultipleAccounts(connection, publicKeys, commitment) { + const results = await getMultipleAccountsAndContext(connection, publicKeys, commitment); + return results.map((result) => { + return result ? { publicKey: result.publicKey, account: result.account } : null; + }); + } + exports2.getMultipleAccounts = getMultipleAccounts; + async function getMultipleAccountsAndContext(connection, publicKeys, commitment) { + if (publicKeys.length <= GET_MULTIPLE_ACCOUNTS_LIMIT) { + return await getMultipleAccountsAndContextCore(connection, publicKeys, commitment); + } else { + const batches = (0, common_js_1.chunks)(publicKeys, GET_MULTIPLE_ACCOUNTS_LIMIT); + const results = await Promise.all(batches.map((batch) => getMultipleAccountsAndContextCore(connection, batch, commitment))); + return results.flat(); + } + } + exports2.getMultipleAccountsAndContext = getMultipleAccountsAndContext; + async function getMultipleAccountsAndContextCore(connection, publicKeys, commitmentOverride) { + const commitment = commitmentOverride !== null && commitmentOverride !== void 0 ? commitmentOverride : connection.commitment; + const { value: accountInfos, context } = await connection.getMultipleAccountsInfoAndContext(publicKeys, commitment); + const accounts = accountInfos.map((account, idx) => { + if (account === null) { + return null; + } + return { + publicKey: publicKeys[idx], + account, + context + }; + }); + return accounts; + } + async function simulateTransaction(connection, transaction, signers, commitment, includeAccounts) { + if (signers && signers.length > 0) { + transaction.sign(...signers); + } + const message = transaction._compile(); + const signData = message.serialize(); + const wireTransaction = transaction._serialize(signData); + const encodedTransaction = wireTransaction.toString("base64"); + const config = { + encoding: "base64", + commitment: commitment !== null && commitment !== void 0 ? commitment : connection.commitment + }; + if (includeAccounts) { + const addresses = (Array.isArray(includeAccounts) ? includeAccounts : message.nonProgramIds()).map((key) => key.toBase58()); + config["accounts"] = { + encoding: "base64", + addresses + }; + } + if (signers) { + config.sigVerify = true; + } + const args = [encodedTransaction, config]; + const unsafeRes = await connection._rpcRequest("simulateTransaction", args); + const res = (0, superstruct_1.create)(unsafeRes, SimulatedTransactionResponseStruct); + if ("error" in res) { + let logs; + if ("data" in res.error) { + logs = res.error.data.logs; + if (logs && Array.isArray(logs)) { + const traceIndent = "\n "; + const logTrace = traceIndent + logs.join(traceIndent); + console.error(res.error.message, logTrace); + } + } + throw new web3_js_1.SendTransactionError("failed to simulate transaction: " + res.error.message, logs); + } + return res.result; + } + exports2.simulateTransaction = simulateTransaction; + function jsonRpcResult(schema) { + return (0, superstruct_1.coerce)(createRpcResult(schema), UnknownRpcResult, (value) => { + if ("error" in value) { + return value; + } else { + return { + ...value, + result: (0, superstruct_1.create)(value.result, schema) + }; + } + }); + } + var UnknownRpcResult = createRpcResult((0, superstruct_1.unknown)()); + function createRpcResult(result) { + return (0, superstruct_1.union)([ + (0, superstruct_1.type)({ + jsonrpc: (0, superstruct_1.literal)("2.0"), + id: (0, superstruct_1.string)(), + result + }), + (0, superstruct_1.type)({ + jsonrpc: (0, superstruct_1.literal)("2.0"), + id: (0, superstruct_1.string)(), + error: (0, superstruct_1.type)({ + code: (0, superstruct_1.unknown)(), + message: (0, superstruct_1.string)(), + data: (0, superstruct_1.optional)((0, superstruct_1.any)()) + }) + }) + ]); + } + function jsonRpcResultAndContext(value) { + return jsonRpcResult((0, superstruct_1.type)({ + context: (0, superstruct_1.type)({ + slot: (0, superstruct_1.number)() + }), + value + })); + } + var SimulatedTransactionResponseStruct = jsonRpcResultAndContext((0, superstruct_1.type)({ + err: (0, superstruct_1.nullable)((0, superstruct_1.union)([(0, superstruct_1.type)({}), (0, superstruct_1.string)()])), + logs: (0, superstruct_1.nullable)((0, superstruct_1.array)((0, superstruct_1.string)())), + accounts: (0, superstruct_1.optional)((0, superstruct_1.nullable)((0, superstruct_1.array)((0, superstruct_1.nullable)((0, superstruct_1.type)({ + executable: (0, superstruct_1.boolean)(), + owner: (0, superstruct_1.string)(), + lamports: (0, superstruct_1.number)(), + data: (0, superstruct_1.array)((0, superstruct_1.string)()), + rentEpoch: (0, superstruct_1.optional)((0, superstruct_1.number)()) + }))))), + unitsConsumed: (0, superstruct_1.optional)((0, superstruct_1.number)()) + })); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/provider.js +var require_provider2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/provider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getProvider = exports2.setProvider = exports2.AnchorProvider = void 0; + var web3_js_1 = require_index_cjs(); + var index_js_1 = require_bytes2(); + var common_js_1 = require_common7(); + var rpc_js_1 = require_rpc3(); + var AnchorProvider = class _AnchorProvider { + /** + * @param connection The cluster connection where the program is deployed. + * @param wallet The wallet used to pay for and sign all transactions. + * @param opts Transaction confirmation options to use by default. + */ + constructor(connection, wallet, opts) { + this.connection = connection; + this.wallet = wallet; + this.opts = opts; + this.publicKey = wallet === null || wallet === void 0 ? void 0 : wallet.publicKey; + } + static defaultOptions() { + return { + preflightCommitment: "processed", + commitment: "processed" + }; + } + /** + * Returns a `Provider` with a wallet read from the local filesystem. + * + * @param url The network cluster url. + * @param opts The default transaction confirmation options. + * + * (This api is for Node only.) + */ + static local(url, opts) { + if (common_js_1.isBrowser) { + throw new Error(`Provider local is not available on browser.`); + } + opts = opts !== null && opts !== void 0 ? opts : _AnchorProvider.defaultOptions(); + const connection = new web3_js_1.Connection(url !== null && url !== void 0 ? url : "http://localhost:8899", opts.preflightCommitment); + const NodeWallet = require_nodewallet2().default; + const wallet = NodeWallet.local(); + return new _AnchorProvider(connection, wallet, opts); + } + /** + * Returns a `Provider` read from the `ANCHOR_PROVIDER_URL` environment + * variable + * + * (This api is for Node only.) + */ + static env() { + if (common_js_1.isBrowser) { + throw new Error(`Provider env is not available on browser.`); + } + const process2 = require("process"); + const url = process2.env.ANCHOR_PROVIDER_URL; + if (url === void 0) { + throw new Error("ANCHOR_PROVIDER_URL is not defined"); + } + const options = _AnchorProvider.defaultOptions(); + const connection = new web3_js_1.Connection(url, options.commitment); + const NodeWallet = require_nodewallet2().default; + const wallet = NodeWallet.local(); + return new _AnchorProvider(connection, wallet, options); + } + /** + * Sends the given transaction, paid for and signed by the provider's wallet. + * + * @param tx The transaction to send. + * @param signers The signers of the transaction. + * @param opts Transaction confirmation options. + */ + async sendAndConfirm(tx, signers, opts) { + var _a, _b, _c, _d; + if (opts === void 0) { + opts = this.opts; + } + if ((0, common_js_1.isVersionedTransaction)(tx)) { + if (signers) { + tx.sign(signers); + } + } else { + tx.feePayer = (_a = tx.feePayer) !== null && _a !== void 0 ? _a : this.wallet.publicKey; + tx.recentBlockhash = (await this.connection.getLatestBlockhash(opts.preflightCommitment)).blockhash; + if (signers) { + for (const signer of signers) { + tx.partialSign(signer); + } + } + } + tx = await this.wallet.signTransaction(tx); + const rawTx = tx.serialize(); + try { + return await sendAndConfirmRawTransaction(this.connection, rawTx, opts); + } catch (err) { + if (err instanceof ConfirmError) { + const txSig = index_js_1.bs58.encode((0, common_js_1.isVersionedTransaction)(tx) ? ((_b = tx.signatures) === null || _b === void 0 ? void 0 : _b[0]) || new Uint8Array() : (_c = tx.signature) !== null && _c !== void 0 ? _c : new Uint8Array()); + const failedTx = await this.connection.getTransaction(txSig, { + commitment: "confirmed" + }); + if (!failedTx) { + throw err; + } else { + const logs = (_d = failedTx.meta) === null || _d === void 0 ? void 0 : _d.logMessages; + throw !logs ? err : new web3_js_1.SendTransactionError(err.message, logs); + } + } else { + throw err; + } + } + } + /** + * Similar to `send`, but for an array of transactions and signers. + * All transactions need to be of the same type, it doesn't support a mix of `VersionedTransaction`s and `Transaction`s. + * + * @param txWithSigners Array of transactions and signers. + * @param opts Transaction confirmation options. + */ + async sendAll(txWithSigners, opts) { + var _a, _b, _c; + if (opts === void 0) { + opts = this.opts; + } + const recentBlockhash = (await this.connection.getLatestBlockhash(opts.preflightCommitment)).blockhash; + let txs = txWithSigners.map((r) => { + var _a2, _b2; + if ((0, common_js_1.isVersionedTransaction)(r.tx)) { + let tx = r.tx; + if (r.signers) { + tx.sign(r.signers); + } + return tx; + } else { + let tx = r.tx; + let signers = (_a2 = r.signers) !== null && _a2 !== void 0 ? _a2 : []; + tx.feePayer = (_b2 = tx.feePayer) !== null && _b2 !== void 0 ? _b2 : this.wallet.publicKey; + tx.recentBlockhash = recentBlockhash; + signers.forEach((kp) => { + tx.partialSign(kp); + }); + return tx; + } + }); + const signedTxs = await this.wallet.signAllTransactions(txs); + const sigs = []; + for (let k = 0; k < txs.length; k += 1) { + const tx = signedTxs[k]; + const rawTx = tx.serialize(); + try { + sigs.push(await sendAndConfirmRawTransaction(this.connection, rawTx, opts)); + } catch (err) { + if (err instanceof ConfirmError) { + const txSig = index_js_1.bs58.encode((0, common_js_1.isVersionedTransaction)(tx) ? ((_a = tx.signatures) === null || _a === void 0 ? void 0 : _a[0]) || new Uint8Array() : (_b = tx.signature) !== null && _b !== void 0 ? _b : new Uint8Array()); + const failedTx = await this.connection.getTransaction(txSig, { + commitment: "confirmed" + }); + if (!failedTx) { + throw err; + } else { + const logs = (_c = failedTx.meta) === null || _c === void 0 ? void 0 : _c.logMessages; + throw !logs ? err : new web3_js_1.SendTransactionError(err.message, logs); + } + } else { + throw err; + } + } + } + return sigs; + } + /** + * Simulates the given transaction, returning emitted logs from execution. + * + * @param tx The transaction to send. + * @param signers The signers of the transaction. If unset, the transaction + * will be simulated with the "sigVerify: false" option. This + * allows for simulation of transactions without asking the + * wallet for a signature. + * @param opts Transaction confirmation options. + */ + async simulate(tx, signers, commitment, includeAccounts) { + let recentBlockhash = (await this.connection.getLatestBlockhash(commitment !== null && commitment !== void 0 ? commitment : this.connection.commitment)).blockhash; + let result; + if ((0, common_js_1.isVersionedTransaction)(tx)) { + if (signers) { + tx.sign(signers); + tx = await this.wallet.signTransaction(tx); + } + result = await this.connection.simulateTransaction(tx, { commitment }); + } else { + tx.feePayer = tx.feePayer || this.wallet.publicKey; + tx.recentBlockhash = recentBlockhash; + if (signers) { + tx = await this.wallet.signTransaction(tx); + } + result = await (0, rpc_js_1.simulateTransaction)(this.connection, tx, signers, commitment, includeAccounts); + } + if (result.value.err) { + throw new SimulateError(result.value); + } + return result.value; + } + }; + exports2.AnchorProvider = AnchorProvider; + var SimulateError = class extends Error { + constructor(simulationResponse, message) { + super(message); + this.simulationResponse = simulationResponse; + } + }; + async function sendAndConfirmRawTransaction(connection, rawTransaction, options) { + const sendOptions = options && { + skipPreflight: options.skipPreflight, + preflightCommitment: options.preflightCommitment || options.commitment + }; + const signature = await connection.sendRawTransaction(rawTransaction, sendOptions); + const status = (await connection.confirmTransaction(signature, options && options.commitment)).value; + if (status.err) { + throw new ConfirmError(`Raw transaction ${signature} failed (${JSON.stringify(status)})`); + } + return signature; + } + var ConfirmError = class extends Error { + constructor(message) { + super(message); + } + }; + function setProvider(provider) { + _provider = provider; + } + exports2.setProvider = setProvider; + function getProvider() { + if (_provider === null) { + return AnchorProvider.local(); + } + return _provider; + } + exports2.getProvider = getProvider; + var _provider = null; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.js +var require_features2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isSet = exports2.set = void 0; + var _AVAILABLE_FEATURES = /* @__PURE__ */ new Set(["anchor-deprecated-state", "debug-logs"]); + var _FEATURES = /* @__PURE__ */ new Map(); + function set(key) { + if (!_AVAILABLE_FEATURES.has(key)) { + throw new Error("Invalid feature"); + } + _FEATURES.set(key, true); + } + exports2.set = set; + function isSet(key) { + return _FEATURES.get(key) !== void 0; + } + exports2.isSet = isSet; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/error.js +var require_error2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/error.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LangErrorMessage = exports2.LangErrorCode = exports2.translateError = exports2.ProgramError = exports2.AnchorError = exports2.ProgramErrorStack = exports2.IdlError = void 0; + var web3_js_1 = require_index_cjs(); + var features = __importStar2(require_features2()); + var IdlError = class extends Error { + constructor(message) { + super(message); + this.name = "IdlError"; + } + }; + exports2.IdlError = IdlError; + var ProgramErrorStack = class _ProgramErrorStack { + constructor(stack) { + this.stack = stack; + } + static parse(logs) { + var _a; + const programKeyRegex = /^Program (\w*) invoke/; + const successRegex = /^Program \w* success/; + const programStack = []; + for (let i = 0; i < logs.length; i++) { + if (successRegex.exec(logs[i])) { + programStack.pop(); + continue; + } + const programKey = (_a = programKeyRegex.exec(logs[i])) === null || _a === void 0 ? void 0 : _a[1]; + if (!programKey) { + continue; + } + programStack.push(new web3_js_1.PublicKey(programKey)); + } + return new _ProgramErrorStack(programStack); + } + }; + exports2.ProgramErrorStack = ProgramErrorStack; + var AnchorError = class _AnchorError extends Error { + constructor(errorCode, errorMessage, errorLogs, logs, origin, comparedValues) { + super(errorLogs.join("\n").replace("Program log: ", "")); + this.errorLogs = errorLogs; + this.logs = logs; + this.error = { errorCode, errorMessage, comparedValues, origin }; + this._programErrorStack = ProgramErrorStack.parse(logs); + } + static parse(logs) { + if (!logs) { + return null; + } + const anchorErrorLogIndex = logs.findIndex((log) => log.startsWith("Program log: AnchorError")); + if (anchorErrorLogIndex === -1) { + return null; + } + const anchorErrorLog = logs[anchorErrorLogIndex]; + const errorLogs = [anchorErrorLog]; + let comparedValues; + if (anchorErrorLogIndex + 1 < logs.length) { + if (logs[anchorErrorLogIndex + 1] === "Program log: Left:") { + const pubkeyRegex = /^Program log: (.*)$/; + const leftPubkey = pubkeyRegex.exec(logs[anchorErrorLogIndex + 2])[1]; + const rightPubkey = pubkeyRegex.exec(logs[anchorErrorLogIndex + 4])[1]; + comparedValues = [ + new web3_js_1.PublicKey(leftPubkey), + new web3_js_1.PublicKey(rightPubkey) + ]; + errorLogs.push(...logs.slice(anchorErrorLogIndex + 1, anchorErrorLogIndex + 5)); + } else if (logs[anchorErrorLogIndex + 1].startsWith("Program log: Left:")) { + const valueRegex = /^Program log: (Left|Right): (.*)$/; + const leftValue = valueRegex.exec(logs[anchorErrorLogIndex + 1])[2]; + const rightValue = valueRegex.exec(logs[anchorErrorLogIndex + 2])[2]; + errorLogs.push(...logs.slice(anchorErrorLogIndex + 1, anchorErrorLogIndex + 3)); + comparedValues = [leftValue, rightValue]; + } + } + const regexNoInfo = /^Program log: AnchorError occurred\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./; + const noInfoAnchorErrorLog = regexNoInfo.exec(anchorErrorLog); + const regexFileLine = /^Program log: AnchorError thrown in (.*):(\d*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./; + const fileLineAnchorErrorLog = regexFileLine.exec(anchorErrorLog); + const regexAccountName = /^Program log: AnchorError caused by account: (.*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./; + const accountNameAnchorErrorLog = regexAccountName.exec(anchorErrorLog); + if (noInfoAnchorErrorLog) { + const [errorCodeString, errorNumber, errorMessage] = noInfoAnchorErrorLog.slice(1, 4); + const errorCode = { + code: errorCodeString, + number: parseInt(errorNumber) + }; + return new _AnchorError(errorCode, errorMessage, errorLogs, logs, void 0, comparedValues); + } else if (fileLineAnchorErrorLog) { + const [file, line, errorCodeString, errorNumber, errorMessage] = fileLineAnchorErrorLog.slice(1, 6); + const errorCode = { + code: errorCodeString, + number: parseInt(errorNumber) + }; + const fileLine = { file, line: parseInt(line) }; + return new _AnchorError(errorCode, errorMessage, errorLogs, logs, fileLine, comparedValues); + } else if (accountNameAnchorErrorLog) { + const [accountName, errorCodeString, errorNumber, errorMessage] = accountNameAnchorErrorLog.slice(1, 5); + const origin = accountName; + const errorCode = { + code: errorCodeString, + number: parseInt(errorNumber) + }; + return new _AnchorError(errorCode, errorMessage, errorLogs, logs, origin, comparedValues); + } else { + return null; + } + } + get program() { + return this._programErrorStack.stack[this._programErrorStack.stack.length - 1]; + } + get programErrorStack() { + return this._programErrorStack.stack; + } + toString() { + return this.message; + } + }; + exports2.AnchorError = AnchorError; + var ProgramError = class _ProgramError extends Error { + constructor(code, msg, logs) { + super(); + this.code = code; + this.msg = msg; + this.logs = logs; + if (logs) { + this._programErrorStack = ProgramErrorStack.parse(logs); + } + } + static parse(err, idlErrors) { + const errString = err.toString(); + let unparsedErrorCode; + if (errString.includes("custom program error:")) { + let components = errString.split("custom program error: "); + if (components.length !== 2) { + return null; + } else { + unparsedErrorCode = components[1]; + } + } else { + const matches = errString.match(/"Custom":([0-9]+)}/g); + if (!matches || matches.length > 1) { + return null; + } + unparsedErrorCode = matches[0].match(/([0-9]+)/g)[0]; + } + let errorCode; + try { + errorCode = parseInt(unparsedErrorCode); + } catch (parseErr) { + return null; + } + let errorMsg = idlErrors.get(errorCode); + if (errorMsg !== void 0) { + return new _ProgramError(errorCode, errorMsg, err.logs); + } + errorMsg = exports2.LangErrorMessage.get(errorCode); + if (errorMsg !== void 0) { + return new _ProgramError(errorCode, errorMsg, err.logs); + } + return null; + } + get program() { + var _a; + return (_a = this._programErrorStack) === null || _a === void 0 ? void 0 : _a.stack[this._programErrorStack.stack.length - 1]; + } + get programErrorStack() { + var _a; + return (_a = this._programErrorStack) === null || _a === void 0 ? void 0 : _a.stack; + } + toString() { + return this.msg; + } + }; + exports2.ProgramError = ProgramError; + function translateError(err, idlErrors) { + if (features.isSet("debug-logs")) { + console.log("Translating error:", err); + } + const anchorError = AnchorError.parse(err.logs); + if (anchorError) { + return anchorError; + } + const programError = ProgramError.parse(err, idlErrors); + if (programError) { + return programError; + } + if (err.logs) { + const handler = { + get: function(target, prop) { + if (prop === "programErrorStack") { + return target.programErrorStack.stack; + } else if (prop === "program") { + return target.programErrorStack.stack[err.programErrorStack.stack.length - 1]; + } else { + return Reflect.get(...arguments); + } + } + }; + err.programErrorStack = ProgramErrorStack.parse(err.logs); + return new Proxy(err, handler); + } + return err; + } + exports2.translateError = translateError; + exports2.LangErrorCode = { + // Instructions. + InstructionMissing: 100, + InstructionFallbackNotFound: 101, + InstructionDidNotDeserialize: 102, + InstructionDidNotSerialize: 103, + // IDL instructions. + IdlInstructionStub: 1e3, + IdlInstructionInvalidProgram: 1001, + // Constraints. + ConstraintMut: 2e3, + ConstraintHasOne: 2001, + ConstraintSigner: 2002, + ConstraintRaw: 2003, + ConstraintOwner: 2004, + ConstraintRentExempt: 2005, + ConstraintSeeds: 2006, + ConstraintExecutable: 2007, + ConstraintState: 2008, + ConstraintAssociated: 2009, + ConstraintAssociatedInit: 2010, + ConstraintClose: 2011, + ConstraintAddress: 2012, + ConstraintZero: 2013, + ConstraintTokenMint: 2014, + ConstraintTokenOwner: 2015, + ConstraintMintMintAuthority: 2016, + ConstraintMintFreezeAuthority: 2017, + ConstraintMintDecimals: 2018, + ConstraintSpace: 2019, + ConstraintAccountIsNone: 2020, + // Require. + RequireViolated: 2500, + RequireEqViolated: 2501, + RequireKeysEqViolated: 2502, + RequireNeqViolated: 2503, + RequireKeysNeqViolated: 2504, + RequireGtViolated: 2505, + RequireGteViolated: 2506, + // Accounts. + AccountDiscriminatorAlreadySet: 3e3, + AccountDiscriminatorNotFound: 3001, + AccountDiscriminatorMismatch: 3002, + AccountDidNotDeserialize: 3003, + AccountDidNotSerialize: 3004, + AccountNotEnoughKeys: 3005, + AccountNotMutable: 3006, + AccountOwnedByWrongProgram: 3007, + InvalidProgramId: 3008, + InvalidProgramExecutable: 3009, + AccountNotSigner: 3010, + AccountNotSystemOwned: 3011, + AccountNotInitialized: 3012, + AccountNotProgramData: 3013, + AccountNotAssociatedTokenAccount: 3014, + AccountSysvarMismatch: 3015, + AccountReallocExceedsLimit: 3016, + AccountDuplicateReallocs: 3017, + // Miscellaneous + DeclaredProgramIdMismatch: 4100, + // Used for APIs that shouldn't be used anymore. + Deprecated: 5e3 + }; + exports2.LangErrorMessage = /* @__PURE__ */ new Map([ + // Instructions. + [ + exports2.LangErrorCode.InstructionMissing, + "8 byte instruction identifier not provided" + ], + [ + exports2.LangErrorCode.InstructionFallbackNotFound, + "Fallback functions are not supported" + ], + [ + exports2.LangErrorCode.InstructionDidNotDeserialize, + "The program could not deserialize the given instruction" + ], + [ + exports2.LangErrorCode.InstructionDidNotSerialize, + "The program could not serialize the given instruction" + ], + // Idl instructions. + [ + exports2.LangErrorCode.IdlInstructionStub, + "The program was compiled without idl instructions" + ], + [ + exports2.LangErrorCode.IdlInstructionInvalidProgram, + "The transaction was given an invalid program for the IDL instruction" + ], + // Constraints. + [exports2.LangErrorCode.ConstraintMut, "A mut constraint was violated"], + [exports2.LangErrorCode.ConstraintHasOne, "A has one constraint was violated"], + [exports2.LangErrorCode.ConstraintSigner, "A signer constraint was violated"], + [exports2.LangErrorCode.ConstraintRaw, "A raw constraint was violated"], + [exports2.LangErrorCode.ConstraintOwner, "An owner constraint was violated"], + [ + exports2.LangErrorCode.ConstraintRentExempt, + "A rent exemption constraint was violated" + ], + [exports2.LangErrorCode.ConstraintSeeds, "A seeds constraint was violated"], + [exports2.LangErrorCode.ConstraintExecutable, "An executable constraint was violated"], + [ + exports2.LangErrorCode.ConstraintState, + "Deprecated Error, feel free to replace with something else" + ], + [exports2.LangErrorCode.ConstraintAssociated, "An associated constraint was violated"], + [ + exports2.LangErrorCode.ConstraintAssociatedInit, + "An associated init constraint was violated" + ], + [exports2.LangErrorCode.ConstraintClose, "A close constraint was violated"], + [exports2.LangErrorCode.ConstraintAddress, "An address constraint was violated"], + [exports2.LangErrorCode.ConstraintZero, "Expected zero account discriminant"], + [exports2.LangErrorCode.ConstraintTokenMint, "A token mint constraint was violated"], + [exports2.LangErrorCode.ConstraintTokenOwner, "A token owner constraint was violated"], + [ + exports2.LangErrorCode.ConstraintMintMintAuthority, + "A mint mint authority constraint was violated" + ], + [ + exports2.LangErrorCode.ConstraintMintFreezeAuthority, + "A mint freeze authority constraint was violated" + ], + [ + exports2.LangErrorCode.ConstraintMintDecimals, + "A mint decimals constraint was violated" + ], + [exports2.LangErrorCode.ConstraintSpace, "A space constraint was violated"], + [ + exports2.LangErrorCode.ConstraintAccountIsNone, + "A required account for the constraint is None" + ], + // Require. + [exports2.LangErrorCode.RequireViolated, "A require expression was violated"], + [exports2.LangErrorCode.RequireEqViolated, "A require_eq expression was violated"], + [ + exports2.LangErrorCode.RequireKeysEqViolated, + "A require_keys_eq expression was violated" + ], + [exports2.LangErrorCode.RequireNeqViolated, "A require_neq expression was violated"], + [ + exports2.LangErrorCode.RequireKeysNeqViolated, + "A require_keys_neq expression was violated" + ], + [exports2.LangErrorCode.RequireGtViolated, "A require_gt expression was violated"], + [exports2.LangErrorCode.RequireGteViolated, "A require_gte expression was violated"], + // Accounts. + [ + exports2.LangErrorCode.AccountDiscriminatorAlreadySet, + "The account discriminator was already set on this account" + ], + [ + exports2.LangErrorCode.AccountDiscriminatorNotFound, + "No 8 byte discriminator was found on the account" + ], + [ + exports2.LangErrorCode.AccountDiscriminatorMismatch, + "8 byte discriminator did not match what was expected" + ], + [exports2.LangErrorCode.AccountDidNotDeserialize, "Failed to deserialize the account"], + [exports2.LangErrorCode.AccountDidNotSerialize, "Failed to serialize the account"], + [ + exports2.LangErrorCode.AccountNotEnoughKeys, + "Not enough account keys given to the instruction" + ], + [exports2.LangErrorCode.AccountNotMutable, "The given account is not mutable"], + [ + exports2.LangErrorCode.AccountOwnedByWrongProgram, + "The given account is owned by a different program than expected" + ], + [exports2.LangErrorCode.InvalidProgramId, "Program ID was not as expected"], + [exports2.LangErrorCode.InvalidProgramExecutable, "Program account is not executable"], + [exports2.LangErrorCode.AccountNotSigner, "The given account did not sign"], + [ + exports2.LangErrorCode.AccountNotSystemOwned, + "The given account is not owned by the system program" + ], + [ + exports2.LangErrorCode.AccountNotInitialized, + "The program expected this account to be already initialized" + ], + [ + exports2.LangErrorCode.AccountNotProgramData, + "The given account is not a program data account" + ], + [ + exports2.LangErrorCode.AccountNotAssociatedTokenAccount, + "The given account is not the associated token account" + ], + [ + exports2.LangErrorCode.AccountSysvarMismatch, + "The given public key does not match the required sysvar" + ], + [ + exports2.LangErrorCode.AccountReallocExceedsLimit, + "The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit" + ], + [ + exports2.LangErrorCode.AccountDuplicateReallocs, + "The account was duplicated for more than one reallocation" + ], + // Miscellaneous + [ + exports2.LangErrorCode.DeclaredProgramIdMismatch, + "The declared program id does not match the actual program id" + ], + // Deprecated + [ + exports2.LangErrorCode.Deprecated, + "The API being used is deprecated and should no longer be used" + ] + ]); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh/dist/index.js +var require_dist8 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh/dist/index.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.map = exports2.array = exports2.rustEnum = exports2.str = exports2.vecU8 = exports2.tagged = exports2.vec = exports2.bool = exports2.option = exports2.publicKey = exports2.i256 = exports2.u256 = exports2.i128 = exports2.u128 = exports2.i64 = exports2.u64 = exports2.struct = exports2.f64 = exports2.f32 = exports2.i32 = exports2.u32 = exports2.i16 = exports2.u16 = exports2.i8 = exports2.u8 = void 0; + var buffer_layout_1 = require_Layout2(); + var web3_js_1 = require_index_cjs(); + var bn_js_1 = __importDefault2(require_bn()); + var buffer_layout_2 = require_Layout2(); + Object.defineProperty(exports2, "u8", { enumerable: true, get: function() { + return buffer_layout_2.u8; + } }); + Object.defineProperty(exports2, "i8", { enumerable: true, get: function() { + return buffer_layout_2.s8; + } }); + Object.defineProperty(exports2, "u16", { enumerable: true, get: function() { + return buffer_layout_2.u16; + } }); + Object.defineProperty(exports2, "i16", { enumerable: true, get: function() { + return buffer_layout_2.s16; + } }); + Object.defineProperty(exports2, "u32", { enumerable: true, get: function() { + return buffer_layout_2.u32; + } }); + Object.defineProperty(exports2, "i32", { enumerable: true, get: function() { + return buffer_layout_2.s32; + } }); + Object.defineProperty(exports2, "f32", { enumerable: true, get: function() { + return buffer_layout_2.f32; + } }); + Object.defineProperty(exports2, "f64", { enumerable: true, get: function() { + return buffer_layout_2.f64; + } }); + Object.defineProperty(exports2, "struct", { enumerable: true, get: function() { + return buffer_layout_2.struct; + } }); + var BNLayout = class extends buffer_layout_1.Layout { + constructor(span, signed, property) { + super(span, property); + this.blob = (0, buffer_layout_1.blob)(span); + this.signed = signed; + } + decode(b, offset = 0) { + const num = new bn_js_1.default(this.blob.decode(b, offset), 10, "le"); + if (this.signed) { + return num.fromTwos(this.span * 8).clone(); + } + return num; + } + encode(src, b, offset = 0) { + if (this.signed) { + src = src.toTwos(this.span * 8); + } + return this.blob.encode(src.toArrayLike(Buffer, "le", this.span), b, offset); + } + }; + function u6415(property) { + return new BNLayout(8, false, property); + } + exports2.u64 = u6415; + function i643(property) { + return new BNLayout(8, true, property); + } + exports2.i64 = i643; + function u1282(property) { + return new BNLayout(16, false, property); + } + exports2.u128 = u1282; + function i128(property) { + return new BNLayout(16, true, property); + } + exports2.i128 = i128; + function u2562(property) { + return new BNLayout(32, false, property); + } + exports2.u256 = u2562; + function i256(property) { + return new BNLayout(32, true, property); + } + exports2.i256 = i256; + var WrappedLayout = class extends buffer_layout_1.Layout { + constructor(layout, decoder, encoder, property) { + super(layout.span, property); + this.layout = layout; + this.decoder = decoder; + this.encoder = encoder; + } + decode(b, offset) { + return this.decoder(this.layout.decode(b, offset)); + } + encode(src, b, offset) { + return this.layout.encode(this.encoder(src), b, offset); + } + getSpan(b, offset) { + return this.layout.getSpan(b, offset); + } + }; + function publicKey23(property) { + return new WrappedLayout((0, buffer_layout_1.blob)(32), (b) => new web3_js_1.PublicKey(b), (key) => key.toBuffer(), property); + } + exports2.publicKey = publicKey23; + var OptionLayout = class extends buffer_layout_1.Layout { + constructor(layout, property) { + super(-1, property); + this.layout = layout; + this.discriminator = (0, buffer_layout_1.u8)(); + } + encode(src, b, offset = 0) { + if (src === null || src === void 0) { + return this.discriminator.encode(0, b, offset); + } + this.discriminator.encode(1, b, offset); + return this.layout.encode(src, b, offset + 1) + 1; + } + decode(b, offset = 0) { + const discriminator = this.discriminator.decode(b, offset); + if (discriminator === 0) { + return null; + } else if (discriminator === 1) { + return this.layout.decode(b, offset + 1); + } + throw new Error("Invalid option " + this.property); + } + getSpan(b, offset = 0) { + const discriminator = this.discriminator.decode(b, offset); + if (discriminator === 0) { + return 1; + } else if (discriminator === 1) { + return this.layout.getSpan(b, offset + 1) + 1; + } + throw new Error("Invalid option " + this.property); + } + }; + function option(layout, property) { + return new OptionLayout(layout, property); + } + exports2.option = option; + function bool3(property) { + return new WrappedLayout((0, buffer_layout_1.u8)(), decodeBool, encodeBool, property); + } + exports2.bool = bool3; + function decodeBool(value) { + if (value === 0) { + return false; + } else if (value === 1) { + return true; + } + throw new Error("Invalid bool: " + value); + } + function encodeBool(value) { + return value ? 1 : 0; + } + function vec(elementLayout, property) { + const length = (0, buffer_layout_1.u32)("length"); + const layout = (0, buffer_layout_1.struct)([ + length, + (0, buffer_layout_1.seq)(elementLayout, (0, buffer_layout_1.offset)(length, -length.span), "values") + ]); + return new WrappedLayout(layout, ({ values }) => values, (values) => ({ values }), property); + } + exports2.vec = vec; + function tagged(tag, layout, property) { + const wrappedLayout = (0, buffer_layout_1.struct)([ + u6415("tag"), + layout.replicate("data") + ]); + function decodeTag({ tag: receivedTag, data }) { + if (!receivedTag.eq(tag)) { + throw new Error("Invalid tag, expected: " + tag.toString("hex") + ", got: " + receivedTag.toString("hex")); + } + return data; + } + return new WrappedLayout(wrappedLayout, decodeTag, (data) => ({ tag, data }), property); + } + exports2.tagged = tagged; + function vecU8(property) { + const length = (0, buffer_layout_1.u32)("length"); + const layout = (0, buffer_layout_1.struct)([ + length, + (0, buffer_layout_1.blob)((0, buffer_layout_1.offset)(length, -length.span), "data") + ]); + return new WrappedLayout(layout, ({ data }) => data, (data) => ({ data }), property); + } + exports2.vecU8 = vecU8; + function str(property) { + return new WrappedLayout(vecU8(), (data) => data.toString("utf-8"), (s) => Buffer.from(s, "utf-8"), property); + } + exports2.str = str; + function rustEnum(variants, property, discriminant) { + const unionLayout = (0, buffer_layout_1.union)(discriminant !== null && discriminant !== void 0 ? discriminant : (0, buffer_layout_1.u8)(), property); + variants.forEach((variant, index) => unionLayout.addVariant(index, variant, variant.property)); + return unionLayout; + } + exports2.rustEnum = rustEnum; + function array11(elementLayout, length, property) { + const layout = (0, buffer_layout_1.struct)([ + (0, buffer_layout_1.seq)(elementLayout, length, "values") + ]); + return new WrappedLayout(layout, ({ values }) => values, (values) => ({ values }), property); + } + exports2.array = array11; + var MapEntryLayout = class extends buffer_layout_1.Layout { + constructor(keyLayout, valueLayout, property) { + super(keyLayout.span + valueLayout.span, property); + this.keyLayout = keyLayout; + this.valueLayout = valueLayout; + } + decode(b, offset) { + offset = offset || 0; + const key = this.keyLayout.decode(b, offset); + const value = this.valueLayout.decode(b, offset + this.keyLayout.getSpan(b, offset)); + return [key, value]; + } + encode(src, b, offset) { + offset = offset || 0; + const keyBytes = this.keyLayout.encode(src[0], b, offset); + const valueBytes = this.valueLayout.encode(src[1], b, offset + keyBytes); + return keyBytes + valueBytes; + } + getSpan(b, offset) { + return this.keyLayout.getSpan(b, offset) + this.valueLayout.getSpan(b, offset); + } + }; + function map(keyLayout, valueLayout, property) { + const length = (0, buffer_layout_1.u32)("length"); + const layout = (0, buffer_layout_1.struct)([ + length, + (0, buffer_layout_1.seq)(new MapEntryLayout(keyLayout, valueLayout), (0, buffer_layout_1.offset)(length, -length.span), "values") + ]); + return new WrappedLayout(layout, ({ values }) => new Map(values), (values) => ({ values: Array.from(values.entries()) }), property); + } + exports2.map = map; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js +var require_idl3 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IdlCoder = void 0; + var camelcase_1 = __importDefault2(require_camelcase()); + var borsh = __importStar2(require_dist8()); + var error_js_1 = require_error2(); + var IdlCoder = class _IdlCoder { + static fieldLayout(field, types) { + const fieldName = field.name !== void 0 ? (0, camelcase_1.default)(field.name) : void 0; + switch (field.type) { + case "bool": { + return borsh.bool(fieldName); + } + case "u8": { + return borsh.u8(fieldName); + } + case "i8": { + return borsh.i8(fieldName); + } + case "u16": { + return borsh.u16(fieldName); + } + case "i16": { + return borsh.i16(fieldName); + } + case "u32": { + return borsh.u32(fieldName); + } + case "i32": { + return borsh.i32(fieldName); + } + case "f32": { + return borsh.f32(fieldName); + } + case "u64": { + return borsh.u64(fieldName); + } + case "i64": { + return borsh.i64(fieldName); + } + case "f64": { + return borsh.f64(fieldName); + } + case "u128": { + return borsh.u128(fieldName); + } + case "i128": { + return borsh.i128(fieldName); + } + case "u256": { + return borsh.u256(fieldName); + } + case "i256": { + return borsh.i256(fieldName); + } + case "bytes": { + return borsh.vecU8(fieldName); + } + case "string": { + return borsh.str(fieldName); + } + case "publicKey": { + return borsh.publicKey(fieldName); + } + default: { + if ("vec" in field.type) { + return borsh.vec(_IdlCoder.fieldLayout({ + name: void 0, + type: field.type.vec + }, types), fieldName); + } else if ("option" in field.type) { + return borsh.option(_IdlCoder.fieldLayout({ + name: void 0, + type: field.type.option + }, types), fieldName); + } else if ("defined" in field.type) { + const defined = field.type.defined; + if (types === void 0) { + throw new error_js_1.IdlError("User defined types not provided"); + } + const filtered = types.filter((t) => t.name === defined); + if (filtered.length !== 1) { + throw new error_js_1.IdlError(`Type not found: ${JSON.stringify(field)}`); + } + return _IdlCoder.typeDefLayout(filtered[0], types, fieldName); + } else if ("array" in field.type) { + let arrayTy = field.type.array[0]; + let arrayLen = field.type.array[1]; + let innerLayout = _IdlCoder.fieldLayout({ + name: void 0, + type: arrayTy + }, types); + return borsh.array(innerLayout, arrayLen, fieldName); + } else { + throw new Error(`Not yet implemented: ${field}`); + } + } + } + } + static typeDefLayout(typeDef, types = [], name) { + if (typeDef.type.kind === "struct") { + const fieldLayouts = typeDef.type.fields.map((field) => { + const x = _IdlCoder.fieldLayout(field, types); + return x; + }); + return borsh.struct(fieldLayouts, name); + } else if (typeDef.type.kind === "enum") { + let variants = typeDef.type.variants.map((variant) => { + const name2 = (0, camelcase_1.default)(variant.name); + if (variant.fields === void 0) { + return borsh.struct([], name2); + } + const fieldLayouts = variant.fields.map((f, i) => { + if (!f.hasOwnProperty("name")) { + return _IdlCoder.fieldLayout({ type: f, name: i.toString() }, types); + } + return _IdlCoder.fieldLayout(f, types); + }); + return borsh.struct(fieldLayouts, name2); + }); + if (name !== void 0) { + return borsh.rustEnum(variants).replicate(name); + } + return borsh.rustEnum(variants, name); + } else { + throw new Error(`Unknown type kint: ${typeDef}`); + } + } + }; + exports2.IdlCoder = IdlCoder; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.js +var require_instruction5 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BorshInstructionCoder = exports2.SIGHASH_GLOBAL_NAMESPACE = void 0; + var bs58_1 = __importDefault2(require_bs586()); + var buffer_1 = require("buffer"); + var camelcase_1 = __importDefault2(require_camelcase()); + var snake_case_1 = require_dist6(); + var js_sha256_1 = require_sha2562(); + var borsh = __importStar2(require_dist8()); + var idl_js_1 = require_idl3(); + exports2.SIGHASH_GLOBAL_NAMESPACE = "global"; + var BorshInstructionCoder = class _BorshInstructionCoder { + constructor(idl) { + this.idl = idl; + this.ixLayout = _BorshInstructionCoder.parseIxLayout(idl); + const sighashLayouts = /* @__PURE__ */ new Map(); + idl.instructions.forEach((ix) => { + const sh = sighash(exports2.SIGHASH_GLOBAL_NAMESPACE, ix.name); + sighashLayouts.set(bs58_1.default.encode(sh), { + layout: this.ixLayout.get(ix.name), + name: ix.name + }); + }); + this.sighashLayouts = sighashLayouts; + } + /** + * Encodes a program instruction. + */ + encode(ixName, ix) { + return this._encode(exports2.SIGHASH_GLOBAL_NAMESPACE, ixName, ix); + } + _encode(nameSpace, ixName, ix) { + const buffer = buffer_1.Buffer.alloc(1e3); + const methodName = (0, camelcase_1.default)(ixName); + const layout = this.ixLayout.get(methodName); + if (!layout) { + throw new Error(`Unknown method: ${methodName}`); + } + const len = layout.encode(ix, buffer); + const data = buffer.slice(0, len); + return buffer_1.Buffer.concat([sighash(nameSpace, ixName), data]); + } + static parseIxLayout(idl) { + const ixLayouts = idl.instructions.map((ix) => { + let fieldLayouts = ix.args.map((arg) => { + var _a, _b; + return idl_js_1.IdlCoder.fieldLayout(arg, Array.from([...(_a = idl.accounts) !== null && _a !== void 0 ? _a : [], ...(_b = idl.types) !== null && _b !== void 0 ? _b : []])); + }); + const name = (0, camelcase_1.default)(ix.name); + return [name, borsh.struct(fieldLayouts, name)]; + }); + return new Map(ixLayouts); + } + /** + * Decodes a program instruction. + */ + decode(ix, encoding = "hex") { + if (typeof ix === "string") { + ix = encoding === "hex" ? buffer_1.Buffer.from(ix, "hex") : bs58_1.default.decode(ix); + } + let sighash2 = bs58_1.default.encode(ix.slice(0, 8)); + let data = ix.slice(8); + const decoder = this.sighashLayouts.get(sighash2); + if (!decoder) { + return null; + } + return { + data: decoder.layout.decode(data), + name: decoder.name + }; + } + /** + * Returns a formatted table of all the fields in the given instruction data. + */ + format(ix, accountMetas) { + return InstructionFormatter.format(ix, accountMetas, this.idl); + } + }; + exports2.BorshInstructionCoder = BorshInstructionCoder; + var InstructionFormatter = class _InstructionFormatter { + static format(ix, accountMetas, idl) { + const idlIx = idl.instructions.filter((i) => ix.name === i.name)[0]; + if (idlIx === void 0) { + console.error("Invalid instruction given"); + return null; + } + const args = idlIx.args.map((idlField) => { + return { + name: idlField.name, + type: _InstructionFormatter.formatIdlType(idlField.type), + data: _InstructionFormatter.formatIdlData(idlField, ix.data[idlField.name], idl.types) + }; + }); + const flatIdlAccounts = _InstructionFormatter.flattenIdlAccounts(idlIx.accounts); + const accounts = accountMetas.map((meta, idx) => { + if (idx < flatIdlAccounts.length) { + return { + name: flatIdlAccounts[idx].name, + ...meta + }; + } else { + return { + name: void 0, + ...meta + }; + } + }); + return { + args, + accounts + }; + } + static formatIdlType(idlType) { + if (typeof idlType === "string") { + return idlType; + } + if ("vec" in idlType) { + return `Vec<${this.formatIdlType(idlType.vec)}>`; + } + if ("option" in idlType) { + return `Option<${this.formatIdlType(idlType.option)}>`; + } + if ("defined" in idlType) { + return idlType.defined; + } + if ("array" in idlType) { + return `Array<${idlType.array[0]}; ${idlType.array[1]}>`; + } + throw new Error(`Unknown IDL type: ${idlType}`); + } + static formatIdlData(idlField, data, types) { + if (typeof idlField.type === "string") { + return data.toString(); + } + if (idlField.type.hasOwnProperty("vec")) { + return "[" + data.map((d) => this.formatIdlData({ name: "", type: idlField.type.vec }, d)).join(", ") + "]"; + } + if (idlField.type.hasOwnProperty("option")) { + return data === null ? "null" : this.formatIdlData({ name: "", type: idlField.type.option }, data, types); + } + if (idlField.type.hasOwnProperty("defined")) { + if (types === void 0) { + throw new Error("User defined types not provided"); + } + const filtered = types.filter((t) => t.name === idlField.type.defined); + if (filtered.length !== 1) { + throw new Error(`Type not found: ${idlField.type.defined}`); + } + return _InstructionFormatter.formatIdlDataDefined(filtered[0], data, types); + } + return "unknown"; + } + static formatIdlDataDefined(typeDef, data, types) { + if (typeDef.type.kind === "struct") { + const struct2 = typeDef.type; + const fields = Object.keys(data).map((k) => { + const f = struct2.fields.filter((f2) => f2.name === k)[0]; + if (f === void 0) { + throw new Error("Unable to find type"); + } + return k + ": " + _InstructionFormatter.formatIdlData(f, data[k], types); + }).join(", "); + return "{ " + fields + " }"; + } else { + if (typeDef.type.variants.length === 0) { + return "{}"; + } + if (typeDef.type.variants[0].name) { + const variants = typeDef.type.variants; + const variant = Object.keys(data)[0]; + const enumType = data[variant]; + const namedFields = Object.keys(enumType).map((f) => { + var _a; + const fieldData = enumType[f]; + const idlField = (_a = variants[variant]) === null || _a === void 0 ? void 0 : _a.filter((v) => v.name === f)[0]; + if (idlField === void 0) { + throw new Error("Unable to find variant"); + } + return f + ": " + _InstructionFormatter.formatIdlData(idlField, fieldData, types); + }).join(", "); + const variantName = (0, camelcase_1.default)(variant, { pascalCase: true }); + if (namedFields.length === 0) { + return variantName; + } + return `${variantName} { ${namedFields} }`; + } else { + return "Tuple formatting not yet implemented"; + } + } + } + static flattenIdlAccounts(accounts, prefix) { + return accounts.map((account) => { + const accName = sentenceCase(account.name); + if (account.hasOwnProperty("accounts")) { + const newPrefix = prefix ? `${prefix} > ${accName}` : accName; + return _InstructionFormatter.flattenIdlAccounts(account.accounts, newPrefix); + } else { + return { + ...account, + name: prefix ? `${prefix} > ${accName}` : accName + }; + } + }).flat(); + } + }; + function sentenceCase(field) { + const result = field.replace(/([A-Z])/g, " $1"); + return result.charAt(0).toUpperCase() + result.slice(1); + } + function sighash(nameSpace, ixName) { + let name = (0, snake_case_1.snakeCase)(ixName); + let preimage = `${nameSpace}:${name}`; + return buffer_1.Buffer.from(js_sha256_1.sha256.digest(preimage)).slice(0, 8); + } + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/common.js +var require_common9 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.accountSize = void 0; + var error_js_1 = require_error2(); + function accountSize(idl, idlAccount) { + if (idlAccount.type.kind === "enum") { + let variantSizes = idlAccount.type.variants.map((variant) => { + if (variant.fields === void 0) { + return 0; + } + return variant.fields.map((f) => { + if (!(typeof f === "object" && "name" in f)) { + throw new Error("Tuple enum variants not yet implemented."); + } + return typeSize(idl, f.type); + }).reduce((a, b) => a + b); + }); + return Math.max(...variantSizes) + 1; + } + if (idlAccount.type.fields === void 0) { + return 0; + } + return idlAccount.type.fields.map((f) => typeSize(idl, f.type)).reduce((a, b) => a + b, 0); + } + exports2.accountSize = accountSize; + function typeSize(idl, ty) { + var _a, _b; + switch (ty) { + case "bool": + return 1; + case "u8": + return 1; + case "i8": + return 1; + case "i16": + return 2; + case "u16": + return 2; + case "u32": + return 4; + case "i32": + return 4; + case "f32": + return 4; + case "u64": + return 8; + case "i64": + return 8; + case "f64": + return 8; + case "u128": + return 16; + case "i128": + return 16; + case "u256": + return 32; + case "i256": + return 32; + case "bytes": + return 1; + case "string": + return 1; + case "publicKey": + return 32; + default: + if ("vec" in ty) { + return 1; + } + if ("option" in ty) { + return 1 + typeSize(idl, ty.option); + } + if ("coption" in ty) { + return 4 + typeSize(idl, ty.coption); + } + if ("defined" in ty) { + const filtered = (_b = (_a = idl.types) === null || _a === void 0 ? void 0 : _a.filter((t) => t.name === ty.defined)) !== null && _b !== void 0 ? _b : []; + if (filtered.length !== 1) { + throw new error_js_1.IdlError(`Type not found: ${JSON.stringify(ty)}`); + } + let typeDef = filtered[0]; + return accountSize(idl, typeDef); + } + if ("array" in ty) { + let arrayTy = ty.array[0]; + let arraySize = ty.array[1]; + return typeSize(idl, arrayTy) * arraySize; + } + throw new Error(`Invalid type ${JSON.stringify(ty)}`); + } + } + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.js +var require_accounts3 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BorshAccountsCoder = exports2.ACCOUNT_DISCRIMINATOR_SIZE = void 0; + var bs58_1 = __importDefault2(require_bs586()); + var buffer_1 = require("buffer"); + var camelcase_1 = __importDefault2(require_camelcase()); + var js_sha256_1 = require_sha2562(); + var idl_js_1 = require_idl3(); + var common_js_1 = require_common9(); + exports2.ACCOUNT_DISCRIMINATOR_SIZE = 8; + var BorshAccountsCoder = class _BorshAccountsCoder { + constructor(idl) { + if (idl.accounts === void 0) { + this.accountLayouts = /* @__PURE__ */ new Map(); + return; + } + const layouts = idl.accounts.map((acc) => { + return [acc.name, idl_js_1.IdlCoder.typeDefLayout(acc, idl.types)]; + }); + this.accountLayouts = new Map(layouts); + this.idl = idl; + } + async encode(accountName, account) { + const buffer = buffer_1.Buffer.alloc(1e3); + const layout = this.accountLayouts.get(accountName); + if (!layout) { + throw new Error(`Unknown account: ${accountName}`); + } + const len = layout.encode(account, buffer); + let accountData = buffer.slice(0, len); + let discriminator = _BorshAccountsCoder.accountDiscriminator(accountName); + return buffer_1.Buffer.concat([discriminator, accountData]); + } + decode(accountName, data) { + const discriminator = _BorshAccountsCoder.accountDiscriminator(accountName); + if (discriminator.compare(data.slice(0, 8))) { + throw new Error("Invalid account discriminator"); + } + return this.decodeUnchecked(accountName, data); + } + decodeAny(data) { + const accountDescriminator = data.slice(0, 8); + const accountName = Array.from(this.accountLayouts.keys()).find((key) => _BorshAccountsCoder.accountDiscriminator(key).equals(accountDescriminator)); + if (!accountName) { + throw new Error("Account descriminator not found"); + } + return this.decodeUnchecked(accountName, data); + } + decodeUnchecked(accountName, ix) { + const data = ix.slice(exports2.ACCOUNT_DISCRIMINATOR_SIZE); + const layout = this.accountLayouts.get(accountName); + if (!layout) { + throw new Error(`Unknown account: ${accountName}`); + } + return layout.decode(data); + } + memcmp(accountName, appendData) { + const discriminator = _BorshAccountsCoder.accountDiscriminator(accountName); + return { + offset: 0, + bytes: bs58_1.default.encode(appendData ? buffer_1.Buffer.concat([discriminator, appendData]) : discriminator) + }; + } + size(idlAccount) { + var _a; + return exports2.ACCOUNT_DISCRIMINATOR_SIZE + ((_a = (0, common_js_1.accountSize)(this.idl, idlAccount)) !== null && _a !== void 0 ? _a : 0); + } + /** + * Calculates and returns a unique 8 byte discriminator prepended to all anchor accounts. + * + * @param name The name of the account to calculate the discriminator. + */ + static accountDiscriminator(name) { + return buffer_1.Buffer.from(js_sha256_1.sha256.digest(`account:${(0, camelcase_1.default)(name, { + pascalCase: true, + preserveConsecutiveUppercase: true + })}`)).slice(0, exports2.ACCOUNT_DISCRIMINATOR_SIZE); + } + }; + exports2.BorshAccountsCoder = BorshAccountsCoder; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.js +var require_event3 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.eventDiscriminator = exports2.BorshEventCoder = void 0; + var buffer_1 = require("buffer"); + var base64 = __importStar2(require_base64_js()); + var js_sha256_1 = require_sha2562(); + var idl_js_1 = require_idl3(); + var BorshEventCoder = class { + constructor(idl) { + if (idl.events === void 0) { + this.layouts = /* @__PURE__ */ new Map(); + return; + } + const layouts = idl.events.map((event) => { + let eventTypeDef = { + name: event.name, + type: { + kind: "struct", + fields: event.fields.map((f) => { + return { name: f.name, type: f.type }; + }) + } + }; + return [event.name, idl_js_1.IdlCoder.typeDefLayout(eventTypeDef, idl.types)]; + }); + this.layouts = new Map(layouts); + this.discriminators = new Map(idl.events === void 0 ? [] : idl.events.map((e) => [ + base64.fromByteArray(eventDiscriminator(e.name)), + e.name + ])); + } + decode(log) { + let logArr; + try { + logArr = buffer_1.Buffer.from(base64.toByteArray(log)); + } catch (e) { + return null; + } + const disc = base64.fromByteArray(logArr.slice(0, 8)); + const eventName = this.discriminators.get(disc); + if (eventName === void 0) { + return null; + } + const layout = this.layouts.get(eventName); + if (!layout) { + throw new Error(`Unknown event: ${eventName}`); + } + const data = layout.decode(logArr.slice(8)); + return { data, name: eventName }; + } + }; + exports2.BorshEventCoder = BorshEventCoder; + function eventDiscriminator(name) { + return buffer_1.Buffer.from(js_sha256_1.sha256.digest(`event:${name}`)).slice(0, 8); + } + exports2.eventDiscriminator = eventDiscriminator; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.js +var require_types6 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BorshTypesCoder = void 0; + var buffer_1 = require("buffer"); + var idl_js_1 = require_idl3(); + var BorshTypesCoder = class { + constructor(idl) { + if (idl.types === void 0) { + this.typeLayouts = /* @__PURE__ */ new Map(); + return; + } + const layouts = idl.types.map((acc) => { + return [acc.name, idl_js_1.IdlCoder.typeDefLayout(acc, idl.types)]; + }); + this.typeLayouts = new Map(layouts); + this.idl = idl; + } + encode(typeName, type) { + const buffer = buffer_1.Buffer.alloc(1e3); + const layout = this.typeLayouts.get(typeName); + if (!layout) { + throw new Error(`Unknown type: ${typeName}`); + } + const len = layout.encode(type, buffer); + return buffer.slice(0, len); + } + decode(typeName, typeData) { + const layout = this.typeLayouts.get(typeName); + if (!layout) { + throw new Error(`Unknown type: ${typeName}`); + } + return layout.decode(typeData); + } + }; + exports2.BorshTypesCoder = BorshTypesCoder; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.js +var require_borsh2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BorshCoder = exports2.eventDiscriminator = exports2.BorshEventCoder = exports2.ACCOUNT_DISCRIMINATOR_SIZE = exports2.BorshAccountsCoder = exports2.BorshInstructionCoder = void 0; + var instruction_js_1 = require_instruction5(); + var accounts_js_1 = require_accounts3(); + var event_js_1 = require_event3(); + var types_js_1 = require_types6(); + var instruction_js_2 = require_instruction5(); + Object.defineProperty(exports2, "BorshInstructionCoder", { enumerable: true, get: function() { + return instruction_js_2.BorshInstructionCoder; + } }); + var accounts_js_2 = require_accounts3(); + Object.defineProperty(exports2, "BorshAccountsCoder", { enumerable: true, get: function() { + return accounts_js_2.BorshAccountsCoder; + } }); + Object.defineProperty(exports2, "ACCOUNT_DISCRIMINATOR_SIZE", { enumerable: true, get: function() { + return accounts_js_2.ACCOUNT_DISCRIMINATOR_SIZE; + } }); + var event_js_2 = require_event3(); + Object.defineProperty(exports2, "BorshEventCoder", { enumerable: true, get: function() { + return event_js_2.BorshEventCoder; + } }); + Object.defineProperty(exports2, "eventDiscriminator", { enumerable: true, get: function() { + return event_js_2.eventDiscriminator; + } }); + var BorshCoder = class { + constructor(idl) { + this.instruction = new instruction_js_1.BorshInstructionCoder(idl); + this.accounts = new accounts_js_1.BorshAccountsCoder(idl); + this.events = new event_js_1.BorshEventCoder(idl); + this.types = new types_js_1.BorshTypesCoder(idl); + } + }; + exports2.BorshCoder = BorshCoder; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.js +var require_instruction6 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemInstructionCoder = void 0; + var bn_js_1 = __importDefault2(require_bn()); + var BufferLayout = __importStar2(require_Layout2()); + var camelcase_1 = __importDefault2(require_camelcase()); + var SystemInstructionCoder = class { + // eslint-disable-next-line @typescript-eslint/no-empty-function + constructor(_) { + } + encode(ixName, ix) { + switch ((0, camelcase_1.default)(ixName)) { + case "createAccount": { + return encodeCreateAccount(ix); + } + case "assign": { + return encodeAssign(ix); + } + case "transfer": { + return encodeTransfer(ix); + } + case "createAccountWithSeed": { + return encodeCreateAccountWithSeed(ix); + } + case "advanceNonceAccount": { + return encodeAdvanceNonceAccount(ix); + } + case "withdrawNonceAccount": { + return encodeWithdrawNonceAccount(ix); + } + case "initializeNonceAccount": { + return encodeInitializeNonceAccount(ix); + } + case "authorizeNonceAccount": { + return encodeAuthorizeNonceAccount(ix); + } + case "allocate": { + return encodeAllocate(ix); + } + case "allocateWithSeed": { + return encodeAllocateWithSeed(ix); + } + case "assignWithSeed": { + return encodeAssignWithSeed(ix); + } + case "transferWithSeed": { + return encodeTransferWithSeed(ix); + } + default: { + throw new Error(`Invalid instruction: ${ixName}`); + } + } + } + encodeState(_ixName, _ix) { + throw new Error("System does not have state"); + } + }; + exports2.SystemInstructionCoder = SystemInstructionCoder; + var RustStringLayout = class extends BufferLayout.Layout { + constructor(property) { + super(-1, property); + this.property = property; + this.layout = BufferLayout.struct([ + BufferLayout.u32("length"), + BufferLayout.u32("lengthPadding"), + BufferLayout.blob(BufferLayout.offset(BufferLayout.u32(), -8), "chars") + ], this.property); + } + encode(src, b, offset = 0) { + if (src === null || src === void 0) { + return this.layout.span; + } + const data = { + chars: Buffer.from(src, "utf8") + }; + return this.layout.encode(data, b, offset); + } + decode(b, offset = 0) { + const data = this.layout.decode(b, offset); + return data["chars"].toString(); + } + getSpan(b, offset = 0) { + return BufferLayout.u32().span + BufferLayout.u32().span + new bn_js_1.default(new Uint8Array(b).slice(offset, offset + 4), 10, "le").toNumber(); + } + }; + function rustStringLayout(property) { + return new RustStringLayout(property); + } + function publicKey23(property) { + return BufferLayout.blob(32, property); + } + function encodeCreateAccount({ lamports, space, owner }) { + return encodeData({ + createAccount: { lamports, space, owner: owner.toBuffer() } + }); + } + function encodeAssign({ owner }) { + return encodeData({ + assign: { owner: owner.toBuffer() } + }); + } + function encodeTransfer({ lamports }) { + return encodeData({ + transfer: { lamports } + }); + } + function encodeCreateAccountWithSeed({ base, seed, lamports, space, owner }) { + return encodeData({ + createAccountWithSeed: { + base: base.toBuffer(), + seed, + lamports, + space, + owner: owner.toBuffer() + } + }, LAYOUT.getVariant(3).span + seed.length); + } + function encodeInitializeNonceAccount({ authorized }) { + return encodeData({ + initializeNonceAccount: { authorized: authorized.toBuffer() } + }); + } + function encodeAdvanceNonceAccount({ authorized }) { + return encodeData({ + advanceNonceAccount: { authorized: authorized.toBuffer() } + }); + } + function encodeWithdrawNonceAccount({ lamports }) { + return encodeData({ + withdrawNonceAccount: { lamports } + }); + } + function encodeAuthorizeNonceAccount({ authorized }) { + return encodeData({ + authorizeNonceAccount: { authorized: authorized.toBuffer() } + }); + } + function encodeAllocate({ space }) { + return encodeData({ + allocate: { space } + }); + } + function encodeAllocateWithSeed({ base, seed, space, owner }) { + return encodeData({ + allocateWithSeed: { + base: base.toBuffer(), + seed, + space, + owner: owner.toBuffer() + } + }, LAYOUT.getVariant(9).span + seed.length); + } + function encodeAssignWithSeed({ base, seed, owner }) { + return encodeData({ + assignWithSeed: { + base: base.toBuffer(), + seed, + owner: owner.toBuffer() + } + }, LAYOUT.getVariant(10).span + seed.length); + } + function encodeTransferWithSeed({ lamports, seed, owner }) { + return encodeData({ + transferWithSeed: { + lamports, + seed, + owner: owner.toBuffer() + } + }, LAYOUT.getVariant(11).span + seed.length); + } + var LAYOUT = BufferLayout.union(BufferLayout.u32("instruction")); + LAYOUT.addVariant(0, BufferLayout.struct([ + BufferLayout.ns64("lamports"), + BufferLayout.ns64("space"), + publicKey23("owner") + ]), "createAccount"); + LAYOUT.addVariant(1, BufferLayout.struct([publicKey23("owner")]), "assign"); + LAYOUT.addVariant(2, BufferLayout.struct([BufferLayout.ns64("lamports")]), "transfer"); + LAYOUT.addVariant(3, BufferLayout.struct([ + publicKey23("base"), + rustStringLayout("seed"), + BufferLayout.ns64("lamports"), + BufferLayout.ns64("space"), + publicKey23("owner") + ]), "createAccountWithSeed"); + LAYOUT.addVariant(4, BufferLayout.struct([publicKey23("authorized")]), "advanceNonceAccount"); + LAYOUT.addVariant(5, BufferLayout.struct([BufferLayout.ns64("lamports")]), "withdrawNonceAccount"); + LAYOUT.addVariant(6, BufferLayout.struct([publicKey23("authorized")]), "initializeNonceAccount"); + LAYOUT.addVariant(7, BufferLayout.struct([publicKey23("authorized")]), "authorizeNonceAccount"); + LAYOUT.addVariant(8, BufferLayout.struct([BufferLayout.ns64("space")]), "allocate"); + LAYOUT.addVariant(9, BufferLayout.struct([ + publicKey23("base"), + rustStringLayout("seed"), + BufferLayout.ns64("space"), + publicKey23("owner") + ]), "allocateWithSeed"); + LAYOUT.addVariant(10, BufferLayout.struct([ + publicKey23("base"), + rustStringLayout("seed"), + publicKey23("owner") + ]), "assignWithSeed"); + LAYOUT.addVariant(11, BufferLayout.struct([ + BufferLayout.ns64("lamports"), + rustStringLayout("seed"), + publicKey23("owner") + ]), "transferWithSeed"); + function encodeData(instruction, maxSpan) { + const b = Buffer.alloc(maxSpan !== null && maxSpan !== void 0 ? maxSpan : instructionMaxSpan); + const span = LAYOUT.encode(instruction, b); + if (maxSpan === void 0) { + return b.slice(0, span); + } + return b; + } + var instructionMaxSpan = Math.max(...Object.values(LAYOUT.registry).map((r) => r.span)); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.js +var require_accounts4 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemAccountsCoder = void 0; + var BufferLayout = __importStar2(require_Layout2()); + var web3_js_1 = require_index_cjs(); + var common_js_1 = require_common9(); + var SystemAccountsCoder = class { + constructor(idl) { + this.idl = idl; + } + async encode(accountName, account) { + switch (accountName) { + case "nonce": { + const buffer = Buffer.alloc(web3_js_1.NONCE_ACCOUNT_LENGTH); + const len = NONCE_ACCOUNT_LAYOUT.encode(account, buffer); + return buffer.slice(0, len); + } + default: { + throw new Error(`Invalid account name: ${accountName}`); + } + } + } + decode(accountName, ix) { + return this.decodeUnchecked(accountName, ix); + } + decodeUnchecked(accountName, ix) { + switch (accountName) { + case "nonce": { + return decodeNonceAccount(ix); + } + default: { + throw new Error(`Invalid account name: ${accountName}`); + } + } + } + // TODO: this won't use the appendData. + memcmp(accountName, _appendData) { + switch (accountName) { + case "nonce": { + return { + dataSize: web3_js_1.NONCE_ACCOUNT_LENGTH + }; + } + default: { + throw new Error(`Invalid account name: ${accountName}`); + } + } + } + size(idlAccount) { + var _a; + return (_a = (0, common_js_1.accountSize)(this.idl, idlAccount)) !== null && _a !== void 0 ? _a : 0; + } + }; + exports2.SystemAccountsCoder = SystemAccountsCoder; + function decodeNonceAccount(ix) { + return NONCE_ACCOUNT_LAYOUT.decode(ix); + } + var WrappedLayout = class extends BufferLayout.Layout { + constructor(layout, decoder, encoder, property) { + super(layout.span, property); + this.layout = layout; + this.decoder = decoder; + this.encoder = encoder; + } + decode(b, offset) { + return this.decoder(this.layout.decode(b, offset)); + } + encode(src, b, offset) { + return this.layout.encode(this.encoder(src), b, offset); + } + getSpan(b, offset) { + return this.layout.getSpan(b, offset); + } + }; + function publicKey23(property) { + return new WrappedLayout(BufferLayout.blob(32), (b) => new web3_js_1.PublicKey(b), (key) => key.toBuffer(), property); + } + var NONCE_ACCOUNT_LAYOUT = BufferLayout.struct([ + BufferLayout.u32("version"), + BufferLayout.u32("state"), + publicKey23("authorizedPubkey"), + publicKey23("nonce"), + BufferLayout.struct([BufferLayout.nu64("lamportsPerSignature")], "feeCalculator") + ]); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.js +var require_events3 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemEventsCoder = void 0; + var SystemEventsCoder = class { + constructor(_idl) { + } + decode(_log) { + throw new Error("System program does not have events"); + } + }; + exports2.SystemEventsCoder = SystemEventsCoder; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.js +var require_types7 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemTypesCoder = void 0; + var SystemTypesCoder = class { + constructor(_idl) { + } + encode(_name, _type) { + throw new Error("System does not have user-defined types"); + } + decode(_name, _typeData) { + throw new Error("System does not have user-defined types"); + } + }; + exports2.SystemTypesCoder = SystemTypesCoder; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.js +var require_system3 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SystemCoder = void 0; + var instruction_js_1 = require_instruction6(); + var accounts_js_1 = require_accounts4(); + var events_js_1 = require_events3(); + var types_js_1 = require_types7(); + var SystemCoder = class { + constructor(idl) { + this.instruction = new instruction_js_1.SystemInstructionCoder(idl); + this.accounts = new accounts_js_1.SystemAccountsCoder(idl); + this.events = new events_js_1.SystemEventsCoder(idl); + this.types = new types_js_1.SystemTypesCoder(idl); + } + }; + exports2.SystemCoder = SystemCoder; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.js +var require_coder2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_borsh2(), exports2); + __exportStar2(require_system3(), exports2); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.js +var require_sha2564 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.hash = void 0; + var js_sha256_1 = require_sha2562(); + function hash(data) { + return (0, js_sha256_1.sha256)(data); + } + exports2.hash = hash; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.js +var require_pubkey2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.associated = exports2.createWithSeedSync = void 0; + var buffer_1 = require("buffer"); + var web3_js_1 = require_index_cjs(); + var common_js_1 = require_common8(); + var js_sha256_1 = require_sha2562(); + function createWithSeedSync(fromPublicKey, seed, programId) { + const buffer = buffer_1.Buffer.concat([ + fromPublicKey.toBuffer(), + buffer_1.Buffer.from(seed), + programId.toBuffer() + ]); + const hash = js_sha256_1.sha256.digest(buffer); + return new web3_js_1.PublicKey(buffer_1.Buffer.from(hash)); + } + exports2.createWithSeedSync = createWithSeedSync; + function associated(programId, ...args) { + let seeds = [buffer_1.Buffer.from([97, 110, 99, 104, 111, 114])]; + args.forEach((arg) => { + seeds.push(arg instanceof buffer_1.Buffer ? arg : (0, common_js_1.translateAddress)(arg).toBuffer()); + }); + const [assoc] = web3_js_1.PublicKey.findProgramAddressSync(seeds, (0, common_js_1.translateAddress)(programId)); + return assoc; + } + exports2.associated = associated; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.js +var require_token2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.associatedAddress = exports2.ASSOCIATED_PROGRAM_ID = exports2.TOKEN_PROGRAM_ID = void 0; + var web3_js_1 = require_index_cjs(); + exports2.TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"); + exports2.ASSOCIATED_PROGRAM_ID = new web3_js_1.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"); + function associatedAddress({ mint, owner }) { + return web3_js_1.PublicKey.findProgramAddressSync([owner.toBuffer(), exports2.TOKEN_PROGRAM_ID.toBuffer(), mint.toBuffer()], exports2.ASSOCIATED_PROGRAM_ID)[0]; + } + exports2.associatedAddress = associatedAddress; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.js +var require_registry2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeUpgradeableLoaderState = exports2.fetchData = exports2.verifiedBuild = void 0; + var cross_fetch_1 = __importDefault2(require_node_ponyfill()); + var borsh = __importStar2(require_dist8()); + async function verifiedBuild(connection, programId, limit = 5) { + const url = `https://api.apr.dev/api/v0/program/${programId.toString()}/latest?limit=${limit}`; + const [programData, latestBuildsResp] = await Promise.all([ + fetchData(connection, programId), + (0, cross_fetch_1.default)(url) + ]); + const latestBuilds = (await latestBuildsResp.json()).filter((b) => !b.aborted && b.state === "Built" && b.verified === "Verified"); + if (latestBuilds.length === 0) { + return null; + } + const build = latestBuilds[0]; + if (programData.slot.toNumber() !== build.verified_slot) { + return null; + } + return build; + } + exports2.verifiedBuild = verifiedBuild; + async function fetchData(connection, programId) { + const accountInfo = await connection.getAccountInfo(programId); + if (accountInfo === null) { + throw new Error("program account not found"); + } + const { program } = decodeUpgradeableLoaderState(accountInfo.data); + const programdataAccountInfo = await connection.getAccountInfo(program.programdataAddress); + if (programdataAccountInfo === null) { + throw new Error("program data account not found"); + } + const { programData } = decodeUpgradeableLoaderState(programdataAccountInfo.data); + return programData; + } + exports2.fetchData = fetchData; + var UPGRADEABLE_LOADER_STATE_LAYOUT = borsh.rustEnum([ + borsh.struct([], "uninitialized"), + borsh.struct([borsh.option(borsh.publicKey(), "authorityAddress")], "buffer"), + borsh.struct([borsh.publicKey("programdataAddress")], "program"), + borsh.struct([ + borsh.u64("slot"), + borsh.option(borsh.publicKey(), "upgradeAuthorityAddress") + ], "programData") + ], void 0, borsh.u32()); + function decodeUpgradeableLoaderState(data) { + return UPGRADEABLE_LOADER_STATE_LAYOUT.decode(data); + } + exports2.decodeUpgradeableLoaderState = decodeUpgradeableLoaderState; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.js +var require_utils9 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.registry = exports2.features = exports2.token = exports2.bytes = exports2.publicKey = exports2.rpc = exports2.sha256 = void 0; + exports2.sha256 = __importStar2(require_sha2564()); + exports2.rpc = __importStar2(require_rpc3()); + exports2.publicKey = __importStar2(require_pubkey2()); + exports2.bytes = __importStar2(require_bytes2()); + exports2.token = __importStar2(require_token2()); + exports2.features = __importStar2(require_features2()); + exports2.registry = __importStar2(require_registry2()); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/idl.js +var require_idl4 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/idl.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.encodeIdlAccount = exports2.decodeIdlAccount = exports2.seed = exports2.idlAddress = exports2.isIdlAccounts = void 0; + var buffer_1 = require("buffer"); + var web3_js_1 = require_index_cjs(); + var borsh = __importStar2(require_dist8()); + function isIdlAccounts(accountItem) { + return "accounts" in accountItem; + } + exports2.isIdlAccounts = isIdlAccounts; + async function idlAddress(programId) { + const base = (await web3_js_1.PublicKey.findProgramAddress([], programId))[0]; + return await web3_js_1.PublicKey.createWithSeed(base, seed(), programId); + } + exports2.idlAddress = idlAddress; + function seed() { + return "anchor:idl"; + } + exports2.seed = seed; + var IDL_ACCOUNT_LAYOUT = borsh.struct([ + borsh.publicKey("authority"), + borsh.vecU8("data") + ]); + function decodeIdlAccount(data) { + return IDL_ACCOUNT_LAYOUT.decode(data); + } + exports2.decodeIdlAccount = decodeIdlAccount; + function encodeIdlAccount(acc) { + const buffer = buffer_1.Buffer.alloc(1e3); + const len = IDL_ACCOUNT_LAYOUT.encode(acc, buffer); + return buffer.slice(0, len); + } + exports2.encodeIdlAccount = encodeIdlAccount; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/context.js +var require_context2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.splitArgsAndCtx = void 0; + function splitArgsAndCtx(idlIx, args) { + var _a, _b; + let options = {}; + const inputLen = idlIx.args ? idlIx.args.length : 0; + if (args.length > inputLen) { + if (args.length !== inputLen + 1) { + throw new Error(`provided too many arguments ${args} to instruction ${idlIx === null || idlIx === void 0 ? void 0 : idlIx.name} expecting: ${(_b = (_a = idlIx.args) === null || _a === void 0 ? void 0 : _a.map((a) => a.name)) !== null && _b !== void 0 ? _b : []}`); + } + options = args.pop(); + } + return [args, options]; + } + exports2.splitArgsAndCtx = splitArgsAndCtx; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.js +var require_instruction7 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + var web3_js_1 = require_index_cjs(); + var error_js_1 = require_error2(); + var common_js_1 = require_common8(); + var context_js_1 = require_context2(); + var features = __importStar2(require_features2()); + var InstructionNamespaceFactory = class _InstructionNamespaceFactory { + static build(idlIx, encodeFn, programId) { + if (idlIx.name === "_inner") { + throw new error_js_1.IdlError("the _inner name is reserved"); + } + const ix = (...args) => { + const [ixArgs, ctx] = (0, context_js_1.splitArgsAndCtx)(idlIx, [...args]); + (0, common_js_1.validateAccounts)(idlIx.accounts, ctx.accounts); + validateInstruction(idlIx, ...args); + const keys = ix.accounts(ctx.accounts); + if (ctx.remainingAccounts !== void 0) { + keys.push(...ctx.remainingAccounts); + } + if (features.isSet("debug-logs")) { + console.log("Outgoing account metas:", keys); + } + return new web3_js_1.TransactionInstruction({ + keys, + programId, + data: encodeFn(idlIx.name, (0, common_js_1.toInstruction)(idlIx, ...ixArgs)) + }); + }; + ix["accounts"] = (accs) => { + return _InstructionNamespaceFactory.accountsArray(accs, idlIx.accounts, programId, idlIx.name); + }; + return ix; + } + static accountsArray(ctx, accounts, programId, ixName) { + if (!ctx) { + return []; + } + return accounts.map((acc) => { + const nestedAccounts = "accounts" in acc ? acc.accounts : void 0; + if (nestedAccounts !== void 0) { + const rpcAccs = ctx[acc.name]; + return _InstructionNamespaceFactory.accountsArray(rpcAccs, acc.accounts, programId, ixName).flat(); + } else { + const account = acc; + let pubkey; + try { + pubkey = (0, common_js_1.translateAddress)(ctx[acc.name]); + } catch (err) { + throw new Error(`Wrong input type for account "${acc.name}" in the instruction accounts object${ixName !== void 0 ? ' for instruction "' + ixName + '"' : ""}. Expected PublicKey or string.`); + } + const optional = account.isOptional && pubkey.equals(programId); + const isWritable = account.isMut && !optional; + const isSigner = account.isSigner && !optional; + return { + pubkey, + isWritable, + isSigner + }; + } + }).flat(); + } + }; + exports2.default = InstructionNamespaceFactory; + function validateInstruction(ix, ...args) { + } + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.js +var require_transaction2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var web3_js_1 = require_index_cjs(); + var context_js_1 = require_context2(); + var TransactionFactory = class { + static build(idlIx, ixFn) { + const txFn = (...args) => { + var _a, _b, _c; + const [, ctx] = (0, context_js_1.splitArgsAndCtx)(idlIx, [...args]); + const tx = new web3_js_1.Transaction(); + if (ctx.preInstructions && ctx.instructions) { + throw new Error("instructions is deprecated, use preInstructions"); + } + (_a = ctx.preInstructions) === null || _a === void 0 ? void 0 : _a.forEach((ix) => tx.add(ix)); + (_b = ctx.instructions) === null || _b === void 0 ? void 0 : _b.forEach((ix) => tx.add(ix)); + tx.add(ixFn(...args)); + (_c = ctx.postInstructions) === null || _c === void 0 ? void 0 : _c.forEach((ix) => tx.add(ix)); + return tx; + }; + return txFn; + } + }; + exports2.default = TransactionFactory; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.js +var require_rpc4 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var context_js_1 = require_context2(); + var error_js_1 = require_error2(); + var RpcFactory = class { + static build(idlIx, txFn, idlErrors, provider) { + const rpc = async (...args) => { + var _a; + const tx = txFn(...args); + const [, ctx] = (0, context_js_1.splitArgsAndCtx)(idlIx, [...args]); + if (provider.sendAndConfirm === void 0) { + throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented."); + } + try { + return await provider.sendAndConfirm(tx, (_a = ctx.signers) !== null && _a !== void 0 ? _a : [], ctx.options); + } catch (err) { + throw (0, error_js_1.translateError)(err, idlErrors); + } + }; + return rpc; + } + }; + exports2.default = RpcFactory; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.js +var require_account3 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AccountClient = void 0; + var camelcase_1 = __importDefault2(require_camelcase()); + var eventemitter3_1 = __importDefault2(require_eventemitter32()); + var web3_js_1 = require_index_cjs(); + var provider_js_1 = require_provider2(); + var index_js_1 = require_coder2(); + var common_js_1 = require_common8(); + var pubkeyUtil = __importStar2(require_pubkey2()); + var rpcUtil = __importStar2(require_rpc3()); + var AccountFactory = class { + static build(idl, coder, programId, provider) { + var _a; + const accountFns = {}; + (_a = idl.accounts) === null || _a === void 0 ? void 0 : _a.forEach((idlAccount) => { + const name = (0, camelcase_1.default)(idlAccount.name); + accountFns[name] = new AccountClient(idl, idlAccount, programId, provider, coder); + }); + return accountFns; + } + }; + exports2.default = AccountFactory; + var AccountClient = class { + /** + * Returns the number of bytes in this account. + */ + get size() { + return this._size; + } + /** + * Returns the program ID owning all accounts. + */ + get programId() { + return this._programId; + } + /** + * Returns the client's wallet and network provider. + */ + get provider() { + return this._provider; + } + /** + * Returns the coder. + */ + get coder() { + return this._coder; + } + /** + * Returns the idl account. + */ + get idlAccount() { + return this._idlAccount; + } + constructor(idl, idlAccount, programId, provider, coder) { + this._idlAccount = idlAccount; + this._programId = programId; + this._provider = provider !== null && provider !== void 0 ? provider : (0, provider_js_1.getProvider)(); + this._coder = coder !== null && coder !== void 0 ? coder : new index_js_1.BorshCoder(idl); + this._size = this._coder.accounts.size(idlAccount); + } + /** + * Returns a deserialized account, returning null if it doesn't exist. + * + * @param address The address of the account to fetch. + */ + async fetchNullable(address, commitment) { + const { data } = await this.fetchNullableAndContext(address, commitment); + return data; + } + /** + * Returns a deserialized account along with the associated rpc response context, returning null if it doesn't exist. + * + * @param address The address of the account to fetch. + */ + async fetchNullableAndContext(address, commitment) { + const accountInfo = await this.getAccountInfoAndContext(address, commitment); + const { value, context } = accountInfo; + return { + data: value && value.data.length !== 0 ? this._coder.accounts.decode(this._idlAccount.name, value.data) : null, + context + }; + } + /** + * Returns a deserialized account. + * + * @param address The address of the account to fetch. + */ + async fetch(address, commitment) { + const { data } = await this.fetchNullableAndContext(address, commitment); + if (data === null) { + throw new Error(`Account does not exist or has no data ${address.toString()}`); + } + return data; + } + /** + * Returns a deserialized account along with the associated rpc response context. + * + * @param address The address of the account to fetch. + */ + async fetchAndContext(address, commitment) { + const { data, context } = await this.fetchNullableAndContext(address, commitment); + if (data === null) { + throw new Error(`Account does not exist ${address.toString()}`); + } + return { data, context }; + } + /** + * Returns multiple deserialized accounts. + * Accounts not found or with wrong discriminator are returned as null. + * + * @param addresses The addresses of the accounts to fetch. + */ + async fetchMultiple(addresses, commitment) { + const accounts = await this.fetchMultipleAndContext(addresses, commitment); + return accounts.map((account) => account ? account.data : null); + } + /** + * Returns multiple deserialized accounts. + * Accounts not found or with wrong discriminator are returned as null. + * + * @param addresses The addresses of the accounts to fetch. + */ + async fetchMultipleAndContext(addresses, commitment) { + const accounts = await rpcUtil.getMultipleAccountsAndContext(this._provider.connection, addresses.map((address) => (0, common_js_1.translateAddress)(address)), commitment); + return accounts.map((result) => { + if (result == null) { + return null; + } + const { account, context } = result; + return { + data: this._coder.accounts.decode(this._idlAccount.name, account.data), + context + }; + }); + } + /** + * Returns all instances of this account type for the program. + * + * @param filters User-provided filters to narrow the results from `connection.getProgramAccounts`. + * + * When filters are not defined this method returns all + * the account instances. + * + * When filters are of type `Buffer`, the filters are appended + * after the discriminator. + * + * When filters are of type `GetProgramAccountsFilter[]`, + * filters are appended after the discriminator filter. + */ + async all(filters) { + const filter = this.coder.accounts.memcmp(this._idlAccount.name, filters instanceof Buffer ? filters : void 0); + const coderFilters = []; + if ((filter === null || filter === void 0 ? void 0 : filter.offset) != void 0 && (filter === null || filter === void 0 ? void 0 : filter.bytes) != void 0) { + coderFilters.push({ + memcmp: { offset: filter.offset, bytes: filter.bytes } + }); + } + if ((filter === null || filter === void 0 ? void 0 : filter.dataSize) != void 0) { + coderFilters.push({ dataSize: filter.dataSize }); + } + let resp = await this._provider.connection.getProgramAccounts(this._programId, { + commitment: this._provider.connection.commitment, + filters: [...coderFilters, ...Array.isArray(filters) ? filters : []] + }); + return resp.map(({ pubkey, account }) => { + return { + publicKey: pubkey, + account: this._coder.accounts.decode(this._idlAccount.name, account.data) + }; + }); + } + /** + * Returns an `EventEmitter` emitting a "change" event whenever the account + * changes. + */ + subscribe(address, commitment) { + const sub = subscriptions.get(address.toString()); + if (sub) { + return sub.ee; + } + const ee = new eventemitter3_1.default(); + address = (0, common_js_1.translateAddress)(address); + const listener = this._provider.connection.onAccountChange(address, (acc) => { + const account = this._coder.accounts.decode(this._idlAccount.name, acc.data); + ee.emit("change", account); + }, commitment); + subscriptions.set(address.toString(), { + ee, + listener + }); + return ee; + } + /** + * Unsubscribes from the account at the given address. + */ + async unsubscribe(address) { + let sub = subscriptions.get(address.toString()); + if (!sub) { + console.warn("Address is not subscribed"); + return; + } + if (subscriptions) { + await this._provider.connection.removeAccountChangeListener(sub.listener).then(() => { + subscriptions.delete(address.toString()); + }).catch(console.error); + } + } + /** + * Returns an instruction for creating this account. + */ + async createInstruction(signer, sizeOverride) { + const size = this.size; + if (this._provider.publicKey === void 0) { + throw new Error("This function requires the Provider interface implementor to have a 'publicKey' field."); + } + return web3_js_1.SystemProgram.createAccount({ + fromPubkey: this._provider.publicKey, + newAccountPubkey: signer.publicKey, + space: sizeOverride !== null && sizeOverride !== void 0 ? sizeOverride : size, + lamports: await this._provider.connection.getMinimumBalanceForRentExemption(sizeOverride !== null && sizeOverride !== void 0 ? sizeOverride : size), + programId: this._programId + }); + } + /** + * @deprecated since version 14.0. + * + * Function returning the associated account. Args are keys to associate. + * Order matters. + */ + async associated(...args) { + const addr = await this.associatedAddress(...args); + return await this.fetch(addr); + } + /** + * @deprecated since version 14.0. + * + * Function returning the associated address. Args are keys to associate. + * Order matters. + */ + async associatedAddress(...args) { + return await pubkeyUtil.associated(this._programId, ...args); + } + async getAccountInfo(address, commitment) { + return await this._provider.connection.getAccountInfo((0, common_js_1.translateAddress)(address), commitment); + } + async getAccountInfoAndContext(address, commitment) { + return await this._provider.connection.getAccountInfoAndContext((0, common_js_1.translateAddress)(address), commitment); + } + }; + exports2.AccountClient = AccountClient; + var subscriptions = /* @__PURE__ */ new Map(); + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/event.js +var require_event4 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/event.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.EventParser = exports2.EventManager = void 0; + var assert2 = __importStar2(require("assert")); + var PROGRAM_LOG = "Program log: "; + var PROGRAM_DATA = "Program data: "; + var PROGRAM_LOG_START_INDEX = PROGRAM_LOG.length; + var PROGRAM_DATA_START_INDEX = PROGRAM_DATA.length; + var EventManager = class { + constructor(programId, provider, coder) { + this._programId = programId; + this._provider = provider; + this._eventParser = new EventParser(programId, coder); + this._eventCallbacks = /* @__PURE__ */ new Map(); + this._eventListeners = /* @__PURE__ */ new Map(); + this._listenerIdCount = 0; + } + addEventListener(eventName, callback) { + var _a; + let listener = this._listenerIdCount; + this._listenerIdCount += 1; + if (!this._eventListeners.has(eventName)) { + this._eventListeners.set(eventName, []); + } + this._eventListeners.set(eventName, ((_a = this._eventListeners.get(eventName)) !== null && _a !== void 0 ? _a : []).concat(listener)); + this._eventCallbacks.set(listener, [eventName, callback]); + if (this._onLogsSubscriptionId !== void 0) { + return listener; + } + this._onLogsSubscriptionId = this._provider.connection.onLogs(this._programId, (logs, ctx) => { + if (logs.err) { + return; + } + for (const event of this._eventParser.parseLogs(logs.logs)) { + const allListeners = this._eventListeners.get(event.name); + if (allListeners) { + allListeners.forEach((listener2) => { + const listenerCb = this._eventCallbacks.get(listener2); + if (listenerCb) { + const [, callback2] = listenerCb; + callback2(event.data, ctx.slot, logs.signature); + } + }); + } + } + }); + return listener; + } + async removeEventListener(listener) { + const callback = this._eventCallbacks.get(listener); + if (!callback) { + throw new Error(`Event listener ${listener} doesn't exist!`); + } + const [eventName] = callback; + let listeners = this._eventListeners.get(eventName); + if (!listeners) { + throw new Error(`Event listeners don't exist for ${eventName}!`); + } + this._eventCallbacks.delete(listener); + listeners = listeners.filter((l) => l !== listener); + this._eventListeners.set(eventName, listeners); + if (listeners.length === 0) { + this._eventListeners.delete(eventName); + } + if (this._eventCallbacks.size == 0) { + assert2.ok(this._eventListeners.size === 0); + if (this._onLogsSubscriptionId !== void 0) { + await this._provider.connection.removeOnLogsListener(this._onLogsSubscriptionId); + this._onLogsSubscriptionId = void 0; + } + } + } + }; + exports2.EventManager = EventManager; + var EventParser = class { + constructor(programId, coder) { + this.coder = coder; + this.programId = programId; + } + // Each log given, represents an array of messages emitted by + // a single transaction, which can execute many different programs across + // CPI boundaries. However, the subscription is only interested in the + // events emitted by *this* program. In achieving this, we keep track of the + // program execution context by parsing each log and looking for a CPI + // `invoke` call. If one exists, we know a new program is executing. So we + // push the programId onto a stack and switch the program context. This + // allows us to track, for a given log, which program was executing during + // its emission, thereby allowing us to know if a given log event was + // emitted by *this* program. If it was, then we parse the raw string and + // emit the event if the string matches the event being subscribed to. + *parseLogs(logs, errorOnDecodeFailure = false) { + const logScanner = new LogScanner(logs); + const execution = new ExecutionContext(); + let log = logScanner.next(); + while (log !== null) { + let [event, newProgram, didPop] = this.handleLog(execution, log, errorOnDecodeFailure); + if (event) { + yield event; + } + if (newProgram) { + execution.push(newProgram); + } + if (didPop) { + execution.pop(); + } + log = logScanner.next(); + } + } + // Main log handler. Returns a three element array of the event, the + // next program that was invoked for CPI, and a boolean indicating if + // a program has completed execution (and thus should be popped off the + // execution stack). + handleLog(execution, log, errorOnDecodeFailure) { + if (execution.stack.length > 0 && execution.program() === this.programId.toString()) { + return this.handleProgramLog(log, errorOnDecodeFailure); + } else { + return [null, ...this.handleSystemLog(log)]; + } + } + // Handles logs from *this* program. + handleProgramLog(log, errorOnDecodeFailure) { + if (log.startsWith(PROGRAM_LOG) || log.startsWith(PROGRAM_DATA)) { + const logStr = log.startsWith(PROGRAM_LOG) ? log.slice(PROGRAM_LOG_START_INDEX) : log.slice(PROGRAM_DATA_START_INDEX); + const event = this.coder.events.decode(logStr); + if (errorOnDecodeFailure && event === null) { + throw new Error(`Unable to decode event ${logStr}`); + } + return [event, null, false]; + } else { + return [null, ...this.handleSystemLog(log)]; + } + } + // Handles logs when the current program being executing is *not* this. + handleSystemLog(log) { + const logStart = log.split(":")[0]; + if (logStart.match(/^Program (.*) success/g) !== null) { + return [null, true]; + } else if (logStart.startsWith(`Program ${this.programId.toString()} invoke`)) { + return [this.programId.toString(), false]; + } else if (logStart.includes("invoke")) { + return ["cpi", false]; + } else { + return [null, false]; + } + } + }; + exports2.EventParser = EventParser; + var ExecutionContext = class { + constructor() { + this.stack = []; + } + program() { + assert2.ok(this.stack.length > 0); + return this.stack[this.stack.length - 1]; + } + push(newProgram) { + this.stack.push(newProgram); + } + pop() { + assert2.ok(this.stack.length > 0); + this.stack.pop(); + } + }; + var LogScanner = class { + constructor(logs) { + this.logs = logs; + } + next() { + if (this.logs.length === 0) { + return null; + } + let l = this.logs[0]; + this.logs = this.logs.slice(1); + return l; + } + }; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.js +var require_simulate2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var context_js_1 = require_context2(); + var event_js_1 = require_event4(); + var error_js_1 = require_error2(); + var SimulateFactory = class { + static build(idlIx, txFn, idlErrors, provider, coder, programId, idl) { + const simulate = async (...args) => { + var _a; + const tx = txFn(...args); + const [, ctx] = (0, context_js_1.splitArgsAndCtx)(idlIx, [...args]); + let resp = void 0; + if (provider.simulate === void 0) { + throw new Error("This function requires 'Provider.simulate' to be implemented."); + } + try { + resp = await provider.simulate(tx, ctx.signers, (_a = ctx.options) === null || _a === void 0 ? void 0 : _a.commitment); + } catch (err) { + throw (0, error_js_1.translateError)(err, idlErrors); + } + if (resp === void 0) { + throw new Error("Unable to simulate transaction"); + } + const logs = resp.logs; + if (!logs) { + throw new Error("Simulated logs not found"); + } + const events = []; + if (idl.events) { + let parser = new event_js_1.EventParser(programId, coder); + for (const event of parser.parseLogs(logs)) { + events.push(event); + } + } + return { events, raw: logs }; + }; + return simulate; + } + }; + exports2.default = SimulateFactory; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.js +var require_token_account_layout2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.decodeTokenAccount = void 0; + var bn_js_1 = __importDefault2(require_bn()); + var BufferLayout = __importStar2(require_Layout2()); + var buffer_layout_1 = require_Layout2(); + var web3_js_1 = require_index_cjs(); + function uint64(property) { + return new WrappedLayout(BufferLayout.blob(8), (b) => u6415.fromBuffer(b), (n) => n.toBuffer(), property); + } + function publicKey23(property) { + return new WrappedLayout(BufferLayout.blob(32), (b) => new web3_js_1.PublicKey(b), (key) => key.toBuffer(), property); + } + function coption18(layout, property) { + return new COptionLayout(layout, property); + } + var WrappedLayout = class extends buffer_layout_1.Layout { + constructor(layout, decoder, encoder, property) { + super(layout.span, property); + this.layout = layout; + this.decoder = decoder; + this.encoder = encoder; + } + decode(b, offset) { + return this.decoder(this.layout.decode(b, offset)); + } + encode(src, b, offset) { + return this.layout.encode(this.encoder(src), b, offset); + } + getSpan(b, offset) { + return this.layout.getSpan(b, offset); + } + }; + var COptionLayout = class extends buffer_layout_1.Layout { + constructor(layout, property) { + super(-1, property); + this.layout = layout; + this.discriminator = BufferLayout.u32(); + } + encode(src, b, offset = 0) { + if (src === null || src === void 0) { + return this.layout.span + this.discriminator.encode(0, b, offset); + } + this.discriminator.encode(1, b, offset); + return this.layout.encode(src, b, offset + 4) + 4; + } + decode(b, offset = 0) { + const discriminator = this.discriminator.decode(b, offset); + if (discriminator === 0) { + return null; + } else if (discriminator === 1) { + return this.layout.decode(b, offset + 4); + } + throw new Error("Invalid coption " + this.layout.property); + } + getSpan(b, offset = 0) { + return this.layout.getSpan(b, offset + 4) + 4; + } + }; + var u6415 = class _u64 extends bn_js_1.default { + /** + * Convert to Buffer representation + */ + toBuffer() { + const a = super.toArray().reverse(); + const b = Buffer.from(a); + if (b.length === 8) { + return b; + } + if (b.length >= 8) { + throw new Error("u64 too large"); + } + const zeroPad = Buffer.alloc(8); + b.copy(zeroPad); + return zeroPad; + } + /** + * Construct a u64 from Buffer representation + */ + static fromBuffer(buffer) { + if (buffer.length !== 8) { + throw new Error(`Invalid buffer length: ${buffer.length}`); + } + return new _u64([...buffer].reverse().map((i) => `00${i.toString(16)}`.slice(-2)).join(""), 16); + } + }; + var TOKEN_ACCOUNT_LAYOUT = BufferLayout.struct([ + publicKey23("mint"), + publicKey23("owner"), + uint64("amount"), + coption18(publicKey23(), "delegate"), + ((p) => { + const U = BufferLayout.union(BufferLayout.u8("discriminator"), null, p); + U.addVariant(0, BufferLayout.struct([]), "uninitialized"); + U.addVariant(1, BufferLayout.struct([]), "initialized"); + U.addVariant(2, BufferLayout.struct([]), "frozen"); + return U; + })("state"), + coption18(uint64(), "isNative"), + uint64("delegatedAmount"), + coption18(publicKey23(), "closeAuthority") + ]); + function decodeTokenAccount(b) { + return TOKEN_ACCOUNT_LAYOUT.decode(b); + } + exports2.decodeTokenAccount = decodeTokenAccount; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js +var require_accounts_resolver2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AccountStore = exports2.AccountsResolver = exports2.isAccountsGeneric = void 0; + var camelcase_1 = __importDefault2(require_camelcase()); + var web3_js_1 = require_index_cjs(); + var idl_js_1 = require_idl4(); + var utf8 = __importStar2(require_utf82()); + var token_js_1 = require_token2(); + var token_account_layout_1 = require_token_account_layout2(); + var index_js_1 = require_program2(); + var methods_1 = require_methods2(); + function isAccountsGeneric(accounts) { + return !(accounts instanceof web3_js_1.PublicKey); + } + exports2.isAccountsGeneric = isAccountsGeneric; + var AccountsResolver = class _AccountsResolver { + constructor(_args, _accounts, _provider, _programId, _idlIx, _accountNamespace, _idlTypes, _customResolver) { + this._accounts = _accounts; + this._provider = _provider; + this._programId = _programId; + this._idlIx = _idlIx; + this._idlTypes = _idlTypes; + this._customResolver = _customResolver; + this._args = _args; + this._accountStore = new AccountStore(_provider, _accountNamespace, this._programId); + } + args(_args) { + this._args = _args; + } + // Note: We serially resolve PDAs one by one rather than doing them + // in parallel because there can be dependencies between + // addresses. That is, one PDA can be used as a seed in another. + async resolve() { + await this.resolveConst(this._idlIx.accounts); + while (await this.resolvePdas(this._idlIx.accounts) + await this.resolveRelations(this._idlIx.accounts) + await this.resolveCustom() > 0) { + } + } + async resolveCustom() { + if (this._customResolver) { + const { accounts, resolved } = await this._customResolver({ + args: this._args, + accounts: this._accounts, + provider: this._provider, + programId: this._programId, + idlIx: this._idlIx + }); + this._accounts = accounts; + return resolved; + } + return 0; + } + resolveOptionalsHelper(partialAccounts, accountItems) { + const nestedAccountsGeneric = {}; + for (const accountItem of accountItems) { + const accountName = accountItem.name; + const partialAccount = partialAccounts[accountName]; + if (partialAccount === void 0) + continue; + if ((0, methods_1.isPartialAccounts)(partialAccount)) { + if ((0, idl_js_1.isIdlAccounts)(accountItem)) { + nestedAccountsGeneric[accountName] = this.resolveOptionalsHelper(partialAccount, accountItem["accounts"]); + } else { + nestedAccountsGeneric[accountName] = (0, methods_1.flattenPartialAccounts)(partialAccount, true); + } + } else { + if (partialAccount !== null) { + nestedAccountsGeneric[accountName] = (0, index_js_1.translateAddress)(partialAccount); + } else if (accountItem["isOptional"]) { + nestedAccountsGeneric[accountName] = this._programId; + } + } + } + return nestedAccountsGeneric; + } + resolveOptionals(accounts) { + Object.assign(this._accounts, this.resolveOptionalsHelper(accounts, this._idlIx.accounts)); + } + get(path) { + const ret = path.reduce((acc, subPath) => acc && acc[subPath], this._accounts); + if (ret && ret.toBase58) { + return ret; + } + } + set(path, value) { + let curr = this._accounts; + path.forEach((p, idx) => { + const isLast = idx == path.length - 1; + if (isLast) { + curr[p] = value; + } + curr[p] = curr[p] || {}; + curr = curr[p]; + }); + } + async resolveConst(accounts, path = []) { + for (let k = 0; k < accounts.length; k += 1) { + const accountDescOrAccounts = accounts[k]; + const subAccounts = accountDescOrAccounts.accounts; + if (subAccounts) { + await this.resolveConst(subAccounts, [ + ...path, + (0, camelcase_1.default)(accountDescOrAccounts.name) + ]); + } + const accountDesc = accountDescOrAccounts; + const accountDescName = (0, camelcase_1.default)(accountDescOrAccounts.name); + if (accountDesc.isSigner && !this.get([...path, accountDescName])) { + if (this._provider.wallet === void 0) { + throw new Error("This function requires the Provider interface implementor to have a 'wallet' field."); + } + this.set([...path, accountDescName], this._provider.wallet.publicKey); + } + if (Reflect.has(_AccountsResolver.CONST_ACCOUNTS, accountDescName) && !this.get([...path, accountDescName])) { + this.set([...path, accountDescName], _AccountsResolver.CONST_ACCOUNTS[accountDescName]); + } + } + } + async resolvePdas(accounts, path = []) { + let found = 0; + for (let k = 0; k < accounts.length; k += 1) { + const accountDesc = accounts[k]; + const subAccounts = accountDesc.accounts; + if (subAccounts) { + found += await this.resolvePdas(subAccounts, [ + ...path, + (0, camelcase_1.default)(accountDesc.name) + ]); + } + const accountDescCasted = accountDesc; + const accountDescName = (0, camelcase_1.default)(accountDesc.name); + if (accountDescCasted.pda && accountDescCasted.pda.seeds.length > 0 && !this.get([...path, accountDescName])) { + if (Boolean(await this.autoPopulatePda(accountDescCasted, path))) { + found += 1; + } + } + } + return found; + } + async resolveRelations(accounts, path = []) { + let found = 0; + for (let k = 0; k < accounts.length; k += 1) { + const accountDesc = accounts[k]; + const subAccounts = accountDesc.accounts; + if (subAccounts) { + found += await this.resolveRelations(subAccounts, [ + ...path, + (0, camelcase_1.default)(accountDesc.name) + ]); + } + const relations = accountDesc.relations || []; + const accountDescName = (0, camelcase_1.default)(accountDesc.name); + const newPath = [...path, accountDescName]; + const accountKey = this.get(newPath); + if (accountKey) { + const matching = relations.filter((rel) => !this.get([...path, (0, camelcase_1.default)(rel)])); + found += matching.length; + if (matching.length > 0) { + const account = await this._accountStore.fetchAccount({ + publicKey: accountKey + }); + await Promise.all(matching.map(async (rel) => { + const relName = (0, camelcase_1.default)(rel); + this.set([...path, relName], account[relName]); + return account[relName]; + })); + } + } + } + return found; + } + async autoPopulatePda(accountDesc, path = []) { + if (!accountDesc.pda || !accountDesc.pda.seeds) + throw new Error("Must have seeds"); + const seeds = await Promise.all(accountDesc.pda.seeds.map((seedDesc) => this.toBuffer(seedDesc, path))); + if (seeds.some((seed) => typeof seed == "undefined")) { + return; + } + const programId = await this.parseProgramId(accountDesc, path); + if (!programId) { + return; + } + const [pubkey] = await web3_js_1.PublicKey.findProgramAddress(seeds, programId); + this.set([...path, (0, camelcase_1.default)(accountDesc.name)], pubkey); + } + async parseProgramId(accountDesc, path = []) { + var _a; + if (!((_a = accountDesc.pda) === null || _a === void 0 ? void 0 : _a.programId)) { + return this._programId; + } + switch (accountDesc.pda.programId.kind) { + case "const": + return new web3_js_1.PublicKey(this.toBufferConst(accountDesc.pda.programId.value)); + case "arg": + return this.argValue(accountDesc.pda.programId); + case "account": + return await this.accountValue(accountDesc.pda.programId, path); + default: + throw new Error(`Unexpected program seed kind: ${accountDesc.pda.programId.kind}`); + } + } + async toBuffer(seedDesc, path = []) { + switch (seedDesc.kind) { + case "const": + return this.toBufferConst(seedDesc); + case "arg": + return await this.toBufferArg(seedDesc); + case "account": + return await this.toBufferAccount(seedDesc, path); + default: + throw new Error(`Unexpected seed kind: ${seedDesc.kind}`); + } + } + /** + * Recursively get the type at some path of either a primitive or a user defined struct. + */ + getType(type, path = []) { + if (path.length > 0 && type.defined) { + const subType = this._idlTypes.find((t) => t.name === type.defined); + if (!subType) { + throw new Error(`Cannot find type ${type.defined}`); + } + const structType = subType.type; + const field = structType.fields.find((field2) => field2.name === path[0]); + return this.getType(field.type, path.slice(1)); + } + return type; + } + toBufferConst(seedDesc) { + return this.toBufferValue(this.getType(seedDesc.type, (seedDesc.path || "").split(".").slice(1)), seedDesc.value); + } + async toBufferArg(seedDesc) { + const argValue = this.argValue(seedDesc); + if (typeof argValue === "undefined") { + return; + } + return this.toBufferValue(this.getType(seedDesc.type, (seedDesc.path || "").split(".").slice(1)), argValue); + } + argValue(seedDesc) { + const split = seedDesc.path.split("."); + const seedArgName = (0, camelcase_1.default)(split[0]); + const idlArgPosition = this._idlIx.args.findIndex((argDesc) => argDesc.name === seedArgName); + if (idlArgPosition === -1) { + throw new Error(`Unable to find argument for seed: ${seedArgName}`); + } + return split.slice(1).reduce((curr, path) => (curr || {})[path], this._args[idlArgPosition]); + } + async toBufferAccount(seedDesc, path = []) { + const accountValue = await this.accountValue(seedDesc, path); + if (!accountValue) { + return; + } + return this.toBufferValue(seedDesc.type, accountValue); + } + async accountValue(seedDesc, path = []) { + const pathComponents = seedDesc.path.split("."); + const fieldName = pathComponents[0]; + const fieldPubkey = this.get([...path, (0, camelcase_1.default)(fieldName)]); + if (fieldPubkey === null) { + throw new Error(`fieldPubkey is null`); + } + if (pathComponents.length === 1) { + return fieldPubkey; + } + const account = await this._accountStore.fetchAccount({ + publicKey: fieldPubkey, + name: seedDesc.account + }); + const fieldValue = this.parseAccountValue(account, pathComponents.slice(1)); + return fieldValue; + } + parseAccountValue(account, path) { + let accountField; + while (path.length > 0) { + accountField = account[(0, camelcase_1.default)(path[0])]; + path = path.slice(1); + } + return accountField; + } + // Converts the given idl valaue into a Buffer. The values here must be + // primitives. E.g. no structs. + // + // TODO: add more types here as needed. + toBufferValue(type, value) { + switch (type) { + case "u8": + return Buffer.from([value]); + case "u16": + let b = Buffer.alloc(2); + b.writeUInt16LE(value); + return b; + case "u32": + let buf = Buffer.alloc(4); + buf.writeUInt32LE(value); + return buf; + case "u64": + let bU64 = Buffer.alloc(8); + bU64.writeBigUInt64LE(BigInt(value)); + return bU64; + case "string": + return Buffer.from(utf8.encode(value)); + case "publicKey": + return value.toBuffer(); + default: + if (type.array) { + return Buffer.from(value); + } + throw new Error(`Unexpected seed type: ${type}`); + } + } + }; + exports2.AccountsResolver = AccountsResolver; + AccountsResolver.CONST_ACCOUNTS = { + associatedTokenProgram: token_js_1.ASSOCIATED_PROGRAM_ID, + rent: web3_js_1.SYSVAR_RENT_PUBKEY, + systemProgram: web3_js_1.SystemProgram.programId, + tokenProgram: token_js_1.TOKEN_PROGRAM_ID, + clock: web3_js_1.SYSVAR_CLOCK_PUBKEY + }; + var AccountStore = class { + // todo: don't use the progrma use the account namespace. + constructor(_provider, _accounts, _programId) { + this._provider = _provider; + this._programId = _programId; + this._cache = /* @__PURE__ */ new Map(); + this._idls = {}; + this._idls[_programId.toBase58()] = _accounts; + } + async ensureIdl(programId) { + if (!this._idls[programId.toBase58()]) { + const idl = await index_js_1.Program.fetchIdl(programId, this._provider); + if (idl) { + const program = new index_js_1.Program(idl, programId, this._provider); + this._idls[programId.toBase58()] = program.account; + } + } + return this._idls[programId.toBase58()]; + } + async fetchAccount({ publicKey: publicKey23, name, programId = this._programId }) { + const address = publicKey23.toString(); + if (!this._cache.has(address)) { + if (name === "TokenAccount") { + const accountInfo = await this._provider.connection.getAccountInfo(publicKey23); + if (accountInfo === null) { + throw new Error(`invalid account info for ${address}`); + } + const data = (0, token_account_layout_1.decodeTokenAccount)(accountInfo.data); + this._cache.set(address, data); + } else if (name) { + const accounts = await this.ensureIdl(programId); + if (accounts) { + const accountFetcher = accounts[(0, camelcase_1.default)(name)]; + if (accountFetcher) { + const account = await accountFetcher.fetch(publicKey23); + this._cache.set(address, account); + } + } + } else { + const account = await this._provider.connection.getAccountInfo(publicKey23); + if (account === null) { + throw new Error(`invalid account info for ${address}`); + } + const data = account.data; + const accounts = await this.ensureIdl(account.owner); + if (accounts) { + const firstAccountLayout = Object.values(accounts)[0]; + if (!firstAccountLayout) { + throw new Error("No accounts for this program"); + } + const result = firstAccountLayout.coder.accounts.decodeAny(data); + this._cache.set(address, result); + } + } + } + return this._cache.get(address); + } + }; + exports2.AccountStore = AccountStore; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.js +var require_methods2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MethodsBuilder = exports2.flattenPartialAccounts = exports2.isPartialAccounts = exports2.MethodsBuilderFactory = void 0; + var accounts_resolver_js_1 = require_accounts_resolver2(); + var common_js_1 = require_common8(); + var MethodsBuilderFactory = class { + static build(provider, programId, idlIx, ixFn, txFn, rpcFn, simulateFn, viewFn, accountNamespace, idlTypes, customResolver) { + return (...args) => new MethodsBuilder(args, ixFn, txFn, rpcFn, simulateFn, viewFn, provider, programId, idlIx, accountNamespace, idlTypes, customResolver); + } + }; + exports2.MethodsBuilderFactory = MethodsBuilderFactory; + function isPartialAccounts(partialAccount) { + return typeof partialAccount === "object" && partialAccount !== null && !("_bn" in partialAccount); + } + exports2.isPartialAccounts = isPartialAccounts; + function flattenPartialAccounts(partialAccounts, throwOnNull) { + const toReturn = {}; + for (const accountName in partialAccounts) { + const account = partialAccounts[accountName]; + if (account === null) { + if (throwOnNull) + throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!"); + continue; + } + toReturn[accountName] = isPartialAccounts(account) ? flattenPartialAccounts(account, true) : (0, common_js_1.translateAddress)(account); + } + return toReturn; + } + exports2.flattenPartialAccounts = flattenPartialAccounts; + var MethodsBuilder = class { + constructor(_args, _ixFn, _txFn, _rpcFn, _simulateFn, _viewFn, _provider, _programId, _idlIx, _accountNamespace, _idlTypes, _customResolver) { + this._ixFn = _ixFn; + this._txFn = _txFn; + this._rpcFn = _rpcFn; + this._simulateFn = _simulateFn; + this._viewFn = _viewFn; + this._programId = _programId; + this._accounts = {}; + this._remainingAccounts = []; + this._signers = []; + this._preInstructions = []; + this._postInstructions = []; + this._autoResolveAccounts = true; + this._args = _args; + this._accountsResolver = new accounts_resolver_js_1.AccountsResolver(_args, this._accounts, _provider, _programId, _idlIx, _accountNamespace, _idlTypes, _customResolver); + } + args(_args) { + this._args = _args; + this._accountsResolver.args(_args); + } + async pubkeys() { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._accounts; + } + accounts(accounts) { + this._autoResolveAccounts = true; + this._accountsResolver.resolveOptionals(accounts); + return this; + } + accountsStrict(accounts) { + this._autoResolveAccounts = false; + this._accountsResolver.resolveOptionals(accounts); + return this; + } + signers(signers) { + this._signers = this._signers.concat(signers); + return this; + } + remainingAccounts(accounts) { + this._remainingAccounts = this._remainingAccounts.concat(accounts); + return this; + } + preInstructions(ixs) { + this._preInstructions = this._preInstructions.concat(ixs); + return this; + } + postInstructions(ixs) { + this._postInstructions = this._postInstructions.concat(ixs); + return this; + } + async rpc(options) { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._rpcFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions, + options + }); + } + async rpcAndKeys(options) { + const pubkeys = await this.pubkeys(); + return { + pubkeys, + signature: await this.rpc(options) + }; + } + async view(options) { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + if (!this._viewFn) { + throw new Error("Method does not support views"); + } + return this._viewFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions, + options + }); + } + async simulate(options) { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._simulateFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions, + options + }); + } + async instruction() { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._ixFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions + }); + } + /** + * Convenient shortcut to get instructions and pubkeys via + * const { pubkeys, instructions } = await prepare(); + */ + async prepare() { + return { + instruction: await this.instruction(), + pubkeys: await this.pubkeys(), + signers: await this._signers + }; + } + async transaction() { + if (this._autoResolveAccounts) { + await this._accountsResolver.resolve(); + } + return this._txFn(...this._args, { + accounts: this._accounts, + signers: this._signers, + remainingAccounts: this._remainingAccounts, + preInstructions: this._preInstructions, + postInstructions: this._postInstructions + }); + } + }; + exports2.MethodsBuilder = MethodsBuilder; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.js +var require_views2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var idl_1 = require_idl3(); + var base64_1 = require_base642(); + var ViewFactory = class { + static build(programId, idlIx, simulateFn, idl) { + const isMut = idlIx.accounts.find((a) => a.isMut); + const hasReturn = !!idlIx.returns; + if (isMut || !hasReturn) + return; + const view = async (...args) => { + var _a, _b; + let simulationResult = await simulateFn(...args); + const returnPrefix = `Program return: ${programId} `; + let returnLog = simulationResult.raw.find((l) => l.startsWith(returnPrefix)); + if (!returnLog) { + throw new Error("View expected return log"); + } + let returnData = (0, base64_1.decode)(returnLog.slice(returnPrefix.length)); + let returnType = idlIx.returns; + if (!returnType) { + throw new Error("View expected return type"); + } + const coder = idl_1.IdlCoder.fieldLayout({ type: returnType }, Array.from([...(_a = idl.accounts) !== null && _a !== void 0 ? _a : [], ...(_b = idl.types) !== null && _b !== void 0 ? _b : []])); + return coder.decode(returnData); + }; + return view; + } + }; + exports2.default = ViewFactory; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.js +var require_namespace2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MethodsBuilderFactory = exports2.AccountClient = void 0; + var camelcase_1 = __importDefault2(require_camelcase()); + var instruction_js_1 = __importDefault2(require_instruction7()); + var transaction_js_1 = __importDefault2(require_transaction2()); + var rpc_js_1 = __importDefault2(require_rpc4()); + var account_js_1 = __importDefault2(require_account3()); + var simulate_js_1 = __importDefault2(require_simulate2()); + var common_js_1 = require_common8(); + var methods_1 = require_methods2(); + var views_1 = __importDefault2(require_views2()); + var account_js_2 = require_account3(); + Object.defineProperty(exports2, "AccountClient", { enumerable: true, get: function() { + return account_js_2.AccountClient; + } }); + var methods_2 = require_methods2(); + Object.defineProperty(exports2, "MethodsBuilderFactory", { enumerable: true, get: function() { + return methods_2.MethodsBuilderFactory; + } }); + var NamespaceFactory = class { + /** + * Generates all namespaces for a given program. + */ + static build(idl, coder, programId, provider, getCustomResolver) { + const rpc = {}; + const instruction = {}; + const transaction = {}; + const simulate = {}; + const methods = {}; + const view = {}; + const idlErrors = (0, common_js_1.parseIdlErrors)(idl); + const account = idl.accounts ? account_js_1.default.build(idl, coder, programId, provider) : {}; + idl.instructions.forEach((idlIx) => { + const ixItem = instruction_js_1.default.build(idlIx, (ixName, ix) => coder.instruction.encode(ixName, ix), programId); + const txItem = transaction_js_1.default.build(idlIx, ixItem); + const rpcItem = rpc_js_1.default.build(idlIx, txItem, idlErrors, provider); + const simulateItem = simulate_js_1.default.build(idlIx, txItem, idlErrors, provider, coder, programId, idl); + const viewItem = views_1.default.build(programId, idlIx, simulateItem, idl); + const methodItem = methods_1.MethodsBuilderFactory.build(provider, programId, idlIx, ixItem, txItem, rpcItem, simulateItem, viewItem, account, idl.types || [], getCustomResolver && getCustomResolver(idlIx)); + const name = (0, camelcase_1.default)(idlIx.name); + instruction[name] = ixItem; + transaction[name] = txItem; + rpc[name] = rpcItem; + simulate[name] = simulateItem; + methods[name] = methodItem; + if (viewItem) { + view[name] = viewItem; + } + }); + return [ + rpc, + instruction, + transaction, + account, + simulate, + methods, + view + ]; + } + }; + exports2.default = NamespaceFactory; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/index.js +var require_program2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/program/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Program = void 0; + var pako_1 = require_pako(); + var provider_js_1 = require_provider2(); + var idl_js_1 = require_idl4(); + var index_js_1 = require_coder2(); + var index_js_2 = __importDefault2(require_namespace2()); + var index_js_3 = require_bytes2(); + var event_js_1 = require_event4(); + var common_js_1 = require_common8(); + __exportStar2(require_common8(), exports2); + __exportStar2(require_context2(), exports2); + __exportStar2(require_event4(), exports2); + __exportStar2(require_namespace2(), exports2); + var Program = class _Program { + /** + * Address of the program. + */ + get programId() { + return this._programId; + } + /** + * IDL defining the program's interface. + */ + get idl() { + return this._idl; + } + /** + * Coder for serializing requests. + */ + get coder() { + return this._coder; + } + /** + * Wallet and network provider. + */ + get provider() { + return this._provider; + } + /** + * @param idl The interface definition. + * @param programId The on-chain address of the program. + * @param provider The network and wallet context to use. If not provided + * then uses [[getProvider]]. + * @param getCustomResolver A function that returns a custom account resolver + * for the given instruction. This is useful for resolving + * public keys of missing accounts when building instructions + */ + constructor(idl, programId, provider, coder, getCustomResolver) { + programId = (0, common_js_1.translateAddress)(programId); + if (!provider) { + provider = (0, provider_js_1.getProvider)(); + } + this._idl = idl; + this._provider = provider; + this._programId = programId; + this._coder = coder !== null && coder !== void 0 ? coder : new index_js_1.BorshCoder(idl); + this._events = new event_js_1.EventManager(this._programId, provider, this._coder); + const [rpc, instruction, transaction, account, simulate, methods, views] = index_js_2.default.build(idl, this._coder, programId, provider, getCustomResolver !== null && getCustomResolver !== void 0 ? getCustomResolver : () => void 0); + this.rpc = rpc; + this.instruction = instruction; + this.transaction = transaction; + this.account = account; + this.simulate = simulate; + this.methods = methods; + this.views = views; + } + /** + * Generates a Program client by fetching the IDL from the network. + * + * In order to use this method, an IDL must have been previously initialized + * via the anchor CLI's `anchor idl init` command. + * + * @param programId The on-chain address of the program. + * @param provider The network and wallet context. + */ + static async at(address, provider) { + const programId = (0, common_js_1.translateAddress)(address); + const idl = await _Program.fetchIdl(programId, provider); + if (!idl) { + throw new Error(`IDL not found for program: ${address.toString()}`); + } + return new _Program(idl, programId, provider); + } + /** + * Fetches an idl from the blockchain. + * + * In order to use this method, an IDL must have been previously initialized + * via the anchor CLI's `anchor idl init` command. + * + * @param programId The on-chain address of the program. + * @param provider The network and wallet context. + */ + static async fetchIdl(address, provider) { + provider = provider !== null && provider !== void 0 ? provider : (0, provider_js_1.getProvider)(); + const programId = (0, common_js_1.translateAddress)(address); + const idlAddr = await (0, idl_js_1.idlAddress)(programId); + const accountInfo = await provider.connection.getAccountInfo(idlAddr); + if (!accountInfo) { + return null; + } + let idlAccount = (0, idl_js_1.decodeIdlAccount)(accountInfo.data.slice(8)); + const inflatedIdl = (0, pako_1.inflate)(idlAccount.data); + return JSON.parse(index_js_3.utf8.decode(inflatedIdl)); + } + /** + * Invokes the given callback every time the given event is emitted. + * + * @param eventName The PascalCase name of the event, provided by the IDL. + * @param callback The function to invoke whenever the event is emitted from + * program logs. + */ + addEventListener(eventName, callback) { + return this._events.addEventListener(eventName, callback); + } + /** + * Unsubscribes from the given eventName. + */ + async removeEventListener(listener) { + return await this._events.removeEventListener(listener); + } + }; + exports2.Program = Program; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/native/system.js +var require_system4 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/native/system.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IDL = exports2.coder = exports2.program = void 0; + var web3_js_1 = require_index_cjs(); + var index_js_1 = require_program2(); + var index_js_2 = require_system3(); + var SYSTEM_PROGRAM_ID = new web3_js_1.PublicKey("11111111111111111111111111111111"); + function program(provider) { + return new index_js_1.Program(exports2.IDL, SYSTEM_PROGRAM_ID, provider, coder()); + } + exports2.program = program; + function coder() { + return new index_js_2.SystemCoder(exports2.IDL); + } + exports2.coder = coder; + exports2.IDL = { + version: "0.1.0", + name: "system_program", + instructions: [ + { + name: "createAccount", + accounts: [ + { + name: "from", + isMut: true, + isSigner: true + }, + { + name: "to", + isMut: true, + isSigner: true + } + ], + args: [ + { + name: "lamports", + type: "u64" + }, + { + name: "space", + type: "u64" + }, + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "assign", + accounts: [ + { + name: "pubkey", + isMut: true, + isSigner: true + } + ], + args: [ + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "transfer", + accounts: [ + { + name: "from", + isMut: true, + isSigner: true + }, + { + name: "to", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "lamports", + type: "u64" + } + ] + }, + { + name: "createAccountWithSeed", + accounts: [ + { + name: "from", + isMut: true, + isSigner: true + }, + { + name: "to", + isMut: true, + isSigner: false + }, + { + name: "base", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "base", + type: "publicKey" + }, + { + name: "seed", + type: "string" + }, + { + name: "lamports", + type: "u64" + }, + { + name: "space", + type: "u64" + }, + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "advanceNonceAccount", + accounts: [ + { + name: "nonce", + isMut: true, + isSigner: false + }, + { + name: "recentBlockhashes", + isMut: false, + isSigner: false + }, + { + name: "authorized", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "authorized", + type: "publicKey" + } + ] + }, + { + name: "withdrawNonceAccount", + accounts: [ + { + name: "nonce", + isMut: true, + isSigner: false + }, + { + name: "to", + isMut: true, + isSigner: false + }, + { + name: "recentBlockhashes", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + }, + { + name: "authorized", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "lamports", + type: "u64" + } + ] + }, + { + name: "initializeNonceAccount", + accounts: [ + { + name: "nonce", + isMut: true, + isSigner: true + }, + { + name: "recentBlockhashes", + isMut: false, + isSigner: false + }, + { + name: "rent", + isMut: false, + isSigner: false + } + ], + args: [ + { + name: "authorized", + type: "publicKey" + } + ] + }, + { + name: "authorizeNonceAccount", + accounts: [ + { + name: "nonce", + isMut: true, + isSigner: false + }, + { + name: "authorized", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "authorized", + type: "publicKey" + } + ] + }, + { + name: "allocate", + accounts: [ + { + name: "pubkey", + isMut: true, + isSigner: true + } + ], + args: [ + { + name: "space", + type: "u64" + } + ] + }, + { + name: "allocateWithSeed", + accounts: [ + { + name: "account", + isMut: true, + isSigner: false + }, + { + name: "base", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "base", + type: "publicKey" + }, + { + name: "seed", + type: "string" + }, + { + name: "space", + type: "u64" + }, + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "assignWithSeed", + accounts: [ + { + name: "account", + isMut: true, + isSigner: false + }, + { + name: "base", + isMut: false, + isSigner: true + } + ], + args: [ + { + name: "base", + type: "publicKey" + }, + { + name: "seed", + type: "string" + }, + { + name: "owner", + type: "publicKey" + } + ] + }, + { + name: "transferWithSeed", + accounts: [ + { + name: "from", + isMut: true, + isSigner: false + }, + { + name: "base", + isMut: false, + isSigner: true + }, + { + name: "to", + isMut: true, + isSigner: false + } + ], + args: [ + { + name: "lamports", + type: "u64" + }, + { + name: "seed", + type: "string" + }, + { + name: "owner", + type: "publicKey" + } + ] + } + ], + accounts: [ + { + name: "nonce", + type: { + kind: "struct", + fields: [ + { + name: "version", + type: "u32" + }, + { + name: "state", + type: "u32" + }, + { + name: "authorizedPubkey", + type: "publicKey" + }, + { + name: "nonce", + type: "publicKey" + }, + { + name: "feeCalculator", + type: { + defined: "FeeCalculator" + } + } + ] + } + } + ], + types: [ + { + name: "FeeCalculator", + type: { + kind: "struct", + fields: [ + { + name: "lamportsPerSignature", + type: "u64" + } + ] + } + } + ] + }; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/native/index.js +var require_native3 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/native/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Native = void 0; + var system_js_1 = require_system4(); + var Native = class { + static system(provider) { + return (0, system_js_1.program)(provider); + } + }; + exports2.Native = Native; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/workspace.js +var require_workspace2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/workspace.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + var camelcase_1 = __importDefault2(require_camelcase()); + var toml = __importStar2(require_toml()); + var web3_js_1 = require_index_cjs(); + var index_js_1 = require_program2(); + var common_js_1 = require_common7(); + var _populatedWorkspace = false; + var workspace = new Proxy({}, { + get(workspaceCache, programName) { + if (common_js_1.isBrowser) { + throw new Error("Workspaces aren't available in the browser"); + } + const fs = require("fs"); + const process2 = require("process"); + if (!_populatedWorkspace) { + const path = require("path"); + let projectRoot = process2.cwd(); + while (!fs.existsSync(path.join(projectRoot, "Anchor.toml"))) { + const parentDir = path.dirname(projectRoot); + if (parentDir === projectRoot) { + projectRoot = void 0; + } + projectRoot = parentDir; + } + if (projectRoot === void 0) { + throw new Error("Could not find workspace root."); + } + const idlFolder = `${projectRoot}/target/idl`; + if (!fs.existsSync(idlFolder)) { + throw new Error(`${idlFolder} doesn't exist. Did you use "anchor build"?`); + } + const idlMap = /* @__PURE__ */ new Map(); + fs.readdirSync(idlFolder).filter((file) => file.endsWith(".json")).forEach((file) => { + const filePath = `${idlFolder}/${file}`; + const idlStr = fs.readFileSync(filePath); + const idl = JSON.parse(idlStr); + idlMap.set(idl.name, idl); + const name = (0, camelcase_1.default)(idl.name, { pascalCase: true }); + if (idl.metadata && idl.metadata.address) { + workspaceCache[name] = new index_js_1.Program(idl, new web3_js_1.PublicKey(idl.metadata.address)); + } + }); + const anchorToml = toml.parse(fs.readFileSync(path.join(projectRoot, "Anchor.toml"), "utf-8")); + const clusterId = anchorToml.provider.cluster; + if (anchorToml.programs && anchorToml.programs[clusterId]) { + attachWorkspaceOverride(workspaceCache, anchorToml.programs[clusterId], idlMap); + } + _populatedWorkspace = true; + } + return workspaceCache[programName]; + } + }); + function attachWorkspaceOverride(workspaceCache, overrideConfig, idlMap) { + Object.keys(overrideConfig).forEach((programName) => { + const wsProgramName = (0, camelcase_1.default)(programName, { pascalCase: true }); + const entry = overrideConfig[programName]; + const overrideAddress = new web3_js_1.PublicKey(typeof entry === "string" ? entry : entry.address); + let idl = idlMap.get(programName); + if (typeof entry !== "string" && entry.idl) { + idl = JSON.parse(require("fs").readFileSync(entry.idl, "utf-8")); + } + if (!idl) { + throw new Error(`Error loading workspace IDL for ${programName}`); + } + workspaceCache[wsProgramName] = new index_js_1.Program(idl, overrideAddress); + }); + } + exports2.default = workspace; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/index.js +var require_cjs5 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/dist/cjs/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.utils = exports2.AnchorProvider = exports2.setProvider = exports2.getProvider = exports2.web3 = exports2.BN = void 0; + var nodewallet_1 = __importDefault2(require_nodewallet2()); + var common_js_1 = require_common7(); + var bn_js_1 = require_bn(); + Object.defineProperty(exports2, "BN", { enumerable: true, get: function() { + return __importDefault2(bn_js_1).default; + } }); + exports2.web3 = __importStar2(require_index_cjs()); + var provider_js_1 = require_provider2(); + Object.defineProperty(exports2, "getProvider", { enumerable: true, get: function() { + return provider_js_1.getProvider; + } }); + Object.defineProperty(exports2, "setProvider", { enumerable: true, get: function() { + return provider_js_1.setProvider; + } }); + Object.defineProperty(exports2, "AnchorProvider", { enumerable: true, get: function() { + return provider_js_1.AnchorProvider; + } }); + __exportStar2(require_error2(), exports2); + __exportStar2(require_coder2(), exports2); + exports2.utils = __importStar2(require_utils9()); + __exportStar2(require_program2(), exports2); + __exportStar2(require_native3(), exports2); + if (!common_js_1.isBrowser) { + exports2.workspace = require_workspace2().default; + exports2.Wallet = require_nodewallet2().default; + } + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/src/sdk.js +var require_sdk = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/src/sdk.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DirectedStakeSdk = exports2.UPDATE_VOTE_RECORD_EVENT = exports2.REMOVE_VOTE_RECORD_EVENT = exports2.CREATE_VOTE_RECORD_EVENT = exports2.CREATE_ROOT_EVENT = exports2.DIRECTED_STAKE_SEED = exports2.DEFAULT_DIRECTED_STAKE_ROOT = exports2.DEFAULT_DIRECTED_STAKE_PROGRAM_ID = void 0; + var generated = __importStar2(require_directed_stake()); + var anchor_1 = require_cjs5(); + var web3_js_1 = require_index_cjs(); + var nodewallet_1 = __importDefault2(require_nodewallet2()); + var DirectedStakeIDL = generated.IDL; + exports2.DEFAULT_DIRECTED_STAKE_PROGRAM_ID = "dstK1PDHNoKN9MdmftRzsEbXP5T1FTBiQBm1Ee3meVd"; + exports2.DEFAULT_DIRECTED_STAKE_ROOT = "DrooToPS3MLqgZwBiK2fkAPUTUgKNV3CGb2NqFRAL4Zf"; + exports2.DIRECTED_STAKE_SEED = "stake-direction"; + exports2.CREATE_ROOT_EVENT = "CreateRootEvent"; + exports2.CREATE_VOTE_RECORD_EVENT = "CreateVoteRecordEvent"; + exports2.REMOVE_VOTE_RECORD_EVENT = "RemoveVoteRecordEvent"; + exports2.UPDATE_VOTE_RECORD_EVENT = "UpdateVoteRecordEvent"; + var DirectedStakeSdk = class { + constructor({ programId = new web3_js_1.PublicKey(exports2.DEFAULT_DIRECTED_STAKE_PROGRAM_ID), connection, wallet, opts = {} }) { + this.program = this.getProgram({ programId, connection, wallet, opts }); + } + getProgram({ connection, wallet, opts, programId }) { + if (wallet instanceof web3_js_1.Keypair) { + wallet = new nodewallet_1.default(wallet); + } + const provider = new anchor_1.AnchorProvider(connection, wallet, opts); + return new anchor_1.Program(DirectedStakeIDL, programId, provider); + } + }; + exports2.DirectedStakeSdk = DirectedStakeSdk; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/src/api.js +var require_api2 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/src/api.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.findVoteRecords = exports2.root = exports2.voteRecord = void 0; + async function voteRecord({ sdk, address }) { + return sdk.program.account.voteRecord.fetch(address); + } + exports2.voteRecord = voteRecord; + async function root2({ sdk, address }) { + return sdk.program.account.root.fetch(address); + } + exports2.root = root2; + async function findVoteRecords({ sdk, root: root3, owner, validatorVote }) { + const filters = []; + if (root3) { + filters.push({ + memcmp: { + bytes: root3.toBase58(), + offset: 8 + } + }); + } + if (owner) { + filters.push({ + memcmp: { + bytes: owner.toBase58(), + offset: 40 + } + }); + } + if (validatorVote) { + filters.push({ + memcmp: { + bytes: validatorVote.toBase58(), + offset: 72 + } + }); + } + return await sdk.program.account.voteRecord.all(filters); + } + exports2.findVoteRecords = findVoteRecords; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/src/accounts.js +var require_accounts5 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/src/accounts.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.voteRecordAddress = void 0; + var utf8_1 = require_utf82(); + var web3_js_1 = require_index_cjs(); + var sdk_1 = require_sdk(); + function voteRecordAddress({ directedStakeProgramId = new web3_js_1.PublicKey(sdk_1.DEFAULT_DIRECTED_STAKE_PROGRAM_ID), root: root2, owner }) { + const [address, bump] = web3_js_1.PublicKey.findProgramAddressSync([(0, utf8_1.encode)(sdk_1.DIRECTED_STAKE_SEED), root2.toBytes(), owner.toBytes()], directedStakeProgramId); + return { address, bump }; + } + exports2.voteRecordAddress = voteRecordAddress; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/src/withCreateVote.js +var require_withCreateVote = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/src/withCreateVote.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.withCreateVote = void 0; + var web3_js_1 = require_index_cjs(); + var sdk_1 = require_sdk(); + var accounts_1 = require_accounts5(); + async function withCreateVote({ sdk, root: root2 = new web3_js_1.PublicKey(sdk_1.DEFAULT_DIRECTED_STAKE_ROOT), validatorVote, rentPayer }) { + const owner = sdk.program.provider.publicKey; + rentPayer = rentPayer || sdk.program.provider.publicKey; + const voteRecord = (0, accounts_1.voteRecordAddress)({ + directedStakeProgramId: sdk.program.programId, + root: root2, + owner + }).address; + const instruction = await sdk.program.methods.createVote().accountsStrict({ + voteRecord, + root: root2, + owner, + validatorVote, + rentPayer, + systemProgram: web3_js_1.SystemProgram.programId + }).instruction(); + return { address: voteRecord, instruction }; + } + exports2.withCreateVote = withCreateVote; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/src/withRemoveVote.js +var require_withRemoveVote = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/src/withRemoveVote.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.withRemoveVote = void 0; + var web3_js_1 = require_index_cjs(); + var sdk_1 = require_sdk(); + var accounts_1 = require_accounts5(); + var api_1 = require_api2(); + async function withRemoveVote({ sdk, voteRecord, root: root2 = new web3_js_1.PublicKey(sdk_1.DEFAULT_DIRECTED_STAKE_ROOT), rentCollector }) { + const owner = sdk.program.provider.publicKey; + if (!voteRecord && !root2) { + throw new Error("voteRecord or root must be provided to do removeVote"); + } else if (!voteRecord && root2) { + voteRecord = (0, accounts_1.voteRecordAddress)({ + directedStakeProgramId: sdk.program.programId, + root: root2, + owner + }).address; + } else if (voteRecord && !root2) { + const voteRecordData = await (0, api_1.voteRecord)({ address: voteRecord, sdk }); + root2 = root2 || voteRecordData.root; + } + rentCollector = rentCollector || sdk.program.provider.publicKey; + const instruction = await sdk.program.methods.removeVote().accountsStrict({ + root: root2, + owner, + voteRecord, + rentCollector + }).instruction(); + return { instruction }; + } + exports2.withRemoveVote = withRemoveVote; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/src/withUpdateVote.js +var require_withUpdateVote = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/src/withUpdateVote.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.withUpdateVote = void 0; + var web3_js_1 = require_index_cjs(); + var sdk_1 = require_sdk(); + var accounts_1 = require_accounts5(); + async function withUpdateVote({ sdk, voteRecord, root: root2 = new web3_js_1.PublicKey(sdk_1.DEFAULT_DIRECTED_STAKE_ROOT), validatorVote }) { + const owner = sdk.program.provider.publicKey; + if (!voteRecord && !root2) { + throw new Error("voteRecord or root with owner must be provided to do updateVote"); + } else if (!voteRecord && root2) { + voteRecord = (0, accounts_1.voteRecordAddress)({ + directedStakeProgramId: sdk.program.programId, + root: root2, + owner + }).address; + } + const instruction = await sdk.program.methods.updateVote().accountsStrict({ + voteRecord, + owner, + validatorVote + }).instruction(); + return { instruction }; + } + exports2.withUpdateVote = withUpdateVote; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/src/withCreateRoot.js +var require_withCreateRoot = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/src/withCreateRoot.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.withCreateRoot = void 0; + var web3_js_1 = require_index_cjs(); + async function withCreateRoot({ sdk, root: root2, rentPayer }) { + rentPayer = rentPayer || sdk.program.provider.publicKey; + const instruction = await sdk.program.methods.createRoot().accountsStrict({ + root: root2, + rentPayer, + systemProgram: web3_js_1.SystemProgram.programId + }).instruction(); + return { instruction }; + } + exports2.withCreateRoot = withCreateRoot; + } +}); + +// node_modules/@marinade.finance/directed-stake-sdk/src/index.js +var require_src7 = __commonJS({ + "node_modules/@marinade.finance/directed-stake-sdk/src/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_sdk(), exports2); + __exportStar2(require_api2(), exports2); + __exportStar2(require_accounts5(), exports2); + __exportStar2(require_withCreateVote(), exports2); + __exportStar2(require_withRemoveVote(), exports2); + __exportStar2(require_withUpdateVote(), exports2); + __exportStar2(require_withCreateRoot(), exports2); + } +}); + +// node_modules/@babel/runtime/helpers/typeof.js +var require_typeof = __commonJS({ + "node_modules/@babel/runtime/helpers/typeof.js"(exports2, module2) { + function _typeof(o) { + "@babel/helpers - typeof"; + return module2.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, module2.exports.__esModule = true, module2.exports["default"] = module2.exports, _typeof(o); + } + module2.exports = _typeof, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; + } +}); + +// node_modules/@babel/runtime/helpers/toPrimitive.js +var require_toPrimitive = __commonJS({ + "node_modules/@babel/runtime/helpers/toPrimitive.js"(exports2, module2) { + var _typeof = require_typeof()["default"]; + function toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + module2.exports = toPrimitive, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; + } +}); + +// node_modules/@babel/runtime/helpers/toPropertyKey.js +var require_toPropertyKey = __commonJS({ + "node_modules/@babel/runtime/helpers/toPropertyKey.js"(exports2, module2) { + var _typeof = require_typeof()["default"]; + var toPrimitive = require_toPrimitive(); + function toPropertyKey(t) { + var i = toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + module2.exports = toPropertyKey, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; + } +}); + +// node_modules/@babel/runtime/helpers/defineProperty.js +var require_defineProperty = __commonJS({ + "node_modules/@babel/runtime/helpers/defineProperty.js"(exports2, module2) { + var toPropertyKey = require_toPropertyKey(); + function _defineProperty(e, r, t) { + return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: true, + configurable: true, + writable: true + }) : e[r] = t, e; + } + module2.exports = _defineProperty, module2.exports.__esModule = true, module2.exports["default"] = module2.exports; + } +}); + +// node_modules/@solana/spl-stake-pool/node_modules/@solana/spl-token/lib/index.cjs.js +var require_index_cjs2 = __commonJS({ + "node_modules/@solana/spl-stake-pool/node_modules/@solana/spl-token/lib/index.cjs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var _defineProperty = require_defineProperty(); + var buffer = require("buffer"); + var assert2 = require("assert"); + var BN3 = require_bn(); + var BufferLayout = require_Layout2(); + var web3_js = require_index_cjs(); + function _interopDefaultLegacy(e) { + return e && typeof e === "object" && "default" in e ? e : { "default": e }; + } + function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = /* @__PURE__ */ Object.create(null); + if (e) { + Object.keys(e).forEach(function(k) { + if (k !== "default") { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function() { + return e[k]; + } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); + } + var _defineProperty__default = /* @__PURE__ */ _interopDefaultLegacy(_defineProperty); + var assert__default = /* @__PURE__ */ _interopDefaultLegacy(assert2); + var BN__default = /* @__PURE__ */ _interopDefaultLegacy(BN3); + var BufferLayout__namespace = /* @__PURE__ */ _interopNamespace(BufferLayout); + var publicKey23 = (property = "publicKey") => { + return BufferLayout__namespace.blob(32, property); + }; + var uint64 = (property = "uint64") => { + return BufferLayout__namespace.blob(8, property); + }; + function sendAndConfirmTransaction(title, connection, transaction, ...signers) { + return web3_js.sendAndConfirmTransaction(connection, transaction, signers, { + skipPreflight: false + }); + } + var TOKEN_PROGRAM_ID2 = new web3_js.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"); + var ASSOCIATED_TOKEN_PROGRAM_ID2 = new web3_js.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"); + var FAILED_TO_FIND_ACCOUNT = "Failed to find account"; + var INVALID_ACCOUNT_OWNER = "Invalid account owner"; + function pubkeyToBuffer(publicKey24) { + return buffer.Buffer.from(publicKey24.toBuffer()); + } + var u6415 = class _u64 extends BN__default["default"] { + /** + * Convert to Buffer representation + */ + toBuffer() { + const a = super.toArray().reverse(); + const b = buffer.Buffer.from(a); + if (b.length === 8) { + return b; + } + assert__default["default"](b.length < 8, "u64 too large"); + const zeroPad = buffer.Buffer.alloc(8); + b.copy(zeroPad); + return zeroPad; + } + /** + * Construct a u64 from Buffer representation + */ + static fromBuffer(buffer2) { + assert__default["default"](buffer2.length === 8, `Invalid buffer length: ${buffer2.length}`); + return new _u64([...buffer2].reverse().map((i) => `00${i.toString(16)}`.slice(-2)).join(""), 16); + } + }; + function isAccount(accountOrPublicKey) { + return "publicKey" in accountOrPublicKey; + } + var AuthorityTypeCodes = { + MintTokens: 0, + FreezeAccount: 1, + AccountOwner: 2, + CloseAccount: 3 + }; + var NATIVE_MINT2 = new web3_js.PublicKey("So11111111111111111111111111111111111111112"); + var MintLayout2 = BufferLayout__namespace.struct([BufferLayout__namespace.u32("mintAuthorityOption"), publicKey23("mintAuthority"), uint64("supply"), BufferLayout__namespace.u8("decimals"), BufferLayout__namespace.u8("isInitialized"), BufferLayout__namespace.u32("freezeAuthorityOption"), publicKey23("freezeAuthority")]); + var AccountLayout = BufferLayout__namespace.struct([publicKey23("mint"), publicKey23("owner"), uint64("amount"), BufferLayout__namespace.u32("delegateOption"), publicKey23("delegate"), BufferLayout__namespace.u8("state"), BufferLayout__namespace.u32("isNativeOption"), uint64("isNative"), uint64("delegatedAmount"), BufferLayout__namespace.u32("closeAuthorityOption"), publicKey23("closeAuthority")]); + var MultisigLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("m"), BufferLayout__namespace.u8("n"), BufferLayout__namespace.u8("is_initialized"), publicKey23("signer1"), publicKey23("signer2"), publicKey23("signer3"), publicKey23("signer4"), publicKey23("signer5"), publicKey23("signer6"), publicKey23("signer7"), publicKey23("signer8"), publicKey23("signer9"), publicKey23("signer10"), publicKey23("signer11")]); + var Token = class _Token { + /** + * @private + */ + /** + * The public key identifying this mint + */ + /** + * Program Identifier for the Token program + */ + /** + * Program Identifier for the Associated Token program + */ + /** + * Fee payer + */ + /** + * Create a Token object attached to the specific mint + * + * @param connection The connection to use + * @param token Public key of the mint + * @param programId token programId + * @param payer Payer of fees + */ + constructor(connection, publicKey24, programId, payer) { + _defineProperty__default["default"](this, "connection", void 0); + _defineProperty__default["default"](this, "publicKey", void 0); + _defineProperty__default["default"](this, "programId", void 0); + _defineProperty__default["default"](this, "associatedProgramId", void 0); + _defineProperty__default["default"](this, "payer", void 0); + Object.assign(this, { + connection, + publicKey: publicKey24, + programId, + payer, + // Hard code is ok; Overriding is needed only for tests + associatedProgramId: ASSOCIATED_TOKEN_PROGRAM_ID2 + }); + } + /** + * Get the minimum balance for the mint to be rent exempt + * + * @return Number of lamports required + */ + static async getMinBalanceRentForExemptMint(connection) { + return await connection.getMinimumBalanceForRentExemption(MintLayout2.span); + } + /** + * Get the minimum balance for the account to be rent exempt + * + * @return Number of lamports required + */ + static async getMinBalanceRentForExemptAccount(connection) { + return await connection.getMinimumBalanceForRentExemption(AccountLayout.span); + } + /** + * Get the minimum balance for the multsig to be rent exempt + * + * @return Number of lamports required + */ + static async getMinBalanceRentForExemptMultisig(connection) { + return await connection.getMinimumBalanceForRentExemption(MultisigLayout.span); + } + /** + * Create and initialize a token. + * + * @param connection The connection to use + * @param payer Fee payer for transaction + * @param mintAuthority Account or multisig that will control minting + * @param freezeAuthority Optional account or multisig that can freeze token accounts + * @param decimals Location of the decimal place + * @param programId Optional token programId, uses the system programId by default + * @return Token object for the newly minted token + */ + static async createMint(connection, payer, mintAuthority, freezeAuthority, decimals, programId) { + const mintAccount = web3_js.Keypair.generate(); + const token = new _Token(connection, mintAccount.publicKey, programId, payer); + const balanceNeeded = await _Token.getMinBalanceRentForExemptMint(connection); + const transaction = new web3_js.Transaction(); + transaction.add(web3_js.SystemProgram.createAccount({ + fromPubkey: payer.publicKey, + newAccountPubkey: mintAccount.publicKey, + lamports: balanceNeeded, + space: MintLayout2.span, + programId + })); + transaction.add(_Token.createInitMintInstruction(programId, mintAccount.publicKey, decimals, mintAuthority, freezeAuthority)); + await sendAndConfirmTransaction("createAccount and InitializeMint", connection, transaction, payer, mintAccount); + return token; + } + /** + * Create and initialize a new account. + * + * This account may then be used as a `transfer()` or `approve()` destination + * + * @param owner User account that will own the new account + * @return Public key of the new empty account + */ + async createAccount(owner) { + const balanceNeeded = await _Token.getMinBalanceRentForExemptAccount(this.connection); + const newAccount = web3_js.Keypair.generate(); + const transaction = new web3_js.Transaction(); + transaction.add(web3_js.SystemProgram.createAccount({ + fromPubkey: this.payer.publicKey, + newAccountPubkey: newAccount.publicKey, + lamports: balanceNeeded, + space: AccountLayout.span, + programId: this.programId + })); + const mintPublicKey = this.publicKey; + transaction.add(_Token.createInitAccountInstruction(this.programId, mintPublicKey, newAccount.publicKey, owner)); + await sendAndConfirmTransaction("createAccount and InitializeAccount", this.connection, transaction, this.payer, newAccount); + return newAccount.publicKey; + } + /** + * Create and initialize the associated account. + * + * This account may then be used as a `transfer()` or `approve()` destination + * + * @param owner User account that will own the new account + * @return Public key of the new associated account + */ + async createAssociatedTokenAccount(owner) { + const associatedAddress = await _Token.getAssociatedTokenAddress(this.associatedProgramId, this.programId, this.publicKey, owner); + return this.createAssociatedTokenAccountInternal(owner, associatedAddress); + } + async createAssociatedTokenAccountInternal(owner, associatedAddress) { + await sendAndConfirmTransaction("CreateAssociatedTokenAccount", this.connection, new web3_js.Transaction().add(_Token.createAssociatedTokenAccountInstruction(this.associatedProgramId, this.programId, this.publicKey, associatedAddress, owner, this.payer.publicKey)), this.payer); + return associatedAddress; + } + /** + * Retrieve the associated account or create one if not found. + * + * This account may then be used as a `transfer()` or `approve()` destination + * + * @param owner User account that will own the new account + * @return The new associated account + */ + async getOrCreateAssociatedAccountInfo(owner) { + const associatedAddress = await _Token.getAssociatedTokenAddress(this.associatedProgramId, this.programId, this.publicKey, owner); + try { + return await this.getAccountInfo(associatedAddress); + } catch (err) { + if (err.message === FAILED_TO_FIND_ACCOUNT || err.message === INVALID_ACCOUNT_OWNER) { + try { + await this.createAssociatedTokenAccountInternal(owner, associatedAddress); + } catch (err2) { + } + return await this.getAccountInfo(associatedAddress); + } else { + throw err; + } + } + } + /** + * Create and initialize a new account on the special native token mint. + * + * In order to be wrapped, the account must have a balance of native tokens + * when it is initialized with the token program. + * + * This function sends lamports to the new account before initializing it. + * + * @param connection A solana web3 connection + * @param programId The token program ID + * @param owner The owner of the new token account + * @param payer The source of the lamports to initialize, and payer of the initialization fees. + * @param amount The amount of lamports to wrap + * @return {Promise} The new token account + */ + static async createWrappedNativeAccount(connection, programId, owner, payer, amount) { + const balanceNeeded = await _Token.getMinBalanceRentForExemptAccount(connection); + const newAccount = web3_js.Keypair.generate(); + const transaction = new web3_js.Transaction(); + transaction.add(web3_js.SystemProgram.createAccount({ + fromPubkey: payer.publicKey, + newAccountPubkey: newAccount.publicKey, + lamports: balanceNeeded, + space: AccountLayout.span, + programId + })); + transaction.add(web3_js.SystemProgram.transfer({ + fromPubkey: payer.publicKey, + toPubkey: newAccount.publicKey, + lamports: amount + })); + transaction.add(_Token.createInitAccountInstruction(programId, NATIVE_MINT2, newAccount.publicKey, owner)); + await sendAndConfirmTransaction("createAccount, transfer, and initializeAccount", connection, transaction, payer, newAccount); + return newAccount.publicKey; + } + /** + * Create and initialize a new multisig. + * + * This account may then be used for multisignature verification + * + * @param m Number of required signatures + * @param signers Full set of signers + * @return Public key of the new multisig account + */ + async createMultisig(m, signers) { + const multisigAccount = web3_js.Keypair.generate(); + const balanceNeeded = await _Token.getMinBalanceRentForExemptMultisig(this.connection); + const transaction = new web3_js.Transaction(); + transaction.add(web3_js.SystemProgram.createAccount({ + fromPubkey: this.payer.publicKey, + newAccountPubkey: multisigAccount.publicKey, + lamports: balanceNeeded, + space: MultisigLayout.span, + programId: this.programId + })); + let keys = [{ + pubkey: multisigAccount.publicKey, + isSigner: false, + isWritable: true + }, { + pubkey: web3_js.SYSVAR_RENT_PUBKEY, + isSigner: false, + isWritable: false + }]; + signers.forEach((signer) => keys.push({ + pubkey: signer, + isSigner: false, + isWritable: false + })); + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), BufferLayout__namespace.u8("m")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 2, + // InitializeMultisig instruction + m + }, data); + transaction.add({ + keys, + programId: this.programId, + data + }); + await sendAndConfirmTransaction("createAccount and InitializeMultisig", this.connection, transaction, this.payer, multisigAccount); + return multisigAccount.publicKey; + } + /** + * Retrieve mint information + */ + async getMintInfo() { + const info2 = await this.connection.getAccountInfo(this.publicKey); + if (info2 === null) { + throw new Error("Failed to find mint account"); + } + if (!info2.owner.equals(this.programId)) { + throw new Error(`Invalid mint owner: ${JSON.stringify(info2.owner)}`); + } + if (info2.data.length != MintLayout2.span) { + throw new Error(`Invalid mint size`); + } + const data = buffer.Buffer.from(info2.data); + const mintInfo = MintLayout2.decode(data); + if (mintInfo.mintAuthorityOption === 0) { + mintInfo.mintAuthority = null; + } else { + mintInfo.mintAuthority = new web3_js.PublicKey(mintInfo.mintAuthority); + } + mintInfo.supply = u6415.fromBuffer(mintInfo.supply); + mintInfo.isInitialized = mintInfo.isInitialized != 0; + if (mintInfo.freezeAuthorityOption === 0) { + mintInfo.freezeAuthority = null; + } else { + mintInfo.freezeAuthority = new web3_js.PublicKey(mintInfo.freezeAuthority); + } + return mintInfo; + } + /** + * Retrieve account information + * + * @param account Public key of the account + */ + async getAccountInfo(account, commitment) { + const info2 = await this.connection.getAccountInfo(account, commitment); + if (info2 === null) { + throw new Error(FAILED_TO_FIND_ACCOUNT); + } + if (!info2.owner.equals(this.programId)) { + throw new Error(INVALID_ACCOUNT_OWNER); + } + if (info2.data.length != AccountLayout.span) { + throw new Error(`Invalid account size`); + } + const data = buffer.Buffer.from(info2.data); + const accountInfo = AccountLayout.decode(data); + accountInfo.address = account; + accountInfo.mint = new web3_js.PublicKey(accountInfo.mint); + accountInfo.owner = new web3_js.PublicKey(accountInfo.owner); + accountInfo.amount = u6415.fromBuffer(accountInfo.amount); + if (accountInfo.delegateOption === 0) { + accountInfo.delegate = null; + accountInfo.delegatedAmount = new u6415(); + } else { + accountInfo.delegate = new web3_js.PublicKey(accountInfo.delegate); + accountInfo.delegatedAmount = u6415.fromBuffer(accountInfo.delegatedAmount); + } + accountInfo.isInitialized = accountInfo.state !== 0; + accountInfo.isFrozen = accountInfo.state === 2; + if (accountInfo.isNativeOption === 1) { + accountInfo.rentExemptReserve = u6415.fromBuffer(accountInfo.isNative); + accountInfo.isNative = true; + } else { + accountInfo.rentExemptReserve = null; + accountInfo.isNative = false; + } + if (accountInfo.closeAuthorityOption === 0) { + accountInfo.closeAuthority = null; + } else { + accountInfo.closeAuthority = new web3_js.PublicKey(accountInfo.closeAuthority); + } + if (!accountInfo.mint.equals(this.publicKey)) { + throw new Error(`Invalid account mint: ${JSON.stringify(accountInfo.mint)} !== ${JSON.stringify(this.publicKey)}`); + } + return accountInfo; + } + /** + * Retrieve Multisig information + * + * @param multisig Public key of the account + */ + async getMultisigInfo(multisig) { + const info2 = await this.connection.getAccountInfo(multisig); + if (info2 === null) { + throw new Error("Failed to find multisig"); + } + if (!info2.owner.equals(this.programId)) { + throw new Error(`Invalid multisig owner`); + } + if (info2.data.length != MultisigLayout.span) { + throw new Error(`Invalid multisig size`); + } + const data = buffer.Buffer.from(info2.data); + const multisigInfo = MultisigLayout.decode(data); + multisigInfo.signer1 = new web3_js.PublicKey(multisigInfo.signer1); + multisigInfo.signer2 = new web3_js.PublicKey(multisigInfo.signer2); + multisigInfo.signer3 = new web3_js.PublicKey(multisigInfo.signer3); + multisigInfo.signer4 = new web3_js.PublicKey(multisigInfo.signer4); + multisigInfo.signer5 = new web3_js.PublicKey(multisigInfo.signer5); + multisigInfo.signer6 = new web3_js.PublicKey(multisigInfo.signer6); + multisigInfo.signer7 = new web3_js.PublicKey(multisigInfo.signer7); + multisigInfo.signer8 = new web3_js.PublicKey(multisigInfo.signer8); + multisigInfo.signer9 = new web3_js.PublicKey(multisigInfo.signer9); + multisigInfo.signer10 = new web3_js.PublicKey(multisigInfo.signer10); + multisigInfo.signer11 = new web3_js.PublicKey(multisigInfo.signer11); + return multisigInfo; + } + /** + * Transfer tokens to another account + * + * @param source Source account + * @param destination Destination account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `owner` is a multiSig + * @param amount Number of tokens to transfer + */ + async transfer(source, destination, owner, multiSigners, amount) { + let ownerPublicKey; + let signers; + if (isAccount(owner)) { + ownerPublicKey = owner.publicKey; + signers = [owner]; + } else { + ownerPublicKey = owner; + signers = multiSigners; + } + return await sendAndConfirmTransaction("Transfer", this.connection, new web3_js.Transaction().add(_Token.createTransferInstruction(this.programId, source, destination, ownerPublicKey, multiSigners, amount)), this.payer, ...signers); + } + /** + * Grant a third-party permission to transfer up the specified number of tokens from an account + * + * @param account Public key of the account + * @param delegate Account authorized to perform a transfer tokens from the source account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `owner` is a multiSig + * @param amount Maximum number of tokens the delegate may transfer + */ + async approve(account, delegate, owner, multiSigners, amount) { + let ownerPublicKey; + let signers; + if (isAccount(owner)) { + ownerPublicKey = owner.publicKey; + signers = [owner]; + } else { + ownerPublicKey = owner; + signers = multiSigners; + } + await sendAndConfirmTransaction("Approve", this.connection, new web3_js.Transaction().add(_Token.createApproveInstruction(this.programId, account, delegate, ownerPublicKey, multiSigners, amount)), this.payer, ...signers); + } + /** + * Remove approval for the transfer of any remaining tokens + * + * @param account Public key of the account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `owner` is a multiSig + */ + async revoke(account, owner, multiSigners) { + let ownerPublicKey; + let signers; + if (isAccount(owner)) { + ownerPublicKey = owner.publicKey; + signers = [owner]; + } else { + ownerPublicKey = owner; + signers = multiSigners; + } + await sendAndConfirmTransaction("Revoke", this.connection, new web3_js.Transaction().add(_Token.createRevokeInstruction(this.programId, account, ownerPublicKey, multiSigners)), this.payer, ...signers); + } + /** + * Assign a new authority to the account + * + * @param account Public key of the account + * @param newAuthority New authority of the account + * @param authorityType Type of authority to set + * @param currentAuthority Current authority of the account + * @param multiSigners Signing accounts if `currentAuthority` is a multiSig + */ + async setAuthority(account, newAuthority, authorityType, currentAuthority, multiSigners) { + let currentAuthorityPublicKey; + let signers; + if (isAccount(currentAuthority)) { + currentAuthorityPublicKey = currentAuthority.publicKey; + signers = [currentAuthority]; + } else { + currentAuthorityPublicKey = currentAuthority; + signers = multiSigners; + } + await sendAndConfirmTransaction("SetAuthority", this.connection, new web3_js.Transaction().add(_Token.createSetAuthorityInstruction(this.programId, account, newAuthority, authorityType, currentAuthorityPublicKey, multiSigners)), this.payer, ...signers); + } + /** + * Mint new tokens + * + * @param dest Public key of the account to mint to + * @param authority Minting authority + * @param multiSigners Signing accounts if `authority` is a multiSig + * @param amount Amount to mint + */ + async mintTo(dest, authority, multiSigners, amount) { + let ownerPublicKey; + let signers; + if (isAccount(authority)) { + ownerPublicKey = authority.publicKey; + signers = [authority]; + } else { + ownerPublicKey = authority; + signers = multiSigners; + } + await sendAndConfirmTransaction("MintTo", this.connection, new web3_js.Transaction().add(_Token.createMintToInstruction(this.programId, this.publicKey, dest, ownerPublicKey, multiSigners, amount)), this.payer, ...signers); + } + /** + * Burn tokens + * + * @param account Account to burn tokens from + * @param owner Account owner + * @param multiSigners Signing accounts if `owner` is a multiSig + * @param amount Amount to burn + */ + async burn(account, owner, multiSigners, amount) { + let ownerPublicKey; + let signers; + if (isAccount(owner)) { + ownerPublicKey = owner.publicKey; + signers = [owner]; + } else { + ownerPublicKey = owner; + signers = multiSigners; + } + await sendAndConfirmTransaction("Burn", this.connection, new web3_js.Transaction().add(_Token.createBurnInstruction(this.programId, this.publicKey, account, ownerPublicKey, multiSigners, amount)), this.payer, ...signers); + } + /** + * Close account + * + * @param account Account to close + * @param dest Account to receive the remaining balance of the closed account + * @param authority Authority which is allowed to close the account + * @param multiSigners Signing accounts if `authority` is a multiSig + */ + async closeAccount(account, dest, authority, multiSigners) { + let authorityPublicKey; + let signers; + if (isAccount(authority)) { + authorityPublicKey = authority.publicKey; + signers = [authority]; + } else { + authorityPublicKey = authority; + signers = multiSigners; + } + await sendAndConfirmTransaction("CloseAccount", this.connection, new web3_js.Transaction().add(_Token.createCloseAccountInstruction(this.programId, account, dest, authorityPublicKey, multiSigners)), this.payer, ...signers); + } + /** + * Freeze account + * + * @param account Account to freeze + * @param authority The mint freeze authority + * @param multiSigners Signing accounts if `authority` is a multiSig + */ + async freezeAccount(account, authority, multiSigners) { + let authorityPublicKey; + let signers; + if (isAccount(authority)) { + authorityPublicKey = authority.publicKey; + signers = [authority]; + } else { + authorityPublicKey = authority; + signers = multiSigners; + } + await sendAndConfirmTransaction("FreezeAccount", this.connection, new web3_js.Transaction().add(_Token.createFreezeAccountInstruction(this.programId, account, this.publicKey, authorityPublicKey, multiSigners)), this.payer, ...signers); + } + /** + * Thaw account + * + * @param account Account to thaw + * @param authority The mint freeze authority + * @param multiSigners Signing accounts if `authority` is a multiSig + */ + async thawAccount(account, authority, multiSigners) { + let authorityPublicKey; + let signers; + if (isAccount(authority)) { + authorityPublicKey = authority.publicKey; + signers = [authority]; + } else { + authorityPublicKey = authority; + signers = multiSigners; + } + await sendAndConfirmTransaction("ThawAccount", this.connection, new web3_js.Transaction().add(_Token.createThawAccountInstruction(this.programId, account, this.publicKey, authorityPublicKey, multiSigners)), this.payer, ...signers); + } + /** + * Transfer tokens to another account, asserting the token mint and decimals + * + * @param source Source account + * @param destination Destination account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `owner` is a multiSig + * @param amount Number of tokens to transfer + * @param decimals Number of decimals in transfer amount + */ + async transferChecked(source, destination, owner, multiSigners, amount, decimals) { + let ownerPublicKey; + let signers; + if (isAccount(owner)) { + ownerPublicKey = owner.publicKey; + signers = [owner]; + } else { + ownerPublicKey = owner; + signers = multiSigners; + } + return await sendAndConfirmTransaction("TransferChecked", this.connection, new web3_js.Transaction().add(_Token.createTransferCheckedInstruction(this.programId, source, this.publicKey, destination, ownerPublicKey, multiSigners, amount, decimals)), this.payer, ...signers); + } + /** + * Grant a third-party permission to transfer up the specified number of tokens from an account, + * asserting the token mint and decimals + * + * @param account Public key of the account + * @param delegate Account authorized to perform a transfer tokens from the source account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `owner` is a multiSig + * @param amount Maximum number of tokens the delegate may transfer + * @param decimals Number of decimals in approve amount + */ + async approveChecked(account, delegate, owner, multiSigners, amount, decimals) { + let ownerPublicKey; + let signers; + if (isAccount(owner)) { + ownerPublicKey = owner.publicKey; + signers = [owner]; + } else { + ownerPublicKey = owner; + signers = multiSigners; + } + await sendAndConfirmTransaction("ApproveChecked", this.connection, new web3_js.Transaction().add(_Token.createApproveCheckedInstruction(this.programId, account, this.publicKey, delegate, ownerPublicKey, multiSigners, amount, decimals)), this.payer, ...signers); + } + /** + * Mint new tokens, asserting the token mint and decimals + * + * @param dest Public key of the account to mint to + * @param authority Minting authority + * @param multiSigners Signing accounts if `authority` is a multiSig + * @param amount Amount to mint + * @param decimals Number of decimals in amount to mint + */ + async mintToChecked(dest, authority, multiSigners, amount, decimals) { + let ownerPublicKey; + let signers; + if (isAccount(authority)) { + ownerPublicKey = authority.publicKey; + signers = [authority]; + } else { + ownerPublicKey = authority; + signers = multiSigners; + } + await sendAndConfirmTransaction("MintToChecked", this.connection, new web3_js.Transaction().add(_Token.createMintToCheckedInstruction(this.programId, this.publicKey, dest, ownerPublicKey, multiSigners, amount, decimals)), this.payer, ...signers); + } + /** + * Burn tokens, asserting the token mint and decimals + * + * @param account Account to burn tokens from + * @param owner Account owner + * @param multiSigners Signing accounts if `owner` is a multiSig + * @param amount Amount to burn + * @param decimals Number of decimals in amount to burn + */ + async burnChecked(account, owner, multiSigners, amount, decimals) { + let ownerPublicKey; + let signers; + if (isAccount(owner)) { + ownerPublicKey = owner.publicKey; + signers = [owner]; + } else { + ownerPublicKey = owner; + signers = multiSigners; + } + await sendAndConfirmTransaction("BurnChecked", this.connection, new web3_js.Transaction().add(_Token.createBurnCheckedInstruction(this.programId, this.publicKey, account, ownerPublicKey, multiSigners, amount, decimals)), this.payer, ...signers); + } + /** + * Sync amount in native SPL token account to underlying lamports + * + * @param nativeAccount Account to sync + */ + async syncNative(nativeAccount) { + await sendAndConfirmTransaction("SyncNative", this.connection, new web3_js.Transaction().add(_Token.createSyncNativeInstruction(this.programId, nativeAccount)), this.payer); + } + /** + * Construct an InitializeMint instruction + * + * @param programId SPL Token program account + * @param mint Token mint account + * @param decimals Number of decimals in token account amounts + * @param mintAuthority Minting authority + * @param freezeAuthority Optional authority that can freeze token accounts + */ + static createInitMintInstruction(programId, mint, decimals, mintAuthority, freezeAuthority) { + let keys = [{ + pubkey: mint, + isSigner: false, + isWritable: true + }, { + pubkey: web3_js.SYSVAR_RENT_PUBKEY, + isSigner: false, + isWritable: false + }]; + const commandDataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), BufferLayout__namespace.u8("decimals"), publicKey23("mintAuthority"), BufferLayout__namespace.u8("option"), publicKey23("freezeAuthority")]); + let data = buffer.Buffer.alloc(1024); + { + const encodeLength = commandDataLayout.encode({ + instruction: 0, + // InitializeMint instruction + decimals, + mintAuthority: pubkeyToBuffer(mintAuthority), + option: freezeAuthority === null ? 0 : 1, + freezeAuthority: pubkeyToBuffer(freezeAuthority || new web3_js.PublicKey(0)) + }, data); + data = data.slice(0, encodeLength); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct an InitializeAccount instruction + * + * @param programId SPL Token program account + * @param mint Token mint account + * @param account New account + * @param owner Owner of the new account + */ + static createInitAccountInstruction(programId, mint, account, owner) { + const keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }, { + pubkey: mint, + isSigner: false, + isWritable: false + }, { + pubkey: owner, + isSigner: false, + isWritable: false + }, { + pubkey: web3_js.SYSVAR_RENT_PUBKEY, + isSigner: false, + isWritable: false + }]; + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 1 + // InitializeAccount instruction + }, data); + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a Transfer instruction + * + * @param programId SPL Token program account + * @param source Source account + * @param destination Destination account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `authority` is a multiSig + * @param amount Number of tokens to transfer + */ + static createTransferInstruction(programId, source, destination, owner, multiSigners, amount) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), uint64("amount")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 3, + // Transfer instruction + amount: new u6415(amount).toBuffer() + }, data); + let keys = [{ + pubkey: source, + isSigner: false, + isWritable: true + }, { + pubkey: destination, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: owner, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: owner, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct an Approve instruction + * + * @param programId SPL Token program account + * @param account Public key of the account + * @param delegate Account authorized to perform a transfer of tokens from the source account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `owner` is a multiSig + * @param amount Maximum number of tokens the delegate may transfer + */ + static createApproveInstruction(programId, account, delegate, owner, multiSigners, amount) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), uint64("amount")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 4, + // Approve instruction + amount: new u6415(amount).toBuffer() + }, data); + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }, { + pubkey: delegate, + isSigner: false, + isWritable: false + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: owner, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: owner, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a Revoke instruction + * + * @param programId SPL Token program account + * @param account Public key of the account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `owner` is a multiSig + */ + static createRevokeInstruction(programId, account, owner, multiSigners) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 5 + // Approve instruction + }, data); + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: owner, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: owner, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a SetAuthority instruction + * + * @param programId SPL Token program account + * @param account Public key of the account + * @param newAuthority New authority of the account + * @param authorityType Type of authority to set + * @param currentAuthority Current authority of the specified type + * @param multiSigners Signing accounts if `currentAuthority` is a multiSig + */ + static createSetAuthorityInstruction(programId, account, newAuthority, authorityType, currentAuthority, multiSigners) { + const commandDataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), BufferLayout__namespace.u8("authorityType"), BufferLayout__namespace.u8("option"), publicKey23("newAuthority")]); + let data = buffer.Buffer.alloc(1024); + { + const encodeLength = commandDataLayout.encode({ + instruction: 6, + // SetAuthority instruction + authorityType: AuthorityTypeCodes[authorityType], + option: newAuthority === null ? 0 : 1, + newAuthority: pubkeyToBuffer(newAuthority || new web3_js.PublicKey(0)) + }, data); + data = data.slice(0, encodeLength); + } + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: currentAuthority, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: currentAuthority, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a MintTo instruction + * + * @param programId SPL Token program account + * @param mint Public key of the mint + * @param dest Public key of the account to mint to + * @param authority The mint authority + * @param multiSigners Signing accounts if `authority` is a multiSig + * @param amount Amount to mint + */ + static createMintToInstruction(programId, mint, dest, authority, multiSigners, amount) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), uint64("amount")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 7, + // MintTo instruction + amount: new u6415(amount).toBuffer() + }, data); + let keys = [{ + pubkey: mint, + isSigner: false, + isWritable: true + }, { + pubkey: dest, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: authority, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: authority, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a Burn instruction + * + * @param programId SPL Token program account + * @param mint Mint for the account + * @param account Account to burn tokens from + * @param owner Owner of the account + * @param multiSigners Signing accounts if `authority` is a multiSig + * @param amount amount to burn + */ + static createBurnInstruction(programId, mint, account, owner, multiSigners, amount) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), uint64("amount")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 8, + // Burn instruction + amount: new u6415(amount).toBuffer() + }, data); + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }, { + pubkey: mint, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: owner, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: owner, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a Close instruction + * + * @param programId SPL Token program account + * @param account Account to close + * @param dest Account to receive the remaining balance of the closed account + * @param authority Account Close authority + * @param multiSigners Signing accounts if `owner` is a multiSig + */ + static createCloseAccountInstruction(programId, account, dest, owner, multiSigners) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 9 + // CloseAccount instruction + }, data); + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }, { + pubkey: dest, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: owner, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: owner, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a Freeze instruction + * + * @param programId SPL Token program account + * @param account Account to freeze + * @param mint Mint account + * @param authority Mint freeze authority + * @param multiSigners Signing accounts if `owner` is a multiSig + */ + static createFreezeAccountInstruction(programId, account, mint, authority, multiSigners) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 10 + // FreezeAccount instruction + }, data); + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }, { + pubkey: mint, + isSigner: false, + isWritable: false + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: authority, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: authority, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a Thaw instruction + * + * @param programId SPL Token program account + * @param account Account to thaw + * @param mint Mint account + * @param authority Mint freeze authority + * @param multiSigners Signing accounts if `owner` is a multiSig + */ + static createThawAccountInstruction(programId, account, mint, authority, multiSigners) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 11 + // ThawAccount instruction + }, data); + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }, { + pubkey: mint, + isSigner: false, + isWritable: false + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: authority, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: authority, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a TransferChecked instruction + * + * @param programId SPL Token program account + * @param source Source account + * @param mint Mint account + * @param destination Destination account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `authority` is a multiSig + * @param amount Number of tokens to transfer + * @param decimals Number of decimals in transfer amount + */ + static createTransferCheckedInstruction(programId, source, mint, destination, owner, multiSigners, amount, decimals) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), uint64("amount"), BufferLayout__namespace.u8("decimals")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 12, + // TransferChecked instruction + amount: new u6415(amount).toBuffer(), + decimals + }, data); + let keys = [{ + pubkey: source, + isSigner: false, + isWritable: true + }, { + pubkey: mint, + isSigner: false, + isWritable: false + }, { + pubkey: destination, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: owner, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: owner, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct an ApproveChecked instruction + * + * @param programId SPL Token program account + * @param account Public key of the account + * @param mint Mint account + * @param delegate Account authorized to perform a transfer of tokens from the source account + * @param owner Owner of the source account + * @param multiSigners Signing accounts if `owner` is a multiSig + * @param amount Maximum number of tokens the delegate may transfer + * @param decimals Number of decimals in approve amount + */ + static createApproveCheckedInstruction(programId, account, mint, delegate, owner, multiSigners, amount, decimals) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), uint64("amount"), BufferLayout__namespace.u8("decimals")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 13, + // ApproveChecked instruction + amount: new u6415(amount).toBuffer(), + decimals + }, data); + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }, { + pubkey: mint, + isSigner: false, + isWritable: false + }, { + pubkey: delegate, + isSigner: false, + isWritable: false + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: owner, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: owner, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a MintToChecked instruction + * + * @param programId SPL Token program account + * @param mint Public key of the mint + * @param dest Public key of the account to mint to + * @param authority The mint authority + * @param multiSigners Signing accounts if `authority` is a multiSig + * @param amount Amount to mint + * @param decimals Number of decimals in amount to mint + */ + static createMintToCheckedInstruction(programId, mint, dest, authority, multiSigners, amount, decimals) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), uint64("amount"), BufferLayout__namespace.u8("decimals")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 14, + // MintToChecked instruction + amount: new u6415(amount).toBuffer(), + decimals + }, data); + let keys = [{ + pubkey: mint, + isSigner: false, + isWritable: true + }, { + pubkey: dest, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: authority, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: authority, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a BurnChecked instruction + * + * @param programId SPL Token program account + * @param mint Mint for the account + * @param account Account to burn tokens from + * @param owner Owner of the account + * @param multiSigners Signing accounts if `authority` is a multiSig + * @param amount amount to burn + */ + static createBurnCheckedInstruction(programId, mint, account, owner, multiSigners, amount, decimals) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction"), uint64("amount"), BufferLayout__namespace.u8("decimals")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 15, + // BurnChecked instruction + amount: new u6415(amount).toBuffer(), + decimals + }, data); + let keys = [{ + pubkey: account, + isSigner: false, + isWritable: true + }, { + pubkey: mint, + isSigner: false, + isWritable: true + }]; + if (multiSigners.length === 0) { + keys.push({ + pubkey: owner, + isSigner: true, + isWritable: false + }); + } else { + keys.push({ + pubkey: owner, + isSigner: false, + isWritable: false + }); + multiSigners.forEach((signer) => keys.push({ + pubkey: signer.publicKey, + isSigner: true, + isWritable: false + })); + } + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Construct a SyncNative instruction + * + * @param programId SPL Token program account + * @param nativeAccount Account to sync lamports from + */ + static createSyncNativeInstruction(programId, nativeAccount) { + const dataLayout = BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]); + const data = buffer.Buffer.alloc(dataLayout.span); + dataLayout.encode({ + instruction: 17 + // SyncNative instruction + }, data); + let keys = [{ + pubkey: nativeAccount, + isSigner: false, + isWritable: true + }]; + return new web3_js.TransactionInstruction({ + keys, + programId, + data + }); + } + /** + * Get the address for the associated token account + * + * @param associatedProgramId SPL Associated Token program account + * @param programId SPL Token program account + * @param mint Token mint account + * @param owner Owner of the new account + * @return Public key of the associated token account + */ + static async getAssociatedTokenAddress(associatedProgramId, programId, mint, owner, allowOwnerOffCurve = false) { + if (!allowOwnerOffCurve && !web3_js.PublicKey.isOnCurve(owner.toBuffer())) { + throw new Error(`Owner cannot sign: ${owner.toString()}`); + } + return (await web3_js.PublicKey.findProgramAddress([owner.toBuffer(), programId.toBuffer(), mint.toBuffer()], associatedProgramId))[0]; + } + /** + * Construct the AssociatedTokenProgram instruction to create the associated + * token account + * + * @param associatedProgramId SPL Associated Token program account + * @param programId SPL Token program account + * @param mint Token mint account + * @param associatedAccount New associated account + * @param owner Owner of the new account + * @param payer Payer of fees + */ + static createAssociatedTokenAccountInstruction(associatedProgramId, programId, mint, associatedAccount, owner, payer) { + const data = buffer.Buffer.alloc(0); + let keys = [{ + pubkey: payer, + isSigner: true, + isWritable: true + }, { + pubkey: associatedAccount, + isSigner: false, + isWritable: true + }, { + pubkey: owner, + isSigner: false, + isWritable: false + }, { + pubkey: mint, + isSigner: false, + isWritable: false + }, { + pubkey: web3_js.SystemProgram.programId, + isSigner: false, + isWritable: false + }, { + pubkey: programId, + isSigner: false, + isWritable: false + }, { + pubkey: web3_js.SYSVAR_RENT_PUBKEY, + isSigner: false, + isWritable: false + }]; + return new web3_js.TransactionInstruction({ + keys, + programId: associatedProgramId, + data + }); + } + }; + exports2.ASSOCIATED_TOKEN_PROGRAM_ID = ASSOCIATED_TOKEN_PROGRAM_ID2; + exports2.AccountLayout = AccountLayout; + exports2.MintLayout = MintLayout2; + exports2.NATIVE_MINT = NATIVE_MINT2; + exports2.TOKEN_PROGRAM_ID = TOKEN_PROGRAM_ID2; + exports2.Token = Token; + exports2.u64 = u6415; + } +}); + +// node_modules/@project-serum/borsh/dist/lib/index.js +var require_lib7 = __commonJS({ + "node_modules/@project-serum/borsh/dist/lib/index.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.map = exports2.array = exports2.rustEnum = exports2.str = exports2.vecU8 = exports2.tagged = exports2.vec = exports2.bool = exports2.option = exports2.publicKey = exports2.i128 = exports2.u128 = exports2.i64 = exports2.u64 = exports2.struct = exports2.f64 = exports2.f32 = exports2.i32 = exports2.u32 = exports2.i16 = exports2.u16 = exports2.i8 = exports2.u8 = void 0; + var buffer_layout_1 = require_Layout2(); + var web3_js_1 = require_index_cjs(); + var bn_js_1 = __importDefault2(require_bn()); + var buffer_layout_2 = require_Layout2(); + Object.defineProperty(exports2, "u8", { enumerable: true, get: function() { + return buffer_layout_2.u8; + } }); + Object.defineProperty(exports2, "i8", { enumerable: true, get: function() { + return buffer_layout_2.s8; + } }); + Object.defineProperty(exports2, "u16", { enumerable: true, get: function() { + return buffer_layout_2.u16; + } }); + Object.defineProperty(exports2, "i16", { enumerable: true, get: function() { + return buffer_layout_2.s16; + } }); + Object.defineProperty(exports2, "u32", { enumerable: true, get: function() { + return buffer_layout_2.u32; + } }); + Object.defineProperty(exports2, "i32", { enumerable: true, get: function() { + return buffer_layout_2.s32; + } }); + Object.defineProperty(exports2, "f32", { enumerable: true, get: function() { + return buffer_layout_2.f32; + } }); + Object.defineProperty(exports2, "f64", { enumerable: true, get: function() { + return buffer_layout_2.f64; + } }); + Object.defineProperty(exports2, "struct", { enumerable: true, get: function() { + return buffer_layout_2.struct; + } }); + var BNLayout = class extends buffer_layout_1.Layout { + constructor(span, signed, property) { + super(span, property); + this.blob = buffer_layout_1.blob(span); + this.signed = signed; + } + decode(b, offset = 0) { + const num = new bn_js_1.default(this.blob.decode(b, offset), 10, "le"); + if (this.signed) { + return num.fromTwos(this.span * 8).clone(); + } + return num; + } + encode(src, b, offset = 0) { + if (this.signed) { + src = src.toTwos(this.span * 8); + } + return this.blob.encode(src.toArrayLike(Buffer, "le", this.span), b, offset); + } + }; + function u6415(property) { + return new BNLayout(8, false, property); + } + exports2.u64 = u6415; + function i643(property) { + return new BNLayout(8, true, property); + } + exports2.i64 = i643; + function u1282(property) { + return new BNLayout(16, false, property); + } + exports2.u128 = u1282; + function i128(property) { + return new BNLayout(16, true, property); + } + exports2.i128 = i128; + var WrappedLayout = class extends buffer_layout_1.Layout { + constructor(layout, decoder, encoder, property) { + super(layout.span, property); + this.layout = layout; + this.decoder = decoder; + this.encoder = encoder; + } + decode(b, offset) { + return this.decoder(this.layout.decode(b, offset)); + } + encode(src, b, offset) { + return this.layout.encode(this.encoder(src), b, offset); + } + getSpan(b, offset) { + return this.layout.getSpan(b, offset); + } + }; + function publicKey23(property) { + return new WrappedLayout(buffer_layout_1.blob(32), (b) => new web3_js_1.PublicKey(b), (key) => key.toBuffer(), property); + } + exports2.publicKey = publicKey23; + var OptionLayout = class extends buffer_layout_1.Layout { + constructor(layout, property) { + super(-1, property); + this.layout = layout; + this.discriminator = buffer_layout_1.u8(); + } + encode(src, b, offset = 0) { + if (src === null || src === void 0) { + return this.discriminator.encode(0, b, offset); + } + this.discriminator.encode(1, b, offset); + return this.layout.encode(src, b, offset + 1) + 1; + } + decode(b, offset = 0) { + const discriminator = this.discriminator.decode(b, offset); + if (discriminator === 0) { + return null; + } else if (discriminator === 1) { + return this.layout.decode(b, offset + 1); + } + throw new Error("Invalid option " + this.property); + } + getSpan(b, offset = 0) { + const discriminator = this.discriminator.decode(b, offset); + if (discriminator === 0) { + return 1; + } else if (discriminator === 1) { + return this.layout.getSpan(b, offset + 1) + 1; + } + throw new Error("Invalid option " + this.property); + } + }; + function option(layout, property) { + return new OptionLayout(layout, property); + } + exports2.option = option; + function bool3(property) { + return new WrappedLayout(buffer_layout_1.u8(), decodeBool, encodeBool, property); + } + exports2.bool = bool3; + function decodeBool(value) { + if (value === 0) { + return false; + } else if (value === 1) { + return true; + } + throw new Error("Invalid bool: " + value); + } + function encodeBool(value) { + return value ? 1 : 0; + } + function vec(elementLayout, property) { + const length = buffer_layout_1.u32("length"); + const layout = buffer_layout_1.struct([ + length, + buffer_layout_1.seq(elementLayout, buffer_layout_1.offset(length, -length.span), "values") + ]); + return new WrappedLayout(layout, ({ values }) => values, (values) => ({ values }), property); + } + exports2.vec = vec; + function tagged(tag, layout, property) { + const wrappedLayout = buffer_layout_1.struct([ + u6415("tag"), + layout.replicate("data") + ]); + function decodeTag({ tag: receivedTag, data }) { + if (!receivedTag.eq(tag)) { + throw new Error("Invalid tag, expected: " + tag.toString("hex") + ", got: " + receivedTag.toString("hex")); + } + return data; + } + return new WrappedLayout(wrappedLayout, decodeTag, (data) => ({ tag, data }), property); + } + exports2.tagged = tagged; + function vecU8(property) { + const length = buffer_layout_1.u32("length"); + const layout = buffer_layout_1.struct([ + length, + buffer_layout_1.blob(buffer_layout_1.offset(length, -length.span), "data") + ]); + return new WrappedLayout(layout, ({ data }) => data, (data) => ({ data }), property); + } + exports2.vecU8 = vecU8; + function str(property) { + return new WrappedLayout(vecU8(), (data) => data.toString("utf-8"), (s) => Buffer.from(s, "utf-8"), property); + } + exports2.str = str; + function rustEnum(variants, property, discriminant) { + const unionLayout = buffer_layout_1.union(discriminant !== null && discriminant !== void 0 ? discriminant : buffer_layout_1.u8(), property); + variants.forEach((variant, index) => unionLayout.addVariant(index, variant, variant.property)); + return unionLayout; + } + exports2.rustEnum = rustEnum; + function array11(elementLayout, length, property) { + const layout = buffer_layout_1.struct([ + buffer_layout_1.seq(elementLayout, length, "values") + ]); + return new WrappedLayout(layout, ({ values }) => values, (values) => ({ values }), property); + } + exports2.array = array11; + var MapEntryLayout = class extends buffer_layout_1.Layout { + constructor(keyLayout, valueLayout, property) { + super(keyLayout.span + valueLayout.span, property); + this.keyLayout = keyLayout; + this.valueLayout = valueLayout; + } + decode(b, offset) { + offset = offset || 0; + const key = this.keyLayout.decode(b, offset); + const value = this.valueLayout.decode(b, offset + this.keyLayout.getSpan(b, offset)); + return [key, value]; + } + encode(src, b, offset) { + offset = offset || 0; + const keyBytes = this.keyLayout.encode(src[0], b, offset); + const valueBytes = this.valueLayout.encode(src[1], b, offset + keyBytes); + return keyBytes + valueBytes; + } + getSpan(b, offset) { + return this.keyLayout.getSpan(b, offset) + this.valueLayout.getSpan(b, offset); + } + }; + function map(keyLayout, valueLayout, property) { + const length = buffer_layout_1.u32("length"); + const layout = buffer_layout_1.struct([ + length, + buffer_layout_1.seq(new MapEntryLayout(keyLayout, valueLayout), buffer_layout_1.offset(length, -length.span), "values") + ]); + return new WrappedLayout(layout, ({ values }) => new Map(values), (values) => ({ values: Array.from(values.entries()) }), property); + } + exports2.map = map; + } +}); + +// node_modules/@solana/spl-stake-pool/dist/index.cjs.js +var require_index_cjs3 = __commonJS({ + "node_modules/@solana/spl-stake-pool/dist/index.cjs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var web3_js = require_index_cjs(); + var splToken = require_index_cjs2(); + var BufferLayout = require_Layout(); + var buffer = require("buffer"); + var borsh = require_lib7(); + var BN3 = require_bn(); + function _interopDefaultLegacy(e) { + return e && typeof e === "object" && "default" in e ? e : { "default": e }; + } + function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = /* @__PURE__ */ Object.create(null); + if (e) { + Object.keys(e).forEach(function(k) { + if (k !== "default") { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function() { + return e[k]; + } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); + } + var BufferLayout__namespace = /* @__PURE__ */ _interopNamespace(BufferLayout); + var BN__default = /* @__PURE__ */ _interopDefaultLegacy(BN3); + function solToLamports(amount) { + if (isNaN(amount)) + return Number(0); + return Number(amount * web3_js.LAMPORTS_PER_SOL); + } + function lamportsToSol(lamports) { + if (typeof lamports === "number") { + return Math.abs(lamports) / web3_js.LAMPORTS_PER_SOL; + } + let signMultiplier = 1; + if (lamports.isNeg()) { + signMultiplier = -1; + } + const absLamports = lamports.abs(); + const lamportsString = absLamports.toString(10).padStart(10, "0"); + const splitIndex = lamportsString.length - 9; + const solString = lamportsString.slice(0, splitIndex) + "." + lamportsString.slice(splitIndex); + return signMultiplier * parseFloat(solString); + } + var STAKE_POOL_PROGRAM_ID = new web3_js.PublicKey("SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy"); + var MAX_VALIDATORS_TO_UPDATE = 5; + var TRANSIENT_STAKE_SEED_PREFIX = buffer.Buffer.from("transient"); + var MINIMUM_ACTIVE_STAKE = web3_js.LAMPORTS_PER_SOL; + async function findWithdrawAuthorityProgramAddress(programId, stakePoolAddress) { + const [publicKey23] = await web3_js.PublicKey.findProgramAddress([stakePoolAddress.toBuffer(), buffer.Buffer.from("withdraw")], programId); + return publicKey23; + } + async function findStakeProgramAddress(programId, voteAccountAddress, stakePoolAddress) { + const [publicKey23] = await web3_js.PublicKey.findProgramAddress([voteAccountAddress.toBuffer(), stakePoolAddress.toBuffer()], programId); + return publicKey23; + } + async function findTransientStakeProgramAddress(programId, voteAccountAddress, stakePoolAddress, seed) { + const [publicKey23] = await web3_js.PublicKey.findProgramAddress([ + TRANSIENT_STAKE_SEED_PREFIX, + voteAccountAddress.toBuffer(), + stakePoolAddress.toBuffer(), + new Uint8Array(seed.toArray("le", 8)) + ], programId); + return publicKey23; + } + var StructError = class extends TypeError { + constructor(failure, failures) { + let cached; + const { + message, + ...rest + } = failure; + const { + path + } = failure; + const msg = path.length === 0 ? message : "At path: " + path.join(".") + " -- " + message; + super(msg); + Object.assign(this, rest); + this.name = this.constructor.name; + this.failures = () => { + var _cached; + return (_cached = cached) != null ? _cached : cached = [failure, ...failures()]; + }; + } + }; + function isIterable(x) { + return isObject(x) && typeof x[Symbol.iterator] === "function"; + } + function isObject(x) { + return typeof x === "object" && x != null; + } + function print(value) { + return typeof value === "string" ? JSON.stringify(value) : "" + value; + } + function shiftIterator(input) { + const { + done, + value + } = input.next(); + return done ? void 0 : value; + } + function toFailure(result, context, struct2, value) { + if (result === true) { + return; + } else if (result === false) { + result = {}; + } else if (typeof result === "string") { + result = { + message: result + }; + } + const { + path, + branch + } = context; + const { + type: type2 + } = struct2; + const { + refinement, + message = "Expected a value of type `" + type2 + "`" + (refinement ? " with refinement `" + refinement + "`" : "") + ", but received: `" + print(value) + "`" + } = result; + return { + value, + type: type2, + refinement, + key: path[path.length - 1], + path, + branch, + ...result, + message + }; + } + function* toFailures(result, context, struct2, value) { + if (!isIterable(result)) { + result = [result]; + } + for (const r of result) { + const failure = toFailure(r, context, struct2, value); + if (failure) { + yield failure; + } + } + } + function* run(value, struct2, options = {}) { + const { + path = [], + branch = [value], + coerce: coerce2 = false, + mask: mask2 = false + } = options; + const ctx = { + path, + branch + }; + if (coerce2) { + value = struct2.coercer(value, ctx); + if (mask2 && struct2.type !== "type" && isObject(struct2.schema) && isObject(value) && !Array.isArray(value)) { + for (const key in value) { + if (struct2.schema[key] === void 0) { + delete value[key]; + } + } + } + } + let valid = true; + for (const failure of struct2.validator(value, ctx)) { + valid = false; + yield [failure, void 0]; + } + for (let [k, v, s] of struct2.entries(value, ctx)) { + const ts = run(v, s, { + path: k === void 0 ? path : [...path, k], + branch: k === void 0 ? branch : [...branch, v], + coerce: coerce2, + mask: mask2 + }); + for (const t of ts) { + if (t[0]) { + valid = false; + yield [t[0], void 0]; + } else if (coerce2) { + v = t[1]; + if (k === void 0) { + value = v; + } else if (value instanceof Map) { + value.set(k, v); + } else if (value instanceof Set) { + value.add(v); + } else if (isObject(value)) { + value[k] = v; + } + } + } + } + if (valid) { + for (const failure of struct2.refiner(value, ctx)) { + valid = false; + yield [failure, void 0]; + } + } + if (valid) { + yield [void 0, value]; + } + } + var Struct = class { + constructor(props) { + const { + type: type2, + schema, + validator, + refiner, + coercer = (value) => value, + entries = function* () { + } + } = props; + this.type = type2; + this.schema = schema; + this.entries = entries; + this.coercer = coercer; + if (validator) { + this.validator = (value, context) => { + const result = validator(value, context); + return toFailures(result, context, this, value); + }; + } else { + this.validator = () => []; + } + if (refiner) { + this.refiner = (value, context) => { + const result = refiner(value, context); + return toFailures(result, context, this, value); + }; + } else { + this.refiner = () => []; + } + } + /** + * Assert that a value passes the struct's validation, throwing if it doesn't. + */ + assert(value) { + return assert2(value, this); + } + /** + * Create a value with the struct's coercion logic, then validate it. + */ + create(value) { + return create(value, this); + } + /** + * Check if a value passes the struct's validation. + */ + is(value) { + return is(value, this); + } + /** + * Mask a value, coercing and validating it, but returning only the subset of + * properties defined by the struct's schema. + */ + mask(value) { + return mask(value, this); + } + /** + * Validate a value with the struct's validation logic, returning a tuple + * representing the result. + * + * You may optionally pass `true` for the `withCoercion` argument to coerce + * the value before attempting to validate it. If you do, the result will + * contain the coerced result when successful. + */ + validate(value, options = {}) { + return validate2(value, this, options); + } + }; + function assert2(value, struct2) { + const result = validate2(value, struct2); + if (result[0]) { + throw result[0]; + } + } + function create(value, struct2) { + const result = validate2(value, struct2, { + coerce: true + }); + if (result[0]) { + throw result[0]; + } else { + return result[1]; + } + } + function mask(value, struct2) { + const result = validate2(value, struct2, { + coerce: true, + mask: true + }); + if (result[0]) { + throw result[0]; + } else { + return result[1]; + } + } + function is(value, struct2) { + const result = validate2(value, struct2); + return !result[0]; + } + function validate2(value, struct2, options = {}) { + const tuples = run(value, struct2, options); + const tuple = shiftIterator(tuples); + if (tuple[0]) { + const error = new StructError(tuple[0], function* () { + for (const t of tuples) { + if (t[0]) { + yield t[0]; + } + } + }); + return [error, void 0]; + } else { + const v = tuple[1]; + return [void 0, v]; + } + } + function define2(name, validator) { + return new Struct({ + type: name, + schema: null, + validator + }); + } + function enums(values) { + const schema = {}; + const description = values.map((v) => print(v)).join(); + for (const key of values) { + schema[key] = key; + } + return new Struct({ + type: "enums", + schema, + validator(value) { + return values.includes(value) || "Expected one of `" + description + "`, but received: " + print(value); + } + }); + } + function instance(Class) { + return define2("instance", (value) => { + return value instanceof Class || "Expected a `" + Class.name + "` instance, but received: " + print(value); + }); + } + function nullable(struct2) { + return new Struct({ + ...struct2, + validator: (value, ctx) => value === null || struct2.validator(value, ctx), + refiner: (value, ctx) => value === null || struct2.refiner(value, ctx) + }); + } + function number() { + return define2("number", (value) => { + return typeof value === "number" && !isNaN(value) || "Expected a number, but received: " + print(value); + }); + } + function optional(struct2) { + return new Struct({ + ...struct2, + validator: (value, ctx) => value === void 0 || struct2.validator(value, ctx), + refiner: (value, ctx) => value === void 0 || struct2.refiner(value, ctx) + }); + } + function string() { + return define2("string", (value) => { + return typeof value === "string" || "Expected a string, but received: " + print(value); + }); + } + function type(schema) { + const keys = Object.keys(schema); + return new Struct({ + type: "type", + schema, + *entries(value) { + if (isObject(value)) { + for (const k of keys) { + yield [k, value[k], schema[k]]; + } + } + }, + validator(value) { + return isObject(value) || "Expected an object, but received: " + print(value); + } + }); + } + function coerce(struct2, condition, coercer) { + return new Struct({ + ...struct2, + coercer: (value, ctx) => { + return is(value, condition) ? struct2.coercer(coercer(value, ctx), ctx) : struct2.coercer(value, ctx); + } + }); + } + var feeFields = [borsh.u64("denominator"), borsh.u64("numerator")]; + var AccountLayout = borsh.struct([ + borsh.publicKey("mint"), + borsh.publicKey("owner"), + borsh.u64("amount"), + borsh.u32("delegateOption"), + borsh.publicKey("delegate"), + borsh.u8("state"), + borsh.u32("isNativeOption"), + borsh.u64("isNative"), + borsh.u64("delegatedAmount"), + borsh.u32("closeAuthorityOption"), + borsh.publicKey("closeAuthority") + ]); + var AccountType; + (function(AccountType2) { + AccountType2[AccountType2["Uninitialized"] = 0] = "Uninitialized"; + AccountType2[AccountType2["StakePool"] = 1] = "StakePool"; + AccountType2[AccountType2["ValidatorList"] = 2] = "ValidatorList"; + })(AccountType || (AccountType = {})); + var BigNumFromString = coerce(instance(BN__default["default"]), string(), (value) => { + if (typeof value === "string") + return new BN__default["default"](value, 10); + throw new Error("invalid big num"); + }); + var PublicKeyFromString = coerce(instance(web3_js.PublicKey), string(), (value) => new web3_js.PublicKey(value)); + var StakeAccountType = enums(["uninitialized", "initialized", "delegated", "rewardsPool"]); + var StakeMeta = type({ + rentExemptReserve: BigNumFromString, + authorized: type({ + staker: PublicKeyFromString, + withdrawer: PublicKeyFromString + }), + lockup: type({ + unixTimestamp: number(), + epoch: number(), + custodian: PublicKeyFromString + }) + }); + var StakeAccountInfo = type({ + meta: StakeMeta, + stake: nullable(type({ + delegation: type({ + voter: PublicKeyFromString, + stake: BigNumFromString, + activationEpoch: BigNumFromString, + deactivationEpoch: BigNumFromString, + warmupCooldownRate: number() + }), + creditsObserved: number() + })) + }); + var StakeAccount = type({ + type: StakeAccountType, + info: optional(StakeAccountInfo) + }); + var StakePoolLayout = borsh.struct([ + borsh.u8("accountType"), + borsh.publicKey("manager"), + borsh.publicKey("staker"), + borsh.publicKey("stakeDepositAuthority"), + borsh.u8("stakeWithdrawBumpSeed"), + borsh.publicKey("validatorList"), + borsh.publicKey("reserveStake"), + borsh.publicKey("poolMint"), + borsh.publicKey("managerFeeAccount"), + borsh.publicKey("tokenProgramId"), + borsh.u64("totalLamports"), + borsh.u64("poolTokenSupply"), + borsh.u64("lastUpdateEpoch"), + borsh.struct([borsh.u64("unixTimestamp"), borsh.u64("epoch"), borsh.publicKey("custodian")], "lockup"), + borsh.struct(feeFields, "epochFee"), + borsh.option(borsh.struct(feeFields), "nextEpochFee"), + borsh.option(borsh.publicKey(), "preferredDepositValidatorVoteAddress"), + borsh.option(borsh.publicKey(), "preferredWithdrawValidatorVoteAddress"), + borsh.struct(feeFields, "stakeDepositFee"), + borsh.struct(feeFields, "stakeWithdrawalFee"), + borsh.option(borsh.struct(feeFields), "nextStakeWithdrawalFee"), + borsh.u8("stakeReferralFee"), + borsh.option(borsh.publicKey(), "solDepositAuthority"), + borsh.struct(feeFields, "solDepositFee"), + borsh.u8("solReferralFee"), + borsh.option(borsh.publicKey(), "solWithdrawAuthority"), + borsh.struct(feeFields, "solWithdrawalFee"), + borsh.option(borsh.struct(feeFields), "nextSolWithdrawalFee"), + borsh.u64("lastEpochPoolTokenSupply"), + borsh.u64("lastEpochTotalLamports") + ]); + var ValidatorStakeInfoStatus; + (function(ValidatorStakeInfoStatus2) { + ValidatorStakeInfoStatus2[ValidatorStakeInfoStatus2["Active"] = 0] = "Active"; + ValidatorStakeInfoStatus2[ValidatorStakeInfoStatus2["DeactivatingTransient"] = 1] = "DeactivatingTransient"; + ValidatorStakeInfoStatus2[ValidatorStakeInfoStatus2["ReadyForRemoval"] = 2] = "ReadyForRemoval"; + })(ValidatorStakeInfoStatus || (ValidatorStakeInfoStatus = {})); + var ValidatorStakeInfoLayout = borsh.struct([ + /// Amount of active stake delegated to this validator + /// Note that if `last_update_epoch` does not match the current epoch then + /// this field may not be accurate + borsh.u64("activeStakeLamports"), + /// Amount of transient stake delegated to this validator + /// Note that if `last_update_epoch` does not match the current epoch then + /// this field may not be accurate + borsh.u64("transientStakeLamports"), + /// Last epoch the active and transient stake lamports fields were updated + borsh.u64("lastUpdateEpoch"), + /// Start of the validator transient account seed suffixes + borsh.u64("transientSeedSuffixStart"), + /// End of the validator transient account seed suffixes + borsh.u64("transientSeedSuffixEnd"), + /// Status of the validator stake account + borsh.u8("status"), + /// Validator vote account address + borsh.publicKey("voteAccountAddress") + ]); + var ValidatorListLayout = borsh.struct([ + borsh.u8("accountType"), + borsh.u32("maxValidators"), + borsh.vec(ValidatorStakeInfoLayout, "validators") + ]); + async function getValidatorListAccount(connection, pubkey) { + const account = await connection.getAccountInfo(pubkey); + if (!account) { + throw new Error("Invalid validator list account"); + } + return { + pubkey, + account: { + data: ValidatorListLayout.decode(account === null || account === void 0 ? void 0 : account.data), + executable: account.executable, + lamports: account.lamports, + owner: account.owner + } + }; + } + async function prepareWithdrawAccounts(connection, stakePool, stakePoolAddress, amount, compareFn, skipFee) { + var _a, _b; + const validatorListAcc = await connection.getAccountInfo(stakePool.validatorList); + const validatorList = ValidatorListLayout.decode(validatorListAcc === null || validatorListAcc === void 0 ? void 0 : validatorListAcc.data); + if (!(validatorList === null || validatorList === void 0 ? void 0 : validatorList.validators) || (validatorList === null || validatorList === void 0 ? void 0 : validatorList.validators.length) == 0) { + throw new Error("No accounts found"); + } + const minBalanceForRentExemption = await connection.getMinimumBalanceForRentExemption(web3_js.StakeProgram.space); + const minBalance = minBalanceForRentExemption + MINIMUM_ACTIVE_STAKE; + let accounts = []; + for (const validator of validatorList.validators) { + if (validator.status !== ValidatorStakeInfoStatus.Active) { + continue; + } + const stakeAccountAddress = await findStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validator.voteAccountAddress, stakePoolAddress); + if (!validator.activeStakeLamports.isZero()) { + const isPreferred = (_a = stakePool === null || stakePool === void 0 ? void 0 : stakePool.preferredWithdrawValidatorVoteAddress) === null || _a === void 0 ? void 0 : _a.equals(validator.voteAccountAddress); + accounts.push({ + type: isPreferred ? "preferred" : "active", + voteAddress: validator.voteAccountAddress, + stakeAddress: stakeAccountAddress, + lamports: validator.activeStakeLamports.toNumber() + }); + } + const transientStakeLamports = validator.transientStakeLamports.toNumber() - minBalance; + if (transientStakeLamports > 0) { + const transientStakeAccountAddress = await findTransientStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validator.voteAccountAddress, stakePoolAddress, validator.transientSeedSuffixStart); + accounts.push({ + type: "transient", + voteAddress: validator.voteAccountAddress, + stakeAddress: transientStakeAccountAddress, + lamports: transientStakeLamports + }); + } + } + accounts = accounts.sort(compareFn ? compareFn : (a, b) => b.lamports - a.lamports); + const reserveStake = await connection.getAccountInfo(stakePool.reserveStake); + const reserveStakeBalance = ((_b = reserveStake === null || reserveStake === void 0 ? void 0 : reserveStake.lamports) !== null && _b !== void 0 ? _b : 0) - minBalanceForRentExemption - 1; + if (reserveStakeBalance > 0) { + accounts.push({ + type: "reserve", + stakeAddress: stakePool.reserveStake, + lamports: reserveStakeBalance + }); + } + const withdrawFrom = []; + let remainingAmount = amount; + const fee = stakePool.stakeWithdrawalFee; + const inverseFee = { + numerator: fee.denominator.sub(fee.numerator), + denominator: fee.denominator + }; + for (const type2 of ["preferred", "active", "transient", "reserve"]) { + const filteredAccounts = accounts.filter((a) => a.type == type2); + for (const { stakeAddress, voteAddress, lamports } of filteredAccounts) { + if (lamports <= minBalance && type2 == "transient") { + continue; + } + let availableForWithdrawal = calcPoolTokensForDeposit(stakePool, lamports); + if (!skipFee && !inverseFee.numerator.isZero()) { + availableForWithdrawal = divideBnToNumber(new BN__default["default"](availableForWithdrawal).mul(inverseFee.denominator), inverseFee.numerator); + } + const poolAmount = Math.min(availableForWithdrawal, remainingAmount); + if (poolAmount <= 0) { + continue; + } + withdrawFrom.push({ stakeAddress, voteAddress, poolAmount }); + remainingAmount -= poolAmount; + if (remainingAmount == 0) { + break; + } + } + if (remainingAmount == 0) { + break; + } + } + if (remainingAmount > 0) { + throw new Error(`No stake accounts found in this pool with enough balance to withdraw ${lamportsToSol(amount)} pool tokens.`); + } + return withdrawFrom; + } + function calcPoolTokensForDeposit(stakePool, stakeLamports) { + if (stakePool.poolTokenSupply.isZero() || stakePool.totalLamports.isZero()) { + return stakeLamports; + } + return Math.floor(divideBnToNumber(new BN__default["default"](stakeLamports).mul(stakePool.poolTokenSupply), stakePool.totalLamports)); + } + function calcLamportsWithdrawAmount(stakePool, poolTokens) { + const numerator = new BN__default["default"](poolTokens).mul(stakePool.totalLamports); + const denominator = stakePool.poolTokenSupply; + if (numerator.lt(denominator)) { + return 0; + } + return divideBnToNumber(numerator, denominator); + } + function divideBnToNumber(numerator, denominator) { + if (denominator.isZero()) { + return 0; + } + const quotient = numerator.div(denominator).toNumber(); + const rem = numerator.umod(denominator); + const gcd = rem.gcd(denominator); + return quotient + rem.div(gcd).toNumber() / denominator.div(gcd).toNumber(); + } + function newStakeAccount(feePayer, instructions, lamports) { + const stakeReceiverKeypair = web3_js.Keypair.generate(); + console.log(`Creating account to receive stake ${stakeReceiverKeypair.publicKey}`); + instructions.push( + // Creating new account + web3_js.SystemProgram.createAccount({ + fromPubkey: feePayer, + newAccountPubkey: stakeReceiverKeypair.publicKey, + lamports, + space: web3_js.StakeProgram.space, + programId: web3_js.StakeProgram.programId + }) + ); + return stakeReceiverKeypair; + } + var FAILED_TO_FIND_ACCOUNT = "Failed to find account"; + var INVALID_ACCOUNT_OWNER = "Invalid account owner"; + async function addAssociatedTokenAccount(connection, owner, mint, instructions) { + const associatedAddress = await splToken.Token.getAssociatedTokenAddress(splToken.ASSOCIATED_TOKEN_PROGRAM_ID, splToken.TOKEN_PROGRAM_ID, mint, owner); + let rentFee = 0; + try { + const account = await connection.getAccountInfo(associatedAddress); + if (!account) { + throw new Error(FAILED_TO_FIND_ACCOUNT); + } + } catch (err) { + if (err.message === FAILED_TO_FIND_ACCOUNT || err.message === INVALID_ACCOUNT_OWNER) { + instructions.push(splToken.Token.createAssociatedTokenAccountInstruction(splToken.ASSOCIATED_TOKEN_PROGRAM_ID, splToken.TOKEN_PROGRAM_ID, mint, associatedAddress, owner, owner)); + rentFee = await connection.getMinimumBalanceForRentExemption(AccountLayout.span); + } else { + throw err; + } + console.warn(err); + } + return { + associatedAddress, + rentFee + }; + } + async function getTokenAccount(connection, tokenAccountAddress, expectedTokenMint) { + var _a; + try { + const account = await connection.getAccountInfo(tokenAccountAddress); + if (!account) { + throw new Error(`Invalid account ${tokenAccountAddress.toBase58()}`); + } + const tokenAccount = AccountLayout.decode(account.data); + if (((_a = tokenAccount.mint) === null || _a === void 0 ? void 0 : _a.toBase58()) != expectedTokenMint.toBase58()) { + throw new Error(`Invalid token mint for ${tokenAccountAddress}, expected mint is ${expectedTokenMint}`); + } + return tokenAccount; + } catch (error) { + console.log(error); + } + } + function encodeData(type2, fields) { + const allocLength = type2.layout.span; + const data = buffer.Buffer.alloc(allocLength); + const layoutFields = Object.assign({ instruction: type2.index }, fields); + type2.layout.encode(layoutFields, data); + return data; + } + function decodeData(type2, buffer2) { + let data; + try { + data = type2.layout.decode(buffer2); + } catch (err) { + throw new Error("invalid instruction; " + err); + } + if (data.instruction !== type2.index) { + throw new Error(`invalid instruction; instruction index mismatch ${data.instruction} != ${type2.index}`); + } + return data; + } + function arrayChunk(array11, size) { + const result = []; + for (let i = 0; i < array11.length; i += size) { + result.push(array11.slice(i, i + size)); + } + return result; + } + var MOVE_STAKE_LAYOUT = BufferLayout__namespace.struct([ + BufferLayout__namespace.u8("instruction"), + BufferLayout__namespace.ns64("lamports"), + BufferLayout__namespace.ns64("transientStakeSeed") + ]); + var UPDATE_VALIDATOR_LIST_BALANCE_LAYOUT = BufferLayout__namespace.struct([ + BufferLayout__namespace.u8("instruction"), + BufferLayout__namespace.u32("startIndex"), + BufferLayout__namespace.u8("noMerge") + ]); + var STAKE_POOL_INSTRUCTION_LAYOUTS = Object.freeze({ + DecreaseValidatorStake: { + index: 3, + layout: MOVE_STAKE_LAYOUT + }, + IncreaseValidatorStake: { + index: 4, + layout: MOVE_STAKE_LAYOUT + }, + UpdateValidatorListBalance: { + index: 6, + layout: UPDATE_VALIDATOR_LIST_BALANCE_LAYOUT + }, + UpdateStakePoolBalance: { + index: 7, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]) + }, + CleanupRemovedValidatorEntries: { + index: 8, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]) + }, + DepositStake: { + index: 9, + layout: BufferLayout__namespace.struct([BufferLayout__namespace.u8("instruction")]) + }, + /// Withdraw the token from the pool at the current ratio. + WithdrawStake: { + index: 10, + layout: BufferLayout__namespace.struct([ + BufferLayout__namespace.u8("instruction"), + BufferLayout__namespace.ns64("poolTokens") + ]) + }, + /// Deposit SOL directly into the pool's reserve account. The output is a "pool" token + /// representing ownership into the pool. Inputs are converted to the current ratio. + DepositSol: { + index: 14, + layout: BufferLayout__namespace.struct([ + BufferLayout__namespace.u8("instruction"), + BufferLayout__namespace.ns64("lamports") + ]) + }, + /// Withdraw SOL directly from the pool's reserve account. Fails if the + /// reserve does not have enough SOL. + WithdrawSol: { + index: 16, + layout: BufferLayout__namespace.struct([ + BufferLayout__namespace.u8("instruction"), + BufferLayout__namespace.ns64("poolTokens") + ]) + } + }); + var StakePoolInstruction = class { + /** + * Creates instruction to update a set of validators in the stake pool. + */ + static updateValidatorListBalance(params) { + const { stakePool, withdrawAuthority, validatorList, reserveStake, startIndex, noMerge, validatorAndTransientStakePairs } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.UpdateValidatorListBalance; + const data = encodeData(type2, { startIndex, noMerge: noMerge ? 1 : 0 }); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: false }, + { pubkey: withdrawAuthority, isSigner: false, isWritable: false }, + { pubkey: validatorList, isSigner: false, isWritable: true }, + { pubkey: reserveStake, isSigner: false, isWritable: true }, + { pubkey: web3_js.SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.SYSVAR_STAKE_HISTORY_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.StakeProgram.programId, isSigner: false, isWritable: false }, + ...validatorAndTransientStakePairs.map((pubkey) => ({ + pubkey, + isSigner: false, + isWritable: true + })) + ]; + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Creates instruction to update the overall stake pool balance. + */ + static updateStakePoolBalance(params) { + const { stakePool, withdrawAuthority, validatorList, reserveStake, managerFeeAccount, poolMint } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.UpdateStakePoolBalance; + const data = encodeData(type2); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: true }, + { pubkey: withdrawAuthority, isSigner: false, isWritable: false }, + { pubkey: validatorList, isSigner: false, isWritable: true }, + { pubkey: reserveStake, isSigner: false, isWritable: false }, + { pubkey: managerFeeAccount, isSigner: false, isWritable: true }, + { pubkey: poolMint, isSigner: false, isWritable: true }, + { pubkey: splToken.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false } + ]; + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Creates instruction to cleanup removed validator entries. + */ + static cleanupRemovedValidatorEntries(params) { + const { stakePool, validatorList } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.CleanupRemovedValidatorEntries; + const data = encodeData(type2); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: false }, + { pubkey: validatorList, isSigner: false, isWritable: true } + ]; + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Creates instruction to increase the stake on a validator. + */ + static increaseValidatorStake(params) { + const { stakePool, staker, withdrawAuthority, validatorList, reserveStake, transientStake, validatorStake, validatorVote, lamports, transientStakeSeed } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.IncreaseValidatorStake; + const data = encodeData(type2, { lamports, transientStakeSeed }); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: false }, + { pubkey: staker, isSigner: true, isWritable: false }, + { pubkey: withdrawAuthority, isSigner: false, isWritable: false }, + { pubkey: validatorList, isSigner: false, isWritable: true }, + { pubkey: reserveStake, isSigner: false, isWritable: true }, + { pubkey: transientStake, isSigner: false, isWritable: true }, + { pubkey: validatorStake, isSigner: false, isWritable: false }, + { pubkey: validatorVote, isSigner: false, isWritable: false }, + { pubkey: web3_js.SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.SYSVAR_STAKE_HISTORY_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.STAKE_CONFIG_ID, isSigner: false, isWritable: false }, + { pubkey: web3_js.SystemProgram.programId, isSigner: false, isWritable: false }, + { pubkey: web3_js.StakeProgram.programId, isSigner: false, isWritable: false } + ]; + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Creates instruction to decrease the stake on a validator. + */ + static decreaseValidatorStake(params) { + const { stakePool, staker, withdrawAuthority, validatorList, validatorStake, transientStake, lamports, transientStakeSeed } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.DecreaseValidatorStake; + const data = encodeData(type2, { lamports, transientStakeSeed }); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: false }, + { pubkey: staker, isSigner: true, isWritable: false }, + { pubkey: withdrawAuthority, isSigner: false, isWritable: false }, + { pubkey: validatorList, isSigner: false, isWritable: true }, + { pubkey: validatorStake, isSigner: false, isWritable: true }, + { pubkey: transientStake, isSigner: false, isWritable: true }, + { pubkey: web3_js.SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.SystemProgram.programId, isSigner: false, isWritable: false }, + { pubkey: web3_js.StakeProgram.programId, isSigner: false, isWritable: false } + ]; + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Creates a transaction instruction to deposit a stake account into a stake pool. + */ + static depositStake(params) { + const { stakePool, validatorList, depositAuthority, withdrawAuthority, depositStake: depositStake2, validatorStake, reserveStake, destinationPoolAccount, managerFeeAccount, referralPoolAccount, poolMint } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.DepositStake; + const data = encodeData(type2); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: true }, + { pubkey: validatorList, isSigner: false, isWritable: true }, + { pubkey: depositAuthority, isSigner: false, isWritable: false }, + { pubkey: withdrawAuthority, isSigner: false, isWritable: false }, + { pubkey: depositStake2, isSigner: false, isWritable: true }, + { pubkey: validatorStake, isSigner: false, isWritable: true }, + { pubkey: reserveStake, isSigner: false, isWritable: true }, + { pubkey: destinationPoolAccount, isSigner: false, isWritable: true }, + { pubkey: managerFeeAccount, isSigner: false, isWritable: true }, + { pubkey: referralPoolAccount, isSigner: false, isWritable: true }, + { pubkey: poolMint, isSigner: false, isWritable: true }, + { pubkey: web3_js.SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.SYSVAR_STAKE_HISTORY_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: splToken.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false }, + { pubkey: web3_js.StakeProgram.programId, isSigner: false, isWritable: false } + ]; + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Creates a transaction instruction to deposit SOL into a stake pool. + */ + static depositSol(params) { + const { stakePool, withdrawAuthority, depositAuthority, reserveStake, fundingAccount, destinationPoolAccount, managerFeeAccount, referralPoolAccount, poolMint, lamports } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.DepositSol; + const data = encodeData(type2, { lamports }); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: true }, + { pubkey: withdrawAuthority, isSigner: false, isWritable: false }, + { pubkey: reserveStake, isSigner: false, isWritable: true }, + { pubkey: fundingAccount, isSigner: true, isWritable: true }, + { pubkey: destinationPoolAccount, isSigner: false, isWritable: true }, + { pubkey: managerFeeAccount, isSigner: false, isWritable: true }, + { pubkey: referralPoolAccount, isSigner: false, isWritable: true }, + { pubkey: poolMint, isSigner: false, isWritable: true }, + { pubkey: web3_js.SystemProgram.programId, isSigner: false, isWritable: false }, + { pubkey: splToken.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false } + ]; + if (depositAuthority) { + keys.push({ + pubkey: depositAuthority, + isSigner: true, + isWritable: false + }); + } + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Creates a transaction instruction to withdraw active stake from a stake pool. + */ + static withdrawStake(params) { + const { stakePool, validatorList, withdrawAuthority, validatorStake, destinationStake, destinationStakeAuthority, sourceTransferAuthority, sourcePoolAccount, managerFeeAccount, poolMint, poolTokens } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.WithdrawStake; + const data = encodeData(type2, { poolTokens }); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: true }, + { pubkey: validatorList, isSigner: false, isWritable: true }, + { pubkey: withdrawAuthority, isSigner: false, isWritable: false }, + { pubkey: validatorStake, isSigner: false, isWritable: true }, + { pubkey: destinationStake, isSigner: false, isWritable: true }, + { pubkey: destinationStakeAuthority, isSigner: false, isWritable: false }, + { pubkey: sourceTransferAuthority, isSigner: true, isWritable: false }, + { pubkey: sourcePoolAccount, isSigner: false, isWritable: true }, + { pubkey: managerFeeAccount, isSigner: false, isWritable: true }, + { pubkey: poolMint, isSigner: false, isWritable: true }, + { pubkey: web3_js.SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: splToken.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false }, + { pubkey: web3_js.StakeProgram.programId, isSigner: false, isWritable: false } + ]; + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Creates a transaction instruction to withdraw SOL from a stake pool. + */ + static withdrawSol(params) { + const { stakePool, withdrawAuthority, sourceTransferAuthority, sourcePoolAccount, reserveStake, destinationSystemAccount, managerFeeAccount, solWithdrawAuthority, poolMint, poolTokens } = params; + const type2 = STAKE_POOL_INSTRUCTION_LAYOUTS.WithdrawSol; + const data = encodeData(type2, { poolTokens }); + const keys = [ + { pubkey: stakePool, isSigner: false, isWritable: true }, + { pubkey: withdrawAuthority, isSigner: false, isWritable: false }, + { pubkey: sourceTransferAuthority, isSigner: true, isWritable: false }, + { pubkey: sourcePoolAccount, isSigner: false, isWritable: true }, + { pubkey: reserveStake, isSigner: false, isWritable: true }, + { pubkey: destinationSystemAccount, isSigner: false, isWritable: true }, + { pubkey: managerFeeAccount, isSigner: false, isWritable: true }, + { pubkey: poolMint, isSigner: false, isWritable: true }, + { pubkey: web3_js.SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.SYSVAR_STAKE_HISTORY_PUBKEY, isSigner: false, isWritable: false }, + { pubkey: web3_js.StakeProgram.programId, isSigner: false, isWritable: false }, + { pubkey: splToken.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false } + ]; + if (solWithdrawAuthority) { + keys.push({ + pubkey: solWithdrawAuthority, + isSigner: true, + isWritable: false + }); + } + return new web3_js.TransactionInstruction({ + programId: STAKE_POOL_PROGRAM_ID, + keys, + data + }); + } + /** + * Decode a deposit stake pool instruction and retrieve the instruction params. + */ + static decodeDepositStake(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 11); + decodeData(STAKE_POOL_INSTRUCTION_LAYOUTS.DepositStake, instruction.data); + return { + stakePool: instruction.keys[0].pubkey, + validatorList: instruction.keys[1].pubkey, + depositAuthority: instruction.keys[2].pubkey, + withdrawAuthority: instruction.keys[3].pubkey, + depositStake: instruction.keys[4].pubkey, + validatorStake: instruction.keys[5].pubkey, + reserveStake: instruction.keys[6].pubkey, + destinationPoolAccount: instruction.keys[7].pubkey, + managerFeeAccount: instruction.keys[8].pubkey, + referralPoolAccount: instruction.keys[9].pubkey, + poolMint: instruction.keys[10].pubkey + }; + } + /** + * Decode a deposit sol instruction and retrieve the instruction params. + */ + static decodeDepositSol(instruction) { + this.checkProgramId(instruction.programId); + this.checkKeyLength(instruction.keys, 9); + const { amount } = decodeData(STAKE_POOL_INSTRUCTION_LAYOUTS.DepositSol, instruction.data); + return { + stakePool: instruction.keys[0].pubkey, + depositAuthority: instruction.keys[1].pubkey, + withdrawAuthority: instruction.keys[2].pubkey, + reserveStake: instruction.keys[3].pubkey, + fundingAccount: instruction.keys[4].pubkey, + destinationPoolAccount: instruction.keys[5].pubkey, + managerFeeAccount: instruction.keys[6].pubkey, + referralPoolAccount: instruction.keys[7].pubkey, + poolMint: instruction.keys[8].pubkey, + lamports: amount + }; + } + /** + * @internal + */ + static checkProgramId(programId) { + if (!programId.equals(web3_js.StakeProgram.programId)) { + throw new Error("Invalid instruction; programId is not StakeProgram"); + } + } + /** + * @internal + */ + static checkKeyLength(keys, expectedLength) { + if (keys.length < expectedLength) { + throw new Error(`Invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`); + } + } + }; + async function getStakePoolAccount(connection, stakePoolAddress) { + const account = await connection.getAccountInfo(stakePoolAddress); + if (!account) { + throw new Error("Invalid stake pool account"); + } + return { + pubkey: stakePoolAddress, + account: { + data: StakePoolLayout.decode(account.data), + executable: account.executable, + lamports: account.lamports, + owner: account.owner + } + }; + } + async function getStakeAccount(connection, stakeAccount) { + const result = (await connection.getParsedAccountInfo(stakeAccount)).value; + if (!result || !("parsed" in result.data)) { + throw new Error("Invalid stake account"); + } + const program = result.data.program; + if (program != "stake") { + throw new Error("Not a stake account"); + } + const parsed = create(result.data.parsed, StakeAccount); + return parsed; + } + async function getStakePoolAccounts(connection, stakePoolProgramAddress) { + const response = await connection.getProgramAccounts(stakePoolProgramAddress); + return response.map((a) => { + let decodedData; + if (a.account.data.readUInt8() === 1) { + try { + decodedData = StakePoolLayout.decode(a.account.data); + } catch (error) { + console.log("Could not decode StakeAccount. Error:", error); + decodedData = void 0; + } + } else if (a.account.data.readUInt8() === 2) { + try { + decodedData = ValidatorListLayout.decode(a.account.data); + } catch (error) { + console.log("Could not decode ValidatorList. Error:", error); + decodedData = void 0; + } + } else { + console.error(`Could not decode. StakePoolAccount Enum is ${a.account.data.readUInt8()}, expected 1 or 2!`); + decodedData = void 0; + } + return { + pubkey: a.pubkey, + account: { + data: decodedData, + executable: a.account.executable, + lamports: a.account.lamports, + owner: a.account.owner + } + }; + }); + } + async function depositStake(connection, stakePoolAddress, authorizedPubkey, validatorVote, depositStake2, poolTokenReceiverAccount) { + const stakePool = await getStakePoolAccount(connection, stakePoolAddress); + const withdrawAuthority = await findWithdrawAuthorityProgramAddress(STAKE_POOL_PROGRAM_ID, stakePoolAddress); + const validatorStake = await findStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validatorVote, stakePoolAddress); + const instructions = []; + const signers = []; + const poolMint = stakePool.account.data.poolMint; + let rentFee = 0; + if (!poolTokenReceiverAccount) { + const { associatedAddress, rentFee: fee } = await addAssociatedTokenAccount(connection, authorizedPubkey, poolMint, instructions); + poolTokenReceiverAccount = associatedAddress; + rentFee += fee; + } + instructions.push(...web3_js.StakeProgram.authorize({ + stakePubkey: depositStake2, + authorizedPubkey, + newAuthorizedPubkey: stakePool.account.data.stakeDepositAuthority, + stakeAuthorizationType: web3_js.StakeAuthorizationLayout.Staker + }).instructions); + instructions.push(...web3_js.StakeProgram.authorize({ + stakePubkey: depositStake2, + authorizedPubkey, + newAuthorizedPubkey: stakePool.account.data.stakeDepositAuthority, + stakeAuthorizationType: web3_js.StakeAuthorizationLayout.Withdrawer + }).instructions); + instructions.push(StakePoolInstruction.depositStake({ + stakePool: stakePoolAddress, + validatorList: stakePool.account.data.validatorList, + depositAuthority: stakePool.account.data.stakeDepositAuthority, + reserveStake: stakePool.account.data.reserveStake, + managerFeeAccount: stakePool.account.data.managerFeeAccount, + referralPoolAccount: poolTokenReceiverAccount, + destinationPoolAccount: poolTokenReceiverAccount, + withdrawAuthority, + depositStake: depositStake2, + validatorStake, + poolMint + })); + return { + instructions, + signers, + rentFee + }; + } + async function depositSol(connection, stakePoolAddress, from, lamports, destinationTokenAccount, referrerTokenAccount, depositAuthority) { + const fromBalance = await connection.getBalance(from, "confirmed"); + if (fromBalance < lamports) { + throw new Error(`Not enough SOL to deposit into pool. Maximum deposit amount is ${lamportsToSol(fromBalance)} SOL.`); + } + const stakePoolAccount = await getStakePoolAccount(connection, stakePoolAddress); + const stakePool = stakePoolAccount.account.data; + const userSolTransfer = new web3_js.Keypair(); + const signers = [userSolTransfer]; + const instructions = []; + let rentFee = 0; + instructions.push(web3_js.SystemProgram.transfer({ + fromPubkey: from, + toPubkey: userSolTransfer.publicKey, + lamports + })); + if (!destinationTokenAccount) { + const { associatedAddress, rentFee: fee } = await addAssociatedTokenAccount(connection, from, stakePool.poolMint, instructions); + destinationTokenAccount = associatedAddress; + rentFee += fee; + } + const withdrawAuthority = await findWithdrawAuthorityProgramAddress(STAKE_POOL_PROGRAM_ID, stakePoolAddress); + instructions.push(StakePoolInstruction.depositSol({ + stakePool: stakePoolAddress, + reserveStake: stakePool.reserveStake, + fundingAccount: userSolTransfer.publicKey, + destinationPoolAccount: destinationTokenAccount, + managerFeeAccount: stakePool.managerFeeAccount, + referralPoolAccount: referrerTokenAccount !== null && referrerTokenAccount !== void 0 ? referrerTokenAccount : destinationTokenAccount, + poolMint: stakePool.poolMint, + lamports, + withdrawAuthority, + depositAuthority + })); + return { + instructions, + signers, + rentFee + }; + } + async function withdrawStake(connection, stakePoolAddress, tokenOwner, amount, useReserve = false, voteAccountAddress, stakeReceiver, poolTokenAccount, validatorComparator) { + var _c, _d, _e, _f; + const stakePool = await getStakePoolAccount(connection, stakePoolAddress); + const poolAmount = solToLamports(amount); + if (!poolTokenAccount) { + poolTokenAccount = await splToken.Token.getAssociatedTokenAddress(splToken.ASSOCIATED_TOKEN_PROGRAM_ID, splToken.TOKEN_PROGRAM_ID, stakePool.account.data.poolMint, tokenOwner); + } + const tokenAccount = await getTokenAccount(connection, poolTokenAccount, stakePool.account.data.poolMint); + if (!tokenAccount) { + throw new Error("Invalid token account"); + } + if (tokenAccount.amount.toNumber() < poolAmount) { + throw new Error(`Not enough token balance to withdraw ${lamportsToSol(poolAmount)} pool tokens. + Maximum withdraw amount is ${lamportsToSol(tokenAccount.amount.toNumber())} pool tokens.`); + } + const stakeAccountRentExemption = await connection.getMinimumBalanceForRentExemption(web3_js.StakeProgram.space); + const withdrawAuthority = await findWithdrawAuthorityProgramAddress(STAKE_POOL_PROGRAM_ID, stakePoolAddress); + let stakeReceiverAccount = null; + if (stakeReceiver) { + stakeReceiverAccount = await getStakeAccount(connection, stakeReceiver); + } + const withdrawAccounts = []; + if (useReserve) { + withdrawAccounts.push({ + stakeAddress: stakePool.account.data.reserveStake, + voteAddress: void 0, + poolAmount + }); + } else if (stakeReceiverAccount && (stakeReceiverAccount === null || stakeReceiverAccount === void 0 ? void 0 : stakeReceiverAccount.type) == "delegated") { + const voteAccount = (_d = (_c = stakeReceiverAccount.info) === null || _c === void 0 ? void 0 : _c.stake) === null || _d === void 0 ? void 0 : _d.delegation.voter; + if (!voteAccount) + throw new Error(`Invalid stake reciever ${stakeReceiver} delegation`); + const validatorListAccount = await connection.getAccountInfo(stakePool.account.data.validatorList); + const validatorList = ValidatorListLayout.decode(validatorListAccount === null || validatorListAccount === void 0 ? void 0 : validatorListAccount.data); + const isValidVoter = validatorList.validators.find((val) => val.voteAccountAddress.equals(voteAccount)); + if (voteAccountAddress && voteAccountAddress !== voteAccount) { + throw new Error(`Provided withdrawal vote account ${voteAccountAddress} does not match delegation on stake receiver account ${voteAccount}, + remove this flag or provide a different stake account delegated to ${voteAccountAddress}`); + } + if (isValidVoter) { + const stakeAccountAddress = await findStakeProgramAddress(STAKE_POOL_PROGRAM_ID, voteAccount, stakePoolAddress); + const stakeAccount = await connection.getAccountInfo(stakeAccountAddress); + if (!stakeAccount) { + throw new Error(`Preferred withdraw valdator's stake account is invalid`); + } + const availableForWithdrawal = calcLamportsWithdrawAmount(stakePool.account.data, stakeAccount.lamports - MINIMUM_ACTIVE_STAKE - stakeAccountRentExemption); + if (availableForWithdrawal < poolAmount) { + throw new Error(`Not enough lamports available for withdrawal from ${stakeAccountAddress}, + ${poolAmount} asked, ${availableForWithdrawal} available.`); + } + withdrawAccounts.push({ + stakeAddress: stakeAccountAddress, + voteAddress: voteAccount, + poolAmount + }); + } else { + throw new Error(`Provided stake account is delegated to a vote account ${voteAccount} which does not exist in the stake pool`); + } + } else if (voteAccountAddress) { + const stakeAccountAddress = await findStakeProgramAddress(STAKE_POOL_PROGRAM_ID, voteAccountAddress, stakePoolAddress); + const stakeAccount = await connection.getAccountInfo(stakeAccountAddress); + if (!stakeAccount) { + throw new Error("Invalid Stake Account"); + } + const availableForWithdrawal = calcLamportsWithdrawAmount(stakePool.account.data, stakeAccount.lamports - MINIMUM_ACTIVE_STAKE - stakeAccountRentExemption); + if (availableForWithdrawal < poolAmount) { + throw new Error(`Not enough lamports available for withdrawal from ${stakeAccountAddress}, + ${poolAmount} asked, ${availableForWithdrawal} available.`); + } + withdrawAccounts.push({ + stakeAddress: stakeAccountAddress, + voteAddress: voteAccountAddress, + poolAmount + }); + } else { + withdrawAccounts.push(...await prepareWithdrawAccounts(connection, stakePool.account.data, stakePoolAddress, poolAmount, validatorComparator, poolTokenAccount.equals(stakePool.account.data.managerFeeAccount))); + } + const instructions = []; + const userTransferAuthority = web3_js.Keypair.generate(); + const signers = [userTransferAuthority]; + instructions.push(splToken.Token.createApproveInstruction(splToken.TOKEN_PROGRAM_ID, poolTokenAccount, userTransferAuthority.publicKey, tokenOwner, [], poolAmount)); + let totalRentFreeBalances = 0; + const maxWithdrawAccounts = 5; + let i = 0; + for (const withdrawAccount of withdrawAccounts) { + if (i > maxWithdrawAccounts) { + break; + } + const solWithdrawAmount = Math.ceil(calcLamportsWithdrawAmount(stakePool.account.data, withdrawAccount.poolAmount)); + let infoMsg = `Withdrawing \u25CE${solWithdrawAmount}, + from stake account ${(_e = withdrawAccount.stakeAddress) === null || _e === void 0 ? void 0 : _e.toBase58()}`; + if (withdrawAccount.voteAddress) { + infoMsg = `${infoMsg}, delegated to ${(_f = withdrawAccount.voteAddress) === null || _f === void 0 ? void 0 : _f.toBase58()}`; + } + console.info(infoMsg); + let stakeToReceive; + if (!stakeReceiver || stakeReceiverAccount && stakeReceiverAccount.type === "delegated") { + const stakeKeypair = newStakeAccount(tokenOwner, instructions, stakeAccountRentExemption); + signers.push(stakeKeypair); + totalRentFreeBalances += stakeAccountRentExemption; + stakeToReceive = stakeKeypair.publicKey; + } else { + stakeToReceive = stakeReceiver; + } + instructions.push(StakePoolInstruction.withdrawStake({ + stakePool: stakePoolAddress, + validatorList: stakePool.account.data.validatorList, + validatorStake: withdrawAccount.stakeAddress, + destinationStake: stakeToReceive, + destinationStakeAuthority: tokenOwner, + sourceTransferAuthority: userTransferAuthority.publicKey, + sourcePoolAccount: poolTokenAccount, + managerFeeAccount: stakePool.account.data.managerFeeAccount, + poolMint: stakePool.account.data.poolMint, + poolTokens: withdrawAccount.poolAmount, + withdrawAuthority + })); + i++; + } + if (stakeReceiver && stakeReceiverAccount && stakeReceiverAccount.type === "delegated") { + signers.forEach((newStakeKeypair) => { + instructions.concat(web3_js.StakeProgram.merge({ + stakePubkey: stakeReceiver, + sourceStakePubKey: newStakeKeypair.publicKey, + authorizedPubkey: tokenOwner + }).instructions); + }); + } + return { + instructions, + signers, + stakeReceiver, + totalRentFreeBalances + }; + } + async function withdrawSol(connection, stakePoolAddress, tokenOwner, solReceiver, amount, solWithdrawAuthority) { + const stakePool = await getStakePoolAccount(connection, stakePoolAddress); + const poolAmount = solToLamports(amount); + const poolTokenAccount = await splToken.Token.getAssociatedTokenAddress(splToken.ASSOCIATED_TOKEN_PROGRAM_ID, splToken.TOKEN_PROGRAM_ID, stakePool.account.data.poolMint, tokenOwner); + const tokenAccount = await getTokenAccount(connection, poolTokenAccount, stakePool.account.data.poolMint); + if (!tokenAccount) { + throw new Error("Invalid token account"); + } + if (tokenAccount.amount.toNumber() < poolAmount) { + throw new Error(`Not enough token balance to withdraw ${lamportsToSol(poolAmount)} pool tokens. + Maximum withdraw amount is ${lamportsToSol(tokenAccount.amount.toNumber())} pool tokens.`); + } + const instructions = []; + const userTransferAuthority = web3_js.Keypair.generate(); + const signers = [userTransferAuthority]; + instructions.push(splToken.Token.createApproveInstruction(splToken.TOKEN_PROGRAM_ID, poolTokenAccount, userTransferAuthority.publicKey, tokenOwner, [], poolAmount)); + const poolWithdrawAuthority = await findWithdrawAuthorityProgramAddress(STAKE_POOL_PROGRAM_ID, stakePoolAddress); + if (solWithdrawAuthority) { + const expectedSolWithdrawAuthority = stakePool.account.data.solWithdrawAuthority; + if (!expectedSolWithdrawAuthority) { + throw new Error("SOL withdraw authority specified in arguments but stake pool has none"); + } + if (solWithdrawAuthority.toBase58() != expectedSolWithdrawAuthority.toBase58()) { + throw new Error(`Invalid deposit withdraw specified, expected ${expectedSolWithdrawAuthority.toBase58()}, received ${solWithdrawAuthority.toBase58()}`); + } + } + const withdrawTransaction = StakePoolInstruction.withdrawSol({ + stakePool: stakePoolAddress, + withdrawAuthority: poolWithdrawAuthority, + reserveStake: stakePool.account.data.reserveStake, + sourcePoolAccount: poolTokenAccount, + sourceTransferAuthority: userTransferAuthority.publicKey, + destinationSystemAccount: solReceiver, + managerFeeAccount: stakePool.account.data.managerFeeAccount, + poolMint: stakePool.account.data.poolMint, + poolTokens: poolAmount, + solWithdrawAuthority + }); + instructions.push(withdrawTransaction); + return { + instructions, + signers + }; + } + async function increaseValidatorStake(connection, stakePoolAddress, validatorVote, lamports) { + const stakePool = await getStakePoolAccount(connection, stakePoolAddress); + const validatorList = await getValidatorListAccount(connection, stakePool.account.data.validatorList); + const validatorInfo = validatorList.account.data.validators.find((v) => v.voteAccountAddress.toBase58() == validatorVote.toBase58()); + if (!validatorInfo) { + throw new Error("Vote account not found in validator list"); + } + const withdrawAuthority = await findWithdrawAuthorityProgramAddress(STAKE_POOL_PROGRAM_ID, stakePoolAddress); + const transientStakeSeed = validatorInfo.transientSeedSuffixStart.addn(1); + const transientStake = await findTransientStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validatorInfo.voteAccountAddress, stakePoolAddress, transientStakeSeed); + const validatorStake = await findStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validatorInfo.voteAccountAddress, stakePoolAddress); + const instructions = []; + instructions.push(StakePoolInstruction.increaseValidatorStake({ + stakePool: stakePoolAddress, + staker: stakePool.account.data.staker, + validatorList: stakePool.account.data.validatorList, + reserveStake: stakePool.account.data.reserveStake, + transientStakeSeed: transientStakeSeed.toNumber(), + withdrawAuthority, + transientStake, + validatorStake, + validatorVote, + lamports + })); + return { + instructions + }; + } + async function decreaseValidatorStake(connection, stakePoolAddress, validatorVote, lamports) { + const stakePool = await getStakePoolAccount(connection, stakePoolAddress); + const validatorList = await getValidatorListAccount(connection, stakePool.account.data.validatorList); + const validatorInfo = validatorList.account.data.validators.find((v) => v.voteAccountAddress.toBase58() == validatorVote.toBase58()); + if (!validatorInfo) { + throw new Error("Vote account not found in validator list"); + } + const withdrawAuthority = await findWithdrawAuthorityProgramAddress(STAKE_POOL_PROGRAM_ID, stakePoolAddress); + const validatorStake = await findStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validatorInfo.voteAccountAddress, stakePoolAddress); + const transientStakeSeed = validatorInfo.transientSeedSuffixStart.addn(1); + const transientStake = await findTransientStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validatorInfo.voteAccountAddress, stakePoolAddress, transientStakeSeed); + const instructions = []; + instructions.push(StakePoolInstruction.decreaseValidatorStake({ + stakePool: stakePoolAddress, + staker: stakePool.account.data.staker, + validatorList: stakePool.account.data.validatorList, + transientStakeSeed: transientStakeSeed.toNumber(), + withdrawAuthority, + validatorStake, + transientStake, + lamports + })); + return { + instructions + }; + } + async function updateStakePool(connection, stakePool, noMerge = false) { + const stakePoolAddress = stakePool.pubkey; + const validatorList = await getValidatorListAccount(connection, stakePool.account.data.validatorList); + const withdrawAuthority = await findWithdrawAuthorityProgramAddress(STAKE_POOL_PROGRAM_ID, stakePoolAddress); + const updateListInstructions = []; + const instructions = []; + let startIndex = 0; + const validatorChunks = arrayChunk(validatorList.account.data.validators, MAX_VALIDATORS_TO_UPDATE); + for (const validatorChunk of validatorChunks) { + const validatorAndTransientStakePairs = []; + for (const validator of validatorChunk) { + const validatorStake = await findStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validator.voteAccountAddress, stakePoolAddress); + validatorAndTransientStakePairs.push(validatorStake); + const transientStake = await findTransientStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validator.voteAccountAddress, stakePoolAddress, validator.transientSeedSuffixStart); + validatorAndTransientStakePairs.push(transientStake); + } + updateListInstructions.push(StakePoolInstruction.updateValidatorListBalance({ + stakePool: stakePoolAddress, + validatorList: stakePool.account.data.validatorList, + reserveStake: stakePool.account.data.reserveStake, + validatorAndTransientStakePairs, + withdrawAuthority, + startIndex, + noMerge + })); + startIndex += MAX_VALIDATORS_TO_UPDATE; + } + instructions.push(StakePoolInstruction.updateStakePoolBalance({ + stakePool: stakePoolAddress, + validatorList: stakePool.account.data.validatorList, + reserveStake: stakePool.account.data.reserveStake, + managerFeeAccount: stakePool.account.data.managerFeeAccount, + poolMint: stakePool.account.data.poolMint, + withdrawAuthority + })); + instructions.push(StakePoolInstruction.cleanupRemovedValidatorEntries({ + stakePool: stakePoolAddress, + validatorList: stakePool.account.data.validatorList + })); + return { + updateListInstructions, + finalInstructions: instructions + }; + } + async function stakePoolInfo(connection, stakePoolAddress) { + var _c, _d; + const stakePool = await getStakePoolAccount(connection, stakePoolAddress); + const reserveAccountStakeAddress = stakePool.account.data.reserveStake; + const totalLamports = stakePool.account.data.totalLamports; + const lastUpdateEpoch = stakePool.account.data.lastUpdateEpoch; + const validatorList = await getValidatorListAccount(connection, stakePool.account.data.validatorList); + const maxNumberOfValidators = validatorList.account.data.maxValidators; + const currentNumberOfValidators = validatorList.account.data.validators.length; + const epochInfo = await connection.getEpochInfo(); + const reserveStake = await connection.getAccountInfo(reserveAccountStakeAddress); + const withdrawAuthority = await findWithdrawAuthorityProgramAddress(STAKE_POOL_PROGRAM_ID, stakePoolAddress); + const minimumReserveStakeBalance = await connection.getMinimumBalanceForRentExemption(web3_js.StakeProgram.space) + 1; + const stakeAccounts = await Promise.all(validatorList.account.data.validators.map(async (validator) => { + const stakeAccountAddress = await findStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validator.voteAccountAddress, stakePoolAddress); + const transientStakeAccountAddress = await findTransientStakeProgramAddress(STAKE_POOL_PROGRAM_ID, validator.voteAccountAddress, stakePoolAddress, validator.transientSeedSuffixStart); + const updateRequired2 = !validator.lastUpdateEpoch.eqn(epochInfo.epoch); + return { + voteAccountAddress: validator.voteAccountAddress.toBase58(), + stakeAccountAddress: stakeAccountAddress.toBase58(), + validatorActiveStakeLamports: validator.activeStakeLamports.toString(), + validatorLastUpdateEpoch: validator.lastUpdateEpoch.toString(), + validatorLamports: validator.activeStakeLamports.add(validator.transientStakeLamports).toString(), + validatorTransientStakeAccountAddress: transientStakeAccountAddress.toBase58(), + validatorTransientStakeLamports: validator.transientStakeLamports.toString(), + updateRequired: updateRequired2 + }; + })); + const totalPoolTokens = lamportsToSol(stakePool.account.data.poolTokenSupply); + const updateRequired = !lastUpdateEpoch.eqn(epochInfo.epoch); + return { + address: stakePoolAddress.toBase58(), + poolWithdrawAuthority: withdrawAuthority.toBase58(), + manager: stakePool.account.data.manager.toBase58(), + staker: stakePool.account.data.staker.toBase58(), + stakeDepositAuthority: stakePool.account.data.stakeDepositAuthority.toBase58(), + stakeWithdrawBumpSeed: stakePool.account.data.stakeWithdrawBumpSeed, + maxValidators: maxNumberOfValidators, + validatorList: validatorList.account.data.validators.map((validator) => { + return { + activeStakeLamports: validator.activeStakeLamports.toString(), + transientStakeLamports: validator.transientStakeLamports.toString(), + lastUpdateEpoch: validator.lastUpdateEpoch.toString(), + transientSeedSuffixStart: validator.transientSeedSuffixStart.toString(), + transientSeedSuffixEnd: validator.transientSeedSuffixEnd.toString(), + status: validator.status.toString(), + voteAccountAddress: validator.voteAccountAddress.toString() + }; + }), + validatorListStorageAccount: stakePool.account.data.validatorList.toBase58(), + reserveStake: stakePool.account.data.reserveStake.toBase58(), + poolMint: stakePool.account.data.poolMint.toBase58(), + managerFeeAccount: stakePool.account.data.managerFeeAccount.toBase58(), + tokenProgramId: stakePool.account.data.tokenProgramId.toBase58(), + totalLamports: stakePool.account.data.totalLamports.toString(), + poolTokenSupply: stakePool.account.data.poolTokenSupply.toString(), + lastUpdateEpoch: stakePool.account.data.lastUpdateEpoch.toString(), + lockup: stakePool.account.data.lockup, + epochFee: stakePool.account.data.epochFee, + nextEpochFee: stakePool.account.data.nextEpochFee, + preferredDepositValidatorVoteAddress: stakePool.account.data.preferredDepositValidatorVoteAddress, + preferredWithdrawValidatorVoteAddress: stakePool.account.data.preferredWithdrawValidatorVoteAddress, + stakeDepositFee: stakePool.account.data.stakeDepositFee, + stakeWithdrawalFee: stakePool.account.data.stakeWithdrawalFee, + // CliStakePool the same + nextStakeWithdrawalFee: stakePool.account.data.nextStakeWithdrawalFee, + stakeReferralFee: stakePool.account.data.stakeReferralFee, + solDepositAuthority: (_c = stakePool.account.data.solDepositAuthority) === null || _c === void 0 ? void 0 : _c.toBase58(), + solDepositFee: stakePool.account.data.solDepositFee, + solReferralFee: stakePool.account.data.solReferralFee, + solWithdrawAuthority: (_d = stakePool.account.data.solWithdrawAuthority) === null || _d === void 0 ? void 0 : _d.toBase58(), + solWithdrawalFee: stakePool.account.data.solWithdrawalFee, + nextSolWithdrawalFee: stakePool.account.data.nextSolWithdrawalFee, + lastEpochPoolTokenSupply: stakePool.account.data.lastEpochPoolTokenSupply.toString(), + lastEpochTotalLamports: stakePool.account.data.lastEpochTotalLamports.toString(), + details: { + reserveStakeLamports: reserveStake === null || reserveStake === void 0 ? void 0 : reserveStake.lamports, + reserveAccountStakeAddress: reserveAccountStakeAddress.toBase58(), + minimumReserveStakeBalance, + stakeAccounts, + totalLamports, + totalPoolTokens, + currentNumberOfValidators, + maxNumberOfValidators, + updateRequired + } + // CliStakePoolDetails + }; + } + exports2.STAKE_POOL_INSTRUCTION_LAYOUTS = STAKE_POOL_INSTRUCTION_LAYOUTS; + exports2.STAKE_POOL_PROGRAM_ID = STAKE_POOL_PROGRAM_ID; + exports2.StakePoolInstruction = StakePoolInstruction; + exports2.decreaseValidatorStake = decreaseValidatorStake; + exports2.depositSol = depositSol; + exports2.depositStake = depositStake; + exports2.getStakeAccount = getStakeAccount; + exports2.getStakePoolAccount = getStakePoolAccount; + exports2.getStakePoolAccounts = getStakePoolAccounts; + exports2.increaseValidatorStake = increaseValidatorStake; + exports2.stakePoolInfo = stakePoolInfo; + exports2.updateStakePool = updateStakePool; + exports2.withdrawSol = withdrawSol; + exports2.withdrawStake = withdrawStake; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/stake-pool-helpers.js +var require_stake_pool_helpers = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/util/stake-pool-helpers.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.selectSpecificValidator = exports2.identifyValidatorFromTx = exports2.computeLSTValueInSOL = exports2.computeExpectedSOL = void 0; + var anchor_1 = require_cjs(); + var spl_stake_pool_1 = require_index_cjs3(); + var web3_js_1 = require_index_cjs(); + var anchor_2 = require_anchor2(); + var spl_token_3_x_1 = require_cjs4(); + var conversion_1 = require_conversion(); + function computeExpectedSOL(amountToWithdraw, cxn, stakePoolTokenAddress) { + return __awaiter2(this, void 0, void 0, function* () { + const stakePool = yield (0, spl_stake_pool_1.getStakePoolAccount)(cxn, stakePoolTokenAddress); + const solValue = (0, conversion_1.calcLamportsWithdrawAmount)(stakePool.account.data, (0, conversion_1.solToLamports)(amountToWithdraw)); + const withdrawalFee = solValue * (stakePool.account.data.stakeWithdrawalFee.numerator.mul(new anchor_1.BN(1e6)).div(stakePool.account.data.stakeWithdrawalFee.denominator).toNumber() / 1e6); + return solValue - withdrawalFee; + }); + } + exports2.computeExpectedSOL = computeExpectedSOL; + function computeLSTValueInSOL(amount, cxn, stakePoolTokenAddress) { + return __awaiter2(this, void 0, void 0, function* () { + const stakePool = yield (0, spl_stake_pool_1.getStakePoolAccount)(cxn, stakePoolTokenAddress); + const solValue = (0, conversion_1.calcLamportsWithdrawAmount)(stakePool.account.data, (0, conversion_1.solToLamports)(amount)); + return solValue; + }); + } + exports2.computeLSTValueInSOL = computeLSTValueInSOL; + function identifyValidatorFromTx(instructions, provider, marinadeState) { + return __awaiter2(this, void 0, void 0, function* () { + const withdrawTxAccounts = instructions.flatMap((i) => i.keys.map((k) => k.pubkey.toString())); + const excludedAccounts = [ + web3_js_1.SYSVAR_CLOCK_PUBKEY.toString(), + anchor_2.STAKE_PROGRAM_ID.toString(), + spl_token_3_x_1.TOKEN_PROGRAM_ID.toString() + ]; + const uniqueAccounts = withdrawTxAccounts.filter((value, index, self2) => { + return self2.indexOf(value) === index && self2.lastIndexOf(value) === index && !excludedAccounts.includes(value); + }); + let validatorAddress = ""; + yield Promise.all(uniqueAccounts.map((acc) => __awaiter2(this, void 0, void 0, function* () { + try { + const accountInfo = yield (0, anchor_2.getParsedStakeAccountInfo)(provider, new web3_js_1.PublicKey(acc)); + if (accountInfo.voterAddress) + validatorAddress = accountInfo.voterAddress.toString(); + } catch (_a) { + } + }))); + const duplicationFlag = yield marinadeState.validatorDuplicationFlag(new web3_js_1.PublicKey(validatorAddress)); + const { validatorRecords } = yield marinadeState.getValidatorRecords(); + const validatorLookupIndex = validatorRecords.findIndex(({ validatorAccount }) => validatorAccount.equals(new web3_js_1.PublicKey(validatorAddress))); + const validatorIndex = validatorLookupIndex === -1 ? marinadeState.state.validatorSystem.validatorList.count : validatorLookupIndex; + return { + validatorAddress: new web3_js_1.PublicKey(validatorAddress), + duplicationFlag, + validatorIndex + }; + }); + } + exports2.identifyValidatorFromTx = identifyValidatorFromTx; + function selectSpecificValidator(a, b, validators) { + const scoredValidatorA = a.voteAddress ? validators.has(a.voteAddress.toString()) : false; + const scoredValidatorB = b.voteAddress ? validators.has(b.voteAddress.toString()) : false; + return (scoredValidatorB ? b.lamports : 0) - (scoredValidatorA ? a.lamports : 0); + } + exports2.selectSpecificValidator = selectSpecificValidator; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade.js +var require_marinade = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Marinade = void 0; + var marinade_config_1 = require_marinade_config(); + var anchor_1 = require_cjs(); + var marinade_state_1 = require_marinade_state(); + var anchor_2 = require_anchor2(); + var marinade_finance_program_1 = require_marinade_finance_program(); + var marinade_referral_program_1 = require_marinade_referral_program(); + var marinade_referral_partner_state_1 = require_marinade_referral_partner_state(); + var marinade_referral_global_state_1 = require_marinade_referral_global_state(); + var assert_1 = require_assert(); + var ticket_account_1 = require_ticket_account(); + var util_1 = require_util9(); + var directed_stake_sdk_1 = require_src7(); + var nodewallet_1 = __importDefault2(require_nodewallet()); + var spl_stake_pool_1 = require_index_cjs3(); + var stake_pool_helpers_1 = require_stake_pool_helpers(); + var web3_js_1 = require_index_cjs(); + var Marinade = class { + constructor(config = new marinade_config_1.MarinadeConfig()) { + var _a; + this.config = config; + this.provider = new anchor_1.AnchorProvider(this.config.connection, new nodewallet_1.default(anchor_1.web3.Keypair.generate()), { commitment: "confirmed" }); + this.directedStakeSdk = new directed_stake_sdk_1.DirectedStakeSdk({ + connection: this.config.connection, + wallet: { + signTransaction: () => __awaiter2(this, void 0, void 0, function* () { + return new Promise(() => new anchor_1.web3.Transaction()); + }), + signAllTransactions: () => __awaiter2(this, void 0, void 0, function* () { + return new Promise(() => [new anchor_1.web3.Transaction()]); + }), + publicKey: (_a = this.config.publicKey) !== null && _a !== void 0 ? _a : anchor_1.web3.PublicKey.default + } + }); + this.marinadeFinanceProgram = new marinade_finance_program_1.MarinadeFinanceProgram(this.config.marinadeFinanceProgramId, this.provider); + this.marinadeReferralProgram = new marinade_referral_program_1.MarinadeReferralProgram(this.config.marinadeReferralProgramId, this.provider, this.config.referralCode, this); + } + isReferralProgram() { + return this.config.referralCode !== null; + } + provideReferralOrMainProgram() { + return this.isReferralProgram() ? this.marinadeReferralProgram : this.marinadeFinanceProgram; + } + /** + * Fetch the Marinade's internal state + */ + getMarinadeState() { + return __awaiter2(this, void 0, void 0, function* () { + return marinade_state_1.MarinadeState.fetch(this); + }); + } + /** + * Fetch the Marinade referral partner's state + */ + getReferralPartnerState(referralCode) { + return __awaiter2(this, void 0, void 0, function* () { + return marinade_referral_partner_state_1.MarinadeReferralPartnerState.fetch(this, referralCode); + }); + } + /** + * Fetch the Marinade referral program's global state + */ + getReferralGlobalState() { + return __awaiter2(this, void 0, void 0, function* () { + return marinade_referral_global_state_1.MarinadeReferralGlobalState.fetch(this); + }); + } + /** + * Fetch all the referral partners + */ + getReferralPartners() { + return __awaiter2(this, void 0, void 0, function* () { + const accounts = yield this.config.connection.getProgramAccounts(new anchor_1.web3.PublicKey(this.config.marinadeReferralProgramId), { + filters: [ + { + dataSize: this.marinadeReferralProgram.program.account.referralState.size + 20 + 96 + // number of bytes, + } + ] + }); + const codes = accounts.map((acc) => acc.pubkey); + return yield Promise.all(codes.map((referralCode) => this.getReferralPartnerState(referralCode))); + }); + } + /** + * Fetches the voteRecord of a given user + * + * @param {web3.PublicKey} userPublicKey - The PublicKey of the user + */ + getUsersVoteRecord(userPublicKey) { + return __awaiter2(this, void 0, void 0, function* () { + const address = (0, directed_stake_sdk_1.voteRecordAddress)({ + root: new anchor_1.web3.PublicKey(directed_stake_sdk_1.DEFAULT_DIRECTED_STAKE_ROOT), + owner: userPublicKey + }).address; + const voteRecords = yield (0, directed_stake_sdk_1.findVoteRecords)({ + sdk: this.directedStakeSdk, + owner: userPublicKey + }); + return { + voteRecord: voteRecords.length === 1 ? voteRecords[0] : void 0, + address + }; + }); + } + /** + * Returns a transaction with the instructions to + * Add liquidity to the liquidity pool and receive LP tokens + * + * @param {BN} amountLamports - The amount of lamports added to the liquidity pool + */ + addLiquidity(amountLamports) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const marinadeState = yield this.getMarinadeState(); + const transaction = new anchor_1.web3.Transaction(); + const { associatedTokenAccountAddress: associatedLPTokenAccountAddress, createAssociateTokenInstruction } = yield (0, anchor_2.getOrCreateAssociatedTokenAccount)(this.provider, marinadeState.lpMintAddress, ownerAddress); + if (createAssociateTokenInstruction) { + transaction.add(createAssociateTokenInstruction); + } + const addLiquidityInstruction = yield this.marinadeFinanceProgram.addLiquidityInstructionBuilder({ + marinadeState, + associatedLPTokenAccountAddress, + ownerAddress, + amountLamports + }); + transaction.add(addLiquidityInstruction); + return { + associatedLPTokenAccountAddress, + transaction + }; + }); + } + /** + * Returns a transaction with the instructions to + * Burn LP tokens and get SOL and mSOL back from the liquidity pool + * + * @param {BN} amountLamports - The amount of LP tokens burned + */ + removeLiquidity(amountLamports) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const marinadeState = yield this.getMarinadeState(); + const transaction = new anchor_1.web3.Transaction(); + const associatedLPTokenAccountAddress = yield (0, anchor_2.getAssociatedTokenAccountAddress)(marinadeState.lpMintAddress, ownerAddress); + const { associatedTokenAccountAddress: associatedMSolTokenAccountAddress, createAssociateTokenInstruction } = yield (0, anchor_2.getOrCreateAssociatedTokenAccount)(this.provider, marinadeState.mSolMintAddress, ownerAddress); + if (createAssociateTokenInstruction) { + transaction.add(createAssociateTokenInstruction); + } + const removeLiquidityInstruction = yield this.marinadeFinanceProgram.removeLiquidityInstructionBuilder({ + amountLamports, + marinadeState, + ownerAddress, + associatedLPTokenAccountAddress, + associatedMSolTokenAccountAddress + }); + transaction.add(removeLiquidityInstruction); + return { + associatedLPTokenAccountAddress, + associatedMSolTokenAccountAddress, + transaction + }; + }); + } + /** + * Creates necessary directed stake voting instructions for the specified validator. + * If the vote address is left undefined the standard delegation strategy is used. + * + * @param {web3.PublicKey} validatorVoteAddress - The vote address to identify the validator + */ + createDirectedStakeVoteIx(validatorVoteAddress) { + return __awaiter2(this, void 0, void 0, function* () { + const owner = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const { voteRecord } = yield this.getUsersVoteRecord(owner); + if (!voteRecord) { + if (validatorVoteAddress) { + return (yield (0, directed_stake_sdk_1.withCreateVote)({ + sdk: this.directedStakeSdk, + validatorVote: validatorVoteAddress + })).instruction; + } + return; + } + if (validatorVoteAddress) { + return (yield (0, directed_stake_sdk_1.withUpdateVote)({ + sdk: this.directedStakeSdk, + validatorVote: validatorVoteAddress, + voteRecord: voteRecord.publicKey + })).instruction; + } + return (yield (0, directed_stake_sdk_1.withRemoveVote)({ + sdk: this.directedStakeSdk, + voteRecord: voteRecord.publicKey + })).instruction; + }); + } + /** + * Returns a transaction with the instructions to + * Stake SOL in exchange for mSOL + * + * @param {BN} amountLamports - The amount lamports staked + * @param {DepositOptions} options - Additional deposit options + */ + deposit(amountLamports, options = {}) { + var _a; + return __awaiter2(this, void 0, void 0, function* () { + const feePayer = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const mintToOwnerAddress = (0, assert_1.assertNotNullAndReturn)( + (_a = options.mintToOwnerAddress) !== null && _a !== void 0 ? _a : this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const marinadeState = yield this.getMarinadeState(); + const transaction = new anchor_1.web3.Transaction(); + const { associatedTokenAccountAddress: associatedMSolTokenAccountAddress, createAssociateTokenInstruction } = yield (0, anchor_2.getOrCreateAssociatedTokenAccount)(this.provider, marinadeState.mSolMintAddress, mintToOwnerAddress, feePayer); + if (createAssociateTokenInstruction) { + transaction.add(createAssociateTokenInstruction); + } + const program = this.provideReferralOrMainProgram(); + const depositInstruction = yield program.depositInstructionBuilder({ + amountLamports, + marinadeState, + transferFrom: feePayer, + associatedMSolTokenAccountAddress + }); + transaction.add(depositInstruction); + const directedStakeInstruction = yield this.createDirectedStakeVoteIx(options.directToValidatorVoteAddress); + if (directedStakeInstruction) { + transaction.add(directedStakeInstruction); + } + return { + associatedMSolTokenAccountAddress, + transaction + }; + }); + } + /** + * Returns a transaction with the instructions to + * Swap your mSOL to get back SOL immediately using the liquidity pool + * + * @param {BN} amountLamports - The amount of mSOL exchanged for SOL + */ + liquidUnstake(amountLamports, associatedMSolTokenAccountAddress) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const marinadeState = yield this.getMarinadeState(); + const transaction = new anchor_1.web3.Transaction(); + if (!associatedMSolTokenAccountAddress) { + const associatedTokenAccountInfos = yield (0, anchor_2.getOrCreateAssociatedTokenAccount)(this.provider, marinadeState.mSolMintAddress, ownerAddress); + const createAssociateTokenInstruction = associatedTokenAccountInfos.createAssociateTokenInstruction; + associatedMSolTokenAccountAddress = associatedTokenAccountInfos.associatedTokenAccountAddress; + if (createAssociateTokenInstruction) { + transaction.add(createAssociateTokenInstruction); + } + } + const program = this.provideReferralOrMainProgram(); + const liquidUnstakeInstruction = yield program.liquidUnstakeInstructionBuilder({ + amountLamports, + marinadeState, + ownerAddress, + associatedMSolTokenAccountAddress + }); + transaction.add(liquidUnstakeInstruction); + return { + associatedMSolTokenAccountAddress, + transaction + }; + }); + } + /** + * Returns a transaction with the instructions to + * Deposit a delegated stake account. + * Note that the stake must be fully activated and the validator must be known to Marinade + * + * @param {web3.PublicKey} stakeAccountAddress - The account to be deposited + * @param {DepositStakeAccountOptions} options - Additional deposit options + */ + depositStakeAccount(stakeAccountAddress, options = {}) { + return __awaiter2(this, void 0, void 0, function* () { + const stakeAccountInfo = yield (0, anchor_2.getParsedStakeAccountInfo)(this.provider, stakeAccountAddress); + const marinadeState = yield this.getMarinadeState(); + const rent = yield this.provider.connection.getMinimumBalanceForRentExemption(anchor_1.web3.StakeProgram.space); + return this.depositStakeAccountByAccount(stakeAccountInfo, rent, marinadeState, options); + }); + } + /** + * @beta + * + * Returns a transaction with the instructions to + * Deposit a deactivating stake account. + * Note that the stake must be deactivating and the validator must be known to Marinade + * + * @param {web3.PublicKey} stakeAccountAddress - The account to be deposited + * @param {DepositStakeAccountOptions} options - Additional deposit options + */ + depositDeactivatingStakeAccount(stakeAccountAddress, options = {}) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const stakeAccountInfo = yield (0, anchor_2.getParsedStakeAccountInfo)(this.provider, stakeAccountAddress); + if (!stakeAccountInfo.voterAddress) { + throw new Error("Stake account's votes could not be fetched/parsed."); + } + const marinadeState = yield this.getMarinadeState(); + const delegateTransaction = web3_js_1.StakeProgram.delegate({ + stakePubkey: stakeAccountAddress, + authorizedPubkey: ownerAddress, + votePubkey: stakeAccountInfo.voterAddress + }); + const { associatedTokenAccountAddress: associatedMSolTokenAccountAddress, createAssociateTokenInstruction } = yield (0, anchor_2.getOrCreateAssociatedTokenAccount)(this.provider, marinadeState.mSolMintAddress, ownerAddress); + if (createAssociateTokenInstruction) { + delegateTransaction.instructions.push(createAssociateTokenInstruction); + } + const duplicationFlag = yield marinadeState.validatorDuplicationFlag(stakeAccountInfo.voterAddress); + const { validatorRecords } = yield marinadeState.getValidatorRecords(); + const validatorLookupIndex = validatorRecords.findIndex(({ validatorAccount }) => validatorAccount.equals(stakeAccountInfo.voterAddress)); + const validatorIndex = validatorLookupIndex === -1 ? marinadeState.state.validatorSystem.validatorList.count : validatorLookupIndex; + const depositInstruction = yield this.provideReferralOrMainProgram().depositStakeAccountInstructionBuilder({ + validatorIndex, + marinadeState, + duplicationFlag, + ownerAddress, + stakeAccountAddress, + authorizedWithdrawerAddress: ownerAddress, + associatedMSolTokenAccountAddress + }); + delegateTransaction.instructions.push(depositInstruction); + const directedStakeInstruction = yield this.createDirectedStakeVoteIx(options.directToValidatorVoteAddress); + if (directedStakeInstruction) { + delegateTransaction.add(directedStakeInstruction); + } + return { + transaction: delegateTransaction, + associatedMSolTokenAccountAddress + }; + }); + } + /** + * Returns a transaction with the instructions to + * Deposit a delegated stake account. + * Note that the stake must be fully activated and the validator must be known to Marinade + * + * @param {ParsedStakeAccountInfo} stakeAccountInfo - Parsed Stake Account info + * @param {number} rent - Rent needed for a stake account + * @param {MarinadeState} marinadeState - Marinade State needed for retrieving validator info + * @param {DepositStakeAccountOptions} options - Additional deposit options + */ + depositStakeAccountByAccount(stakeAccountInfo, rent, marinadeState, options = {}) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const transaction = new anchor_1.web3.Transaction(); + const currentEpoch = yield this.provider.connection.getEpochInfo(); + const { authorizedWithdrawerAddress, voterAddress, activationEpoch, isCoolingDown, isLockedUp, stakedLamports, balanceLamports } = stakeAccountInfo; + if (!authorizedWithdrawerAddress) { + throw new Error("Withdrawer address is not available!"); + } + if (isLockedUp) { + throw new Error("The stake account is locked up!"); + } + if (!activationEpoch || !voterAddress) { + throw new Error("The stake account is not delegated!"); + } + if (isCoolingDown) { + transaction.add(anchor_1.web3.StakeProgram.delegate({ + stakePubkey: stakeAccountInfo.address, + authorizedPubkey: ownerAddress, + votePubkey: voterAddress + })); + } + if (stakedLamports && (balanceLamports === null || balanceLamports === void 0 ? void 0 : balanceLamports.gt(stakedLamports))) { + const lamportsToWithdraw = balanceLamports.sub(stakedLamports).toNumber() - rent; + if (lamportsToWithdraw > 0) + transaction.add(anchor_1.web3.StakeProgram.withdraw({ + stakePubkey: stakeAccountInfo.address, + authorizedPubkey: ownerAddress, + toPubkey: ownerAddress, + lamports: lamportsToWithdraw + })); + } + const waitEpochs = 2; + const earliestDepositEpoch = activationEpoch.addn(waitEpochs); + if (earliestDepositEpoch.gtn(currentEpoch.epoch)) { + throw new Error(`Deposited stake ${stakeAccountInfo.address} is not activated yet. Wait for #${earliestDepositEpoch} epoch`); + } + const { validatorRecords } = yield marinadeState.getValidatorRecords(); + const validatorLookupIndex = validatorRecords.findIndex(({ validatorAccount }) => validatorAccount.equals(voterAddress)); + const validatorIndex = validatorLookupIndex === -1 ? marinadeState.state.validatorSystem.validatorList.count : validatorLookupIndex; + const duplicationFlag = yield marinadeState.validatorDuplicationFlag(voterAddress); + const { associatedTokenAccountAddress: associatedMSolTokenAccountAddress, createAssociateTokenInstruction } = yield (0, anchor_2.getOrCreateAssociatedTokenAccount)(this.provider, marinadeState.mSolMintAddress, ownerAddress); + if (createAssociateTokenInstruction) { + transaction.add(createAssociateTokenInstruction); + } + const program = this.provideReferralOrMainProgram(); + const depositStakeAccountInstruction = yield program.depositStakeAccountInstructionBuilder({ + validatorIndex, + marinadeState, + duplicationFlag, + authorizedWithdrawerAddress, + associatedMSolTokenAccountAddress, + ownerAddress, + stakeAccountAddress: stakeAccountInfo.address + }); + transaction.add(depositStakeAccountInstruction); + const directedStakeInstruction = yield this.createDirectedStakeVoteIx(options.directToValidatorVoteAddress); + if (directedStakeInstruction) { + transaction.add(directedStakeInstruction); + } + return { + associatedMSolTokenAccountAddress, + voterAddress, + transaction, + mintRatio: marinadeState.mSolPrice + }; + }); + } + /** + * @beta + * + * Generates a transaction to partially convert a fully activated delegated stake account into mSOL, + * while the remaining balance continues to be staked in its native form. + * + * Requirements: + * - The stake's validator should be recognized by Marinade. + * - The transaction should be executed immediately after being generated. + * - A minimum amount of 1 SOL is required for conversion to mSOL. + * + * @param {web3.PublicKey} stakeAccountAddress - The account to be deposited + * @param {BN} solToKeep - Amount of SOL lamports to keep + * @param {DepositStakeAccountOptions} options - Additional deposit options + */ + partiallyDepositStakeAccount(stakeAccountAddress, solToKeep, options = {}) { + var _a; + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const stakeAccountInfo = yield (0, anchor_2.getParsedStakeAccountInfo)(this.provider, stakeAccountAddress); + if (stakeAccountInfo.balanceLamports && ((_a = stakeAccountInfo.balanceLamports) === null || _a === void 0 ? void 0 : _a.sub(solToKeep).toNumber()) < 1) { + throw new Error("Can't deposit less than 1 SOL"); + } + const rent = yield this.provider.connection.getMinimumBalanceForRentExemption(anchor_1.web3.StakeProgram.space); + const marinadeState = yield this.getMarinadeState(); + const newStakeAccountKeypair = web3_js_1.Keypair.generate(); + const splitStakeTx = web3_js_1.StakeProgram.split({ + stakePubkey: stakeAccountAddress, + authorizedPubkey: ownerAddress, + splitStakePubkey: newStakeAccountKeypair.publicKey, + lamports: solToKeep.toNumber() + }); + const { transaction: depositTx, associatedMSolTokenAccountAddress, voterAddress } = yield this.depositStakeAccountByAccount(stakeAccountInfo, rent, marinadeState, options); + splitStakeTx.instructions.push(...depositTx.instructions); + return { + transaction: splitStakeTx, + associatedMSolTokenAccountAddress, + stakeAccountKeypair: newStakeAccountKeypair, + voterAddress + }; + }); + } + /** + * @beta + * + * Generates a transaction to convert an activating stake account into mSOL, + * while the remaining balance continues to be staked in its native form. + * + * Requirements: + * - The stake's validator should be recognized by Marinade. + * - The transaction should be executed immediately after being generated. + * + * @param {web3.PublicKey} stakeAccountAddress - The account to be deposited + * @param {BN} solToKeep - Amount of SOL lamports to keep as a stake account + * @param {DepositStakeAccountOptions} options - Additional deposit options + */ + depositActivatingStakeAccount(stakeAccountAddress, solToKeep, options = {}) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const stakeAccountInfo = yield (0, anchor_2.getParsedStakeAccountInfo)(this.provider, stakeAccountAddress); + if (!stakeAccountInfo.stakedLamports) { + throw new Error(`Stake account ${stakeAccountInfo.address} does not have staked lamports`); + } + const rent = yield this.provider.connection.getMinimumBalanceForRentExemption(anchor_1.web3.StakeProgram.space); + const lamportsToWithdraw = stakeAccountInfo.stakedLamports.sub(solToKeep).add(new anchor_1.BN(rent)); + const newStakeAccountKeypair = web3_js_1.Keypair.generate(); + const transaction = new web3_js_1.Transaction(); + if (solToKeep.gt(new anchor_1.BN(0))) { + const splitStakeTx = web3_js_1.StakeProgram.split({ + stakePubkey: stakeAccountAddress, + authorizedPubkey: ownerAddress, + splitStakePubkey: newStakeAccountKeypair.publicKey, + lamports: solToKeep.toNumber() + }); + transaction.add(...splitStakeTx.instructions); + } + const deactivateTx = web3_js_1.StakeProgram.deactivate({ + stakePubkey: stakeAccountAddress, + authorizedPubkey: ownerAddress + }); + transaction.add(...deactivateTx.instructions); + const withdrawTx = web3_js_1.StakeProgram.withdraw({ + stakePubkey: stakeAccountAddress, + authorizedPubkey: ownerAddress, + toPubkey: ownerAddress, + lamports: lamportsToWithdraw.toNumber() + }); + transaction.add(...withdrawTx.instructions); + const { transaction: depositTx, associatedMSolTokenAccountAddress } = yield this.deposit(lamportsToWithdraw, { + directToValidatorVoteAddress: options.directToValidatorVoteAddress + }); + transaction.instructions.push(...depositTx.instructions); + return { + transaction, + associatedMSolTokenAccountAddress, + stakeAccountKeypair: solToKeep.gt(new anchor_1.BN(0)) ? newStakeAccountKeypair : void 0 + }; + }); + } + /** + * Returns a transaction with the instructions to + * Liquidate a delegated stake account. + * Note that the stake must be fully activated and the validator must be known to Marinade + * and that the transaction should be executed immediately after creation. + * + * @param {web3.PublicKey} stakeAccountAddress - The account to be deposited + * @param {BN} mSolToKeep - Optional amount of mSOL lamports to keep + */ + liquidateStakeAccount(stakeAccountAddress, mSolToKeep) { + var _a; + return __awaiter2(this, void 0, void 0, function* () { + const stakeAccountInfo = yield (0, anchor_2.getParsedStakeAccountInfo)(this.provider, stakeAccountAddress); + const rent = yield this.provider.connection.getMinimumBalanceForRentExemption(anchor_1.web3.StakeProgram.space); + const marinadeState = yield this.getMarinadeState(); + const { transaction: depositTx, associatedMSolTokenAccountAddress, voterAddress } = yield this.depositStakeAccountByAccount(stakeAccountInfo, rent, marinadeState); + let mSolAmountToReceive = (0, util_1.computeMsolAmount)((_a = stakeAccountInfo.stakedLamports) !== null && _a !== void 0 ? _a : new anchor_1.BN(0), marinadeState); + if (this.isReferralProgram()) { + const partnerOperationFee = (yield this.marinadeReferralProgram.getReferralStateData()).operationDepositStakeAccountFee; + mSolAmountToReceive = mSolAmountToReceive.sub((0, util_1.proportionalBN)(mSolAmountToReceive, new anchor_1.BN(partnerOperationFee), new anchor_1.BN(1e4))); + } + const unstakeAmountMSol = mSolAmountToReceive.sub(mSolToKeep !== null && mSolToKeep !== void 0 ? mSolToKeep : new anchor_1.BN(0)); + const { transaction: unstakeTx } = yield this.liquidUnstake(unstakeAmountMSol, associatedMSolTokenAccountAddress); + return { + transaction: depositTx.add(unstakeTx), + associatedMSolTokenAccountAddress, + voterAddress + }; + }); + } + /** + * @beta + * + * Returns a transaction with the instructions to + * Partially liquidate a delegated stake account, while the rest remains staked natively. + * Note that the stake must be fully activated and the validator must be known to Marinade + * and that the transaction should be executed immediately after creation. + * + * @param {web3.PublicKey} stakeAccountAddress - The account to be deposited + * @param {BN} solToKeep - Amount of SOL lamports to keep + */ + partiallyLiquidateStakeAccount(stakeAccountAddress, solToKeep) { + var _a; + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const stakeAccountInfo = yield (0, anchor_2.getParsedStakeAccountInfo)(this.provider, stakeAccountAddress); + const rent = yield this.provider.connection.getMinimumBalanceForRentExemption(anchor_1.web3.StakeProgram.space); + const stakeToLiquidate = (_a = stakeAccountInfo.stakedLamports) === null || _a === void 0 ? void 0 : _a.sub(solToKeep); + if (!stakeToLiquidate || stakeToLiquidate.toNumber() < 1) { + throw new Error("Can't liquidate less than 1 SOL"); + } + const marinadeState = yield this.getMarinadeState(); + const newStakeAccountKeypair = web3_js_1.Keypair.generate(); + const splitStakeInstruction = web3_js_1.StakeProgram.split({ + stakePubkey: stakeAccountAddress, + authorizedPubkey: ownerAddress, + splitStakePubkey: newStakeAccountKeypair.publicKey, + lamports: solToKeep.toNumber() + }); + const { transaction: depositTx, associatedMSolTokenAccountAddress, voterAddress } = yield this.depositStakeAccountByAccount(stakeAccountInfo, rent, marinadeState); + depositTx.instructions.unshift(...splitStakeInstruction.instructions); + let mSolAmountToReceive = (0, util_1.computeMsolAmount)(stakeToLiquidate, marinadeState); + if (this.isReferralProgram()) { + const partnerOperationFee = (yield this.marinadeReferralProgram.getReferralStateData()).operationDepositStakeAccountFee; + mSolAmountToReceive = mSolAmountToReceive.sub((0, util_1.proportionalBN)(mSolAmountToReceive, new anchor_1.BN(partnerOperationFee), new anchor_1.BN(1e4))); + } + const { transaction: unstakeTx } = yield this.liquidUnstake(mSolAmountToReceive, associatedMSolTokenAccountAddress); + return { + transaction: depositTx.add(unstakeTx), + associatedMSolTokenAccountAddress, + stakeAccountKeypair: newStakeAccountKeypair, + voterAddress + }; + }); + } + /** + * Retrieve user's ticket accounts + * + * @param {web3.PublicKey} beneficiary - The owner of the ticket accounts + */ + getDelayedUnstakeTickets(beneficiary) { + return __awaiter2(this, void 0, void 0, function* () { + return this.marinadeFinanceProgram.getDelayedUnstakeTickets(beneficiary); + }); + } + /** + * Returns estimated Due date for an unstake ticket created now + * + */ + getEstimatedUnstakeTicketDueDate() { + return __awaiter2(this, void 0, void 0, function* () { + const marinadeState = yield this.getMarinadeState(); + return this.marinadeFinanceProgram.getEstimatedUnstakeTicketDueDate(marinadeState); + }); + } + /** + * Returns a transaction with the instructions to + * Order Unstake to create a ticket which can be claimed later (with {@link claim}). + * + * @param {BN} msolAmount - The amount of mSOL in lamports to order for unstaking + */ + orderUnstake(msolAmount) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const marinadeState = yield this.getMarinadeState(); + const associatedMSolTokenAccountAddress = yield (0, anchor_2.getAssociatedTokenAccountAddress)(marinadeState.mSolMintAddress, ownerAddress); + const ticketAccountKeypair = anchor_1.web3.Keypair.generate(); + const rent = yield this.provider.connection.getMinimumBalanceForRentExemption(ticket_account_1.TICKET_ACCOUNT_SIZE); + const createAccountInstruction = anchor_1.web3.SystemProgram.createAccount({ + fromPubkey: ownerAddress, + newAccountPubkey: ticketAccountKeypair.publicKey, + lamports: rent, + space: ticket_account_1.TICKET_ACCOUNT_SIZE, + programId: this.marinadeFinanceProgram.programAddress + }); + const program = this.marinadeFinanceProgram; + const orderUnstakeInstruction = yield program.orderUnstakeInstructionBuilder({ + msolAmount, + marinadeState, + ownerAddress, + associatedMSolTokenAccountAddress, + newTicketAccount: ticketAccountKeypair.publicKey + }); + const transaction = new anchor_1.web3.Transaction().add(createAccountInstruction, orderUnstakeInstruction); + return { + ticketAccountKeypair, + transaction, + associatedMSolTokenAccountAddress + }; + }); + } + /** + * Returns a transaction with the instructions to + * claim a ticket (created by {@link orderUnstake} beforehand). + * Claimed SOLs will be sent to {@link MarinadeConfig.publicKey}. + * + * @param {web3.PublicKey} ticketAccount - Address of the ticket account for SOLs being claimed from + */ + claim(ticketAccount) { + return __awaiter2(this, void 0, void 0, function* () { + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const marinadeState = yield this.getMarinadeState(); + const program = this.marinadeFinanceProgram; + const claimInstruction = yield program.claimInstructionBuilder({ + marinadeState, + ticketAccount, + transferSolTo: ownerAddress + }); + const transaction = new anchor_1.web3.Transaction().add(claimInstruction); + return { + transaction + }; + }); + } + /** + * @beta + * + * Returns a transaction with the instructions to + * Deposit an amount of stake pool tokens. + * + * This method is in beta stage. It may be changed or removed in future versions. + * + * @param {web3.PublicKey} stakePoolTokenAddress - The stake pool token account to be deposited + * @param {number} amountToDeposit - Amount to deposit + * @param {ValidatorStats[]} validators - List of validators to prio where to take the stake from + */ + depositStakePoolToken(stakePoolTokenAddress, amountToDeposit, validators, options = {}) { + return __awaiter2(this, void 0, void 0, function* () { + const marinadeState = yield this.getMarinadeState(); + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const lookupTable = (yield this.config.connection.getAddressLookupTable(this.config.lookupTableAddress)).value; + if (!lookupTable) { + throw new Error("Failed to load the lookup table"); + } + const expectedSOL = yield (0, stake_pool_helpers_1.computeExpectedSOL)(amountToDeposit, this.config.connection, stakePoolTokenAddress); + if (expectedSOL / web3_js_1.LAMPORTS_PER_SOL < 1) { + throw new Error("Can't convert less than equivalent of 1 SOL"); + } + const instructions = []; + const validatorSet = new Set(validators.filter((v) => v.score).map((v) => v.vote_account)); + const withdrawTx = yield (0, spl_stake_pool_1.withdrawStake)(this.provider.connection, stakePoolTokenAddress, ownerAddress, amountToDeposit, void 0, void 0, void 0, void 0, (a, b) => (0, stake_pool_helpers_1.selectSpecificValidator)(a, b, validatorSet)); + instructions.push(...withdrawTx.instructions); + const { associatedTokenAccountAddress: associatedMSolTokenAccountAddress, createAssociateTokenInstruction } = yield (0, anchor_2.getOrCreateAssociatedTokenAccount)(this.provider, marinadeState.mSolMintAddress, ownerAddress); + if (createAssociateTokenInstruction) { + instructions.push(createAssociateTokenInstruction); + } + const { duplicationFlag, validatorIndex } = yield (0, stake_pool_helpers_1.identifyValidatorFromTx)(withdrawTx.instructions, this.provider, marinadeState); + const depositInstruction = yield this.provideReferralOrMainProgram().depositStakeAccountInstructionBuilder({ + validatorIndex, + marinadeState, + duplicationFlag, + ownerAddress, + stakeAccountAddress: withdrawTx.signers[1].publicKey, + authorizedWithdrawerAddress: ownerAddress, + associatedMSolTokenAccountAddress + }); + instructions.push(depositInstruction); + const directedStakeInstruction = yield this.createDirectedStakeVoteIx(options.directToValidatorVoteAddress); + if (directedStakeInstruction) { + instructions.push(directedStakeInstruction); + } + const { blockhash: recentBlockhash } = yield this.config.connection.getLatestBlockhash("finalized"); + const transactionMessage = new anchor_1.web3.TransactionMessage({ + payerKey: ownerAddress, + recentBlockhash, + instructions + }).compileToV0Message([lookupTable]); + const transaction = new anchor_1.web3.VersionedTransaction(transactionMessage); + transaction.sign(withdrawTx.signers); + return { + associatedMSolTokenAccountAddress, + transaction + }; + }); + } + /** + * @beta + * + * Returns a transaction with the instructions to + * Liquidate an amount of stake pool tokens. + * + * This method is in beta stage. It may be changed or removed in future versions. + * + * @param {web3.PublicKey} stakePoolTokenAddress - The stake pool token account to be liquidated + * @param {number} amountToLiquidate - Amount to liquidate + * @param {ValidatorStats[]} validators - List of validators to prio where to take the stake from + */ + liquidateStakePoolToken(stakePoolTokenAddress, amountToLiquidate, validators) { + return __awaiter2(this, void 0, void 0, function* () { + const marinadeState = yield this.getMarinadeState(); + const ownerAddress = (0, assert_1.assertNotNullAndReturn)( + this.config.publicKey, + "User's public key must be provided in the configuration!" + /* ErrorMessage.NO_PUBLIC_KEY */ + ); + const lookupTable = (yield this.config.connection.getAddressLookupTable(this.config.lookupTableAddress)).value; + if (!lookupTable) { + throw new Error("Failed to load the lookup table"); + } + const instructions = []; + const validatorSet = new Set(validators.filter((v) => v.score).map((v) => v.vote_account)); + const withdrawTx = yield (0, spl_stake_pool_1.withdrawStake)(this.provider.connection, stakePoolTokenAddress, ownerAddress, amountToLiquidate, void 0, void 0, void 0, void 0, (a, b) => (0, stake_pool_helpers_1.selectSpecificValidator)(a, b, validatorSet)); + const expectedSOL = yield (0, stake_pool_helpers_1.computeExpectedSOL)(amountToLiquidate, this.config.connection, stakePoolTokenAddress); + if (expectedSOL / web3_js_1.LAMPORTS_PER_SOL < 1) { + throw new Error("Can't convert less than equivalent of 1 SOL"); + } + let mSolAmountToReceive = (0, util_1.computeMsolAmount)(new anchor_1.BN(expectedSOL), marinadeState); + if (this.isReferralProgram()) { + const partnerOperationFee = (yield this.marinadeReferralProgram.getReferralStateData()).operationDepositStakeAccountFee; + mSolAmountToReceive = mSolAmountToReceive.sub((0, util_1.proportionalBN)(mSolAmountToReceive, new anchor_1.BN(partnerOperationFee), new anchor_1.BN(1e4))); + } + instructions.push(...withdrawTx.instructions); + const { associatedTokenAccountAddress: associatedMSolTokenAccountAddress, createAssociateTokenInstruction } = yield (0, anchor_2.getOrCreateAssociatedTokenAccount)(this.provider, marinadeState.mSolMintAddress, ownerAddress); + if (createAssociateTokenInstruction) { + instructions.push(createAssociateTokenInstruction); + } + const { duplicationFlag, validatorIndex } = yield (0, stake_pool_helpers_1.identifyValidatorFromTx)(withdrawTx.instructions, this.provider, marinadeState); + const depositInstruction = yield this.provideReferralOrMainProgram().depositStakeAccountInstructionBuilder({ + validatorIndex, + marinadeState, + duplicationFlag, + ownerAddress, + stakeAccountAddress: withdrawTx.signers[1].publicKey, + authorizedWithdrawerAddress: ownerAddress, + associatedMSolTokenAccountAddress + }); + const liquidUnstakeInstruction = yield this.marinadeFinanceProgram.liquidUnstakeInstructionBuilder({ + amountLamports: mSolAmountToReceive, + marinadeState, + ownerAddress, + associatedMSolTokenAccountAddress + }); + instructions.push(depositInstruction); + instructions.push(liquidUnstakeInstruction); + const { blockhash: recentBlockhash } = yield this.config.connection.getLatestBlockhash("finalized"); + const transactionMessage = new anchor_1.web3.TransactionMessage({ + payerKey: ownerAddress, + recentBlockhash, + instructions + }).compileToV0Message([lookupTable]); + const transaction = new anchor_1.web3.VersionedTransaction(transactionMessage); + transaction.sign(withdrawTx.signers); + return { + associatedMSolTokenAccountAddress, + transaction + }; + }); + } + }; + exports2.Marinade = Marinade; + } +}); + +// node_modules/@marinade.finance/native-staking-sdk/dist/src/config.js +var require_config = __commonJS({ + "node_modules/@marinade.finance/native-staking-sdk/dist/src/config.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NativeStakingConfig = exports2.DEFAULT_PREPARE_FOR_REVOKE_COST = exports2.NATIVE_STAKING_REFERRAL_API_URL = exports2.NATIVE_STAKING_API_URL_DEV = exports2.DEFAULT_NATIVE_STAKING_API_URL = exports2.DEFAULT_BENEFICIARY = exports2.DEFAULT_EXIT_AUTHORITY = exports2.DEFAULT_STAKE_AUTHORITY = void 0; + var web3_js_1 = require_index_cjs(); + var bn_js_1 = __importDefault2(require_bn()); + exports2.DEFAULT_STAKE_AUTHORITY = new web3_js_1.PublicKey("stWirqFCf2Uts1JBL1Jsd3r6VBWhgnpdPxCTe1MFjrq"); + exports2.DEFAULT_EXIT_AUTHORITY = new web3_js_1.PublicKey("ex9CfkBZZd6Nv9XdnoDmmB45ymbu4arXVk7g5pWnt3N"); + exports2.DEFAULT_BENEFICIARY = new web3_js_1.PublicKey("opNS8ENpEMWdXcJUgJCsJTDp7arTXayoBEeBUg6UezP"); + exports2.DEFAULT_NATIVE_STAKING_API_URL = "https://native-staking.marinade.finance"; + exports2.NATIVE_STAKING_API_URL_DEV = "https://native-staking-dev.marinade.finance"; + exports2.NATIVE_STAKING_REFERRAL_API_URL = "https://ns-referral.marinade.finance"; + exports2.DEFAULT_PREPARE_FOR_REVOKE_COST = new bn_js_1.default("2300000"); + var NativeStakingConfig = class { + constructor(overrides = {}) { + this.connection = new web3_js_1.Connection("http://127.0.0.1:8899", "confirmed"); + this.stakeAuthority = exports2.DEFAULT_STAKE_AUTHORITY; + this.exitAuthority = exports2.DEFAULT_EXIT_AUTHORITY; + this.nativeStakingApiUrl = exports2.DEFAULT_NATIVE_STAKING_API_URL; + this.nativeStakingReferralApiUrl = exports2.NATIVE_STAKING_REFERRAL_API_URL; + this.beneficiary = exports2.DEFAULT_BENEFICIARY; + this.prepareForRevokeCost = exports2.DEFAULT_PREPARE_FOR_REVOKE_COST; + Object.assign(this, overrides); + } + }; + exports2.NativeStakingConfig = NativeStakingConfig; + } +}); + +// node_modules/@marinade.finance/native-staking-sdk/dist/src/utils.js +var require_utils10 = __commonJS({ + "node_modules/@marinade.finance/native-staking-sdk/dist/src/utils.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.buildAuthorizeStakerInstructions = exports2.formatStakeDistribution = exports2.getFutureStakeDistribution = exports2.filterReadyToRevoke = exports2.getStakeAccounts = exports2.lamportsToSol = exports2.tokenBalanceToNumber = exports2.withDecimalPoint = void 0; + var web3_js_1 = require_index_cjs(); + var bn_js_1 = __importDefault2(require_bn()); + var SOL_DECIMALS = 9; + var U64_MAX = "18446744073709551615"; + var withDecimalPoint = (bn, decimals) => { + const s = bn.toString().padStart(decimals + 1, "0"); + const l = s.length; + return s.slice(0, l - decimals) + "." + s.slice(-decimals); + }; + exports2.withDecimalPoint = withDecimalPoint; + var tokenBalanceToNumber = (bn, decimals) => (0, exports2.withDecimalPoint)(bn, decimals); + exports2.tokenBalanceToNumber = tokenBalanceToNumber; + var lamportsToSol = (bn) => (0, exports2.tokenBalanceToNumber)(bn, SOL_DECIMALS); + exports2.lamportsToSol = lamportsToSol; + var getStakeAccounts = (connection, withdrawAuthority, stakeAuthority) => __awaiter2(void 0, void 0, void 0, function* () { + if (!stakeAuthority && !withdrawAuthority) { + throw new Error("At least one authority must be provided"); + } + const filters = []; + if (stakeAuthority) { + filters.push({ + memcmp: { + bytes: stakeAuthority.toBase58(), + offset: 4 + 8 + } + }); + } + if (withdrawAuthority) { + filters.push({ + memcmp: { + bytes: withdrawAuthority.toBase58(), + offset: 4 + 8 + 32 + } + }); + } + const stakeAccounts = yield connection.getParsedProgramAccounts(web3_js_1.StakeProgram.programId, { filters }); + return stakeAccounts; + }); + exports2.getStakeAccounts = getStakeAccounts; + var filterReadyToRevoke = (epoch, account) => { + var _a, _b, _c; + const delegation = (_c = (_b = (_a = account.data.parsed) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b.stake) === null || _c === void 0 ? void 0 : _c.delegation; + if (!delegation) { + return true; + } + const activating = delegation.activationEpoch === epoch.toString(); + const deactivating = delegation.deactivationEpoch === epoch.toString(); + const deactivated = !deactivating && U64_MAX !== delegation.deactivationEpoch; + return activating || deactivated; + }; + exports2.filterReadyToRevoke = filterReadyToRevoke; + var getFutureStakeDistribution = (connection, withdrawAuthority, stakeAuthority) => __awaiter2(void 0, void 0, void 0, function* () { + var _a, _b, _c, _d, _e, _f; + const stakeAccounts = yield (0, exports2.getStakeAccounts)(connection, withdrawAuthority, stakeAuthority); + const currentEpoch = (yield connection.getEpochInfo()).epoch; + const validatorsDelegation = {}; + const NONE = "NONE"; + const allValidators = []; + for (const { account } of stakeAccounts) { + const validator = (_d = (_c = (_b = (_a = account.data.parsed) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b.stake) === null || _c === void 0 ? void 0 : _c.delegation) === null || _d === void 0 ? void 0 : _d.voter; + if (validator) { + allValidators.push(validator); + } + } + allValidators.sort(); + for (const validator of [NONE, ...allValidators]) { + validatorsDelegation[validator] = { balance: new bn_js_1.default(0), stake: new bn_js_1.default(0) }; + } + for (const { account: { data: { parsed }, lamports }, pubkey } of stakeAccounts) { + const delegation = (_f = (_e = parsed === null || parsed === void 0 ? void 0 : parsed.info) === null || _e === void 0 ? void 0 : _e.stake) === null || _f === void 0 ? void 0 : _f.delegation; + const balance = new bn_js_1.default(lamports.toString()); + if (delegation) { + const stake = new bn_js_1.default(delegation.stake); + const deactivating = delegation.deactivationEpoch === currentEpoch.toString(); + const activating = delegation.activationEpoch === currentEpoch.toString() && !deactivating; + const deactivated = !deactivating && U64_MAX !== delegation.deactivationEpoch; + const fullyActivatedAndNotDeactivating = !activating && !deactivating && !deactivated; + const validator = delegation.voter; + if (fullyActivatedAndNotDeactivating) { + validatorsDelegation[validator].balance = validatorsDelegation[validator].balance.add(balance); + validatorsDelegation[validator].stake = validatorsDelegation[validator].stake.add(stake); + } else if (activating) { + validatorsDelegation[validator].balance = validatorsDelegation[validator].balance.add(balance); + validatorsDelegation[validator].stake = validatorsDelegation[validator].stake.add(stake); + } else if (deactivating) { + validatorsDelegation[NONE].balance = validatorsDelegation[NONE].balance.add(balance); + } else if (deactivated) { + validatorsDelegation[NONE].balance = validatorsDelegation[NONE].balance.add(balance); + } + } else { + validatorsDelegation[NONE].balance = validatorsDelegation[NONE].balance.add(balance); + } + } + return { validatorsDelegation }; + }); + exports2.getFutureStakeDistribution = getFutureStakeDistribution; + var formatStakeDistribution = (stakeDistribution) => { + const lines = []; + const PAD_SOL = 16; + const PAD_VALIDATOR = 44; + const stakeDistributionArr = Object.entries(stakeDistribution.validatorsDelegation); + stakeDistributionArr.sort(([validatorA, stakesA], [validatorB, stakesB]) => { + const balanceCmp = stakesB.balance.cmp(stakesA.balance); + if (balanceCmp !== 0) { + return balanceCmp; + } + const stakeCmp = stakesB.stake.cmp(stakesA.stake); + if (stakeCmp !== 0) { + return stakeCmp; + } + return validatorA.localeCompare(validatorB); + }); + for (const [validator, { balance, stake }] of stakeDistributionArr) { + lines.push(`${validator.padEnd(PAD_VALIDATOR)} balance: ${(0, exports2.lamportsToSol)(balance).padStart(PAD_SOL)} stake: ${(0, exports2.lamportsToSol)(stake).padStart(PAD_SOL)}`); + } + return lines.join("\n"); + }; + exports2.formatStakeDistribution = formatStakeDistribution; + var buildAuthorizeStakerInstructions = (stakeAccounts, authorizedPubkey, stakeAuthority) => stakeAccounts.flatMap((stakePubkey) => web3_js_1.StakeProgram.authorize({ + stakePubkey, + authorizedPubkey, + newAuthorizedPubkey: stakeAuthority, + stakeAuthorizationType: { index: 0 } + }).instructions); + exports2.buildAuthorizeStakerInstructions = buildAuthorizeStakerInstructions; + } +}); + +// node_modules/@solana/spl-memo/lib/cjs/index.js +var require_cjs6 = __commonJS({ + "node_modules/@solana/spl-memo/lib/cjs/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createMemoInstruction = exports2.MEMO_PROGRAM_ID = void 0; + var buffer_1 = require("buffer"); + var web3_js_1 = require_index_cjs(); + exports2.MEMO_PROGRAM_ID = new web3_js_1.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"); + function createMemoInstruction(memo, signerPubkeys) { + const keys = signerPubkeys == null ? [] : signerPubkeys.map(function(key) { + return { pubkey: key, isSigner: true, isWritable: false }; + }); + return new web3_js_1.TransactionInstruction({ + keys, + programId: exports2.MEMO_PROGRAM_ID, + data: buffer_1.Buffer.from(memo, "utf8") + }); + } + exports2.createMemoInstruction = createMemoInstruction; + } +}); + +// node_modules/@marinade.finance/native-staking-sdk/dist/src/sdk.js +var require_sdk2 = __commonJS({ + "node_modules/@marinade.finance/native-staking-sdk/dist/src/sdk.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NativeStakingSDK = void 0; + var web3_js_1 = require_index_cjs(); + var config_1 = require_config(); + var utils_1 = require_utils10(); + var spl_memo_1 = require_cjs6(); + var STAKE_RENT_EXEMPT = 2282880; + var buildRequestBodyForPrepareForRevoke = (user, signature, amount) => { + const requestBody = { signature, user: user.toBase58() }; + if (amount) { + requestBody.amount = amount.toString(); + } + return requestBody; + }; + var buildRequestBodyForRebalanceHint = (user) => ({ user: user.toBase58() }); + var NativeStakingSDK = class { + constructor(config = new config_1.NativeStakingConfig()) { + this.config = config; + this.getRefSolSignedTransaction = (user, amount, code) => __awaiter2(this, void 0, void 0, function* () { + try { + new web3_js_1.PublicKey(code); + } catch (error) { + throw new Error("Invalid referral code: not a valid PublicKey"); + } + const response = yield fetch(`${this.config.nativeStakingReferralApiUrl}/v1/tx/deposit-sol?amount=${amount.toString()}&code=${code}&user=${user.toString()}`); + const result = yield response.json(); + const txBuffer = Buffer.from(result.serializedTx, "base64"); + return web3_js_1.VersionedTransaction.deserialize(txBuffer); + }); + this.getRefStakeAccountSignedTransaction = (user, stakeAccount, code) => __awaiter2(this, void 0, void 0, function* () { + try { + new web3_js_1.PublicKey(code); + } catch (error) { + throw new Error("Invalid referral code: not a valid PublicKey"); + } + const response = yield fetch(`${this.config.nativeStakingReferralApiUrl}/v1/tx/deposit-stake-account?stake=${stakeAccount.toString()}&code=${code}&user=${user.toString()}`); + const result = yield response.json(); + const txBuffer = Buffer.from(result.serializedTx, "base64"); + return web3_js_1.VersionedTransaction.deserialize(txBuffer); + }); + this.getStakeAccounts = (user) => __awaiter2(this, void 0, void 0, function* () { + const stakeAccounts = yield (0, utils_1.getStakeAccounts)(this.config.connection, user, this.config.stakeAuthority); + const exitingAccounts = yield (0, utils_1.getStakeAccounts)(this.config.connection, user, this.config.exitAuthority); + const { epoch } = yield this.config.connection.getEpochInfo(); + return { + all: [...stakeAccounts, ...exitingAccounts], + staking: [...stakeAccounts], + preparingToRevoke: exitingAccounts.filter(({ account }) => !(0, utils_1.filterReadyToRevoke)(epoch, account)), + readyToRevoke: exitingAccounts.filter(({ account }) => (0, utils_1.filterReadyToRevoke)(epoch, account)) + }; + }); + this.getFutureStakeDistribution = (...args_1) => __awaiter2(this, [...args_1], void 0, function* (user = null) { + const stake = yield (0, utils_1.getFutureStakeDistribution)(this.config.connection, user, this.config.stakeAuthority); + const exit = yield (0, utils_1.getFutureStakeDistribution)(this.config.connection, user, this.config.exitAuthority); + return { stake, exit }; + }); + this.getFutureStakeDistributionPretty = (...args_1) => __awaiter2(this, [...args_1], void 0, function* (user = null) { + const { stake, exit } = yield this.getFutureStakeDistribution(user); + return `-- STAKE -- +${(0, utils_1.formatStakeDistribution)(stake)} + +-- EXIT -- +${(0, utils_1.formatStakeDistribution)(exit)}`; + }); + this.buildRebalanceOrderMessage = (withdrawAuthority, meta) => ({ "Rebalance": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), meta } }); + this.buildRebalanceOrderWithReserveMessage = (withdrawAuthority, reserve, meta) => ({ "Rebalance": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "reserve_address": reserve, meta } }); + this.buildFragmentedRebalanceOrderMessage = (withdrawAuthority, stakeFragmentSizeBps) => ({ "FragmentedRebalance": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "stake_fragment_size_bps": stakeFragmentSizeBps } }); + this.buildRebalanceOrderWithProxyMessage = (withdrawAuthority, root2, operator) => ({ "Rebalance": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "stake_proxy": { root: root2.toBase58(), operator: operator.toBase58() } } }); + this.buildMergeOrderMessage = (withdrawAuthority, meta) => ({ "Merge": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), meta } }); + this.buildMergeOrderWithReserveMessage = (withdrawAuthority, reserve, meta) => ({ "Merge": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "reserve_address": reserve, meta } }); + this.buildSoftMergeOrderMessage = (withdrawAuthority, maxStakeFragmentSizeBps) => ({ "SoftMerge": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "max_stake_fragment_size_bps": maxStakeFragmentSizeBps } }); + this.buildResetUndelegatedAccountsMessage = (withdrawAuthority, validator) => ({ "ResetUndelegated": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "temporary_validator": validator.toBase58() } }); + this.buildMergeOrderWithProxyMessage = (withdrawAuthority, root2, operator, meta) => ({ "Merge": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "stake_proxy": { root: root2.toBase58(), operator: operator.toBase58() }, meta } }); + this.buildClaimExtraBalanceOrderMessage = (withdrawAuthority, meta) => ({ "ClaimExtraBalance": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), meta } }); + this.buildExitAllOrderMessage = (withdrawAuthority, payment, meta) => ({ "Exit": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "exit_authority": this.config.exitAuthority.toBase58(), "amount": "All", payment, meta } }); + this.buildExitPartOrderMessage = (withdrawAuthority, amount, payment, meta) => ({ "Exit": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "exit_authority": this.config.exitAuthority.toBase58(), "amount": { "Part": amount.toNumber() }, payment, meta } }); + this.buildExitPartOrderWithProxyMessage = (withdrawAuthority, amount, payment, root2, operator, meta) => ({ "Exit": { "stake_authority": this.config.stakeAuthority.toBase58(), "withdraw_authority": withdrawAuthority.toBase58(), "exit_authority": this.config.exitAuthority.toBase58(), "amount": { "Part": amount.toNumber() }, payment, "stake_proxy": { root: root2.toBase58(), operator: operator.toBase58() }, meta } }); + } + buildReferralInstructions(code) { + return { referralInstructions: [(0, spl_memo_1.createMemoInstruction)(JSON.stringify({ code: code.toBase58() }))] }; + } + buildCreateAuthorizedStakeInstructions(user, amount, stakeKeypair = web3_js_1.Keypair.generate()) { + if (amount.ltn(STAKE_RENT_EXEMPT)) { + throw new Error(`The amount must be at least ${STAKE_RENT_EXEMPT}!`); + } + return { + createAuthorizedStake: web3_js_1.StakeProgram.createAccount({ + fromPubkey: user, + stakePubkey: stakeKeypair.publicKey, + authorized: new web3_js_1.Authorized(this.config.stakeAuthority, user), + lamports: amount.toNumber() + }).instructions, + stakeKeypair + }; + } + buildAuthorizeInstructions(user, stakeAccounts) { + return (0, utils_1.buildAuthorizeStakerInstructions)(stakeAccounts, user, this.config.stakeAuthority); + } + initPrepareForRevoke(user, amount) { + return __awaiter2(this, void 0, void 0, function* () { + const memo = { PrepareForRevoke: { user: user.toBase58(), amount: amount === null || amount === void 0 ? void 0 : amount.toString() } }; + return { + payFees: [ + web3_js_1.SystemProgram.transfer({ + fromPubkey: user, + toPubkey: this.config.beneficiary, + lamports: this.config.prepareForRevokeCost.toNumber() + }), + (0, spl_memo_1.createMemoInstruction)(JSON.stringify(memo)) + ], + onPaid: (signature) => __awaiter2(this, void 0, void 0, function* () { + return yield this.callPrepareForRevoke(user, signature, amount); + }) + }; + }); + } + callPrepareForRevoke(user, signature, amount) { + return __awaiter2(this, void 0, void 0, function* () { + const response = yield fetch(`${this.config.nativeStakingApiUrl}/v1/prepare-for-revoke`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(buildRequestBodyForPrepareForRevoke(user, signature, amount)) + }); + return yield response.json(); + }); + } + callRebalanceHint(user) { + return __awaiter2(this, void 0, void 0, function* () { + const response = yield fetch(`${this.config.nativeStakingApiUrl}/v1/rebalance-hint`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(buildRequestBodyForRebalanceHint(user)) + }); + return yield response.json(); + }); + } + fetchRewards(user) { + return __awaiter2(this, void 0, void 0, function* () { + const response = yield fetch(`${this.config.nativeStakingApiUrl}/v1/user-rewards?user=${encodeURIComponent(user.toBase58())}`); + return yield response.json(); + }); + } + buildRevokeInstructions(user, stakeAccounts) { + return (0, utils_1.buildAuthorizeStakerInstructions)(stakeAccounts, user, user); + } + }; + exports2.NativeStakingSDK = NativeStakingSDK; + } +}); + +// node_modules/@marinade.finance/native-staking-sdk/dist/src/messages.js +var require_messages2 = __commonJS({ + "node_modules/@marinade.finance/native-staking-sdk/dist/src/messages.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.orderMessagesToStdin = void 0; + var orderMessagesToStdin = (messages) => messages.map((message) => JSON.stringify(message)).join("\n"); + exports2.orderMessagesToStdin = orderMessagesToStdin; + } +}); + +// node_modules/@marinade.finance/native-staking-sdk/dist/src/index.js +var require_src8 = __commonJS({ + "node_modules/@marinade.finance/native-staking-sdk/dist/src/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_config(), exports2); + __exportStar2(require_sdk2(), exports2); + __exportStar2(require_messages2(), exports2); + __exportStar2(require_utils10(), exports2); + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-native-stake.js +var require_marinade_native_stake = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-native-stake.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.callRebalanceHint = exports2.getPrepareNativeUnstakeSOLIx = exports2.getRefNativeStakeAccountTx = exports2.getAuthNativeStakeAccountIx = exports2.getRefNativeStakeSOLTx = exports2.getAuthNativeStakeSOLIx = void 0; + var web3_js_1 = require_index_cjs(); + var native_staking_sdk_1 = require_src8(); + function getAuthNativeStakeSOLIx(userPublicKey, amountToStake) { + const nativeSdk = new native_staking_sdk_1.NativeStakingSDK(); + return nativeSdk.buildCreateAuthorizedStakeInstructions(userPublicKey, amountToStake); + } + exports2.getAuthNativeStakeSOLIx = getAuthNativeStakeSOLIx; + function getRefNativeStakeSOLTx(userPublicKey, amountToStake, mNativeRefCode) { + return __awaiter2(this, void 0, void 0, function* () { + const response = yield fetch(`https://native-staking-referral.marinade.finance/v1/tx/deposit-sol?amount=${amountToStake.toString()}&code=${mNativeRefCode}&user=${userPublicKey.toString()}`); + const result = yield response.json(); + const txBuffer = Buffer.from(result.serializedTx, "base64"); + return web3_js_1.VersionedTransaction.deserialize(txBuffer); + }); + } + exports2.getRefNativeStakeSOLTx = getRefNativeStakeSOLTx; + function getAuthNativeStakeAccountIx(userPublicKey, stakeAccounts) { + const nativeSdk = new native_staking_sdk_1.NativeStakingSDK(); + return nativeSdk.buildAuthorizeInstructions(userPublicKey, stakeAccounts); + } + exports2.getAuthNativeStakeAccountIx = getAuthNativeStakeAccountIx; + function getRefNativeStakeAccountTx(userPublicKey, stakeAccountAddress, mNativeRefCode) { + return __awaiter2(this, void 0, void 0, function* () { + const response = yield fetch(`https://native-staking-referral.marinade.finance/v1/tx/deposit-stake-account?stake=${stakeAccountAddress.toString()}&code=${mNativeRefCode}&user=${userPublicKey.toString()}`); + const result = yield response.json(); + const txBuffer = Buffer.from(result.serializedTx, "base64"); + return web3_js_1.VersionedTransaction.deserialize(txBuffer); + }); + } + exports2.getRefNativeStakeAccountTx = getRefNativeStakeAccountTx; + function getPrepareNativeUnstakeSOLIx(userPublicKey, amountToUnstake) { + return __awaiter2(this, void 0, void 0, function* () { + const nativeSdk = new native_staking_sdk_1.NativeStakingSDK(); + return yield nativeSdk.initPrepareForRevoke(userPublicKey, amountToUnstake); + }); + } + exports2.getPrepareNativeUnstakeSOLIx = getPrepareNativeUnstakeSOLIx; + function callRebalanceHint(userPublicKey) { + return __awaiter2(this, void 0, void 0, function* () { + const nativeSdk = new native_staking_sdk_1.NativeStakingSDK(); + return yield nativeSdk.callRebalanceHint(userPublicKey); + }); + } + exports2.callRebalanceHint = callRebalanceHint; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/stake-record.js +var require_stake_record = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/stake-record.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StakeRecord = void 0; + var StakeRecord = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.StakeRecord = StakeRecord; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/validator-record.js +var require_validator_record = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/validator-record.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidatorRecord = void 0; + var ValidatorRecord = class { + constructor(args) { + Object.assign(this, args); + } + }; + exports2.ValidatorRecord = ValidatorRecord; + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/index.js +var require_borsh3 = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidatorRecord = exports2.StakeState = exports2.Stake = exports2.Meta = exports2.Lockup = exports2.Delegation = exports2.Authorized = exports2.StakeRecord = exports2.StakeInfo = void 0; + var stake_info_1 = require_stake_info(); + Object.defineProperty(exports2, "StakeInfo", { enumerable: true, get: function() { + return stake_info_1.StakeInfo; + } }); + var stake_record_1 = require_stake_record(); + Object.defineProperty(exports2, "StakeRecord", { enumerable: true, get: function() { + return stake_record_1.StakeRecord; + } }); + var stake_state_1 = require_stake_state(); + Object.defineProperty(exports2, "Authorized", { enumerable: true, get: function() { + return stake_state_1.Authorized; + } }); + Object.defineProperty(exports2, "Delegation", { enumerable: true, get: function() { + return stake_state_1.Delegation; + } }); + Object.defineProperty(exports2, "Lockup", { enumerable: true, get: function() { + return stake_state_1.Lockup; + } }); + Object.defineProperty(exports2, "Meta", { enumerable: true, get: function() { + return stake_state_1.Meta; + } }); + Object.defineProperty(exports2, "Stake", { enumerable: true, get: function() { + return stake_state_1.Stake; + } }); + Object.defineProperty(exports2, "StakeState", { enumerable: true, get: function() { + return stake_state_1.StakeState; + } }); + var validator_record_1 = require_validator_record(); + Object.defineProperty(exports2, "ValidatorRecord", { enumerable: true, get: function() { + return validator_record_1.ValidatorRecord; + } }); + } +}); + +// node_modules/@marinade.finance/marinade-ts-sdk/dist/src/index.js +var require_src9 = __commonJS({ + "node_modules/@marinade.finance/marinade-ts-sdk/dist/src/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StakePoolHelpers = exports2.web3 = exports2.BN = exports2.Wallet = exports2.MarinadeUtils = exports2.MarinadeMint = exports2.MarinadeState = exports2.MarinadeReferralPartnerState = exports2.MarinadeBorsh = exports2.MarinadeConfig = exports2.Marinade = void 0; + var marinade_1 = require_marinade(); + Object.defineProperty(exports2, "Marinade", { enumerable: true, get: function() { + return marinade_1.Marinade; + } }); + __exportStar2(require_marinade_native_stake(), exports2); + var marinade_config_1 = require_marinade_config(); + Object.defineProperty(exports2, "MarinadeConfig", { enumerable: true, get: function() { + return marinade_config_1.MarinadeConfig; + } }); + exports2.MarinadeBorsh = __importStar2(require_borsh3()); + var marinade_referral_partner_state_1 = require_marinade_referral_partner_state(); + Object.defineProperty(exports2, "MarinadeReferralPartnerState", { enumerable: true, get: function() { + return marinade_referral_partner_state_1.MarinadeReferralPartnerState; + } }); + var marinade_state_1 = require_marinade_state(); + Object.defineProperty(exports2, "MarinadeState", { enumerable: true, get: function() { + return marinade_state_1.MarinadeState; + } }); + var marinade_mint_1 = require_marinade_mint(); + Object.defineProperty(exports2, "MarinadeMint", { enumerable: true, get: function() { + return marinade_mint_1.MarinadeMint; + } }); + exports2.MarinadeUtils = __importStar2(require_util9()); + var anchor_1 = require_cjs(); + Object.defineProperty(exports2, "Wallet", { enumerable: true, get: function() { + return anchor_1.Wallet; + } }); + Object.defineProperty(exports2, "BN", { enumerable: true, get: function() { + return anchor_1.BN; + } }); + Object.defineProperty(exports2, "web3", { enumerable: true, get: function() { + return anchor_1.web3; + } }); + exports2.StakePoolHelpers = __importStar2(require_stake_pool_helpers()); + } +}); + +// src/main.ts +var core = __toESM(require_core()); +var import_web341 = __toESM(require_index_cjs()); + +// node_modules/@sqds/multisig/lib/index.mjs +var import_web34 = __toESM(require_index_cjs(), 1); +var web3 = __toESM(require_index_cjs(), 1); +var beet = __toESM(require_beet(), 1); +var beetSolana = __toESM(require_beet_solana(), 1); +var web32 = __toESM(require_index_cjs(), 1); +var beet6 = __toESM(require_beet(), 1); +var beetSolana4 = __toESM(require_beet_solana(), 1); +var beet5 = __toESM(require_beet(), 1); +var beetSolana3 = __toESM(require_beet_solana(), 1); +var beetSolana2 = __toESM(require_beet_solana(), 1); +var beet3 = __toESM(require_beet(), 1); +var beet2 = __toESM(require_beet(), 1); +var beet4 = __toESM(require_beet(), 1); +var web33 = __toESM(require_index_cjs(), 1); +var beet7 = __toESM(require_beet(), 1); +var beetSolana5 = __toESM(require_beet_solana(), 1); +var web34 = __toESM(require_index_cjs(), 1); +var beet8 = __toESM(require_beet(), 1); +var beetSolana6 = __toESM(require_beet_solana(), 1); +var web35 = __toESM(require_index_cjs(), 1); +var beet10 = __toESM(require_beet(), 1); +var beetSolana7 = __toESM(require_beet_solana(), 1); +var beet9 = __toESM(require_beet(), 1); +var web36 = __toESM(require_index_cjs(), 1); +var beet11 = __toESM(require_beet(), 1); +var beetSolana8 = __toESM(require_beet_solana(), 1); +var beet15 = __toESM(require_beet(), 1); +var web37 = __toESM(require_index_cjs(), 1); +var beetSolana11 = __toESM(require_beet_solana(), 1); +var beet14 = __toESM(require_beet(), 1); +var beetSolana10 = __toESM(require_beet_solana(), 1); +var beet12 = __toESM(require_beet(), 1); +var beetSolana9 = __toESM(require_beet_solana(), 1); +var beet13 = __toESM(require_beet(), 1); +var web38 = __toESM(require_index_cjs(), 1); +var beet16 = __toESM(require_beet(), 1); +var beetSolana12 = __toESM(require_beet_solana(), 1); +var beet17 = __toESM(require_beet(), 1); +var web39 = __toESM(require_index_cjs(), 1); +var beet19 = __toESM(require_beet(), 1); +var web310 = __toESM(require_index_cjs(), 1); +var beet18 = __toESM(require_beet(), 1); +var beet21 = __toESM(require_beet(), 1); +var web311 = __toESM(require_index_cjs(), 1); +var beet20 = __toESM(require_beet(), 1); +var beet22 = __toESM(require_beet(), 1); +var web312 = __toESM(require_index_cjs(), 1); +var beet23 = __toESM(require_beet(), 1); +var web313 = __toESM(require_index_cjs(), 1); +var beet25 = __toESM(require_beet(), 1); +var web314 = __toESM(require_index_cjs(), 1); +var beet24 = __toESM(require_beet(), 1); +var beet26 = __toESM(require_beet(), 1); +var web315 = __toESM(require_index_cjs(), 1); +var beet28 = __toESM(require_beet(), 1); +var web316 = __toESM(require_index_cjs(), 1); +var beet27 = __toESM(require_beet(), 1); +var beet30 = __toESM(require_beet(), 1); +var web317 = __toESM(require_index_cjs(), 1); +var beet29 = __toESM(require_beet(), 1); +var beetSolana13 = __toESM(require_beet_solana(), 1); +var beet32 = __toESM(require_beet(), 1); +var web318 = __toESM(require_index_cjs(), 1); +var beet31 = __toESM(require_beet(), 1); +var beet34 = __toESM(require_beet(), 1); +var web319 = __toESM(require_index_cjs(), 1); +var beet33 = __toESM(require_beet(), 1); +var beetSolana14 = __toESM(require_beet_solana(), 1); +var beet36 = __toESM(require_beet(), 1); +var web320 = __toESM(require_index_cjs(), 1); +var beet35 = __toESM(require_beet(), 1); +var beetSolana15 = __toESM(require_beet_solana(), 1); +var beet38 = __toESM(require_beet(), 1); +var web321 = __toESM(require_index_cjs(), 1); +var beet37 = __toESM(require_beet(), 1); +var beetSolana16 = __toESM(require_beet_solana(), 1); +var beet40 = __toESM(require_beet(), 1); +var web322 = __toESM(require_index_cjs(), 1); +var beet39 = __toESM(require_beet(), 1); +var beet42 = __toESM(require_beet(), 1); +var web323 = __toESM(require_index_cjs(), 1); +var beet41 = __toESM(require_beet(), 1); +var beetSolana17 = __toESM(require_beet_solana(), 1); +var beet44 = __toESM(require_beet(), 1); +var web324 = __toESM(require_index_cjs(), 1); +var beet43 = __toESM(require_beet(), 1); +var beetSolana18 = __toESM(require_beet_solana(), 1); +var beet46 = __toESM(require_beet(), 1); +var web325 = __toESM(require_index_cjs(), 1); +var beet45 = __toESM(require_beet(), 1); +var beet48 = __toESM(require_beet(), 1); +var web326 = __toESM(require_index_cjs(), 1); +var beet47 = __toESM(require_beet(), 1); +var beetSolana19 = __toESM(require_beet_solana(), 1); +var beet50 = __toESM(require_beet(), 1); +var web327 = __toESM(require_index_cjs(), 1); +var beetSolana20 = __toESM(require_beet_solana(), 1); +var beet49 = __toESM(require_beet(), 1); +var beet52 = __toESM(require_beet(), 1); +var web328 = __toESM(require_index_cjs(), 1); +var beet51 = __toESM(require_beet(), 1); +var beet54 = __toESM(require_beet(), 1); +var web329 = __toESM(require_index_cjs(), 1); +var beetSolana21 = __toESM(require_beet_solana(), 1); +var beet53 = __toESM(require_beet(), 1); +var beet55 = __toESM(require_beet(), 1); +var web330 = __toESM(require_index_cjs(), 1); +var beet57 = __toESM(require_beet(), 1); +var web331 = __toESM(require_index_cjs(), 1); +var beet56 = __toESM(require_beet(), 1); +var beet58 = __toESM(require_beet(), 1); +var web332 = __toESM(require_index_cjs(), 1); +var beet60 = __toESM(require_beet(), 1); +var web333 = __toESM(require_index_cjs(), 1); +var beet59 = __toESM(require_beet(), 1); +var beet61 = __toESM(require_beet(), 1); +var web334 = __toESM(require_index_cjs(), 1); +var beet63 = __toESM(require_beet(), 1); +var web335 = __toESM(require_index_cjs(), 1); +var beet62 = __toESM(require_beet(), 1); +var beet64 = __toESM(require_beet(), 1); +var web336 = __toESM(require_index_cjs(), 1); +var beet65 = __toESM(require_beet(), 1); +var web337 = __toESM(require_index_cjs(), 1); +var beet67 = __toESM(require_beet(), 1); +var web338 = __toESM(require_index_cjs(), 1); +var beet66 = __toESM(require_beet(), 1); +var beet68 = __toESM(require_beet(), 1); +var web339 = __toESM(require_index_cjs(), 1); +var beet69 = __toESM(require_beet(), 1); +var import_cusper = __toESM(require_cusper(), 1); +var import_web35 = __toESM(require_index_cjs(), 1); +var import_beet = __toESM(require_beet(), 1); +var import_buffer = require("buffer"); +var beet70 = __toESM(require_beet(), 1); +var beetSolana22 = __toESM(require_beet_solana(), 1); +var import_invariant = __toESM(require_invariant(), 1); +var import_invariant2 = __toESM(require_invariant(), 1); +var import_web36 = __toESM(require_index_cjs(), 1); +var import_assert = __toESM(require("assert"), 1); +var import_web37 = __toESM(require_index_cjs(), 1); +var import_invariant3 = __toESM(require_invariant(), 1); +var import_web38 = __toESM(require_index_cjs(), 1); +var import_web39 = __toESM(require_index_cjs(), 1); +var import_web310 = __toESM(require_index_cjs(), 1); +var import_web311 = __toESM(require_index_cjs(), 1); +var import_bn = __toESM(require_bn(), 1); +var import_web312 = __toESM(require_index_cjs(), 1); +var import_web313 = __toESM(require_index_cjs(), 1); + +// node_modules/@solana/spl-token/lib/esm/constants.js +var import_web3 = __toESM(require_index_cjs(), 1); +var TOKEN_PROGRAM_ID = new import_web3.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"); +var TOKEN_2022_PROGRAM_ID = new import_web3.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"); +var ASSOCIATED_TOKEN_PROGRAM_ID = new import_web3.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"); +var NATIVE_MINT = new import_web3.PublicKey("So11111111111111111111111111111111111111112"); +var NATIVE_MINT_2022 = new import_web3.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP"); + +// node_modules/@solana/buffer-layout-utils/lib/esm/base.mjs +var encodeDecode = (layout) => { + const decode = layout.decode.bind(layout); + const encode = layout.encode.bind(layout); + return { decode, encode }; +}; + +// node_modules/@solana/buffer-layout-utils/lib/esm/bigint.mjs +var import_buffer_layout = __toESM(require_Layout(), 1); +var import_bigint_buffer = __toESM(require_node2(), 1); +var bigInt = (length) => (property) => { + const layout = (0, import_buffer_layout.blob)(length, property); + const { encode, decode } = encodeDecode(layout); + const bigIntLayout = layout; + bigIntLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset); + return (0, import_bigint_buffer.toBigIntLE)(Buffer.from(src)); + }; + bigIntLayout.encode = (bigInt2, buffer, offset) => { + const src = (0, import_bigint_buffer.toBufferLE)(bigInt2, length); + return encode(src, buffer, offset); + }; + return bigIntLayout; +}; +var bigIntBE = (length) => (property) => { + const layout = (0, import_buffer_layout.blob)(length, property); + const { encode, decode } = encodeDecode(layout); + const bigIntLayout = layout; + bigIntLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset); + return (0, import_bigint_buffer.toBigIntBE)(Buffer.from(src)); + }; + bigIntLayout.encode = (bigInt2, buffer, offset) => { + const src = (0, import_bigint_buffer.toBufferBE)(bigInt2, length); + return encode(src, buffer, offset); + }; + return bigIntLayout; +}; +var u64 = bigInt(8); +var u64be = bigIntBE(8); +var u128 = bigInt(16); +var u128be = bigIntBE(16); +var u192 = bigInt(24); +var u192be = bigIntBE(24); +var u256 = bigInt(32); +var u256be = bigIntBE(32); + +// node_modules/bignumber.js/bignumber.mjs +var isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i; +var mathceil = Math.ceil; +var mathfloor = Math.floor; +var bignumberError = "[BigNumber Error] "; +var tooManyDigits = bignumberError + "Number primitive has more than 15 significant digits: "; +var BASE = 1e14; +var LOG_BASE = 14; +var MAX_SAFE_INTEGER = 9007199254740991; +var POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13]; +var SQRT_BASE = 1e7; +var MAX = 1e9; +function clone(configObject) { + var div, convertBase, parseNumeric, P = BigNumber2.prototype = { constructor: BigNumber2, toString: null, valueOf: null }, ONE = new BigNumber2(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = { + prefix: "", + groupSize: 3, + secondaryGroupSize: 0, + groupSeparator: ",", + decimalSeparator: ".", + fractionGroupSize: 0, + fractionGroupSeparator: "\xA0", + // non-breaking space + suffix: "" + }, ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", alphabetHasNormalDecimalDigits = true; + function BigNumber2(v, b) { + var alphabet, c, caseChanged, e, i, isNum, len, str, x = this; + if (!(x instanceof BigNumber2)) return new BigNumber2(v, b); + if (b == null) { + if (v && v._isBigNumber === true) { + x.s = v.s; + if (!v.c || v.e > MAX_EXP) { + x.c = x.e = null; + } else if (v.e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = v.e; + x.c = v.c.slice(); + } + return; + } + if ((isNum = typeof v == "number") && v * 0 == 0) { + x.s = 1 / v < 0 ? (v = -v, -1) : 1; + if (v === ~~v) { + for (e = 0, i = v; i >= 10; i /= 10, e++) ; + if (e > MAX_EXP) { + x.c = x.e = null; + } else { + x.e = e; + x.c = [v]; + } + return; + } + str = String(v); + } else { + if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum); + x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; + } + if ((e = str.indexOf(".")) > -1) str = str.replace(".", ""); + if ((i = str.search(/e/i)) > 0) { + if (e < 0) e = i; + e += +str.slice(i + 1); + str = str.substring(0, i); + } else if (e < 0) { + e = str.length; + } + } else { + intCheck(b, 2, ALPHABET.length, "Base"); + if (b == 10 && alphabetHasNormalDecimalDigits) { + x = new BigNumber2(v); + return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); + } + str = String(v); + if (isNum = typeof v == "number") { + if (v * 0 != 0) return parseNumeric(x, str, isNum, b); + x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1; + if (BigNumber2.DEBUG && str.replace(/^0\.0*|\./, "").length > 15) { + throw Error(tooManyDigits + v); + } + } else { + x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; + } + alphabet = ALPHABET.slice(0, b); + e = i = 0; + for (len = str.length; i < len; i++) { + if (alphabet.indexOf(c = str.charAt(i)) < 0) { + if (c == ".") { + if (i > e) { + e = len; + continue; + } + } else if (!caseChanged) { + if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) { + caseChanged = true; + i = -1; + e = 0; + continue; + } + } + return parseNumeric(x, String(v), isNum, b); + } + } + isNum = false; + str = convertBase(str, b, 10, x.s); + if ((e = str.indexOf(".")) > -1) str = str.replace(".", ""); + else e = str.length; + } + for (i = 0; str.charCodeAt(i) === 48; i++) ; + for (len = str.length; str.charCodeAt(--len) === 48; ) ; + if (str = str.slice(i, ++len)) { + len -= i; + if (isNum && BigNumber2.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) { + throw Error(tooManyDigits + x.s * v); + } + if ((e = e - i - 1) > MAX_EXP) { + x.c = x.e = null; + } else if (e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = e; + x.c = []; + i = (e + 1) % LOG_BASE; + if (e < 0) i += LOG_BASE; + if (i < len) { + if (i) x.c.push(+str.slice(0, i)); + for (len -= LOG_BASE; i < len; ) { + x.c.push(+str.slice(i, i += LOG_BASE)); + } + i = LOG_BASE - (str = str.slice(i)).length; + } else { + i -= len; + } + for (; i--; str += "0") ; + x.c.push(+str); + } + } else { + x.c = [x.e = 0]; + } + } + BigNumber2.clone = clone; + BigNumber2.ROUND_UP = 0; + BigNumber2.ROUND_DOWN = 1; + BigNumber2.ROUND_CEIL = 2; + BigNumber2.ROUND_FLOOR = 3; + BigNumber2.ROUND_HALF_UP = 4; + BigNumber2.ROUND_HALF_DOWN = 5; + BigNumber2.ROUND_HALF_EVEN = 6; + BigNumber2.ROUND_HALF_CEIL = 7; + BigNumber2.ROUND_HALF_FLOOR = 8; + BigNumber2.EUCLID = 9; + BigNumber2.config = BigNumber2.set = function(obj) { + var p, v; + if (obj != null) { + if (typeof obj == "object") { + if (obj.hasOwnProperty(p = "DECIMAL_PLACES")) { + v = obj[p]; + intCheck(v, 0, MAX, p); + DECIMAL_PLACES = v; + } + if (obj.hasOwnProperty(p = "ROUNDING_MODE")) { + v = obj[p]; + intCheck(v, 0, 8, p); + ROUNDING_MODE = v; + } + if (obj.hasOwnProperty(p = "EXPONENTIAL_AT")) { + v = obj[p]; + if (v && v.pop) { + intCheck(v[0], -MAX, 0, p); + intCheck(v[1], 0, MAX, p); + TO_EXP_NEG = v[0]; + TO_EXP_POS = v[1]; + } else { + intCheck(v, -MAX, MAX, p); + TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v); + } + } + if (obj.hasOwnProperty(p = "RANGE")) { + v = obj[p]; + if (v && v.pop) { + intCheck(v[0], -MAX, -1, p); + intCheck(v[1], 1, MAX, p); + MIN_EXP = v[0]; + MAX_EXP = v[1]; + } else { + intCheck(v, -MAX, MAX, p); + if (v) { + MIN_EXP = -(MAX_EXP = v < 0 ? -v : v); + } else { + throw Error(bignumberError + p + " cannot be zero: " + v); + } + } + } + if (obj.hasOwnProperty(p = "CRYPTO")) { + v = obj[p]; + if (v === !!v) { + if (v) { + if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) { + CRYPTO = v; + } else { + CRYPTO = !v; + throw Error(bignumberError + "crypto unavailable"); + } + } else { + CRYPTO = v; + } + } else { + throw Error(bignumberError + p + " not true or false: " + v); + } + } + if (obj.hasOwnProperty(p = "MODULO_MODE")) { + v = obj[p]; + intCheck(v, 0, 9, p); + MODULO_MODE = v; + } + if (obj.hasOwnProperty(p = "POW_PRECISION")) { + v = obj[p]; + intCheck(v, 0, MAX, p); + POW_PRECISION = v; + } + if (obj.hasOwnProperty(p = "FORMAT")) { + v = obj[p]; + if (typeof v == "object") FORMAT = v; + else throw Error(bignumberError + p + " not an object: " + v); + } + if (obj.hasOwnProperty(p = "ALPHABET")) { + v = obj[p]; + if (typeof v == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) { + alphabetHasNormalDecimalDigits = v.slice(0, 10) == "0123456789"; + ALPHABET = v; + } else { + throw Error(bignumberError + p + " invalid: " + v); + } + } + } else { + throw Error(bignumberError + "Object expected: " + obj); + } + } + return { + DECIMAL_PLACES, + ROUNDING_MODE, + EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS], + RANGE: [MIN_EXP, MAX_EXP], + CRYPTO, + MODULO_MODE, + POW_PRECISION, + FORMAT, + ALPHABET + }; + }; + BigNumber2.isBigNumber = function(v) { + if (!v || v._isBigNumber !== true) return false; + if (!BigNumber2.DEBUG) return true; + var i, n, c = v.c, e = v.e, s = v.s; + out: if ({}.toString.call(c) == "[object Array]") { + if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) { + if (c[0] === 0) { + if (e === 0 && c.length === 1) return true; + break out; + } + i = (e + 1) % LOG_BASE; + if (i < 1) i += LOG_BASE; + if (String(c[0]).length == i) { + for (i = 0; i < c.length; i++) { + n = c[i]; + if (n < 0 || n >= BASE || n !== mathfloor(n)) break out; + } + if (n !== 0) return true; + } + } + } else if (c === null && e === null && (s === null || s === 1 || s === -1)) { + return true; + } + throw Error(bignumberError + "Invalid BigNumber: " + v); + }; + BigNumber2.maximum = BigNumber2.max = function() { + return maxOrMin(arguments, -1); + }; + BigNumber2.minimum = BigNumber2.min = function() { + return maxOrMin(arguments, 1); + }; + BigNumber2.random = function() { + var pow2_53 = 9007199254740992; + var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() { + return mathfloor(Math.random() * pow2_53); + } : function() { + return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0); + }; + return function(dp) { + var a, b, e, k, v, i = 0, c = [], rand = new BigNumber2(ONE); + if (dp == null) dp = DECIMAL_PLACES; + else intCheck(dp, 0, MAX); + k = mathceil(dp / LOG_BASE); + if (CRYPTO) { + if (crypto.getRandomValues) { + a = crypto.getRandomValues(new Uint32Array(k *= 2)); + for (; i < k; ) { + v = a[i] * 131072 + (a[i + 1] >>> 11); + if (v >= 9e15) { + b = crypto.getRandomValues(new Uint32Array(2)); + a[i] = b[0]; + a[i + 1] = b[1]; + } else { + c.push(v % 1e14); + i += 2; + } + } + i = k / 2; + } else if (crypto.randomBytes) { + a = crypto.randomBytes(k *= 7); + for (; i < k; ) { + v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6]; + if (v >= 9e15) { + crypto.randomBytes(7).copy(a, i); + } else { + c.push(v % 1e14); + i += 7; + } + } + i = k / 7; + } else { + CRYPTO = false; + throw Error(bignumberError + "crypto unavailable"); + } + } + if (!CRYPTO) { + for (; i < k; ) { + v = random53bitInt(); + if (v < 9e15) c[i++] = v % 1e14; + } + } + k = c[--i]; + dp %= LOG_BASE; + if (k && dp) { + v = POWS_TEN[LOG_BASE - dp]; + c[i] = mathfloor(k / v) * v; + } + for (; c[i] === 0; c.pop(), i--) ; + if (i < 0) { + c = [e = 0]; + } else { + for (e = -1; c[0] === 0; c.splice(0, 1), e -= LOG_BASE) ; + for (i = 1, v = c[0]; v >= 10; v /= 10, i++) ; + if (i < LOG_BASE) e -= LOG_BASE - i; + } + rand.e = e; + rand.c = c; + return rand; + }; + }(); + BigNumber2.sum = function() { + var i = 1, args = arguments, sum = new BigNumber2(args[0]); + for (; i < args.length; ) sum = sum.plus(args[i++]); + return sum; + }; + convertBase = /* @__PURE__ */ function() { + var decimal = "0123456789"; + function toBaseOut(str, baseIn, baseOut, alphabet) { + var j, arr = [0], arrL, i = 0, len = str.length; + for (; i < len; ) { + for (arrL = arr.length; arrL--; arr[arrL] *= baseIn) ; + arr[0] += alphabet.indexOf(str.charAt(i++)); + for (j = 0; j < arr.length; j++) { + if (arr[j] > baseOut - 1) { + if (arr[j + 1] == null) arr[j + 1] = 0; + arr[j + 1] += arr[j] / baseOut | 0; + arr[j] %= baseOut; + } + } + } + return arr.reverse(); + } + return function(str, baseIn, baseOut, sign, callerIsToString) { + var alphabet, d, e, k, r, x, xc, y, i = str.indexOf("."), dp = DECIMAL_PLACES, rm = ROUNDING_MODE; + if (i >= 0) { + k = POW_PRECISION; + POW_PRECISION = 0; + str = str.replace(".", ""); + y = new BigNumber2(baseIn); + x = y.pow(str.length - i); + POW_PRECISION = k; + y.c = toBaseOut( + toFixedPoint(coeffToString(x.c), x.e, "0"), + 10, + baseOut, + decimal + ); + y.e = y.c.length; + } + xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET)); + e = k = xc.length; + for (; xc[--k] == 0; xc.pop()) ; + if (!xc[0]) return alphabet.charAt(0); + if (i < 0) { + --e; + } else { + x.c = xc; + x.e = e; + x.s = sign; + x = div(x, y, dp, rm, baseOut); + xc = x.c; + r = x.r; + e = x.e; + } + d = e + dp + 1; + i = xc[d]; + k = baseOut / 2; + r = r || d < 0 || xc[d + 1] != null; + r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7)); + if (d < 1 || !xc[0]) { + str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0); + } else { + xc.length = d; + if (r) { + for (--baseOut; ++xc[--d] > baseOut; ) { + xc[d] = 0; + if (!d) { + ++e; + xc = [1].concat(xc); + } + } + } + for (k = xc.length; !xc[--k]; ) ; + for (i = 0, str = ""; i <= k; str += alphabet.charAt(xc[i++])) ; + str = toFixedPoint(str, e, alphabet.charAt(0)); + } + return str; + }; + }(); + div = /* @__PURE__ */ function() { + function multiply(x, k, base) { + var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0; + for (x = x.slice(); i--; ) { + xlo = x[i] % SQRT_BASE; + xhi = x[i] / SQRT_BASE | 0; + m = khi * xlo + xhi * klo; + temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry; + carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi; + x[i] = temp % base; + } + if (carry) x = [carry].concat(x); + return x; + } + function compare2(a, b, aL, bL) { + var i, cmp; + if (aL != bL) { + cmp = aL > bL ? 1 : -1; + } else { + for (i = cmp = 0; i < aL; i++) { + if (a[i] != b[i]) { + cmp = a[i] > b[i] ? 1 : -1; + break; + } + } + } + return cmp; + } + function subtract(a, b, aL, base) { + var i = 0; + for (; aL--; ) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } + for (; !a[0] && a.length > 1; a.splice(0, 1)) ; + } + return function(x, y, dp, rm, base) { + var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c; + if (!xc || !xc[0] || !yc || !yc[0]) { + return new BigNumber2( + // Return NaN if either NaN, or both Infinity or 0. + !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : ( + // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0. + xc && xc[0] == 0 || !yc ? s * 0 : s / 0 + ) + ); + } + q = new BigNumber2(s); + qc = q.c = []; + e = x.e - y.e; + s = dp + e + 1; + if (!base) { + base = BASE; + e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE); + s = s / LOG_BASE | 0; + } + for (i = 0; yc[i] == (xc[i] || 0); i++) ; + if (yc[i] > (xc[i] || 0)) e--; + if (s < 0) { + qc.push(1); + more = true; + } else { + xL = xc.length; + yL = yc.length; + i = 0; + s += 2; + n = mathfloor(base / (yc[0] + 1)); + if (n > 1) { + yc = multiply(yc, n, base); + xc = multiply(xc, n, base); + yL = yc.length; + xL = xc.length; + } + xi = yL; + rem = xc.slice(0, yL); + remL = rem.length; + for (; remL < yL; rem[remL++] = 0) ; + yz = yc.slice(); + yz = [0].concat(yz); + yc0 = yc[0]; + if (yc[1] >= base / 2) yc0++; + do { + n = 0; + cmp = compare2(yc, rem, yL, remL); + if (cmp < 0) { + rem0 = rem[0]; + if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); + n = mathfloor(rem0 / yc0); + if (n > 1) { + if (n >= base) n = base - 1; + prod = multiply(yc, n, base); + prodL = prod.length; + remL = rem.length; + while (compare2(prod, rem, prodL, remL) == 1) { + n--; + subtract(prod, yL < prodL ? yz : yc, prodL, base); + prodL = prod.length; + cmp = 1; + } + } else { + if (n == 0) { + cmp = n = 1; + } + prod = yc.slice(); + prodL = prod.length; + } + if (prodL < remL) prod = [0].concat(prod); + subtract(rem, prod, remL, base); + remL = rem.length; + if (cmp == -1) { + while (compare2(yc, rem, yL, remL) < 1) { + n++; + subtract(rem, yL < remL ? yz : yc, remL, base); + remL = rem.length; + } + } + } else if (cmp === 0) { + n++; + rem = [0]; + } + qc[i++] = n; + if (rem[0]) { + rem[remL++] = xc[xi] || 0; + } else { + rem = [xc[xi]]; + remL = 1; + } + } while ((xi++ < xL || rem[0] != null) && s--); + more = rem[0] != null; + if (!qc[0]) qc.splice(0, 1); + } + if (base == BASE) { + for (i = 1, s = qc[0]; s >= 10; s /= 10, i++) ; + round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more); + } else { + q.e = e; + q.r = +more; + } + return q; + }; + }(); + function format(n, i, rm, id) { + var c0, e, ne, len, str; + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + if (!n.c) return n.toString(); + c0 = n.c[0]; + ne = n.e; + if (i == null) { + str = coeffToString(n.c); + str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, "0"); + } else { + n = round(new BigNumber2(n), i, rm); + e = n.e; + str = coeffToString(n.c); + len = str.length; + if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) { + for (; len < i; str += "0", len++) ; + str = toExponential(str, e); + } else { + i -= ne; + str = toFixedPoint(str, e, "0"); + if (e + 1 > len) { + if (--i > 0) for (str += "."; i--; str += "0") ; + } else { + i += e - len; + if (i > 0) { + if (e + 1 == len) str += "."; + for (; i--; str += "0") ; + } + } + } + } + return n.s < 0 && c0 ? "-" + str : str; + } + function maxOrMin(args, n) { + var k, y, i = 1, x = new BigNumber2(args[0]); + for (; i < args.length; i++) { + y = new BigNumber2(args[i]); + if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) { + x = y; + } + } + return x; + } + function normalise(n, c, e) { + var i = 1, j = c.length; + for (; !c[--j]; c.pop()) ; + for (j = c[0]; j >= 10; j /= 10, i++) ; + if ((e = i + e * LOG_BASE - 1) > MAX_EXP) { + n.c = n.e = null; + } else if (e < MIN_EXP) { + n.c = [n.e = 0]; + } else { + n.e = e; + n.c = c; + } + return n; + } + parseNumeric = /* @__PURE__ */ function() { + var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g; + return function(x, str, isNum, b) { + var base, s = isNum ? str : str.replace(whitespaceOrPlus, ""); + if (isInfinityOrNaN.test(s)) { + x.s = isNaN(s) ? null : s < 0 ? -1 : 1; + } else { + if (!isNum) { + s = s.replace(basePrefix, function(m, p1, p2) { + base = (p2 = p2.toLowerCase()) == "x" ? 16 : p2 == "b" ? 2 : 8; + return !b || b == base ? p1 : m; + }); + if (b) { + base = b; + s = s.replace(dotAfter, "$1").replace(dotBefore, "0.$1"); + } + if (str != s) return new BigNumber2(s, base); + } + if (BigNumber2.DEBUG) { + throw Error(bignumberError + "Not a" + (b ? " base " + b : "") + " number: " + str); + } + x.s = null; + } + x.c = x.e = null; + }; + }(); + function round(x, sd, rm, r) { + var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN; + if (xc) { + out: { + for (d = 1, k = xc[0]; k >= 10; k /= 10, d++) ; + i = sd - d; + if (i < 0) { + i += LOG_BASE; + j = sd; + n = xc[ni = 0]; + rd = mathfloor(n / pows10[d - j - 1] % 10); + } else { + ni = mathceil((i + 1) / LOG_BASE); + if (ni >= xc.length) { + if (r) { + for (; xc.length <= ni; xc.push(0)) ; + n = rd = 0; + d = 1; + i %= LOG_BASE; + j = i - LOG_BASE + 1; + } else { + break out; + } + } else { + n = k = xc[ni]; + for (d = 1; k >= 10; k /= 10, d++) ; + i %= LOG_BASE; + j = i - LOG_BASE + d; + rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10); + } + } + r = r || sd < 0 || // Are there any non-zero digits after the rounding digit? + // The expression n % pows10[d - j - 1] returns all digits of n to the right + // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714. + xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]); + r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && // Check whether the digit to the left of the rounding digit is odd. + (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7)); + if (sd < 1 || !xc[0]) { + xc.length = 0; + if (r) { + sd -= x.e + 1; + xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE]; + x.e = -sd || 0; + } else { + xc[0] = x.e = 0; + } + return x; + } + if (i == 0) { + xc.length = ni; + k = 1; + ni--; + } else { + xc.length = ni + 1; + k = pows10[LOG_BASE - i]; + xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0; + } + if (r) { + for (; ; ) { + if (ni == 0) { + for (i = 1, j = xc[0]; j >= 10; j /= 10, i++) ; + j = xc[0] += k; + for (k = 1; j >= 10; j /= 10, k++) ; + if (i != k) { + x.e++; + if (xc[0] == BASE) xc[0] = 1; + } + break; + } else { + xc[ni] += k; + if (xc[ni] != BASE) break; + xc[ni--] = 0; + k = 1; + } + } + } + for (i = xc.length; xc[--i] === 0; xc.pop()) ; + } + if (x.e > MAX_EXP) { + x.c = x.e = null; + } else if (x.e < MIN_EXP) { + x.c = [x.e = 0]; + } + } + return x; + } + function valueOf(n) { + var str, e = n.e; + if (e === null) return n.toString(); + str = coeffToString(n.c); + str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, "0"); + return n.s < 0 ? "-" + str : str; + } + P.absoluteValue = P.abs = function() { + var x = new BigNumber2(this); + if (x.s < 0) x.s = 1; + return x; + }; + P.comparedTo = function(y, b) { + return compare(this, new BigNumber2(y, b)); + }; + P.decimalPlaces = P.dp = function(dp, rm) { + var c, n, v, x = this; + if (dp != null) { + intCheck(dp, 0, MAX); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + return round(new BigNumber2(x), dp + x.e + 1, rm); + } + if (!(c = x.c)) return null; + n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE; + if (v = c[v]) for (; v % 10 == 0; v /= 10, n--) ; + if (n < 0) n = 0; + return n; + }; + P.dividedBy = P.div = function(y, b) { + return div(this, new BigNumber2(y, b), DECIMAL_PLACES, ROUNDING_MODE); + }; + P.dividedToIntegerBy = P.idiv = function(y, b) { + return div(this, new BigNumber2(y, b), 0, 1); + }; + P.exponentiatedBy = P.pow = function(n, m) { + var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this; + n = new BigNumber2(n); + if (n.c && !n.isInteger()) { + throw Error(bignumberError + "Exponent not an integer: " + valueOf(n)); + } + if (m != null) m = new BigNumber2(m); + nIsBig = n.e > 14; + if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) { + y = new BigNumber2(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n))); + return m ? y.mod(m) : y; + } + nIsNeg = n.s < 0; + if (m) { + if (m.c ? !m.c[0] : !m.s) return new BigNumber2(NaN); + isModExp = !nIsNeg && x.isInteger() && m.isInteger(); + if (isModExp) x = x.mod(m); + } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) { + k = x.s < 0 && isOdd(n) ? -0 : 0; + if (x.e > -1) k = 1 / k; + return new BigNumber2(nIsNeg ? 1 / k : k); + } else if (POW_PRECISION) { + k = mathceil(POW_PRECISION / LOG_BASE + 2); + } + if (nIsBig) { + half = new BigNumber2(0.5); + if (nIsNeg) n.s = 1; + nIsOdd = isOdd(n); + } else { + i = Math.abs(+valueOf(n)); + nIsOdd = i % 2; + } + y = new BigNumber2(ONE); + for (; ; ) { + if (nIsOdd) { + y = y.times(x); + if (!y.c) break; + if (k) { + if (y.c.length > k) y.c.length = k; + } else if (isModExp) { + y = y.mod(m); + } + } + if (i) { + i = mathfloor(i / 2); + if (i === 0) break; + nIsOdd = i % 2; + } else { + n = n.times(half); + round(n, n.e + 1, 1); + if (n.e > 14) { + nIsOdd = isOdd(n); + } else { + i = +valueOf(n); + if (i === 0) break; + nIsOdd = i % 2; + } + } + x = x.times(x); + if (k) { + if (x.c && x.c.length > k) x.c.length = k; + } else if (isModExp) { + x = x.mod(m); + } + } + if (isModExp) return y; + if (nIsNeg) y = ONE.div(y); + return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y; + }; + P.integerValue = function(rm) { + var n = new BigNumber2(this); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + return round(n, n.e + 1, rm); + }; + P.isEqualTo = P.eq = function(y, b) { + return compare(this, new BigNumber2(y, b)) === 0; + }; + P.isFinite = function() { + return !!this.c; + }; + P.isGreaterThan = P.gt = function(y, b) { + return compare(this, new BigNumber2(y, b)) > 0; + }; + P.isGreaterThanOrEqualTo = P.gte = function(y, b) { + return (b = compare(this, new BigNumber2(y, b))) === 1 || b === 0; + }; + P.isInteger = function() { + return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2; + }; + P.isLessThan = P.lt = function(y, b) { + return compare(this, new BigNumber2(y, b)) < 0; + }; + P.isLessThanOrEqualTo = P.lte = function(y, b) { + return (b = compare(this, new BigNumber2(y, b))) === -1 || b === 0; + }; + P.isNaN = function() { + return !this.s; + }; + P.isNegative = function() { + return this.s < 0; + }; + P.isPositive = function() { + return this.s > 0; + }; + P.isZero = function() { + return !!this.c && this.c[0] == 0; + }; + P.minus = function(y, b) { + var i, j, t, xLTy, x = this, a = x.s; + y = new BigNumber2(y, b); + b = y.s; + if (!a || !b) return new BigNumber2(NaN); + if (a != b) { + y.s = -b; + return x.plus(y); + } + var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c; + if (!xe || !ye) { + if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber2(yc ? x : NaN); + if (!xc[0] || !yc[0]) { + return yc[0] ? (y.s = -b, y) : new BigNumber2(xc[0] ? x : ( + // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity + ROUNDING_MODE == 3 ? -0 : 0 + )); + } + } + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + if (a = xe - ye) { + if (xLTy = a < 0) { + a = -a; + t = xc; + } else { + ye = xe; + t = yc; + } + t.reverse(); + for (b = a; b--; t.push(0)) ; + t.reverse(); + } else { + j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b; + for (a = b = 0; b < j; b++) { + if (xc[b] != yc[b]) { + xLTy = xc[b] < yc[b]; + break; + } + } + } + if (xLTy) { + t = xc; + xc = yc; + yc = t; + y.s = -y.s; + } + b = (j = yc.length) - (i = xc.length); + if (b > 0) for (; b--; xc[i++] = 0) ; + b = BASE - 1; + for (; j > a; ) { + if (xc[--j] < yc[j]) { + for (i = j; i && !xc[--i]; xc[i] = b) ; + --xc[i]; + xc[j] += BASE; + } + xc[j] -= yc[j]; + } + for (; xc[0] == 0; xc.splice(0, 1), --ye) ; + if (!xc[0]) { + y.s = ROUNDING_MODE == 3 ? -1 : 1; + y.c = [y.e = 0]; + return y; + } + return normalise(y, xc, ye); + }; + P.modulo = P.mod = function(y, b) { + var q, s, x = this; + y = new BigNumber2(y, b); + if (!x.c || !y.s || y.c && !y.c[0]) { + return new BigNumber2(NaN); + } else if (!y.c || x.c && !x.c[0]) { + return new BigNumber2(x); + } + if (MODULO_MODE == 9) { + s = y.s; + y.s = 1; + q = div(x, y, 0, 3); + y.s = s; + q.s *= s; + } else { + q = div(x, y, 0, MODULO_MODE); + } + y = x.minus(q.times(y)); + if (!y.c[0] && MODULO_MODE == 1) y.s = x.s; + return y; + }; + P.multipliedBy = P.times = function(y, b) { + var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber2(y, b)).c; + if (!xc || !yc || !xc[0] || !yc[0]) { + if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) { + y.c = y.e = y.s = null; + } else { + y.s *= x.s; + if (!xc || !yc) { + y.c = y.e = null; + } else { + y.c = [0]; + y.e = 0; + } + } + return y; + } + e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE); + y.s *= x.s; + xcL = xc.length; + ycL = yc.length; + if (xcL < ycL) { + zc = xc; + xc = yc; + yc = zc; + i = xcL; + xcL = ycL; + ycL = i; + } + for (i = xcL + ycL, zc = []; i--; zc.push(0)) ; + base = BASE; + sqrtBase = SQRT_BASE; + for (i = ycL; --i >= 0; ) { + c = 0; + ylo = yc[i] % sqrtBase; + yhi = yc[i] / sqrtBase | 0; + for (k = xcL, j = i + k; j > i; ) { + xlo = xc[--k] % sqrtBase; + xhi = xc[k] / sqrtBase | 0; + m = yhi * xlo + xhi * ylo; + xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c; + c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi; + zc[j--] = xlo % base; + } + zc[j] = c; + } + if (c) { + ++e; + } else { + zc.splice(0, 1); + } + return normalise(y, zc, e); + }; + P.negated = function() { + var x = new BigNumber2(this); + x.s = -x.s || null; + return x; + }; + P.plus = function(y, b) { + var t, x = this, a = x.s; + y = new BigNumber2(y, b); + b = y.s; + if (!a || !b) return new BigNumber2(NaN); + if (a != b) { + y.s = -b; + return x.minus(y); + } + var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c; + if (!xe || !ye) { + if (!xc || !yc) return new BigNumber2(a / 0); + if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber2(xc[0] ? x : a * 0); + } + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + if (a = xe - ye) { + if (a > 0) { + ye = xe; + t = yc; + } else { + a = -a; + t = xc; + } + t.reverse(); + for (; a--; t.push(0)) ; + t.reverse(); + } + a = xc.length; + b = yc.length; + if (a - b < 0) { + t = yc; + yc = xc; + xc = t; + b = a; + } + for (a = 0; b; ) { + a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0; + xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; + } + if (a) { + xc = [a].concat(xc); + ++ye; + } + return normalise(y, xc, ye); + }; + P.precision = P.sd = function(sd, rm) { + var c, n, v, x = this; + if (sd != null && sd !== !!sd) { + intCheck(sd, 1, MAX); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + return round(new BigNumber2(x), sd, rm); + } + if (!(c = x.c)) return null; + v = c.length - 1; + n = v * LOG_BASE + 1; + if (v = c[v]) { + for (; v % 10 == 0; v /= 10, n--) ; + for (v = c[0]; v >= 10; v /= 10, n++) ; + } + if (sd && x.e + 1 > n) n = x.e + 1; + return n; + }; + P.shiftedBy = function(k) { + intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER); + return this.times("1e" + k); + }; + P.squareRoot = P.sqrt = function() { + var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber2("0.5"); + if (s !== 1 || !c || !c[0]) { + return new BigNumber2(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0); + } + s = Math.sqrt(+valueOf(x)); + if (s == 0 || s == 1 / 0) { + n = coeffToString(c); + if ((n.length + e) % 2 == 0) n += "0"; + s = Math.sqrt(+n); + e = bitFloor((e + 1) / 2) - (e < 0 || e % 2); + if (s == 1 / 0) { + n = "5e" + e; + } else { + n = s.toExponential(); + n = n.slice(0, n.indexOf("e") + 1) + e; + } + r = new BigNumber2(n); + } else { + r = new BigNumber2(s + ""); + } + if (r.c[0]) { + e = r.e; + s = e + dp; + if (s < 3) s = 0; + for (; ; ) { + t = r; + r = half.times(t.plus(div(x, t, dp, 1))); + if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) { + if (r.e < e) --s; + n = n.slice(s - 3, s + 1); + if (n == "9999" || !rep && n == "4999") { + if (!rep) { + round(t, t.e + DECIMAL_PLACES + 2, 0); + if (t.times(t).eq(x)) { + r = t; + break; + } + } + dp += 4; + s += 4; + rep = 1; + } else { + if (!+n || !+n.slice(1) && n.charAt(0) == "5") { + round(r, r.e + DECIMAL_PLACES + 2, 1); + m = !r.times(r).eq(x); + } + break; + } + } + } + } + return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); + }; + P.toExponential = function(dp, rm) { + if (dp != null) { + intCheck(dp, 0, MAX); + dp++; + } + return format(this, dp, rm, 1); + }; + P.toFixed = function(dp, rm) { + if (dp != null) { + intCheck(dp, 0, MAX); + dp = dp + this.e + 1; + } + return format(this, dp, rm); + }; + P.toFormat = function(dp, rm, format2) { + var str, x = this; + if (format2 == null) { + if (dp != null && rm && typeof rm == "object") { + format2 = rm; + rm = null; + } else if (dp && typeof dp == "object") { + format2 = dp; + dp = rm = null; + } else { + format2 = FORMAT; + } + } else if (typeof format2 != "object") { + throw Error(bignumberError + "Argument not an object: " + format2); + } + str = x.toFixed(dp, rm); + if (x.c) { + var i, arr = str.split("."), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || "", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length; + if (g2) { + i = g1; + g1 = g2; + g2 = i; + len -= i; + } + if (g1 > 0 && len > 0) { + i = len % g1 || g1; + intPart = intDigits.substr(0, i); + for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1); + if (g2 > 0) intPart += groupSeparator + intDigits.slice(i); + if (isNeg) intPart = "-" + intPart; + } + str = fractionPart ? intPart + (format2.decimalSeparator || "") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace( + new RegExp("\\d{" + g2 + "}\\B", "g"), + "$&" + (format2.fractionGroupSeparator || "") + ) : fractionPart) : intPart; + } + return (format2.prefix || "") + str + (format2.suffix || ""); + }; + P.toFraction = function(md) { + var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c; + if (md != null) { + n = new BigNumber2(md); + if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) { + throw Error(bignumberError + "Argument " + (n.isInteger() ? "out of range: " : "not an integer: ") + valueOf(n)); + } + } + if (!xc) return new BigNumber2(x); + d = new BigNumber2(ONE); + n1 = d0 = new BigNumber2(ONE); + d1 = n0 = new BigNumber2(ONE); + s = coeffToString(xc); + e = d.e = s.length - x.e - 1; + d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp]; + md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n; + exp = MAX_EXP; + MAX_EXP = 1 / 0; + n = new BigNumber2(s); + n0.c[0] = 0; + for (; ; ) { + q = div(n, d, 0, 1); + d2 = d0.plus(q.times(d1)); + if (d2.comparedTo(md) == 1) break; + d0 = d1; + d1 = d2; + n1 = n0.plus(q.times(d2 = n1)); + n0 = d2; + d = n.minus(q.times(d2 = d)); + n = d2; + } + d2 = div(md.minus(d0), d1, 0, 1); + n0 = n0.plus(d2.times(n1)); + d0 = d0.plus(d2.times(d1)); + n0.s = n1.s = x.s; + e = e * 2; + r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo( + div(n0, d0, e, ROUNDING_MODE).minus(x).abs() + ) < 1 ? [n1, d1] : [n0, d0]; + MAX_EXP = exp; + return r; + }; + P.toNumber = function() { + return +valueOf(this); + }; + P.toPrecision = function(sd, rm) { + if (sd != null) intCheck(sd, 1, MAX); + return format(this, sd, rm, 2); + }; + P.toString = function(b) { + var str, n = this, s = n.s, e = n.e; + if (e === null) { + if (s) { + str = "Infinity"; + if (s < 0) str = "-" + str; + } else { + str = "NaN"; + } + } else { + if (b == null) { + str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, "0"); + } else if (b === 10 && alphabetHasNormalDecimalDigits) { + n = round(new BigNumber2(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE); + str = toFixedPoint(coeffToString(n.c), n.e, "0"); + } else { + intCheck(b, 2, ALPHABET.length, "Base"); + str = convertBase(toFixedPoint(coeffToString(n.c), e, "0"), 10, b, s, true); + } + if (s < 0 && n.c[0]) str = "-" + str; + } + return str; + }; + P.valueOf = P.toJSON = function() { + return valueOf(this); + }; + P._isBigNumber = true; + P[Symbol.toStringTag] = "BigNumber"; + P[Symbol.for("nodejs.util.inspect.custom")] = P.valueOf; + if (configObject != null) BigNumber2.set(configObject); + return BigNumber2; +} +function bitFloor(n) { + var i = n | 0; + return n > 0 || n === i ? i : i - 1; +} +function coeffToString(a) { + var s, z, i = 1, j = a.length, r = a[0] + ""; + for (; i < j; ) { + s = a[i++] + ""; + z = LOG_BASE - s.length; + for (; z--; s = "0" + s) ; + r += s; + } + for (j = r.length; r.charCodeAt(--j) === 48; ) ; + return r.slice(0, j + 1 || 1); +} +function compare(x, y) { + var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e; + if (!i || !j) return null; + a = xc && !xc[0]; + b = yc && !yc[0]; + if (a || b) return a ? b ? 0 : -j : i; + if (i != j) return i; + a = i < 0; + b = k == l; + if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1; + if (!b) return k > l ^ a ? 1 : -1; + j = (k = xc.length) < (l = yc.length) ? k : l; + for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1; + return k == l ? 0 : k > l ^ a ? 1 : -1; +} +function intCheck(n, min, max, name) { + if (n < min || n > max || n !== mathfloor(n)) { + throw Error(bignumberError + (name || "Argument") + (typeof n == "number" ? n < min || n > max ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(n)); + } +} +function isOdd(n) { + var k = n.c.length - 1; + return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0; +} +function toExponential(str, e) { + return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e < 0 ? "e" : "e+") + e; +} +function toFixedPoint(str, e, z) { + var len, zs; + if (e < 0) { + for (zs = z + "."; ++e; zs += z) ; + str = zs + str; + } else { + len = str.length; + if (++e > len) { + for (zs = z, e -= len; --e; zs += z) ; + str += zs; + } else if (e < len) { + str = str.slice(0, e) + "." + str.slice(e); + } + } + return str; +} +var BigNumber = clone(); +var bignumber_default = BigNumber; + +// node_modules/@solana/buffer-layout-utils/lib/esm/decimal.mjs +var WAD = new bignumber_default("1e+18"); + +// node_modules/@solana/buffer-layout-utils/lib/esm/native.mjs +var import_buffer_layout2 = __toESM(require_Layout(), 1); +var bool = (property) => { + const layout = (0, import_buffer_layout2.u8)(property); + const { encode, decode } = encodeDecode(layout); + const boolLayout = layout; + boolLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset); + return !!src; + }; + boolLayout.encode = (bool3, buffer, offset) => { + const src = Number(bool3); + return encode(src, buffer, offset); + }; + return boolLayout; +}; + +// node_modules/@solana/buffer-layout-utils/lib/esm/web3.mjs +var import_buffer_layout3 = __toESM(require_Layout(), 1); +var import_web32 = __toESM(require_index_cjs(), 1); +var publicKey = (property) => { + const layout = (0, import_buffer_layout3.blob)(32, property); + const { encode, decode } = encodeDecode(layout); + const publicKeyLayout = layout; + publicKeyLayout.decode = (buffer, offset) => { + const src = decode(buffer, offset); + return new import_web32.PublicKey(src); + }; + publicKeyLayout.encode = (publicKey23, buffer, offset) => { + const src = publicKey23.toBuffer(); + return encode(src, buffer, offset); + }; + return publicKeyLayout; +}; + +// node_modules/@solana/spl-token/lib/esm/errors.js +var TokenError = class extends Error { + constructor(message) { + super(message); + } +}; +var TokenOwnerOffCurveError = class extends TokenError { + constructor() { + super(...arguments); + this.name = "TokenOwnerOffCurveError"; + } +}; + +// node_modules/@solana/spl-token/lib/esm/state/mint.js +var import_buffer_layout4 = __toESM(require_Layout(), 1); +var import_web33 = __toESM(require_index_cjs(), 1); +var MintLayout = (0, import_buffer_layout4.struct)([ + (0, import_buffer_layout4.u32)("mintAuthorityOption"), + publicKey("mintAuthority"), + u64("supply"), + (0, import_buffer_layout4.u8)("decimals"), + bool("isInitialized"), + (0, import_buffer_layout4.u32)("freezeAuthorityOption"), + publicKey("freezeAuthority") +]); +var MINT_SIZE = MintLayout.span; +function getAssociatedTokenAddressSync(mint, owner, allowOwnerOffCurve = false, programId = TOKEN_PROGRAM_ID, associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID) { + if (!allowOwnerOffCurve && !import_web33.PublicKey.isOnCurve(owner.toBuffer())) + throw new TokenOwnerOffCurveError(); + const [address] = import_web33.PublicKey.findProgramAddressSync([owner.toBuffer(), programId.toBuffer(), mint.toBuffer()], associatedTokenProgramId); + return address; +} + +// node_modules/@sqds/multisig/lib/index.mjs +var import_web314 = __toESM(require_index_cjs(), 1); +var import_web315 = __toESM(require_index_cjs(), 1); +var import_web316 = __toESM(require_index_cjs(), 1); +var import_web317 = __toESM(require_index_cjs(), 1); +var import_web318 = __toESM(require_index_cjs(), 1); +var import_web319 = __toESM(require_index_cjs(), 1); +var import_web320 = __toESM(require_index_cjs(), 1); +var import_web321 = __toESM(require_index_cjs(), 1); +var import_web322 = __toESM(require_index_cjs(), 1); +var import_web323 = __toESM(require_index_cjs(), 1); +var import_web324 = __toESM(require_index_cjs(), 1); +var import_web325 = __toESM(require_index_cjs(), 1); +var import_web326 = __toESM(require_index_cjs(), 1); +var import_web327 = __toESM(require_index_cjs(), 1); +var import_web328 = __toESM(require_index_cjs(), 1); +var import_web329 = __toESM(require_index_cjs(), 1); +var import_web330 = __toESM(require_index_cjs(), 1); +var import_web331 = __toESM(require_index_cjs(), 1); +var import_web332 = __toESM(require_index_cjs(), 1); +var import_web333 = __toESM(require_index_cjs(), 1); +var import_web334 = __toESM(require_index_cjs(), 1); +var import_web335 = __toESM(require_index_cjs(), 1); +var import_web336 = __toESM(require_index_cjs(), 1); +var import_web337 = __toESM(require_index_cjs(), 1); +var import_web338 = __toESM(require_index_cjs(), 1); +var import_web339 = __toESM(require_index_cjs(), 1); +var __defProp2 = Object.defineProperty; +var __export2 = (target, all) => { + for (var name in all) + __defProp2(target, name, { get: all[name], enumerable: true }); +}; +var generated_exports = {}; +__export2(generated_exports, { + AlreadyApprovedError: () => AlreadyApprovedError, + AlreadyCancelledError: () => AlreadyCancelledError, + AlreadyRejectedError: () => AlreadyRejectedError, + Batch: () => Batch, + BatchNotEmptyError: () => BatchNotEmptyError, + ConfigTransaction: () => ConfigTransaction, + DecimalsMismatchError: () => DecimalsMismatchError, + DuplicateMemberError: () => DuplicateMemberError, + EmptyMembersError: () => EmptyMembersError, + IllegalAccountOwnerError: () => IllegalAccountOwnerError, + InvalidAccountError: () => InvalidAccountError, + InvalidDestinationError: () => InvalidDestinationError, + InvalidMintError: () => InvalidMintError, + InvalidNumberOfAccountsError: () => InvalidNumberOfAccountsError, + InvalidProposalStatusError: () => InvalidProposalStatusError, + InvalidRentCollectorError: () => InvalidRentCollectorError, + InvalidStaleTransactionIndexError: () => InvalidStaleTransactionIndexError, + InvalidThresholdError: () => InvalidThresholdError, + InvalidTransactionIndexError: () => InvalidTransactionIndexError, + InvalidTransactionMessageError: () => InvalidTransactionMessageError, + MissingAccountError: () => MissingAccountError, + Multisig: () => Multisig, + NoActionsError: () => NoActionsError, + NoExecutorsError: () => NoExecutorsError, + NoProposersError: () => NoProposersError, + NoVotersError: () => NoVotersError, + NotAMemberError: () => NotAMemberError, + NotSupportedForControlledError: () => NotSupportedForControlledError, + PROGRAM_ADDRESS: () => PROGRAM_ADDRESS, + PROGRAM_ID: () => PROGRAM_ID, + Period: () => Period, + ProgramConfig: () => ProgramConfig, + Proposal: () => Proposal, + ProposalForAnotherMultisigError: () => ProposalForAnotherMultisigError, + ProtectedAccountError: () => ProtectedAccountError, + RemoveLastMemberError: () => RemoveLastMemberError, + RentReclamationDisabledError: () => RentReclamationDisabledError, + SpendingLimit: () => SpendingLimit, + SpendingLimitExceededError: () => SpendingLimitExceededError, + SpendingLimitInvalidAmountError: () => SpendingLimitInvalidAmountError, + StaleProposalError: () => StaleProposalError, + TimeLockExceedsMaxAllowedError: () => TimeLockExceedsMaxAllowedError, + TimeLockNotReleasedError: () => TimeLockNotReleasedError, + TooManyMembersError: () => TooManyMembersError, + TransactionForAnotherMultisigError: () => TransactionForAnotherMultisigError, + TransactionNotLastInBatchError: () => TransactionNotLastInBatchError, + TransactionNotMatchingProposalError: () => TransactionNotMatchingProposalError, + UnauthorizedError: () => UnauthorizedError, + UnknownPermissionError: () => UnknownPermissionError, + VaultBatchTransaction: () => VaultBatchTransaction, + VaultTransaction: () => VaultTransaction, + Vote: () => Vote, + accountProviders: () => accountProviders, + batchAccountsCloseInstructionDiscriminator: () => batchAccountsCloseInstructionDiscriminator, + batchAccountsCloseStruct: () => batchAccountsCloseStruct, + batchAddTransactionArgsBeet: () => batchAddTransactionArgsBeet, + batchAddTransactionInstructionDiscriminator: () => batchAddTransactionInstructionDiscriminator, + batchAddTransactionStruct: () => batchAddTransactionStruct, + batchBeet: () => batchBeet, + batchCreateArgsBeet: () => batchCreateArgsBeet, + batchCreateInstructionDiscriminator: () => batchCreateInstructionDiscriminator, + batchCreateStruct: () => batchCreateStruct, + batchDiscriminator: () => batchDiscriminator, + batchExecuteTransactionInstructionDiscriminator: () => batchExecuteTransactionInstructionDiscriminator, + batchExecuteTransactionStruct: () => batchExecuteTransactionStruct, + configActionBeet: () => configActionBeet, + configTransactionAccountsCloseInstructionDiscriminator: () => configTransactionAccountsCloseInstructionDiscriminator, + configTransactionAccountsCloseStruct: () => configTransactionAccountsCloseStruct, + configTransactionBeet: () => configTransactionBeet, + configTransactionCreateArgsBeet: () => configTransactionCreateArgsBeet, + configTransactionCreateInstructionDiscriminator: () => configTransactionCreateInstructionDiscriminator, + configTransactionCreateStruct: () => configTransactionCreateStruct, + configTransactionDiscriminator: () => configTransactionDiscriminator, + configTransactionExecuteInstructionDiscriminator: () => configTransactionExecuteInstructionDiscriminator, + configTransactionExecuteStruct: () => configTransactionExecuteStruct, + createBatchAccountsCloseInstruction: () => createBatchAccountsCloseInstruction, + createBatchAddTransactionInstruction: () => createBatchAddTransactionInstruction, + createBatchCreateInstruction: () => createBatchCreateInstruction, + createBatchExecuteTransactionInstruction: () => createBatchExecuteTransactionInstruction, + createConfigTransactionAccountsCloseInstruction: () => createConfigTransactionAccountsCloseInstruction, + createConfigTransactionCreateInstruction: () => createConfigTransactionCreateInstruction, + createConfigTransactionExecuteInstruction: () => createConfigTransactionExecuteInstruction, + createMultisigAddMemberInstruction: () => createMultisigAddMemberInstruction, + createMultisigAddSpendingLimitInstruction: () => createMultisigAddSpendingLimitInstruction, + createMultisigChangeThresholdInstruction: () => createMultisigChangeThresholdInstruction, + createMultisigCreateInstruction: () => createMultisigCreateInstruction, + createMultisigCreateV2Instruction: () => createMultisigCreateV2Instruction, + createMultisigRemoveMemberInstruction: () => createMultisigRemoveMemberInstruction, + createMultisigRemoveSpendingLimitInstruction: () => createMultisigRemoveSpendingLimitInstruction, + createMultisigSetConfigAuthorityInstruction: () => createMultisigSetConfigAuthorityInstruction, + createMultisigSetRentCollectorInstruction: () => createMultisigSetRentCollectorInstruction, + createMultisigSetTimeLockInstruction: () => createMultisigSetTimeLockInstruction, + createProgramConfigInitInstruction: () => createProgramConfigInitInstruction, + createProgramConfigSetAuthorityInstruction: () => createProgramConfigSetAuthorityInstruction, + createProgramConfigSetMultisigCreationFeeInstruction: () => createProgramConfigSetMultisigCreationFeeInstruction, + createProgramConfigSetTreasuryInstruction: () => createProgramConfigSetTreasuryInstruction, + createProposalActivateInstruction: () => createProposalActivateInstruction, + createProposalApproveInstruction: () => createProposalApproveInstruction, + createProposalCancelInstruction: () => createProposalCancelInstruction, + createProposalCreateInstruction: () => createProposalCreateInstruction, + createProposalRejectInstruction: () => createProposalRejectInstruction, + createSpendingLimitUseInstruction: () => createSpendingLimitUseInstruction, + createVaultBatchTransactionAccountCloseInstruction: () => createVaultBatchTransactionAccountCloseInstruction, + createVaultTransactionAccountsCloseInstruction: () => createVaultTransactionAccountsCloseInstruction, + createVaultTransactionCreateInstruction: () => createVaultTransactionCreateInstruction, + createVaultTransactionExecuteInstruction: () => createVaultTransactionExecuteInstruction, + errorFromCode: () => errorFromCode, + errorFromName: () => errorFromName, + isConfigActionAddMember: () => isConfigActionAddMember, + isConfigActionAddSpendingLimit: () => isConfigActionAddSpendingLimit, + isConfigActionChangeThreshold: () => isConfigActionChangeThreshold, + isConfigActionRemoveMember: () => isConfigActionRemoveMember, + isConfigActionRemoveSpendingLimit: () => isConfigActionRemoveSpendingLimit, + isConfigActionSetRentCollector: () => isConfigActionSetRentCollector, + isConfigActionSetTimeLock: () => isConfigActionSetTimeLock, + isProposalStatusActive: () => isProposalStatusActive, + isProposalStatusApproved: () => isProposalStatusApproved, + isProposalStatusCancelled: () => isProposalStatusCancelled, + isProposalStatusDraft: () => isProposalStatusDraft, + isProposalStatusExecuted: () => isProposalStatusExecuted, + isProposalStatusExecuting: () => isProposalStatusExecuting, + isProposalStatusRejected: () => isProposalStatusRejected, + memberBeet: () => memberBeet, + multisigAddMemberArgsBeet: () => multisigAddMemberArgsBeet, + multisigAddMemberInstructionDiscriminator: () => multisigAddMemberInstructionDiscriminator, + multisigAddMemberStruct: () => multisigAddMemberStruct, + multisigAddSpendingLimitArgsBeet: () => multisigAddSpendingLimitArgsBeet, + multisigAddSpendingLimitInstructionDiscriminator: () => multisigAddSpendingLimitInstructionDiscriminator, + multisigAddSpendingLimitStruct: () => multisigAddSpendingLimitStruct, + multisigBeet: () => multisigBeet, + multisigChangeThresholdArgsBeet: () => multisigChangeThresholdArgsBeet, + multisigChangeThresholdInstructionDiscriminator: () => multisigChangeThresholdInstructionDiscriminator, + multisigChangeThresholdStruct: () => multisigChangeThresholdStruct, + multisigCompiledInstructionBeet: () => multisigCompiledInstructionBeet, + multisigCreateArgsBeet: () => multisigCreateArgsBeet, + multisigCreateArgsV2Beet: () => multisigCreateArgsV2Beet, + multisigCreateInstructionDiscriminator: () => multisigCreateInstructionDiscriminator, + multisigCreateStruct: () => multisigCreateStruct, + multisigCreateV2InstructionDiscriminator: () => multisigCreateV2InstructionDiscriminator, + multisigCreateV2Struct: () => multisigCreateV2Struct, + multisigDiscriminator: () => multisigDiscriminator, + multisigMessageAddressTableLookupBeet: () => multisigMessageAddressTableLookupBeet, + multisigRemoveMemberArgsBeet: () => multisigRemoveMemberArgsBeet, + multisigRemoveMemberInstructionDiscriminator: () => multisigRemoveMemberInstructionDiscriminator, + multisigRemoveMemberStruct: () => multisigRemoveMemberStruct, + multisigRemoveSpendingLimitArgsBeet: () => multisigRemoveSpendingLimitArgsBeet, + multisigRemoveSpendingLimitInstructionDiscriminator: () => multisigRemoveSpendingLimitInstructionDiscriminator, + multisigRemoveSpendingLimitStruct: () => multisigRemoveSpendingLimitStruct, + multisigSetConfigAuthorityArgsBeet: () => multisigSetConfigAuthorityArgsBeet, + multisigSetConfigAuthorityInstructionDiscriminator: () => multisigSetConfigAuthorityInstructionDiscriminator, + multisigSetConfigAuthorityStruct: () => multisigSetConfigAuthorityStruct, + multisigSetRentCollectorArgsBeet: () => multisigSetRentCollectorArgsBeet, + multisigSetRentCollectorInstructionDiscriminator: () => multisigSetRentCollectorInstructionDiscriminator, + multisigSetRentCollectorStruct: () => multisigSetRentCollectorStruct, + multisigSetTimeLockArgsBeet: () => multisigSetTimeLockArgsBeet, + multisigSetTimeLockInstructionDiscriminator: () => multisigSetTimeLockInstructionDiscriminator, + multisigSetTimeLockStruct: () => multisigSetTimeLockStruct, + periodBeet: () => periodBeet, + permissionsBeet: () => permissionsBeet, + programConfigBeet: () => programConfigBeet, + programConfigDiscriminator: () => programConfigDiscriminator, + programConfigInitArgsBeet: () => programConfigInitArgsBeet, + programConfigInitInstructionDiscriminator: () => programConfigInitInstructionDiscriminator, + programConfigInitStruct: () => programConfigInitStruct, + programConfigSetAuthorityArgsBeet: () => programConfigSetAuthorityArgsBeet, + programConfigSetAuthorityInstructionDiscriminator: () => programConfigSetAuthorityInstructionDiscriminator, + programConfigSetAuthorityStruct: () => programConfigSetAuthorityStruct, + programConfigSetMultisigCreationFeeArgsBeet: () => programConfigSetMultisigCreationFeeArgsBeet, + programConfigSetMultisigCreationFeeInstructionDiscriminator: () => programConfigSetMultisigCreationFeeInstructionDiscriminator, + programConfigSetMultisigCreationFeeStruct: () => programConfigSetMultisigCreationFeeStruct, + programConfigSetTreasuryArgsBeet: () => programConfigSetTreasuryArgsBeet, + programConfigSetTreasuryInstructionDiscriminator: () => programConfigSetTreasuryInstructionDiscriminator, + programConfigSetTreasuryStruct: () => programConfigSetTreasuryStruct, + proposalActivateInstructionDiscriminator: () => proposalActivateInstructionDiscriminator, + proposalActivateStruct: () => proposalActivateStruct, + proposalApproveInstructionDiscriminator: () => proposalApproveInstructionDiscriminator, + proposalApproveStruct: () => proposalApproveStruct, + proposalBeet: () => proposalBeet, + proposalCancelInstructionDiscriminator: () => proposalCancelInstructionDiscriminator, + proposalCancelStruct: () => proposalCancelStruct, + proposalCreateArgsBeet: () => proposalCreateArgsBeet, + proposalCreateInstructionDiscriminator: () => proposalCreateInstructionDiscriminator, + proposalCreateStruct: () => proposalCreateStruct, + proposalDiscriminator: () => proposalDiscriminator, + proposalRejectInstructionDiscriminator: () => proposalRejectInstructionDiscriminator, + proposalRejectStruct: () => proposalRejectStruct, + proposalStatusBeet: () => proposalStatusBeet, + proposalVoteArgsBeet: () => proposalVoteArgsBeet, + spendingLimitBeet: () => spendingLimitBeet, + spendingLimitDiscriminator: () => spendingLimitDiscriminator, + spendingLimitUseArgsBeet: () => spendingLimitUseArgsBeet, + spendingLimitUseInstructionDiscriminator: () => spendingLimitUseInstructionDiscriminator, + spendingLimitUseStruct: () => spendingLimitUseStruct, + vaultBatchTransactionAccountCloseInstructionDiscriminator: () => vaultBatchTransactionAccountCloseInstructionDiscriminator, + vaultBatchTransactionAccountCloseStruct: () => vaultBatchTransactionAccountCloseStruct, + vaultBatchTransactionBeet: () => vaultBatchTransactionBeet, + vaultBatchTransactionDiscriminator: () => vaultBatchTransactionDiscriminator, + vaultTransactionAccountsCloseInstructionDiscriminator: () => vaultTransactionAccountsCloseInstructionDiscriminator, + vaultTransactionAccountsCloseStruct: () => vaultTransactionAccountsCloseStruct, + vaultTransactionBeet: () => vaultTransactionBeet, + vaultTransactionCreateArgsBeet: () => vaultTransactionCreateArgsBeet, + vaultTransactionCreateInstructionDiscriminator: () => vaultTransactionCreateInstructionDiscriminator, + vaultTransactionCreateStruct: () => vaultTransactionCreateStruct, + vaultTransactionDiscriminator: () => vaultTransactionDiscriminator, + vaultTransactionExecuteInstructionDiscriminator: () => vaultTransactionExecuteInstructionDiscriminator, + vaultTransactionExecuteStruct: () => vaultTransactionExecuteStruct, + vaultTransactionMessageBeet: () => vaultTransactionMessageBeet, + voteBeet: () => voteBeet +}); +var batchDiscriminator = [156, 194, 70, 44, 22, 88, 137, 44]; +var Batch = class _Batch { + constructor(multisig, creator, index, bump, vaultIndex, vaultBump, size, executedTransactionIndex) { + this.multisig = multisig; + this.creator = creator; + this.index = index; + this.bump = bump; + this.vaultIndex = vaultIndex; + this.vaultBump = vaultBump; + this.size = size; + this.executedTransactionIndex = executedTransactionIndex; + } + /** + * Creates a {@link Batch} instance from the provided args. + */ + static fromArgs(args) { + return new _Batch( + args.multisig, + args.creator, + args.index, + args.bump, + args.vaultIndex, + args.vaultBump, + args.size, + args.executedTransactionIndex + ); + } + /** + * Deserializes the {@link Batch} from the data of the provided {@link web3.AccountInfo}. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static fromAccountInfo(accountInfo, offset = 0) { + return _Batch.deserialize(accountInfo.data, offset); + } + /** + * Retrieves the account info from the provided address and deserializes + * the {@link Batch} from its data. + * + * @throws Error if no account info is found at the address or if deserialization fails + */ + static async fromAccountAddress(connection, address, commitmentOrConfig) { + const accountInfo = await connection.getAccountInfo( + address, + commitmentOrConfig + ); + if (accountInfo == null) { + throw new Error(`Unable to find Batch account at ${address}`); + } + return _Batch.fromAccountInfo(accountInfo, 0)[0]; + } + /** + * Provides a {@link web3.Connection.getProgramAccounts} config builder, + * to fetch accounts matching filters that can be specified via that builder. + * + * @param programId - the program that owns the accounts we are filtering + */ + static gpaBuilder(programId = new web3.PublicKey( + "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf" + )) { + return beetSolana.GpaBuilder.fromStruct(programId, batchBeet); + } + /** + * Deserializes the {@link Batch} from the provided data Buffer. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static deserialize(buf, offset = 0) { + return batchBeet.deserialize(buf, offset); + } + /** + * Serializes the {@link Batch} into a Buffer. + * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. + */ + serialize() { + return batchBeet.serialize({ + accountDiscriminator: batchDiscriminator, + ...this + }); + } + /** + * Returns the byteSize of a {@link Buffer} holding the serialized data of + * {@link Batch} + */ + static get byteSize() { + return batchBeet.byteSize; + } + /** + * Fetches the minimum balance needed to exempt an account holding + * {@link Batch} data from rent + * + * @param connection used to retrieve the rent exemption information + */ + static async getMinimumBalanceForRentExemption(connection, commitment) { + return connection.getMinimumBalanceForRentExemption( + _Batch.byteSize, + commitment + ); + } + /** + * Determines if the provided {@link Buffer} has the correct byte size to + * hold {@link Batch} data. + */ + static hasCorrectByteSize(buf, offset = 0) { + return buf.byteLength - offset === _Batch.byteSize; + } + /** + * Returns a readable version of {@link Batch} properties + * and can be used to convert to JSON and/or logging + */ + pretty() { + return { + multisig: this.multisig.toBase58(), + creator: this.creator.toBase58(), + index: (() => { + const x = this.index; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + bump: this.bump, + vaultIndex: this.vaultIndex, + vaultBump: this.vaultBump, + size: this.size, + executedTransactionIndex: this.executedTransactionIndex + }; + } +}; +var batchBeet = new beet.BeetStruct( + [ + ["accountDiscriminator", beet.uniformFixedSizeArray(beet.u8, 8)], + ["multisig", beetSolana.publicKey], + ["creator", beetSolana.publicKey], + ["index", beet.u64], + ["bump", beet.u8], + ["vaultIndex", beet.u8], + ["vaultBump", beet.u8], + ["size", beet.u32], + ["executedTransactionIndex", beet.u32] + ], + Batch.fromArgs, + "Batch" +); +var permissionsBeet = new beet2.BeetArgsStruct( + [["mask", beet2.u8]], + "Permissions" +); +var memberBeet = new beet3.BeetArgsStruct( + [ + ["key", beetSolana2.publicKey], + ["permissions", permissionsBeet] + ], + "Member" +); +var Period = /* @__PURE__ */ ((Period6) => { + Period6[Period6["OneTime"] = 0] = "OneTime"; + Period6[Period6["Day"] = 1] = "Day"; + Period6[Period6["Week"] = 2] = "Week"; + Period6[Period6["Month"] = 3] = "Month"; + return Period6; +})(Period || {}); +var periodBeet = beet4.fixedScalarEnum(Period); +var isConfigActionAddMember = (x) => x.__kind === "AddMember"; +var isConfigActionRemoveMember = (x) => x.__kind === "RemoveMember"; +var isConfigActionChangeThreshold = (x) => x.__kind === "ChangeThreshold"; +var isConfigActionSetTimeLock = (x) => x.__kind === "SetTimeLock"; +var isConfigActionAddSpendingLimit = (x) => x.__kind === "AddSpendingLimit"; +var isConfigActionRemoveSpendingLimit = (x) => x.__kind === "RemoveSpendingLimit"; +var isConfigActionSetRentCollector = (x) => x.__kind === "SetRentCollector"; +var configActionBeet = beet5.dataEnum([ + [ + "AddMember", + new beet5.BeetArgsStruct( + [["newMember", memberBeet]], + 'ConfigActionRecord["AddMember"]' + ) + ], + [ + "RemoveMember", + new beet5.BeetArgsStruct( + [["oldMember", beetSolana3.publicKey]], + 'ConfigActionRecord["RemoveMember"]' + ) + ], + [ + "ChangeThreshold", + new beet5.BeetArgsStruct( + [["newThreshold", beet5.u16]], + 'ConfigActionRecord["ChangeThreshold"]' + ) + ], + [ + "SetTimeLock", + new beet5.BeetArgsStruct( + [["newTimeLock", beet5.u32]], + 'ConfigActionRecord["SetTimeLock"]' + ) + ], + [ + "AddSpendingLimit", + new beet5.FixableBeetArgsStruct( + [ + ["createKey", beetSolana3.publicKey], + ["vaultIndex", beet5.u8], + ["mint", beetSolana3.publicKey], + ["amount", beet5.u64], + ["period", periodBeet], + ["members", beet5.array(beetSolana3.publicKey)], + ["destinations", beet5.array(beetSolana3.publicKey)] + ], + 'ConfigActionRecord["AddSpendingLimit"]' + ) + ], + [ + "RemoveSpendingLimit", + new beet5.BeetArgsStruct( + [["spendingLimit", beetSolana3.publicKey]], + 'ConfigActionRecord["RemoveSpendingLimit"]' + ) + ], + [ + "SetRentCollector", + new beet5.FixableBeetArgsStruct( + [["newRentCollector", beet5.coption(beetSolana3.publicKey)]], + 'ConfigActionRecord["SetRentCollector"]' + ) + ] +]); +var configTransactionDiscriminator = [94, 8, 4, 35, 113, 139, 139, 112]; +var ConfigTransaction = class _ConfigTransaction { + constructor(multisig, creator, index, bump, actions) { + this.multisig = multisig; + this.creator = creator; + this.index = index; + this.bump = bump; + this.actions = actions; + } + /** + * Creates a {@link ConfigTransaction} instance from the provided args. + */ + static fromArgs(args) { + return new _ConfigTransaction( + args.multisig, + args.creator, + args.index, + args.bump, + args.actions + ); + } + /** + * Deserializes the {@link ConfigTransaction} from the data of the provided {@link web3.AccountInfo}. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static fromAccountInfo(accountInfo, offset = 0) { + return _ConfigTransaction.deserialize(accountInfo.data, offset); + } + /** + * Retrieves the account info from the provided address and deserializes + * the {@link ConfigTransaction} from its data. + * + * @throws Error if no account info is found at the address or if deserialization fails + */ + static async fromAccountAddress(connection, address, commitmentOrConfig) { + const accountInfo = await connection.getAccountInfo( + address, + commitmentOrConfig + ); + if (accountInfo == null) { + throw new Error(`Unable to find ConfigTransaction account at ${address}`); + } + return _ConfigTransaction.fromAccountInfo(accountInfo, 0)[0]; + } + /** + * Provides a {@link web3.Connection.getProgramAccounts} config builder, + * to fetch accounts matching filters that can be specified via that builder. + * + * @param programId - the program that owns the accounts we are filtering + */ + static gpaBuilder(programId = new web32.PublicKey( + "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf" + )) { + return beetSolana4.GpaBuilder.fromStruct(programId, configTransactionBeet); + } + /** + * Deserializes the {@link ConfigTransaction} from the provided data Buffer. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static deserialize(buf, offset = 0) { + return configTransactionBeet.deserialize(buf, offset); + } + /** + * Serializes the {@link ConfigTransaction} into a Buffer. + * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. + */ + serialize() { + return configTransactionBeet.serialize({ + accountDiscriminator: configTransactionDiscriminator, + ...this + }); + } + /** + * Returns the byteSize of a {@link Buffer} holding the serialized data of + * {@link ConfigTransaction} for the provided args. + * + * @param args need to be provided since the byte size for this account + * depends on them + */ + static byteSize(args) { + const instance = _ConfigTransaction.fromArgs(args); + return configTransactionBeet.toFixedFromValue({ + accountDiscriminator: configTransactionDiscriminator, + ...instance + }).byteSize; + } + /** + * Fetches the minimum balance needed to exempt an account holding + * {@link ConfigTransaction} data from rent + * + * @param args need to be provided since the byte size for this account + * depends on them + * @param connection used to retrieve the rent exemption information + */ + static async getMinimumBalanceForRentExemption(args, connection, commitment) { + return connection.getMinimumBalanceForRentExemption( + _ConfigTransaction.byteSize(args), + commitment + ); + } + /** + * Returns a readable version of {@link ConfigTransaction} properties + * and can be used to convert to JSON and/or logging + */ + pretty() { + return { + multisig: this.multisig.toBase58(), + creator: this.creator.toBase58(), + index: (() => { + const x = this.index; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + bump: this.bump, + actions: this.actions + }; + } +}; +var configTransactionBeet = new beet6.FixableBeetStruct( + [ + ["accountDiscriminator", beet6.uniformFixedSizeArray(beet6.u8, 8)], + ["multisig", beetSolana4.publicKey], + ["creator", beetSolana4.publicKey], + ["index", beet6.u64], + ["bump", beet6.u8], + ["actions", beet6.array(configActionBeet)] + ], + ConfigTransaction.fromArgs, + "ConfigTransaction" +); +var multisigDiscriminator = [224, 116, 121, 186, 68, 161, 79, 236]; +var Multisig = class _Multisig { + constructor(createKey, configAuthority, threshold, timeLock, transactionIndex, staleTransactionIndex, rentCollector, bump, members) { + this.createKey = createKey; + this.configAuthority = configAuthority; + this.threshold = threshold; + this.timeLock = timeLock; + this.transactionIndex = transactionIndex; + this.staleTransactionIndex = staleTransactionIndex; + this.rentCollector = rentCollector; + this.bump = bump; + this.members = members; + } + /** + * Creates a {@link Multisig} instance from the provided args. + */ + static fromArgs(args) { + return new _Multisig( + args.createKey, + args.configAuthority, + args.threshold, + args.timeLock, + args.transactionIndex, + args.staleTransactionIndex, + args.rentCollector, + args.bump, + args.members + ); + } + /** + * Deserializes the {@link Multisig} from the data of the provided {@link web3.AccountInfo}. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static fromAccountInfo(accountInfo, offset = 0) { + return _Multisig.deserialize(accountInfo.data, offset); + } + /** + * Retrieves the account info from the provided address and deserializes + * the {@link Multisig} from its data. + * + * @throws Error if no account info is found at the address or if deserialization fails + */ + static async fromAccountAddress(connection, address, commitmentOrConfig) { + const accountInfo = await connection.getAccountInfo( + address, + commitmentOrConfig + ); + if (accountInfo == null) { + throw new Error(`Unable to find Multisig account at ${address}`); + } + return _Multisig.fromAccountInfo(accountInfo, 0)[0]; + } + /** + * Provides a {@link web3.Connection.getProgramAccounts} config builder, + * to fetch accounts matching filters that can be specified via that builder. + * + * @param programId - the program that owns the accounts we are filtering + */ + static gpaBuilder(programId = new web33.PublicKey( + "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf" + )) { + return beetSolana5.GpaBuilder.fromStruct(programId, multisigBeet); + } + /** + * Deserializes the {@link Multisig} from the provided data Buffer. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static deserialize(buf, offset = 0) { + return multisigBeet.deserialize(buf, offset); + } + /** + * Serializes the {@link Multisig} into a Buffer. + * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. + */ + serialize() { + return multisigBeet.serialize({ + accountDiscriminator: multisigDiscriminator, + ...this + }); + } + /** + * Returns the byteSize of a {@link Buffer} holding the serialized data of + * {@link Multisig} for the provided args. + * + * @param args need to be provided since the byte size for this account + * depends on them + */ + static byteSize(args) { + const instance = _Multisig.fromArgs(args); + return multisigBeet.toFixedFromValue({ + accountDiscriminator: multisigDiscriminator, + ...instance + }).byteSize; + } + /** + * Fetches the minimum balance needed to exempt an account holding + * {@link Multisig} data from rent + * + * @param args need to be provided since the byte size for this account + * depends on them + * @param connection used to retrieve the rent exemption information + */ + static async getMinimumBalanceForRentExemption(args, connection, commitment) { + return connection.getMinimumBalanceForRentExemption( + _Multisig.byteSize(args), + commitment + ); + } + /** + * Returns a readable version of {@link Multisig} properties + * and can be used to convert to JSON and/or logging + */ + pretty() { + return { + createKey: this.createKey.toBase58(), + configAuthority: this.configAuthority.toBase58(), + threshold: this.threshold, + timeLock: this.timeLock, + transactionIndex: (() => { + const x = this.transactionIndex; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + staleTransactionIndex: (() => { + const x = this.staleTransactionIndex; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + rentCollector: this.rentCollector, + bump: this.bump, + members: this.members + }; + } +}; +var multisigBeet = new beet7.FixableBeetStruct( + [ + ["accountDiscriminator", beet7.uniformFixedSizeArray(beet7.u8, 8)], + ["createKey", beetSolana5.publicKey], + ["configAuthority", beetSolana5.publicKey], + ["threshold", beet7.u16], + ["timeLock", beet7.u32], + ["transactionIndex", beet7.u64], + ["staleTransactionIndex", beet7.u64], + ["rentCollector", beet7.coption(beetSolana5.publicKey)], + ["bump", beet7.u8], + ["members", beet7.array(memberBeet)] + ], + Multisig.fromArgs, + "Multisig" +); +var programConfigDiscriminator = [196, 210, 90, 231, 144, 149, 140, 63]; +var ProgramConfig = class _ProgramConfig { + constructor(authority, multisigCreationFee, treasury, reserved) { + this.authority = authority; + this.multisigCreationFee = multisigCreationFee; + this.treasury = treasury; + this.reserved = reserved; + } + /** + * Creates a {@link ProgramConfig} instance from the provided args. + */ + static fromArgs(args) { + return new _ProgramConfig( + args.authority, + args.multisigCreationFee, + args.treasury, + args.reserved + ); + } + /** + * Deserializes the {@link ProgramConfig} from the data of the provided {@link web3.AccountInfo}. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static fromAccountInfo(accountInfo, offset = 0) { + return _ProgramConfig.deserialize(accountInfo.data, offset); + } + /** + * Retrieves the account info from the provided address and deserializes + * the {@link ProgramConfig} from its data. + * + * @throws Error if no account info is found at the address or if deserialization fails + */ + static async fromAccountAddress(connection, address, commitmentOrConfig) { + const accountInfo = await connection.getAccountInfo( + address, + commitmentOrConfig + ); + if (accountInfo == null) { + throw new Error(`Unable to find ProgramConfig account at ${address}`); + } + return _ProgramConfig.fromAccountInfo(accountInfo, 0)[0]; + } + /** + * Provides a {@link web3.Connection.getProgramAccounts} config builder, + * to fetch accounts matching filters that can be specified via that builder. + * + * @param programId - the program that owns the accounts we are filtering + */ + static gpaBuilder(programId = new web34.PublicKey( + "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf" + )) { + return beetSolana6.GpaBuilder.fromStruct(programId, programConfigBeet); + } + /** + * Deserializes the {@link ProgramConfig} from the provided data Buffer. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static deserialize(buf, offset = 0) { + return programConfigBeet.deserialize(buf, offset); + } + /** + * Serializes the {@link ProgramConfig} into a Buffer. + * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. + */ + serialize() { + return programConfigBeet.serialize({ + accountDiscriminator: programConfigDiscriminator, + ...this + }); + } + /** + * Returns the byteSize of a {@link Buffer} holding the serialized data of + * {@link ProgramConfig} + */ + static get byteSize() { + return programConfigBeet.byteSize; + } + /** + * Fetches the minimum balance needed to exempt an account holding + * {@link ProgramConfig} data from rent + * + * @param connection used to retrieve the rent exemption information + */ + static async getMinimumBalanceForRentExemption(connection, commitment) { + return connection.getMinimumBalanceForRentExemption( + _ProgramConfig.byteSize, + commitment + ); + } + /** + * Determines if the provided {@link Buffer} has the correct byte size to + * hold {@link ProgramConfig} data. + */ + static hasCorrectByteSize(buf, offset = 0) { + return buf.byteLength - offset === _ProgramConfig.byteSize; + } + /** + * Returns a readable version of {@link ProgramConfig} properties + * and can be used to convert to JSON and/or logging + */ + pretty() { + return { + authority: this.authority.toBase58(), + multisigCreationFee: (() => { + const x = this.multisigCreationFee; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + treasury: this.treasury.toBase58(), + reserved: this.reserved + }; + } +}; +var programConfigBeet = new beet8.BeetStruct( + [ + ["accountDiscriminator", beet8.uniformFixedSizeArray(beet8.u8, 8)], + ["authority", beetSolana6.publicKey], + ["multisigCreationFee", beet8.u64], + ["treasury", beetSolana6.publicKey], + ["reserved", beet8.uniformFixedSizeArray(beet8.u8, 64)] + ], + ProgramConfig.fromArgs, + "ProgramConfig" +); +var isProposalStatusDraft = (x) => x.__kind === "Draft"; +var isProposalStatusActive = (x) => x.__kind === "Active"; +var isProposalStatusRejected = (x) => x.__kind === "Rejected"; +var isProposalStatusApproved = (x) => x.__kind === "Approved"; +var isProposalStatusExecuting = (x) => x.__kind === "Executing"; +var isProposalStatusExecuted = (x) => x.__kind === "Executed"; +var isProposalStatusCancelled = (x) => x.__kind === "Cancelled"; +var proposalStatusBeet = beet9.dataEnum([ + [ + "Draft", + new beet9.BeetArgsStruct( + [["timestamp", beet9.i64]], + 'ProposalStatusRecord["Draft"]' + ) + ], + [ + "Active", + new beet9.BeetArgsStruct( + [["timestamp", beet9.i64]], + 'ProposalStatusRecord["Active"]' + ) + ], + [ + "Rejected", + new beet9.BeetArgsStruct( + [["timestamp", beet9.i64]], + 'ProposalStatusRecord["Rejected"]' + ) + ], + [ + "Approved", + new beet9.BeetArgsStruct( + [["timestamp", beet9.i64]], + 'ProposalStatusRecord["Approved"]' + ) + ], + ["Executing", beet9.unit], + [ + "Executed", + new beet9.BeetArgsStruct( + [["timestamp", beet9.i64]], + 'ProposalStatusRecord["Executed"]' + ) + ], + [ + "Cancelled", + new beet9.BeetArgsStruct( + [["timestamp", beet9.i64]], + 'ProposalStatusRecord["Cancelled"]' + ) + ] +]); +var proposalDiscriminator = [26, 94, 189, 187, 116, 136, 53, 33]; +var Proposal = class _Proposal { + constructor(multisig, transactionIndex, status, bump, approved, rejected, cancelled) { + this.multisig = multisig; + this.transactionIndex = transactionIndex; + this.status = status; + this.bump = bump; + this.approved = approved; + this.rejected = rejected; + this.cancelled = cancelled; + } + /** + * Creates a {@link Proposal} instance from the provided args. + */ + static fromArgs(args) { + return new _Proposal( + args.multisig, + args.transactionIndex, + args.status, + args.bump, + args.approved, + args.rejected, + args.cancelled + ); + } + /** + * Deserializes the {@link Proposal} from the data of the provided {@link web3.AccountInfo}. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static fromAccountInfo(accountInfo, offset = 0) { + return _Proposal.deserialize(accountInfo.data, offset); + } + /** + * Retrieves the account info from the provided address and deserializes + * the {@link Proposal} from its data. + * + * @throws Error if no account info is found at the address or if deserialization fails + */ + static async fromAccountAddress(connection, address, commitmentOrConfig) { + const accountInfo = await connection.getAccountInfo( + address, + commitmentOrConfig + ); + if (accountInfo == null) { + throw new Error(`Unable to find Proposal account at ${address}`); + } + return _Proposal.fromAccountInfo(accountInfo, 0)[0]; + } + /** + * Provides a {@link web3.Connection.getProgramAccounts} config builder, + * to fetch accounts matching filters that can be specified via that builder. + * + * @param programId - the program that owns the accounts we are filtering + */ + static gpaBuilder(programId = new web35.PublicKey( + "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf" + )) { + return beetSolana7.GpaBuilder.fromStruct(programId, proposalBeet); + } + /** + * Deserializes the {@link Proposal} from the provided data Buffer. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static deserialize(buf, offset = 0) { + return proposalBeet.deserialize(buf, offset); + } + /** + * Serializes the {@link Proposal} into a Buffer. + * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. + */ + serialize() { + return proposalBeet.serialize({ + accountDiscriminator: proposalDiscriminator, + ...this + }); + } + /** + * Returns the byteSize of a {@link Buffer} holding the serialized data of + * {@link Proposal} for the provided args. + * + * @param args need to be provided since the byte size for this account + * depends on them + */ + static byteSize(args) { + const instance = _Proposal.fromArgs(args); + return proposalBeet.toFixedFromValue({ + accountDiscriminator: proposalDiscriminator, + ...instance + }).byteSize; + } + /** + * Fetches the minimum balance needed to exempt an account holding + * {@link Proposal} data from rent + * + * @param args need to be provided since the byte size for this account + * depends on them + * @param connection used to retrieve the rent exemption information + */ + static async getMinimumBalanceForRentExemption(args, connection, commitment) { + return connection.getMinimumBalanceForRentExemption( + _Proposal.byteSize(args), + commitment + ); + } + /** + * Returns a readable version of {@link Proposal} properties + * and can be used to convert to JSON and/or logging + */ + pretty() { + return { + multisig: this.multisig.toBase58(), + transactionIndex: (() => { + const x = this.transactionIndex; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + status: this.status.__kind, + bump: this.bump, + approved: this.approved, + rejected: this.rejected, + cancelled: this.cancelled + }; + } +}; +var proposalBeet = new beet10.FixableBeetStruct( + [ + ["accountDiscriminator", beet10.uniformFixedSizeArray(beet10.u8, 8)], + ["multisig", beetSolana7.publicKey], + ["transactionIndex", beet10.u64], + ["status", proposalStatusBeet], + ["bump", beet10.u8], + ["approved", beet10.array(beetSolana7.publicKey)], + ["rejected", beet10.array(beetSolana7.publicKey)], + ["cancelled", beet10.array(beetSolana7.publicKey)] + ], + Proposal.fromArgs, + "Proposal" +); +var spendingLimitDiscriminator = [10, 201, 27, 160, 218, 195, 222, 152]; +var SpendingLimit = class _SpendingLimit { + constructor(multisig, createKey, vaultIndex, mint, amount, period, remainingAmount, lastReset, bump, members, destinations) { + this.multisig = multisig; + this.createKey = createKey; + this.vaultIndex = vaultIndex; + this.mint = mint; + this.amount = amount; + this.period = period; + this.remainingAmount = remainingAmount; + this.lastReset = lastReset; + this.bump = bump; + this.members = members; + this.destinations = destinations; + } + /** + * Creates a {@link SpendingLimit} instance from the provided args. + */ + static fromArgs(args) { + return new _SpendingLimit( + args.multisig, + args.createKey, + args.vaultIndex, + args.mint, + args.amount, + args.period, + args.remainingAmount, + args.lastReset, + args.bump, + args.members, + args.destinations + ); + } + /** + * Deserializes the {@link SpendingLimit} from the data of the provided {@link web3.AccountInfo}. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static fromAccountInfo(accountInfo, offset = 0) { + return _SpendingLimit.deserialize(accountInfo.data, offset); + } + /** + * Retrieves the account info from the provided address and deserializes + * the {@link SpendingLimit} from its data. + * + * @throws Error if no account info is found at the address or if deserialization fails + */ + static async fromAccountAddress(connection, address, commitmentOrConfig) { + const accountInfo = await connection.getAccountInfo( + address, + commitmentOrConfig + ); + if (accountInfo == null) { + throw new Error(`Unable to find SpendingLimit account at ${address}`); + } + return _SpendingLimit.fromAccountInfo(accountInfo, 0)[0]; + } + /** + * Provides a {@link web3.Connection.getProgramAccounts} config builder, + * to fetch accounts matching filters that can be specified via that builder. + * + * @param programId - the program that owns the accounts we are filtering + */ + static gpaBuilder(programId = new web36.PublicKey( + "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf" + )) { + return beetSolana8.GpaBuilder.fromStruct(programId, spendingLimitBeet); + } + /** + * Deserializes the {@link SpendingLimit} from the provided data Buffer. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static deserialize(buf, offset = 0) { + return spendingLimitBeet.deserialize(buf, offset); + } + /** + * Serializes the {@link SpendingLimit} into a Buffer. + * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. + */ + serialize() { + return spendingLimitBeet.serialize({ + accountDiscriminator: spendingLimitDiscriminator, + ...this + }); + } + /** + * Returns the byteSize of a {@link Buffer} holding the serialized data of + * {@link SpendingLimit} for the provided args. + * + * @param args need to be provided since the byte size for this account + * depends on them + */ + static byteSize(args) { + const instance = _SpendingLimit.fromArgs(args); + return spendingLimitBeet.toFixedFromValue({ + accountDiscriminator: spendingLimitDiscriminator, + ...instance + }).byteSize; + } + /** + * Fetches the minimum balance needed to exempt an account holding + * {@link SpendingLimit} data from rent + * + * @param args need to be provided since the byte size for this account + * depends on them + * @param connection used to retrieve the rent exemption information + */ + static async getMinimumBalanceForRentExemption(args, connection, commitment) { + return connection.getMinimumBalanceForRentExemption( + _SpendingLimit.byteSize(args), + commitment + ); + } + /** + * Returns a readable version of {@link SpendingLimit} properties + * and can be used to convert to JSON and/or logging + */ + pretty() { + return { + multisig: this.multisig.toBase58(), + createKey: this.createKey.toBase58(), + vaultIndex: this.vaultIndex, + mint: this.mint.toBase58(), + amount: (() => { + const x = this.amount; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + period: "Period." + Period[this.period], + remainingAmount: (() => { + const x = this.remainingAmount; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + lastReset: (() => { + const x = this.lastReset; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + bump: this.bump, + members: this.members, + destinations: this.destinations + }; + } +}; +var spendingLimitBeet = new beet11.FixableBeetStruct( + [ + ["accountDiscriminator", beet11.uniformFixedSizeArray(beet11.u8, 8)], + ["multisig", beetSolana8.publicKey], + ["createKey", beetSolana8.publicKey], + ["vaultIndex", beet11.u8], + ["mint", beetSolana8.publicKey], + ["amount", beet11.u64], + ["period", periodBeet], + ["remainingAmount", beet11.u64], + ["lastReset", beet11.i64], + ["bump", beet11.u8], + ["members", beet11.array(beetSolana8.publicKey)], + ["destinations", beet11.array(beetSolana8.publicKey)] + ], + SpendingLimit.fromArgs, + "SpendingLimit" +); +var multisigCompiledInstructionBeet = new beet12.FixableBeetArgsStruct( + [ + ["programIdIndex", beet12.u8], + ["accountIndexes", beet12.bytes], + ["data", beet12.bytes] + ], + "MultisigCompiledInstruction" +); +var multisigMessageAddressTableLookupBeet = new beet13.FixableBeetArgsStruct( + [ + ["accountKey", beetSolana9.publicKey], + ["writableIndexes", beet13.bytes], + ["readonlyIndexes", beet13.bytes] + ], + "MultisigMessageAddressTableLookup" +); +var vaultTransactionMessageBeet = new beet14.FixableBeetArgsStruct( + [ + ["numSigners", beet14.u8], + ["numWritableSigners", beet14.u8], + ["numWritableNonSigners", beet14.u8], + ["accountKeys", beet14.array(beetSolana10.publicKey)], + ["instructions", beet14.array(multisigCompiledInstructionBeet)], + [ + "addressTableLookups", + beet14.array(multisigMessageAddressTableLookupBeet) + ] + ], + "VaultTransactionMessage" +); +var vaultBatchTransactionDiscriminator = [ + 196, + 121, + 46, + 36, + 12, + 19, + 252, + 7 +]; +var VaultBatchTransaction = class _VaultBatchTransaction { + constructor(bump, ephemeralSignerBumps, message) { + this.bump = bump; + this.ephemeralSignerBumps = ephemeralSignerBumps; + this.message = message; + } + /** + * Creates a {@link VaultBatchTransaction} instance from the provided args. + */ + static fromArgs(args) { + return new _VaultBatchTransaction( + args.bump, + args.ephemeralSignerBumps, + args.message + ); + } + /** + * Deserializes the {@link VaultBatchTransaction} from the data of the provided {@link web3.AccountInfo}. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static fromAccountInfo(accountInfo, offset = 0) { + return _VaultBatchTransaction.deserialize(accountInfo.data, offset); + } + /** + * Retrieves the account info from the provided address and deserializes + * the {@link VaultBatchTransaction} from its data. + * + * @throws Error if no account info is found at the address or if deserialization fails + */ + static async fromAccountAddress(connection, address, commitmentOrConfig) { + const accountInfo = await connection.getAccountInfo( + address, + commitmentOrConfig + ); + if (accountInfo == null) { + throw new Error( + `Unable to find VaultBatchTransaction account at ${address}` + ); + } + return _VaultBatchTransaction.fromAccountInfo(accountInfo, 0)[0]; + } + /** + * Provides a {@link web3.Connection.getProgramAccounts} config builder, + * to fetch accounts matching filters that can be specified via that builder. + * + * @param programId - the program that owns the accounts we are filtering + */ + static gpaBuilder(programId = new web37.PublicKey( + "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf" + )) { + return beetSolana11.GpaBuilder.fromStruct( + programId, + vaultBatchTransactionBeet + ); + } + /** + * Deserializes the {@link VaultBatchTransaction} from the provided data Buffer. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static deserialize(buf, offset = 0) { + return vaultBatchTransactionBeet.deserialize(buf, offset); + } + /** + * Serializes the {@link VaultBatchTransaction} into a Buffer. + * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. + */ + serialize() { + return vaultBatchTransactionBeet.serialize({ + accountDiscriminator: vaultBatchTransactionDiscriminator, + ...this + }); + } + /** + * Returns the byteSize of a {@link Buffer} holding the serialized data of + * {@link VaultBatchTransaction} for the provided args. + * + * @param args need to be provided since the byte size for this account + * depends on them + */ + static byteSize(args) { + const instance = _VaultBatchTransaction.fromArgs(args); + return vaultBatchTransactionBeet.toFixedFromValue({ + accountDiscriminator: vaultBatchTransactionDiscriminator, + ...instance + }).byteSize; + } + /** + * Fetches the minimum balance needed to exempt an account holding + * {@link VaultBatchTransaction} data from rent + * + * @param args need to be provided since the byte size for this account + * depends on them + * @param connection used to retrieve the rent exemption information + */ + static async getMinimumBalanceForRentExemption(args, connection, commitment) { + return connection.getMinimumBalanceForRentExemption( + _VaultBatchTransaction.byteSize(args), + commitment + ); + } + /** + * Returns a readable version of {@link VaultBatchTransaction} properties + * and can be used to convert to JSON and/or logging + */ + pretty() { + return { + bump: this.bump, + ephemeralSignerBumps: this.ephemeralSignerBumps, + message: this.message + }; + } +}; +var vaultBatchTransactionBeet = new beet15.FixableBeetStruct( + [ + ["accountDiscriminator", beet15.uniformFixedSizeArray(beet15.u8, 8)], + ["bump", beet15.u8], + ["ephemeralSignerBumps", beet15.bytes], + ["message", vaultTransactionMessageBeet] + ], + VaultBatchTransaction.fromArgs, + "VaultBatchTransaction" +); +var vaultTransactionDiscriminator = [ + 168, + 250, + 162, + 100, + 81, + 14, + 162, + 207 +]; +var VaultTransaction = class _VaultTransaction { + constructor(multisig, creator, index, bump, vaultIndex, vaultBump, ephemeralSignerBumps, message) { + this.multisig = multisig; + this.creator = creator; + this.index = index; + this.bump = bump; + this.vaultIndex = vaultIndex; + this.vaultBump = vaultBump; + this.ephemeralSignerBumps = ephemeralSignerBumps; + this.message = message; + } + /** + * Creates a {@link VaultTransaction} instance from the provided args. + */ + static fromArgs(args) { + return new _VaultTransaction( + args.multisig, + args.creator, + args.index, + args.bump, + args.vaultIndex, + args.vaultBump, + args.ephemeralSignerBumps, + args.message + ); + } + /** + * Deserializes the {@link VaultTransaction} from the data of the provided {@link web3.AccountInfo}. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static fromAccountInfo(accountInfo, offset = 0) { + return _VaultTransaction.deserialize(accountInfo.data, offset); + } + /** + * Retrieves the account info from the provided address and deserializes + * the {@link VaultTransaction} from its data. + * + * @throws Error if no account info is found at the address or if deserialization fails + */ + static async fromAccountAddress(connection, address, commitmentOrConfig) { + const accountInfo = await connection.getAccountInfo( + address, + commitmentOrConfig + ); + if (accountInfo == null) { + throw new Error(`Unable to find VaultTransaction account at ${address}`); + } + return _VaultTransaction.fromAccountInfo(accountInfo, 0)[0]; + } + /** + * Provides a {@link web3.Connection.getProgramAccounts} config builder, + * to fetch accounts matching filters that can be specified via that builder. + * + * @param programId - the program that owns the accounts we are filtering + */ + static gpaBuilder(programId = new web38.PublicKey( + "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf" + )) { + return beetSolana12.GpaBuilder.fromStruct(programId, vaultTransactionBeet); + } + /** + * Deserializes the {@link VaultTransaction} from the provided data Buffer. + * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it. + */ + static deserialize(buf, offset = 0) { + return vaultTransactionBeet.deserialize(buf, offset); + } + /** + * Serializes the {@link VaultTransaction} into a Buffer. + * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it. + */ + serialize() { + return vaultTransactionBeet.serialize({ + accountDiscriminator: vaultTransactionDiscriminator, + ...this + }); + } + /** + * Returns the byteSize of a {@link Buffer} holding the serialized data of + * {@link VaultTransaction} for the provided args. + * + * @param args need to be provided since the byte size for this account + * depends on them + */ + static byteSize(args) { + const instance = _VaultTransaction.fromArgs(args); + return vaultTransactionBeet.toFixedFromValue({ + accountDiscriminator: vaultTransactionDiscriminator, + ...instance + }).byteSize; + } + /** + * Fetches the minimum balance needed to exempt an account holding + * {@link VaultTransaction} data from rent + * + * @param args need to be provided since the byte size for this account + * depends on them + * @param connection used to retrieve the rent exemption information + */ + static async getMinimumBalanceForRentExemption(args, connection, commitment) { + return connection.getMinimumBalanceForRentExemption( + _VaultTransaction.byteSize(args), + commitment + ); + } + /** + * Returns a readable version of {@link VaultTransaction} properties + * and can be used to convert to JSON and/or logging + */ + pretty() { + return { + multisig: this.multisig.toBase58(), + creator: this.creator.toBase58(), + index: (() => { + const x = this.index; + if (typeof x.toNumber === "function") { + try { + return x.toNumber(); + } catch (_) { + return x; + } + } + return x; + })(), + bump: this.bump, + vaultIndex: this.vaultIndex, + vaultBump: this.vaultBump, + ephemeralSignerBumps: this.ephemeralSignerBumps, + message: this.message + }; + } +}; +var vaultTransactionBeet = new beet16.FixableBeetStruct( + [ + ["accountDiscriminator", beet16.uniformFixedSizeArray(beet16.u8, 8)], + ["multisig", beetSolana12.publicKey], + ["creator", beetSolana12.publicKey], + ["index", beet16.u64], + ["bump", beet16.u8], + ["vaultIndex", beet16.u8], + ["vaultBump", beet16.u8], + ["ephemeralSignerBumps", beet16.bytes], + ["message", vaultTransactionMessageBeet] + ], + VaultTransaction.fromArgs, + "VaultTransaction" +); +var accountProviders = { + Batch, + VaultBatchTransaction, + ConfigTransaction, + Multisig, + ProgramConfig, + Proposal, + SpendingLimit, + VaultTransaction +}; +var createErrorFromCodeLookup = /* @__PURE__ */ new Map(); +var createErrorFromNameLookup = /* @__PURE__ */ new Map(); +var DuplicateMemberError = class _DuplicateMemberError extends Error { + constructor() { + super("Found multiple members with the same pubkey"); + this.code = 6e3; + this.name = "DuplicateMember"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _DuplicateMemberError); + } + } +}; +createErrorFromCodeLookup.set(6e3, () => new DuplicateMemberError()); +createErrorFromNameLookup.set( + "DuplicateMember", + () => new DuplicateMemberError() +); +var EmptyMembersError = class _EmptyMembersError extends Error { + constructor() { + super("Members array is empty"); + this.code = 6001; + this.name = "EmptyMembers"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _EmptyMembersError); + } + } +}; +createErrorFromCodeLookup.set(6001, () => new EmptyMembersError()); +createErrorFromNameLookup.set("EmptyMembers", () => new EmptyMembersError()); +var TooManyMembersError = class _TooManyMembersError extends Error { + constructor() { + super("Too many members, can be up to 65535"); + this.code = 6002; + this.name = "TooManyMembers"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _TooManyMembersError); + } + } +}; +createErrorFromCodeLookup.set(6002, () => new TooManyMembersError()); +createErrorFromNameLookup.set("TooManyMembers", () => new TooManyMembersError()); +var InvalidThresholdError = class _InvalidThresholdError extends Error { + constructor() { + super( + "Invalid threshold, must be between 1 and number of members with Vote permission" + ); + this.code = 6003; + this.name = "InvalidThreshold"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidThresholdError); + } + } +}; +createErrorFromCodeLookup.set(6003, () => new InvalidThresholdError()); +createErrorFromNameLookup.set( + "InvalidThreshold", + () => new InvalidThresholdError() +); +var UnauthorizedError = class _UnauthorizedError extends Error { + constructor() { + super("Attempted to perform an unauthorized action"); + this.code = 6004; + this.name = "Unauthorized"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _UnauthorizedError); + } + } +}; +createErrorFromCodeLookup.set(6004, () => new UnauthorizedError()); +createErrorFromNameLookup.set("Unauthorized", () => new UnauthorizedError()); +var NotAMemberError = class _NotAMemberError extends Error { + constructor() { + super("Provided pubkey is not a member of multisig"); + this.code = 6005; + this.name = "NotAMember"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _NotAMemberError); + } + } +}; +createErrorFromCodeLookup.set(6005, () => new NotAMemberError()); +createErrorFromNameLookup.set("NotAMember", () => new NotAMemberError()); +var InvalidTransactionMessageError = class _InvalidTransactionMessageError extends Error { + constructor() { + super("TransactionMessage is malformed."); + this.code = 6006; + this.name = "InvalidTransactionMessage"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidTransactionMessageError); + } + } +}; +createErrorFromCodeLookup.set( + 6006, + () => new InvalidTransactionMessageError() +); +createErrorFromNameLookup.set( + "InvalidTransactionMessage", + () => new InvalidTransactionMessageError() +); +var StaleProposalError = class _StaleProposalError extends Error { + constructor() { + super("Proposal is stale"); + this.code = 6007; + this.name = "StaleProposal"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _StaleProposalError); + } + } +}; +createErrorFromCodeLookup.set(6007, () => new StaleProposalError()); +createErrorFromNameLookup.set("StaleProposal", () => new StaleProposalError()); +var InvalidProposalStatusError = class _InvalidProposalStatusError extends Error { + constructor() { + super("Invalid proposal status"); + this.code = 6008; + this.name = "InvalidProposalStatus"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidProposalStatusError); + } + } +}; +createErrorFromCodeLookup.set(6008, () => new InvalidProposalStatusError()); +createErrorFromNameLookup.set( + "InvalidProposalStatus", + () => new InvalidProposalStatusError() +); +var InvalidTransactionIndexError = class _InvalidTransactionIndexError extends Error { + constructor() { + super("Invalid transaction index"); + this.code = 6009; + this.name = "InvalidTransactionIndex"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidTransactionIndexError); + } + } +}; +createErrorFromCodeLookup.set(6009, () => new InvalidTransactionIndexError()); +createErrorFromNameLookup.set( + "InvalidTransactionIndex", + () => new InvalidTransactionIndexError() +); +var AlreadyApprovedError = class _AlreadyApprovedError extends Error { + constructor() { + super("Member already approved the transaction"); + this.code = 6010; + this.name = "AlreadyApproved"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _AlreadyApprovedError); + } + } +}; +createErrorFromCodeLookup.set(6010, () => new AlreadyApprovedError()); +createErrorFromNameLookup.set( + "AlreadyApproved", + () => new AlreadyApprovedError() +); +var AlreadyRejectedError = class _AlreadyRejectedError extends Error { + constructor() { + super("Member already rejected the transaction"); + this.code = 6011; + this.name = "AlreadyRejected"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _AlreadyRejectedError); + } + } +}; +createErrorFromCodeLookup.set(6011, () => new AlreadyRejectedError()); +createErrorFromNameLookup.set( + "AlreadyRejected", + () => new AlreadyRejectedError() +); +var AlreadyCancelledError = class _AlreadyCancelledError extends Error { + constructor() { + super("Member already cancelled the transaction"); + this.code = 6012; + this.name = "AlreadyCancelled"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _AlreadyCancelledError); + } + } +}; +createErrorFromCodeLookup.set(6012, () => new AlreadyCancelledError()); +createErrorFromNameLookup.set( + "AlreadyCancelled", + () => new AlreadyCancelledError() +); +var InvalidNumberOfAccountsError = class _InvalidNumberOfAccountsError extends Error { + constructor() { + super("Wrong number of accounts provided"); + this.code = 6013; + this.name = "InvalidNumberOfAccounts"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidNumberOfAccountsError); + } + } +}; +createErrorFromCodeLookup.set(6013, () => new InvalidNumberOfAccountsError()); +createErrorFromNameLookup.set( + "InvalidNumberOfAccounts", + () => new InvalidNumberOfAccountsError() +); +var InvalidAccountError = class _InvalidAccountError extends Error { + constructor() { + super("Invalid account provided"); + this.code = 6014; + this.name = "InvalidAccount"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidAccountError); + } + } +}; +createErrorFromCodeLookup.set(6014, () => new InvalidAccountError()); +createErrorFromNameLookup.set("InvalidAccount", () => new InvalidAccountError()); +var RemoveLastMemberError = class _RemoveLastMemberError extends Error { + constructor() { + super("Cannot remove last member"); + this.code = 6015; + this.name = "RemoveLastMember"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _RemoveLastMemberError); + } + } +}; +createErrorFromCodeLookup.set(6015, () => new RemoveLastMemberError()); +createErrorFromNameLookup.set( + "RemoveLastMember", + () => new RemoveLastMemberError() +); +var NoVotersError = class _NoVotersError extends Error { + constructor() { + super("Members don't include any voters"); + this.code = 6016; + this.name = "NoVoters"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _NoVotersError); + } + } +}; +createErrorFromCodeLookup.set(6016, () => new NoVotersError()); +createErrorFromNameLookup.set("NoVoters", () => new NoVotersError()); +var NoProposersError = class _NoProposersError extends Error { + constructor() { + super("Members don't include any proposers"); + this.code = 6017; + this.name = "NoProposers"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _NoProposersError); + } + } +}; +createErrorFromCodeLookup.set(6017, () => new NoProposersError()); +createErrorFromNameLookup.set("NoProposers", () => new NoProposersError()); +var NoExecutorsError = class _NoExecutorsError extends Error { + constructor() { + super("Members don't include any executors"); + this.code = 6018; + this.name = "NoExecutors"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _NoExecutorsError); + } + } +}; +createErrorFromCodeLookup.set(6018, () => new NoExecutorsError()); +createErrorFromNameLookup.set("NoExecutors", () => new NoExecutorsError()); +var InvalidStaleTransactionIndexError = class _InvalidStaleTransactionIndexError extends Error { + constructor() { + super("`stale_transaction_index` must be <= `transaction_index`"); + this.code = 6019; + this.name = "InvalidStaleTransactionIndex"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidStaleTransactionIndexError); + } + } +}; +createErrorFromCodeLookup.set( + 6019, + () => new InvalidStaleTransactionIndexError() +); +createErrorFromNameLookup.set( + "InvalidStaleTransactionIndex", + () => new InvalidStaleTransactionIndexError() +); +var NotSupportedForControlledError = class _NotSupportedForControlledError extends Error { + constructor() { + super("Instruction not supported for controlled multisig"); + this.code = 6020; + this.name = "NotSupportedForControlled"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _NotSupportedForControlledError); + } + } +}; +createErrorFromCodeLookup.set( + 6020, + () => new NotSupportedForControlledError() +); +createErrorFromNameLookup.set( + "NotSupportedForControlled", + () => new NotSupportedForControlledError() +); +var TimeLockNotReleasedError = class _TimeLockNotReleasedError extends Error { + constructor() { + super("Proposal time lock has not been released"); + this.code = 6021; + this.name = "TimeLockNotReleased"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _TimeLockNotReleasedError); + } + } +}; +createErrorFromCodeLookup.set(6021, () => new TimeLockNotReleasedError()); +createErrorFromNameLookup.set( + "TimeLockNotReleased", + () => new TimeLockNotReleasedError() +); +var NoActionsError = class _NoActionsError extends Error { + constructor() { + super("Config transaction must have at least one action"); + this.code = 6022; + this.name = "NoActions"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _NoActionsError); + } + } +}; +createErrorFromCodeLookup.set(6022, () => new NoActionsError()); +createErrorFromNameLookup.set("NoActions", () => new NoActionsError()); +var MissingAccountError = class _MissingAccountError extends Error { + constructor() { + super("Missing account"); + this.code = 6023; + this.name = "MissingAccount"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _MissingAccountError); + } + } +}; +createErrorFromCodeLookup.set(6023, () => new MissingAccountError()); +createErrorFromNameLookup.set("MissingAccount", () => new MissingAccountError()); +var InvalidMintError = class _InvalidMintError extends Error { + constructor() { + super("Invalid mint"); + this.code = 6024; + this.name = "InvalidMint"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidMintError); + } + } +}; +createErrorFromCodeLookup.set(6024, () => new InvalidMintError()); +createErrorFromNameLookup.set("InvalidMint", () => new InvalidMintError()); +var InvalidDestinationError = class _InvalidDestinationError extends Error { + constructor() { + super("Invalid destination"); + this.code = 6025; + this.name = "InvalidDestination"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidDestinationError); + } + } +}; +createErrorFromCodeLookup.set(6025, () => new InvalidDestinationError()); +createErrorFromNameLookup.set( + "InvalidDestination", + () => new InvalidDestinationError() +); +var SpendingLimitExceededError = class _SpendingLimitExceededError extends Error { + constructor() { + super("Spending limit exceeded"); + this.code = 6026; + this.name = "SpendingLimitExceeded"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _SpendingLimitExceededError); + } + } +}; +createErrorFromCodeLookup.set(6026, () => new SpendingLimitExceededError()); +createErrorFromNameLookup.set( + "SpendingLimitExceeded", + () => new SpendingLimitExceededError() +); +var DecimalsMismatchError = class _DecimalsMismatchError extends Error { + constructor() { + super("Decimals don't match the mint"); + this.code = 6027; + this.name = "DecimalsMismatch"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _DecimalsMismatchError); + } + } +}; +createErrorFromCodeLookup.set(6027, () => new DecimalsMismatchError()); +createErrorFromNameLookup.set( + "DecimalsMismatch", + () => new DecimalsMismatchError() +); +var UnknownPermissionError = class _UnknownPermissionError extends Error { + constructor() { + super("Member has unknown permission"); + this.code = 6028; + this.name = "UnknownPermission"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _UnknownPermissionError); + } + } +}; +createErrorFromCodeLookup.set(6028, () => new UnknownPermissionError()); +createErrorFromNameLookup.set( + "UnknownPermission", + () => new UnknownPermissionError() +); +var ProtectedAccountError = class _ProtectedAccountError extends Error { + constructor() { + super("Account is protected, it cannot be passed into a CPI as writable"); + this.code = 6029; + this.name = "ProtectedAccount"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _ProtectedAccountError); + } + } +}; +createErrorFromCodeLookup.set(6029, () => new ProtectedAccountError()); +createErrorFromNameLookup.set( + "ProtectedAccount", + () => new ProtectedAccountError() +); +var TimeLockExceedsMaxAllowedError = class _TimeLockExceedsMaxAllowedError extends Error { + constructor() { + super("Time lock exceeds the maximum allowed (90 days)"); + this.code = 6030; + this.name = "TimeLockExceedsMaxAllowed"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _TimeLockExceedsMaxAllowedError); + } + } +}; +createErrorFromCodeLookup.set( + 6030, + () => new TimeLockExceedsMaxAllowedError() +); +createErrorFromNameLookup.set( + "TimeLockExceedsMaxAllowed", + () => new TimeLockExceedsMaxAllowedError() +); +var IllegalAccountOwnerError = class _IllegalAccountOwnerError extends Error { + constructor() { + super("Account is not owned by Multisig program"); + this.code = 6031; + this.name = "IllegalAccountOwner"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _IllegalAccountOwnerError); + } + } +}; +createErrorFromCodeLookup.set(6031, () => new IllegalAccountOwnerError()); +createErrorFromNameLookup.set( + "IllegalAccountOwner", + () => new IllegalAccountOwnerError() +); +var RentReclamationDisabledError = class _RentReclamationDisabledError extends Error { + constructor() { + super("Rent reclamation is disabled for this multisig"); + this.code = 6032; + this.name = "RentReclamationDisabled"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _RentReclamationDisabledError); + } + } +}; +createErrorFromCodeLookup.set(6032, () => new RentReclamationDisabledError()); +createErrorFromNameLookup.set( + "RentReclamationDisabled", + () => new RentReclamationDisabledError() +); +var InvalidRentCollectorError = class _InvalidRentCollectorError extends Error { + constructor() { + super("Invalid rent collector address"); + this.code = 6033; + this.name = "InvalidRentCollector"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _InvalidRentCollectorError); + } + } +}; +createErrorFromCodeLookup.set(6033, () => new InvalidRentCollectorError()); +createErrorFromNameLookup.set( + "InvalidRentCollector", + () => new InvalidRentCollectorError() +); +var ProposalForAnotherMultisigError = class _ProposalForAnotherMultisigError extends Error { + constructor() { + super("Proposal is for another multisig"); + this.code = 6034; + this.name = "ProposalForAnotherMultisig"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _ProposalForAnotherMultisigError); + } + } +}; +createErrorFromCodeLookup.set( + 6034, + () => new ProposalForAnotherMultisigError() +); +createErrorFromNameLookup.set( + "ProposalForAnotherMultisig", + () => new ProposalForAnotherMultisigError() +); +var TransactionForAnotherMultisigError = class _TransactionForAnotherMultisigError extends Error { + constructor() { + super("Transaction is for another multisig"); + this.code = 6035; + this.name = "TransactionForAnotherMultisig"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _TransactionForAnotherMultisigError); + } + } +}; +createErrorFromCodeLookup.set( + 6035, + () => new TransactionForAnotherMultisigError() +); +createErrorFromNameLookup.set( + "TransactionForAnotherMultisig", + () => new TransactionForAnotherMultisigError() +); +var TransactionNotMatchingProposalError = class _TransactionNotMatchingProposalError extends Error { + constructor() { + super("Transaction doesn't match proposal"); + this.code = 6036; + this.name = "TransactionNotMatchingProposal"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _TransactionNotMatchingProposalError); + } + } +}; +createErrorFromCodeLookup.set( + 6036, + () => new TransactionNotMatchingProposalError() +); +createErrorFromNameLookup.set( + "TransactionNotMatchingProposal", + () => new TransactionNotMatchingProposalError() +); +var TransactionNotLastInBatchError = class _TransactionNotLastInBatchError extends Error { + constructor() { + super("Transaction is not last in batch"); + this.code = 6037; + this.name = "TransactionNotLastInBatch"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _TransactionNotLastInBatchError); + } + } +}; +createErrorFromCodeLookup.set( + 6037, + () => new TransactionNotLastInBatchError() +); +createErrorFromNameLookup.set( + "TransactionNotLastInBatch", + () => new TransactionNotLastInBatchError() +); +var BatchNotEmptyError = class _BatchNotEmptyError extends Error { + constructor() { + super("Batch is not empty"); + this.code = 6038; + this.name = "BatchNotEmpty"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _BatchNotEmptyError); + } + } +}; +createErrorFromCodeLookup.set(6038, () => new BatchNotEmptyError()); +createErrorFromNameLookup.set("BatchNotEmpty", () => new BatchNotEmptyError()); +var SpendingLimitInvalidAmountError = class _SpendingLimitInvalidAmountError extends Error { + constructor() { + super("Invalid SpendingLimit amount"); + this.code = 6039; + this.name = "SpendingLimitInvalidAmount"; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, _SpendingLimitInvalidAmountError); + } + } +}; +createErrorFromCodeLookup.set( + 6039, + () => new SpendingLimitInvalidAmountError() +); +createErrorFromNameLookup.set( + "SpendingLimitInvalidAmount", + () => new SpendingLimitInvalidAmountError() +); +function errorFromCode(code) { + const createError = createErrorFromCodeLookup.get(code); + return createError != null ? createError() : null; +} +function errorFromName(name) { + const createError = createErrorFromNameLookup.get(name); + return createError != null ? createError() : null; +} +var batchAccountsCloseStruct = new beet17.BeetArgsStruct( + [["instructionDiscriminator", beet17.uniformFixedSizeArray(beet17.u8, 8)]], + "BatchAccountsCloseInstructionArgs" +); +var batchAccountsCloseInstructionDiscriminator = [ + 218, + 196, + 7, + 175, + 130, + 102, + 11, + 255 +]; +function createBatchAccountsCloseInstruction(accounts, programId = new web39.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = batchAccountsCloseStruct.serialize({ + instructionDiscriminator: batchAccountsCloseInstructionDiscriminator + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.batch, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.rentCollector, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.systemProgram ?? web39.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web39.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var batchAddTransactionArgsBeet = new beet18.FixableBeetArgsStruct( + [ + ["ephemeralSigners", beet18.u8], + ["transactionMessage", beet18.bytes] + ], + "BatchAddTransactionArgs" +); +var batchAddTransactionStruct = new beet19.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet19.uniformFixedSizeArray(beet19.u8, 8)], + ["args", batchAddTransactionArgsBeet] + ], + "BatchAddTransactionInstructionArgs" +); +var batchAddTransactionInstructionDiscriminator = [ + 89, + 100, + 224, + 18, + 69, + 70, + 54, + 76 +]; +function createBatchAddTransactionInstruction(accounts, args, programId = new web310.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = batchAddTransactionStruct.serialize({ + instructionDiscriminator: batchAddTransactionInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.proposal, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.batch, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web310.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web310.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var batchCreateArgsBeet = new beet20.FixableBeetArgsStruct( + [ + ["vaultIndex", beet20.u8], + ["memo", beet20.coption(beet20.utf8String)] + ], + "BatchCreateArgs" +); +var batchCreateStruct = new beet21.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet21.uniformFixedSizeArray(beet21.u8, 8)], + ["args", batchCreateArgsBeet] + ], + "BatchCreateInstructionArgs" +); +var batchCreateInstructionDiscriminator = [ + 194, + 142, + 141, + 17, + 55, + 185, + 20, + 248 +]; +function createBatchCreateInstruction(accounts, args, programId = new web311.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = batchCreateStruct.serialize({ + instructionDiscriminator: batchCreateInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.batch, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.creator, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web311.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web311.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var batchExecuteTransactionStruct = new beet22.BeetArgsStruct( + [["instructionDiscriminator", beet22.uniformFixedSizeArray(beet22.u8, 8)]], + "BatchExecuteTransactionInstructionArgs" +); +var batchExecuteTransactionInstructionDiscriminator = [ + 172, + 44, + 179, + 152, + 21, + 127, + 234, + 180 +]; +function createBatchExecuteTransactionInstruction(accounts, programId = new web312.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = batchExecuteTransactionStruct.serialize({ + instructionDiscriminator: batchExecuteTransactionInstructionDiscriminator + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.batch, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web312.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var configTransactionAccountsCloseStruct = new beet23.BeetArgsStruct( + [["instructionDiscriminator", beet23.uniformFixedSizeArray(beet23.u8, 8)]], + "ConfigTransactionAccountsCloseInstructionArgs" +); +var configTransactionAccountsCloseInstructionDiscriminator = [ + 80, + 203, + 84, + 53, + 151, + 112, + 187, + 186 +]; +function createConfigTransactionAccountsCloseInstruction(accounts, programId = new web313.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = configTransactionAccountsCloseStruct.serialize({ + instructionDiscriminator: configTransactionAccountsCloseInstructionDiscriminator + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.rentCollector, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.systemProgram ?? web313.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web313.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var configTransactionCreateArgsBeet = new beet24.FixableBeetArgsStruct( + [ + ["actions", beet24.array(configActionBeet)], + ["memo", beet24.coption(beet24.utf8String)] + ], + "ConfigTransactionCreateArgs" +); +var configTransactionCreateStruct = new beet25.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet25.uniformFixedSizeArray(beet25.u8, 8)], + ["args", configTransactionCreateArgsBeet] + ], + "ConfigTransactionCreateInstructionArgs" +); +var configTransactionCreateInstructionDiscriminator = [ + 155, + 236, + 87, + 228, + 137, + 75, + 81, + 39 +]; +function createConfigTransactionCreateInstruction(accounts, args, programId = new web314.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = configTransactionCreateStruct.serialize({ + instructionDiscriminator: configTransactionCreateInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.creator, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web314.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web314.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var configTransactionExecuteStruct = new beet26.BeetArgsStruct( + [["instructionDiscriminator", beet26.uniformFixedSizeArray(beet26.u8, 8)]], + "ConfigTransactionExecuteInstructionArgs" +); +var configTransactionExecuteInstructionDiscriminator = [ + 114, + 146, + 244, + 189, + 252, + 140, + 36, + 40 +]; +function createConfigTransactionExecuteInstruction(accounts, programId = new web315.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = configTransactionExecuteStruct.serialize({ + instructionDiscriminator: configTransactionExecuteInstructionDiscriminator + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.rentPayer ?? programId, + isWritable: accounts.rentPayer != null, + isSigner: accounts.rentPayer != null + }, + { + pubkey: accounts.systemProgram ?? programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web315.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigAddMemberArgsBeet = new beet27.FixableBeetArgsStruct( + [ + ["newMember", memberBeet], + ["memo", beet27.coption(beet27.utf8String)] + ], + "MultisigAddMemberArgs" +); +var multisigAddMemberStruct = new beet28.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet28.uniformFixedSizeArray(beet28.u8, 8)], + ["args", multisigAddMemberArgsBeet] + ], + "MultisigAddMemberInstructionArgs" +); +var multisigAddMemberInstructionDiscriminator = [ + 1, + 219, + 215, + 108, + 184, + 229, + 214, + 8 +]; +function createMultisigAddMemberInstruction(accounts, args, programId = new web316.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigAddMemberStruct.serialize({ + instructionDiscriminator: multisigAddMemberInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.configAuthority, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer ?? programId, + isWritable: accounts.rentPayer != null, + isSigner: accounts.rentPayer != null + }, + { + pubkey: accounts.systemProgram ?? programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web316.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigAddSpendingLimitArgsBeet = new beet29.FixableBeetArgsStruct( + [ + ["createKey", beetSolana13.publicKey], + ["vaultIndex", beet29.u8], + ["mint", beetSolana13.publicKey], + ["amount", beet29.u64], + ["period", periodBeet], + ["members", beet29.array(beetSolana13.publicKey)], + ["destinations", beet29.array(beetSolana13.publicKey)], + ["memo", beet29.coption(beet29.utf8String)] + ], + "MultisigAddSpendingLimitArgs" +); +var multisigAddSpendingLimitStruct = new beet30.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet30.uniformFixedSizeArray(beet30.u8, 8)], + ["args", multisigAddSpendingLimitArgsBeet] + ], + "MultisigAddSpendingLimitInstructionArgs" +); +var multisigAddSpendingLimitInstructionDiscriminator = [ + 11, + 242, + 159, + 42, + 86, + 197, + 89, + 115 +]; +function createMultisigAddSpendingLimitInstruction(accounts, args, programId = new web317.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigAddSpendingLimitStruct.serialize({ + instructionDiscriminator: multisigAddSpendingLimitInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.configAuthority, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.spendingLimit, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.rentPayer, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web317.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web317.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigChangeThresholdArgsBeet = new beet31.FixableBeetArgsStruct( + [ + ["newThreshold", beet31.u16], + ["memo", beet31.coption(beet31.utf8String)] + ], + "MultisigChangeThresholdArgs" +); +var multisigChangeThresholdStruct = new beet32.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet32.uniformFixedSizeArray(beet32.u8, 8)], + ["args", multisigChangeThresholdArgsBeet] + ], + "MultisigChangeThresholdInstructionArgs" +); +var multisigChangeThresholdInstructionDiscriminator = [ + 141, + 42, + 15, + 126, + 169, + 92, + 62, + 181 +]; +function createMultisigChangeThresholdInstruction(accounts, args, programId = new web318.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigChangeThresholdStruct.serialize({ + instructionDiscriminator: multisigChangeThresholdInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.configAuthority, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer ?? programId, + isWritable: accounts.rentPayer != null, + isSigner: accounts.rentPayer != null + }, + { + pubkey: accounts.systemProgram ?? programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web318.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigCreateArgsBeet = new beet33.FixableBeetArgsStruct( + [ + ["configAuthority", beet33.coption(beetSolana14.publicKey)], + ["threshold", beet33.u16], + ["members", beet33.array(memberBeet)], + ["timeLock", beet33.u32], + ["memo", beet33.coption(beet33.utf8String)] + ], + "MultisigCreateArgs" +); +var multisigCreateStruct = new beet34.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet34.uniformFixedSizeArray(beet34.u8, 8)], + ["args", multisigCreateArgsBeet] + ], + "MultisigCreateInstructionArgs" +); +var multisigCreateInstructionDiscriminator = [ + 122, + 77, + 80, + 159, + 84, + 88, + 90, + 197 +]; +function createMultisigCreateInstruction(accounts, args, programId = new web319.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigCreateStruct.serialize({ + instructionDiscriminator: multisigCreateInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.createKey, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.creator, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web319.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web319.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigCreateArgsV2Beet = new beet35.FixableBeetArgsStruct( + [ + ["configAuthority", beet35.coption(beetSolana15.publicKey)], + ["threshold", beet35.u16], + ["members", beet35.array(memberBeet)], + ["timeLock", beet35.u32], + ["rentCollector", beet35.coption(beetSolana15.publicKey)], + ["memo", beet35.coption(beet35.utf8String)] + ], + "MultisigCreateArgsV2" +); +var multisigCreateV2Struct = new beet36.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet36.uniformFixedSizeArray(beet36.u8, 8)], + ["args", multisigCreateArgsV2Beet] + ], + "MultisigCreateV2InstructionArgs" +); +var multisigCreateV2InstructionDiscriminator = [ + 50, + 221, + 199, + 93, + 40, + 245, + 139, + 233 +]; +function createMultisigCreateV2Instruction(accounts, args, programId = new web320.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigCreateV2Struct.serialize({ + instructionDiscriminator: multisigCreateV2InstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.programConfig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.treasury, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.createKey, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.creator, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web320.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web320.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigRemoveMemberArgsBeet = new beet37.FixableBeetArgsStruct( + [ + ["oldMember", beetSolana16.publicKey], + ["memo", beet37.coption(beet37.utf8String)] + ], + "MultisigRemoveMemberArgs" +); +var multisigRemoveMemberStruct = new beet38.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet38.uniformFixedSizeArray(beet38.u8, 8)], + ["args", multisigRemoveMemberArgsBeet] + ], + "MultisigRemoveMemberInstructionArgs" +); +var multisigRemoveMemberInstructionDiscriminator = [ + 217, + 117, + 177, + 210, + 182, + 145, + 218, + 72 +]; +function createMultisigRemoveMemberInstruction(accounts, args, programId = new web321.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigRemoveMemberStruct.serialize({ + instructionDiscriminator: multisigRemoveMemberInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.configAuthority, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer ?? programId, + isWritable: accounts.rentPayer != null, + isSigner: accounts.rentPayer != null + }, + { + pubkey: accounts.systemProgram ?? programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web321.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigRemoveSpendingLimitArgsBeet = new beet39.FixableBeetArgsStruct( + [["memo", beet39.coption(beet39.utf8String)]], + "MultisigRemoveSpendingLimitArgs" +); +var multisigRemoveSpendingLimitStruct = new beet40.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet40.uniformFixedSizeArray(beet40.u8, 8)], + ["args", multisigRemoveSpendingLimitArgsBeet] + ], + "MultisigRemoveSpendingLimitInstructionArgs" +); +var multisigRemoveSpendingLimitInstructionDiscriminator = [ + 228, + 198, + 136, + 111, + 123, + 4, + 178, + 113 +]; +function createMultisigRemoveSpendingLimitInstruction(accounts, args, programId = new web322.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigRemoveSpendingLimitStruct.serialize({ + instructionDiscriminator: multisigRemoveSpendingLimitInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.configAuthority, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.spendingLimit, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.rentCollector, + isWritable: true, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web322.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigSetConfigAuthorityArgsBeet = new beet41.FixableBeetArgsStruct( + [ + ["configAuthority", beetSolana17.publicKey], + ["memo", beet41.coption(beet41.utf8String)] + ], + "MultisigSetConfigAuthorityArgs" +); +var multisigSetConfigAuthorityStruct = new beet42.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet42.uniformFixedSizeArray(beet42.u8, 8)], + ["args", multisigSetConfigAuthorityArgsBeet] + ], + "MultisigSetConfigAuthorityInstructionArgs" +); +var multisigSetConfigAuthorityInstructionDiscriminator = [ + 143, + 93, + 199, + 143, + 92, + 169, + 193, + 232 +]; +function createMultisigSetConfigAuthorityInstruction(accounts, args, programId = new web323.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigSetConfigAuthorityStruct.serialize({ + instructionDiscriminator: multisigSetConfigAuthorityInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.configAuthority, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer ?? programId, + isWritable: accounts.rentPayer != null, + isSigner: accounts.rentPayer != null + }, + { + pubkey: accounts.systemProgram ?? programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web323.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigSetRentCollectorArgsBeet = new beet43.FixableBeetArgsStruct( + [ + ["rentCollector", beet43.coption(beetSolana18.publicKey)], + ["memo", beet43.coption(beet43.utf8String)] + ], + "MultisigSetRentCollectorArgs" +); +var multisigSetRentCollectorStruct = new beet44.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet44.uniformFixedSizeArray(beet44.u8, 8)], + ["args", multisigSetRentCollectorArgsBeet] + ], + "MultisigSetRentCollectorInstructionArgs" +); +var multisigSetRentCollectorInstructionDiscriminator = [ + 48, + 204, + 65, + 57, + 210, + 70, + 156, + 74 +]; +function createMultisigSetRentCollectorInstruction(accounts, args, programId = new web324.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigSetRentCollectorStruct.serialize({ + instructionDiscriminator: multisigSetRentCollectorInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.configAuthority, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer ?? programId, + isWritable: accounts.rentPayer != null, + isSigner: accounts.rentPayer != null + }, + { + pubkey: accounts.systemProgram ?? programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web324.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var multisigSetTimeLockArgsBeet = new beet45.FixableBeetArgsStruct( + [ + ["timeLock", beet45.u32], + ["memo", beet45.coption(beet45.utf8String)] + ], + "MultisigSetTimeLockArgs" +); +var multisigSetTimeLockStruct = new beet46.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet46.uniformFixedSizeArray(beet46.u8, 8)], + ["args", multisigSetTimeLockArgsBeet] + ], + "MultisigSetTimeLockInstructionArgs" +); +var multisigSetTimeLockInstructionDiscriminator = [ + 148, + 154, + 121, + 77, + 212, + 254, + 155, + 72 +]; +function createMultisigSetTimeLockInstruction(accounts, args, programId = new web325.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = multisigSetTimeLockStruct.serialize({ + instructionDiscriminator: multisigSetTimeLockInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.configAuthority, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer ?? programId, + isWritable: accounts.rentPayer != null, + isSigner: accounts.rentPayer != null + }, + { + pubkey: accounts.systemProgram ?? programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web325.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var programConfigInitArgsBeet = new beet47.BeetArgsStruct( + [ + ["authority", beetSolana19.publicKey], + ["multisigCreationFee", beet47.u64], + ["treasury", beetSolana19.publicKey] + ], + "ProgramConfigInitArgs" +); +var programConfigInitStruct = new beet48.BeetArgsStruct( + [ + ["instructionDiscriminator", beet48.uniformFixedSizeArray(beet48.u8, 8)], + ["args", programConfigInitArgsBeet] + ], + "ProgramConfigInitInstructionArgs" +); +var programConfigInitInstructionDiscriminator = [ + 184, + 188, + 198, + 195, + 205, + 124, + 117, + 216 +]; +function createProgramConfigInitInstruction(accounts, args, programId = new web326.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = programConfigInitStruct.serialize({ + instructionDiscriminator: programConfigInitInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.programConfig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.initializer, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web326.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web326.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var programConfigSetAuthorityArgsBeet = new beet49.BeetArgsStruct( + [["newAuthority", beetSolana20.publicKey]], + "ProgramConfigSetAuthorityArgs" +); +var programConfigSetAuthorityStruct = new beet50.BeetArgsStruct( + [ + ["instructionDiscriminator", beet50.uniformFixedSizeArray(beet50.u8, 8)], + ["args", programConfigSetAuthorityArgsBeet] + ], + "ProgramConfigSetAuthorityInstructionArgs" +); +var programConfigSetAuthorityInstructionDiscriminator = [ + 238, + 242, + 36, + 181, + 32, + 143, + 216, + 75 +]; +function createProgramConfigSetAuthorityInstruction(accounts, args, programId = new web327.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = programConfigSetAuthorityStruct.serialize({ + instructionDiscriminator: programConfigSetAuthorityInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.programConfig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.authority, + isWritable: false, + isSigner: true + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web327.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var programConfigSetMultisigCreationFeeArgsBeet = new beet51.BeetArgsStruct( + [["newMultisigCreationFee", beet51.u64]], + "ProgramConfigSetMultisigCreationFeeArgs" +); +var programConfigSetMultisigCreationFeeStruct = new beet52.BeetArgsStruct( + [ + ["instructionDiscriminator", beet52.uniformFixedSizeArray(beet52.u8, 8)], + ["args", programConfigSetMultisigCreationFeeArgsBeet] + ], + "ProgramConfigSetMultisigCreationFeeInstructionArgs" +); +var programConfigSetMultisigCreationFeeInstructionDiscriminator = [ + 101, + 160, + 249, + 63, + 154, + 215, + 153, + 13 +]; +function createProgramConfigSetMultisigCreationFeeInstruction(accounts, args, programId = new web328.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = programConfigSetMultisigCreationFeeStruct.serialize({ + instructionDiscriminator: programConfigSetMultisigCreationFeeInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.programConfig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.authority, + isWritable: false, + isSigner: true + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web328.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var programConfigSetTreasuryArgsBeet = new beet53.BeetArgsStruct( + [["newTreasury", beetSolana21.publicKey]], + "ProgramConfigSetTreasuryArgs" +); +var programConfigSetTreasuryStruct = new beet54.BeetArgsStruct( + [ + ["instructionDiscriminator", beet54.uniformFixedSizeArray(beet54.u8, 8)], + ["args", programConfigSetTreasuryArgsBeet] + ], + "ProgramConfigSetTreasuryInstructionArgs" +); +var programConfigSetTreasuryInstructionDiscriminator = [ + 111, + 46, + 243, + 117, + 144, + 188, + 162, + 107 +]; +function createProgramConfigSetTreasuryInstruction(accounts, args, programId = new web329.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = programConfigSetTreasuryStruct.serialize({ + instructionDiscriminator: programConfigSetTreasuryInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.programConfig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.authority, + isWritable: false, + isSigner: true + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web329.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var proposalActivateStruct = new beet55.BeetArgsStruct( + [["instructionDiscriminator", beet55.uniformFixedSizeArray(beet55.u8, 8)]], + "ProposalActivateInstructionArgs" +); +var proposalActivateInstructionDiscriminator = [ + 11, + 34, + 92, + 248, + 154, + 27, + 51, + 106 +]; +function createProposalActivateInstruction(accounts, programId = new web330.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = proposalActivateStruct.serialize({ + instructionDiscriminator: proposalActivateInstructionDiscriminator + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web330.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var proposalVoteArgsBeet = new beet56.FixableBeetArgsStruct( + [["memo", beet56.coption(beet56.utf8String)]], + "ProposalVoteArgs" +); +var proposalApproveStruct = new beet57.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet57.uniformFixedSizeArray(beet57.u8, 8)], + ["args", proposalVoteArgsBeet] + ], + "ProposalApproveInstructionArgs" +); +var proposalApproveInstructionDiscriminator = [ + 144, + 37, + 164, + 136, + 188, + 216, + 42, + 248 +]; +function createProposalApproveInstruction(accounts, args, programId = new web331.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = proposalApproveStruct.serialize({ + instructionDiscriminator: proposalApproveInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web331.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var proposalCancelStruct = new beet58.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet58.uniformFixedSizeArray(beet58.u8, 8)], + ["args", proposalVoteArgsBeet] + ], + "ProposalCancelInstructionArgs" +); +var proposalCancelInstructionDiscriminator = [ + 27, + 42, + 127, + 237, + 38, + 163, + 84, + 203 +]; +function createProposalCancelInstruction(accounts, args, programId = new web332.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = proposalCancelStruct.serialize({ + instructionDiscriminator: proposalCancelInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web332.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var proposalCreateArgsBeet = new beet59.BeetArgsStruct( + [ + ["transactionIndex", beet59.u64], + ["draft", beet59.bool] + ], + "ProposalCreateArgs" +); +var proposalCreateStruct = new beet60.BeetArgsStruct( + [ + ["instructionDiscriminator", beet60.uniformFixedSizeArray(beet60.u8, 8)], + ["args", proposalCreateArgsBeet] + ], + "ProposalCreateInstructionArgs" +); +var proposalCreateInstructionDiscriminator = [ + 220, + 60, + 73, + 224, + 30, + 108, + 79, + 159 +]; +function createProposalCreateInstruction(accounts, args, programId = new web333.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = proposalCreateStruct.serialize({ + instructionDiscriminator: proposalCreateInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.creator, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web333.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web333.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var proposalRejectStruct = new beet61.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet61.uniformFixedSizeArray(beet61.u8, 8)], + ["args", proposalVoteArgsBeet] + ], + "ProposalRejectInstructionArgs" +); +var proposalRejectInstructionDiscriminator = [ + 243, + 62, + 134, + 156, + 230, + 106, + 246, + 135 +]; +function createProposalRejectInstruction(accounts, args, programId = new web334.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = proposalRejectStruct.serialize({ + instructionDiscriminator: proposalRejectInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web334.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var spendingLimitUseArgsBeet = new beet62.FixableBeetArgsStruct( + [ + ["amount", beet62.u64], + ["decimals", beet62.u8], + ["memo", beet62.coption(beet62.utf8String)] + ], + "SpendingLimitUseArgs" +); +var spendingLimitUseStruct = new beet63.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet63.uniformFixedSizeArray(beet63.u8, 8)], + ["args", spendingLimitUseArgsBeet] + ], + "SpendingLimitUseInstructionArgs" +); +var spendingLimitUseInstructionDiscriminator = [ + 16, + 57, + 130, + 127, + 193, + 20, + 155, + 134 +]; +function createSpendingLimitUseInstruction(accounts, args, programId = new web335.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = spendingLimitUseStruct.serialize({ + instructionDiscriminator: spendingLimitUseInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.spendingLimit, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.vault, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.destination, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.systemProgram ?? programId, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.mint ?? programId, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.vaultTokenAccount ?? programId, + isWritable: accounts.vaultTokenAccount != null, + isSigner: false + }, + { + pubkey: accounts.destinationTokenAccount ?? programId, + isWritable: accounts.destinationTokenAccount != null, + isSigner: false + }, + { + pubkey: accounts.tokenProgram ?? programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web335.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var vaultBatchTransactionAccountCloseStruct = new beet64.BeetArgsStruct( + [["instructionDiscriminator", beet64.uniformFixedSizeArray(beet64.u8, 8)]], + "VaultBatchTransactionAccountCloseInstructionArgs" +); +var vaultBatchTransactionAccountCloseInstructionDiscriminator = [ + 134, + 18, + 19, + 106, + 129, + 68, + 97, + 247 +]; +function createVaultBatchTransactionAccountCloseInstruction(accounts, programId = new web336.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = vaultBatchTransactionAccountCloseStruct.serialize({ + instructionDiscriminator: vaultBatchTransactionAccountCloseInstructionDiscriminator + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.proposal, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.batch, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.rentCollector, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.systemProgram ?? web336.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web336.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var vaultTransactionAccountsCloseStruct = new beet65.BeetArgsStruct( + [["instructionDiscriminator", beet65.uniformFixedSizeArray(beet65.u8, 8)]], + "VaultTransactionAccountsCloseInstructionArgs" +); +var vaultTransactionAccountsCloseInstructionDiscriminator = [ + 196, + 71, + 187, + 176, + 2, + 35, + 170, + 165 +]; +function createVaultTransactionAccountsCloseInstruction(accounts, programId = new web337.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = vaultTransactionAccountsCloseStruct.serialize({ + instructionDiscriminator: vaultTransactionAccountsCloseInstructionDiscriminator + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.rentCollector, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.systemProgram ?? web337.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web337.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var vaultTransactionCreateArgsBeet = new beet66.FixableBeetArgsStruct( + [ + ["vaultIndex", beet66.u8], + ["ephemeralSigners", beet66.u8], + ["transactionMessage", beet66.bytes], + ["memo", beet66.coption(beet66.utf8String)] + ], + "VaultTransactionCreateArgs" +); +var vaultTransactionCreateStruct = new beet67.FixableBeetArgsStruct( + [ + ["instructionDiscriminator", beet67.uniformFixedSizeArray(beet67.u8, 8)], + ["args", vaultTransactionCreateArgsBeet] + ], + "VaultTransactionCreateInstructionArgs" +); +var vaultTransactionCreateInstructionDiscriminator = [ + 48, + 250, + 78, + 168, + 208, + 226, + 218, + 211 +]; +function createVaultTransactionCreateInstruction(accounts, args, programId = new web338.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = vaultTransactionCreateStruct.serialize({ + instructionDiscriminator: vaultTransactionCreateInstructionDiscriminator, + ...args + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.creator, + isWritable: false, + isSigner: true + }, + { + pubkey: accounts.rentPayer, + isWritable: true, + isSigner: true + }, + { + pubkey: accounts.systemProgram ?? web338.SystemProgram.programId, + isWritable: false, + isSigner: false + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web338.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var vaultTransactionExecuteStruct = new beet68.BeetArgsStruct( + [["instructionDiscriminator", beet68.uniformFixedSizeArray(beet68.u8, 8)]], + "VaultTransactionExecuteInstructionArgs" +); +var vaultTransactionExecuteInstructionDiscriminator = [ + 194, + 8, + 161, + 87, + 153, + 164, + 25, + 171 +]; +function createVaultTransactionExecuteInstruction(accounts, programId = new web339.PublicKey("SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf")) { + const [data] = vaultTransactionExecuteStruct.serialize({ + instructionDiscriminator: vaultTransactionExecuteInstructionDiscriminator + }); + const keys = [ + { + pubkey: accounts.multisig, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.proposal, + isWritable: true, + isSigner: false + }, + { + pubkey: accounts.transaction, + isWritable: false, + isSigner: false + }, + { + pubkey: accounts.member, + isWritable: false, + isSigner: true + } + ]; + if (accounts.anchorRemainingAccounts != null) { + for (const acc of accounts.anchorRemainingAccounts) { + keys.push(acc); + } + } + const ix = new web339.TransactionInstruction({ + programId, + keys, + data + }); + return ix; +} +var Vote = /* @__PURE__ */ ((Vote2) => { + Vote2[Vote2["Approve"] = 0] = "Approve"; + Vote2[Vote2["Reject"] = 1] = "Reject"; + Vote2[Vote2["Cancel"] = 2] = "Cancel"; + return Vote2; +})(Vote || {}); +var voteBeet = beet69.fixedScalarEnum(Vote); +var PROGRAM_ADDRESS = "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf"; +var PROGRAM_ID = new import_web34.PublicKey(PROGRAM_ADDRESS); +var accounts_exports = {}; +__export2(accounts_exports, { + Batch: () => Batch, + ConfigTransaction: () => ConfigTransaction, + Multisig: () => Multisig, + ProgramConfig: () => ProgramConfig, + Proposal: () => Proposal, + SpendingLimit: () => SpendingLimit, + VaultBatchTransaction: () => VaultBatchTransaction, + VaultTransaction: () => VaultTransaction, + accountProviders: () => accountProviders, + batchBeet: () => batchBeet, + batchDiscriminator: () => batchDiscriminator, + configTransactionBeet: () => configTransactionBeet, + configTransactionDiscriminator: () => configTransactionDiscriminator, + multisigBeet: () => multisigBeet, + multisigDiscriminator: () => multisigDiscriminator, + programConfigBeet: () => programConfigBeet, + programConfigDiscriminator: () => programConfigDiscriminator, + proposalBeet: () => proposalBeet, + proposalDiscriminator: () => proposalDiscriminator, + spendingLimitBeet: () => spendingLimitBeet, + spendingLimitDiscriminator: () => spendingLimitDiscriminator, + vaultBatchTransactionBeet: () => vaultBatchTransactionBeet, + vaultBatchTransactionDiscriminator: () => vaultBatchTransactionDiscriminator, + vaultTransactionBeet: () => vaultTransactionBeet, + vaultTransactionDiscriminator: () => vaultTransactionDiscriminator +}); +var errors_exports = {}; +__export2(errors_exports, { + isErrorWithLogs: () => isErrorWithLogs, + translateAndThrowAnchorError: () => translateAndThrowAnchorError +}); +var cusper = (0, import_cusper.initCusper)(errorFromCode); +function translateAndThrowAnchorError(err) { + if (!isErrorWithLogs(err)) { + throw err; + } + const translatedError = cusper.errorFromProgramLogs(err.logs) ?? err; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(translatedError, translateAndThrowAnchorError); + } + translatedError.logs = err.logs; + throw translatedError; +} +var isErrorWithLogs = (err) => { + return Boolean( + err && typeof err === "object" && "logs" in err && Array.isArray(err.logs) + ); +}; +var utils_exports = {}; +__export2(utils_exports, { + accountsForTransactionExecute: () => accountsForTransactionExecute, + getAvailableMemoSize: () => getAvailableMemoSize, + isSignerIndex: () => isSignerIndex, + isStaticWritableIndex: () => isStaticWritableIndex, + toBigInt: () => toBigInt, + toU32Bytes: () => toU32Bytes, + toU64Bytes: () => toU64Bytes, + toU8Bytes: () => toU8Bytes, + toUtfBytes: () => toUtfBytes, + transactionMessageToMultisigTransactionMessageBytes: () => transactionMessageToMultisigTransactionMessageBytes +}); +var types_exports = {}; +__export2(types_exports, { + Period: () => Period, + Permission: () => Permission, + Permissions: () => Permissions2, + compiledMsInstructionBeet: () => compiledMsInstructionBeet, + fixedSizeSmallArray: () => fixedSizeSmallArray, + isConfigActionAddMember: () => isConfigActionAddMember, + isConfigActionAddSpendingLimit: () => isConfigActionAddSpendingLimit, + isConfigActionChangeThreshold: () => isConfigActionChangeThreshold, + isConfigActionRemoveMember: () => isConfigActionRemoveMember, + isConfigActionRemoveSpendingLimit: () => isConfigActionRemoveSpendingLimit, + isConfigActionSetTimeLock: () => isConfigActionSetTimeLock, + isProposalStatusActive: () => isProposalStatusActive, + isProposalStatusApproved: () => isProposalStatusApproved, + isProposalStatusCancelled: () => isProposalStatusCancelled, + isProposalStatusExecuted: () => isProposalStatusExecuted, + isProposalStatusRejected: () => isProposalStatusRejected, + messageAddressTableLookupBeet: () => messageAddressTableLookupBeet, + smallArray: () => smallArray, + transactionMessageBeet: () => transactionMessageBeet +}); +var Permission = { + Initiate: 1, + Vote: 2, + Execute: 4 +}; +var Permissions2 = class _Permissions { + constructor(mask) { + this.mask = mask; + } + static fromPermissions(permissions) { + return new _Permissions( + permissions.reduce((mask, permission) => mask | permission, 0) + ); + } + static all() { + return new _Permissions( + Object.values(Permission).reduce( + (mask, permission) => mask | permission, + 0 + ) + ); + } + static has(permissions, permission) { + return (permissions.mask & permission) === permission; + } +}; +function fixedSizeSmallArray(lengthBeet, elements, elementsByteSize) { + const len = elements.length; + const firstElement = len === 0 ? "" : elements[0].description; + return { + write: function(buf, offset, value) { + (0, import_invariant.default)( + value.length === len, + `array length ${value.length} should match len ${len}` + ); + lengthBeet.write(buf, offset, len); + let cursor = offset + lengthBeet.byteSize; + for (let i = 0; i < len; i++) { + const element = elements[i]; + element.write(buf, cursor, value[i]); + cursor += element.byteSize; + } + }, + read: function(buf, offset) { + const size = lengthBeet.read(buf, offset); + (0, import_invariant.default)(size === len, "invalid byte size"); + let cursor = offset + lengthBeet.byteSize; + const arr = new Array(len); + for (let i = 0; i < len; i++) { + const element = elements[i]; + arr[i] = element.read(buf, cursor); + cursor += element.byteSize; + } + return arr; + }, + byteSize: lengthBeet.byteSize + elementsByteSize, + length: len, + description: `Array<${firstElement}>(${len})[ ${lengthBeet.byteSize} + ${elementsByteSize} ]` + }; +} +function smallArray(lengthBeet, element) { + return { + toFixedFromData(buf, offset) { + const len = lengthBeet.read(buf, offset); + const cursorStart = offset + lengthBeet.byteSize; + let cursor = cursorStart; + const fixedElements = new Array(len); + for (let i = 0; i < len; i++) { + const fixedElement = beet70.fixBeetFromData( + element, + buf, + cursor + ); + fixedElements[i] = fixedElement; + cursor += fixedElement.byteSize; + } + return fixedSizeSmallArray( + lengthBeet, + fixedElements, + cursor - cursorStart + ); + }, + toFixedFromValue(vals) { + (0, import_invariant.default)(Array.isArray(vals), `${vals} should be an array`); + let elementsSize = 0; + const fixedElements = new Array(vals.length); + for (let i = 0; i < vals.length; i++) { + const fixedElement = beet70.fixBeetFromValue(element, vals[i]); + fixedElements[i] = fixedElement; + elementsSize += fixedElement.byteSize; + } + return fixedSizeSmallArray(lengthBeet, fixedElements, elementsSize); + }, + description: `smallArray` + }; +} +var compiledMsInstructionBeet = new beet70.FixableBeetArgsStruct( + [ + ["programIdIndex", beet70.u8], + ["accountIndexes", smallArray(beet70.u8, beet70.u8)], + ["data", smallArray(beet70.u16, beet70.u8)] + ], + "CompiledMsInstruction" +); +var messageAddressTableLookupBeet = new beet70.FixableBeetArgsStruct( + [ + ["accountKey", beetSolana22.publicKey], + ["writableIndexes", smallArray(beet70.u8, beet70.u8)], + ["readonlyIndexes", smallArray(beet70.u8, beet70.u8)] + ], + "MessageAddressTableLookup" +); +var transactionMessageBeet = new beet70.FixableBeetArgsStruct( + [ + ["numSigners", beet70.u8], + ["numWritableSigners", beet70.u8], + ["numWritableNonSigners", beet70.u8], + ["accountKeys", smallArray(beet70.u8, beetSolana22.publicKey)], + ["instructions", smallArray(beet70.u8, compiledMsInstructionBeet)], + [ + "addressTableLookups", + smallArray(beet70.u8, messageAddressTableLookupBeet) + ] + ], + "TransactionMessage" +); +var CompiledKeys = class _CompiledKeys { + constructor(payer, keyMetaMap) { + this.payer = payer; + this.keyMetaMap = keyMetaMap; + } + /** + * The only difference between this and the original is that we don't mark the instruction programIds as invoked. + * It makes sense to do because the instructions will be called via CPI, so the programIds can come from Address Lookup Tables. + * This allows to compress the message size and avoid hitting the tx size limit during vault_transaction_create instruction calls. + */ + static compile(instructions, payer) { + const keyMetaMap = /* @__PURE__ */ new Map(); + const getOrInsertDefault = (pubkey) => { + const address = pubkey.toBase58(); + let keyMeta = keyMetaMap.get(address); + if (keyMeta === void 0) { + keyMeta = { + isSigner: false, + isWritable: false, + isInvoked: false + }; + keyMetaMap.set(address, keyMeta); + } + return keyMeta; + }; + const payerKeyMeta = getOrInsertDefault(payer); + payerKeyMeta.isSigner = true; + payerKeyMeta.isWritable = true; + for (const ix of instructions) { + getOrInsertDefault(ix.programId).isInvoked = false; + for (const accountMeta of ix.keys) { + const keyMeta = getOrInsertDefault(accountMeta.pubkey); + keyMeta.isSigner || (keyMeta.isSigner = accountMeta.isSigner); + keyMeta.isWritable || (keyMeta.isWritable = accountMeta.isWritable); + } + } + return new _CompiledKeys(payer, keyMetaMap); + } + getMessageComponents() { + const mapEntries = [...this.keyMetaMap.entries()]; + (0, import_assert.default)(mapEntries.length <= 256, "Max static account keys length exceeded"); + const writableSigners = mapEntries.filter( + ([, meta]) => meta.isSigner && meta.isWritable + ); + const readonlySigners = mapEntries.filter( + ([, meta]) => meta.isSigner && !meta.isWritable + ); + const writableNonSigners = mapEntries.filter( + ([, meta]) => !meta.isSigner && meta.isWritable + ); + const readonlyNonSigners = mapEntries.filter( + ([, meta]) => !meta.isSigner && !meta.isWritable + ); + const header = { + numRequiredSignatures: writableSigners.length + readonlySigners.length, + numReadonlySignedAccounts: readonlySigners.length, + numReadonlyUnsignedAccounts: readonlyNonSigners.length + }; + { + (0, import_assert.default)( + writableSigners.length > 0, + "Expected at least one writable signer key" + ); + const [payerAddress] = writableSigners[0]; + (0, import_assert.default)( + payerAddress === this.payer.toBase58(), + "Expected first writable signer key to be the fee payer" + ); + } + const staticAccountKeys = [ + ...writableSigners.map(([address]) => new import_web37.PublicKey(address)), + ...readonlySigners.map(([address]) => new import_web37.PublicKey(address)), + ...writableNonSigners.map(([address]) => new import_web37.PublicKey(address)), + ...readonlyNonSigners.map(([address]) => new import_web37.PublicKey(address)) + ]; + return [header, staticAccountKeys]; + } + extractTableLookup(lookupTable) { + const [writableIndexes, drainedWritableKeys] = this.drainKeysFoundInLookupTable( + lookupTable.state.addresses, + (keyMeta) => !keyMeta.isSigner && !keyMeta.isInvoked && keyMeta.isWritable + ); + const [readonlyIndexes, drainedReadonlyKeys] = this.drainKeysFoundInLookupTable( + lookupTable.state.addresses, + (keyMeta) => !keyMeta.isSigner && !keyMeta.isInvoked && !keyMeta.isWritable + ); + if (writableIndexes.length === 0 && readonlyIndexes.length === 0) { + return; + } + return [ + { + accountKey: lookupTable.key, + writableIndexes, + readonlyIndexes + }, + { + writable: drainedWritableKeys, + readonly: drainedReadonlyKeys + } + ]; + } + /** @internal */ + drainKeysFoundInLookupTable(lookupTableEntries, keyMetaFilter) { + const lookupTableIndexes = new Array(); + const drainedKeys = new Array(); + for (const [address, keyMeta] of this.keyMetaMap.entries()) { + if (keyMetaFilter(keyMeta)) { + const key = new import_web37.PublicKey(address); + const lookupTableIndex = lookupTableEntries.findIndex( + (entry) => entry.equals(key) + ); + if (lookupTableIndex >= 0) { + (0, import_assert.default)(lookupTableIndex < 256, "Max lookup table index exceeded"); + lookupTableIndexes.push(lookupTableIndex); + drainedKeys.push(key); + this.keyMetaMap.delete(address); + } + } + } + return [lookupTableIndexes, drainedKeys]; + } +}; +function compileToWrappedMessageV0({ + payerKey, + recentBlockhash, + instructions, + addressLookupTableAccounts +}) { + const compiledKeys = CompiledKeys.compile(instructions, payerKey); + const addressTableLookups = new Array(); + const accountKeysFromLookups = { + writable: [], + readonly: [] + }; + const lookupTableAccounts = addressLookupTableAccounts || []; + for (const lookupTable of lookupTableAccounts) { + const extractResult = compiledKeys.extractTableLookup(lookupTable); + if (extractResult !== void 0) { + const [addressTableLookup, { writable, readonly }] = extractResult; + addressTableLookups.push(addressTableLookup); + accountKeysFromLookups.writable.push(...writable); + accountKeysFromLookups.readonly.push(...readonly); + } + } + const [header, staticAccountKeys] = compiledKeys.getMessageComponents(); + const accountKeys = new import_web36.MessageAccountKeys( + staticAccountKeys, + accountKeysFromLookups + ); + const compiledInstructions = accountKeys.compileInstructions(instructions); + return new import_web36.MessageV0({ + header, + staticAccountKeys, + recentBlockhash, + compiledInstructions, + addressTableLookups + }); +} +function toUtfBytes(str) { + return new TextEncoder().encode(str); +} +function toU8Bytes(num) { + const bytes7 = import_buffer.Buffer.alloc(1); + import_beet.u8.write(bytes7, 0, num); + return bytes7; +} +function toU32Bytes(num) { + const bytes7 = import_buffer.Buffer.alloc(4); + import_beet.u32.write(bytes7, 0, num); + return bytes7; +} +function toU64Bytes(num) { + const bytes7 = import_buffer.Buffer.alloc(8); + import_beet.u64.write(bytes7, 0, num); + return bytes7; +} +function toBigInt(number) { + return BigInt(number.toString()); +} +var MAX_TX_SIZE_BYTES = 1232; +var STRING_LEN_SIZE = 4; +function getAvailableMemoSize(txWithoutMemo) { + const txSize = txWithoutMemo.serialize().length; + return MAX_TX_SIZE_BYTES - txSize - STRING_LEN_SIZE - // Sometimes long memo can trigger switching from 1 to 2 bytes length encoding in Compact-u16, + // so we reserve 1 extra byte to make sure. + 1; +} +function isStaticWritableIndex(message, index) { + const numAccountKeys = message.accountKeys.length; + const { numSigners, numWritableSigners, numWritableNonSigners } = message; + if (index >= numAccountKeys) { + return false; + } + if (index < numWritableSigners) { + return true; + } + if (index >= numSigners) { + const indexIntoNonSigners = index - numSigners; + return indexIntoNonSigners < numWritableNonSigners; + } + return false; +} +function isSignerIndex(message, index) { + return index < message.numSigners; +} +function transactionMessageToMultisigTransactionMessageBytes({ + message, + addressLookupTableAccounts, + vaultPda +}) { + const compiledMessage = compileToWrappedMessageV0({ + payerKey: message.payerKey, + recentBlockhash: message.recentBlockhash, + instructions: message.instructions, + addressLookupTableAccounts + }); + const [transactionMessageBytes] = transactionMessageBeet.serialize({ + numSigners: compiledMessage.header.numRequiredSignatures, + numWritableSigners: compiledMessage.header.numRequiredSignatures - compiledMessage.header.numReadonlySignedAccounts, + numWritableNonSigners: compiledMessage.staticAccountKeys.length - compiledMessage.header.numRequiredSignatures - compiledMessage.header.numReadonlyUnsignedAccounts, + accountKeys: compiledMessage.staticAccountKeys, + instructions: compiledMessage.compiledInstructions.map((ix) => { + return { + programIdIndex: ix.programIdIndex, + accountIndexes: ix.accountKeyIndexes, + data: Array.from(ix.data) + }; + }), + addressTableLookups: compiledMessage.addressTableLookups + }); + return transactionMessageBytes; +} +async function accountsForTransactionExecute({ + connection, + transactionPda, + vaultPda, + message, + ephemeralSignerBumps, + programId +}) { + const ephemeralSignerPdas = ephemeralSignerBumps.map( + (_, additionalSignerIndex) => { + return getEphemeralSignerPda({ + transactionPda, + ephemeralSignerIndex: additionalSignerIndex, + programId + })[0]; + } + ); + const addressLookupTableKeys = message.addressTableLookups.map( + ({ accountKey }) => accountKey + ); + const addressLookupTableAccounts = new Map( + await Promise.all( + addressLookupTableKeys.map(async (key) => { + const { value } = await connection.getAddressLookupTable(key); + if (!value) { + throw new Error( + `Address lookup table account ${key.toBase58()} not found` + ); + } + return [key.toBase58(), value]; + }) + ) + ); + const accountMetas = []; + accountMetas.push( + ...addressLookupTableKeys.map((key) => { + return { pubkey: key, isSigner: false, isWritable: false }; + }) + ); + for (const [accountIndex, accountKey] of message.accountKeys.entries()) { + accountMetas.push({ + pubkey: accountKey, + isWritable: isStaticWritableIndex(message, accountIndex), + // NOTE: vaultPda and ephemeralSignerPdas cannot be marked as signers, + // because they are PDAs and hence won't have their signatures on the transaction. + isSigner: isSignerIndex(message, accountIndex) && !accountKey.equals(vaultPda) && !ephemeralSignerPdas.find((k) => accountKey.equals(k)) + }); + } + for (const lookup of message.addressTableLookups) { + const lookupTableAccount = addressLookupTableAccounts.get( + lookup.accountKey.toBase58() + ); + (0, import_invariant2.default)( + lookupTableAccount, + `Address lookup table account ${lookup.accountKey.toBase58()} not found` + ); + for (const accountIndex of lookup.writableIndexes) { + const pubkey = lookupTableAccount.state.addresses[accountIndex]; + (0, import_invariant2.default)( + pubkey, + `Address lookup table account ${lookup.accountKey.toBase58()} does not contain address at index ${accountIndex}` + ); + accountMetas.push({ + pubkey, + isWritable: true, + // Accounts in address lookup tables can not be signers. + isSigner: false + }); + } + for (const accountIndex of lookup.readonlyIndexes) { + const pubkey = lookupTableAccount.state.addresses[accountIndex]; + (0, import_invariant2.default)( + pubkey, + `Address lookup table account ${lookup.accountKey.toBase58()} does not contain address at index ${accountIndex}` + ); + accountMetas.push({ + pubkey, + isWritable: false, + // Accounts in address lookup tables can not be signers. + isSigner: false + }); + } + } + return { + accountMetas, + lookupTableAccounts: [...addressLookupTableAccounts.values()] + }; +} +var SEED_PREFIX = toUtfBytes("multisig"); +var SEED_PROGRAM_CONFIG = toUtfBytes("program_config"); +var SEED_MULTISIG = toUtfBytes("multisig"); +var SEED_VAULT = toUtfBytes("vault"); +var SEED_TRANSACTION = toUtfBytes("transaction"); +var SEED_PROPOSAL = toUtfBytes("proposal"); +var SEED_BATCH_TRANSACTION = toUtfBytes("batch_transaction"); +var SEED_EPHEMERAL_SIGNER = toUtfBytes("ephemeral_signer"); +var SEED_SPENDING_LIMIT = toUtfBytes("spending_limit"); +function getProgramConfigPda({ + programId = PROGRAM_ID +}) { + return import_web35.PublicKey.findProgramAddressSync( + [SEED_PREFIX, SEED_PROGRAM_CONFIG], + programId + ); +} +function getVaultPda({ + multisigPda, + /** Authority index. */ + index, + programId = PROGRAM_ID +}) { + (0, import_invariant3.default)(index >= 0 && index < 256, "Invalid vault index"); + return import_web35.PublicKey.findProgramAddressSync( + [SEED_PREFIX, multisigPda.toBytes(), SEED_VAULT, toU8Bytes(index)], + programId + ); +} +function getEphemeralSignerPda({ + transactionPda, + ephemeralSignerIndex, + programId = PROGRAM_ID +}) { + return import_web35.PublicKey.findProgramAddressSync( + [ + SEED_PREFIX, + transactionPda.toBytes(), + SEED_EPHEMERAL_SIGNER, + toU8Bytes(ephemeralSignerIndex) + ], + programId + ); +} +function getTransactionPda({ + multisigPda, + index, + programId = PROGRAM_ID +}) { + return import_web35.PublicKey.findProgramAddressSync( + [SEED_PREFIX, multisigPda.toBytes(), SEED_TRANSACTION, toU64Bytes(index)], + programId + ); +} +function getProposalPda({ + multisigPda, + transactionIndex, + programId = PROGRAM_ID +}) { + return import_web35.PublicKey.findProgramAddressSync( + [ + SEED_PREFIX, + multisigPda.toBytes(), + SEED_TRANSACTION, + toU64Bytes(transactionIndex), + SEED_PROPOSAL + ], + programId + ); +} +function getBatchTransactionPda({ + multisigPda, + batchIndex, + transactionIndex, + programId = PROGRAM_ID +}) { + return import_web35.PublicKey.findProgramAddressSync( + [ + SEED_PREFIX, + multisigPda.toBytes(), + SEED_TRANSACTION, + toU64Bytes(batchIndex), + SEED_BATCH_TRANSACTION, + toU32Bytes(transactionIndex) + ], + programId + ); +} +var rpc_exports = {}; +__export2(rpc_exports, { + batchAccountsClose: () => batchAccountsClose3, + batchAddTransaction: () => batchAddTransaction3, + batchCreate: () => batchCreate3, + batchExecuteTransaction: () => batchExecuteTransaction3, + configTransactionAccountsClose: () => configTransactionAccountsClose3, + configTransactionCreate: () => configTransactionCreate3, + configTransactionExecute: () => configTransactionExecute3, + multisigAddMember: () => multisigAddMember3, + multisigAddSpendingLimit: () => multisigAddSpendingLimit3, + multisigCreate: () => multisigCreate3, + multisigCreateV2: () => multisigCreateV23, + multisigRemoveMember: () => multisigRemoveMember3, + multisigRemoveSpendingLimit: () => multisigRemoveSpendingLimit3, + multisigSetConfigAuthority: () => multisigSetConfigAuthority3, + multisigSetRentCollector: () => multisigSetRentCollector3, + multisigSetTimeLock: () => multisigSetTimeLock3, + proposalActivate: () => proposalActivate3, + proposalApprove: () => proposalApprove3, + proposalCancel: () => proposalCancel3, + proposalCreate: () => proposalCreate3, + proposalReject: () => proposalReject3, + spendingLimitUse: () => spendingLimitUse3, + vaultBatchTransactionAccountClose: () => vaultBatchTransactionAccountClose3, + vaultTransactionAccountsClose: () => vaultTransactionAccountsClose3, + vaultTransactionCreate: () => vaultTransactionCreate3, + vaultTransactionExecute: () => vaultTransactionExecute3 +}); +var transactions_exports = {}; +__export2(transactions_exports, { + batchAccountsClose: () => batchAccountsClose2, + batchAddTransaction: () => batchAddTransaction2, + batchCreate: () => batchCreate2, + batchExecuteTransaction: () => batchExecuteTransaction2, + configTransactionAccountsClose: () => configTransactionAccountsClose2, + configTransactionCreate: () => configTransactionCreate2, + configTransactionExecute: () => configTransactionExecute2, + multisigAddMember: () => multisigAddMember2, + multisigAddSpendingLimit: () => multisigAddSpendingLimit2, + multisigChangeThreshold: () => multisigChangeThreshold2, + multisigCreate: () => multisigCreate2, + multisigCreateV2: () => multisigCreateV22, + multisigRemoveMember: () => multisigRemoveMember2, + multisigRemoveSpendingLimit: () => multisigRemoveSpendingLimit2, + multisigSetConfigAuthority: () => multisigSetConfigAuthority2, + multisigSetRentCollector: () => multisigSetRentCollector2, + multisigSetTimeLock: () => multisigSetTimeLock2, + proposalActivate: () => proposalActivate2, + proposalApprove: () => proposalApprove2, + proposalCancel: () => proposalCancel2, + proposalCreate: () => proposalCreate2, + proposalReject: () => proposalReject2, + spendingLimitUse: () => spendingLimitUse2, + vaultBatchTransactionAccountClose: () => vaultBatchTransactionAccountClose2, + vaultTransactionAccountsClose: () => vaultTransactionAccountsClose2, + vaultTransactionCreate: () => vaultTransactionCreate2, + vaultTransactionExecute: () => vaultTransactionExecute2 +}); +var instructions_exports = {}; +__export2(instructions_exports, { + batchAccountsClose: () => batchAccountsClose, + batchAddTransaction: () => batchAddTransaction, + batchCreate: () => batchCreate, + batchExecuteTransaction: () => batchExecuteTransaction, + configTransactionAccountsClose: () => configTransactionAccountsClose, + configTransactionCreate: () => configTransactionCreate, + configTransactionExecute: () => configTransactionExecute, + multisigAddMember: () => multisigAddMember, + multisigAddSpendingLimit: () => multisigAddSpendingLimit, + multisigChangeThreshold: () => multisigChangeThreshold, + multisigCreate: () => multisigCreate, + multisigCreateV2: () => multisigCreateV2, + multisigRemoveMember: () => multisigRemoveMember, + multisigRemoveSpendingLimit: () => multisigRemoveSpendingLimit, + multisigSetConfigAuthority: () => multisigSetConfigAuthority, + multisigSetRentCollector: () => multisigSetRentCollector, + multisigSetTimeLock: () => multisigSetTimeLock, + proposalActivate: () => proposalActivate, + proposalApprove: () => proposalApprove, + proposalCancel: () => proposalCancel, + proposalCreate: () => proposalCreate, + proposalReject: () => proposalReject, + spendingLimitUse: () => spendingLimitUse, + vaultBatchTransactionAccountClose: () => vaultBatchTransactionAccountClose, + vaultTransactionAccountsClose: () => vaultTransactionAccountsClose, + vaultTransactionCreate: () => vaultTransactionCreate, + vaultTransactionExecute: () => vaultTransactionExecute +}); +function batchAccountsClose({ + multisigPda, + rentCollector, + batchIndex, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex: batchIndex, + programId + }); + const [batchPda] = getTransactionPda({ + multisigPda, + index: batchIndex, + programId + }); + return createBatchAccountsCloseInstruction( + { + multisig: multisigPda, + rentCollector, + proposal: proposalPda, + batch: batchPda + }, + programId + ); +} +function batchAddTransaction({ + vaultIndex, + multisigPda, + member, + rentPayer, + batchIndex, + transactionIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex: batchIndex, + programId + }); + const [batchPda] = getTransactionPda({ + multisigPda, + index: batchIndex, + programId + }); + const [batchTransactionPda] = getBatchTransactionPda({ + multisigPda, + batchIndex, + transactionIndex, + programId + }); + const [vaultPda] = getVaultPda({ + multisigPda, + index: vaultIndex, + programId + }); + const transactionMessageBytes = transactionMessageToMultisigTransactionMessageBytes({ + message: transactionMessage, + addressLookupTableAccounts, + vaultPda + }); + return createBatchAddTransactionInstruction( + { + multisig: multisigPda, + member, + proposal: proposalPda, + rentPayer: rentPayer ?? member, + batch: batchPda, + transaction: batchTransactionPda + }, + { + args: { + ephemeralSigners, + transactionMessage: transactionMessageBytes + } + }, + programId + ); +} +function batchCreate({ + multisigPda, + creator, + rentPayer, + batchIndex, + vaultIndex, + memo, + programId = PROGRAM_ID +}) { + const [batchPda] = getTransactionPda({ + multisigPda, + index: batchIndex, + programId + }); + return createBatchCreateInstruction( + { + multisig: multisigPda, + creator, + rentPayer: rentPayer ?? creator, + batch: batchPda + }, + { args: { vaultIndex, memo: memo ?? null } }, + programId + ); +} +async function batchExecuteTransaction({ + connection, + multisigPda, + member, + batchIndex, + transactionIndex, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex: batchIndex, + programId + }); + const [batchPda] = getTransactionPda({ + multisigPda, + index: batchIndex, + programId + }); + const [batchTransactionPda] = getBatchTransactionPda({ + multisigPda, + batchIndex, + transactionIndex, + programId + }); + const batchAccount = await Batch.fromAccountAddress(connection, batchPda); + const [vaultPda] = getVaultPda({ + multisigPda, + index: batchAccount.vaultIndex, + programId + }); + const batchTransactionAccount = await VaultBatchTransaction.fromAccountAddress( + connection, + batchTransactionPda + ); + const { accountMetas, lookupTableAccounts } = await accountsForTransactionExecute({ + connection, + message: batchTransactionAccount.message, + ephemeralSignerBumps: [...batchTransactionAccount.ephemeralSignerBumps], + vaultPda, + transactionPda: batchPda + }); + return { + instruction: createBatchExecuteTransactionInstruction( + { + multisig: multisigPda, + member, + proposal: proposalPda, + batch: batchPda, + transaction: batchTransactionPda, + anchorRemainingAccounts: accountMetas + }, + programId + ), + lookupTableAccounts + }; +} +function configTransactionAccountsClose({ + multisigPda, + rentCollector, + transactionIndex, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + const [transactionPda] = getTransactionPda({ + multisigPda, + index: transactionIndex, + programId + }); + return createConfigTransactionAccountsCloseInstruction( + { + multisig: multisigPda, + rentCollector, + proposal: proposalPda, + transaction: transactionPda + }, + programId + ); +} +function configTransactionCreate({ + multisigPda, + transactionIndex, + creator, + rentPayer, + actions, + memo, + programId = PROGRAM_ID +}) { + const [transactionPda] = getTransactionPda({ + multisigPda, + index: transactionIndex, + programId + }); + return createConfigTransactionCreateInstruction( + { + multisig: multisigPda, + transaction: transactionPda, + creator, + rentPayer: rentPayer ?? creator + }, + { args: { actions, memo: memo ?? null } }, + programId + ); +} +function configTransactionExecute({ + multisigPda, + transactionIndex, + member, + rentPayer, + spendingLimits, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + const [transactionPda] = getTransactionPda({ + multisigPda, + index: transactionIndex, + programId + }); + return createConfigTransactionExecuteInstruction( + { + multisig: multisigPda, + member, + proposal: proposalPda, + transaction: transactionPda, + rentPayer, + systemProgram: import_web39.SystemProgram.programId, + anchorRemainingAccounts: spendingLimits?.map((spendingLimit) => ({ + pubkey: spendingLimit, + isWritable: true, + isSigner: false + })) + }, + programId + ); +} +function multisigCreate({ + creator, + multisigPda, + configAuthority, + threshold, + members, + timeLock, + createKey, + memo, + programId = PROGRAM_ID +}) { + return createMultisigCreateInstruction( + { + creator, + createKey, + multisig: multisigPda + }, + { + args: { + configAuthority, + threshold, + members, + timeLock, + memo: memo ?? null + } + }, + programId + ); +} +function multisigCreateV2({ + treasury, + creator, + multisigPda, + configAuthority, + threshold, + members, + timeLock, + createKey, + rentCollector, + memo, + programId = PROGRAM_ID +}) { + const programConfigPda = getProgramConfigPda({ programId })[0]; + return createMultisigCreateV2Instruction( + { + programConfig: programConfigPda, + treasury, + creator, + createKey, + multisig: multisigPda + }, + { + args: { + configAuthority, + threshold, + members, + timeLock, + rentCollector, + memo: memo ?? null + } + }, + programId + ); +} +function multisigAddMember({ + multisigPda, + configAuthority, + rentPayer, + newMember, + memo, + programId = PROGRAM_ID +}) { + return createMultisigAddMemberInstruction( + { + multisig: multisigPda, + configAuthority, + rentPayer, + systemProgram: import_web310.SystemProgram.programId + }, + { args: { newMember, memo: memo ?? null } }, + programId + ); +} +function multisigRemoveMember({ + multisigPda, + configAuthority, + oldMember, + memo, + programId = PROGRAM_ID +}) { + return createMultisigRemoveMemberInstruction( + { + multisig: multisigPda, + configAuthority, + systemProgram: import_web311.SystemProgram.programId + }, + { args: { oldMember, memo: memo ?? null } }, + programId + ); +} +function multisigAddSpendingLimit({ + multisigPda, + configAuthority, + spendingLimit, + rentPayer, + createKey, + vaultIndex, + mint, + amount, + period, + members, + destinations, + memo, + programId = PROGRAM_ID +}) { + return createMultisigAddSpendingLimitInstruction( + { + multisig: multisigPda, + spendingLimit, + configAuthority, + rentPayer + }, + { + args: { + createKey, + vaultIndex, + mint, + amount: new import_bn.default(amount.toString()), + period, + members, + destinations, + memo: memo ?? null + } + }, + programId + ); +} +function multisigChangeThreshold({ + multisigPda, + configAuthority, + rentPayer, + newThreshold, + memo, + programId = PROGRAM_ID +}) { + return createMultisigChangeThresholdInstruction( + { + multisig: multisigPda, + configAuthority, + rentPayer + }, + { + args: { + newThreshold, + memo: memo ?? null + } + }, + programId + ); +} +function multisigRemoveSpendingLimit({ + multisigPda, + configAuthority, + spendingLimit, + rentCollector, + memo, + programId = PROGRAM_ID +}) { + return createMultisigRemoveSpendingLimitInstruction( + { + multisig: multisigPda, + spendingLimit, + configAuthority, + rentCollector + }, + { + args: { + memo: memo ?? null + } + }, + programId + ); +} +function multisigSetConfigAuthority({ + multisigPda, + configAuthority, + newConfigAuthority, + memo, + programId +}) { + return createMultisigSetConfigAuthorityInstruction( + { + multisig: multisigPda, + configAuthority + }, + { + args: { + configAuthority: newConfigAuthority, + memo: memo ?? null + } + }, + programId + ); +} +function multisigSetRentCollector({ + multisigPda, + configAuthority, + newRentCollector, + rentPayer, + memo, + programId +}) { + return createMultisigSetRentCollectorInstruction( + { + multisig: multisigPda, + configAuthority, + rentPayer, + systemProgram: import_web312.SystemProgram.programId + }, + { + args: { + rentCollector: newRentCollector, + memo: memo ?? null + } + }, + programId + ); +} +function multisigSetTimeLock({ + multisigPda, + configAuthority, + timeLock, + memo, + programId +}) { + return createMultisigSetTimeLockInstruction( + { + multisig: multisigPda, + configAuthority + }, + { + args: { + timeLock, + memo: memo ?? null + } + }, + programId + ); +} +function proposalActivate({ + multisigPda, + transactionIndex, + member, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + return createProposalActivateInstruction( + { + multisig: multisigPda, + proposal: proposalPda, + member + }, + programId + ); +} +function proposalApprove({ + multisigPda, + transactionIndex, + member, + memo, + programId +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + return createProposalApproveInstruction( + { multisig: multisigPda, proposal: proposalPda, member }, + { args: { memo: memo ?? null } }, + programId + ); +} +function proposalCancel({ + multisigPda, + transactionIndex, + member, + memo, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + return createProposalCancelInstruction( + { multisig: multisigPda, proposal: proposalPda, member }, + { args: { memo: memo ?? null } }, + programId + ); +} +function proposalCreate({ + multisigPda, + creator, + rentPayer, + transactionIndex, + isDraft = false, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + if (transactionIndex > Number.MAX_SAFE_INTEGER) { + throw new Error("transactionIndex is too large"); + } + return createProposalCreateInstruction( + { + creator, + rentPayer: rentPayer ?? creator, + multisig: multisigPda, + proposal: proposalPda + }, + { args: { transactionIndex: Number(transactionIndex), draft: isDraft } }, + programId + ); +} +function proposalReject({ + multisigPda, + transactionIndex, + member, + memo, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + return createProposalRejectInstruction( + { multisig: multisigPda, proposal: proposalPda, member }, + { args: { memo: memo ?? null } }, + programId + ); +} +function spendingLimitUse({ + multisigPda, + member, + spendingLimit, + mint, + vaultIndex, + amount, + decimals, + destination, + tokenProgram = TOKEN_PROGRAM_ID, + memo, + programId = PROGRAM_ID +}) { + const [vaultPda] = getVaultPda({ multisigPda, index: vaultIndex, programId }); + const vaultTokenAccount = mint && getAssociatedTokenAddressSync( + mint, + vaultPda, + true, + tokenProgram, + ASSOCIATED_TOKEN_PROGRAM_ID + ); + const destinationTokenAccount = mint && getAssociatedTokenAddressSync( + mint, + destination, + true, + tokenProgram, + ASSOCIATED_TOKEN_PROGRAM_ID + ); + return createSpendingLimitUseInstruction( + { + multisig: multisigPda, + member, + spendingLimit, + vault: vaultPda, + destination, + systemProgram: import_web313.SystemProgram.programId, + mint, + vaultTokenAccount, + destinationTokenAccount, + tokenProgram: mint ? tokenProgram : void 0 + }, + { args: { amount, decimals, memo: memo ?? null } }, + programId + ); +} +function vaultBatchTransactionAccountClose({ + multisigPda, + rentCollector, + batchIndex, + transactionIndex, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex: batchIndex, + programId + }); + const [batchPda] = getTransactionPda({ + multisigPda, + index: batchIndex, + programId + }); + const [batchTransactionPda] = getBatchTransactionPda({ + multisigPda, + batchIndex, + transactionIndex, + programId + }); + return createVaultBatchTransactionAccountCloseInstruction( + { + multisig: multisigPda, + rentCollector, + proposal: proposalPda, + batch: batchPda, + transaction: batchTransactionPda + }, + programId + ); +} +function vaultTransactionAccountsClose({ + multisigPda, + rentCollector, + transactionIndex, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + const [transactionPda] = getTransactionPda({ + multisigPda, + index: transactionIndex, + programId + }); + return createVaultTransactionAccountsCloseInstruction( + { + multisig: multisigPda, + rentCollector, + proposal: proposalPda, + transaction: transactionPda + }, + programId + ); +} +function vaultTransactionCreate({ + multisigPda, + transactionIndex, + creator, + rentPayer, + vaultIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + memo, + programId = PROGRAM_ID +}) { + const [vaultPda] = getVaultPda({ + multisigPda, + index: vaultIndex, + programId + }); + const [transactionPda] = getTransactionPda({ + multisigPda, + index: transactionIndex, + programId + }); + const transactionMessageBytes = transactionMessageToMultisigTransactionMessageBytes({ + message: transactionMessage, + addressLookupTableAccounts, + vaultPda + }); + return createVaultTransactionCreateInstruction( + { + multisig: multisigPda, + transaction: transactionPda, + creator, + rentPayer: rentPayer ?? creator + }, + { + args: { + vaultIndex, + ephemeralSigners, + transactionMessage: transactionMessageBytes, + memo: memo ?? null + } + }, + programId + ); +} +async function vaultTransactionExecute({ + connection, + multisigPda, + transactionIndex, + member, + programId = PROGRAM_ID +}) { + const [proposalPda] = getProposalPda({ + multisigPda, + transactionIndex, + programId + }); + const [transactionPda] = getTransactionPda({ + multisigPda, + index: transactionIndex, + programId + }); + const transactionAccount = await VaultTransaction.fromAccountAddress( + connection, + transactionPda + ); + const [vaultPda] = getVaultPda({ + multisigPda, + index: transactionAccount.vaultIndex, + programId + }); + const { accountMetas, lookupTableAccounts } = await accountsForTransactionExecute({ + connection, + message: transactionAccount.message, + ephemeralSignerBumps: [...transactionAccount.ephemeralSignerBumps], + vaultPda, + transactionPda, + programId + }); + return { + instruction: createVaultTransactionExecuteInstruction( + { + multisig: multisigPda, + member, + proposal: proposalPda, + transaction: transactionPda, + anchorRemainingAccounts: accountMetas + }, + programId + ), + lookupTableAccounts + }; +} +function batchAccountsClose2({ + blockhash, + feePayer, + multisigPda, + rentCollector, + batchIndex, + programId +}) { + const message = new import_web38.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + batchAccountsClose({ + multisigPda, + rentCollector, + batchIndex, + programId + }) + ] + }).compileToV0Message(); + return new import_web38.VersionedTransaction(message); +} +async function batchAddTransaction2({ + connection, + feePayer, + multisigPda, + member, + rentPayer, + vaultIndex, + batchIndex, + transactionIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const message = new import_web314.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + batchAddTransaction({ + vaultIndex, + multisigPda, + member, + rentPayer, + batchIndex, + transactionIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + programId + }) + ] + }).compileToV0Message(); + return new import_web314.VersionedTransaction(message); +} +function batchCreate2({ + blockhash, + feePayer, + multisigPda, + batchIndex, + creator, + rentPayer, + vaultIndex, + memo, + programId +}) { + const message = new import_web315.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + batchCreate({ + multisigPda, + creator, + rentPayer: rentPayer ?? creator, + batchIndex, + vaultIndex, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web315.VersionedTransaction(message); +} +async function batchExecuteTransaction2({ + connection, + blockhash, + feePayer, + multisigPda, + member, + batchIndex, + transactionIndex, + programId +}) { + const { instruction, lookupTableAccounts } = await batchExecuteTransaction({ + connection, + multisigPda, + member, + batchIndex, + transactionIndex, + programId + }); + const message = new import_web316.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [instruction] + }).compileToV0Message(lookupTableAccounts); + return new import_web316.VersionedTransaction(message); +} +function configTransactionAccountsClose2({ + blockhash, + feePayer, + multisigPda, + rentCollector, + transactionIndex, + programId +}) { + const message = new import_web317.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + configTransactionAccountsClose({ + multisigPda, + rentCollector, + transactionIndex, + programId + }) + ] + }).compileToV0Message(); + return new import_web317.VersionedTransaction(message); +} +function configTransactionCreate2({ + blockhash, + feePayer, + creator, + rentPayer, + multisigPda, + transactionIndex, + actions, + memo, + programId +}) { + const message = new import_web318.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + configTransactionCreate({ + creator, + rentPayer, + multisigPda, + transactionIndex, + actions, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web318.VersionedTransaction(message); +} +function configTransactionExecute2({ + blockhash, + feePayer, + multisigPda, + member, + rentPayer, + transactionIndex, + spendingLimits, + programId +}) { + const message = new import_web319.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + configTransactionExecute({ + multisigPda, + transactionIndex, + member, + rentPayer, + spendingLimits, + programId + }) + ] + }).compileToV0Message(); + return new import_web319.VersionedTransaction(message); +} +function multisigAddMember2({ + blockhash, + feePayer, + multisigPda, + configAuthority, + rentPayer, + newMember, + memo, + programId +}) { + const message = new import_web320.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + multisigAddMember({ + multisigPda, + configAuthority, + rentPayer, + newMember, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web320.VersionedTransaction(message); +} +function multisigRemoveMember2({ + blockhash, + feePayer, + multisigPda, + configAuthority, + oldMember, + memo, + programId +}) { + const message = new import_web321.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + multisigRemoveMember({ + multisigPda, + configAuthority, + oldMember, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web321.VersionedTransaction(message); +} +function multisigAddSpendingLimit2({ + blockhash, + feePayer, + multisigPda, + configAuthority, + spendingLimit, + rentPayer, + createKey, + vaultIndex, + mint, + amount, + period, + members, + destinations, + memo, + programId +}) { + const message = new import_web322.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + multisigAddSpendingLimit({ + configAuthority, + multisigPda, + spendingLimit, + rentPayer, + createKey, + vaultIndex, + mint, + amount, + period, + members, + destinations, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web322.VersionedTransaction(message); +} +function multisigRemoveSpendingLimit2({ + blockhash, + feePayer, + multisigPda, + configAuthority, + spendingLimit, + rentCollector, + memo, + programId +}) { + const message = new import_web323.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + multisigRemoveSpendingLimit({ + configAuthority, + multisigPda, + spendingLimit, + rentCollector, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web323.VersionedTransaction(message); +} +function multisigChangeThreshold2({ + blockhash, + multisigPda, + configAuthority, + rentPayer, + newThreshold, + memo, + programId = PROGRAM_ID +}) { + const message = new import_web324.TransactionMessage({ + payerKey: rentPayer, + recentBlockhash: blockhash, + instructions: [ + instructions_exports.multisigChangeThreshold({ + multisigPda, + configAuthority, + rentPayer, + newThreshold, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web324.VersionedTransaction(message); +} +function multisigCreate2({ + blockhash, + configAuthority, + createKey, + creator, + multisigPda, + threshold, + members, + timeLock, + memo, + programId +}) { + const ix = multisigCreate({ + creator, + multisigPda, + configAuthority, + threshold, + members, + timeLock, + createKey, + memo, + programId + }); + const message = new import_web325.TransactionMessage({ + payerKey: creator, + recentBlockhash: blockhash, + instructions: [ix] + }).compileToV0Message(); + return new import_web325.VersionedTransaction(message); +} +function multisigCreateV22({ + blockhash, + treasury, + configAuthority, + createKey, + creator, + multisigPda, + threshold, + members, + timeLock, + rentCollector, + memo, + programId +}) { + const ix = multisigCreateV2({ + treasury, + creator, + multisigPda, + configAuthority, + threshold, + members, + timeLock, + createKey, + rentCollector, + memo, + programId + }); + const message = new import_web326.TransactionMessage({ + payerKey: creator, + recentBlockhash: blockhash, + instructions: [ix] + }).compileToV0Message(); + return new import_web326.VersionedTransaction(message); +} +function multisigSetConfigAuthority2({ + blockhash, + feePayer, + multisigPda, + configAuthority, + newConfigAuthority, + memo, + programId +}) { + const message = new import_web327.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + multisigSetConfigAuthority({ + multisigPda, + configAuthority, + newConfigAuthority, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web327.VersionedTransaction(message); +} +function multisigSetRentCollector2({ + blockhash, + feePayer, + multisigPda, + configAuthority, + newRentCollector, + rentPayer, + memo, + programId +}) { + const message = new import_web328.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + multisigSetRentCollector({ + multisigPda, + configAuthority, + newRentCollector, + rentPayer, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web328.VersionedTransaction(message); +} +function multisigSetTimeLock2({ + blockhash, + feePayer, + multisigPda, + configAuthority, + timeLock, + memo, + programId +}) { + const message = new import_web329.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + multisigSetTimeLock({ + multisigPda, + configAuthority, + timeLock, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web329.VersionedTransaction(message); +} +function proposalActivate2({ + blockhash, + feePayer, + multisigPda, + transactionIndex, + member, + programId +}) { + const message = new import_web330.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + proposalActivate({ + member, + multisigPda, + transactionIndex, + programId + }) + ] + }).compileToV0Message(); + return new import_web330.VersionedTransaction(message); +} +function proposalApprove2({ + blockhash, + feePayer, + multisigPda, + transactionIndex, + member, + memo, + programId +}) { + const message = new import_web331.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + proposalApprove({ + member, + multisigPda, + transactionIndex, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web331.VersionedTransaction(message); +} +function proposalCancel2({ + blockhash, + feePayer, + multisigPda, + transactionIndex, + member, + memo, + programId +}) { + const message = new import_web332.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + proposalCancel({ + member, + multisigPda, + transactionIndex, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web332.VersionedTransaction(message); +} +function proposalCreate2({ + blockhash, + feePayer, + multisigPda, + transactionIndex, + creator, + rentPayer, + isDraft, + programId +}) { + const message = new import_web333.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + proposalCreate({ + multisigPda, + creator, + rentPayer, + transactionIndex, + isDraft, + programId + }) + ] + }).compileToV0Message(); + return new import_web333.VersionedTransaction(message); +} +function proposalReject2({ + blockhash, + feePayer, + multisigPda, + transactionIndex, + member, + memo, + programId +}) { + const message = new import_web334.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + proposalReject({ + member, + multisigPda, + transactionIndex, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web334.VersionedTransaction(message); +} +function spendingLimitUse2({ + blockhash, + feePayer, + multisigPda, + member, + spendingLimit, + mint, + vaultIndex, + amount, + decimals, + destination, + tokenProgram, + memo, + programId +}) { + const message = new import_web335.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + spendingLimitUse({ + multisigPda, + member, + spendingLimit, + mint, + vaultIndex, + amount, + decimals, + destination, + tokenProgram, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web335.VersionedTransaction(message); +} +function vaultBatchTransactionAccountClose2({ + blockhash, + feePayer, + multisigPda, + rentCollector, + batchIndex, + transactionIndex, + programId +}) { + const message = new import_web336.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + vaultBatchTransactionAccountClose({ + multisigPda, + rentCollector, + batchIndex, + transactionIndex, + programId + }) + ] + }).compileToV0Message(); + return new import_web336.VersionedTransaction(message); +} +function vaultTransactionAccountsClose2({ + blockhash, + feePayer, + multisigPda, + rentCollector, + transactionIndex, + programId +}) { + const message = new import_web337.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + vaultTransactionAccountsClose({ + multisigPda, + rentCollector, + transactionIndex, + programId + }) + ] + }).compileToV0Message(); + return new import_web337.VersionedTransaction(message); +} +function vaultTransactionCreate2({ + blockhash, + feePayer, + multisigPda, + transactionIndex, + creator, + rentPayer, + vaultIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + memo, + programId +}) { + const message = new import_web338.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [ + vaultTransactionCreate({ + multisigPda, + transactionIndex, + creator, + rentPayer, + vaultIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + memo, + programId + }) + ] + }).compileToV0Message(); + return new import_web338.VersionedTransaction(message); +} +async function vaultTransactionExecute2({ + connection, + blockhash, + feePayer, + multisigPda, + transactionIndex, + member, + programId +}) { + const { instruction, lookupTableAccounts } = await vaultTransactionExecute({ + connection, + multisigPda, + member, + transactionIndex, + programId + }); + const message = new import_web339.TransactionMessage({ + payerKey: feePayer, + recentBlockhash: blockhash, + instructions: [instruction] + }).compileToV0Message(lookupTableAccounts); + return new import_web339.VersionedTransaction(message); +} +async function batchAccountsClose3({ + connection, + feePayer, + multisigPda, + rentCollector, + batchIndex, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = batchAccountsClose2({ + blockhash, + feePayer: feePayer.publicKey, + rentCollector, + batchIndex, + multisigPda, + programId + }); + tx.sign([feePayer]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function batchAddTransaction3({ + connection, + feePayer, + multisigPda, + member, + rentPayer, + vaultIndex, + batchIndex, + transactionIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + signers, + sendOptions, + programId +}) { + const tx = await batchAddTransaction2({ + connection, + feePayer: feePayer.publicKey, + multisigPda, + member: member.publicKey, + rentPayer: rentPayer?.publicKey ?? member.publicKey, + vaultIndex, + batchIndex, + transactionIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + programId + }); + const allSigners = [feePayer, member]; + if (signers) { + allSigners.push(...signers); + } + if (rentPayer) { + allSigners.push(rentPayer); + } + tx.sign(allSigners); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function batchCreate3({ + connection, + feePayer, + multisigPda, + batchIndex, + creator, + rentPayer, + vaultIndex, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = batchCreate2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + batchIndex, + creator: creator.publicKey, + rentPayer: rentPayer?.publicKey ?? creator.publicKey, + vaultIndex, + memo, + programId + }); + const allSigners = [feePayer, creator]; + if (signers) { + allSigners.push(...signers); + } + if (rentPayer) { + allSigners.push(rentPayer); + } + tx.sign(allSigners); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function batchExecuteTransaction3({ + connection, + feePayer, + multisigPda, + member, + batchIndex, + transactionIndex, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = await batchExecuteTransaction2({ + connection, + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + member: member.publicKey, + batchIndex, + transactionIndex, + programId + }); + tx.sign([feePayer, member, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function configTransactionAccountsClose3({ + connection, + feePayer, + multisigPda, + rentCollector, + transactionIndex, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = configTransactionAccountsClose2({ + blockhash, + feePayer: feePayer.publicKey, + rentCollector, + transactionIndex, + multisigPda, + programId + }); + tx.sign([feePayer]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function configTransactionCreate3({ + connection, + feePayer, + multisigPda, + transactionIndex, + creator, + rentPayer, + actions, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = configTransactionCreate2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + creator, + rentPayer, + actions, + memo, + programId + }); + tx.sign([feePayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function configTransactionExecute3({ + connection, + feePayer, + multisigPda, + transactionIndex, + member, + rentPayer, + spendingLimits, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = configTransactionExecute2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + member: member.publicKey, + rentPayer: rentPayer.publicKey, + spendingLimits, + programId + }); + tx.sign([feePayer, member, rentPayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigAddMember3({ + connection, + feePayer, + multisigPda, + configAuthority, + rentPayer, + newMember, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigAddMember2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + configAuthority, + rentPayer: rentPayer.publicKey, + newMember, + memo, + programId + }); + tx.sign([feePayer, rentPayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigRemoveMember3({ + connection, + feePayer, + multisigPda, + configAuthority, + oldMember, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigRemoveMember2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + configAuthority, + oldMember, + memo, + programId + }); + tx.sign([feePayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigAddSpendingLimit3({ + connection, + feePayer, + multisigPda, + configAuthority, + spendingLimit, + rentPayer, + createKey, + vaultIndex, + mint, + amount, + period, + members, + destinations, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigAddSpendingLimit2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + configAuthority, + spendingLimit, + rentPayer: rentPayer.publicKey, + createKey, + vaultIndex, + mint, + amount, + period, + members, + destinations, + memo, + programId + }); + tx.sign([feePayer, rentPayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigRemoveSpendingLimit3({ + connection, + feePayer, + multisigPda, + configAuthority, + spendingLimit, + rentCollector, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigRemoveSpendingLimit2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + configAuthority, + spendingLimit, + rentCollector, + memo, + programId + }); + tx.sign([feePayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigCreate3({ + connection, + createKey, + creator, + multisigPda, + configAuthority, + threshold, + members, + timeLock, + memo, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigCreate2({ + blockhash, + createKey: createKey.publicKey, + creator: creator.publicKey, + multisigPda, + configAuthority, + threshold, + members, + timeLock, + memo, + programId + }); + tx.sign([creator, createKey]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigCreateV23({ + connection, + treasury, + createKey, + creator, + multisigPda, + configAuthority, + threshold, + members, + timeLock, + rentCollector, + memo, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigCreateV22({ + blockhash, + treasury, + createKey: createKey.publicKey, + creator: creator.publicKey, + multisigPda, + configAuthority, + threshold, + members, + timeLock, + rentCollector, + memo, + programId + }); + tx.sign([creator, createKey]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigSetConfigAuthority3({ + connection, + feePayer, + multisigPda, + configAuthority, + newConfigAuthority, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigSetConfigAuthority2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + configAuthority, + newConfigAuthority, + memo, + programId + }); + tx.sign([feePayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigSetRentCollector3({ + connection, + feePayer, + multisigPda, + configAuthority, + newRentCollector, + rentPayer, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigSetRentCollector2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + configAuthority, + newRentCollector, + rentPayer, + memo, + programId + }); + tx.sign([feePayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function multisigSetTimeLock3({ + connection, + feePayer, + multisigPda, + configAuthority, + timeLock, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = multisigSetTimeLock2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + configAuthority, + timeLock, + memo, + programId + }); + tx.sign([feePayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function proposalActivate3({ + connection, + feePayer, + member, + multisigPda, + transactionIndex, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = proposalActivate2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + member: member.publicKey, + programId + }); + tx.sign([feePayer, member]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function proposalApprove3({ + connection, + feePayer, + member, + multisigPda, + transactionIndex, + memo, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = proposalApprove2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + member: member.publicKey, + memo, + programId + }); + tx.sign([feePayer, member]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function proposalCancel3({ + connection, + feePayer, + member, + multisigPda, + transactionIndex, + memo, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = proposalCancel2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + member: member.publicKey, + memo, + programId + }); + tx.sign([feePayer, member]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function proposalCreate3({ + connection, + feePayer, + creator, + rentPayer, + multisigPda, + transactionIndex, + isDraft, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = proposalCreate2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + creator: creator.publicKey, + isDraft, + programId + }); + const allSigners = [feePayer, creator]; + if (rentPayer) { + allSigners.push(rentPayer); + } + tx.sign(allSigners); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function proposalReject3({ + connection, + feePayer, + member, + multisigPda, + transactionIndex, + memo, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = proposalReject2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + member: member.publicKey, + memo, + programId + }); + tx.sign([feePayer, member]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function spendingLimitUse3({ + connection, + feePayer, + member, + multisigPda, + spendingLimit, + mint, + vaultIndex, + amount, + decimals, + destination, + tokenProgram, + memo, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = spendingLimitUse2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + member: member.publicKey, + spendingLimit, + mint, + vaultIndex, + amount, + decimals, + destination, + tokenProgram, + memo, + programId + }); + tx.sign([feePayer, member]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function vaultBatchTransactionAccountClose3({ + connection, + feePayer, + multisigPda, + rentCollector, + batchIndex, + transactionIndex, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = vaultBatchTransactionAccountClose2({ + blockhash, + feePayer: feePayer.publicKey, + rentCollector, + batchIndex, + transactionIndex, + multisigPda, + programId + }); + tx.sign([feePayer]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function vaultTransactionAccountsClose3({ + connection, + feePayer, + multisigPda, + rentCollector, + transactionIndex, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = vaultTransactionAccountsClose2({ + blockhash, + feePayer: feePayer.publicKey, + rentCollector, + transactionIndex, + multisigPda, + programId + }); + tx.sign([feePayer]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function vaultTransactionCreate3({ + connection, + feePayer, + multisigPda, + transactionIndex, + creator, + rentPayer, + vaultIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + memo, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = vaultTransactionCreate2({ + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + creator, + rentPayer, + vaultIndex, + ephemeralSigners, + transactionMessage, + addressLookupTableAccounts, + memo, + programId + }); + tx.sign([feePayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} +async function vaultTransactionExecute3({ + connection, + feePayer, + multisigPda, + transactionIndex, + member, + signers, + sendOptions, + programId +}) { + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const tx = await vaultTransactionExecute2({ + connection, + blockhash, + feePayer: feePayer.publicKey, + multisigPda, + transactionIndex, + member, + programId + }); + tx.sign([feePayer, ...signers ?? []]); + try { + return await connection.sendTransaction(tx, sendOptions); + } catch (err) { + translateAndThrowAnchorError(err); + } +} + +// src/main.ts +var import_marinade_ts_sdk = __toESM(require_src9()); + +// src/utils.ts +var import_anchor = __toESM(require_cjs()); +var import_web340 = __toESM(require_index_cjs()); +var keypairFrom = (s, n) => { + try { + if (s.includes("[")) { + return import_web340.Keypair.fromSecretKey( + Buffer.from( + s.replace("[", "").replace("]", "").split(",").map((c) => parseInt(c)) + ) + ); + } else { + return import_web340.Keypair.fromSecretKey(import_anchor.utils.bytes.bs58.decode(s)); + } + } catch (e) { + try { + return import_web340.Keypair.fromSecretKey( + Buffer.from( + JSON.parse( + require("fs").readFileSync(s, { + encoding: "utf-8" + }) + ) + ) + ); + } catch (e2) { + process.stdout.write(`${n ?? "keypair"} is not valid keypair`); + process.exit(1); + } + } +}; +var getIDLPDA = async (programId) => { + const [base] = import_web340.PublicKey.findProgramAddressSync([], programId); + return import_web340.PublicKey.createWithSeed(base, "anchor:idl", programId); +}; +var IDL_UPGRADE_INSTRUCTION_DISCRIMINATOR = "40f4bc78a7e9690a03"; +var IDL_DISCRIMINATOR = import_anchor.utils.bytes.hex.decode( + `${IDL_UPGRADE_INSTRUCTION_DISCRIMINATOR}` +); + +// src/main.ts +async function initialize() { + const networkUrl = core.getInput("network-url") ?? process.env.NETWORK_URL; + const multisigPda = core.getInput("multisig-pda") ?? process.env.MULTISIG_PDA; + const multisigVaultIndex = core.getInput("multisig-vault-index") ?? process.env.MULTISIG_VAULT_INDEX; + const programId = core.getInput("program-id") ?? process.env.PROGRAM_ID; + const buffer = core.getInput("buffer") ?? process.env.BUFFER; + const spillAddress = core.getInput("spill-address") ?? process.env.SPILL_ADDRESS; + const name = core.getInput("name") ?? process.env.NAME; + const keypair = core.getInput("keypair") ?? process.env.KEYPAIR; + const executableData = core.getInput("executable-data") ?? process.env.EXECUTABLE_DATA; + const idlBuffer = core.getInput("idl-buffer") ?? process.env.IDL_BUFFER; + console.log(`Network URL: ${networkUrl}`); + console.log(`Multisig PDA: ${multisigPda}`); + console.log(`Multisig Vault Index: ${multisigVaultIndex}`); + console.log(`Program ID: ${programId}`); + console.log(`Buffer: ${buffer}`); + console.log(`Spill Address: ${spillAddress}`); + console.log(`Name: ${name}`); + console.log(`Executable Data: ${executableData}`); + console.log(`IDL Buffer: ${idlBuffer ? idlBuffer : "None"}`); + const coreKeypair = keypairFrom(keypair, "keypair"); + console.log(`Keypair Public Key: ${coreKeypair.publicKey}`); + console.log("Initializing..."); + let multisigVaultIndexNumber = Number(multisigVaultIndex); + const multisigVault = getVaultPda({ + multisigPda: new import_web341.PublicKey(multisigPda), + index: multisigVaultIndexNumber + })[0]; + console.log(`Multisig Vault: ${multisigVault}`); + const upgradeData = new import_marinade_ts_sdk.BN(3, 10); + const upgradeIxKeys = [ + { + pubkey: new import_web341.PublicKey(executableData), + // executable data + isWritable: true, + isSigner: false + }, + { + pubkey: new import_web341.PublicKey(programId), + // program id + isWritable: true, + isSigner: false + }, + { + pubkey: new import_web341.PublicKey(buffer), + // buffer address + isWritable: true, + isSigner: false + }, + { + pubkey: new import_web341.PublicKey(spillAddress), + // address that claims rent (mostly old program authority) + isWritable: true, + isSigner: false + }, + { + pubkey: import_web341.SYSVAR_RENT_PUBKEY, + isWritable: false, + isSigner: false + }, + { + pubkey: import_web341.SYSVAR_CLOCK_PUBKEY, + isWritable: false, + isSigner: false + }, + { + pubkey: new import_web341.PublicKey(multisigVault), + // squad vault + isWritable: false, + isSigner: true + } + ]; + const connection = new import_web341.Connection(networkUrl, "confirmed"); + const blockhash = (await connection.getLatestBlockhash()).blockhash; + const transactionMessage = new import_web341.TransactionMessage({ + payerKey: new import_web341.PublicKey(multisigVault), + recentBlockhash: blockhash, + instructions: [ + new import_web341.TransactionInstruction({ + programId: new import_web341.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111"), + data: upgradeData.toArrayLike(Buffer, "le", 4), + keys: upgradeIxKeys + }) + ] + }); + if (idlBuffer) { + const idlKeys = [ + { + pubkey: new import_web341.PublicKey(idlBuffer), + isSigner: false, + isWritable: true + }, + { + pubkey: await getIDLPDA(new import_web341.PublicKey(programId)), + isSigner: false, + isWritable: true + }, + { + pubkey: new import_web341.PublicKey(multisigVault), + isSigner: true, + isWritable: true + } + ]; + transactionMessage.instructions.unshift( + new import_web341.TransactionInstruction({ + programId: new import_web341.PublicKey(programId), + data: IDL_DISCRIMINATOR, + keys: idlKeys + }) + ); + } else { + core.info("No IDL Buffer provided, skipping IDL upgrade"); + } + const multisigInfo = await accounts_exports.accountProviders.Multisig.fromAccountAddress( + connection, + new import_web341.PublicKey(multisigPda) + ); + const transactionSignature = await rpc_exports.vaultTransactionCreate({ + multisigPda: new import_web341.PublicKey(multisigPda), + creator: coreKeypair.publicKey, + feePayer: coreKeypair, + connection, + ephemeralSigners: 0, + transactionIndex: BigInt(Number(multisigInfo.transactionIndex) + 1), + transactionMessage, + vaultIndex: multisigVaultIndexNumber, + addressLookupTableAccounts: void 0, + memo: name + }); + core.info(`Transaction signature: ${transactionSignature}`); + core.info("Proposal has been created, execute it on the Squads app."); + core.info("Transaction will:"); + core.info(`- Upgrade program ${programId} with buffer ${buffer}`); + if (idlBuffer) { + core.info(`- Upgrade program ${programId} IDL with buffer ${idlBuffer}`); + } +} +initialize(); +/*! Bundled license information: + +undici/lib/fetch/body.js: + (*! formdata-polyfill. MIT License. Jimmy Wärting *) + +undici/lib/websocket/frame.js: + (*! ws. MIT License. Einar Otto Stangvik *) + +@noble/hashes/utils.js: + (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +@noble/curves/abstract/utils.js: +@noble/curves/abstract/modular.js: +@noble/curves/abstract/curve.js: +@noble/curves/abstract/edwards.js: +@noble/curves/abstract/montgomery.js: +@noble/curves/ed25519.js: +@noble/curves/abstract/weierstrass.js: +@noble/curves/_shortw_utils.js: +@noble/curves/secp256k1.js: + (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) + +safe-buffer/index.js: + (*! safe-buffer. MIT License. Feross Aboukhadijeh *) + +@solana/buffer-layout/lib/Layout.js: + (** + * Support for translating between Uint8Array instances and JavaScript + * native types. + * + * {@link module:Layout~Layout|Layout} is the basis of a class + * hierarchy that associates property names with sequences of encoded + * bytes. + * + * Layouts are supported for these scalar (numeric) types: + * * {@link module:Layout~UInt|Unsigned integers in little-endian + * format} with {@link module:Layout.u8|8-bit}, {@link + * module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit}, + * {@link module:Layout.u32|32-bit}, {@link + * module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit} + * representation ranges; + * * {@link module:Layout~UIntBE|Unsigned integers in big-endian + * format} with {@link module:Layout.u16be|16-bit}, {@link + * module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit}, + * {@link module:Layout.u40be|40-bit}, and {@link + * module:Layout.u48be|48-bit} representation ranges; + * * {@link module:Layout~Int|Signed integers in little-endian + * format} with {@link module:Layout.s8|8-bit}, {@link + * module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit}, + * {@link module:Layout.s32|32-bit}, {@link + * module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit} + * representation ranges; + * * {@link module:Layout~IntBE|Signed integers in big-endian format} + * with {@link module:Layout.s16be|16-bit}, {@link + * module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit}, + * {@link module:Layout.s40be|40-bit}, and {@link + * module:Layout.s48be|48-bit} representation ranges; + * * 64-bit integral values that decode to an exact (if magnitude is + * less than 2^53) or nearby integral Number in {@link + * module:Layout.nu64|unsigned little-endian}, {@link + * module:Layout.nu64be|unsigned big-endian}, {@link + * module:Layout.ns64|signed little-endian}, and {@link + * module:Layout.ns64be|unsigned big-endian} encodings; + * * 32-bit floating point values with {@link + * module:Layout.f32|little-endian} and {@link + * module:Layout.f32be|big-endian} representations; + * * 64-bit floating point values with {@link + * module:Layout.f64|little-endian} and {@link + * module:Layout.f64be|big-endian} representations; + * * {@link module:Layout.const|Constants} that take no space in the + * encoded expression. + * + * and for these aggregate types: + * * {@link module:Layout.seq|Sequence}s of instances of a {@link + * module:Layout~Layout|Layout}, with JavaScript representation as + * an Array and constant or data-dependent {@link + * module:Layout~Sequence#count|length}; + * * {@link module:Layout.struct|Structure}s that aggregate a + * heterogeneous sequence of {@link module:Layout~Layout|Layout} + * instances, with JavaScript representation as an Object; + * * {@link module:Layout.union|Union}s that support multiple {@link + * module:Layout~VariantLayout|variant layouts} over a fixed + * (padded) or variable (not padded) span of bytes, using an + * unsigned integer at the start of the data or a separate {@link + * module:Layout.unionLayoutDiscriminator|layout element} to + * determine which layout to use when interpreting the buffer + * contents; + * * {@link module:Layout.bits|BitStructure}s that contain a sequence + * of individual {@link + * module:Layout~BitStructure#addField|BitField}s packed into an 8, + * 16, 24, or 32-bit unsigned integer starting at the least- or + * most-significant bit; + * * {@link module:Layout.cstr|C strings} of varying length; + * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link + * module:Layout~Blob#length|length} raw data. + * + * All {@link module:Layout~Layout|Layout} instances are immutable + * after construction, to prevent internal state from becoming + * inconsistent. + * + * @local Layout + * @local ExternalLayout + * @local GreedyCount + * @local OffsetLayout + * @local UInt + * @local UIntBE + * @local Int + * @local IntBE + * @local NearUInt64 + * @local NearUInt64BE + * @local NearInt64 + * @local NearInt64BE + * @local Float + * @local FloatBE + * @local Double + * @local DoubleBE + * @local Sequence + * @local Structure + * @local UnionDiscriminator + * @local UnionLayoutDiscriminator + * @local Union + * @local VariantLayout + * @local BitStructure + * @local BitField + * @local Boolean + * @local Blob + * @local CString + * @local Constant + * @local bindConstructorLayout + * @module Layout + * @license MIT + * @author Peter A. Bigot + * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub} + *) + +@solana/web3.js/lib/index.cjs.js: + (*! + * humanize-ms - index.js + * Copyright(c) 2014 dead_horse + * MIT Licensed + *) + +js-sha256/src/sha256.js: + (** + * [js-sha256]{@link https://github.com/emn178/js-sha256} + * + * @version 0.9.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2017 + * @license MIT + *) + +buffer-layout/lib/Layout.js: + (** + * Support for translating between Buffer instances and JavaScript + * native types. + * + * {@link module:Layout~Layout|Layout} is the basis of a class + * hierarchy that associates property names with sequences of encoded + * bytes. + * + * Layouts are supported for these scalar (numeric) types: + * * {@link module:Layout~UInt|Unsigned integers in little-endian + * format} with {@link module:Layout.u8|8-bit}, {@link + * module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit}, + * {@link module:Layout.u32|32-bit}, {@link + * module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit} + * representation ranges; + * * {@link module:Layout~UIntBE|Unsigned integers in big-endian + * format} with {@link module:Layout.u16be|16-bit}, {@link + * module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit}, + * {@link module:Layout.u40be|40-bit}, and {@link + * module:Layout.u48be|48-bit} representation ranges; + * * {@link module:Layout~Int|Signed integers in little-endian + * format} with {@link module:Layout.s8|8-bit}, {@link + * module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit}, + * {@link module:Layout.s32|32-bit}, {@link + * module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit} + * representation ranges; + * * {@link module:Layout~IntBE|Signed integers in big-endian format} + * with {@link module:Layout.s16be|16-bit}, {@link + * module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit}, + * {@link module:Layout.s40be|40-bit}, and {@link + * module:Layout.s48be|48-bit} representation ranges; + * * 64-bit integral values that decode to an exact (if magnitude is + * less than 2^53) or nearby integral Number in {@link + * module:Layout.nu64|unsigned little-endian}, {@link + * module:Layout.nu64be|unsigned big-endian}, {@link + * module:Layout.ns64|signed little-endian}, and {@link + * module:Layout.ns64be|unsigned big-endian} encodings; + * * 32-bit floating point values with {@link + * module:Layout.f32|little-endian} and {@link + * module:Layout.f32be|big-endian} representations; + * * 64-bit floating point values with {@link + * module:Layout.f64|little-endian} and {@link + * module:Layout.f64be|big-endian} representations; + * * {@link module:Layout.const|Constants} that take no space in the + * encoded expression. + * + * and for these aggregate types: + * * {@link module:Layout.seq|Sequence}s of instances of a {@link + * module:Layout~Layout|Layout}, with JavaScript representation as + * an Array and constant or data-dependent {@link + * module:Layout~Sequence#count|length}; + * * {@link module:Layout.struct|Structure}s that aggregate a + * heterogeneous sequence of {@link module:Layout~Layout|Layout} + * instances, with JavaScript representation as an Object; + * * {@link module:Layout.union|Union}s that support multiple {@link + * module:Layout~VariantLayout|variant layouts} over a fixed + * (padded) or variable (not padded) span of bytes, using an + * unsigned integer at the start of the data or a separate {@link + * module:Layout.unionLayoutDiscriminator|layout element} to + * determine which layout to use when interpreting the buffer + * contents; + * * {@link module:Layout.bits|BitStructure}s that contain a sequence + * of individual {@link + * module:Layout~BitStructure#addField|BitField}s packed into an 8, + * 16, 24, or 32-bit unsigned integer starting at the least- or + * most-significant bit; + * * {@link module:Layout.cstr|C strings} of varying length; + * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link + * module:Layout~Blob#length|length} raw data. + * + * All {@link module:Layout~Layout|Layout} instances are immutable + * after construction, to prevent internal state from becoming + * inconsistent. + * + * @local Layout + * @local ExternalLayout + * @local GreedyCount + * @local OffsetLayout + * @local UInt + * @local UIntBE + * @local Int + * @local IntBE + * @local NearUInt64 + * @local NearUInt64BE + * @local NearInt64 + * @local NearInt64BE + * @local Float + * @local FloatBE + * @local Double + * @local DoubleBE + * @local Sequence + * @local Structure + * @local UnionDiscriminator + * @local UnionLayoutDiscriminator + * @local Union + * @local VariantLayout + * @local BitStructure + * @local BitField + * @local Boolean + * @local Blob + * @local CString + * @local Constant + * @local bindConstructorLayout + * @module Layout + * @license MIT + * @author Peter A. Bigot + * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub} + *) +*/ diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 391acfa..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3072 +0,0 @@ -{ - "name": "squads-v4-program-upgrade", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "squads-v4-program-upgrade", - "version": "1.0.0", - "hasInstallScript": true, - "dependencies": { - "@actions/core": "^1.10.1", - "@marinade.finance/marinade-ts-sdk": "^5.0.6", - "@solana/web3.js": "^1.78.4", - "@sqds/multisig": "^1.9.0", - "bs58": "^5.0.0", - "chalk": "^5.3.0", - "inquirer": "^9.2.11", - "tsx": "^4.7.0" - }, - "devDependencies": { - "@types/inquirer": "^9.0.3", - "patch-package": "^8.0.0", - "ts-node": "^10.9.2", - "typescript": "^5.0.2" - } - }, - "node_modules/@actions/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", - "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", - "dependencies": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "node_modules/@actions/http-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "node_modules/@babel/runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", - "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@coral-xyz/anchor": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.28.0.tgz", - "integrity": "sha512-kQ02Hv2ZqxtWP30WN1d4xxT4QqlOXYDxmEd3k/bbneqhV3X5QMO4LAtoUFs7otxyivOgoqam5Il5qx81FuI4vw==", - "dependencies": { - "@coral-xyz/borsh": "^0.28.0", - "@solana/web3.js": "^1.68.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, - "node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.28.0.tgz", - "integrity": "sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.68.0" - } - }, - "node_modules/@coral-xyz/anchor/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@coral-xyz/anchor/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz", - "integrity": "sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.10.tgz", - "integrity": "sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz", - "integrity": "sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.10.tgz", - "integrity": "sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz", - "integrity": "sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz", - "integrity": "sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz", - "integrity": "sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz", - "integrity": "sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz", - "integrity": "sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz", - "integrity": "sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz", - "integrity": "sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz", - "integrity": "sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz", - "integrity": "sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz", - "integrity": "sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz", - "integrity": "sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz", - "integrity": "sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz", - "integrity": "sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz", - "integrity": "sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz", - "integrity": "sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz", - "integrity": "sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz", - "integrity": "sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz", - "integrity": "sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz", - "integrity": "sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@ljharb/through": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", - "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@marinade.finance/directed-stake-sdk": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@marinade.finance/directed-stake-sdk/-/directed-stake-sdk-0.0.4.tgz", - "integrity": "sha512-5WTBDRg8hbCHS54wUUhPUuXj9JiQE3Bc1+nmDI3JivQPHu7VsDaPB3w1SHRh0bfARnZQg9oKg8s6jVwNiScCsQ==", - "dependencies": { - "@coral-xyz/anchor": "^0.27.0", - "bs58": "^5.0.0" - }, - "engines": { - "node": ">10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.74.0", - "bn.js": "^5.2.1", - "jsbi": "^4.3.0" - } - }, - "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.27.0.tgz", - "integrity": "sha512-+P/vPdORawvg3A9Wj02iquxb4T0C5m4P6aZBVYysKl4Amk+r6aMPZkUhilBkD6E4Nuxnoajv3CFykUfkGE0n5g==", - "dependencies": { - "@coral-xyz/borsh": "^0.27.0", - "@solana/web3.js": "^1.68.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, - "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/anchor/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/@marinade.finance/directed-stake-sdk/node_modules/@coral-xyz/borsh": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.27.0.tgz", - "integrity": "sha512-tJKzhLukghTWPLy+n8K8iJKgBq1yLT/AxaNd10yJrX8mI56ao5+OFAKAqW/h0i79KCvb4BK0VGO5ECmmolFz9A==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.68.0" - } - }, - "node_modules/@marinade.finance/directed-stake-sdk/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@marinade.finance/marinade-ts-sdk": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@marinade.finance/marinade-ts-sdk/-/marinade-ts-sdk-5.0.6.tgz", - "integrity": "sha512-oP1SNCey8l/2WJt2h84KSJFiynNGIEsLI6YOslMnvnaNn+PbcBDbxdTUh8IMW+L6bLF3qWYoXryK4TNOzdjR6g==", - "dependencies": { - "@coral-xyz/anchor": "^0.28.0", - "@marinade.finance/directed-stake-sdk": "^0.0.4", - "@marinade.finance/native-staking-sdk": "^1.0.0", - "@solana/spl-stake-pool": "^0.6.5", - "@solana/spl-token-3.x": "npm:@solana/spl-token@^0.3.8", - "borsh": "^0.7.0", - "bs58": "^5.0.0" - }, - "engines": { - "anchor": ">=0.28.0", - "node": ">=16.0.0" - } - }, - "node_modules/@marinade.finance/native-staking-sdk": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@marinade.finance/native-staking-sdk/-/native-staking-sdk-1.0.0.tgz", - "integrity": "sha512-Cj2dy3SH9LAgcFBpGEgRHyF/nK+L7SfNIHkGqAZYRDVgn/h7u8bqKNkYqKXgCWbA5WwPmJzugWWm1DxEt7LyPQ==", - "dependencies": { - "@solana/spl-memo": "^0.2.3", - "@solana/web3.js": "^1.74.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@metaplex-foundation/beet": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/beet/-/beet-0.7.1.tgz", - "integrity": "sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA==", - "dependencies": { - "ansicolors": "^0.3.2", - "bn.js": "^5.2.0", - "debug": "^4.3.3" - } - }, - "node_modules/@metaplex-foundation/beet-solana": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/beet-solana/-/beet-solana-0.4.0.tgz", - "integrity": "sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ==", - "dependencies": { - "@metaplex-foundation/beet": ">=0.1.0", - "@solana/web3.js": "^1.56.2", - "bs58": "^5.0.0", - "debug": "^4.3.4" - } - }, - "node_modules/@metaplex-foundation/cusper": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/cusper/-/cusper-0.0.2.tgz", - "integrity": "sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==" - }, - "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@project-serum/borsh": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", - "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.2.0" - } - }, - "node_modules/@solana/buffer-layout": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", - "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", - "dependencies": { - "buffer": "~6.0.3" - }, - "engines": { - "node": ">=5.10" - } - }, - "node_modules/@solana/buffer-layout-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", - "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@solana/spl-memo": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@solana/spl-memo/-/spl-memo-0.2.3.tgz", - "integrity": "sha512-CNsKSsl85ebuVoeGq1LDYi5M/PMs1Pxv2/UsyTgS6b30qrYqZOXha5ouZzgGKtJtZ3C3dxfOAEw6caJPN1N63w==", - "dependencies": { - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.20.0" - } - }, - "node_modules/@solana/spl-stake-pool": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@solana/spl-stake-pool/-/spl-stake-pool-0.6.5.tgz", - "integrity": "sha512-gAYjX4LlRem3Bje1csZOOBStX8wAH8b8tu4sublUTIoJxLMdEbXqnwc8RJ2lAsmFkjxxomEM9Hk65F8jcvv15A==", - "dependencies": { - "@project-serum/borsh": "^0.2.2", - "@solana/buffer-layout": "^4.0.0", - "@solana/spl-token": "^0.1.8", - "@solana/web3.js": "^1.30.2", - "bn.js": "^5.2.0", - "buffer": "^6.0.3" - } - }, - "node_modules/@solana/spl-stake-pool/node_modules/@solana/spl-token": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz", - "integrity": "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==", - "dependencies": { - "@babel/runtime": "^7.10.5", - "@solana/web3.js": "^1.21.0", - "bn.js": "^5.1.0", - "buffer": "6.0.3", - "buffer-layout": "^1.2.0", - "dotenv": "10.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@solana/spl-token": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", - "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.47.4" - } - }, - "node_modules/@solana/spl-token-3.x": { - "name": "@solana/spl-token", - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.9.tgz", - "integrity": "sha512-1EXHxKICMnab35MvvY/5DBc/K/uQAOJCYnDZXw83McCAYUAfi+rwq6qfd6MmITmSTEhcfBcl/zYxmW/OSN0RmA==", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.47.4" - } - }, - "node_modules/@solana/web3.js": { - "version": "1.78.5", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.78.5.tgz", - "integrity": "sha512-2ZHsDNqkKdglJQrIvJ3p2DmgS3cGnary3VJyqt9C1SPrpAtLYzcElr3xyXJOznyQTU/8AMw+GoF11lFoKbicKg==", - "dependencies": { - "@babel/runtime": "^7.22.6", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.1", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.3.0", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.3", - "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.0", - "node-fetch": "^2.6.12", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" - } - }, - "node_modules/@solana/web3.js/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@solana/web3.js/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/@solana/web3.js/node_modules/superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" - }, - "node_modules/@sqds/multisig": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@sqds/multisig/-/multisig-1.9.0.tgz", - "integrity": "sha512-rPPVOG3lMefnlrYp59/1Q7+/j5skvsAfnoTu54FxQP136S4m03nElnaJq3RuKu0JogKHBczwCGZ7Oj1CjadyLg==", - "dependencies": { - "@metaplex-foundation/beet": "0.7.1", - "@metaplex-foundation/beet-solana": "0.4.0", - "@metaplex-foundation/cusper": "^0.0.2", - "@solana/spl-token": "^0.3.6", - "@solana/web3.js": "^1.70.3", - "@types/bn.js": "^5.1.1", - "assert": "^2.0.0", - "bn.js": "^5.2.1", - "buffer": "6.0.3", - "invariant": "2.2.4" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/inquirer": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.3.tgz", - "integrity": "sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw==", - "dev": true, - "dependencies": { - "@types/through": "*", - "rxjs": "^7.2.0" - } - }, - "node_modules/@types/node": { - "version": "20.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz", - "integrity": "sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==" - }, - "node_modules/@types/through": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.31.tgz", - "integrity": "sha512-LpKpmb7FGevYgXnBXYs6HWnmiFyVG07Pt1cnbgM1IhEacITTiUaBXXvOR3Y50ksaJWGSfhbEvQFivQEFGCC55w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "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==", - "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/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "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==", - "dev": true - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "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==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "engines": { - "node": "*" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, - "node_modules/borsh/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/borsh/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "dependencies": { - "base-x": "^4.0.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-layout": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", - "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", - "engines": { - "node": ">=4.5" - } - }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", - "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "engines": { - "node": ">=0.8" - } - }, - "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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "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==" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", - "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/esbuild": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz", - "integrity": "sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.10", - "@esbuild/android-arm": "0.19.10", - "@esbuild/android-arm64": "0.19.10", - "@esbuild/android-x64": "0.19.10", - "@esbuild/darwin-arm64": "0.19.10", - "@esbuild/darwin-x64": "0.19.10", - "@esbuild/freebsd-arm64": "0.19.10", - "@esbuild/freebsd-x64": "0.19.10", - "@esbuild/linux-arm": "0.19.10", - "@esbuild/linux-arm64": "0.19.10", - "@esbuild/linux-ia32": "0.19.10", - "@esbuild/linux-loong64": "0.19.10", - "@esbuild/linux-mips64el": "0.19.10", - "@esbuild/linux-ppc64": "0.19.10", - "@esbuild/linux-riscv64": "0.19.10", - "@esbuild/linux-s390x": "0.19.10", - "@esbuild/linux-x64": "0.19.10", - "@esbuild/netbsd-x64": "0.19.10", - "@esbuild/openbsd-x64": "0.19.10", - "@esbuild/sunos-x64": "0.19.10", - "@esbuild/win32-arm64": "0.19.10", - "@esbuild/win32-ia32": "0.19.10", - "@esbuild/win32-x64": "0.19.10" - } - }, - "node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", - "engines": { - "node": "> 0.1.90" - } - }, - "node_modules/fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" - }, - "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dev": true, - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": 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, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "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==", - "dev": 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/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "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 - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "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==", - "dev": 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==" - }, - "node_modules/inquirer": { - "version": "9.2.11", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", - "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", - "dependencies": { - "@ljharb/through": "^2.3.9", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "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==", - "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==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "engines": { - "node": ">=8" - } - }, - "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==", - "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-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", - "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "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==" - }, - "node_modules/jsbi": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz", - "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==", - "peer": true - }, - "node_modules/json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", - "dev": true, - "dependencies": { - "jsonify": "^0.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/klaw-sync": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/log-symbols/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==" - }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", - "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/ora/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/patch-package": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", - "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", - "dev": true, - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^4.1.2", - "ci-info": "^3.7.0", - "cross-spawn": "^7.0.3", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^9.0.0", - "json-stable-stringify": "^1.0.2", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.6", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^7.5.3", - "slash": "^2.0.0", - "tmp": "^0.0.33", - "yaml": "^2.2.2" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "node": ">=14", - "npm": ">5" - } - }, - "node_modules/patch-package/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": 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/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==", - "dev": 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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "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==", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rpc-websockets": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.6.0.tgz", - "integrity": "sha512-Jgcs8q6t8Go98dEulww1x7RysgTkzpCMelVxZW4hvuyFtOGpeUz9prpr2KjUa/usqxgFCd9Tu3+yhHEP9GVmiQ==", - "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", - "uuid": "^8.3.2", - "ws": "^8.5.0" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/kozjak" - }, - "optionalDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - } - }, - "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz", - "integrity": "sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": 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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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==" - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - }, - "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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-encoding-utf-8": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "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, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tsx": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.0.tgz", - "integrity": "sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==", - "dependencies": { - "esbuild": "~0.19.10", - "get-tsconfig": "^4.7.2" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici": { - "version": "5.28.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", - "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "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==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", - "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - } - } -} diff --git a/package.json b/package.json index 5153e1d..5866d34 100644 --- a/package.json +++ b/package.json @@ -3,27 +3,21 @@ "main": "lib/main.js", "private": false, "version": "1.0.0", - "type": "module", "scripts": { - "dev": "npx tsx ./src/main.ts", - "dev2": "ts-node --esm --experimental-specifier-resolution=node ./src/main.ts", - "build": "tsc", - "postinstall": "patch-package" + "dev": "tsx ./src/main.ts", + "build": "rimraf dist && esbuild src/main.ts --platform=node --bundle --outfile=dist/index.js" }, "devDependencies": { "@types/inquirer": "^9.0.3", - "patch-package": "^8.0.0", - "ts-node": "^10.9.2", + "esbuild": "^0.25.3", "typescript": "^5.0.2" }, "dependencies": { - "@actions/core": "^1.10.1", - "@marinade.finance/marinade-ts-sdk": "^5.0.6", - "@solana/web3.js": "^1.78.4", - "@sqds/multisig": "^1.9.0", - "bs58": "^5.0.0", - "chalk": "^5.3.0", - "inquirer": "^9.2.11", - "tsx": "^4.7.0" + "@actions/core": "1.10.1", + "@marinade.finance/marinade-ts-sdk": "5.0.6", + "@solana/web3.js": "^1.98.2", + "@sqds/multisig": "2.1.3", + "rimraf": "6.0.1", + "tsx": "4.19.4" } } diff --git a/patches/@sqds+multisig+1.9.0.patch b/patches/@sqds+multisig+1.9.0.patch deleted file mode 100644 index c2ad86a..0000000 --- a/patches/@sqds+multisig+1.9.0.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/node_modules/@sqds/multisig/package.json b/node_modules/@sqds/multisig/package.json -index 00b2821..1b99d22 100644 ---- a/node_modules/@sqds/multisig/package.json -+++ b/node_modules/@sqds/multisig/package.json -@@ -3,6 +3,7 @@ - "version": "1.9.0", - "description": "SDK for Squads Multisig Program v4", - "main": "lib/index.js", -+ "type": "module", - "license": "MIT", - "scripts": { - "build": "tsc", diff --git a/src/main.ts b/src/main.ts index a2a4ffe..23b9774 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,7 +2,6 @@ import * as core from "@actions/core"; import { AccountMeta, Connection, - Keypair, PublicKey, SYSVAR_CLOCK_PUBKEY, SYSVAR_RENT_PUBKEY, @@ -14,16 +13,21 @@ import { BN } from "@marinade.finance/marinade-ts-sdk"; import { IDL_DISCRIMINATOR, getIDLPDA, keypairFrom } from "./utils.js"; async function initialize() { - const networkUrl: string = process.env.NETWORK_URL!; - const multisigPda: string = process.env.MULTISIG_PDA!; - const multisigVaultIndex = process.env.MULTISIG_VAULT_INDEX!; - const programId = process.env.PROGRAM_ID!; - const buffer = process.env.BUFFER!; - const spillAddress = process.env.SPILL_ADDRESS!; - const name = process.env.NAME!; - const keypair = process.env.KEYPAIR!; - const executableData = process.env.EXECUTABLE_DATA!; - const idlBuffer = process.env.IDL_BUFFER; + const networkUrl: string = + core.getInput("network-url") ?? process.env.NETWORK_URL!; + const multisigPda: string = + core.getInput("multisig-pda") ?? process.env.MULTISIG_PDA!; + const multisigVaultIndex = + core.getInput("multisig-vault-index") ?? process.env.MULTISIG_VAULT_INDEX!; + const programId = core.getInput("program-id") ?? process.env.PROGRAM_ID!; + const buffer = core.getInput("buffer") ?? process.env.BUFFER!; + const spillAddress = + core.getInput("spill-address") ?? process.env.SPILL_ADDRESS!; + const name = core.getInput("name") ?? process.env.NAME!; + const keypair = core.getInput("keypair") ?? process.env.KEYPAIR!; + const executableData = + core.getInput("executable-data") ?? process.env.EXECUTABLE_DATA!; + const idlBuffer = core.getInput("idl-buffer") ?? process.env.IDL_BUFFER!; console.log(`Network URL: ${networkUrl}`); console.log(`Multisig PDA: ${multisigPda}`); @@ -34,7 +38,10 @@ async function initialize() { console.log(`Name: ${name}`); console.log(`Executable Data: ${executableData}`); console.log(`IDL Buffer: ${idlBuffer ? idlBuffer : "None"}`); - console.log(`Keypair: ***`); + + const coreKeypair = keypairFrom(keypair, "keypair"); + console.log(`Keypair Public Key: ${coreKeypair.publicKey}`); + console.log("Initializing..."); let multisigVaultIndexNumber = Number(multisigVaultIndex); @@ -47,7 +54,7 @@ async function initialize() { console.log(`Multisig Vault: ${multisigVault}`); const upgradeData = new BN(3, 10); - const keys: AccountMeta[] = [ + const upgradeIxKeys: AccountMeta[] = [ { pubkey: new PublicKey(executableData), // executable data isWritable: true, @@ -89,14 +96,6 @@ async function initialize() { const blockhash = (await connection.getLatestBlockhash()).blockhash; - const coreKeypair = keypairFrom(keypair, "keypair"); - - const multisigInfo = - await multisig.accounts.accountProviders.Multisig.fromAccountAddress( - connection, - new PublicKey(multisigPda) - ); - const transactionMessage = new TransactionMessage({ payerKey: new PublicKey(multisigVault), recentBlockhash: blockhash, @@ -104,14 +103,13 @@ async function initialize() { new TransactionInstruction({ programId: new PublicKey("BPFLoaderUpgradeab1e11111111111111111111111"), data: upgradeData.toArrayLike(Buffer, "le", 4), - keys, + keys: upgradeIxKeys, }), ], }); - let idlKeys: AccountMeta[]; if (idlBuffer) { - idlKeys = [ + const idlKeys: AccountMeta[] = [ { pubkey: new PublicKey(idlBuffer), isSigner: false, @@ -129,7 +127,7 @@ async function initialize() { }, ]; - transactionMessage.instructions.push( + transactionMessage.instructions.unshift( new TransactionInstruction({ programId: new PublicKey(programId), data: IDL_DISCRIMINATOR, @@ -140,6 +138,12 @@ async function initialize() { core.info("No IDL Buffer provided, skipping IDL upgrade"); } + const multisigInfo = + await multisig.accounts.accountProviders.Multisig.fromAccountAddress( + connection, + new PublicKey(multisigPda) + ); + const transactionSignature = await multisig.rpc.vaultTransactionCreate({ multisigPda: new PublicKey(multisigPda), creator: coreKeypair.publicKey, @@ -155,6 +159,11 @@ async function initialize() { core.info(`Transaction signature: ${transactionSignature}`); core.info("Proposal has been created, execute it on the Squads app."); + core.info("Transaction will:"); + core.info(`- Upgrade program ${programId} with buffer ${buffer}`); + if (idlBuffer) { + core.info(`- Upgrade program ${programId} IDL with buffer ${idlBuffer}`); + } } initialize(); diff --git a/tsconfig.json b/tsconfig.json index 165f3f5..5103145 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,7 @@ { "compilerOptions": { - "target": "ES2022", + "target": "es2015", "useDefineForClassFields": true, - "module": "ES2022", "lib": ["ES2020"], "skipLibCheck": true, "esModuleInterop": true, diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 0f419b5..0000000 --- a/yarn.lock +++ /dev/null @@ -1,1799 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@actions/core@^1.10.1": - version "1.10.1" - resolved "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz" - integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g== - dependencies: - "@actions/http-client" "^2.0.1" - uuid "^8.3.2" - -"@actions/http-client@^2.0.1": - version "2.2.0" - resolved "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz" - integrity sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg== - dependencies: - tunnel "^0.0.6" - undici "^5.25.4" - -"@babel/runtime@^7.10.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.22.6": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz" - integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA== - dependencies: - regenerator-runtime "^0.14.0" - -"@coral-xyz/anchor@^0.27.0": - version "0.27.0" - resolved "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.27.0.tgz" - integrity sha512-+P/vPdORawvg3A9Wj02iquxb4T0C5m4P6aZBVYysKl4Amk+r6aMPZkUhilBkD6E4Nuxnoajv3CFykUfkGE0n5g== - dependencies: - "@coral-xyz/borsh" "^0.27.0" - "@solana/web3.js" "^1.68.0" - base64-js "^1.5.1" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - crypto-hash "^1.3.0" - eventemitter3 "^4.0.7" - js-sha256 "^0.9.0" - pako "^2.0.3" - snake-case "^3.0.4" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/anchor@^0.28.0": - version "0.28.0" - resolved "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.28.0.tgz" - integrity sha512-kQ02Hv2ZqxtWP30WN1d4xxT4QqlOXYDxmEd3k/bbneqhV3X5QMO4LAtoUFs7otxyivOgoqam5Il5qx81FuI4vw== - dependencies: - "@coral-xyz/borsh" "^0.28.0" - "@solana/web3.js" "^1.68.0" - base64-js "^1.5.1" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^6.3.0" - cross-fetch "^3.1.5" - crypto-hash "^1.3.0" - eventemitter3 "^4.0.7" - js-sha256 "^0.9.0" - pako "^2.0.3" - snake-case "^3.0.4" - superstruct "^0.15.4" - toml "^3.0.0" - -"@coral-xyz/borsh@^0.27.0": - version "0.27.0" - resolved "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.27.0.tgz" - integrity sha512-tJKzhLukghTWPLy+n8K8iJKgBq1yLT/AxaNd10yJrX8mI56ao5+OFAKAqW/h0i79KCvb4BK0VGO5ECmmolFz9A== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@coral-xyz/borsh@^0.28.0": - version "0.28.0" - resolved "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.28.0.tgz" - integrity sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@esbuild/aix-ppc64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz#fb3922a0183d27446de00cf60d4f7baaadf98d84" - integrity sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q== - -"@esbuild/android-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz#ef31015416dd79398082409b77aaaa2ade4d531a" - integrity sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q== - -"@esbuild/android-arm@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.10.tgz#1c23c7e75473aae9fb323be5d9db225142f47f52" - integrity sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w== - -"@esbuild/android-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.10.tgz#df6a4e6d6eb8da5595cfce16d4e3f6bc24464707" - integrity sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw== - -"@esbuild/darwin-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz#8462a55db07c1b2fad61c8244ce04469ef1043be" - integrity sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA== - -"@esbuild/darwin-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz#d1de20bfd41bb75b955ba86a6b1004539e8218c1" - integrity sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA== - -"@esbuild/freebsd-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz#16904879e34c53a2e039d1284695d2db3e664d57" - integrity sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg== - -"@esbuild/freebsd-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz#8ad9e5ca9786ca3f1ef1411bfd10b08dcd9d4cef" - integrity sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag== - -"@esbuild/linux-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz#d82cf2c590faece82d28bbf1cfbe36f22ae25bd2" - integrity sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ== - -"@esbuild/linux-arm@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz#477b8e7c7bcd34369717b04dd9ee6972c84f4029" - integrity sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg== - -"@esbuild/linux-ia32@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz#d55ff822cf5b0252a57112f86857ff23be6cab0e" - integrity sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg== - -"@esbuild/linux-loong64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz#a9ad057d7e48d6c9f62ff50f6f208e331c4543c7" - integrity sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA== - -"@esbuild/linux-mips64el@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz#b011a96924773d60ebab396fbd7a08de66668179" - integrity sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A== - -"@esbuild/linux-ppc64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz#5d8b59929c029811e473f2544790ea11d588d4dd" - integrity sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ== - -"@esbuild/linux-riscv64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz#292b06978375b271bd8bc0a554e0822957508d22" - integrity sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA== - -"@esbuild/linux-s390x@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz#d30af63530f8d4fa96930374c9dd0d62bf59e069" - integrity sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA== - -"@esbuild/linux-x64@0.19.10": - version "0.19.10" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz" - integrity sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA== - -"@esbuild/netbsd-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz#fd473a5ae261b43eab6dad4dbd5a3155906e6c91" - integrity sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q== - -"@esbuild/openbsd-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz#96eb8992e526717b5272321eaad3e21f3a608e46" - integrity sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg== - -"@esbuild/sunos-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz#c16ee1c167f903eaaa6acf7372bee42d5a89c9bc" - integrity sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA== - -"@esbuild/win32-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz#7e417d1971dbc7e469b4eceb6a5d1d667b5e3dcc" - integrity sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw== - -"@esbuild/win32-ia32@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz#2b52dfec6cd061ecb36171c13bae554888b439e5" - integrity sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ== - -"@esbuild/win32-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz#bd123a74f243d2f3a1f046447bb9b363ee25d072" - integrity sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA== - -"@fastify/busboy@^2.0.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz" - integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.1" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@ljharb/through@^2.3.9": - version "2.3.9" - resolved "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz" - integrity sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ== - -"@marinade.finance/directed-stake-sdk@^0.0.4": - version "0.0.4" - resolved "https://registry.npmjs.org/@marinade.finance/directed-stake-sdk/-/directed-stake-sdk-0.0.4.tgz" - integrity sha512-5WTBDRg8hbCHS54wUUhPUuXj9JiQE3Bc1+nmDI3JivQPHu7VsDaPB3w1SHRh0bfARnZQg9oKg8s6jVwNiScCsQ== - dependencies: - "@coral-xyz/anchor" "^0.27.0" - bs58 "^5.0.0" - -"@marinade.finance/marinade-ts-sdk@^5.0.6": - version "5.0.6" - resolved "https://registry.npmjs.org/@marinade.finance/marinade-ts-sdk/-/marinade-ts-sdk-5.0.6.tgz" - integrity sha512-oP1SNCey8l/2WJt2h84KSJFiynNGIEsLI6YOslMnvnaNn+PbcBDbxdTUh8IMW+L6bLF3qWYoXryK4TNOzdjR6g== - dependencies: - "@coral-xyz/anchor" "^0.28.0" - "@marinade.finance/directed-stake-sdk" "^0.0.4" - "@marinade.finance/native-staking-sdk" "^1.0.0" - "@solana/spl-stake-pool" "^0.6.5" - "@solana/spl-token-3.x" "npm:@solana/spl-token@^0.3.8" - borsh "^0.7.0" - bs58 "^5.0.0" - -"@marinade.finance/native-staking-sdk@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@marinade.finance/native-staking-sdk/-/native-staking-sdk-1.0.0.tgz" - integrity sha512-Cj2dy3SH9LAgcFBpGEgRHyF/nK+L7SfNIHkGqAZYRDVgn/h7u8bqKNkYqKXgCWbA5WwPmJzugWWm1DxEt7LyPQ== - dependencies: - "@solana/spl-memo" "^0.2.3" - "@solana/web3.js" "^1.74.0" - bn.js "^5.2.1" - -"@metaplex-foundation/beet-solana@0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@metaplex-foundation/beet-solana/-/beet-solana-0.4.0.tgz" - integrity sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ== - dependencies: - "@metaplex-foundation/beet" ">=0.1.0" - "@solana/web3.js" "^1.56.2" - bs58 "^5.0.0" - debug "^4.3.4" - -"@metaplex-foundation/beet@0.7.1", "@metaplex-foundation/beet@>=0.1.0": - version "0.7.1" - resolved "https://registry.npmjs.org/@metaplex-foundation/beet/-/beet-0.7.1.tgz" - integrity sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA== - dependencies: - ansicolors "^0.3.2" - bn.js "^5.2.0" - debug "^4.3.3" - -"@metaplex-foundation/cusper@^0.0.2": - version "0.0.2" - resolved "https://registry.npmjs.org/@metaplex-foundation/cusper/-/cusper-0.0.2.tgz" - integrity sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA== - -"@noble/curves@^1.0.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" - integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== - dependencies: - "@noble/hashes" "1.3.2" - -"@noble/hashes@1.3.2", "@noble/hashes@^1.3.1": - version "1.3.2" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@project-serum/borsh@^0.2.2": - version "0.2.5" - resolved "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz" - integrity sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@solana/buffer-layout-utils@^0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz" - integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/web3.js" "^1.32.0" - bigint-buffer "^1.1.5" - bignumber.js "^9.0.1" - -"@solana/buffer-layout@^4.0.0": - version "4.0.1" - resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - -"@solana/spl-memo@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@solana/spl-memo/-/spl-memo-0.2.3.tgz" - integrity sha512-CNsKSsl85ebuVoeGq1LDYi5M/PMs1Pxv2/UsyTgS6b30qrYqZOXha5ouZzgGKtJtZ3C3dxfOAEw6caJPN1N63w== - dependencies: - buffer "^6.0.3" - -"@solana/spl-stake-pool@^0.6.5": - version "0.6.5" - resolved "https://registry.npmjs.org/@solana/spl-stake-pool/-/spl-stake-pool-0.6.5.tgz" - integrity sha512-gAYjX4LlRem3Bje1csZOOBStX8wAH8b8tu4sublUTIoJxLMdEbXqnwc8RJ2lAsmFkjxxomEM9Hk65F8jcvv15A== - dependencies: - "@project-serum/borsh" "^0.2.2" - "@solana/buffer-layout" "^4.0.0" - "@solana/spl-token" "^0.1.8" - "@solana/web3.js" "^1.30.2" - bn.js "^5.2.0" - buffer "^6.0.3" - -"@solana/spl-token-3.x@npm:@solana/spl-token@^0.3.8": - version "0.3.9" - resolved "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.9.tgz" - integrity sha512-1EXHxKICMnab35MvvY/5DBc/K/uQAOJCYnDZXw83McCAYUAfi+rwq6qfd6MmITmSTEhcfBcl/zYxmW/OSN0RmA== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/buffer-layout-utils" "^0.2.0" - buffer "^6.0.3" - -"@solana/spl-token@^0.1.8": - version "0.1.8" - resolved "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz" - integrity sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ== - dependencies: - "@babel/runtime" "^7.10.5" - "@solana/web3.js" "^1.21.0" - bn.js "^5.1.0" - buffer "6.0.3" - buffer-layout "^1.2.0" - dotenv "10.0.0" - -"@solana/spl-token@^0.3.6": - version "0.3.7" - resolved "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz" - integrity sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/buffer-layout-utils" "^0.2.0" - buffer "^6.0.3" - -"@solana/web3.js@^1.21.0", "@solana/web3.js@^1.30.2", "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.68.0", "@solana/web3.js@^1.70.3", "@solana/web3.js@^1.74.0", "@solana/web3.js@^1.78.4": - version "1.78.5" - resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.78.5.tgz" - integrity sha512-2ZHsDNqkKdglJQrIvJ3p2DmgS3cGnary3VJyqt9C1SPrpAtLYzcElr3xyXJOznyQTU/8AMw+GoF11lFoKbicKg== - dependencies: - "@babel/runtime" "^7.22.6" - "@noble/curves" "^1.0.0" - "@noble/hashes" "^1.3.1" - "@solana/buffer-layout" "^4.0.0" - agentkeepalive "^4.3.0" - bigint-buffer "^1.1.5" - bn.js "^5.2.1" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^4.1.0" - node-fetch "^2.6.12" - rpc-websockets "^7.5.1" - superstruct "^0.14.2" - -"@sqds/multisig@^1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@sqds/multisig/-/multisig-1.9.0.tgz" - integrity sha512-rPPVOG3lMefnlrYp59/1Q7+/j5skvsAfnoTu54FxQP136S4m03nElnaJq3RuKu0JogKHBczwCGZ7Oj1CjadyLg== - dependencies: - "@metaplex-foundation/beet" "0.7.1" - "@metaplex-foundation/beet-solana" "0.4.0" - "@metaplex-foundation/cusper" "^0.0.2" - "@solana/spl-token" "^0.3.6" - "@solana/web3.js" "^1.70.3" - "@types/bn.js" "^5.1.1" - assert "^2.0.0" - bn.js "^5.2.1" - buffer "6.0.3" - invariant "2.2.4" - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/bn.js@^5.1.1": - version "5.1.1" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - dependencies: - "@types/node" "*" - -"@types/connect@^3.4.33": - version "3.4.36" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz" - integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== - dependencies: - "@types/node" "*" - -"@types/inquirer@^9.0.3": - version "9.0.3" - resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.3.tgz" - integrity sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw== - dependencies: - "@types/through" "*" - rxjs "^7.2.0" - -"@types/node@*": - version "20.6.0" - resolved "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz" - integrity sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg== - -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/through@*": - version "0.0.31" - resolved "https://registry.npmjs.org/@types/through/-/through-0.0.31.tgz" - integrity sha512-LpKpmb7FGevYgXnBXYs6HWnmiFyVG07Pt1cnbgM1IhEacITTiUaBXXvOR3Y50ksaJWGSfhbEvQFivQEFGCC55w== - dependencies: - "@types/node" "*" - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1: - version "8.10.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== - -agentkeepalive@^4.3.0: - version "4.5.0" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz" - integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== - dependencies: - humanize-ms "^1.2.1" - -ansi-escapes@^4.3.2: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansicolors@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" - integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -assert@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz" - integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== - 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" - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.2: - version "3.0.9" - resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base-x@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz" - integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== - -base64-js@^1.3.1, base64-js@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bigint-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz" - integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== - dependencies: - bindings "^1.3.0" - -bignumber.js@^9.0.1: - version "9.1.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" - integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== - -bindings@^1.3.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bn.js@^5.1.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz" - integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== - dependencies: - base-x "^4.0.0" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bufferutil@^4.0.1: - version "4.0.7" - resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz" - integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== - dependencies: - node-gyp-build "^4.3.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -ci-info@^3.7.0: - version "3.8.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.9.1" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz" - integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ== - -cli-width@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz" - integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.1.8" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-hash@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz" - integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== - -debug@^4.3.3, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.2.0" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dotenv@10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -esbuild@~0.19.10: - version "0.19.10" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz" - integrity sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA== - optionalDependencies: - "@esbuild/aix-ppc64" "0.19.10" - "@esbuild/android-arm" "0.19.10" - "@esbuild/android-arm64" "0.19.10" - "@esbuild/android-x64" "0.19.10" - "@esbuild/darwin-arm64" "0.19.10" - "@esbuild/darwin-x64" "0.19.10" - "@esbuild/freebsd-arm64" "0.19.10" - "@esbuild/freebsd-x64" "0.19.10" - "@esbuild/linux-arm" "0.19.10" - "@esbuild/linux-arm64" "0.19.10" - "@esbuild/linux-ia32" "0.19.10" - "@esbuild/linux-loong64" "0.19.10" - "@esbuild/linux-mips64el" "0.19.10" - "@esbuild/linux-ppc64" "0.19.10" - "@esbuild/linux-riscv64" "0.19.10" - "@esbuild/linux-s390x" "0.19.10" - "@esbuild/linux-x64" "0.19.10" - "@esbuild/netbsd-x64" "0.19.10" - "@esbuild/openbsd-x64" "0.19.10" - "@esbuild/sunos-x64" "0.19.10" - "@esbuild/win32-arm64" "0.19.10" - "@esbuild/win32-ia32" "0.19.10" - "@esbuild/win32-x64" "0.19.10" - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -external-editor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -figures@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz" - integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== - dependencies: - escape-string-regexp "^5.0.0" - is-unicode-supported "^1.2.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== - dependencies: - micromatch "^4.0.2" - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -fs-extra@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.2.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-tsconfig@^4.7.2: - version "4.7.2" - resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz" - integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== - dependencies: - resolve-pkg-maps "^1.0.0" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - 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" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - 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== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inquirer@^9.2.11: - version "9.2.11" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz" - integrity sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g== - dependencies: - "@ljharb/through" "^2.3.9" - ansi-escapes "^4.3.2" - chalk "^5.3.0" - cli-cursor "^3.1.0" - cli-width "^4.1.0" - external-editor "^3.1.0" - figures "^5.0.0" - lodash "^4.17.21" - mute-stream "1.0.0" - ora "^5.4.1" - run-async "^3.0.0" - rxjs "^7.8.1" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wrap-ansi "^6.2.0" - -invariant@2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3: - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-nan@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-typed-array@^1.1.3: - version "1.1.12" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-unicode-supported@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz" - integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -jayson@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz" - integrity sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - JSONStream "^1.3.5" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - uuid "^8.3.2" - ws "^7.4.5" - -js-sha256@^0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz" - integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== - -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -json-stable-stringify@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz" - integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== - dependencies: - jsonify "^0.0.1" - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -micromatch@^4.0.2: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -ms@2.1.2, ms@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mute-stream@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz" - integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-fetch@^2.6.12: - version "2.7.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.6.1" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz" - integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^7.4.2: - version "7.4.2" - resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -pako@^2.0.3: - version "2.1.0" - resolved "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -patch-package@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz" - integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.2" - ci-info "^3.7.0" - cross-spawn "^7.0.3" - find-yarn-workspace-root "^2.0.0" - fs-extra "^9.0.0" - json-stable-stringify "^1.0.2" - klaw-sync "^6.0.0" - minimist "^1.2.6" - open "^7.4.2" - rimraf "^2.6.3" - semver "^7.5.3" - slash "^2.0.0" - tmp "^0.0.33" - yaml "^2.2.2" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== - -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rpc-websockets@^7.5.1: - version "7.6.0" - resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.6.0.tgz" - integrity sha512-Jgcs8q6t8Go98dEulww1x7RysgTkzpCMelVxZW4hvuyFtOGpeUz9prpr2KjUa/usqxgFCd9Tu3+yhHEP9GVmiQ== - dependencies: - "@babel/runtime" "^7.17.2" - eventemitter3 "^4.0.7" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -run-async@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz" - integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== - -rxjs@^7.2.0, rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-buffer@^5.0.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^7.5.3: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -string-width@^4.1.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.1.1: - 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== - dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -superstruct@^0.14.2: - version "0.14.2" - resolved "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz" - integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-regex-range@^5.0.1: - 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== - dependencies: - is-number "^7.0.0" - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.0.3, tslib@^2.1.0: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tsx@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/tsx/-/tsx-4.7.0.tgz" - integrity sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg== - dependencies: - esbuild "~0.19.10" - get-tsconfig "^4.7.2" - optionalDependencies: - fsevents "~2.3.3" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -typescript@^5.0.2: - version "5.2.2" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== - -undici@^5.25.4: - version "5.28.2" - resolved "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz" - integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w== - dependencies: - "@fastify/busboy" "^2.0.0" - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -utf-8-validate@^5.0.2: - version "5.0.10" - resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" - integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - dependencies: - node-gyp-build "^4.3.0" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.12.5: - version "0.12.5" - resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-typed-array@^1.1.11, which-typed-array@^1.1.2: - version "1.1.11" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@^7.4.5: - version "7.5.9" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^8.5.0: - version "8.14.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz" - integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^2.2.2: - version "2.3.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz" - integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==