@cowprotocol/cow-sdk 6.2.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/bridging/BridgingSdk/BridgingSdk.d.ts +3 -3
  2. package/dist/bridging/BridgingSdk/mock/bridgeRequestMocks.d.ts +2 -1
  3. package/dist/bridging/const.d.ts +1 -0
  4. package/dist/bridging/providers/across/AcrossBridgeProvider.d.ts +2 -2
  5. package/dist/bridging/providers/bungee/BungeeBridgeProvider.d.ts +3 -2
  6. package/dist/bridging/providers/bungee/types.d.ts +3 -2
  7. package/dist/bridging/providers/mock/MockBridgeProvider.d.ts +2 -2
  8. package/dist/bridging/providers/utils/getGasLimitEstimationForHook.d.ts +1 -1
  9. package/dist/bridging/types.d.ts +10 -2
  10. package/dist/chains/types.d.ts +4 -0
  11. package/dist/chains/utils.d.ts +1 -0
  12. package/dist/index-df7f4c3d.js +29 -0
  13. package/dist/index-df7f4c3d.js.map +1 -0
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.js +4 -4
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.modern.mjs +1 -1
  18. package/dist/index.module.js +4 -4
  19. package/dist/index.module.js.map +1 -1
  20. package/dist/package.json +2 -1
  21. package/dist/src/bridging/PROVIDER_README.md +56 -80
  22. package/dist/test/getWallet.d.ts +5 -0
  23. package/dist/{utils-0027f121.js → utils-d4263c91.js} +1 -1
  24. package/dist/{utils-0027f121.js.map → utils-d4263c91.js.map} +1 -1
  25. package/dist/{utils-23bf76fc.js → utils-f739380a.js} +1 -1
  26. package/dist/{utils-23bf76fc.js.map → utils-f739380a.js.map} +1 -1
  27. package/dist/{utils-fc43cd05.js → utils-f80c8347.js} +2 -2
  28. package/dist/{utils-fc43cd05.js.map → utils-f80c8347.js.map} +1 -1
  29. package/package.json +2 -1
  30. package/dist/index-7b4950ee.js +0 -29
  31. package/dist/index-7b4950ee.js.map +0 -1
@@ -1,29 +0,0 @@
1
- import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{utils as n,Contract as r,ethers as i,constants as s,BigNumber as a}from"ethers";import{Signer as o,VoidSigner as u}from"@ethersproject/abstract-signer";import{MetadataApi as l,stringifyDeterministic as c}from"@cowprotocol/app-data";import{keccak256 as d,toUtf8Bytes as h,solidityKeccak256 as p,Interface as f,defaultAbiCoder as m,getCreate2Address as y,arrayify as g,joinSignature as b,splitSignature as v,formatBytes32String as w}from"ethers/lib/utils";import A from"deepmerge";import{ORDER_TYPE_FIELDS as T,OrderKind as E,SigningScheme as S,hashTypedData as I,isTypedDataSigner as k,OrderBalance as C}from"@cowprotocol/contracts";import{Planner as N,Contract as x}from"@weiroll/weiroll.js";import{gql as _,request as R}from"graphql-request";import{StandardMerkleTree as M}from"@openzeppelin/merkle-tree";var P,O,B,D;!function(e){e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.EXPIRED="expired",e.REFUND="refund",e.UNKNOWN="unknown"}(P||(P={})),function(e){e.NO_INTERMEDIATE_TOKENS="NO_INTERMEDIATE_TOKENS",e.API_ERROR="API_ERROR",e.INVALID_API_JSON_RESPONSE="INVALID_API_JSON_RESPONSE",e.ONLY_SELL_ORDER_SUPPORTED="ONLY_SELL_ORDER_SUPPORTED",e.TX_BUILD_ERROR="TX_BUILD_ERROR",e.QUOTE_ERROR="QUOTE_ERROR",e.NO_ROUTES="NO_ROUTES",e.INVALID_BRIDGE="INVALID_BRIDGE"}(O||(O={}));class L extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeProviderQuoteError"}}class F extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeProviderError"}}class U extends Error{constructor(e,t){super(e),this.context=t,this.name="BridgeOrderParsingError"}}function G(e){return"bridge"in e}function H(e){return!G(e)}function q(e){if(!G(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function V(e){if(!H(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function z(e){if(!e)return[];const t=JSON.parse(e);return j(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function j(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}function K(){return K=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},K.apply(this,arguments)}function W(e,t){if(null==e)return{};var n,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)t.indexOf(n=s[r])>=0||(i[n]=e[n]);return i}!function(e){e[e.MAINNET=1]="MAINNET",e[e.BNB=56]="BNB",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.POLYGON=137]="POLYGON",e[e.LENS=232]="LENS",e[e.BASE=8453]="BASE",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.AVALANCHE=43114]="AVALANCHE",e[e.SEPOLIA=11155111]="SEPOLIA"}(B||(B={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(D||(D={}));class J extends Error{constructor(e,t){super(e),this.error_code=t}}let Q=!1;function Y(e){Q&&console.log(`[COW TRADING SDK] ${e}`)}function X(e){Q=e}const $=["logoUrl"],Z="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ee="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",te={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${ee}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},ne={[B.MAINNET]:re(B.MAINNET,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",te),[B.GNOSIS_CHAIN]:re(B.GNOSIS_CHAIN,"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",{decimals:18,name:"Wrapped XDAI",symbol:"WXDAI"}),[B.ARBITRUM_ONE]:re(B.ARBITRUM_ONE,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",te),[B.BASE]:re(B.BASE,"0x4200000000000000000000000000000000000006",te),[B.SEPOLIA]:re(B.SEPOLIA,"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",te),[B.POLYGON]:re(B.POLYGON,"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",{decimals:18,name:"Wrapped POL",symbol:"WPOL"}),[B.AVALANCHE]:re(B.AVALANCHE,"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",{decimals:18,name:"Wrapped AVAX",symbol:"WAVAX"}),[B.LENS]:re(B.LENS,"0x6bdc36e20d267ff0dd6097799f82e78907105e2f",{decimals:18,name:"Wrapped GHO",symbol:"WGHO"}),[B.BNB]:re(B.BNB,"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",{decimals:18,name:"Wrapped BNB",symbol:"WBNB"})};function re(e,t,n){const{logoUrl:r}=n;return K({chainId:e,address:t},W(n,$),{logoUrl:r||`${ee}/${e}/${t.toLowerCase()}/logo.png`})}const ie={address:Z,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${ee}/1/${Z}/logo.png`},se="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",ae=`${se}/src/chains`,oe=`${ae}/images/arbitrum-logo-light.svg`,ue=`${ae}/images/arbitrum-logo-dark.svg`,le={id:B.ARBITRUM_ONE,label:"Arbitrum",eip155Label:"Arbitrum One",nativeCurrency:K({},ie,{chainId:B.ARBITRUM_ONE}),addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:oe,dark:ue},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},ce=`${ae}/images/base-logo.svg`,de={id:B.BASE,label:"Base",eip155Label:"Base",nativeCurrency:K({},ie,{chainId:B.BASE}),addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:ce,dark:ce},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"BaseScan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},he=`${ae}/images/gnosis-logo.svg`,pe={id:B.GNOSIS_CHAIN,label:"Gnosis",eip155Label:"Gnosis",nativeCurrency:K({},ie,{chainId:B.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${ee}/100/${Z}/logo.png`}),addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:he,dark:he},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},fe=`${ae}/images/mainnet-logo.svg`,me={id:B.MAINNET,label:"Ethereum",eip155Label:"Ethereum Mainnet",nativeCurrency:K({},ie,{chainId:B.MAINNET}),addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:fe,dark:fe},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},ye=`${ae}/images/sepolia-logo.svg`,ge={id:B.SEPOLIA,label:"Sepolia",eip155Label:"Ethereum Sepolia",nativeCurrency:K({},ie,{chainId:B.SEPOLIA}),addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:ye,dark:ye},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},be=`${ae}/images/avax-logo.svg`,ve={id:B.AVALANCHE,label:"Avalanche",eip155Label:"Avalanche C-Chain",logo:{light:be,dark:be},nativeCurrency:K({},ie,{chainId:B.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:be}),addressPrefix:"avax",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},color:"#ff3944",website:{name:"Avalanche",url:"https://www.avax.network/"},docs:{name:"Avalanche Docs",url:"https://build.avax.network/docs"},blockExplorer:{name:"SnowScan",url:"https://snowscan.xyz"}},we=`${ae}/images/bnb-logo.svg`,Ae={id:B.BNB,label:"BNB",eip155Label:"BNB Chain Mainnet",logo:{light:we,dark:we},nativeCurrency:K({},ie,{chainId:B.BNB,name:"BNB Chain Native Token",symbol:"BNB",logoUrl:we}),addressPrefix:"bnb",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}},rpcUrls:{default:{http:["https://bsc-dataseed1.bnbchain.org"]}},color:"#F0B90B",website:{name:"BNB Chain",url:"https://www.bnbchain.org"},docs:{name:"BNB Chain Docs",url:"https://docs.bnbchain.org"},blockExplorer:{name:"BscScan",url:"https://bscscan.com"},bridges:[{name:"BNB Chain Cross-Chain Bridge",url:"https://www.bnbchain.org/en/bnb-chain-bridge"}]},Te={id:B.LENS,label:"Lens",eip155Label:"Lens Chain Mainnet",logo:{light:`${ae}/images/lens-logo-light.svg`,dark:`${ae}/images/lens-logo-dark.svg`},nativeCurrency:K({},ie,{chainId:B.LENS,name:"GHO",symbol:"GHO",logoUrl:`${ee}/1/0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f/logo.png`}),addressPrefix:"lens",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1724216}},rpcUrls:{default:{http:["https://rpc.lens.xyz"]}},color:"#FFFFFF",website:{name:"Lens",url:"https://www.lens.xyz"},docs:{name:"Lens Docs",url:"https://docs.lens.xyz"},blockExplorer:{name:"Lens Explorer",url:"https://explorer.lens.xyz"},bridges:[{name:"Lens Bridge",url:"https://lens.xyz/bridge"}]},Ee=`${ae}/images/optimism-logo.svg`,Se={id:10,label:"Optimism",eip155Label:"OP Mainnet",logo:{light:Ee,dark:Ee},nativeCurrency:K({},ie,{chainId:10}),addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},Ie=`${ae}/images/polygon-logo.svg`,ke={id:B.POLYGON,label:"Polygon",eip155Label:"Polygon Mainnet",logo:{light:Ie,dark:Ie},nativeCurrency:K({},ie,{chainId:B.POLYGON,name:"POL",symbol:"POL",logoUrl:Ie}),addressPrefix:"matic",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#8247e5",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com"}},Ce={[B.MAINNET]:me,[B.GNOSIS_CHAIN]:pe,[B.ARBITRUM_ONE]:le,[B.BASE]:de,[B.AVALANCHE]:ve,[B.POLYGON]:ke,[B.BNB]:Ae,[B.LENS]:Te,[B.SEPOLIA]:ge},Ne=Object.values(Ce),xe=Ne.map(e=>e.id),_e={[D.OPTIMISM]:Se},Re=Ne.concat(Object.values(_e)),Me=Re.map(e=>e.id),Pe=["prod","staging"],Oe={env:"prod",chainId:B.MAINNET};function Be(e){return xe.reduce((t,n)=>K({},t,{[n]:"function"==typeof e?e(n):e}),{})}function De(e){return Be(e)}const Le="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",Fe="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",Ue="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",Ge="1.0.0",He="1.0.1",qe=He,Ve={[Ge]:"0x00E989b87700514118Fa55326CD1cCE82faebEF6",[He]:"0x312f92fe5f1710408B20D52A374fa29e099cFA86"},ze={[Ge]:"0x2CFFA8cf11B90C9F437567b86352169dF4009F73",[He]:"0xa2704cf562ad418bf0453f4b662ebf6a2489ed88"},je={[Ge]:"0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",[He]:"0x60a03461009557601f61033d38819003918201601f19168301916001600160401b0383118484101761009957808492604094855283398101031261009557610052602061004b836100ad565b92016100ad565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560405161027b90816100c28239608051818181608b01526101750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100955756fe60806040526004361015610018575b3661019757610197565b5f3560e01c8063025b22bc146100375763f851a4400361000e57610116565b346101125760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101125760043573ffffffffffffffffffffffffffffffffffffffff81169081810361011257337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff160361010d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2005b61023d565b5f80fd5b34610112575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011257602061014e61016c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b33300361010d577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101f0575b1561023d577ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000005f351614156101c3565b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e15610277573d5ff35b3d5ffd"},Ke=De("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),We=De("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),Je=De(Fe),Qe=De(Ue),Ye=K({},De("0xba3cb449bd2b4adddbc894d8697f5170800eadec"),{[B.LENS]:"0x5A5b8aE7a0b4C0EAf453d10DCcfbA413f07ebdC2"}),Xe=K({},De("0x04501b9b1d52e67f6862d157e00d13419d2d6e95"),{[B.LENS]:"0xFb337f8a725A142f65fb9ff4902d41cc901de222"}),$e=4294967295,Ze="https://gnosis.mypinata.cloud/ipfs",et="https://api.pinata.cloud",tt=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t;class nt extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=e,this.body=t}}const rt=[408,425,429,500,502,503,504],it={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof nt)||rt.includes(e.response.status)},st={tokensPerInterval:5,interval:"second"},at=async e=>{if(204!==e.status)try{const t=e.headers.get("Content-Type");if(t)return t.toLowerCase().startsWith("application/json")?await e.json():await e.text()}catch(e){console.error(e)}};async function ot(e,{path:n,query:r,method:i,body:s},a,o){const u=`${e}${n}${r?"?"+r:""}`,l={method:i,body:(()=>{if(s)return"string"==typeof s?s:JSON.stringify(s)})(),headers:{Accept:"application/json","Content-Type":"application/json"}};return t(async()=>{await a.removeTokens(1);const e=await fetch(u,l),t=await at(e);return e.status>=200&&e.status<300?t:Promise.reject(new nt(e,t))},o)}function ut(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:n}=t;return K({},e,{validTo:n,owner:e.onchainUser||e.owner,sellToken:Le})}(function(e){const{executedFeeAmount:t,executedFee:n}=e,r=BigInt(t||"0"),i=BigInt(n||"0");return K({},e,{totalFee:String(r+i)})}(e))}const lt={[B.MAINNET]:"https://api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[B.BASE]:"https://api.cow.fi/base",[B.SEPOLIA]:"https://api.cow.fi/sepolia",[B.POLYGON]:"https://api.cow.fi/polygon",[B.AVALANCHE]:"https://api.cow.fi/avalanche",[B.LENS]:"https://api.cow.fi/lens",[B.BNB]:"https://api.cow.fi/bnb"},ct={[B.MAINNET]:"https://barn.api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[B.BASE]:"https://barn.api.cow.fi/base",[B.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[B.POLYGON]:"https://barn.api.cow.fi/polygon",[B.AVALANCHE]:"https://barn.api.cow.fi/avalanche",[B.LENS]:"https://barn.api.cow.fi/lens",[B.BNB]:"https://barn.api.cow.fi/bnb"};function dt(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return void 0!==r&&(t[n]=r),t},{})}class ht{constructor(t={}){this.context=K({},Oe,t),this.rateLimiter=new e(t.limiterOpts||st)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new J("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new J("Must specify either owner or orderId"));const n=new URLSearchParams(dt(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:n},t)}getOrders({owner:e,offset:t=0,limit:n=1e3},r={}){const i=new URLSearchParams(dt({offset:t.toString(),limit:n.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},r).then(e=>e.map(ut))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(ut))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>ut(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:n}=this.getContextWithOverride(t),r=Pe.filter(e=>e!==n);let i=0;const s=n=>{const a=r[i];return n instanceof nt&&404===n.response.status&&a?(i++,this.getOrder(e,K({},t,{env:a})).catch(s)):Promise.reject(n)};return this.getOrder(e,K({},t,{env:n})).catch(s)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,n={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},n)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:n,env:r}=this.getContextWithOverride(t);return this.getApiBaseUrls(r)[n]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return K({},this.context,e)}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?lt:ct}fetch(t,n={}){const{chainId:r,env:i,backoffOpts:s}=this.getContextWithOverride(n),a=this.getApiBaseUrls(i)[r],o=s||it,u=n.limiterOpts?new e(n.limiterOpts):this.rateLimiter;return Y(`Fetching OrderBook API: ${a}${t.path}. Params: ${JSON.stringify(t,tt)}`),ot(a,t,u,o)}}var pt,ft,mt,yt,gt,bt,vt,wt,At,Tt,Et,St,It,kt,Ct;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(pt||(pt={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(ft||(ft={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(mt||(mt={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(yt||(yt={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(gt||(gt={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(bt||(bt={})),function(e){e.BUY="buy",e.SELL="sell"}(vt||(vt={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(wt||(wt={})),function(e){e.BUY="buy"}(At||(At={})),function(e){e.SELL="sell"}(Tt||(Tt={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(Et||(Et={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(St||(St={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(It||(It={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(kt||(kt={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(Ct||(Ct={}));const Nt=BigInt(1e4);function xt(e){const{sellDecimals:t,buyDecimals:n,orderParams:r}=e,{sellAmountAfterNetworkCosts:i,buyAmountAfterNetworkCosts:s,buyAmountBeforeNetworkCosts:a,isSell:o,networkCostAmount:u,quotePrice:l,sellAmountBeforeNetworkCosts:c}=_t({sellDecimals:t,buyDecimals:n,orderParams:r});return{isSell:o,quotePrice:l,sellAmountAfterNetworkCosts:i.big,buyAmountAfterNetworkCosts:s.big,buyAmountBeforeNetworkCosts:a.big,networkCostAmount:u.big,sellAmountBeforeNetworkCosts:c.big}}function _t(e){const{sellDecimals:t,buyDecimals:n,orderParams:r}=e,i=r.kind===vt.SELL,s=Mt(r.feeAmount,t),a=Mt(r.sellAmount,t),o=Mt(r.buyAmount,n),u=o.num/a.num,l=Mt(a.big+s.big,t);return{isSell:i,quotePrice:u,networkCostAmount:s,sellAmountBeforeNetworkCosts:a,buyAmountAfterNetworkCosts:o,sellAmountAfterNetworkCosts:l,buyAmountBeforeNetworkCosts:Mt(u*l.num,n)}}function Rt(e){var t;const{orderParams:n,sellDecimals:r,buyDecimals:i,slippagePercentBps:s}=e,a=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,{isSell:o,networkCostAmount:u,sellAmountBeforeNetworkCosts:l,buyAmountAfterNetworkCosts:c,sellAmountAfterNetworkCosts:d,buyAmountBeforeNetworkCosts:h,quotePrice:p}=_t({sellDecimals:r,buyDecimals:i,orderParams:n}),{afterPartnerFees:f,partnerFeeAmount:m}=function(e){const{sellAmountAfterNetworkCosts:t,buyAmountAfterNetworkCosts:n,isSell:r,partnerFeeBps:i}=e,s=i>0?(r?n.big:t.big)*BigInt(i)/Nt:BigInt(0);return{partnerFeeAmount:s,afterPartnerFees:r?{sellAmount:t.big,buyAmount:n.big-s}:{sellAmount:t.big+s,buyAmount:n.big}}}({sellAmountAfterNetworkCosts:d,buyAmountAfterNetworkCosts:c,buyAmountBeforeNetworkCosts:h,sellAmountBeforeNetworkCosts:l,isSell:o,partnerFeeBps:a}),{afterSlippage:y}=function(e){const{afterPartnerFees:t,isSell:n,slippagePercentBps:r}=e,i=e=>e*BigInt(r)/Nt;return{afterSlippage:n?{sellAmount:t.sellAmount,buyAmount:t.buyAmount-i(t.buyAmount)}:{sellAmount:t.sellAmount+i(t.sellAmount),buyAmount:t.buyAmount}}}({afterPartnerFees:f,isSell:o,slippagePercentBps:s});return{isSell:o,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:Mt(p*u.num,i).big},partnerFee:{amount:m,bps:a}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:h.big},afterNetworkCosts:{sellAmount:d.big,buyAmount:c.big},afterPartnerFees:f,afterSlippage:y}}function Mt(e,t){if("number"==typeof e){const n=e*10**t,r=n.toFixed();return{big:BigInt(r.includes("e")?n:r),num:e}}const n=BigInt(e);return{big:n,num:Number(n)/10**t}}const Pt={[mt.EIP712]:Ct.EIP712,[mt.ETHSIGN]:Ct.ETHSIGN},Ot=BigInt(15e4),Bt=()=>import("./utils-fc43cd05.js");class Dt{static async signOrder(e,t,n){const{signOrder:r}=await Bt();return r(e,t,n)}static async signOrderCancellation(e,t,n){const{signOrderCancellation:r}=await Bt();return r(e,t,n)}static async signOrderCancellations(e,t,n){const{signOrderCancellations:r}=await Bt();return r(e,t,n)}static async getDomain(e){const{getDomain:t}=await Bt();return t(e)}static async generateOrderId(e,t,n){const{generateOrderId:r}=await Bt();return r(e,t,n)}static async getDomainSeparator(e){const{getDomain:t}=await Bt(),{_TypedDataEncoder:n}=await import("ethers/lib/utils");return n.hashDomain(t(e))}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function Lt(e){if(e){if("volumeBps"in e)return e.volumeBps;if(Array.isArray(e))for(const t of e)if("volumeBps"in t)return t.volumeBps}}function Ft(e){return Ut(e)?Ce[e]:Gt(e)?_e[e]:void 0}function Ut(e){return e in Ce}function Gt(e){return e in _e}function Ht(e){return Ut(e)||Gt(e)}const qt=10n**6n,Vt=50,zt=K({},Be(Vt),{[B.MAINNET]:200});function jt(e,t){return t?zt[e]:Vt}const Kt=1800;function Wt({chainId:e,from:t,networkCostsAmount:n="0",isEthFlow:r},i,s){const{sellAmount:a,buyAmount:o,sellToken:u,sellTokenDecimals:l,buyToken:c,buyTokenDecimals:d,kind:h,partiallyFillable:p=!1,slippageBps:f=jt(e,r),partnerFee:m,validFor:y=Kt}=i,g=i.receiver||t,b=i.validTo||Number(function(e){return BigInt(Math.floor(Date.now()/1e3)+e)}(y)),v={sellToken:u,buyToken:c,sellAmount:a,buyAmount:o,receiver:g,validTo:b,kind:h,feeAmount:n,appData:s,partiallyFillable:p},{afterSlippage:w}=Rt({orderParams:v,slippagePercentBps:f,partnerFeeBps:Lt(m),sellDecimals:l,buyDecimals:d});return{sellToken:u,buyToken:c,sellAmount:w.sellAmount.toString(),buyAmount:w.buyAmount.toString(),validTo:b,kind:h,partiallyFillable:p,appData:s,receiver:g,feeAmount:"0",sellTokenBalance:kt.ERC20,buyTokenBalance:pt.ERC20}}const Jt=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class Qt{static createInterface(){return new n.Interface(Jt)}static connect(e,t){return new r(e,Jt,t)}}Qt.abi=Jt;const Yt=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class Xt{static createInterface(){return new n.Interface(Yt)}static connect(e,t){return new r(e,Yt,t)}}Xt.abi=Yt;const $t=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class Zt{static createInterface(){return new n.Interface($t)}static connect(e,t){return new r(e,$t,t)}}Zt.abi=$t;const en=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class tn{static createInterface(){return new n.Interface(en)}static connect(e,t){return new r(e,en,t)}}tn.abi=en;const nn=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class rn{static createInterface(){return new n.Interface(nn)}static connect(e,t){return new r(e,nn,t)}}async function sn(e,t,n,r){const{orderDigest:i,orderId:s}=await Dt.generateOrderId(e,K({},function(e){return K({},e,{sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance})}(t),{validTo:$e,sellToken:ne[e].address}),{owner:"staging"===r?Xe[e]:Ye[e]});return n&&await n(s,i)?(console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+s,{sellAmount:t.sellAmount,fee:t.feeAmount}),sn(e,function(e){return K({},e,{buyAmount:(BigInt(e.buyAmount)-BigInt(1)).toString()})}(t),n)):s}function an(e,t){return K({},e,{quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount})}function on(e){return e.sellToken.toLowerCase()===Le.toLowerCase()}function un(e){return e+e*BigInt(20)/BigInt(100)}function ln(e,t){const{costs:{networkFee:n,partnerFee:r}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return K({},e,{costs:K({},e.costs,{networkFee:K({},n,{amountInSellCurrency:t(n.amountInSellCurrency),amountInBuyCurrency:t(n.amountInBuyCurrency)}),partnerFee:K({},r,{amount:t(r.amount)})}),beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)})}function cn({quoteParameters:e,sellToken:t}){return K({},e,{sellToken:t})}function dn(e,t){return K({},t,{sellToken:ne[e].address})}async function hn(e,t,n,r,i={}){var s;const{networkCostsAmount:a="0",checkEthFlowOrderExists:o}=i,u=await e.getAddress(),l=null!==(s=n.slippageBps)&&void 0!==s?s:jt(r,!0),c=K({},dn(r,n),{slippageBps:l}),{quoteId:d}=c,h=function(e,t,n){return Zt.connect("staging"===n?Xe[t]:Ye[t],e)}(e,r,c.env),p=Wt({chainId:r,isEthFlow:!0,from:u,networkCostsAmount:a},c,t),f=await sn(r,p,o,c.env),m={buyToken:p.buyToken,receiver:p.receiver,sellAmount:p.sellAmount,buyAmount:p.buyAmount,feeAmount:p.feeAmount,partiallyFillable:p.partiallyFillable,quoteId:d,appData:t,validTo:p.validTo.toString()},y=await h.estimateGas.createOrder(m,{value:p.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),Ot));return{orderId:f,orderToSign:p,transaction:{data:h.interface.encodeFunctionData("createOrder",[m]),gasLimit:"0x"+un(y).toString(16),to:h.address,value:"0x"+BigInt(p.sellAmount).toString(16)}}}async function pn(e,t,n,r,i={}){const{appDataKeccak256:s,fullAppData:a}=n,{orderId:o,transaction:u,orderToSign:l}=await hn(t,s,r,e.context.chainId,i);Y("Uploading app-data"),await e.uploadAppData(s,a),Y("Sending on-chain order transaction");const c=await t.sendTransaction(u);return Y(`On-chain order transaction sent, txHash: ${c.hash}, order: ${o}`),{txHash:c.hash,orderId:o,orderToSign:l,signature:"",signingScheme:Ct.EIP1271}}async function fn(e,t,n,r,i={}){const{networkCostsAmount:s="0",signingScheme:a=Ct.EIP712}=i,o=on(r);if(o){const s=r.quoteId;if("number"==typeof s)return pn(e,t,n,K({},r,{quoteId:s}),i);throw new Error("quoteId is required for EthFlow orders")}const{quoteId:u=null,owner:l}=r,{appDataKeccak256:c,fullAppData:d}=n,h=e.context.chainId,p=l||await t.getAddress(),f=Wt({chainId:h,from:p,networkCostsAmount:s,isEthFlow:o},r,n.appDataKeccak256);Y("Signing order...");const{signature:m,signingScheme:y}=await(async()=>{if(a===Ct.PRESIGN)return{signature:p,signingScheme:Ct.PRESIGN};{const e=await Dt.signOrder(f,h,t);return{signature:e.signature,signingScheme:Pt[e.signingScheme]}}})(),g=K({},f,{from:p,signature:m,signingScheme:y,quoteId:u,appData:d,appDataHash:c});Y("Posting order...");const b=await e.sendOrder(g);return Y(`Order created, id: ${b}`),{orderId:b,signature:m,signingScheme:y,orderToSign:f}}rn.abi=nn;var mn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function yn(e){var t={exports:{}};return e(t,t.exports),t.exports}var gn={__proto__:null,default:{}},bn=yn(function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:gn.Buffer}catch(e){}function a(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function o(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function u(e,t,r,i){for(var s=0,a=0,o=Math.min(e.length,r),u=t;u<o;u++){var l=e.charCodeAt(u)-48;s*=i,a=l>=49?l-49+10:l>=17?l-17+10:l,n(l>=0&&a<i,"Invalid character"),s+=a}return s}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var s,a,o=0;if("be"===r)for(i=e.length-1,s=0;i>=0;i-=3)this.words[s]|=(a=e[i]|e[i-1]<<8|e[i-2]<<16)<<o&67108863,this.words[s+1]=a>>>26-o&67108863,(o+=24)>=26&&(o-=26,s++);else if("le"===r)for(i=0,s=0;i<e.length;i+=3)this.words[s]|=(a=e[i]|e[i+1]<<8|e[i+2]<<16)<<o&67108863,this.words[s+1]=a>>>26-o&67108863,(o+=24)>=26&&(o-=26,s++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,s=0,a=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=o(e,t,r)<<s,this.words[a]|=67108863&i,s>=18?(s-=18,this.words[a+=1]|=i>>>26):s+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=o(e,t,r)<<s,this.words[a]|=67108863&i,s>=18?(s-=18,this.words[a+=1]|=i>>>26):s+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var s=e.length-n,a=s%r,o=Math.min(s,s-a)+n,l=0,c=n;c<o;c+=r)l=u(e,c,c+r,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==a){var d=1;for(l=u(e,c,e.length,t),c=0;c<a;c++)d*=t;this.imuln(d),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){i.prototype.inspect=c}else i.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],s=0|t.words[0],a=i*s,o=a/67108864|0;n.words[0]=67108863&a;for(var u=1;u<r;u++){for(var l=o>>>26,c=67108863&o,d=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=d;h++)l+=(a=(i=0|e.words[u-h|0])*(s=0|t.words[h])+c)/67108864|0,c=67108863&a;n.words[u]=0|c,o=0|l}return 0!==o?n.words[u]=0|o:n.length--,n._strip()}i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,s=0,a=0;a<this.length;a++){var o=this.words[a],u=(16777215&(o<<i|s)).toString(16);s=o>>>24-i&16777215,(i+=2)>=26&&(i-=26,a--),r=0!==s||a!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==s&&(r=s.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],c=p[e];r="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(c).toString(e);r=(f=f.idivn(c)).isZero()?m+r:d[l-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},s&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),s=r||Math.max(1,i);n(i<=s,"byte array longer than desired length"),n(s>0,"Requested array length <= 0");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,i),a},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,s=0;i<this.length;i++){var a=this.words[i]<<s|r;e[n++]=255&a,n<e.length&&(e[n++]=a>>8&255),n<e.length&&(e[n++]=a>>16&255),6===s?(n<e.length&&(e[n++]=a>>24&255),r=0,s=0):(r=a>>>24,s+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,s=0;i<this.length;i++){var a=this.words[i]<<s|r;e[n--]=255&a,n>=0&&(e[n--]=a>>8&255),n>=0&&(e[n--]=a>>16&255),6===s?(n>=0&&(e[n--]=a>>24&255),r=0,s=0):(r=a>>>24,s+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,s=0;s<r.length;s++)this.words[s]=67108863&(t=(0|n.words[s])+(0|r.words[s])+i),i=t>>>26;for(;0!==i&&s<n.length;s++)this.words[s]=67108863&(t=(0|n.words[s])+i),i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var s=0,a=0;a<r.length;a++)s=(t=(0|n.words[a])-(0|r.words[a])+s)>>26,this.words[a]=67108863&t;for(;0!==s&&a<n.length;a++)s=(t=(0|n.words[a])+s)>>26,this.words[a]=67108863&t;if(0===s&&a<n.length&&n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this.length=Math.max(this.length,a),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,s,a=e.words,o=t.words,u=n.words,l=0,c=0|a[0],d=8191&c,h=c>>>13,p=0|a[1],f=8191&p,m=p>>>13,y=0|a[2],g=8191&y,b=y>>>13,v=0|a[3],w=8191&v,A=v>>>13,T=0|a[4],E=8191&T,S=T>>>13,I=0|a[5],k=8191&I,C=I>>>13,N=0|a[6],x=8191&N,_=N>>>13,R=0|a[7],M=8191&R,P=R>>>13,O=0|a[8],B=8191&O,D=O>>>13,L=0|a[9],F=8191&L,U=L>>>13,G=0|o[0],H=8191&G,q=G>>>13,V=0|o[1],z=8191&V,j=V>>>13,K=0|o[2],W=8191&K,J=K>>>13,Q=0|o[3],Y=8191&Q,X=Q>>>13,$=0|o[4],Z=8191&$,ee=$>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],se=8191&ie,ae=ie>>>13,oe=0|o[7],ue=8191&oe,le=oe>>>13,ce=0|o[8],de=8191&ce,he=ce>>>13,pe=0|o[9],fe=8191&pe,me=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(l+(r=Math.imul(d,H))|0)+((8191&(i=(i=Math.imul(d,q))+Math.imul(h,H)|0))<<13)|0;l=((s=Math.imul(h,q))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(f,H),i=(i=Math.imul(f,q))+Math.imul(m,H)|0,s=Math.imul(m,q);var ge=(l+(r=r+Math.imul(d,z)|0)|0)+((8191&(i=(i=i+Math.imul(d,j)|0)+Math.imul(h,z)|0))<<13)|0;l=((s=s+Math.imul(h,j)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,H),i=(i=Math.imul(g,q))+Math.imul(b,H)|0,s=Math.imul(b,q),r=r+Math.imul(f,z)|0,i=(i=i+Math.imul(f,j)|0)+Math.imul(m,z)|0,s=s+Math.imul(m,j)|0;var be=(l+(r=r+Math.imul(d,W)|0)|0)+((8191&(i=(i=i+Math.imul(d,J)|0)+Math.imul(h,W)|0))<<13)|0;l=((s=s+Math.imul(h,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(w,H),i=(i=Math.imul(w,q))+Math.imul(A,H)|0,s=Math.imul(A,q),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,j)|0)+Math.imul(b,z)|0,s=s+Math.imul(b,j)|0,r=r+Math.imul(f,W)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,W)|0,s=s+Math.imul(m,J)|0;var ve=(l+(r=r+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(h,Y)|0))<<13)|0;l=((s=s+Math.imul(h,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,H),i=(i=Math.imul(E,q))+Math.imul(S,H)|0,s=Math.imul(S,q),r=r+Math.imul(w,z)|0,i=(i=i+Math.imul(w,j)|0)+Math.imul(A,z)|0,s=s+Math.imul(A,j)|0,r=r+Math.imul(g,W)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(b,W)|0,s=s+Math.imul(b,J)|0,r=r+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,s=s+Math.imul(m,X)|0;var we=(l+(r=r+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,Z)|0))<<13)|0;l=((s=s+Math.imul(h,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,H),i=(i=Math.imul(k,q))+Math.imul(C,H)|0,s=Math.imul(C,q),r=r+Math.imul(E,z)|0,i=(i=i+Math.imul(E,j)|0)+Math.imul(S,z)|0,s=s+Math.imul(S,j)|0,r=r+Math.imul(w,W)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(A,W)|0,s=s+Math.imul(A,J)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,s=s+Math.imul(b,X)|0,r=r+Math.imul(f,Z)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,Z)|0,s=s+Math.imul(m,ee)|0;var Ae=(l+(r=r+Math.imul(d,ne)|0)|0)+((8191&(i=(i=i+Math.imul(d,re)|0)+Math.imul(h,ne)|0))<<13)|0;l=((s=s+Math.imul(h,re)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(x,H),i=(i=Math.imul(x,q))+Math.imul(_,H)|0,s=Math.imul(_,q),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,j)|0)+Math.imul(C,z)|0,s=s+Math.imul(C,j)|0,r=r+Math.imul(E,W)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(S,W)|0,s=s+Math.imul(S,J)|0,r=r+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(A,Y)|0,s=s+Math.imul(A,X)|0,r=r+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,s=s+Math.imul(b,ee)|0,r=r+Math.imul(f,ne)|0,i=(i=i+Math.imul(f,re)|0)+Math.imul(m,ne)|0,s=s+Math.imul(m,re)|0;var Te=(l+(r=r+Math.imul(d,se)|0)|0)+((8191&(i=(i=i+Math.imul(d,ae)|0)+Math.imul(h,se)|0))<<13)|0;l=((s=s+Math.imul(h,ae)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(M,H),i=(i=Math.imul(M,q))+Math.imul(P,H)|0,s=Math.imul(P,q),r=r+Math.imul(x,z)|0,i=(i=i+Math.imul(x,j)|0)+Math.imul(_,z)|0,s=s+Math.imul(_,j)|0,r=r+Math.imul(k,W)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(C,W)|0,s=s+Math.imul(C,J)|0,r=r+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(S,Y)|0,s=s+Math.imul(S,X)|0,r=r+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(A,Z)|0,s=s+Math.imul(A,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,s=s+Math.imul(b,re)|0,r=r+Math.imul(f,se)|0,i=(i=i+Math.imul(f,ae)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,ae)|0;var Ee=(l+(r=r+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,le)|0)+Math.imul(h,ue)|0))<<13)|0;l=((s=s+Math.imul(h,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,H),i=(i=Math.imul(B,q))+Math.imul(D,H)|0,s=Math.imul(D,q),r=r+Math.imul(M,z)|0,i=(i=i+Math.imul(M,j)|0)+Math.imul(P,z)|0,s=s+Math.imul(P,j)|0,r=r+Math.imul(x,W)|0,i=(i=i+Math.imul(x,J)|0)+Math.imul(_,W)|0,s=s+Math.imul(_,J)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(C,Y)|0,s=s+Math.imul(C,X)|0,r=r+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(S,Z)|0,s=s+Math.imul(S,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(A,ne)|0,s=s+Math.imul(A,re)|0,r=r+Math.imul(g,se)|0,i=(i=i+Math.imul(g,ae)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,ae)|0,r=r+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,s=s+Math.imul(m,le)|0;var Se=(l+(r=r+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;l=((s=s+Math.imul(h,he)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(F,H),i=(i=Math.imul(F,q))+Math.imul(U,H)|0,s=Math.imul(U,q),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,j)|0)+Math.imul(D,z)|0,s=s+Math.imul(D,j)|0,r=r+Math.imul(M,W)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(P,W)|0,s=s+Math.imul(P,J)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(_,Y)|0,s=s+Math.imul(_,X)|0,r=r+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(C,Z)|0,s=s+Math.imul(C,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(S,ne)|0,s=s+Math.imul(S,re)|0,r=r+Math.imul(w,se)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,ae)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,s=s+Math.imul(b,le)|0,r=r+Math.imul(f,de)|0,i=(i=i+Math.imul(f,he)|0)+Math.imul(m,de)|0,s=s+Math.imul(m,he)|0;var Ie=(l+(r=r+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;l=((s=s+Math.imul(h,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(F,z),i=(i=Math.imul(F,j))+Math.imul(U,z)|0,s=Math.imul(U,j),r=r+Math.imul(B,W)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,W)|0,s=s+Math.imul(D,J)|0,r=r+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(P,Y)|0,s=s+Math.imul(P,X)|0,r=r+Math.imul(x,Z)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(_,Z)|0,s=s+Math.imul(_,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(C,ne)|0,s=s+Math.imul(C,re)|0,r=r+Math.imul(E,se)|0,i=(i=i+Math.imul(E,ae)|0)+Math.imul(S,se)|0,s=s+Math.imul(S,ae)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,le)|0)+Math.imul(A,ue)|0,s=s+Math.imul(A,le)|0,r=r+Math.imul(g,de)|0,i=(i=i+Math.imul(g,he)|0)+Math.imul(b,de)|0,s=s+Math.imul(b,he)|0;var ke=(l+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((s=s+Math.imul(m,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(F,W),i=(i=Math.imul(F,J))+Math.imul(U,W)|0,s=Math.imul(U,J),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,Y)|0,s=s+Math.imul(D,X)|0,r=r+Math.imul(M,Z)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(P,Z)|0,s=s+Math.imul(P,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(_,ne)|0,s=s+Math.imul(_,re)|0,r=r+Math.imul(k,se)|0,i=(i=i+Math.imul(k,ae)|0)+Math.imul(C,se)|0,s=s+Math.imul(C,ae)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(S,ue)|0,s=s+Math.imul(S,le)|0,r=r+Math.imul(w,de)|0,i=(i=i+Math.imul(w,he)|0)+Math.imul(A,de)|0,s=s+Math.imul(A,he)|0;var Ce=(l+(r=r+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((s=s+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(F,Y),i=(i=Math.imul(F,X))+Math.imul(U,Y)|0,s=Math.imul(U,X),r=r+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,s=s+Math.imul(D,ee)|0,r=r+Math.imul(M,ne)|0,i=(i=i+Math.imul(M,re)|0)+Math.imul(P,ne)|0,s=s+Math.imul(P,re)|0,r=r+Math.imul(x,se)|0,i=(i=i+Math.imul(x,ae)|0)+Math.imul(_,se)|0,s=s+Math.imul(_,ae)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(C,ue)|0,s=s+Math.imul(C,le)|0,r=r+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(S,de)|0,s=s+Math.imul(S,he)|0;var Ne=(l+(r=r+Math.imul(w,fe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(A,fe)|0))<<13)|0;l=((s=s+Math.imul(A,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(F,Z),i=(i=Math.imul(F,ee))+Math.imul(U,Z)|0,s=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,s=s+Math.imul(D,re)|0,r=r+Math.imul(M,se)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(P,se)|0,s=s+Math.imul(P,ae)|0,r=r+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,le)|0)+Math.imul(_,ue)|0,s=s+Math.imul(_,le)|0,r=r+Math.imul(k,de)|0,i=(i=i+Math.imul(k,he)|0)+Math.imul(C,de)|0,s=s+Math.imul(C,he)|0;var xe=(l+(r=r+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(S,fe)|0))<<13)|0;l=((s=s+Math.imul(S,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(F,ne),i=(i=Math.imul(F,re))+Math.imul(U,ne)|0,s=Math.imul(U,re),r=r+Math.imul(B,se)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(D,se)|0,s=s+Math.imul(D,ae)|0,r=r+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,le)|0)+Math.imul(P,ue)|0,s=s+Math.imul(P,le)|0,r=r+Math.imul(x,de)|0,i=(i=i+Math.imul(x,he)|0)+Math.imul(_,de)|0,s=s+Math.imul(_,he)|0;var _e=(l+(r=r+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((s=s+Math.imul(C,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(F,se),i=(i=Math.imul(F,ae))+Math.imul(U,se)|0,s=Math.imul(U,ae),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,le)|0)+Math.imul(D,ue)|0,s=s+Math.imul(D,le)|0,r=r+Math.imul(M,de)|0,i=(i=i+Math.imul(M,he)|0)+Math.imul(P,de)|0,s=s+Math.imul(P,he)|0;var Re=(l+(r=r+Math.imul(x,fe)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(_,fe)|0))<<13)|0;l=((s=s+Math.imul(_,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(F,ue),i=(i=Math.imul(F,le))+Math.imul(U,ue)|0,s=Math.imul(U,le),r=r+Math.imul(B,de)|0,i=(i=i+Math.imul(B,he)|0)+Math.imul(D,de)|0,s=s+Math.imul(D,he)|0;var Me=(l+(r=r+Math.imul(M,fe)|0)|0)+((8191&(i=(i=i+Math.imul(M,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((s=s+Math.imul(P,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(F,de),i=(i=Math.imul(F,he))+Math.imul(U,de)|0,s=Math.imul(U,he);var Pe=(l+(r=r+Math.imul(B,fe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,fe)|0))<<13)|0;l=((s=s+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Oe=(l+(r=Math.imul(F,fe))|0)+((8191&(i=(i=Math.imul(F,me))+Math.imul(U,fe)|0))<<13)|0;return l=((s=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=we,u[5]=Ae,u[6]=Te,u[7]=Ee,u[8]=Se,u[9]=Ie,u[10]=ke,u[11]=Ce,u[12]=Ne,u[13]=xe,u[14]=_e,u[15]=Re,u[16]=Me,u[17]=Pe,u[18]=Oe,0!==l&&(u[19]=l,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,s=0;s<n.length-1;s++){var a=i;i=0;for(var o=67108863&r,u=Math.min(s,t.length-1),l=Math.max(0,s-e.length+1);l<=u;l++){var c=(0|e.words[s-l])*(0|t.words[l]),d=67108863&c;o=67108863&(d=d+o|0),i+=(a=(a=a+(c/67108864|0)|0)+(d>>>26)|0)>>>26,a&=67108863}n.words[s]=o,r=a,a=i}return 0!==r?n.words[s]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?f(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var s=(0|this.words[i])*e,a=(67108863&s)+(67108863&r);r>>=26,r+=s/67108864|0,r+=a>>>26,this.words[i]=67108863&a}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++)t[n]=e.words[n/26|0]>>>n%26&1;return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var s=n.sqr();r<t.length;r++,s=s.sqr())0!==t[r]&&(n=n.mul(s));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,s=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t<this.length;t++){var o=this.words[t]&s;this.words[t]=(0|this.words[t])-o<<r|a,a=o>>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var s=e%26,a=Math.min((e-s)/26,this.length),o=67108863^67108863>>>s<<s,u=r;if(i-=a,i=Math.max(0,i),u){for(var l=0;l<a;l++)u.words[l]=this.words[l];u.length=a}if(0===a);else if(this.length>a)for(this.length-=a,l=0;l<this.length;l++)this.words[l]=this.words[l+a];else this.words[0]=0,this.length=1;var c=0;for(l=this.length-1;l>=0&&(0!==c||l>=i);l--){var d=0|this.words[l];this.words[l]=c<<26-s|d>>>s,c=d&o}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;return!(this.length<=r||!(this.words[r]&1<<t))},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;return n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r?this:(0!==t&&r++,this.length=Math.min(r,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,s;this._expand(e.length+r);var a=0;for(i=0;i<e.length;i++){s=(0|this.words[i+r])+a;var o=(0|e.words[i])*t;a=((s-=67108863&o)>>26)-(o/67108864|0),this.words[i+r]=67108863&s}for(;i<this.length-r;i++)a=(s=(0|this.words[i+r])+a)>>26,this.words[i+r]=67108863&s;if(0===a)return this._strip();for(n(-1===a),a=0,i=0;i<this.length;i++)a=(s=-(0|this.words[i])+a)>>26,this.words[i]=67108863&s;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n,r=this.clone(),s=e,a=0|s.words[s.length-1];0!=(n=26-this._countBits(a))&&(s=s.ushln(n),r.iushln(n),a=0|s.words[s.length-1]);var o,u=r.length-s.length;if("mod"!==t){(o=new i(null)).length=u+1,o.words=new Array(o.length);for(var l=0;l<o.length;l++)o.words[l]=0}var c=r.clone()._ishlnsubmul(s,1,u);0===c.negative&&(r=c,o&&(o.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|r.words[s.length+d])+(0|r.words[s.length+d-1]);for(h=Math.min(h/a|0,67108863),r._ishlnsubmul(s,h,d);0!==r.negative;)h--,r.negative=0,r._ishlnsubmul(s,1,d),r.isZero()||(r.negative^=1);o&&(o.words[d]=h)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(s=o.div.neg()),"div"!==t&&(a=o.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:s,mod:a}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(s=o.div.neg()),{div:s,mod:o.mod}):0!=(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(a=o.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:o.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var s,a,o},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),s=n.cmp(r);return s<0||1===i&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,s=this.length-1;s>=0;s--)i=(r*i+(0|this.words[s]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var s=(0|this.words[i])+67108864*r;this.words[i]=s/e|0,r=s%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s=new i(1),a=new i(0),o=new i(0),u=new i(1),l=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++l;for(var c=r.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(s.isOdd()||a.isOdd())&&(s.iadd(c),a.isub(d)),s.iushrn(1),a.iushrn(1);for(var f=0,m=1;0==(r.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(r.iushrn(f);f-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(c),u.isub(d)),o.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),s.isub(o),a.isub(u)):(r.isub(t),o.isub(s),u.isub(a))}return{a:o,b:u,gcd:r.iushln(l)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var s,a=new i(1),o=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var l=0,c=1;0==(t.words[0]&c)&&l<26;++l,c<<=1);if(l>0)for(t.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var d=0,h=1;0==(r.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(r.iushrn(d);d-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(o)):(r.isub(t),o.isub(a))}return(s=0===t.cmpn(1)?a:o).cmpn(0)<0&&s.iadd(e),s},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var s=t;t=n,n=s}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var s=i,a=r;0!==s&&a<this.length;a++){var o=0|this.words[a];s=(o+=s)>>>26,this.words[a]=o&=67108863}return 0!==s&&(this.words[a]=s,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new S(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function A(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(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)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(w,v),w.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&n,i=10;i<e.length;i++){var a=0|e.words[i];e.words[i-10]=(a&n)<<4|s>>>22,s=a}e.words[i-10]=s>>>=22,e.length-=0===s&&e.length>10?10:9},w.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];e.words[n]=67108863&(t+=977*r),t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(A,v),r(T,v),r(E,v),E.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new A;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},S.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},S.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var s=this.m.subn(1),a=0;!s.isZero()&&0===s.andln(1);)a++,s.iushrn(1);n(!s.isZero());var o=new i(1).toRed(this),u=o.redNeg(),l=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);0!==this.pow(c,l).cmp(u);)c.redIAdd(u);for(var d=this.pow(c,s),h=this.pow(e,s.addn(1).iushrn(1)),p=this.pow(e,s),f=a;0!==p.cmp(o);){for(var m=p,y=0;0!==m.cmp(o);y++)m=m.redSqr();n(y<f);var g=this.pow(d,new i(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},S.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},S.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var s=n[0],a=0,o=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var l=t.words[r],c=u-1;c>=0;c--){var d=l>>c&1;s!==n[0]&&(s=this.sqr(s)),0!==d||0!==a?(a<<=1,a|=d,(4==++o||0===r&&0===c)&&(s=this.mul(s,n[a]),o=0,a=0)):o=0}u=26}return s},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},r(I,S),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),s=n.isub(r).iushrn(this.shift),a=s;return s.cmp(this.m)>=0?a=s.isub(this.m):s.cmpn(0)<0&&(a=s.iadd(this.m)),a._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,mn)});let vn=!1,wn=!1;const An={debug:1,default:2,info:2,warning:3,error:4,off:5};let Tn=An.default,En=null;const Sn=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var In,kn;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(In||(In={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(kn||(kn={}));const Cn="0123456789abcdef";class Nn{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==An[n]&&this.throwArgumentError("invalid log level name","logLevel",e),Tn>An[n]||console.log.apply(console,t)}debug(...e){this._log(Nn.levels.DEBUG,e)}info(...e){this._log(Nn.levels.INFO,e)}warn(...e){this._log(Nn.levels.WARNING,e)}makeError(e,t,n){if(wn)return this.makeError("censored error",t,{});t||(t=Nn.errors.UNKNOWN_ERROR),n||(n={});const r=[];Object.keys(n).forEach(e=>{const t=n[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=Cn[t[e]>>4],n+=Cn[15&t[e]];r.push(e+"=Uint8Array(0x"+n+")")}else r.push(e+"="+JSON.stringify(t))}catch(t){r.push(e+"="+JSON.stringify(n[e].toString()))}}),r.push(`code=${t}`),r.push(`version=${this.version}`);const i=e;let s="";switch(t){case kn.NUMERIC_FAULT:{s="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":s+="-"+t;break;case"negative-power":case"negative-width":s+="-unsupported";break;case"unbound-bitwise-result":s+="-unbound-result"}break}case kn.CALL_EXCEPTION:case kn.INSUFFICIENT_FUNDS:case kn.MISSING_NEW:case kn.NONCE_EXPIRED:case kn.REPLACEMENT_UNDERPRICED:case kn.TRANSACTION_REPLACED:case kn.UNPREDICTABLE_GAS_LIMIT:s=t}s&&(e+=" [ See: https://links.ethers.org/v5-errors-"+s+" ]"),r.length&&(e+=" ("+r.join(", ")+")");const a=new Error(e);return a.reason=i,a.code=t,Object.keys(n).forEach(function(e){a[e]=n[e]}),a}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(e,t,n){return this.throwError(e,Nn.errors.INVALID_ARGUMENT,{argument:t,value:n})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(e){Sn&&this.throwError("platform missing String.prototype.normalize",Nn.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Sn})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,Nn.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,Nn.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,n){n=n?": "+n:"",e<t&&this.throwError("missing argument"+n,Nn.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+n,Nn.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",Nn.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",Nn.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",Nn.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return En||(En=new Nn("logger/5.8.0")),En}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",Nn.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),vn){if(!e)return;this.globalLogger().throwError("error censorship permanent",Nn.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}wn=!!e,vn=!!t}static setLogLevel(e){const t=An[e.toLowerCase()];null!=t?Tn=t:Nn.globalLogger().warn("invalid log level - "+e)}static from(e){return new Nn(e)}}Nn.errors=kn,Nn.levels=In;const xn=new Nn("bytes/5.8.0");function _n(e){return!!e.toHexString}function Rn(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return Rn(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Mn(e){return Fn(e)&&!(e.length%2)||On(e)}function Pn(e){return"number"==typeof e&&e==e&&e%1==0}function On(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Pn(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!Pn(n)||n<0||n>=256)return!1}return!0}function Bn(e,t){if(t||(t={}),"number"==typeof e){xn.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),Rn(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),_n(e)&&(e=e.toHexString()),Fn(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":xn.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return Rn(new Uint8Array(r))}return On(e)?Rn(new Uint8Array(e)):xn.throwArgumentError("invalid arrayify value","value",e)}function Dn(e){const t=e.map(e=>Bn(e)),n=t.reduce((e,t)=>e+t.length,0),r=new Uint8Array(n);return t.reduce((e,t)=>(r.set(t,e),e+t.length),0),Rn(r)}function Ln(e){let t=Bn(e);if(0===t.length)return t;let n=0;for(;n<t.length&&0===t[n];)n++;return n&&(t=t.slice(n)),t}function Fn(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Un="0123456789abcdef";function Gn(e,t){if(t||(t={}),"number"==typeof e){xn.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Un[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),_n(e))return e.toHexString();if(Fn(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":xn.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(On(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=Un[(240&r)>>4]+Un[15&r]}return t}return xn.throwArgumentError("invalid hexlify value","value",e)}function Hn(e){if("string"!=typeof e)e=Gn(e);else if(!Fn(e)||e.length%2)return null;return(e.length-2)/2}function qn(e,t,n){return"string"!=typeof e?e=Gn(e):(!Fn(e)||e.length%2)&&xn.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function Vn(e){let t="0x";return e.forEach(e=>{t+=Gn(e).substring(2)}),t}function zn(e){const t=function(e){"string"!=typeof e&&(e=Gn(e)),Fn(e)||xn.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Gn(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function jn(e,t){for("string"!=typeof e?e=Gn(e):Fn(e)||xn.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&xn.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function Kn(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Mn(e)){let n=Bn(e);64===n.length?(t.v=27+(n[32]>>7),n[32]&=127,t.r=Gn(n.slice(0,32)),t.s=Gn(n.slice(32,64))):65===n.length?(t.r=Gn(n.slice(0,32)),t.s=Gn(n.slice(32,64)),t.v=n[64]):xn.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:xn.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(n[32]|=128),t._vs=Gn(n.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const n=function(e,t){(e=Bn(e)).length>t&&xn.throwArgumentError("value out of range","value",arguments[0]);const n=new Uint8Array(t);return n.set(e,t-e.length),Rn(n)}(Bn(t._vs),32);t._vs=Gn(n);const r=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=r:t.recoveryParam!==r&&xn.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;const i=Gn(n);null==t.s?t.s=i:t.s!==i&&xn.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?xn.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&xn.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Fn(t.r)?t.r=jn(t.r,32):xn.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Fn(t.s)?t.s=jn(t.s,32):xn.throwArgumentError("signature missing or invalid s","signature",e);const n=Bn(t.s);n[0]>=128&&xn.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(n[0]|=128);const r=Gn(n);t._vs&&(Fn(t._vs)||xn.throwArgumentError("signature invalid _vs","signature",e),t._vs=jn(t._vs,32)),null==t._vs?t._vs=r:t._vs!==r&&xn.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function Wn(e){return Gn(Dn([(e=Kn(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const Jn="bignumber/5.8.0";var Qn=bn.BN;const Yn=new Nn(Jn),Xn={},$n=9007199254740991;let Zn=!1;class er{constructor(e,t){e!==Xn&&Yn.throwError("cannot call constructor directly; use BigNumber.from",Nn.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return nr(rr(this).fromTwos(e))}toTwos(e){return nr(rr(this).toTwos(e))}abs(){return"-"===this._hex[0]?er.from(this._hex.substring(1)):this}add(e){return nr(rr(this).add(rr(e)))}sub(e){return nr(rr(this).sub(rr(e)))}div(e){return er.from(e).isZero()&&ir("division-by-zero","div"),nr(rr(this).div(rr(e)))}mul(e){return nr(rr(this).mul(rr(e)))}mod(e){const t=rr(e);return t.isNeg()&&ir("division-by-zero","mod"),nr(rr(this).umod(t))}pow(e){const t=rr(e);return t.isNeg()&&ir("negative-power","pow"),nr(rr(this).pow(t))}and(e){const t=rr(e);return(this.isNegative()||t.isNeg())&&ir("unbound-bitwise-result","and"),nr(rr(this).and(t))}or(e){const t=rr(e);return(this.isNegative()||t.isNeg())&&ir("unbound-bitwise-result","or"),nr(rr(this).or(t))}xor(e){const t=rr(e);return(this.isNegative()||t.isNeg())&&ir("unbound-bitwise-result","xor"),nr(rr(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&ir("negative-width","mask"),nr(rr(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&ir("negative-width","shl"),nr(rr(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&ir("negative-width","shr"),nr(rr(this).shrn(e))}eq(e){return rr(this).eq(rr(e))}lt(e){return rr(this).lt(rr(e))}lte(e){return rr(this).lte(rr(e))}gt(e){return rr(this).gt(rr(e))}gte(e){return rr(this).gte(rr(e))}isNegative(){return"-"===this._hex[0]}isZero(){return rr(this).isZero()}toNumber(){try{return rr(this).toNumber()}catch(e){ir("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Yn.throwError("this platform does not support BigInt",Nn.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Zn||(Zn=!0,Yn.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Yn.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",Nn.errors.UNEXPECTED_ARGUMENT,{})),rr(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof er)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new er(Xn,tr(e)):e.match(/^-?[0-9]+$/)?new er(Xn,tr(new Qn(e))):Yn.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&ir("underflow","BigNumber.from",e),(e>=$n||e<=-$n)&&ir("overflow","BigNumber.from",e),er.from(String(e));const t=e;if("bigint"==typeof t)return er.from(t.toString());if(On(t))return er.from(Gn(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return er.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Fn(e)||"-"===e[0]&&Fn(e.substring(1))))return er.from(e)}return Yn.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function tr(e){if("string"!=typeof e)return tr(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Yn.throwArgumentError("invalid hex","value",e),"0x00"===(e=tr(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function nr(e){return er.from(tr(e))}function rr(e){const t=er.from(e).toHexString();return new Qn("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function ir(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),Yn.throwError(e,Nn.errors.NUMERIC_FAULT,r)}const sr=new Nn(Jn),ar={},or=er.from(0),ur=er.from(-1);function lr(e,t,n,r){const i={fault:t,operation:n};return void 0!==r&&(i.value=r),sr.throwError(e,Nn.errors.NUMERIC_FAULT,i)}let cr="0";for(;cr.length<256;)cr+=cr;function dr(e){if("number"!=typeof e)try{e=er.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+cr.substring(0,e):sr.throwArgumentError("invalid decimal size","decimals",e)}function hr(e,t){null==t&&(t=0);const n=dr(t),r=(e=er.from(e)).lt(or);r&&(e=e.mul(ur));let i=e.mod(n).toString();for(;i.length<n.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const s=e.div(n).toString();return e=1===n.length?s:s+"."+i,r&&(e="-"+e),e}function pr(e,t){null==t&&(t=0);const n=dr(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||sr.throwArgumentError("invalid decimal value","value",e);const r="-"===e.substring(0,1);r&&(e=e.substring(1)),"."===e&&sr.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&sr.throwArgumentError("too many decimal points","value",e);let s=i[0],a=i[1];for(s||(s="0"),a||(a="0");"0"===a[a.length-1];)a=a.substring(0,a.length-1);for(a.length>n.length-1&&lr("fractional component exceeds decimals","underflow","parseFixed"),""===a&&(a="0");a.length<n.length-1;)a+="0";const o=er.from(s),u=er.from(a);let l=o.mul(n).add(u);return r&&(l=l.mul(ur)),l}class fr{constructor(e,t,n,r){e!==ar&&sr.throwError("cannot use FixedFormat constructor; use FixedFormat.from",Nn.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=n,this.decimals=r,this.name=(t?"":"u")+"fixed"+String(n)+"x"+String(r),this._multiplier=dr(r),Object.freeze(this)}static from(e){if(e instanceof fr)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,n=128,r=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||sr.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],n=parseInt(i[2]),r=parseInt(i[3])}else if(e){const i=(t,n,r)=>null==e[t]?r:(typeof e[t]!==n&&sr.throwArgumentError("invalid fixed format ("+t+" not "+n+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),n=i("width","number",n),r=i("decimals","number",r)}return n%8&&sr.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",n),r>80&&sr.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",r),new fr(ar,t,n,r)}}class mr{constructor(e,t,n,r){e!==ar&&sr.throwError("cannot use FixedNumber constructor; use FixedNumber.from",Nn.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=r,this._hex=t,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&sr.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=pr(this._value,this.format.decimals),n=pr(e._value,e.format.decimals);return mr.fromValue(t.add(n),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=pr(this._value,this.format.decimals),n=pr(e._value,e.format.decimals);return mr.fromValue(t.sub(n),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=pr(this._value,this.format.decimals),n=pr(e._value,e.format.decimals);return mr.fromValue(t.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=pr(this._value,this.format.decimals),n=pr(e._value,e.format.decimals);return mr.fromValue(t.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=mr.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return this.isNegative()&&n&&(t=t.subUnsafe(yr.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=mr.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return!this.isNegative()&&n&&(t=t.addUnsafe(yr.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&sr.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const n=mr.from("1"+cr.substring(0,e),this.format),r=gr.toFormat(this.format);return this.mulUnsafe(n).addUnsafe(r).floor().divUnsafe(n)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&sr.throwArgumentError("invalid byte width","width",e),jn(er.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return mr.fromString(this._value,e)}static fromValue(e,t,n){return null!=n||null==t||function(e){return null!=e&&(er.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Fn(e)||"bigint"==typeof e||On(e))}(t)||(n=t,t=null),null==t&&(t=0),null==n&&(n="fixed"),mr.fromString(hr(e,t),fr.from(n))}static fromString(e,t){null==t&&(t="fixed");const n=fr.from(t),r=pr(e,n.decimals);!n.signed&&r.lt(or)&&lr("unsigned value cannot be negative","overflow","value",e);let i=null;n.signed?i=r.toTwos(n.width).toHexString():(i=r.toHexString(),i=jn(i,n.width/8));const s=hr(r,n.decimals);return new mr(ar,i,s,n)}static fromBytes(e,t){null==t&&(t="fixed");const n=fr.from(t);if(Bn(e).length>n.width/8)throw new Error("overflow");let r=er.from(e);n.signed&&(r=r.fromTwos(n.width));const i=r.toTwos((n.signed?0:1)+n.width).toHexString(),s=hr(r,n.decimals);return new mr(ar,i,s,n)}static from(e,t){if("string"==typeof e)return mr.fromString(e,t);if(On(e))return mr.fromBytes(e,t);try{return mr.fromValue(e,0,t)}catch(e){if(e.code!==Nn.errors.INVALID_ARGUMENT)throw e}return sr.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const yr=mr.from(1),gr=mr.from("0.5");var br=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const vr=new Nn("properties/5.8.0");function wr(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function Ar(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Tr(e){return br(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function Er(e,t){e&&"object"==typeof e||vr.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(n=>{t[n]||vr.throwArgumentError("invalid object key - "+n,"transaction:"+n,e)})}function Sr(e){const t={};for(const n in e)t[n]=e[n];return t}const Ir={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function kr(e){if(null==e||Ir[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!kr(r))return!1}return!0}return vr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Cr(e){if(kr(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Nr(e)));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&wr(t,n,Nr(r))}return t}return vr.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Nr(e){return Cr(e)}class xr{constructor(e){for(const t in e)this[t]=Nr(e[t])}}const _r=new Nn("abstract-provider/5.8.0");class Rr extends xr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Mr{constructor(){_r.checkAbstract(new.target,Mr),wr(this,"_isProvider",!0)}getFeeData(){return e=this,n=function*(){const{block:e,gasPrice:t}=yield Tr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=er.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(r,i){function s(e){try{o(n.next(e))}catch(e){i(e)}}function a(e){try{o(n.throw(e))}catch(e){i(e)}}function o(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(s,a)}o((n=n.apply(e,[])).next())});var e,t,n}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const Pr=new Nn("networks/5.8.0");function Or(e){const t=function(t,n){null==n&&(n={});const r=[];if(t.InfuraProvider&&"-"!==n.infura)try{r.push(new t.InfuraProvider(e,n.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==n.etherscan)try{r.push(new t.EtherscanProvider(e,n.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==n.alchemy)try{r.push(new t.AlchemyProvider(e,n.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==n.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const s=new t.PocketProvider(e,n.pocket);s.network&&-1===i.indexOf(s.network.name)&&r.push(s)}catch(e){}}if(t.CloudflareProvider&&"-"!==n.cloudflare)try{r.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==n.ankr)try{const i=["ropsten"],s=new t.AnkrProvider(e,n.ankr);s.network&&-1===i.indexOf(s.network.name)&&r.push(s)}catch(e){}if(t.QuickNodeProvider&&"-"!==n.quicknode)try{r.push(new t.QuickNodeProvider(e,n.quicknode))}catch(e){}if(0===r.length)return null;if(t.FallbackProvider){let i=1;return null!=n.quorum?i=n.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(r,i)}return r[0]};return t.renetwork=function(e){return Or(e)},t}function Br(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return Br(e,t)},n}const Dr={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Or("homestead")},Lr={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Or("ropsten")},Fr={chainId:63,name:"classicMordor",_defaultProvider:Br("https://www.ethercluster.com/mordor","classicMordor")},Ur={unspecified:{chainId:0,name:"unspecified"},homestead:Dr,mainnet:Dr,morden:{chainId:2,name:"morden"},ropsten:Lr,testnet:Lr,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Or("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Or("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Or("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Or("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Or("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:Br("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Fr,classicTestnet:Fr,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Br("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Or("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Or("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Or("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Gr(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return Bn(t)}function Hr(e){e=Bn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}class qr{constructor(e){wr(this,"alphabet",e),wr(this,"base",e.length),wr(this,"_alphabetMap",{}),wr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Bn(e);if(0===t.length)return"";let n=[0];for(let e=0;e<t.length;++e){let r=t[e];for(let e=0;e<n.length;++e)r+=n[e]<<8,n[e]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let e=0;0===t[e]&&e<t.length-1;++e)r+=this._leader;for(let e=n.length-1;e>=0;--e)r+=this.alphabet[n[e]];return r}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let n=0;n<e.length;n++){let r=this._alphabetMap[e[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let n=0;e[n]===this._leader&&n<e.length-1;++n)t.push(0);return Bn(new Uint8Array(t.reverse()))}}new qr("abcdefghijklmnopqrstuvwxyz234567");const Vr=new qr("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),zr=/*#__PURE__*/er.from(-1),jr=/*#__PURE__*/er.from(0),Kr=/*#__PURE__*/er.from(1),Wr=/*#__PURE__*/er.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Jr=yn(function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?r=mn:i&&(r=self);var s=!r.JS_SHA3_NO_COMMON_JS&&e.exports,a=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,o="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],c=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!a||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new _(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new _(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,s){return T["cshake"+e].update(t,r,i,s)[n]()}},b=function(e,t,n){return function(t,r,i,s){return T["kmac"+e].update(t,r,i,s)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var s=p[i];e[s]=t(n,r,s)}return e},w=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new _(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},A=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:w},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:w},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new _(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:h,createMethod:function(e,t){var n=f[e],r=g(e,0,"hex");return r.create=function(r,i,s){return i||s?new _(e,t,r).bytepad([i,s],n):T["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:h,createMethod:function(e,t){var n=f[e],r=b(e,0,"hex");return r.create=function(r,i,s){return new R(e,t,i).bytepad(["KMAC",s],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],T={},E=[],S=0;S<A.length;++S)for(var I=A[S],k=I.bits,C=0;C<k.length;++C){var N=I.name+"_"+k[C];if(E.push(N),T[N]=I.createMethod(k[C],I.padding),"sha3"!==I.name){var x=I.name+k[C];E.push(x),T[x]=T[N]}}function _(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function R(e,t,n){_.call(this,e,t,n)}_.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,s,o=this.blocks,u=this.byteCount,c=e.length,d=this.blockCount,h=0,p=this.s;h<c;){if(this.reset)for(this.reset=!1,o[0]=this.block,i=1;i<d+1;++i)o[i]=0;if(n)for(i=this.start;h<c&&i<u;++h)o[i>>2]|=e[h]<<l[3&i++];else for(i=this.start;h<c&&i<u;++h)(s=e.charCodeAt(h))<128?o[i>>2]|=s<<l[3&i++]:s<2048?(o[i>>2]|=(192|s>>6)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]):s<55296||s>=57344?(o[i>>2]|=(224|s>>12)<<l[3&i++],o[i>>2]|=(128|s>>6&63)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]):(s=65536+((1023&s)<<10|1023&e.charCodeAt(++h)),o[i>>2]|=(240|s>>18)<<l[3&i++],o[i>>2]|=(128|s>>12&63)<<l[3&i++],o[i>>2]|=(128|s>>6&63)<<l[3&i++],o[i>>2]|=(128|63&s)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=o[d],i=0;i<d;++i)p[i]^=o[i];M(p),this.reset=!0}else this.start=i}return this},_.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},_.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0;if(n)i=e.length;else for(var s=0;s<e.length;++s){var o=e.charCodeAt(s);o<128?i+=1:o<2048?i+=2:o<55296||o>=57344?i+=3:(o=65536+((1023&o)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},_.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=[];return i.length=t-n%t,this.update(i),this},_.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];M(r)}},_.prototype.toString=_.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,s=0,a=0,u="";a<r;){for(s=0;s<t&&a<r;++s,++a)u+=o[(e=n[s])>>4&15]+o[15&e]+o[e>>12&15]+o[e>>8&15]+o[e>>20&15]+o[e>>16&15]+o[e>>28&15]+o[e>>24&15];a%t==0&&(M(n),s=0)}return i&&(u+=o[(e=n[s])>>4&15]+o[15&e],i>1&&(u+=o[e>>12&15]+o[e>>8&15]),i>2&&(u+=o[e>>20&15]+o[e>>16&15])),u},_.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,s=0,a=0,o=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(o);for(var u=new Uint32Array(e);a<r;){for(s=0;s<t&&a<r;++s,++a)u[a]=n[s];a%t==0&&M(n)}return i&&(u[s]=n[s],e=e.slice(0,o)),e},_.prototype.buffer=_.prototype.arrayBuffer,_.prototype.digest=_.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,s=this.extraBytes,a=0,o=0,u=[];o<i;){for(a=0;a<n&&o<i;++a,++o)u[e=o<<2]=255&(t=r[a]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;o%n==0&&M(r)}return s&&(u[e=o<<2]=255&(t=r[a]),s>1&&(u[e+1]=t>>8&255),s>2&&(u[e+2]=t>>16&255)),u},(R.prototype=new _).finalize=function(){return this.encode(this.outputBits,!0),_.prototype.finalize.call(this)};var M=function(e){var t,n,r,i,s,a,o,u,l,d,h,p,f,m,y,g,b,v,w,A,T,E,S,I,k,C,N,x,_,R,M,P,O,B,D,L,F,U,G,H,q,V,z,j,K,W,J,Q,Y,X,$,Z,ee,te,ne,re,ie,se,ae,oe,ue,le,ce;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],s=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],n=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((o=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(a=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|o>>>31),e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,n=s^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,n=o^(h<<1|d>>>31),e[4]^=t=a^(d<<1|h>>>31),e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,n=l^(f<<1|p>>>31),e[6]^=t=u^(p<<1|f>>>31),e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,n=h^(s<<1|i>>>31),e[8]^=t=d^(i<<1|s>>>31),e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,y=e[1],W=e[11]<<4|e[10]>>>28,J=e[10]<<4|e[11]>>>28,x=e[20]<<3|e[21]>>>29,_=e[21]<<3|e[20]>>>29,oe=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,V=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,R=e[33]<<13|e[32]>>>19,M=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,L=e[14]<<6|e[15]>>>26,F=e[15]<<6|e[14]>>>26,w=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,k=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,A=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,j=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,N=e[19]<<20|e[18]>>>12,se=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,H=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&w,e[10]=I^~C&x,e[11]=k^~N&_,e[20]=B^~L&U,e[21]=D^~F&G,e[30]=j^~W&Q,e[31]=K^~J&Y,e[40]=te^~re&se,e[41]=ne^~ie&ae,e[2]=g^~v&A,e[3]=b^~w&T,e[12]=C^~x&R,e[13]=N^~_&M,e[22]=L^~U&H,e[23]=F^~G&q,e[32]=W^~Q&X,e[33]=J^~Y&$,e[42]=re^~se&oe,e[43]=ie^~ae&ue,e[4]=v^~A&E,e[5]=w^~T&S,e[14]=x^~R&P,e[15]=_^~M&O,e[24]=U^~H&V,e[25]=G^~q&z,e[34]=Q^~X&Z,e[35]=Y^~$&ee,e[44]=se^~oe&le,e[45]=ae^~ue&ce,e[6]=A^~E&m,e[7]=T^~S&y,e[16]=R^~P&I,e[17]=M^~O&k,e[26]=H^~V&B,e[27]=q^~z&D,e[36]=X^~Z&j,e[37]=$^~ee&K,e[46]=oe^~le&te,e[47]=ue^~ce&ne,e[8]=E^~m&g,e[9]=S^~y&b,e[18]=P^~I&C,e[19]=O^~k&N,e[28]=V^~B&L,e[29]=z^~D&F,e[38]=Z^~j&W,e[39]=ee^~K&J,e[48]=le^~te&re,e[49]=ce^~ne&ie,e[0]^=c[r],e[1]^=c[r+1]};if(s)e.exports=T;else for(S=0;S<E.length;++S)r[E[S]]=T[E[S]]}()}),Qr=Jr;function Yr(e){return"0x"+Qr.keccak_256(Bn(e))}const Xr=new Nn("strings/5.8.0");var $r,Zr;function ei(e,t,n,r,i){if(e===Zr.BAD_PREFIX||e===Zr.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===Zr.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}($r||($r={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(Zr||(Zr={}));const ti=Object.freeze({error:function(e,t,n,r,i){return Xr.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:ei,replace:function(e,t,n,r,i){return e===Zr.OVERLONG?(r.push(i),0):(r.push(65533),ei(e,t,n))}});function ni(e,t){null==t&&(t=ti.error),e=Bn(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let s=null,a=null;if(192==(224&i))s=1,a=127;else if(224==(240&i))s=2,a=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?Zr.UNEXPECTED_CONTINUE:Zr.BAD_PREFIX,r-1,e,n);continue}s=3,a=65535}if(r-1+s>=e.length){r+=t(Zr.OVERRUN,r-1,e,n);continue}let o=i&(1<<8-s-1)-1;for(let i=0;i<s;i++){let i=e[r];if(128!=(192&i)){r+=t(Zr.MISSING_CONTINUE,r,e,n),o=null;break}o=o<<6|63&i,r++}null!==o&&(o>1114111?r+=t(Zr.OUT_OF_RANGE,r-1-s,e,n,o):o>=55296&&o<=57343?r+=t(Zr.UTF16_SURROGATE,r-1-s,e,n,o):o<=a?r+=t(Zr.OVERLONG,r-1-s,e,n,o):n.push(o))}return n}function ri(e,t=$r.current){t!=$r.current&&(Xr.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const s=65536+((1023&r)<<10)+(1023&i);n.push(s>>18|240),n.push(s>>12&63|128),n.push(s>>6&63|128),n.push(63&s|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return Bn(n)}function ii(e,t){return ni(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function si(e){return Yr(ri(e))}const ai="hash/5.8.0";function oi(e,t){null==t&&(t=1);const n=[],r=n.forEach,i=function(e,t){r.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):n.push(e)})};return i(e,t),n}function ui(e){return 1&e?~e>>1:e>>1}function li(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function ci(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=ui(t());return n}function di(e,t){let n=li(e(),e),r=e(),i=li(r,e),s=function(e,t){let n=Array(e);for(let r=0;r<e;r++)n[r]=1+t();return n}(r,e);for(let e=0;e<r;e++)for(let t=0;t<s[e];t++)n.push(i[e]+t);return t?n.map(e=>t[e]):n}function hi(e,t,n){let r=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)ci(e,n).forEach((e,t)=>r[t].push(e));return r}function pi(e,t){let n=1+t(),r=t(),i=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(n)}return t}(t);return oi(hi(i.length,1+e,t).map((e,t)=>{const s=e[0],a=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*r;return[s+t*n,a.map(e=>e+i)]})}))}function fi(e,t){return hi(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const mi=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function n(){return e[t++]<<8|e[t++]}let r=n(),i=1,s=[0,1];for(let e=1;e<r;e++)s.push(i+=n());let a=n(),o=t;t+=a;let u=0,l=0;function c(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const d=Math.pow(2,31),h=d>>>1,p=h>>1,f=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|c();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,n=r;for(;n-t>1;){let r=t+n>>>1;e<s[r]?n=r:t=r}if(0==t)break;y.push(t);let a=g+Math.floor(b*s[t]/i),o=g+Math.floor(b*s[t+1]/i)-1;for(;0==((a^o)&h);)m=m<<1&f|c(),a=a<<1&f,o=o<<1&f|1;for(;a&~o&p;)m=m&h|m<<1&f>>>1|c(),a=a<<1^h,o=(o^h)<<1|h|1;g=a,b=1+o-a}let v=r-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[o++]<<16|e[o++]<<8|e[o++]);case 2:return v+256+(e[o++]<<8|e[o++]);case 1:return v+e[o++];default:return t-1}})}(Gr("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=="))),yi=new Set(di(mi)),gi=new Set(di(mi)),bi=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(pi(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(fi(n,e))}return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];t[r[0]]=r[1]}return t}(oi(t))}(mi),vi=function(e){let t=di(e).sort((e,t)=>e-t);return function n(){let r=[];for(;;){let i=di(e,t);if(0==i.length)break;r.push({set:new Set(i),node:n()})}r.sort((e,t)=>t.set.size-e.set.size);let i=e(),s=i%3;i=i/3|0;let a=!!(1&i);return i>>=1,{branches:r,valid:s,fe0f:a,save:1==i,check:2==i}}()}(mi),wi=45,Ai=95;function Ti(e){return function(e,t=$r.current){return ni(ri(e,t))}(e)}function Ei(e){return e.filter(e=>65039!=e)}function Si(e){for(let t of e.split(".")){let e=Ti(t);try{for(let t=e.lastIndexOf(Ai)-1;t>=0;t--)if(e[t]!==Ai)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===wi&&e[3]===wi)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function Ii(e,t){var n;let r,i,s=vi,a=[],o=e.length;for(t&&(t.length=0);o;){let u=e[--o];if(s=null===(n=s.branches.find(e=>e.set.has(u)))||void 0===n?void 0:n.node,!s)break;if(s.save)i=u;else if(s.check&&u===i)break;a.push(u),s.fe0f&&(a.push(65039),o>0&&65039==e[o-1]&&o--),s.valid&&(r=a.slice(),2==s.valid&&r.splice(1,1),t&&t.push(...e.slice(o).reverse()),e.length=o)}return r}const ki=new Nn(ai),Ci=new Uint8Array(32);function Ni(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function xi(e){const t=ri(function(e){return Si(function(e,t){let n=Ti(e).reverse(),r=[];for(;n.length;){let e=Ii(n);if(e){r.push(...t(e));continue}let i=n.pop();if(yi.has(i)){r.push(i);continue}if(gi.has(i))continue;let s=bi[i];if(!s)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...s)}return Si(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,Ei))}(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++)46===t[e]&&(n.push(Ni(t.slice(r,e))),r=e+1);if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(Ni(t.slice(r))),n}function _i(e){"string"!=typeof e&&ki.throwArgumentError("invalid ENS name; not a string","name",e);let t=Ci;const n=xi(e);for(;n.length;)t=Yr(Dn([t,Yr(n.pop())]));return Gn(t)}Ci.fill(0);const Ri=new Nn("rlp/5.8.0");function Mi(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Pi(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function Oi(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Oi(e))}),t.length<=55)return t.unshift(192+t.length),t;const n=Mi(t.length);return n.unshift(247+n.length),n.concat(t)}Mn(e)||Ri.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Bn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=Mi(t.length);return n.unshift(183+n.length),n.concat(t)}function Bi(e){return Gn(Oi(e))}function Di(e,t,n,r){const i=[];for(;n<t+1+r;){const s=Li(e,n);i.push(s.result),(n+=s.consumed)>t+1+r&&Ri.throwError("child data too short",Nn.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function Li(e,t){if(0===e.length&&Ri.throwError("data too short",Nn.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&Ri.throwError("data short segment too short",Nn.errors.BUFFER_OVERRUN,{});const r=Pi(e,t+1,n);return t+1+n+r>e.length&&Ri.throwError("data long segment too short",Nn.errors.BUFFER_OVERRUN,{}),Di(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&Ri.throwError("data array too short",Nn.errors.BUFFER_OVERRUN,{}),Di(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&Ri.throwError("data array too short",Nn.errors.BUFFER_OVERRUN,{});const r=Pi(e,t+1,n);return t+1+n+r>e.length&&Ri.throwError("data array too short",Nn.errors.BUFFER_OVERRUN,{}),{consumed:1+n+r,result:Gn(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;return t+1+n>e.length&&Ri.throwError("data too short",Nn.errors.BUFFER_OVERRUN,{}),{consumed:1+n,result:Gn(e.slice(t+1,t+1+n))}}return{consumed:1,result:Gn(e[t])}}function Fi(e){const t=Bn(e),n=Li(t,0);return n.consumed!==t.length&&Ri.throwArgumentError("invalid rlp data","data",e),n.result}const Ui=new Nn("address/5.8.0");function Gi(e){Fn(e,20)||Ui.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=Bn(Yr(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Hi={};for(let e=0;e<10;e++)Hi[String(e)]=String(e);for(let e=0;e<26;e++)Hi[String.fromCharCode(65+e)]=String(10+e);const qi=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Vi(e){let t=null;if("string"!=typeof e&&Ui.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Gi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ui.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>Hi[e]).join("");for(;t.length>=qi;){let e=t.substring(0,qi);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}(e)&&Ui.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new Qn(n,36).toString(16);t.length<40;)t="0"+t;t=Gi("0x"+t)}else Ui.throwArgumentError("invalid address","address",e);var n;return t}function zi(e){let t=null;try{t=Vi(e.from)}catch(t){Ui.throwArgumentError("missing from address","transaction",e)}return Vi(qn(Yr(Bi([t,Ln(Bn(er.from(e.nonce).toHexString()))])),12))}const ji=new Nn(ai),Ki=new Uint8Array(32);Ki.fill(0);const Wi=er.from(-1),Ji=er.from(0),Qi=er.from(1),Yi=er.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Xi=jn(Qi.toHexString(),32),$i=jn(Ji.toHexString(),32),Zi={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},es=["name","version","chainId","verifyingContract","salt"];function ts(e){return function(t){return"string"!=typeof t&&ji.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const ns={name:ts("name"),version:ts("version"),chainId:function(e){try{return er.from(e).toString()}catch(e){}return ji.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Vi(e).toLowerCase()}catch(e){}return ji.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Bn(e);if(32!==t.length)throw new Error("bad length");return Gn(t)}catch(e){}return ji.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function rs(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const n=""===t[1],r=parseInt(t[2]||"256");(r%8!=0||r>256||t[2]&&t[2]!==String(r))&&ji.throwArgumentError("invalid numeric width","type",e);const i=Yi.mask(n?r-1:r),s=n?i.add(Qi).mul(Wi):Ji;return function(t){const n=er.from(t);return(n.lt(s)||n.gt(i))&&ji.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),jn(n.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const n=parseInt(t[1]);return(0===n||n>32||t[1]!==String(n))&&ji.throwArgumentError("invalid bytes width","type",e),function(t){return Bn(t).length!==n&&ji.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Bn(e),n=t.length%32;return n?Vn([t,Ki.slice(n)]):Gn(t)}(t)}}}switch(e){case"address":return function(e){return jn(Vi(e),32)};case"bool":return function(e){return e?Xi:$i};case"bytes":return function(e){return Yr(e)};case"string":return function(e){return si(e)}}return null}function is(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class ss{constructor(e){wr(this,"types",Object.freeze(Nr(e))),wr(this,"_encoderCache",{}),wr(this,"_types",{});const t={},n={},r={};Object.keys(e).forEach(e=>{t[e]={},n[e]=[],r[e]={}});for(const r in e){const i={};e[r].forEach(s=>{i[s.name]&&ji.throwArgumentError(`duplicate variable name ${JSON.stringify(s.name)} in ${JSON.stringify(r)}`,"types",e),i[s.name]=!0;const a=s.type.match(/^([^\x5b]*)(\x5b|$)/)[1];a===r&&ji.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),rs(a)||(n[a]||ji.throwArgumentError(`unknown type ${JSON.stringify(a)}`,"types",e),n[a].push(r),t[r][a]=!0)})}const i=Object.keys(n).filter(e=>0===n[e].length);0===i.length?ji.throwArgumentError("missing primary type","types",e):i.length>1&&ji.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),wr(this,"primaryType",i[0]),function i(s,a){a[s]&&ji.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),a[s]=!0,Object.keys(t[s]).forEach(e=>{n[e]&&(i(e,a),Object.keys(a).forEach(t=>{r[t][e]=!0}))}),delete a[s]}(this.primaryType,{});for(const t in r){const n=Object.keys(r[t]);n.sort(),this._types[t]=is(t,e[t])+n.map(t=>is(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=rs(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],n=this.getEncoder(e),r=parseInt(t[3]);return t=>{r>=0&&t.length!==r&&ji.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(Yr)),Yr(Vn(i))}}const n=this.types[e];if(n){const t=si(this._types[e]);return e=>{const r=n.map(({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?Yr(r):r});return r.unshift(t),Vn(r)}}return ji.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||ji.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Yr(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(rs(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const e=r[1],i=parseInt(r[3]);return i>=0&&t.length!==i&&ji.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,n))}const i=this.types[e];return i?i.reduce((e,{name:r,type:i})=>(e[r]=this._visit(i,t[r],n),e),{}):ji.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new ss(e)}static getPrimaryType(e){return ss.from(e).primaryType}static hashStruct(e,t,n){return ss.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=Zi[n];r||ji.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort((e,t)=>es.indexOf(e.name)-es.indexOf(t.name)),ss.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Vn(["0x1901",ss.hashDomain(e),ss.from(t).hash(n)])}static hash(e,t,n){return Yr(ss.encode(e,t,n))}static resolveNames(e,t,n,r){return i=this,a=function*(){e=Sr(e);const i={};e.verifyingContract&&!Fn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const s=ss.from(t);s.visit(n,(e,t)=>("address"!==e||Fn(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield r(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=s.visit(n,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:n}},new((s=void 0)||(s=Promise))(function(e,t){function n(e){try{o(a.next(e))}catch(e){t(e)}}function r(e){try{o(a.throw(e))}catch(e){t(e)}}function o(t){var i;t.done?e(t.value):(i=t.value,i instanceof s?i:new s(function(e){e(i)})).then(n,r)}o((a=a.apply(i,[])).next())});var i,s,a}static getPayload(e,t,n){ss.hashDomain(e);const r={},i=[];es.forEach(t=>{const n=e[t];null!=n&&(r[t]=ns[t](n),i.push({name:t,type:Zi[t]}))});const s=ss.from(t),a=Sr(t);return a.EIP712Domain?ji.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):a.EIP712Domain=i,s.encode(n),{types:a,domain:r,primaryType:s.primaryType,message:s.visit(n,(e,t)=>{if(e.match(/^bytes(\d*)/))return Gn(Bn(t));if(e.match(/^u?int/))return er.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&ji.throwArgumentError("invalid string","value",t),t}return ji.throwArgumentError("unsupported type","type",e)})}}}var as=os;function os(e,t){if(!e)throw new Error(t||"Assertion failed")}function us(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function ls(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function cs(e){return 1===e.length?"0"+e:e}function ds(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}os.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var hs={inherits:yn(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var s=e.charCodeAt(i);s<128?n[r++]=s:s<2048?(n[r++]=s>>6|192,n[r++]=63&s|128):us(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},toHex:function(e){for(var t="",n=0;n<e.length;n++)t+=cs(e[n].toString(16));return t},htonl:ls,toHex32:function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=ls(i)),n+=ds(i.toString(16))}return n},zero2:cs,zero8:ds,join32:function(e,t,n,r){var i=n-t;as(i%4==0);for(var s=new Array(i/4),a=0,o=t;a<s.length;a++,o+=4)s[a]=("big"===r?e[o]<<24|e[o+1]<<16|e[o+2]<<8|e[o+3]:e[o+3]<<24|e[o+2]<<16|e[o+1]<<8|e[o])>>>0;return s},split32:function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var s=e[r];"big"===t?(n[i]=s>>>24,n[i+1]=s>>>16&255,n[i+2]=s>>>8&255,n[i+3]=255&s):(n[i+3]=s>>>24,n[i+2]=s>>>16&255,n[i+1]=s>>>8&255,n[i]=255&s)}return n},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,n){return e+t+n>>>0},sum32_4:function(e,t,n,r){return e+t+n+r>>>0},sum32_5:function(e,t,n,r,i){return e+t+n+r+i>>>0},sum64:function(e,t,n,r){var i=r+e[t+1]>>>0;e[t]=(i<r?1:0)+n+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},sum64_lo:function(e,t,n,r){return t+r>>>0},sum64_4_hi:function(e,t,n,r,i,s,a,o){var u=0,l=t;return u+=(l=l+r>>>0)<t?1:0,u+=(l=l+s>>>0)<s?1:0,e+n+i+a+(u+=(l=l+o>>>0)<o?1:0)>>>0},sum64_4_lo:function(e,t,n,r,i,s,a,o){return t+r+s+o>>>0},sum64_5_hi:function(e,t,n,r,i,s,a,o,u,l){var c=0,d=t;return c+=(d=d+r>>>0)<t?1:0,c+=(d=d+s>>>0)<s?1:0,c+=(d=d+o>>>0)<o?1:0,e+n+i+a+u+(c+=(d=d+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,n,r,i,s,a,o,u,l){return t+r+s+o+l>>>0},rotr64_hi:function(e,t,n){return(t<<32-n|e>>>n)>>>0},rotr64_lo:function(e,t,n){return(e<<32-n|t>>>n)>>>0},shr64_hi:function(e,t,n){return e>>>n},shr64_lo:function(e,t,n){return(e<<32-n|t>>>n)>>>0}};function ps(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var fs=ps;ps.prototype.update=function(e,t){if(e=hs.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=hs.join32(e,0,e.length-n,this.endian);for(var r=0;r<e.length;r+=this._delta32)this._update(e,r,r+this._delta32)}return this},ps.prototype.digest=function(e){return this.update(this._pad()),as(null===this.pending),this._digest(e)},ps.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var s=8;s<this.padLength;s++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,s=8;s<this.padLength;s++)r[i++]=0;return r};var ms={BlockHash:fs},ys=hs.rotr32;function gs(e,t,n){return e&t^~e&n}function bs(e,t,n){return e&t^e&n^t&n}var vs=gs,ws=bs,As=hs.rotl32,Ts=hs.sum32,Es=hs.sum32_5,Ss=function(e,t,n,r){return 0===e?gs(t,n,r):1===e||3===e?function(e,t,n){return e^t^n}(t,n,r):2===e?bs(t,n,r):void 0},Is=ms.BlockHash,ks=[1518500249,1859775393,2400959708,3395469782];function Cs(){if(!(this instanceof Cs))return new Cs;Is.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}hs.inherits(Cs,Is);var Ns=Cs;Cs.blockSize=512,Cs.outSize=160,Cs.hmacStrength=80,Cs.padLength=64,Cs.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=As(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],s=this.h[1],a=this.h[2],o=this.h[3],u=this.h[4];for(r=0;r<n.length;r++){var l=~~(r/20),c=Es(As(i,5),Ss(l,s,a,o),u,n[r],ks[l]);u=o,o=a,a=As(s,30),s=i,i=c}this.h[0]=Ts(this.h[0],i),this.h[1]=Ts(this.h[1],s),this.h[2]=Ts(this.h[2],a),this.h[3]=Ts(this.h[3],o),this.h[4]=Ts(this.h[4],u)},Cs.prototype._digest=function(e){return"hex"===e?hs.toHex32(this.h,"big"):hs.split32(this.h,"big")};var xs=hs.sum32,_s=hs.sum32_4,Rs=hs.sum32_5,Ms=vs,Ps=ws,Os=function(e){return ys(e,2)^ys(e,13)^ys(e,22)},Bs=function(e){return ys(e,6)^ys(e,11)^ys(e,25)},Ds=function(e){return ys(e,7)^ys(e,18)^e>>>3},Ls=function(e){return ys(e,17)^ys(e,19)^e>>>10},Fs=ms.BlockHash,Us=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Gs(){if(!(this instanceof Gs))return new Gs;Fs.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Us,this.W=new Array(64)}hs.inherits(Gs,Fs);var Hs=Gs;function qs(){if(!(this instanceof qs))return new qs;Hs.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Gs.blockSize=512,Gs.outSize=256,Gs.hmacStrength=192,Gs.padLength=64,Gs.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=_s(Ls(n[r-2]),n[r-7],Ds(n[r-15]),n[r-16]);var i=this.h[0],s=this.h[1],a=this.h[2],o=this.h[3],u=this.h[4],l=this.h[5],c=this.h[6],d=this.h[7];for(as(this.k.length===n.length),r=0;r<n.length;r++){var h=Rs(d,Bs(u),Ms(u,l,c),this.k[r],n[r]),p=xs(Os(i),Ps(i,s,a));d=c,c=l,l=u,u=xs(o,h),o=a,a=s,s=i,i=xs(h,p)}this.h[0]=xs(this.h[0],i),this.h[1]=xs(this.h[1],s),this.h[2]=xs(this.h[2],a),this.h[3]=xs(this.h[3],o),this.h[4]=xs(this.h[4],u),this.h[5]=xs(this.h[5],l),this.h[6]=xs(this.h[6],c),this.h[7]=xs(this.h[7],d)},Gs.prototype._digest=function(e){return"hex"===e?hs.toHex32(this.h,"big"):hs.split32(this.h,"big")},hs.inherits(qs,Hs);var Vs=qs;qs.blockSize=512,qs.outSize=224,qs.hmacStrength=192,qs.padLength=64,qs.prototype._digest=function(e){return"hex"===e?hs.toHex32(this.h.slice(0,7),"big"):hs.split32(this.h.slice(0,7),"big")};var zs=hs.rotr64_hi,js=hs.rotr64_lo,Ks=hs.shr64_hi,Ws=hs.shr64_lo,Js=hs.sum64,Qs=hs.sum64_hi,Ys=hs.sum64_lo,Xs=hs.sum64_4_hi,$s=hs.sum64_4_lo,Zs=hs.sum64_5_hi,ea=hs.sum64_5_lo,ta=ms.BlockHash,na=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function ra(){if(!(this instanceof ra))return new ra;ta.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=na,this.W=new Array(160)}hs.inherits(ra,ta);var ia=ra;function sa(e,t,n,r,i){var s=e&n^~e&i;return s<0&&(s+=4294967296),s}function aa(e,t,n,r,i,s){var a=t&r^~t&s;return a<0&&(a+=4294967296),a}function oa(e,t,n,r,i){var s=e&n^e&i^n&i;return s<0&&(s+=4294967296),s}function ua(e,t,n,r,i,s){var a=t&r^t&s^r&s;return a<0&&(a+=4294967296),a}function la(e,t){var n=zs(e,t,28)^zs(t,e,2)^zs(t,e,7);return n<0&&(n+=4294967296),n}function ca(e,t){var n=js(e,t,28)^js(t,e,2)^js(t,e,7);return n<0&&(n+=4294967296),n}function da(e,t){var n=zs(e,t,14)^zs(e,t,18)^zs(t,e,9);return n<0&&(n+=4294967296),n}function ha(e,t){var n=js(e,t,14)^js(e,t,18)^js(t,e,9);return n<0&&(n+=4294967296),n}function pa(e,t){var n=zs(e,t,1)^zs(e,t,8)^Ks(e,t,7);return n<0&&(n+=4294967296),n}function fa(e,t){var n=js(e,t,1)^js(e,t,8)^Ws(e,t,7);return n<0&&(n+=4294967296),n}function ma(e,t){var n=zs(e,t,19)^zs(t,e,29)^Ks(e,t,6);return n<0&&(n+=4294967296),n}function ya(e,t){var n=js(e,t,19)^js(t,e,29)^Ws(e,t,6);return n<0&&(n+=4294967296),n}function ga(){if(!(this instanceof ga))return new ga;ia.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}ra.blockSize=1024,ra.outSize=512,ra.hmacStrength=192,ra.padLength=128,ra.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=ma(n[r-4],n[r-3]),s=ya(n[r-4],n[r-3]),a=n[r-14],o=n[r-13],u=pa(n[r-30],n[r-29]),l=fa(n[r-30],n[r-29]),c=n[r-32],d=n[r-31];n[r]=Xs(i,s,a,o,u,l,c,d),n[r+1]=$s(i,s,a,o,u,l,c,d)}},ra.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],s=this.h[2],a=this.h[3],o=this.h[4],u=this.h[5],l=this.h[6],c=this.h[7],d=this.h[8],h=this.h[9],p=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];as(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var w=g,A=b,T=da(d,h),E=ha(d,h),S=sa(d,0,p,0,m),I=aa(0,h,0,f,0,y),k=this.k[v],C=this.k[v+1],N=n[v],x=n[v+1],_=Zs(w,A,T,E,S,I,k,C,N,x),R=ea(w,A,T,E,S,I,k,C,N,x);w=la(r,i),A=ca(r,i),T=oa(r,0,s,0,o),E=ua(0,i,0,a,0,u);var M=Qs(w,A,T,E),P=Ys(w,A,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=Qs(l,c,_,R),h=Ys(c,c,_,R),l=o,c=u,o=s,u=a,s=r,a=i,r=Qs(_,R,M,P),i=Ys(_,R,M,P)}Js(this.h,0,r,i),Js(this.h,2,s,a),Js(this.h,4,o,u),Js(this.h,6,l,c),Js(this.h,8,d,h),Js(this.h,10,p,f),Js(this.h,12,m,y),Js(this.h,14,g,b)},ra.prototype._digest=function(e){return"hex"===e?hs.toHex32(this.h,"big"):hs.split32(this.h,"big")},hs.inherits(ga,ia);var ba=ga;ga.blockSize=1024,ga.outSize=384,ga.hmacStrength=192,ga.padLength=128,ga.prototype._digest=function(e){return"hex"===e?hs.toHex32(this.h.slice(0,12),"big"):hs.split32(this.h.slice(0,12),"big")};var va={sha1:Ns,sha224:Vs,sha256:Hs,sha384:ba,sha512:ia},wa=hs.rotl32,Aa=hs.sum32,Ta=hs.sum32_3,Ea=hs.sum32_4,Sa=ms.BlockHash;function Ia(){if(!(this instanceof Ia))return new Ia;Sa.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}hs.inherits(Ia,Sa);var ka=Ia;function Ca(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function Na(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function xa(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Ia.blockSize=512,Ia.outSize=160,Ia.hmacStrength=192,Ia.padLength=64,Ia.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],s=this.h[3],a=this.h[4],o=n,u=r,l=i,c=s,d=a,h=0;h<80;h++){var p=Aa(wa(Ea(n,Ca(h,r,i,s),e[_a[h]+t],Na(h)),Ma[h]),a);n=a,a=s,s=wa(i,10),i=r,r=p,p=Aa(wa(Ea(o,Ca(79-h,u,l,c),e[Ra[h]+t],xa(h)),Pa[h]),d),o=d,d=c,c=wa(l,10),l=u,u=p}p=Ta(this.h[1],i,c),this.h[1]=Ta(this.h[2],s,d),this.h[2]=Ta(this.h[3],a,o),this.h[3]=Ta(this.h[4],n,u),this.h[4]=Ta(this.h[0],r,l),this.h[0]=p},Ia.prototype._digest=function(e){return"hex"===e?hs.toHex32(this.h,"little"):hs.split32(this.h,"little")};var _a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Ra=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Ma=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Pa=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Oa={ripemd160:ka};function Ba(e,t,n){if(!(this instanceof Ba))return new Ba(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(hs.toArray(t,n))}var Da=Ba;Ba.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),as(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Ba.prototype.update=function(e,t){return this.inner.update(e,t),this},Ba.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var La,Fa=yn(function(e,t){var n=t;n.utils=hs,n.common=ms,n.sha=va,n.ripemd=Oa,n.hmac=Da,n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160}),Ua=Fa;!function(e){e.sha256="sha256",e.sha512="sha512"}(La||(La={}));const Ga=new Nn("sha2/5.8.0");function Ha(e){return"0x"+Ua.sha256().update(Bn(e)).digest("hex")}function qa(e,t,n){return La[e]||Ga.throwError("unsupported algorithm "+e,Nn.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Ua.hmac(Ua[e],Bn(t)).update(Bn(n)).digest("hex")}var Va=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};function za(e,t){return Va(this,void 0,void 0,function*(){null==t&&(t={});const n={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(n.mode="cors",n.cache="no-cache",n.credentials="same-origin",n.redirect="follow",n.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(n.mode=e.mode),e.cache&&(n.cache=e.cache),e.credentials&&(n.credentials=e.credentials),e.redirect&&(n.redirect=e.redirect),e.referrer&&(n.referrer=e.referrer)}const r=yield fetch(e,n),i=yield r.arrayBuffer(),s={};return r.headers.forEach?r.headers.forEach((e,t)=>{s[t.toLowerCase()]=e}):r.headers.keys().forEach(e=>{s[e.toLowerCase()]=r.headers.get(e)}),{headers:s,statusCode:r.status,statusMessage:r.statusText,body:Bn(new Uint8Array(i))}})}var ja=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Ka=new Nn("web/5.8.0");function Wa(e){return new Promise(t=>{setTimeout(t,e)})}function Ja(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Mn(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ii(e)}catch(e){}return Gn(e)}return e}function Qa(e,t,n){let r=null;if(null!=t){r=ri(t);const n="string"==typeof e?{url:e}:Sr(e);n.headers?0!==Object.keys(n.headers).filter(e=>"content-type"===e.toLowerCase()).length||(n.headers=Sr(n.headers),n.headers["content-type"]="application/json"):n.headers={"content-type":"application/json"},e=n}return function(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Ka.assertArgument(r>0&&r%1==0,"invalid connection throttle limit","connection.throttleLimit",r);const i="object"==typeof e?e.throttleCallback:null,s="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Ka.assertArgument(s>0&&s%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",s);const a="object"==typeof e&&!!e.errorPassThrough,o={};let u=null;const l={method:"GET"};let c=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Ka.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)o[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(c=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Ka.throwError("basic authentication requires a secure https url",Nn.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),o.authorization={key:"Authorization",value:"Basic "+Hr(ri(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=Sr(e.fetchOptions))}const h=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(h):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?Gr(p[3]):(f=p[3],ri(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return n&&(t=n(e.body,e)),Promise.resolve(t)}catch(e){Ka.throwError("processing response error",Nn.errors.SERVER_ERROR,{body:Ja(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==o["content-type"]&&(o["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==o["content-length"]&&(o["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(o).forEach(e=>{const t=o[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,n){d&&(e=setTimeout(()=>{null!=e&&(e=null,n(Ka.makeError("timeout",Nn.errors.TIMEOUT,{requestBody:Ja(l.body,m["content-type"]),requestMethod:l.method,timeout:d,url:u})))},d))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return ja(this,void 0,void 0,function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield za(u,l),e<r)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let n=!0;if(i&&(n=yield i(e,u)),n){let n=0;const r=t.headers["retry-after"];n="string"==typeof r&&r.match(/^[1-9][0-9]*$/)?1e3*parseInt(r):s*parseInt(String(Math.random()*Math.pow(2,e))),yield Wa(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Ka.throwError("missing response",Nn.errors.SERVER_ERROR,{requestBody:Ja(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let o=t.body;if(c&&304===t.statusCode?o=null:!a&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),Ka.throwError("bad response",Nn.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:Ja(o,t.headers?t.headers["content-type"]:null),requestBody:Ja(l.body,m["content-type"]),requestMethod:l.method,url:u})),n)try{const e=yield n(o,t);return y.cancel(),e}catch(n){if(n.throttleRetry&&e<r){let t=!0;if(i&&(t=yield i(e,u)),t){const t=s*parseInt(String(Math.random()*Math.pow(2,e)));yield Wa(t);continue}}y.cancel(),Ka.throwError("processing response error",Nn.errors.SERVER_ERROR,{body:Ja(o,t.headers?t.headers["content-type"]:null),error:n,requestBody:Ja(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),o}return Ka.throwError("failed response",Nn.errors.SERVER_ERROR,{requestBody:Ja(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,r,(e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(ii(e))}catch(t){Ka.throwError("invalid JSON",Nn.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r})}function Ya(e,t){return t||(t={}),null==(t=Sr(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(n,r){let i=null,s=!1;const a=()=>!s&&(s=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{a()&&r(new Error("timeout"))},t.timeout));const o=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)a()&&n(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!s){if(u++,u>o)return void(a()&&r(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){a()&&r(e)})}()})}for(var Xa="qpzry9x8gf2tvdw0s3jn54khce6mua7l",$a={},Za=0;Za<Xa.length;Za++){var eo=Xa.charAt(Za);if(void 0!==$a[eo])throw new TypeError(eo+" is ambiguous");$a[eo]=Za}function to(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const no="providers/5.8.0";function ro(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},n.exports),n.exports}var io=so;function so(e,t){if(!e)throw new Error(t||"Assertion failed")}so.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var ao=ro(function(e,t){var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16));else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),s=i>>8,a=255&i;s?n.push(s,a):n.push(a)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}}),oo=ro(function(e,t){var n=t;n.assert=io,n.toArray=ao.toArray,n.zero2=ao.zero2,n.toHex=ao.toHex,n.encode=ao.encode,n.getNAF=function(e,t,n){var r,i=new Array(Math.max(e.bitLength(),n)+1);for(r=0;r<i.length;r+=1)i[r]=0;var s=1<<t+1,a=e.clone();for(r=0;r<i.length;r++){var o,u=a.andln(s-1);a.isOdd()?a.isubn(o=u>(s>>1)-1?(s>>1)-u:u):o=0,i[r]=o,a.iushrn(1)}return i},n.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,s=0;e.cmpn(-i)>0||t.cmpn(-s)>0;){var a,o,u=e.andln(3)+i&3,l=t.andln(3)+s&3;3===u&&(u=-1),3===l&&(l=-1),a=0==(1&u)?0:3!=(r=e.andln(7)+i&7)&&5!==r||2!==l?u:-u,n[0].push(a),o=0==(1&l)?0:3!=(r=t.andln(7)+s&7)&&5!==r||2!==u?l:-l,n[1].push(o),2*i===a+1&&(i=1-i),2*s===o+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return n},n.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new bn(e,"hex","le")}}),uo=oo.getNAF,lo=oo.getJSF,co=oo.assert;function ho(e,t){this.type=e,this.p=new bn(t.p,16),this.red=t.prime?bn.red(t.prime):bn.mont(this.p),this.zero=new bn(0).toRed(this.red),this.one=new bn(1).toRed(this.red),this.two=new bn(2).toRed(this.red),this.n=t.n&&new bn(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var po=ho;function fo(e,t){this.curve=e,this.type=t,this.precomputed=null}ho.prototype.point=function(){throw new Error("Not implemented")},ho.prototype.validate=function(){throw new Error("Not implemented")},ho.prototype._fixedNafMul=function(e,t){co(e.precomputed);var n=e._getDoubles(),r=uo(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var s,a,o=[];for(s=0;s<r.length;s+=n.step){a=0;for(var u=s+n.step-1;u>=s;u--)a=(a<<1)+r[u];o.push(a)}for(var l=this.jpoint(null,null,null),c=this.jpoint(null,null,null),d=i;d>0;d--){for(s=0;s<o.length;s++)(a=o[s])===d?c=c.mixedAdd(n.points[s]):a===-d&&(c=c.mixedAdd(n.points[s].neg()));l=l.add(c)}return l.toP()},ho.prototype._wnafMul=function(e,t){for(var n=4,r=e._getNAFPoints(n),i=r.points,s=uo(t,n=r.wnd,this._bitLength),a=this.jpoint(null,null,null),o=s.length-1;o>=0;o--){for(var u=0;o>=0&&0===s[o];o--)u++;if(o>=0&&u++,a=a.dblp(u),o<0)break;var l=s[o];co(0!==l),a="affine"===e.type?a.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):a.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?a.toP():a},ho.prototype._wnafMulAdd=function(e,t,n,r,i){var s,a,o,u=this._wnafT1,l=this._wnafT2,c=this._wnafT3,d=0;for(s=0;s<r;s++){var h=(o=t[s])._getNAFPoints(e);u[s]=h.wnd,l[s]=h.points}for(s=r-1;s>=1;s-=2){var p=s-1,f=s;if(1===u[p]&&1===u[f]){var m=[t[p],null,null,t[f]];0===t[p].y.cmp(t[f].y)?(m[1]=t[p].add(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg())):0===t[p].y.cmp(t[f].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].add(t[f].neg())):(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=lo(n[p],n[f]);for(d=Math.max(g[0].length,d),c[p]=new Array(d),c[f]=new Array(d),a=0;a<d;a++)c[p][a]=y[3*(1+(0|g[0][a]))+(1+(0|g[1][a]))],c[f][a]=0,l[p]=m}else c[p]=uo(n[p],u[p],this._bitLength),c[f]=uo(n[f],u[f],this._bitLength),d=Math.max(c[p].length,d),d=Math.max(c[f].length,d)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(s=d;s>=0;s--){for(var w=0;s>=0;){var A=!0;for(a=0;a<r;a++)v[a]=0|c[a][s],0!==v[a]&&(A=!1);if(!A)break;w++,s--}if(s>=0&&w++,b=b.dblp(w),s<0)break;for(a=0;a<r;a++){var T=v[a];0!==T&&(T>0?o=l[a][T-1>>1]:T<0&&(o=l[a][-T-1>>1].neg()),b="affine"===o.type?b.mixedAdd(o):b.add(o))}}for(s=0;s<r;s++)l[s]=null;return i?b:b.toP()},ho.BasePoint=fo,fo.prototype.eq=function(){throw new Error("Not implemented")},fo.prototype.validate=function(){return this.curve.validate(this)},ho.prototype.decodePoint=function(e,t){e=oo.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?co(e[e.length-1]%2==0):7===e[0]&&co(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},fo.prototype.encodeCompressed=function(e){return this.encode(e,!0)},fo.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},fo.prototype.encode=function(e,t){return oo.encode(this._encode(t),e)},fo.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},fo.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},fo.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var s=0;s<e;s++)r=r.dbl();n.push(r)}return{step:e,points:n}},fo.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},fo.prototype._getBeta=function(){return null},fo.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var mo=ro(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}}),yo=oo.assert;function go(e){po.call(this,"short",e),this.a=new bn(e.a,16).toRed(this.red),this.b=new bn(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}mo(go,po);var bo=go;function vo(e,t,n,r){po.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new bn(t,16),this.y=new bn(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function wo(e,t,n,r){po.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new bn(0)):(this.x=new bn(t,16),this.y=new bn(n,16),this.z=new bn(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}go.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new bn(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new bn(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:yo(0===this.g.mul(n=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:n,basis:e.basis?e.basis.map(function(e){return{a:new bn(e.a,16),b:new bn(e.b,16)}}):this._getEndoBasis(n)}}},go.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:bn.mont(e),n=new bn(2).toRed(t).redInvm(),r=n.redNeg(),i=new bn(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},go.prototype._getEndoBasis=function(e){for(var t,n,r,i,s,a,o,u,l,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new bn(1),f=new bn(0),m=new bn(0),y=new bn(1),g=0;0!==d.cmpn(0);){var b=h.div(d);u=h.sub(b.mul(d)),l=m.sub(b.mul(p));var v=y.sub(b.mul(f));if(!r&&u.cmp(c)<0)t=o.neg(),n=p,r=u.neg(),i=l;else if(r&&2==++g)break;o=u,h=d,d=u,m=p,p=l,y=f,f=v}s=u.neg(),a=l;var w=r.sqr().add(i.sqr());return s.sqr().add(a.sqr()).cmp(w)>=0&&(s=t,a=n),r.negative&&(r=r.neg(),i=i.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:i},{a:s,b:a}]},go.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),s=n.b.neg().mul(e).divRound(this.n),a=i.mul(n.a),o=s.mul(r.a),u=i.mul(n.b),l=s.mul(r.b);return{k1:e.sub(a).sub(o),k2:u.add(l).neg()}},go.prototype.pointFromX=function(e,t){(e=new bn(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},go.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},go.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,s=0;s<e.length;s++){var a=this._endoSplit(t[s]),o=e[s],u=o._getBeta();a.k1.negative&&(a.k1.ineg(),o=o.neg(!0)),a.k2.negative&&(a.k2.ineg(),u=u.neg(!0)),r[2*s]=o,r[2*s+1]=u,i[2*s]=a.k1,i[2*s+1]=a.k2}for(var l=this._wnafMulAdd(1,r,i,2*s,n),c=0;c<2*s;c++)r[c]=null,i[c]=null;return l},mo(vo,po.BasePoint),go.prototype.point=function(e,t,n){return new vo(this,e,t,n)},go.prototype.pointFromJSON=function(e,t){return vo.fromJSON(this,e,t)},vo.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},vo.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},vo.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var s=t[2];return r.precomputed={beta:null,doubles:s.doubles&&{step:s.doubles.step,points:[r].concat(s.doubles.points.map(i))},naf:s.naf&&{wnd:s.naf.wnd,points:[r].concat(s.naf.points.map(i))}},r},vo.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},vo.prototype.isInfinity=function(){return this.inf},vo.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},vo.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),s=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,a)},vo.prototype.getX=function(){return this.x.fromRed()},vo.prototype.getY=function(){return this.y.fromRed()},vo.prototype.mul=function(e){return e=new bn(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},vo.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},vo.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},vo.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},vo.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},vo.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},mo(wo,po.BasePoint),go.prototype.jpoint=function(e,t,n){return new wo(this,e,t,n)},wo.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},wo.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},wo.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),s=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(n.redMul(this.z)),o=r.redSub(i),u=s.redSub(a);if(0===o.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=o.redSqr(),c=l.redMul(o),d=r.redMul(l),h=u.redSqr().redIAdd(c).redISub(d).redISub(d),p=u.redMul(d.redISub(h)).redISub(s.redMul(c)),f=this.z.redMul(e.z).redMul(o);return this.curve.jpoint(h,p,f)},wo.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,s=e.y.redMul(t).redMul(this.z),a=n.redSub(r),o=i.redSub(s);if(0===a.cmpn(0))return 0!==o.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),l=u.redMul(a),c=n.redMul(u),d=o.redSqr().redIAdd(l).redISub(c).redISub(c),h=o.redMul(c.redISub(d)).redISub(i.redMul(l)),p=this.z.redMul(a);return this.curve.jpoint(d,h,p)},wo.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,s=this.x,a=this.y,o=this.z,u=o.redSqr().redSqr(),l=a.redAdd(a);for(t=0;t<e;t++){var c=s.redSqr(),d=l.redSqr(),h=d.redSqr(),p=c.redAdd(c).redIAdd(c).redIAdd(r.redMul(u)),f=s.redMul(d),m=p.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(h);var b=l.redMul(o);t+1<e&&(u=u.redMul(h)),s=m,o=b,l=g}return this.curve.jpoint(s,l.redMul(i),o)},wo.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},wo.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(r).redISub(s);a=a.redIAdd(a);var o=r.redAdd(r).redIAdd(r),u=o.redSqr().redISub(a).redISub(a),l=s.redIAdd(s);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=o.redMul(a.redISub(u)).redISub(l),n=this.y.redAdd(this.y)}else{var c=this.x.redSqr(),d=this.y.redSqr(),h=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(c).redISub(h);p=p.redIAdd(p);var f=c.redAdd(c).redIAdd(c),m=f.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=f.redMul(p.redISub(e)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},wo.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(r).redISub(s);a=a.redIAdd(a);var o=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=o.redSqr().redISub(a).redISub(a);e=u;var l=s.redIAdd(s);l=(l=l.redIAdd(l)).redIAdd(l),t=o.redMul(a.redISub(u)).redISub(l),n=this.y.redAdd(this.y)}else{var c=this.z.redSqr(),d=this.y.redSqr(),h=this.x.redMul(d),p=this.x.redSub(c).redMul(this.x.redAdd(c));p=p.redAdd(p).redIAdd(p);var f=h.redIAdd(h),m=(f=f.redIAdd(f)).redAdd(f);e=p.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(d).redISub(c);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,n)},wo.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),s=t.redSqr(),a=n.redSqr(),o=s.redAdd(s).redIAdd(s).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(a),c=o.redSqr().redISub(l.redAdd(l)),d=l.redISub(c),h=a.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=o.redMul(d).redISub(h),f=n.redAdd(n).redMul(r);return this.curve.jpoint(c,p,f)},wo.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),s=i.redSqr(),a=this.x.redAdd(t).redSqr().redISub(e).redISub(r),o=(a=(a=(a=a.redIAdd(a)).redAdd(a).redIAdd(a)).redISub(s)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(a).redSqr().redISub(s).redISub(o).redISub(u),c=t.redMul(l);c=(c=c.redIAdd(c)).redIAdd(c);var d=this.x.redMul(o).redISub(c);d=(d=d.redIAdd(d)).redIAdd(d);var h=this.y.redMul(l.redMul(u.redISub(l)).redISub(a.redMul(o)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=this.z.redAdd(a).redSqr().redISub(n).redISub(o);return this.curve.jpoint(d,h,p)},wo.prototype.mul=function(e,t){return e=new bn(e,t),this.curve._wnafMul(this,e)},wo.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},wo.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},wo.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},wo.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Ao=ro(function(e,t){var n=t;n.base=po,n.short=bo,n.mont=null,n.edwards=null}),To=ro(function(e,t){var n,r=t,i=oo.assert;function s(e){this.curve="short"===e.type?new Ao.short(e):"edwards"===e.type?new Ao.edwards(e):new Ao.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function a(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new s(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=s,a("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Ua.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),a("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Ua.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),a("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Ua.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),a("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Ua.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),a("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Ua.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),a("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ua.sha256,gRed:!1,g:["9"]}),a("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Ua.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(e){n=void 0}a("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Ua.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})});function Eo(e){if(!(this instanceof Eo))return new Eo(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=ao.toArray(e.entropy,e.entropyEnc||"hex"),n=ao.toArray(e.nonce,e.nonceEnc||"hex"),r=ao.toArray(e.pers,e.persEnc||"hex");io(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var So=Eo;Eo.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},Eo.prototype._hmac=function(){return new Ua.hmac(this.hash,this.K)},Eo.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Eo.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=ao.toArray(e,t),n=ao.toArray(n,r),io(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},Eo.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=ao.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var s=i.slice(0,e);return this._update(n),this._reseed++,ao.encode(s,t)};var Io=oo.assert;function ko(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Co=ko;ko.fromPublic=function(e,t,n){return t instanceof ko?t:new ko(e,{pub:t,pubEnc:n})},ko.fromPrivate=function(e,t,n){return t instanceof ko?t:new ko(e,{priv:t,privEnc:n})},ko.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},ko.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},ko.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},ko.prototype._importPrivate=function(e,t){this.priv=new bn(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},ko.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Io(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Io(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},ko.prototype.derive=function(e){return e.validate()||Io(e.validate(),"public point not validated"),e.mul(this.priv).getX()},ko.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},ko.prototype.verify=function(e,t,n){return this.ec.verify(e,t,this,void 0,n)},ko.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var No=oo.assert;function xo(e,t){if(e instanceof xo)return e;this._importDER(e,t)||(No(e.r&&e.s,"Signature without r or s"),this.r=new bn(e.r,16),this.s=new bn(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var _o=xo;function Ro(){this.place=0}function Mo(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;if(0===e[t.place])return!1;for(var i=0,s=0,a=t.place;s<r;s++,a++)i<<=8,i|=e[a],i>>>=0;return!(i<=127)&&(t.place=a,i)}function Po(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function Oo(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}xo.prototype._importDER=function(e,t){e=oo.toArray(e,t);var n=new Ro;if(48!==e[n.place++])return!1;var r=Mo(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=Mo(e,n);if(!1===i)return!1;if(0!=(128&e[n.place]))return!1;var s=e.slice(n.place,i+n.place);if(n.place+=i,2!==e[n.place++])return!1;var a=Mo(e,n);if(!1===a)return!1;if(e.length!==a+n.place)return!1;if(0!=(128&e[n.place]))return!1;var o=e.slice(n.place,a+n.place);if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}return this.r=new bn(s),this.s=new bn(o),this.recoveryParam=null,!0},xo.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=Po(t),n=Po(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];Oo(r,t.length),(r=r.concat(t)).push(2),Oo(r,n.length);var i=r.concat(n),s=[48];return Oo(s,i.length),s=s.concat(i),oo.encode(s,e)};var Bo=function(){throw new Error("unsupported")},Do=oo.assert;function Lo(e){if(!(this instanceof Lo))return new Lo(e);"string"==typeof e&&(Do(Object.prototype.hasOwnProperty.call(To,e),"Unknown curve "+e),e=To[e]),e instanceof To.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Fo=Lo;Lo.prototype.keyPair=function(e){return new Co(this,e)},Lo.prototype.keyFromPrivate=function(e,t){return Co.fromPrivate(this,e,t)},Lo.prototype.keyFromPublic=function(e,t){return Co.fromPublic(this,e,t)},Lo.prototype.genKeyPair=function(e){e||(e={});for(var t=new So({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Bo(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new bn(2));;){var i=new bn(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Lo.prototype._truncateToN=function(e,t,n){var r;if(bn.isBN(e)||"number"==typeof e)r=(e=new bn(e,16)).byteLength();else if("object"==typeof e)r=e.length,e=new bn(e,16);else{var i=e.toString();r=i.length+1>>>1,e=new bn(i,16)}"number"!=typeof n&&(n=8*r);var s=n-this.n.bitLength();return s>0&&(e=e.ushrn(s)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},Lo.prototype.sign=function(e,t,n,r){if("object"==typeof n&&(r=n,n=null),r||(r={}),"string"!=typeof e&&"number"!=typeof e&&!bn.isBN(e)){Do("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Do(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Do((255&e[i])===e[i])}t=this.keyFromPrivate(t,n),e=this._truncateToN(e,!1,r.msgBitLength),Do(!e.isNeg(),"Can not sign a negative message");var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),o=e.toArray("be",s);Do(new bn(o).eq(e),"Can not sign message");for(var u=new So({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),l=this.n.sub(new bn(1)),c=0;;c++){var d=r.k?r.k(c):new bn(u.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var h=this.g.mul(d);if(!h.isInfinity()){var p=h.getX(),f=p.umod(this.n);if(0!==f.cmpn(0)){var m=d.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(h.getY().isOdd()?1:0)|(0!==p.cmp(f)?2:0);return r.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new _o({r:f,s:m,recoveryParam:y})}}}}}},Lo.prototype.verify=function(e,t,n,r,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),n=this.keyFromPublic(n,r);var s=(t=new _o(t,"hex")).r,a=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o,u=a.invm(this.n),l=u.mul(e).umod(this.n),c=u.mul(s).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(l,n.getPublic(),c)).isInfinity()&&o.eqXToP(s):!(o=this.g.mulAdd(l,n.getPublic(),c)).isInfinity()&&0===o.getX().umod(this.n).cmp(s)},Lo.prototype.recoverPubKey=function(e,t,n,r){Do((3&n)===n,"The recovery param is more than two bits"),t=new _o(t,r);var i=this.n,s=new bn(e),a=t.r,o=t.s,u=1&n,l=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");a=this.curve.pointFromX(l?a.add(this.curve.n):a,u);var c=t.r.invm(i),d=i.sub(s).mul(c).umod(i),h=o.mul(c).umod(i);return this.g.mulAdd(d,a,h)},Lo.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new _o(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var s;try{s=this.recoverPubKey(e,t,i)}catch(e){continue}if(s.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var Uo=ro(function(e,t){var n=t;n.version="6.6.1",n.utils=oo,n.rand=function(){throw new Error("unsupported")},n.curve=Ao,n.curves=To,n.ec=Fo,n.eddsa=null}).ec;const Go=new Nn("signing-key/5.8.0");let Ho=null;function qo(){return Ho||(Ho=new Uo("secp256k1")),Ho}class Vo{constructor(e){wr(this,"curve","secp256k1"),wr(this,"privateKey",Gn(e)),32!==Hn(this.privateKey)&&Go.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=qo().keyFromPrivate(Bn(this.privateKey));wr(this,"publicKey","0x"+t.getPublic(!1,"hex")),wr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),wr(this,"_isSigningKey",!0)}_addPoint(e){const t=qo().keyFromPublic(Bn(this.publicKey)),n=qo().keyFromPublic(Bn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=qo().keyFromPrivate(Bn(this.privateKey)),n=Bn(e);32!==n.length&&Go.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Kn({recoveryParam:r.recoveryParam,r:jn("0x"+r.r.toString(16),32),s:jn("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=qo().keyFromPrivate(Bn(this.privateKey)),n=qo().keyFromPublic(Bn(zo(e)));return jn("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function zo(e,t){const n=Bn(e);if(32===n.length){const e=new Vo(n);return t?"0x"+qo().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Gn(n):"0x"+qo().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+qo().keyFromPublic(n).getPublic(!0,"hex"):Gn(n):Go.throwArgumentError("invalid public or private key","key","[REDACTED]")}const jo=new Nn("transactions/5.8.0");var Ko;function Wo(e){return"0x"===e?null:Vi(e)}function Jo(e){return"0x"===e?jr:er.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Ko||(Ko={}));const Qo=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Yo={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Xo(e){return Vi(qn(Yr(qn(zo(e),1)),12))}function $o(e,t){return Xo(function(e,t){const n=Kn(t),r={r:Bn(n.r),s:Bn(n.s)};return"0x"+qo().recoverPubKey(Bn(e),r,n.recoveryParam).encode("hex",!1)}(Bn(e),t))}function Zo(e,t){const n=Ln(er.from(e).toHexString());return n.length>32&&jo.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function eu(e,t){return{address:Vi(e),storageKeys:(t||[]).map((t,n)=>(32!==Hn(t)&&jo.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase()))}}function tu(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&jo.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),eu(e[0],e[1])):eu(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const n=e[t].reduce((e,t)=>(e[t]=!0,e),{});return eu(t,Object.keys(n).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function nu(e){return tu(e).map(e=>[e.address,e.storageKeys])}function ru(e,t){if(null!=e.gasPrice){const t=er.from(e.gasPrice),n=er.from(e.maxFeePerGas||0);t.eq(n)||jo.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[Zo(e.chainId||0,"chainId"),Zo(e.nonce||0,"nonce"),Zo(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Zo(e.maxFeePerGas||0,"maxFeePerGas"),Zo(e.gasLimit||0,"gasLimit"),null!=e.to?Vi(e.to):"0x",Zo(e.value||0,"value"),e.data||"0x",nu(e.accessList||[])];if(t){const e=Kn(t);n.push(Zo(e.recoveryParam,"recoveryParam")),n.push(Ln(e.r)),n.push(Ln(e.s))}return Vn(["0x02",Bi(n)])}function iu(e,t){const n=[Zo(e.chainId||0,"chainId"),Zo(e.nonce||0,"nonce"),Zo(e.gasPrice||0,"gasPrice"),Zo(e.gasLimit||0,"gasLimit"),null!=e.to?Vi(e.to):"0x",Zo(e.value||0,"value"),e.data||"0x",nu(e.accessList||[])];if(t){const e=Kn(t);n.push(Zo(e.recoveryParam,"recoveryParam")),n.push(Ln(e.r)),n.push(Ln(e.s))}return Vn(["0x01",Bi(n)])}function su(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&jo.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){Er(e,Yo);const n=[];Qo.forEach(function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=Bn(Gn(r,i)),t.length&&r.length!==t.length&&r.length>0&&jo.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=Ln(r),r.length>t.maxLength&&jo.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Gn(r))});let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&jo.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Mn(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Gn(r)),n.push("0x"),n.push("0x")),!t)return Bi(n);const i=Kn(t);let s=27+i.recoveryParam;return 0!==r?(n.pop(),n.pop(),n.pop(),s+=2*r+8,i.v>28&&i.v!==s&&jo.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==s&&jo.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Gn(s)),n.push(Ln(Bn(i.r))),n.push(Ln(Bn(i.s))),Bi(n)}(e,t);switch(e.type){case 1:return iu(e,t);case 2:return ru(e,t)}return jo.throwError(`unsupported transaction type: ${e.type}`,Nn.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function au(e,t,n){try{const n=Jo(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){jo.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=jn(t[1],32),e.s=jn(t[2],32);try{const t=Yr(n(e));e.from=$o(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const ou=new Nn(no);class uu{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),n=this.bigNumber.bind(this),r=this.blockTag.bind(this),i=this.data.bind(this),s=this.hash.bind(this),a=this.hex.bind(this),o=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:s,type:u,accessList:uu.allowNull(this.accessList.bind(this),null),blockHash:uu.allowNull(s,null),blockNumber:uu.allowNull(o,null),transactionIndex:uu.allowNull(o,null),confirmations:uu.allowNull(o,null),from:t,gasPrice:uu.allowNull(n),maxPriorityFeePerGas:uu.allowNull(n),maxFeePerGas:uu.allowNull(n),gasLimit:n,to:uu.allowNull(t,null),value:n,nonce:o,data:i,r:uu.allowNull(this.uint256),s:uu.allowNull(this.uint256),v:uu.allowNull(o),creates:uu.allowNull(t,null),raw:uu.allowNull(i)},e.transactionRequest={from:uu.allowNull(t),nonce:uu.allowNull(o),gasLimit:uu.allowNull(n),gasPrice:uu.allowNull(n),maxPriorityFeePerGas:uu.allowNull(n),maxFeePerGas:uu.allowNull(n),to:uu.allowNull(t),value:uu.allowNull(n),data:uu.allowNull(e=>this.data(e,!0)),type:uu.allowNull(o),accessList:uu.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:o,blockNumber:o,transactionHash:s,address:t,topics:uu.arrayOf(s),data:i,logIndex:o,blockHash:s},e.receipt={to:uu.allowNull(this.address,null),from:uu.allowNull(this.address,null),contractAddress:uu.allowNull(t,null),transactionIndex:o,root:uu.allowNull(a),gasUsed:n,logsBloom:uu.allowNull(i),blockHash:s,transactionHash:s,logs:uu.arrayOf(this.receiptLog.bind(this)),blockNumber:o,confirmations:uu.allowNull(o,null),cumulativeGasUsed:n,effectiveGasPrice:uu.allowNull(n),status:uu.allowNull(o),type:u},e.block={hash:uu.allowNull(s),parentHash:s,number:o,timestamp:o,nonce:uu.allowNull(a),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:uu.allowNull(t),extraData:i,transactions:uu.allowNull(uu.arrayOf(s)),baseFeePerGas:uu.allowNull(n)},e.blockWithTransactions=Sr(e.block),e.blockWithTransactions.transactions=uu.allowNull(uu.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:uu.allowNull(r,void 0),toBlock:uu.allowNull(r,void 0),blockHash:uu.allowNull(s,void 0),address:uu.allowNull(t,void 0),topics:uu.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:uu.allowNull(o),blockHash:uu.allowNull(s),transactionIndex:o,removed:uu.allowNull(this.boolean.bind(this)),address:t,data:uu.allowFalsish(i,"0x"),topics:uu.arrayOf(s),transactionHash:s,logIndex:o},e}accessList(e){return tu(e||[])}number(e){return"0x"===e?0:er.from(e).toNumber()}type(e){return"0x"===e||null==e?0:er.from(e).toNumber()}bigNumber(e){return er.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Fn(e))?e.toLowerCase():ou.throwArgumentError("invalid hash","value",e)}data(e,t){const n=this.hex(e,t);if(n.length%2!=0)throw new Error("invalid data; odd-length - "+e);return n}address(e){return Vi(e)}callAddress(e){if(!Fn(e,32))return null;const t=Vi(qn(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return zi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Fn(e))return zn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==Hn(n)?ou.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=er.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Fn(e))throw new Error("invalid uint256");return jn(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,r=uu.check(t,e);return r._difficulty=null==n?null:er.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return uu.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&er.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=uu.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;Fn(n)&&(n=er.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),Fn(n)&&(n=er.from(n).toNumber()),"number"!=typeof n&&null!=t.v&&(n=(t.v-35)/2,n<0&&(n=0),n=parseInt(n)),"number"!=typeof n&&(n=0),t.chainId=n}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=Bn(e);if(t[0]>127)return function(e){const t=Fi(e);9!==t.length&&6!==t.length&&jo.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:Jo(t[0]).toNumber(),gasPrice:Jo(t[1]),gasLimit:Jo(t[2]),to:Wo(t[3]),value:Jo(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=er.from(t[6]).toNumber()}catch(e){return n}if(n.r=jn(t[7],32),n.s=jn(t[8],32),er.from(n.r).isZero()&&er.from(n.s).isZero())n.chainId=n.v,n.v=0;else{n.chainId=Math.floor((n.v-35)/2),n.chainId<0&&(n.chainId=0);let r=n.v-27;const i=t.slice(0,6);0!==n.chainId&&(i.push(Gn(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const s=Yr(Bi(i));try{n.from=$o(s,{r:Gn(n.r),s:Gn(n.s),recoveryParam:r})}catch(e){}n.hash=Yr(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=Fi(e.slice(1));8!==t.length&&11!==t.length&&jo.throwArgumentError("invalid component count for transaction type: 1","payload",Gn(e));const n={type:1,chainId:Jo(t[0]).toNumber(),nonce:Jo(t[1]).toNumber(),gasPrice:Jo(t[2]),gasLimit:Jo(t[3]),to:Wo(t[4]),value:Jo(t[5]),data:t[6],accessList:tu(t[7])};return 8===t.length||(n.hash=Yr(e),au(n,t.slice(8),iu)),n}(t);case 2:return function(e){const t=Fi(e.slice(1));9!==t.length&&12!==t.length&&jo.throwArgumentError("invalid component count for transaction type: 2","payload",Gn(e));const n=Jo(t[2]),r=Jo(t[3]),i={type:2,chainId:Jo(t[0]).toNumber(),nonce:Jo(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:Jo(t[4]),to:Wo(t[5]),value:Jo(t[6]),data:t[7],accessList:tu(t[8])};return 9===t.length||(i.hash=Yr(e),au(i,t.slice(9),ru)),i}(t)}return jo.throwError(`unsupported transaction type: ${t[0]}`,Nn.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return uu.check(this.formats.receiptLog,e)}receipt(e){const t=uu.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=er.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&ou.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):ou.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&ou.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return uu.check(this.formats.filter,e)}filterLog(e){return uu.check(this.formats.filterLog,e)}static check(e,t){const n={};for(const r in e)try{const i=e[r](t[r]);void 0!==i&&(n[r]=i)}catch(e){throw e.checkKey=r,e.checkValue=t[r],e}return n}static allowNull(e,t){return function(n){return null==n?t:e(n)}}static allowFalsish(e,t){return function(n){return n?e(n):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const n=[];return t.forEach(function(t){n.push(e(t))}),n}}}var lu=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const cu=new Nn(no);function du(e){return null==e?"null":(32!==Hn(e)&&cu.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function hu(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[du(e)]=!0});const n=Object.keys(t);return n.sort(),n.join("|")}return du(e)}).join("&")}function pu(e){if("string"==typeof e){if(32===Hn(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+hu(e);if(Rr.isForkEvent(e))throw cu.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+hu(e.topics||[])}throw new Error("invalid event - "+e)}function fu(){return(new Date).getTime()}function mu(e){return new Promise(t=>{setTimeout(t,e)})}const yu=["block","network","pending","poll"];class gu{constructor(e,t,n){wr(this,"tag",e),wr(this,"listener",t),wr(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],n=""===(r=e[2])?[]:r.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var r;const i={};return n.length>0&&(i.topics=n),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||yu.indexOf(this.tag)>=0}}const bu={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function vu(e){return jn(er.from(e).toHexString(),32)}function wu(e){return Vr.encode(Dn([e,qn(Ha(Ha(e)),0,4)]))}const Au=new RegExp("^(ipfs)://(.*)$","i"),Tu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Au,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Eu(e,t){try{return ii(Su(e,t))}catch(e){}return null}function Su(e,t){if("0x"===e)return null;const n=er.from(qn(e,t,t+32)).toNumber(),r=er.from(qn(e,n,n+32)).toNumber();return qn(e,n+32,n+32+r)}function Iu(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):cu.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function ku(e){const t=Bn(e);if(t.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(t,32-t.length),n}function Cu(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Nu(e){const t=[];let n=0;for(let r=0;r<e.length;r++)t.push(null),n+=32;for(let r=0;r<e.length;r++){const i=Bn(e[r]);t[r]=ku(n),t.push(ku(i.length)),t.push(Cu(i)),n+=32+32*Math.ceil(i.length/32)}return Vn(t)}class xu{constructor(e,t,n,r){wr(this,"provider",e),wr(this,"name",n),wr(this,"address",e.formatter.address(t)),wr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>er.from(e).eq(1)).catch(e=>{if(e.code===Nn.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return lu(this,void 0,void 0,function*(){const n={to:this.address,ccipReadEnabled:!0,data:Vn([e,_i(this.name),t||"0x"])};let r=!1;var i;(yield this.supportsWildcard())&&(r=!0,n.data=Vn(["0x9061b923",Nu([(i=this.name,Gn(Dn(xi(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),n.data])]));try{let e=yield this.provider.call(n);return Bn(e).length%32==4&&cu.throwError("resolver threw error",Nn.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=Su(e,0)),e}catch(e){if(e.code===Nn.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return lu(this,void 0,void 0,function*(){const n=yield this._fetch(e,t);return null!=n?Su(n,0):null})}_getAddress(e,t){const n=bu[String(e)];if(null==n&&cu.throwError(`unsupported coin type: ${e}`,Nn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=Bn(t);if(null!=n.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return wu(Dn([[n.p2pkh],"0x"+e[2]]))}}if(null!=n.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return wu(Dn([[n.p2sh],"0x"+e[2]]))}}if(null!=n.prefix){const e=r[1];let t=r[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&r.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,n,r){for(var i=0,s=0,a=[],o=0;o<e.length;++o)for(i=i<<8|e[o],s+=8;s>=5;)a.push(i>>(s-=5)&31);return s>0&&a.push(i<<5-s&31),a}(e);if(Array.isArray(t))return t;throw new Error(t)}(r.slice(2));return e.unshift(t),function(e,t,n){if(e.length+7+t.length>(n=n||90))throw new TypeError("Exceeds length limit");var r=function(e){for(var t=1,n=0;n<e.length;++n){var r=e.charCodeAt(n);if(r<33||r>126)return"Invalid prefix ("+e+")";t=to(t)^r>>5}for(t=to(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=to(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof r)throw new Error(r);for(var i=e+"1",s=0;s<t.length;++s){var a=t[s];if(a>>5!=0)throw new Error("Non 5-bit word");r=to(r)^a,i+=Xa.charAt(a)}for(s=0;s<6;++s)r=to(r);for(r^=1,s=0;s<6;++s)i+=Xa.charAt(r>>5*(5-s)&31);return i}(n.prefix,e)}}return null}getAddress(e){return lu(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Nn.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",vu(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&cu.throwError("invalid or unsupported coin data",Nn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n})}getAvatar(){return lu(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let n=0;n<Tu.length;n++){const r=t.match(Tu[n]);if(null==r)continue;const i=r[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:Iu(t)};case"erc721":case"erc1155":{const n="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const s=this._resolvedAddress||(yield this.getAddress()),a=(r[2]||"").split("/");if(2!==a.length)return null;const o=yield this.provider.formatter.address(a[0]),u=jn(er.from(a[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:o,data:Vn(["0x6352211e",u])}));if(s!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=er.from(yield this.provider.call({to:o,data:Vn(["0x00fdd58e",jn(s,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(a[0]),data:Vn([n,u])};let c=Eu(yield this.provider.call(l),0);if(null==c)return null;e.push({type:"metadata-url-base",content:c}),"erc1155"===i&&(c=c.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:c})),c.match(/^ipfs:/i)&&(c=Iu(c)),e.push({type:"metadata-url",content:c});const d=yield Qa(c);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let h=d.image;if("string"!=typeof h)return null;if(h.match(/^(https:\/\/|data:)/i));else{if(null==h.match(Au))return null;e.push({type:"url-ipfs",content:h}),h=Iu(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return lu(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Vr.encode("0x"+t[1])}const n=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(n){const e=parseInt(n[3],16);if(n[4].length===2*e)return"ipns://"+Vr.encode("0x"+n[1])}const r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return"bzz://"+r[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Hr("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return cu.throwError("invalid or unsupported content hash data",Nn.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return lu(this,void 0,void 0,function*(){let t=ri(e);t=Dn([vu(64),vu(t.length),t]),t.length%32!=0&&(t=Dn([t,jn("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Gn(t));return null==n||"0x"===n?null:ii(n)})}}let _u=null,Ru=1;class Mu extends Mr{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),wr(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=Ar(new.target,"getNetwork")(e);t?(wr(this,"_network",t),this.emit("network",t,null)):cu.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return lu(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||cu.throwError("no network detected",Nn.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:wr(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Ya(()=>this._ready().then(e=>e,e=>{if(e.code!==Nn.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==_u&&(_u=new uu),_u}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Ur){const n=Ur[t];if(n.chainId===e)return{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress||null,_defaultProvider:n._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Ur[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Ur[e.name];if(!t)return"number"!=typeof e.chainId&&Pr.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Pr.throwArgumentError("network chainId mismatch","network",e);let n=e._defaultProvider||null;var r;return null==n&&t._defaultProvider&&(n=(r=t._defaultProvider)&&"function"==typeof r.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:n}}(null==e?"homestead":e)}ccipReadFetch(e,t,n){return lu(this,void 0,void 0,function*(){if(this.disableCcipRead||0===n.length)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),s=[];for(let e=0;e<n.length;e++){const t=n[e],a=t.replace("{sender}",r).replace("{data}",i),o=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:r}),u=yield Qa({url:a,errorPassThrough:!0},o,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return cu.throwError(`response not found during CCIP fetch: ${l}`,Nn.errors.SERVER_ERROR,{url:t,errorMessage:l});s.push(l)}return cu.throwError(`error encountered during CCIP fetch: ${s.map(e=>JSON.stringify(e)).join(", ")}`,Nn.errors.SERVER_ERROR,{urls:n,errorMessages:s})})}_getInternalBlockNumber(e){return lu(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const n=yield t;if(fu()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=fu(),n=Tr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:r})=>{if(r)throw this._internalBlockNumber===n&&(this._internalBlockNumber=null),r;const i=fu();return(e=er.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=n,n.catch(e=>{this._internalBlockNumber===n&&(this._internalBlockNumber=null)}),(yield n).blockNumber})}poll(){return lu(this,void 0,void 0,function*(){const e=Ru++,t=[];let n=null;try{n=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(n),this.emit("poll",e,n),n!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=n-1),Math.abs(this._emitted.block-n)>1e3)cu.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",cu.makeError("network block skew detected",Nn.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(let e=this._emitted.block+1;e<=n;e++)this.emit("block",e);this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&n-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=n-1),this._events.forEach(e=>{switch(e.type){case"tx":{const n=e.hash;let r=this.getTransactionReceipt(n).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+n]=e.blockNumber,this.emit(n,e),null):null).catch(e=>{this.emit("error",e)});t.push(r);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=n-1);const r=e.filter;r.fromBlock=e._lastBlockNumber+1,r.toBlock=n;const i=r.toBlock-this._maxFilterBlockRange;i>r.fromBlock&&(r.fromBlock=i),r.fromBlock<0&&(r.fromBlock=0);const s=this.getLogs(r).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(r,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(s)}}}),this._lastBlockNumber=n,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return lu(this,void 0,void 0,function*(){return cu.throwError("provider does not support network detection",Nn.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return lu(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield mu(0),this._network;const n=cu.makeError("underlying network changed",Nn.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",n),n}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=fu();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=fu(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return lu(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)})}_waitForTransaction(e,t,n,r){return lu(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,s)=>{const a=[];let o=!1;const u=function(){return!!o||(o=!0,a.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),a.push(()=>{this.removeListener(e,l)}),r){let n=r.startBlock,i=null;const l=a=>lu(this,void 0,void 0,function*(){o||(yield mu(1e3),this.getTransactionCount(r.from).then(c=>lu(this,void 0,void 0,function*(){if(!o){if(c<=r.nonce)n=a;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=n-3,i<r.startBlock&&(i=r.startBlock));i<=a;){if(o)return;const n=yield this.getBlockWithTransactions(i);for(let i=0;i<n.transactions.length;i++){const a=n.transactions[i];if(a.hash===e)return;if(a.from===r.from&&a.nonce===r.nonce){if(o)return;const n=yield this.waitForTransaction(a.hash,t);if(u())return;let i="replaced";return a.data===r.data&&a.to===r.to&&a.value.eq(r.value)?i="repriced":"0x"===a.data&&a.from===a.to&&a.value.isZero()&&(i="cancelled"),void s(cu.makeError("transaction was replaced",Nn.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(a),hash:e,receipt:n}))}}i++}}o||this.once("block",l)}}),e=>{o||this.once("block",l)}))});if(o)return;this.once("block",l),a.push(()=>{this.removeListener("block",l)})}if("number"==typeof n&&n>0){const e=setTimeout(()=>{u()||s(cu.makeError("timeout exceeded",Nn.errors.TIMEOUT,{timeout:n}))},n);e.unref&&e.unref(),a.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return lu(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return er.from(e)}catch(t){return cu.throwError("bad result from backend",Nn.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Tr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return er.from(r)}catch(e){return cu.throwError("bad result from backend",Nn.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}})}getTransactionCount(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Tr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return er.from(r).toNumber()}catch(e){return cu.throwError("bad result from backend",Nn.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}})}getCode(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Tr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Gn(r)}catch(e){return cu.throwError("bad result from backend",Nn.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}})}getStorageAt(e,t,n){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then(e=>zn(e))}),i=yield this.perform("getStorageAt",r);try{return Gn(i)}catch(e){return cu.throwError("bad result from backend",Nn.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}})}_wrapTransaction(e,t,n){if(null!=t&&32!==Hn(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&cu.throwError("Transaction hash mismatch from Provider.sendTransaction.",Nn.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>lu(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==r&&(r=0),0!==t&&null!=n&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:n});const s=yield this._waitForTransaction(e.hash,t,r,i);return null==s&&0===t?null:(this._emitted["t:"+e.hash]=s.blockNumber,0===s.status&&cu.throwError("transaction failed",Nn.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:s}),s)}),r}sendTransaction(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Gn(e)),n=this.formatter.transaction(e);null==n.confirmations&&(n.confirmations=0);const r=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(n,e,r)}catch(e){throw e.transaction=n,e.transactionHash=n.hash,e}})}_getTransactionRequest(e){return lu(this,void 0,void 0,function*(){const t=yield e,n={};return["from","to"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?er.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(n.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then(e=>e?Gn(e):null))}),this.formatter.transactionRequest(yield Tr(n))})}_getFilter(e){return lu(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(n=>{null!=e[n]&&(t[n]=e[n])}),["fromBlock","toBlock"].forEach(n=>{null!=e[n]&&(t[n]=this._getBlockTag(e[n]))}),this.formatter.filter(yield Tr(t))})}_call(e,t,n){return lu(this,void 0,void 0,function*(){n>=10&&cu.throwError("CCIP read exceeded maximum redirections",Nn.errors.SERVER_ERROR,{redirects:n,transaction:e});const r=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(n>=0&&"latest"===t&&null!=r&&"0x556f1830"===i.substring(0,10)&&Hn(i)%32==4)try{const s=qn(i,4),a=qn(s,0,32);er.from(a).eq(r)||cu.throwError("CCIP Read sender did not match",Nn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const o=[],u=er.from(qn(s,32,64)).toNumber(),l=er.from(qn(s,u,u+32)).toNumber(),c=qn(s,u+32);for(let t=0;t<l;t++){const n=Eu(c,32*t);null==n&&cu.throwError("CCIP Read contained corrupt URL string",Nn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),o.push(n)}const d=Su(s,64);er.from(qn(s,100,128)).isZero()||cu.throwError("CCIP Read callback selector included junk",Nn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=qn(s,96,100),p=Su(s,128),f=yield this.ccipReadFetch(e,d,o);null==f&&cu.throwError("CCIP Read disabled or provided no URLs",Nn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:Vn([h,Nu([f,p])])};return this._call(m,t,n+1)}catch(e){if(e.code===Nn.errors.SERVER_ERROR)throw e}try{return Gn(i)}catch(n){return cu.throwError("bad result from backend",Nn.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}})}call(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Tr({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(n.transaction,n.blockTag,n.ccipReadEnabled?0:-1)})}estimateGas(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Tr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return er.from(n)}catch(e){return cu.throwError("bad result from backend",Nn.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}})}_getAddress(e){return lu(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&cu.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&cu.throwError("ENS name not configured",Nn.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(Fn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),Fn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){cu.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Ya(()=>lu(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",r);if(null==e)return null!=r.blockHash&&null==this._emitted["b:"+r.blockHash]||null!=r.blockTag&&n>this._emitted.block?null:void 0;if(t){let t=null;for(let n=0;n<e.transactions.length;n++){const r=e.transactions[n];if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}}const n=this.formatter.blockWithTransactions(e);return n.transactions=n.transactions.map(e=>this._wrapTransaction(e)),n}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Ya(()=>lu(this,void 0,void 0,function*(){const n=yield this.perform("getTransaction",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;const r=this.formatter.transactionResponse(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return this._wrapTransaction(r)}),{oncePoll:this})})}getTransactionReceipt(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Ya(()=>lu(this,void 0,void 0,function*(){const n=yield this.perform("getTransactionReceipt",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;if(null==n.blockHash)return;const r=this.formatter.receipt(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return r}),{oncePoll:this})})}getLogs(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Tr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach(e=>{null==e.removed&&(e.removed=!1)}),uu.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)})}getEtherPrice(){return lu(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return lu(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&cu.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return lu(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const n=yield this._getResolver(t,"getResolver");if(null!=n){const r=new xu(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return lu(this,void 0,void 0,function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||cu.throwError("network does not support ENS",Nn.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+_i(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return lu(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Fn(e))throw t}"string"!=typeof e&&cu.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return lu(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(t,"lookupAddress");if(null==n)return null;const r=Eu(yield this.call({to:n,data:"0x691f3431"+_i(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r})}getAvatar(e){return lu(this,void 0,void 0,function*(){let t=null;if(Fn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new xu(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Nn.errors.CALL_EXCEPTION)throw e}try{const e=Eu(yield this.call({to:r,data:"0x691f3431"+_i(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Nn.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const n=yield t.getAvatar();return null==n?null:n.url})}perform(e,t){return cu.throwError(e+" not implemented",Nn.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,n){const r=new gu(pu(e),t,n);return this._events.push(r),this._startEvent(r),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let n=!1,r=[],i=pu(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),n=!0,!e.once||(r.push(e),!1))),r.forEach(e=>{this._stopEvent(e)}),n}listenerCount(e){if(!e)return this._events.length;let t=pu(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=pu(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const n=[];let r=!1,i=pu(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!r||(r=!0,n.push(e),!1)),n.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const n=pu(e);this._events=this._events.filter(e=>e.tag!==n||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var Pu=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Ou=new Nn(no),Bu=["call","estimateGas"];function Du(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=Fn(e.data)?e.data:null;if(!t||n)return{message:e.message,data:n}}if("object"==typeof e){for(const n in e){const r=Du(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return Du(JSON.parse(e),t)}catch(e){}return null}function Lu(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=Du(t,!0);if(e)return e.data;Ou.throwError("missing revert data in call exception; Transaction reverted without a reason string",Nn.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=Du(t.body,!1);null==n&&(n=Du(t,!1)),n&&Ou.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Nn.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===Nn.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Ou.throwError("insufficient funds for intrinsic transaction cost",Nn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&Ou.throwError("nonce has already been used",Nn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ou.throwError("replacement fee too low",Nn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&Ou.throwError("legacy pre-eip-155 transactions not supported",Nn.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),Bu.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Ou.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Nn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function Fu(e){return new Promise(function(t){setTimeout(t,e)})}function Uu(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Gu(e){return e?e.toLowerCase():e}const Hu={};class qu extends o{constructor(e,t,n){if(super(),e!==Hu)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");wr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(wr(this,"_address",this.provider.formatter.address(n)),wr(this,"_index",null)):"number"==typeof n?(wr(this,"_index",n),wr(this,"_address",null)):Ou.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return Ou.throwError("cannot alter JSON-RPC Signer connection",Nn.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Vu(Hu,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&Ou.throwError("unknown account #"+this._index,Nn.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=Sr(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const n=Sr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>Pu(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Ou.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),Tr({tx:Tr(e),sender:t}).then(({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&Ou.throwArgumentError("from address mismatch","transaction",e):t.from=n;const r=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[r]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Ou.throwError("user rejected transaction",Nn.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Lu("sendTransaction",e,r)))})}signTransaction(e){return Ou.throwError("signing transactions is unsupported",Nn.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Pu(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),n=yield this.sendUncheckedTransaction(e);try{return yield Ya(()=>Pu(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(n);if(null!==e)return this.provider._wrapTransaction(e,n,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=n,e}})}signMessage(e){return Pu(this,void 0,void 0,function*(){const t="string"==typeof e?ri(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Gn(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Nn.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}})}_legacySignMessage(e){return Pu(this,void 0,void 0,function*(){const t="string"==typeof e?ri(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Gn(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Nn.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}})}_signTypedData(e,t,n){return Pu(this,void 0,void 0,function*(){const r=yield ss.resolveNames(e,t,n,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(ss.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Nn.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}})}unlock(e){return Pu(this,void 0,void 0,function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])})}}class Vu extends qu{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const zu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class ju extends Mu{constructor(e,t){let n=t;null==n&&(n=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(n),e||(e=Ar(this.constructor,"defaultUrl")()),wr(this,"connection",Object.freeze("string"==typeof e?{url:e}:Sr(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return Pu(this,void 0,void 0,function*(){yield Fu(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=Ar(this.constructor,"getNetwork");try{return t(er.from(e).toNumber())}catch(t){return Ou.throwError("could not detect network",Nn.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Ou.throwError("could not detect network",Nn.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new qu(Hu,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Nr(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=Qa(this.connection,JSON.stringify(n),Uu).then(e=>(this.emit("debug",{action:"response",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:n,provider:this}),e});return r&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Gu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Gu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Gu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Gu(t.address),jn(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[Ar(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[Ar(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Gu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Pu(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&er.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=Sr(t)).transaction=Sr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&Ou.throwError(e+" not implemented",Nn.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return Lu(e,n,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(n){return function r(){e.send("eth_getFilterChanges",[n]).then(function(n){if(e._pendingFilter!=t)return null;let r=Promise.resolve();return n.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",r=r.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),r.then(function(){return Fu(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){r()},0),null;e.send("eth_uninstallFilter",[n])}).catch(e=>{})}(),n}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const n=Sr(zu);if(t)for(const e in t)t[e]&&(n[e]=!0);Er(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const n=zn(er.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n}),["from","to","data"].forEach(function(t){null!=e[t]&&(r[t]=Gn(e[t]))}),e.accessList&&(r.accessList=tu(e.accessList)),r}}const Ku=new Nn("random/5.8.0"),Wu=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let Ju=Wu.crypto||Wu.msCrypto;function Qu(e){(e<=0||e>1024||e%1||e!=e)&&Ku.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return Ju.getRandomValues(t),Bn(t)}Ju&&Ju.getRandomValues||(Ku.warn("WARNING: Missing strong random number source"),Ju={getRandomValues:function(e){return Ku.throwError("no secure random source avaialble",Nn.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Yu=new Nn(no);let Xu=1;function $u(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:Xu++,jsonrpc:"2.0"};return new Promise((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:Nr(i),provider:this}),t(i,(t,s)=>{if(t)return this.emit("debug",{action:"response",fetcher:n,error:t,request:i,provider:this}),r(t);if(this.emit("debug",{action:"response",fetcher:n,request:i,response:s,provider:this}),s.error){const e=new Error(s.error.message);return e.code=s.error.code,e.data=s.error.data,r(e)}e(s.result)})})}}class Zu extends ju{constructor(e,t){null==e&&Yu.throwArgumentError("missing provider","provider",e);let n=null,r=null,i=null;"function"==typeof e?(n="unknown:",r=e):(n=e.host||e.path||"",!n&&e.isMetaMask&&(n="metamask"),i=e,e.request?(""===n&&(n="eip-1193:"),r=function(e){return function(t,n){null==n&&(n=[]);const r={method:t,params:n};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Nr(r),provider:this}),e.request(r).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,error:e,provider:this}),e})}}(e)):e.sendAsync?r=$u(0,e.sendAsync.bind(e)):e.send?r=$u(0,e.send.bind(e)):Yu.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),wr(this,"jsonRpcFetchFunc",r),wr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function el(e,t,n,r,i){let s;e=Bn(e),t=Bn(t);let a=1;const o=new Uint8Array(r),u=new Uint8Array(t.length+4);let l,c;u.set(t);for(let d=1;d<=a;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let h=Bn(qa(i,e,u));s||(s=h.length,c=new Uint8Array(s),a=Math.ceil(r/s),l=r-(a-1)*s),c.set(h);for(let t=1;t<n;t++){h=Bn(qa(i,e,h));for(let e=0;e<s;e++)c[e]^=h[e]}const p=(d-1)*s,f=d===a?l:s;o.set(Bn(c).slice(0,f),p)}return Gn(o)}new Nn(no);const tl=new Nn("wordlists/5.8.0");class nl{constructor(e){tl.checkAbstract(new.target,nl),wr(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let n=0;n<2048;n++){const r=e.getWord(n);if(n!==e.getWordIndex(r))return"0x";t.push(r)}return si(t.join("\n")+"\n")}static register(e,t){}}const rl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let il=null;function sl(e){if(null==il&&(il=rl.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==nl.check(e)))throw il=null,new Error("BIP39 Wordlist for en (English) FAILED")}const al=new class extends nl{constructor(){super("en")}getWord(e){return sl(this),il[e]}getWordIndex(e){return sl(this),il.indexOf(e)}};nl.register(al);const ol={en:al},ul=new Nn("hdnode/5.8.0"),ll=er.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),cl=ri("Bitcoin seed"),dl=2147483648;function hl(e){return(1<<e)-1<<8-e}function pl(e){return jn(Gn(e),32)}function fl(e){return Vr.encode(Dn([e,qn(Ha(Ha(e)),0,4)]))}function ml(e){if(null==e)return ol.en;if("string"==typeof e){const t=ol[e];return null==t&&ul.throwArgumentError("unknown locale","wordlist",e),t}return e}const yl={},gl="m/44'/60'/0'/0/0";class bl{constructor(e,t,n,r,i,s,a,o){if(e!==yl)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Vo(t);wr(this,"privateKey",e.privateKey),wr(this,"publicKey",e.compressedPublicKey)}else wr(this,"privateKey",null),wr(this,"publicKey",Gn(n));var u;wr(this,"parentFingerprint",r),wr(this,"fingerprint",qn((u=Ha(this.publicKey),"0x"+Ua.ripemd160().update(Bn(u)).digest("hex")),0,4)),wr(this,"address",Xo(this.publicKey)),wr(this,"chainCode",i),wr(this,"index",s),wr(this,"depth",a),null==o?(wr(this,"mnemonic",null),wr(this,"path",null)):"string"==typeof o?(wr(this,"mnemonic",null),wr(this,"path",o)):(wr(this,"mnemonic",o),wr(this,"path",o.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return fl(Dn([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Gn(this.depth),this.parentFingerprint,jn(Gn(this.index),4),this.chainCode,null!=this.privateKey?Dn(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new bl(yl,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const n=new Uint8Array(37);if(e&dl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(Bn(this.privateKey),1),t&&(t+="'")}else n.set(Bn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=Bn(qa(La.sha512,this.chainCode,n)),i=r.slice(0,32),s=r.slice(32);let a=null,o=null;this.privateKey?a=pl(er.from(i).add(this.privateKey).mod(ll)):o=new Vo(Gn(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new bl(yl,a,o,this.fingerprint,pl(s),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let n=this;for(let e=0;e<t.length;e++){const r=t[e];if(r.match(/^[0-9]+'$/)){const e=parseInt(r.substring(0,r.length-1));if(e>=dl)throw new Error("invalid path index - "+r);n=n._derive(dl+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=dl)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=Bn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=Bn(qa(La.sha512,cl,n));return new bl(yl,pl(r.slice(0,32)),null,"0x00000000",pl(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=wl(vl(e,n=ml(n)),n),bl._fromSeed(function(e,t){t||(t="");const n=ri("mnemonic"+t,$r.NFKD);return el(ri(e,$r.NFKD),n,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return bl._fromSeed(e,null)}static fromExtendedKey(e){const t=Vr.decode(e);82===t.length&&fl(t.slice(0,78))===e||ul.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Gn(t.slice(5,9)),i=parseInt(Gn(t.slice(9,13)).substring(2),16),s=Gn(t.slice(13,45)),a=t.slice(45,78);switch(Gn(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new bl(yl,null,Gn(a),r,s,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==a[0])break;return new bl(yl,Gn(a.slice(1)),null,r,s,i,n,null)}return ul.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function vl(e,t){t=ml(t),ul.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=Bn(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let e=0;e<n.length;e++){let s=t.getWordIndex(n[e].normalize("NFKD"));if(-1===s)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)s&1<<10-e&&(r[i>>3]|=1<<7-i%8),i++}const s=32*n.length/3,a=hl(n.length/3);if((Bn(Ha(r.slice(0,s/8)))[0]&a)!=(r[r.length-1]&a))throw new Error("invalid checksum");return Gn(r.slice(0,s/8))}function wl(e,t){if(t=ml(t),(e=Bn(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let t=0;t<e.length;t++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=e[t],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=e[t]>>8-r,n.push(e[t]&(1<<8-r)-1),r+=3);const i=e.length/4,s=Bn(Ha(e))[0]&hl(i);return n[n.length-1]<<=i,n[n.length-1]|=s>>8-i,t.join(n.map(e=>t.getWord(e)))}var Al=yn(function(e,t){!function(t){function n(e){return parseInt(e)===e}function r(e){if(!n(e.length))return!1;for(var t=0;t<e.length;t++)if(!n(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!r(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(n(e.length)&&r(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function s(e){return new Uint8Array(e)}function a(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}var o,u={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},l=(o="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(o[(240&r)>>4]+o[15&r])}return t.join("")}}),c={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],w=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],A=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],S=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function k(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=c[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(e+1),i=this.key.length/4,s=k(this.key);for(t=0;t<i;t++)this._Ke[n=t>>2][t%4]=s[t],this._Kd[e-n][t%4]=s[t];for(var a,o=0,u=i;u<r;){if(s[0]^=h[(a=s[i-1])>>16&255]<<24^h[a>>8&255]<<16^h[255&a]<<8^h[a>>24&255]^d[o]<<24,o+=1,8!=i)for(t=1;t<i;t++)s[t]^=s[t-1];else{for(t=1;t<i/2;t++)s[t]^=s[t-1];for(s[i/2]^=h[255&(a=s[i/2-1])]^h[a>>8&255]<<8^h[a>>16&255]<<16^h[a>>24&255]<<24,t=i/2+1;t<i;t++)s[t]^=s[t-1]}for(t=0;t<i&&u<r;)this._Ke[l=u>>2][p=u%4]=s[t],this._Kd[e-l][p]=s[t++],u++}for(var l=1;l<e;l++)for(var p=0;p<4;p++)this._Kd[l][p]=T[(a=this._Kd[l][p])>>24&255]^E[a>>16&255]^S[a>>8&255]^I[255&a]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=k(e),i=0;i<4;i++)r[i]^=this._Ke[0][i];for(var a=1;a<t;a++){for(i=0;i<4;i++)n[i]=f[r[i]>>24&255]^m[r[(i+1)%4]>>16&255]^y[r[(i+2)%4]>>8&255]^g[255&r[(i+3)%4]]^this._Ke[a][i];r=n.slice()}var o,u=s(16);for(i=0;i<4;i++)u[4*i]=255&(h[r[i]>>24&255]^(o=this._Ke[t][i])>>24),u[4*i+1]=255&(h[r[(i+1)%4]>>16&255]^o>>16),u[4*i+2]=255&(h[r[(i+2)%4]>>8&255]^o>>8),u[4*i+3]=255&(h[255&r[(i+3)%4]]^o);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=k(e),i=0;i<4;i++)r[i]^=this._Kd[0][i];for(var a=1;a<t;a++){for(i=0;i<4;i++)n[i]=b[r[i]>>24&255]^v[r[(i+3)%4]>>16&255]^w[r[(i+2)%4]>>8&255]^A[255&r[(i+1)%4]]^this._Kd[a][i];r=n.slice()}var o,u=s(16);for(i=0;i<4;i++)u[4*i]=255&(p[r[i]>>24&255]^(o=this._Kd[t][i])>>24),u[4*i+1]=255&(p[r[(i+3)%4]>>16&255]^o>>16),u[4*i+2]=255&(p[r[(i+2)%4]>>8&255]^o>>8),u[4*i+3]=255&(p[255&r[(i+1)%4]]^o);return u};var N=function(e){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};N.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16)a(e,n,0,r,r+16),a(n=this._aes.encrypt(n),t,r);return t},N.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16)a(e,n,0,r,r+16),a(n=this._aes.decrypt(n),t,r);return t};var x=function(e,t){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=s(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};x.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16){a(e,n,0,r,r+16);for(var o=0;o<16;o++)n[o]^=this._lastCipherblock[o];this._lastCipherblock=this._aes.encrypt(n),a(this._lastCipherblock,t,r)}return t},x.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=s(e.length),n=s(16),r=0;r<e.length;r+=16){a(e,n,0,r,r+16),n=this._aes.decrypt(n);for(var o=0;o<16;o++)t[r+o]=n[o]^this._lastCipherblock[o];a(e,this._lastCipherblock,0,r,r+16)}return t};var _=function(e,t,n){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=s(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new C(e)};_.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)n[r+s]^=t[s];a(this._shiftRegister,this._shiftRegister,0,this.segmentSize),a(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},_.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)n[r+s]^=t[s];a(this._shiftRegister,this._shiftRegister,0,this.segmentSize),a(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var R=function(e,t){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=s(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};R.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},R.prototype.decrypt=R.prototype.encrypt;var M=function(e){if(!(this instanceof M))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=s(16),this.setValue(e)):this.setBytes(e)};M.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},M.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},M.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof M||(t=new M(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};P.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt,e.exports={AES:C,Counter:M,ModeOfOperation:{ecb:N,cbc:x,cfb:_,ofb:R,ctr:P},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=s(e.length+t);a(e,n);for(var r=e.length;r<n.length;r++)n[r]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,r=0;r<t;r++)if(e[n+r]!==t)throw new Error("PKCS#7 invalid padding byte");var o=s(n);return a(e,o,0,0,n),o}}},_arrayTest:{coerceArray:i,createArray:s,copyArray:a}}}()});const Tl="json-wallets/5.8.0";function El(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Bn(e)}function Sl(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function Il(e){return"string"==typeof e?ri(e,$r.NFKC):Bn(e)}function kl(e,t){let n=e;const r=t.toLowerCase().split("/");for(let e=0;e<r.length;e++){let t=null;for(const i in n)if(i.toLowerCase()===r[e]){t=n[i];break}if(null===t)return null;n=t}return n}function Cl(e){const t=Bn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Gn(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const Nl=new Nn(Tl);class xl extends xr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function _l(e,t){const n=JSON.parse(e);t=Il(t);const r=Vi(kl(n,"ethaddr")),i=El(kl(n,"encseed"));i&&i.length%16==0||Nl.throwArgumentError("invalid encseed","json",e);const s=Bn(el(t,t,2e3,32,"sha256")).slice(0,16),a=i.slice(0,16),o=i.slice(16),u=new Al.ModeOfOperation.cbc(s,a),l=Al.padding.pkcs7.strip(Bn(u.decrypt(o)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=Yr(ri(c));return new xl({_isCrowdsaleAccount:!0,address:r,privateKey:d})}function Rl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Ml(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var Pl=yn(function(e,t){!function(t){const n=2147483647;function r(e){const t=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);let n=1779033703,r=3144134277,i=1013904242,s=2773480762,a=1359893119,o=2600822924,u=528734635,l=1541459225;const c=new Uint32Array(64);function d(e){let d=0,h=e.length;for(;h>=64;){let p,f,m,y,g,b=n,v=r,w=i,A=s,T=a,E=o,S=u,I=l;for(f=0;f<16;f++)m=d+4*f,c[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)p=c[f-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=c[f-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,c[f]=(y+c[f-7]|0)+(g+c[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&S)|0)+(I+(t[f]+c[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&w^v&w)|0,I=S,S=E,E=T,T=A+y|0,A=w,w=v,v=b,b=y+g|0;n=n+b|0,r=r+v|0,i=i+w|0,s=s+A|0,a=a+T|0,o=o+E|0,u=u+S|0,l=l+I|0,d+=64,h-=64}}d(e);let h,p=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),h=p+1;h<y;h++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,n){e=e.length<=64?e:r(e);const i=64+t.length+4,s=new Array(i),a=new Array(64);let o,u=[];for(o=0;o<64;o++)s[o]=54;for(o=0;o<e.length;o++)s[o]^=e[o];for(o=0;o<t.length;o++)s[64+o]=t[o];for(o=i-4;o<i;o++)s[o]=0;for(o=0;o<64;o++)a[o]=92;for(o=0;o<e.length;o++)a[o]^=e[o];function l(){for(let e=i-1;e>=i-4;e--){if(s[e]++,s[e]<=255)return;s[e]=0}}for(;n>=32;)l(),u=u.concat(r(a.concat(r(s)))),n-=32;return n>0&&(l(),u=u.concat(r(a.concat(r(s))).slice(0,n))),u}function s(e,t,n,r,i){let s;for(l(e,16*(2*n-1),i,0,16),s=0;s<2*n;s++)u(e,16*s,i,16),o(i,r),l(i,0,e,t+16*s,16);for(s=0;s<n;s++)l(e,t+2*s*16,e,16*s,16);for(s=0;s<n;s++)l(e,t+16*(2*s+1),e,16*(s+n),16)}function a(e,t){return e<<t|e>>>32-t}function o(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=a(t[0]+t[12],7),t[8]^=a(t[4]+t[0],9),t[12]^=a(t[8]+t[4],13),t[0]^=a(t[12]+t[8],18),t[9]^=a(t[5]+t[1],7),t[13]^=a(t[9]+t[5],9),t[1]^=a(t[13]+t[9],13),t[5]^=a(t[1]+t[13],18),t[14]^=a(t[10]+t[6],7),t[2]^=a(t[14]+t[10],9),t[6]^=a(t[2]+t[14],13),t[10]^=a(t[6]+t[2],18),t[3]^=a(t[15]+t[11],7),t[7]^=a(t[3]+t[15],9),t[11]^=a(t[7]+t[3],13),t[15]^=a(t[11]+t[7],18),t[1]^=a(t[0]+t[3],7),t[2]^=a(t[1]+t[0],9),t[3]^=a(t[2]+t[1],13),t[0]^=a(t[3]+t[2],18),t[6]^=a(t[5]+t[4],7),t[7]^=a(t[6]+t[5],9),t[4]^=a(t[7]+t[6],13),t[5]^=a(t[4]+t[7],18),t[11]^=a(t[10]+t[9],7),t[8]^=a(t[11]+t[10],9),t[9]^=a(t[8]+t[11],13),t[10]^=a(t[9]+t[8],18),t[12]^=a(t[15]+t[14],7),t[13]^=a(t[12]+t[15],9),t[14]^=a(t[13]+t[12],13),t[15]^=a(t[14]+t[13],18);for(let n=0;n<16;++n)e[n]+=t[n]}function u(e,t,n,r){for(let i=0;i<r;i++)n[i]^=e[t+i]}function l(e,t,n,r,i){for(;i--;)n[r++]=e[t++]}function c(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const n=e[t];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function h(e,t,r,a,o,h,p){if(r=d(r,"N"),a=d(a,"r"),o=d(o,"p"),h=d(h,"dkLen"),0===r||0!=(r&r-1))throw new Error("N must be power of 2");if(r>n/128/a)throw new Error("N too large");if(a>n/128/o)throw new Error("r too large");if(!c(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!c(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*o*a);const m=new Uint32Array(32*o*a);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*a),g=new Uint32Array(32*a*r),b=32*a,v=new Uint32Array(16),w=new Uint32Array(16),A=o*r*2;let T,E,S=0,I=null,k=!1,C=0,N=0;const x=p?parseInt(1e3/a):4294967295,_="undefined"!=typeof setImmediate?setImmediate:setTimeout,R=function(){if(k)return p(new Error("cancelled"),S/A);let t;switch(C){case 0:E=32*N*a,l(m,E,y,0,b),C=1,T=0;case 1:t=r-T,t>x&&(t=x);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),s(y,b,a,v,w);if(T+=t,S+=t,p){const e=parseInt(1e3*S/A);if(e!==I){if(k=p(null,S/A),k)break;I=e}}if(T<r)break;T=0,C=2;case 2:t=r-T,t>x&&(t=x);for(let e=0;e<t;e++)u(g,(y[16*(2*a-1)]&r-1)*b,y,b),s(y,b,a,v,w);if(T+=t,S+=t,p){const e=parseInt(1e3*S/A);if(e!==I){if(k=p(null,S/A),k)break;I=e}}if(T<r)break;if(l(y,0,m,E,b),N++,N<o){C=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const n=i(e,f,h);return p&&p(null,1,n),n}p&&_(R)};if(!p)for(;;){const e=R();if(null!=e)return e}R()}const p={scrypt:function(e,t,n,r,i,s,a){return new Promise(function(o,u){let l=0;a&&a(0),h(e,t,n,r,i,s,function(e,t,n){if(e)u(e);else if(n)a&&1!==l&&a(1),o(new Uint8Array(n));else if(a&&t!==l)return l=t,a(t)})})},syncScrypt:function(e,t,n,r,i,s){return new Uint8Array(h(e,t,n,r,i,s))}};e.exports=p}()}),Ol=Pl;const Bl=new Nn(Tl);function Dl(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Ll extends xr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Fl(e,t){const n=El(kl(e,"crypto/ciphertext"));if(Gn(Yr(Dn([t.slice(16,32),n]))).substring(2)!==kl(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===kl(e,"crypto/cipher")){const r=El(kl(e,"crypto/cipherparams/iv")),i=new Al.Counter(r);return Bn(new Al.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||Bl.throwError("unsupported cipher",Nn.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),s=Xo(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Vi(t)!==s)throw new Error("address mismatch")}const a={_isKeystoreAccount:!0,address:s,privateKey:Gn(r)};if("0.1"===kl(e,"x-ethers/version")){const t=El(kl(e,"x-ethers/mnemonicCiphertext")),n=El(kl(e,"x-ethers/mnemonicCounter")),r=new Al.Counter(n),s=new Al.ModeOfOperation.ctr(i,r),o=kl(e,"x-ethers/path")||gl,u=kl(e,"x-ethers/locale")||"en",l=Bn(s.decrypt(t));try{const e=wl(l,u),t=bl.fromMnemonic(e,null,u).derivePath(o);if(t.privateKey!=a.privateKey)throw new Error("mnemonic mismatch");a.mnemonic=t.mnemonic}catch(e){if(e.code!==Nn.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Ll(a)}function Ul(e,t,n,r,i){return Bn(el(e,t,n,r,i))}function Gl(e,t,n,r,i){return Promise.resolve(Ul(e,t,n,r,i))}function Hl(e,t,n,r,i){const s=Il(t),a=kl(e,"crypto/kdf");if(a&&"string"==typeof a){const t=function(e,t){return Bl.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===a.toLowerCase()){const n=El(kl(e,"crypto/kdfparams/salt")),o=parseInt(kl(e,"crypto/kdfparams/n")),u=parseInt(kl(e,"crypto/kdfparams/r")),l=parseInt(kl(e,"crypto/kdfparams/p"));o&&u&&l||t("kdf",a),0!=(o&o-1)&&t("N",o);const c=parseInt(kl(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),r(s,n,o,u,l,64,i)}if("pbkdf2"===a.toLowerCase()){const r=El(kl(e,"crypto/kdfparams/salt"));let i=null;const a=kl(e,"crypto/kdfparams/prf");"hmac-sha256"===a?i="sha256":"hmac-sha512"===a?i="sha512":t("prf",a);const o=parseInt(kl(e,"crypto/kdfparams/c")),u=parseInt(kl(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(s,r,o,u,i)}}return Bl.throwArgumentError("unsupported key-derivation function","kdf",a)}var ql=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Vl=new Nn("wallet/5.8.0");class zl extends o{constructor(e,t){if(super(),null!=(n=e)&&Fn(n.privateKey,32)&&null!=n.address){const t=new Vo(e.privateKey);if(wr(this,"_signingKey",()=>t),wr(this,"address",Xo(this.publicKey)),this.address!==Vi(e.address)&&Vl.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;wr(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||gl,locale:t.locale||"en"}));const n=this.mnemonic;Xo(bl.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Vl.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else wr(this,"_mnemonic",()=>null)}else{if(Vo.isSigningKey(e))"secp256k1"!==e.curve&&Vl.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),wr(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Vo(e);wr(this,"_signingKey",()=>t)}wr(this,"_mnemonic",()=>null),wr(this,"address",Xo(this.publicKey))}var n;t&&!Mr.isProvider(t)&&Vl.throwArgumentError("invalid provider","provider",t),wr(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new zl(this,e)}signTransaction(e){return Tr(e).then(t=>{null!=t.from&&(Vi(t.from)!==this.address&&Vl.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(Yr(su(t)));return su(t,n)})}signMessage(e){return ql(this,void 0,void 0,function*(){return Wn(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=ri(e)),Yr(Dn([ri("Ethereum Signed Message:\n"),ri(String(e.length)),e]))}(e)))})}_signTypedData(e,t,n){return ql(this,void 0,void 0,function*(){const r=yield ss.resolveNames(e,t,n,e=>(null==this.provider&&Vl.throwError("cannot resolve ENS names without a provider",Nn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return Wn(this._signingKey().signDigest(ss.hash(r.domain,t,r.value)))})}encrypt(e,t,n){if("function"!=typeof t||n||(n=t,t={}),n&&"function"!=typeof n)throw new Error("invalid callback");return t||(t={}),function(e,t,n,r){try{if(Vi(e.address)!==Xo(e.privateKey))throw new Error("address/privateKey mismatch");if(Dl(e)){const t=e.mnemonic;if(bl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||gl).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=Bn(e.privateKey),s=Il(t);let a=null,o=null,u=null;if(Dl(e)){const t=e.mnemonic;a=Bn(vl(t.phrase,t.locale||"en")),o=t.path||gl,u=t.locale||"en"}let l=n.client;l||(l="ethers.js");let c=null;c=n.salt?Bn(n.salt):Qu(32);let d=null;if(n.iv){if(d=Bn(n.iv),16!==d.length)throw new Error("invalid iv")}else d=Qu(16);let h=null;if(n.uuid){if(h=Bn(n.uuid),16!==h.length)throw new Error("invalid uuid")}else h=Qu(16);let p=1<<17,f=8,m=1;return n.scrypt&&(n.scrypt.N&&(p=n.scrypt.N),n.scrypt.r&&(f=n.scrypt.r),n.scrypt.p&&(m=n.scrypt.p)),Ol.scrypt(s,c,p,f,m,64,r).then(t=>{const n=(t=Bn(t)).slice(0,16),r=t.slice(16,32),s=t.slice(32,64),y=new Al.Counter(d),g=Bn(new Al.ModeOfOperation.ctr(n,y).encrypt(i)),b=Yr(Dn([r,g])),v={address:e.address.substring(2).toLowerCase(),id:Cl(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Gn(d).substring(2)},ciphertext:Gn(g).substring(2),kdf:"scrypt",kdfparams:{salt:Gn(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(a){const e=Qu(16),t=new Al.Counter(e),n=Bn(new Al.ModeOfOperation.ctr(s,t).encrypt(a)),r=new Date,i=r.getUTCFullYear()+"-"+Sl(r.getUTCMonth()+1,2)+"-"+Sl(r.getUTCDate(),2)+"T"+Sl(r.getUTCHours(),2)+"-"+Sl(r.getUTCMinutes(),2)+"-"+Sl(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Gn(e).substring(2),mnemonicCiphertext:Gn(n).substring(2),path:o,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,n)}static createRandom(e){let t=Qu(16);e||(e={}),e.extraEntropy&&(t=Bn(qn(Yr(Dn([t,e.extraEntropy])),0,16)));const n=wl(t,e.locale);return zl.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return function(e,t,n){if(Rl(e)){n&&n(0);const r=_l(e,t);return n&&n(1),Promise.resolve(r)}return Ml(e)?function(e,t,n){return r=this,s=function*(){const r=JSON.parse(e);return Fl(r,yield Hl(r,t,Gl,Ol.scrypt,n))},new((i=void 0)||(i=Promise))(function(e,t){function n(e){try{o(s.next(e))}catch(e){t(e)}}function a(e){try{o(s.throw(e))}catch(e){t(e)}}function o(t){var r;t.done?e(t.value):(r=t.value,r instanceof i?r:new i(function(e){e(r)})).then(n,a)}o((s=s.apply(r,[])).next())});var r,i,s}(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}(e,t,n).then(e=>new zl(e))}static fromEncryptedJsonSync(e,t){return new zl(function(e,t){if(Rl(e))return _l(e,t);if(Ml(e))return function(e,t){const n=JSON.parse(e);return Fl(n,Hl(n,t,Ul,Ol.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,n){return t||(t=gl),new zl(bl.fromMnemonic(e,null,n).derivePath(t))}}function jl(e){return"string"==typeof e?new zl(e):"request"in e||"send"in e?new Zu(e).getSigner():e}const Kl=new l;async function Wl({slippageBps:e,appCode:t,orderClass:n,partnerFee:r},i){const s={slippageBips:e},a={orderClass:n},o=await Kl.generateAppDataDoc(A({appCode:t,metadata:{quote:s,orderClass:a,partnerFee:r}},i||{})),{fullAppData:u,appDataKeccak256:l}=await Jl(o);return{doc:o,fullAppData:u,appDataKeccak256:l}}async function Jl(e){const t=await c(e);return{fullAppData:t,appDataKeccak256:d(h(t))}}async function Ql(e,t){var n;const r=null!=(n=t.metadata)&&n.hooks?K({},e,{metadata:K({},e.metadata,{hooks:{}})}):e,i=t?A(r,t):r,{fullAppData:s,appDataKeccak256:a}=await Jl(i);return{fullAppData:s,appDataKeccak256:a,doc:i}}const Yl="Order",Xl=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],$l=1e6,Zl=BigInt($l),ec=10000n;function tc(e,t){const n=e*BigInt(Math.floor(t*$l))/Zl;return n/100n+(n%100n>=50n?1n:0n)}const nc=1e4,rc=50,ic=.5;function sc(e){const{quote:t,tradeParameters:n,trader:r,isEthFlow:i}=e,{sellTokenDecimals:s,buyTokenDecimals:a}=n,{isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l}=xt({sellDecimals:s,buyDecimals:a,orderParams:t.quote}),{feeAmount:c}=t.quote,d=function(e){const{feeAmount:t,multiplyingFactorPercent:n}=e;if(t<0n)throw new Error("Fee amount must be non-negative: "+t);if(n<0)throw new Error("multiplyingFactorPercent must be non-negative: "+n);return tc(t,n)}({feeAmount:BigInt(c),multiplyingFactorPercent:rc}),h=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:n,isSell:r,slippagePercent:i}=e,s=r?n:t;if(s<=0n)throw new Error("sellAmount must be greater than 0: "+s);if(i<0)throw new Error("slippagePercent must be non-negative: "+i);return tc(s,i)}({isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippagePercent:ic}),p=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:n,slippage:r,isSell:i}=e,s=i?n:t;if(s<=0n)throw new Error("sellAmount must be greater than 0: "+s);if(r<0n)throw new Error("slippage must be non-negative: "+r);return i?Number(qt-qt*(s-r)/s)/Number(qt):Number(qt*(s+r)/s-qt)/Number(qt)}({isSell:o,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippage:d+h}),f=function(e){const t="bigint"==typeof e?Number(e*ec):e*Number(ec);return Math.round(t)}(p);return Math.max(Math.min(f,nc),jt(r.chainId,i))}const ac={signingScheme:Ct.EIP1271,onchainOrder:!0,verificationGasLimit:0};async function oc(e,t,n,r){const{quote:i,orderBookApi:s,tradeParameters:a,slippageBps:o,suggestedSlippageBps:u,appDataInfo:l,isEthFlow:c}=await async function(e,t,n,r){const{appCode:i,chainId:s,account:a}=t,o=on(e),u=o?dn(s,e):e,{sellToken:l,buyToken:c,amount:d,kind:h,partnerFee:p,validFor:f=Kt,slippageBps:m,env:y="prod"}=u;Y(`getQuote for: Swap ${d} ${l} for ${c} on chain ${s} with ${void 0!==m?`${m} BPS`:"AUTO"} slippage`);const g=r||new ht({chainId:s,env:y}),b=u.receiver||a,v="sell"===h;Y("Building app data...");const w=jt(s,o),A=null!=m?m:w,T={slippageBps:A,orderClass:"market",appCode:i,partnerFee:p},E=await Wl(T,null==n?void 0:n.appData),{appDataKeccak256:S,fullAppData:I}=E;Y(`App data: appDataKeccak256=${S} fullAppData=${I}`);const k=K({from:a,sellToken:l,buyToken:c,receiver:b,validFor:f,appData:I,appDataHash:S,priceQuality:It.OPTIMAL,signingScheme:Ct.EIP712},o?ac:{},v?{kind:Tt.SELL,sellAmountBeforeFee:d}:{kind:At.BUY,buyAmountAfterFee:d},null==n?void 0:n.quoteRequest);Y("Getting quote...");const C=await g.getQuote(k),N=sc({isEthFlow:o,quote:C,tradeParameters:u,trader:t,advancedSettings:n}),x={isEthFlow:o,quote:C,orderBookApi:g,suggestedSlippageBps:N};if(void 0===m){if(N>w){Y(`Suggested slippage is greater than ${w} BPS (default), using the suggested slippage (${N} BPS)`);const t=await Wl(K({},T,{slippageBps:N}),null==n?void 0:n.appData);return Y(`App data with new suggested slippage: appDataKeccak256=${t.appDataKeccak256} fullAppData=${t.fullAppData}`),K({},x,{appDataInfo:t,tradeParameters:K({},e,{slippageBps:N}),slippageBps:N})}Y(`Suggested slippage is only ${N} BPS. Using the default slippage (${w} BPS)`)}return K({},x,{appDataInfo:E,tradeParameters:e,slippageBps:A})}(e,t,n,r),{partnerFee:d,sellTokenDecimals:h,buyTokenDecimals:p}=a,{chainId:f,account:m}=t,y=Rt({orderParams:i.quote,slippagePercentBps:o,partnerFeeBps:Lt(d),sellDecimals:h,buyDecimals:p}),g=Wt({chainId:f,from:m,networkCostsAmount:i.quote.feeAmount,isEthFlow:c},an(a,i),l.appDataKeccak256),b=await async function(e,t){return{domain:await Dt.getDomain(e),primaryType:Yl,types:{[Yl]:T,EIP712Domain:Xl},message:t}}(f,g);return{result:{tradeParameters:a,suggestedSlippageBps:u,amountsAndCosts:y,orderToSign:g,quoteResponse:i,appDataInfo:l,orderTypedData:b},orderBookApi:s}}async function uc(e,t,n){const r=jl(e.signer),i=await async function(e,t){const n=t.owner||await e.getAddress();return{chainId:t.chainId,appCode:t.appCode,account:n}}(r,e),s=await oc(e,i,t,n);return{result:K({},s.result,{signer:r}),orderBookApi:s.orderBookApi}}async function lc(e,t,n){return cc(await uc(e,t,n),t)}async function cc({orderBookApi:e,result:{signer:t,appDataInfo:n,quoteResponse:r,tradeParameters:i}},s){var a,o,u;const l=an(i,r),c=null==s?void 0:s.appData,d=c?await Ql(n.doc,c):n,h=null==c||null==(a=c.metadata)||null==(a=a.quote)?void 0:a.slippageBips,p=null==c||null==(o=c.metadata)?void 0:o.partnerFee;if(void 0!==h&&(l.slippageBps=h),p&&(l.partnerFee=p),null!=s&&s.quoteRequest){const{receiver:e,validTo:t,sellToken:n,buyToken:r}=s.quoteRequest;e&&(l.receiver=e),t&&(l.validTo=t),n&&(l.sellToken=n),r&&(l.buyToken=r)}return fn(e,t,d,l,K({signingScheme:null==s||null==(u=s.quoteRequest)?void 0:u.signingScheme,networkCostsAmount:r.quote.feeAmount},null==s?void 0:s.additionalParams))}async function dc(e,t,n){var r,i;const s=null==t||null==(r=t.appData)||null==(r=r.metadata)||null==(r=r.quote)?void 0:r.slippageBips,a=null==t||null==(i=t.appData)||null==(i=i.metadata)?void 0:i.partnerFee;void 0!==s&&(e.slippageBps=s),a&&(e.partnerFee=a),e.slippageBps||(e.slippageBps=0),e.env||(e.env="prod");const{appCode:o,chainId:u,sellToken:l,buyToken:c,sellAmount:d,buyAmount:h,partnerFee:p}=e;Y(`Limit order ${d} ${l} for ${h} ${c} on chain ${u}`);const f=jl(e.signer),m=n||new ht({chainId:u,env:e.env});return Y("Building app data..."),fn(m,f,await Wl({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:p},null==t?void 0:t.appData),e,null==t?void 0:t.additionalParams)}async function hc(e,t,n,r){const i=rn.connect(n,e),s=Ke[t];return{data:i.interface.encodeFunctionData("setPreSignature",[r,!0]),gasLimit:"0x"+un(await i.estimateGas.setPreSignature(r,!0).then(e=>BigInt(e.toHexString())).catch(()=>Ot)).toString(16),to:s,value:"0"}}class pc{constructor(e={},t={}){this.traderParams=e,this.options=t,void 0!==t.enableLogging&&X(t.enableLogging)}setTraderParams(e){return this.traderParams=K({},this.traderParams,e),this}async getQuote(e,t){const n=await uc(this.mergeParams(e),t,this.options.orderBookApi);return{quoteResults:n.result,postSwapOrderFromQuote:async function(t,r){return await(null==r||null==r.beforeOrderSign?void 0:r.beforeOrderSign()),cc(K({},n,{result:K({},n.result,{tradeParameters:cn({quoteParameters:n.result.tradeParameters,sellToken:e.sellToken})})}),t).catch(e=>{throw null==r||null==r.onOrderSignError||r.onOrderSignError(),e}).then(e=>(null==r||null==r.afterOrderSign||r.afterOrderSign(),e))}}}async getQuoteResults(e,t){return uc(this.mergeParams(e),t,this.options.orderBookApi)}async postSwapOrder(e,t){return lc(this.mergeParams(e),t,this.options.orderBookApi)}async postLimitOrder(e,t){return dc(this.mergeParams(e),t,this.options.orderBookApi)}async postSellNativeCurrencyOrder(e,t){const n=await uc(this.mergeParams(e),t,this.options.orderBookApi),{tradeParameters:r,quoteResponse:i}=n.result;return pn(n.orderBookApi,n.result.signer,n.result.appDataInfo,an(cn({quoteParameters:r,sellToken:e.sellToken}),i),null==t?void 0:t.additionalParams)}async getPreSignTransaction(e){const t=this.mergeParams(e);return hc(jl(t.signer),t.chainId,e.account,e.orderId)}mergeParams(e){const{chainId:t,signer:n,appCode:r,env:i}=e,s={chainId:t||this.traderParams.chainId,signer:n||this.traderParams.signer,appCode:r||this.traderParams.appCode,env:i||this.traderParams.env};return function(e){if(!function(e){return 0===fc(e).length}(e))throw new Error("Missing trader parameters: "+fc(e).join(", "))}(s),K({},e,s)}}function fc(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const mc=["sellTokenAddress","buyTokenAddress","amount"],yc=["signer"],gc=`${se}/src/bridging/providers`,bc=24e4,vc=36e4,wc="cow-sdk://bridging/providers";function Ac(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000",dappId:wc}}function Tc(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const Ec=new Nn("units/5.8.0"),Sc=["wei","kwei","mwei","gwei","szabo","finney","ether"],Ic=["kind","sellTokenChainId","sellTokenAddress","buyTokenChainId","buyTokenAddress","amount","signer"],kc=["signer"];function Cc(e,t){const n=z(e).find(e=>{var t;return null==(t=e.dappId)?void 0:t.startsWith(wc)});if(!n)return;const r=n.dappId;return t.find(e=>e.info.dappId===r)}async function Nc(e){const{chainId:t,orderId:n,orderBookApi:r,providers:i,env:s}=e,a={chainId:t,env:s},o=await r.getOrder(n,a),u=o.fullAppData&&Cc(o.fullAppData,i);if(!u)throw new U(`Unknown Bridge provider in order ${o.uid}. Add provider to the SDK config to be able to decode the order`);const l=await r.getTrades({orderUid:o.uid},a);if(l.length>0){const e=l[0],r=e.txHash;if(!r)throw new U(`No tx hash found for order ${n} . First trade, with log index ${e.logIndex}`);const{params:i,status:s}=await u.getBridgingParams(t,n,r)||{};if(!i||!s)throw new U(`Bridging params cannot be derived from transaction: ${r}`);const a={provider:u,chainId:t,order:o,statusResult:{status:P.UNKNOWN},bridgingParams:i,tradeTxHash:r};try{return K({},a,{statusResult:s,explorerUrl:u.getExplorerUrl(i.bridgingId)})}catch(e){return console.error("Cannot get bridging status",e),a}}return null}const xc=["providers"];class _c{constructor(e){var t,n;this.options=e;const{providers:r}=e,i=W(e,xc);if(!r||1!==r.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&X(e.enableLogging);const s=null!==(t=e.tradingSdk)&&void 0!==t?t:new pc,a=null!==(n=null==s?void 0:s.options.orderBookApi)&&void 0!==n?n:new ht;this.config=K({},i,{providers:r,tradingSdk:s,orderBookApi:a})}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}async getSourceNetworks(){return Ne}async getTargetNetworks(){return this.provider.getNetworks()}async getBuyTokens(e){return this.provider.getBuyTokens(e)}async getQuote(e,t){const{sellTokenChainId:n,buyTokenChainId:r}=e,i=this.config.tradingSdk;return n!==r?async function(e){var t;const{provider:n,swapAndBridgeRequest:r,advancedSettings:i,tradingSdk:s,bridgeHookSigner:a}=e,{kind:o,sellTokenChainId:u,sellTokenAddress:l,buyTokenChainId:c,buyTokenAddress:d,amount:h,signer:f}=r,m=W(r,Ic),y=jl(f);if(o!==vt.SELL)throw new Error("Bridging only support SELL orders");Y(`Cross-chain ${o} ${h} ${l} (source chain ${u}) for ${d} (target chain ${c})`);const g=await async function(e){const{provider:t,swapAndBridgeRequest:n}=e,r=await t.getIntermediateTokens(n);if(0===r.length)throw new L(O.NO_INTERMEDIATE_TOKENS);const i=r[0];return Y(`Using ${i} as intermediate tokens`),K({},n,{sellTokenAddress:i.address,sellTokenDecimals:i.decimals})}({swapAndBridgeRequest:r,provider:n}),b=await n.getGasLimitEstimationForHook(g),v=Ac(b);Y(`Using mocked hook for swap gas estimation: ${JSON.stringify(v)}`);const{sellTokenAddress:w,sellTokenDecimals:A}=g,T=K({},m,{kind:o,chainId:u,sellToken:l,buyToken:w,buyTokenDecimals:A,amount:h.toString(),signer:y}),E=W(T,kc);Y(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(E,tt)}`);const S=null==i||null==(t=i.appData)||null==(t=t.metadata)?void 0:t.hooks,{result:I,orderBookApi:k}=await s.getQuoteResults(T,K({},i,{appData:K({},null==i?void 0:i.appData,{metadata:{hooks:{pre:null==S?void 0:S.pre,post:[...(null==S?void 0:S.post)||[],v]},bridging:{destinationChainId:c.toString(),destinationTokenAddress:d}}})})),C=I.amountsAndCosts.afterSlippage.buyAmount;async function N(e,t,i){var s,a;const o=null==i?void 0:i.appData,u=null==i||null==(s=i.quoteRequest)?void 0:s.receiver,l=null==i||null==(a=i.quoteRequest)?void 0:a.validTo,{bridgeHook:c,appDataInfo:{doc:d,fullAppData:h,appDataKeccak256:f},bridgeResult:m}=await async function(e){const{swapResult:t,bridgeRequestWithoutAmount:n,provider:r,intermediateTokenAmount:i,appDataOverride:s}=e,a=K({},n,{amount:i}),{hook:o,unsignedBridgeCall:u,bridgingQuote:l}=await async function(e,{provider:t,signer:n,hookGasLimit:r,swapResult:i,validToOverride:s}){const a=await t.getQuote(e),o=await t.getUnsignedBridgeCall(e,a),u=BigInt(s||i.orderToSign.validTo),l=p(["bytes","uint256"],[o.data,u]);return{hook:await t.getSignedHook(e.sellTokenChainId,o,n,l,u,r),unsignedBridgeCall:o,bridgingQuote:a}}(a,e),c=await Ql(t.appDataInfo.doc,s||{}),d=c.doc.metadata.hooks,h=((null==d?void 0:d.post)||[]).filter(e=>{var t;return!(null!=(t=e.dappId)&&t.startsWith(wc))}),f=await Ql(c.doc,{metadata:{hooks:{pre:null==d?void 0:d.pre,post:[...h,o.postHook]}}});return{bridgeResult:{providerInfo:r.info,tradeParameters:a,bridgeCallDetails:{unsignedBridgeCall:u,preAuthorizedBridgingHook:o},isSell:l.isSell,expectedFillTimeSeconds:l.expectedFillTimeSeconds,fees:l.fees,limits:l.limits,quoteTimestamp:l.quoteTimestamp,amountsAndCosts:l.amountsAndCosts},bridgeHook:o,appDataInfo:f}}({swapAndBridgeRequest:K({},r,{kind:vt.SELL}),swapResult:I,bridgeRequestWithoutAmount:K({},g,{receiver:u||g.receiver}),provider:n,intermediateTokenAmount:C,signer:e,appDataOverride:o,validToOverride:l,hookGasLimit:t});return Y(`Bridge hook for swap: ${JSON.stringify(c)}`),I.tradeParameters.receiver=c.recipient,Y(`App data for swap: appDataKeccak256=${f}, fullAppData="${h}"`),I.appDataInfo={fullAppData:h,appDataKeccak256:f,doc:d},{bridgeResult:m,swapResult:K({},I,{tradeParameters:K({},I.tradeParameters,{receiver:c.recipient})})}}Y(`Expected to receive ${C} of the intermediate token (${function(e,t){if("string"!=typeof e&&Ec.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Sc.indexOf(t);-1!==e&&(t=3*e)}return pr(e,null!=t?t:18)}(C.toString(),A).toString()})`),Y(`Using gas limit: ${b}`);const x=await N(a?jl(a):y,b);return{swap:x.swapResult,bridge:x.bridgeResult,async postSwapOrderFromQuote(e,t){await(null==t||null==t.beforeBridgingSign?void 0:t.beforeBridgingSign());const{swapResult:n}=await N(y,b,e).catch(e=>{throw null==t||null==t.onBridgingSignError||t.onBridgingSignError(),e});await(null==t||null==t.afterBridgingSign?void 0:t.afterBridgingSign());const r={result:K({},n,{tradeParameters:cn({quoteParameters:n.tradeParameters,sellToken:l}),signer:y}),orderBookApi:k};return await(null==t||null==t.beforeOrderSign?void 0:t.beforeOrderSign()),cc(r,K({},e,{appData:n.appDataInfo.doc,quoteRequest:K({},null==e?void 0:e.quoteRequest,{receiver:n.tradeParameters.receiver})})).catch(e=>{throw null==t||null==t.onOrderSignError||t.onOrderSignError(),e}).then(async e=>(await(null==t||null==t.afterOrderSign?void 0:t.afterOrderSign()),e))}}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:i,provider:this.provider,bridgeHookSigner:null==t?void 0:t.quoteSigner}):function(e){const{quoteBridgeRequest:t,advancedSettings:n,tradingSdk:r}=e,{sellTokenAddress:i,buyTokenAddress:s,amount:a}=t,o=K({},W(t,mc),{chainId:t.sellTokenChainId,sellToken:i,buyToken:s,amount:a.toString()}),u=W(o,yc);return Y(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(u,tt)}`),r.getQuote(o,n)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:i})}async getOrder(e){const{orderBookApi:t}=this.config,{chainId:n,orderId:r,env:i=t.context.env}=e;return Nc({chainId:n,orderId:r,orderBookApi:t,env:i,providers:this.config.providers})}async getOrderBridgingStatus(e,t){return this.provider.getStatus(e,t)}getProviderFromAppData(e){return Cc(e,this.getProviders())}}class Rc{constructor(e={}){this.options=e}async getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:n,destinationToken:r}){const i={};return e&&(i.originChainId=e),t&&(i.originToken=t),n&&(i.destinationChainId=n),r&&(i.destinationToken=r),this.fetchApi("/available-routes",i,Oc)}async getSuggestedFees(e){const t={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(t.recipient=e.recipient),this.fetchApi("/suggested-fees",t,Mc)}async getSupportedTokens(){return this.fetchApi("/token-list",{}).then(e=>e.map(e=>K({},e,{logoUrl:e.logoURI})))}async getDepositStatus(e){return this.fetchApi("/deposit/status",{originChainId:e.originChainId,depositId:e.depositId})}async fetchApi(e,t,n){const r=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;Y(`Fetching Across API: GET ${r}. Params: ${JSON.stringify(t)}`);const i=await fetch(r,{method:"GET"});if(!i.ok){const e=await i.json();throw new L(O.API_ERROR,e)}const s=await i.json();if(n){if(n(s))return s;throw new L(O.INVALID_API_JSON_RESPONSE,{path:e,json:s})}return s}}function Mc(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&Pc(e.totalRelayFee)&&"relayerCapitalFee"in e&&Pc(e.relayerCapitalFee)&&"relayerGasFee"in e&&Pc(e.relayerGasFee)&&"lpFee"in e&&Pc(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function Pc(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Oc(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const Bc=new f(["event FundsDeposited(bytes32 inputToken, bytes32 outputToken, uint256 inputAmount, uint256 outputAmount, uint256 indexed destinationChainId, uint256 indexed depositId, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityDeadline, bytes32 indexed depositor, bytes32 recipient, bytes32 exclusiveRelayer, bytes message)"]),Dc=new f(["event Trade(address owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)"]);[{chainId:B.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:B.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:B.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:B.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:D.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});const Lc=Bc.getEventTopic("FundsDeposited"),Fc=Dc.getEventTopic("Trade"),Uc={[B.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[B.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[B.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[B.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[B.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[B.LENS]:"0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12",[B.BNB]:"0x4e8E101924eDE233C13e2D8622DC8aED2872d505",[B.GNOSIS_CHAIN]:void 0,[B.AVALANCHE]:void 0,[D.OPTIMISM]:void 0},Gc={[B.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[B.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[B.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[B.GNOSIS_CHAIN]:void 0,[B.SEPOLIA]:void 0,[B.POLYGON]:void 0,[D.OPTIMISM]:void 0,[B.AVALANCHE]:void 0,[B.LENS]:void 0,[B.BNB]:void 0},Hc=10n**18n;function qc(e,t,n){const{amount:r,sellTokenDecimals:i,buyTokenDecimals:s}=e,a=Mt(r,i),o=a.big,u=Mt(a.num,s).big,l=BigInt(n.totalRelayFee.pct),c=jc(u,l),d=o-jc(o,l),h=u-c,p=function(e,t){return e*BigInt(1e4-t)/10000n}(c,t);return{beforeFee:{sellAmount:o,buyAmount:u},afterFee:{sellAmount:o,buyAmount:c},afterSlippage:{sellAmount:o,buyAmount:p},costs:{bridgingFee:{feeBps:(f=l,zc(f),Number(10000n*f/Hc)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function Vc(e){return m.decode(["address"],e).toString()}function zc(e){if(e>Hc||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function jc(e,t){return zc(t),e*(Hc-t)/Hc}const Kc={filled:P.EXECUTED,slowFillRequested:P.EXECUTED,pending:P.IN_PROGRESS,expired:P.EXPIRED,refunded:P.REFUND};let Wc;const Jc={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Qc{constructor(e,t,n=qe){this.chainId=e,this.customOptions=t,this.version=n}proxyOf(e){const t=m.encode(["address"],[e]),n=p(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return y(this.getFactoryAddress(),t,n)}encodeExecuteHooksForFactory(e,t,n,r,i){return(Wc||(Wc=Qt.createInterface()),Wc).encodeFunctionData("executeHooks",[e,t,n,r,i])}async signCalls(e,t,n,r,i){const s=await r.getAddress(),a=this.proxyOf(s),{domain:o,types:u,message:l}=this.infoToSign(e,t,n,a);return await async function(e,t,n,r,i){let s=null;switch(e){case S.EIP712:if(!k(t))throw new Error("signer does not support signing typed data");s=await t._signTypedData(n,r,i);break;case S.ETHSIGN:s=await t.signMessage(g(I(n,r,i)));break;default:throw new Error("invalid signing scheme")}return b(v(s))}(i,r,o,u,l)}infoToSign(e,t,n,r){const i={calls:e,nonce:t,deadline:n};return{domain:this.getDomain(r),types:Jc,message:i}}getDomain(e){return{name:"COWShed",version:this.version,chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.proxyCreationCode)&&void 0!==e?e:je[this.version]}getFactoryAddress(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.factoryAddress)&&void 0!==e?e:Ve[this.version]}getImplementationAddress(){var e,t;return null!==(e=null==(t=this.customOptions)?void 0:t.implementationAddress)&&void 0!==e?e:ze[this.version]}}const Yc=Wr.toBigInt();class Xc{constructor(e={},t=qe){this.hooksCache=new Map,this.options=e,this.version=t}getCowShedAccount(e,t){var n;return this.getCowShedHooks(e,null==(n=this.options)?void 0:n.factoryOptions).proxyOf(t)}async signCalls({calls:e,signer:t,chainId:n,nonce:r=Xc.getNonce(),deadline:i=Yc,gasLimit:s,defaultGasLimit:a,signingScheme:o=S.EIP712}){var u;const l=this.getCowShedHooks(n),c=t||(null==(u=this.options)?void 0:u.signer);if(!c)throw new Error("Signer is required");const d=jl(c),h=await d.getAddress(),p=l.proxyOf(h),f=await l.signCalls(e,r,i,d,o),m=l.encodeExecuteHooksForFactory(e,r,i,h,f),y={to:l.getFactoryAddress(),data:m,value:BigInt(0)},g=s||await d.estimateGas(y).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(y,tt,2)}. Review the factory call`;if(a)return Y(`${t}, using the default gas limit.`),a;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})});return{cowShedAccount:p,signedMulticall:y,gasLimit:BigInt(g.toString())}}getCowShedHooks(e,t){let n=this.hooksCache.get(e);return n||(n=new Qc(e,t),this.hooksCache.set(e,n),n)}static getNonce(){return w(Date.now().toString())}}const $c="abi/5.8.0",Zc=new Nn($c),ed={};let td={calldata:!0,memory:!0,storage:!0},nd={calldata:!0,memory:!0};function rd(e,t){if("bytes"===e||"string"===e){if(td[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&nd[t])return!0;return(td[t]||"payable"===t)&&Zc.throwArgumentError("invalid modifier","name",t),!1}function id(e,t){for(let n in t)wr(e,n,t[n])}const sd=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),ad=new RegExp(/^(.*)\[([0-9]*)\]$/);class od{constructor(e,t){e!==ed&&Zc.throwError("use fromString",Nn.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),id(this,t);let n=this.type.match(ad);id(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:od.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=sd.sighash),sd[e]||Zc.throwArgumentError("invalid format type","format",e),e===sd.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==sd.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===sd.full?", ":",")+")"):t+=this.type,e!==sd.sighash&&(!0===this.indexed&&(t+=" indexed"),e===sd.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?od.fromString(e,t):od.fromObject(e)}static fromObject(e){return od.isParamType(e)?e:new od(ed,{name:e.name||null,type:bd(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(od.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Zc.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let s={type:"",name:"",state:{allowType:!0}},a=s;for(let n=0;n<e.length;n++){let s=e[n];switch(s){case"(":a.state.allowType&&""===a.type?a.type="tuple":a.state.allowParams||r(n),a.state.allowType=!1,a.type=bd(a.type),a.components=[i(a)],a=a.components[0];break;case")":delete a.state,"indexed"===a.name&&(t||r(n),a.indexed=!0,a.name=""),rd(a.type,a.name)&&(a.name=""),a.type=bd(a.type);let e=a;a=a.parent,a||r(n),delete e.parent,a.state.allowParams=!1,a.state.allowName=!0,a.state.allowArray=!0;break;case",":delete a.state,"indexed"===a.name&&(t||r(n),a.indexed=!0,a.name=""),rd(a.type,a.name)&&(a.name=""),a.type=bd(a.type);let o=i(a.parent);a.parent.components.push(o),delete a.parent,a=o;break;case" ":a.state.allowType&&""!==a.type&&(a.type=bd(a.type),delete a.state.allowType,a.state.allowName=!0,a.state.allowParams=!0),a.state.allowName&&""!==a.name&&("indexed"===a.name?(t||r(n),a.indexed&&r(n),a.indexed=!0,a.name=""):rd(a.type,a.name)?a.name="":a.state.allowName=!1);break;case"[":a.state.allowArray||r(n),a.type+=s,a.state.allowArray=!1,a.state.allowName=!1,a.state.readArray=!0;break;case"]":a.state.readArray||r(n),a.type+=s,a.state.readArray=!1,a.state.allowArray=!0,a.state.allowName=!0;break;default:a.state.allowType?(a.type+=s,a.state.allowParams=!0,a.state.allowArray=!0):a.state.allowName?(a.name+=s,delete a.state.allowArray):a.state.readArray?a.type+=s:r(n)}}return a.parent&&Zc.throwArgumentError("unexpected eof","param",e),delete s.state,"indexed"===a.name?(t||r(n.length-7),a.indexed&&r(n.length-7),a.indexed=!0,a.name=""):rd(a.type,a.name)&&(a.name=""),s.type=bd(s.type),s}(e,!!t),od.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function ud(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let s=e[i];","===s&&0===r?(t.push(n),n=""):(n+=s,"("===s?r++:")"===s&&(r--,-1===r&&Zc.throwArgumentError("unbalanced parenthesis","value",e)))}return n&&t.push(n),t}(e).map(e=>od.fromString(e,t))}class ld{constructor(e,t){e!==ed&&Zc.throwError("use a static from method",Nn.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),id(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return ld.isFragment(e)?e:"string"==typeof e?ld.fromString(e):ld.fromObject(e)}static fromObject(e){if(ld.isFragment(e))return e;switch(e.type){case"function":return md.fromObject(e);case"event":return cd.fromObject(e);case"constructor":return fd.fromObject(e);case"error":return gd.fromObject(e);case"fallback":case"receive":return null}return Zc.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?cd.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?md.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?fd.fromString(e.trim()):"error"===e.split(" ")[0]?gd.fromString(e.substring(5).trim()):Zc.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class cd extends ld{format(e){if(e||(e=sd.sighash),sd[e]||Zc.throwArgumentError("invalid format type","format",e),e===sd.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==sd.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===sd.full?", ":",")+") ",e!==sd.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?cd.fromString(e):cd.fromObject(e)}static fromObject(e){if(cd.isEventFragment(e))return e;"event"!==e.type&&Zc.throwArgumentError("invalid event object","value",e);const t={name:wd(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(od.fromObject):[],type:"event"};return new cd(ed,t)}static fromString(e){let t=e.match(Ad);t||Zc.throwArgumentError("invalid event string","value",e);let n=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":n=!0;break;case"":break;default:Zc.warn("unknown modifier: "+e)}}),cd.fromObject({name:t[1].trim(),anonymous:n,inputs:ud(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function dd(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Zc.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Zc.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=er.from(n[1]),n[0]):e}function hd(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function pd(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Zc.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Zc.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Zc.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Zc.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Zc.throwArgumentError("unable to determine stateMutability","value",e),t}class fd extends ld{format(e){if(e||(e=sd.sighash),sd[e]||Zc.throwArgumentError("invalid format type","format",e),e===sd.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===sd.sighash&&Zc.throwError("cannot format a constructor for sighash",Nn.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===sd.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?fd.fromString(e):fd.fromObject(e)}static fromObject(e){if(fd.isConstructorFragment(e))return e;"constructor"!==e.type&&Zc.throwArgumentError("invalid constructor object","value",e);let t=pd(e);t.constant&&Zc.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(od.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?er.from(e.gas):null};return new fd(ed,n)}static fromString(e){let t={type:"constructor"},n=(e=dd(e,t)).match(Ad);return n&&"constructor"===n[1].trim()||Zc.throwArgumentError("invalid constructor string","value",e),t.inputs=ud(n[2].trim(),!1),hd(n[3].trim(),t),fd.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class md extends fd{format(e){if(e||(e=sd.sighash),sd[e]||Zc.throwArgumentError("invalid format type","format",e),e===sd.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==sd.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===sd.full?", ":",")+") ",e!==sd.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?md.fromString(e):md.fromObject(e)}static fromObject(e){if(md.isFunctionFragment(e))return e;"function"!==e.type&&Zc.throwArgumentError("invalid function object","value",e);let t=pd(e);const n={type:e.type,name:wd(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(od.fromObject):[],outputs:e.outputs?e.outputs.map(od.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?er.from(e.gas):null};return new md(ed,n)}static fromString(e){let t={type:"function"},n=(e=dd(e,t)).split(" returns ");n.length>2&&Zc.throwArgumentError("invalid function string","value",e);let r=n[0].match(Ad);if(r||Zc.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&wd(t.name),t.inputs=ud(r[2],!1),hd(r[3].trim(),t),n.length>1){let r=n[1].match(Ad);""==r[1].trim()&&""==r[3].trim()||Zc.throwArgumentError("unexpected tokens","value",e),t.outputs=ud(r[2],!1)}else t.outputs=[];return md.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function yd(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Zc.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class gd extends ld{format(e){if(e||(e=sd.sighash),sd[e]||Zc.throwArgumentError("invalid format type","format",e),e===sd.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==sd.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===sd.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?gd.fromString(e):gd.fromObject(e)}static fromObject(e){if(gd.isErrorFragment(e))return e;"error"!==e.type&&Zc.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:wd(e.name),inputs:e.inputs?e.inputs.map(od.fromObject):[]};return yd(new gd(ed,t))}static fromString(e){let t={type:"error"},n=e.match(Ad);return n||Zc.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&wd(t.name),t.inputs=ud(n[2],!1),yd(gd.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function bd(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const vd=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function wd(e){return e&&e.match(vd)||Zc.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const Ad=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),Td=new Nn($c);class Ed{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){Td.throwArgumentError(e,this.localName,t)}}class Sd{constructor(e){wr(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return Vn(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(Dn(e._data))}writeBytes(e){let t=Bn(e);const n=t.length%this.wordSize;return n&&(t=Dn([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=Bn(er.from(e));return t.length>this.wordSize&&Td.throwError("value out-of-bounds",Nn.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Dn([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Id{constructor(e,t,n,r){wr(this,"_data",Bn(e)),wr(this,"wordSize",t||32),wr(this,"_coerceFunc",n),wr(this,"allowLoose",r),this._offset=0}get data(){return Gn(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Id.coerce(e,t)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:Td.throwError("data out-of-bounds",Nn.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new Id(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return er.from(this.readBytes(this.wordSize))}}class kd extends Ed{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Vi(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Vi(jn(e.readValue().toHexString(),20))}}class Cd extends Ed{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Nd=new Nn($c);function xd(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map(t=>{const r=t.localName;return r||Nd.throwError("cannot encode object for signature with missing names",Nn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&Nd.throwError("cannot encode object for signature with duplicate names",Nn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]})}else Nd.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&Nd.throwArgumentError("types/value length mismatch","tuple",n);let i=new Sd(e.wordSize),s=new Sd(e.wordSize),a=[];t.forEach((e,t)=>{let n=r[t];if(e.dynamic){let t=s.length;e.encode(s,n);let r=i.writeUpdatableValue();a.push(e=>{r(e+t)})}else e.encode(i,n)}),a.forEach(e=>{e(i.length)});let o=e.appendWriter(i);return o+=e.appendWriter(s),o}function _d(e,t){let n=[],r=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let n=e.readValue(),s=r.subReader(n.toNumber());try{i=t.decode(s)}catch(e){if(e.code===Nn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Nn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)});const i=t.reduce((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});t.forEach((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const s=n[t];s instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw s}}):n[r]=s});for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}class Rd extends Ed{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),Nd.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return xd(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Nd.throwError("insufficient data length",Nn.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Cd(this.coder));return e.coerce(this.name,_d(e,n))}}class Md extends Ed{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Pd extends Ed{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Bn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Od extends Pd{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Gn(super.decode(e)))}}class Bd extends Ed{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=Bn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Gn(e.readBytes(this.size)))}}class Dd extends Ed{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class Ld extends Ed{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=er.from(t),r=Wr.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(Kr).mul(zr)))&&this._throwError("value out-of-bounds",t)}else(n.lt(jr)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class Fd extends Pd{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,ri(t))}decode(e){return ii(super.decode(e))}}class Ud extends Ed{constructor(e,t){let n=!1;const r=[];e.forEach(e=>{e.dynamic&&(n=!0),r.push(e.type)}),super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});return this.coders.forEach((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))}),Object.freeze(e)}encode(e,t){return xd(e,this.coders,t)}decode(e){return e.coerce(this.name,_d(e,this.coders))}}const Gd=new Nn($c),Hd=new RegExp(/^bytes([0-9]*)$/),qd=new RegExp(/^(u?int)([0-9]*)$/),Vd=new class{constructor(e){wr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new kd(e.name);case"bool":return new Md(e.name);case"string":return new Fd(e.name);case"bytes":return new Od(e.name);case"array":return new Rd(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Ud((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new Dd(e.name)}let t=e.type.match(qd);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Gd.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Ld(n/8,"int"===t[1],e.name)}if(t=e.type.match(Hd),t){let n=parseInt(t[1]);return(0===n||n>32)&&Gd.throwArgumentError("invalid bytes length","param",e),new Bd(n,e.name)}return Gd.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Id(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Sd(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(od.from(e)));return new Ud(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Gd.throwError("types/values length mismatch",Nn.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map(e=>this._getCoder(od.from(e))),r=new Ud(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map(e=>this._getCoder(od.from(e)));return new Ud(r,"_").decode(this._getReader(Bn(t),n))}},zd=new Nn($c);class jd extends xr{}class Kd extends xr{}class Wd extends xr{}class Jd extends xr{static isIndexed(e){return!(!e||!e._isIndexed)}}const Qd={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Yd(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}class Xd{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,wr(this,"fragments",t.map(e=>ld.from(e)).filter(e=>null!=e)),wr(this,"_abiCoder",Ar(new.target,"getAbiCoder")()),wr(this,"functions",{}),wr(this,"errors",{}),wr(this,"events",{}),wr(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void zd.warn("duplicate definition - constructor"):void wr(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?zd.warn("duplicate definition - "+n):t[n]=e}),this.deploy||wr(this,"deploy",fd.from({payable:!1,type:"constructor"})),wr(this,"_isInterface",!0)}format(e){e||(e=sd.full),e===sd.sighash&&zd.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===sd.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return Vd}static getAddress(e){return Vi(e)}static getSighash(e){return qn(si(e.format()),0,4)}static getEventTopic(e){return si(e.format())}getFunction(e){if(Fn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];zd.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===n.length?zd.throwArgumentError("no matching function","name",t):n.length>1&&zd.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[md.fromString(e).format()];return t||zd.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Fn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];zd.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===n.length?zd.throwArgumentError("no matching event","name",t):n.length>1&&zd.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[cd.fromString(e).format()];return t||zd.throwArgumentError("no matching event","signature",e),t}getError(e){if(Fn(e)){const t=Ar(this.constructor,"getSighash");for(const n in this.errors)if(e===t(this.errors[n]))return this.errors[n];zd.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===n.length?zd.throwArgumentError("no matching error","name",t):n.length>1&&zd.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[md.fromString(e).format()];return t||zd.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return Ar(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Ar(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=Bn(t);return Gn(n.slice(0,4))!==this.getSighash(e)&&zd.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Gn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Gn(Dn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=Bn(t);return Gn(n.slice(0,4))!==this.getSighash(e)&&zd.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Gn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Gn(Dn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=Bn(t),r=null,i="",s=null,a=null,o=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=Gn(n.slice(0,4)),t=Qd[e];if(t)s=this._abiCoder.decode(t.inputs,n.slice(4)),a=t.name,o=t.signature,t.reason&&(r=s[0]),"Error"===a?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(s[0])}`:"Panic"===a&&(i=`; VM Exception while processing transaction: reverted with panic code ${s[0]}`);else try{const t=this.getError(e);s=this._abiCoder.decode(t.inputs,n.slice(4)),a=t.name,o=t.format()}catch(e){}break}}return zd.throwError("call revert exception"+i,Nn.errors.CALL_EXCEPTION,{method:e.format(),data:Gn(t),errorArgs:s,errorName:a,errorSignature:o,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Gn(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&zd.throwError("too many arguments for "+e.format(),Nn.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?si(t):"bytes"===e.type?Yr(Gn(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=er.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),jn(Gn(t),32));for(t.forEach((t,i)=>{let s=e.inputs[i];s.indexed?null==t?n.push(null):"array"===s.baseType||"tuple"===s.baseType?zd.throwArgumentError("filtering with tuples or arrays not supported","contract."+s.name,t):Array.isArray(t)?n.push(t.map(e=>r(s,e))):n.push(r(s,t)):null!=t&&zd.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+s.name,t)});n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&zd.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,s)=>{const a=t[s];if(e.indexed)if("string"===e.type)n.push(si(a));else if("bytes"===e.type)n.push(Yr(a));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[a]))}else r.push(e),i.push(a)}),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);Fn(n[0],32)&&n[0].toLowerCase()===t||zd.throwError("fragment/topic mismatch",Nn.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],s=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(od.fromObject({type:"bytes32",name:e.name})),s.push(!0)):(r.push(e),s.push(!1)):(i.push(e),s.push(!1))});let a=null!=n?this._abiCoder.decode(r,Dn(n)):null,o=this._abiCoder.decode(i,t,!0),u=[],l=0,c=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==a)u[t]=new Jd({_isIndexed:!0,hash:null});else if(s[t])u[t]=new Jd({_isIndexed:!0,hash:a[c++]});else try{u[t]=a[c++]}catch(e){u[t]=e}else try{u[t]=o[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw Yd(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw Yd(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Kd({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:er.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new jd({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Gn(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new Wd({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var $d=function(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function o(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,o)}u((r=r.apply(e,t||[])).next())})};const Zd=new Nn("contracts/5.8.0");function eh(e,t){return $d(this,void 0,void 0,function*(){const n=yield t;"string"!=typeof n&&Zd.throwArgumentError("invalid address or ENS name","name",n);try{return Vi(n)}catch(e){}e||Zd.throwError("a provider or signer is needed to resolve ENS names",Nn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&Zd.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r})}function th(e,t,n){return $d(this,void 0,void 0,function*(){return Array.isArray(n)?yield Promise.all(n.map((n,r)=>th(e,Array.isArray(t)?t[r]:t[n.name],n))):"address"===n.type?yield eh(e,t):"tuple"===n.type?yield th(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>th(e,t,n.arrayChildren))):Promise.reject(Zd.makeError("invalid value for array",Nn.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function nh(e,t,n){return $d(this,void 0,void 0,function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=Sr(n.pop())),Zd.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from=r.from?Tr({override:eh(e.signer,r.from),signer:e.signer.getAddress()}).then(e=>$d(this,void 0,void 0,function*(){return Vi(e.signer)!==e.override&&Zd.throwError("Contract with a Signer cannot override from",Nn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():r.from&&(r.from=eh(e.provider,r.from));const i=yield Tr({args:th(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Tr(r)||{}}),s=e.interface.encodeFunctionData(t,i.args),a={data:s,to:i.address},o=i.overrides;if(null!=o.nonce&&(a.nonce=er.from(o.nonce).toNumber()),null!=o.gasLimit&&(a.gasLimit=er.from(o.gasLimit)),null!=o.gasPrice&&(a.gasPrice=er.from(o.gasPrice)),null!=o.maxFeePerGas&&(a.maxFeePerGas=er.from(o.maxFeePerGas)),null!=o.maxPriorityFeePerGas&&(a.maxPriorityFeePerGas=er.from(o.maxPriorityFeePerGas)),null!=o.from&&(a.from=o.from),null!=o.type&&(a.type=o.type),null!=o.accessList&&(a.accessList=tu(o.accessList)),null==a.gasLimit&&null!=t.gas){let e=21e3;const n=Bn(s);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);a.gasLimit=er.from(t.gas).add(e)}if(o.value){const e=er.from(o.value);e.isZero()||t.payable||Zd.throwError("non-payable method cannot override value",Nn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),a.value=e}o.customData&&(a.customData=Sr(o.customData)),o.ccipReadEnabled&&(a.ccipReadEnabled=!!o.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter(e=>null!=r[e]);return u.length&&Zd.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,Nn.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),a})}function rh(e,t,n){const r=e.signer||e.provider;return function(...i){return $d(this,void 0,void 0,function*(){let s;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Sr(i.pop());null!=e.blockTag&&(s=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(s));const a=yield nh(e,t,i),o=yield r.call(a,s);try{let r=e.interface.decodeFunctionResult(t,o);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===Nn.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=a),t}})}}function ih(e,t,n){return t.constant?rh(e,t,n):function(e,t){return function(...n){return $d(this,void 0,void 0,function*(){e.signer||Zd.throwError("sending a transaction requires a signer",Nn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield nh(e,t,n),i=yield e.signer.sendTransaction(r);return function(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then(t=>(t.events=t.logs.map(n=>{let r=Nr(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r}),t))}(e,i),i})}}(e,t)}function sh(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class ah{constructor(e,t){wr(this,"tag",e),wr(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(n=>!(!t&&n.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const n=e.slice();return setTimeout(()=>{t.listener.apply(this,n)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class oh extends ah{constructor(){super("error",null)}}class uh extends ah{constructor(e,t,n,r){const i={address:e};let s=t.getEventTopic(n);r?(s!==r[0]&&Zd.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[s],super(sh(i),i),wr(this,"address",e),wr(this,"interface",t),wr(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],n=function(e,r){if(Array.isArray(r))for(let i in r){const s=e.slice();s.push(i);try{n(s,r[i])}catch(e){t.push({path:s,error:e})}}};return n([],e),t}(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}}class lh extends ah{constructor(e,t){super("*",{address:e}),wr(this,"address",e),wr(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}}class ch{constructor(e,t,n){wr(this,"interface",Ar(new.target,"getInterface")(t)),null==n?(wr(this,"provider",null),wr(this,"signer",null)):o.isSigner(n)?(wr(this,"provider",n.provider||null),wr(this,"signer",n)):Mr.isProvider(n)?(wr(this,"provider",n),wr(this,"signer",null)):Zd.throwArgumentError("invalid signer or provider","signerOrProvider",n),wr(this,"callStatic",{}),wr(this,"estimateGas",{}),wr(this,"functions",{}),wr(this,"populateTransaction",{}),wr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const n=this.interface.events[t];wr(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)})),e[n.name]||(e[n.name]=[]),e[n.name].push(t)}),Object.keys(e).forEach(t=>{const n=e[t];1===n.length?wr(this.filters,t,this.filters[n[0]]):Zd.warn(`Duplicate definition of ${t} (${n.join(", ")})`)})}if(wr(this,"_runningEvents",{}),wr(this,"_wrappedEmits",{}),null==e&&Zd.throwArgumentError("invalid contract address or ENS name","addressOrName",e),wr(this,"address",e),this.provider)wr(this,"resolvedAddress",eh(this.provider,e));else try{wr(this,"resolvedAddress",Promise.resolve(Vi(e)))}catch(e){Zd.throwError("provider is required to use ENS name as contract address",Nn.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const r={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])Zd.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&wr(this,e,ih(this,t,!0)),null==this.functions[e]&&wr(this.functions,e,ih(this,t,!1)),null==this.callStatic[e]&&wr(this.callStatic,e,rh(this,t,!0)),null==this.populateTransaction[e]&&wr(this.populateTransaction,e,function(e,t){return function(...n){return nh(e,t,n)}}(this,t)),null==this.estimateGas[e]&&wr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return $d(this,void 0,void 0,function*(){n||Zd.throwError("estimate require a provider or signer",Nn.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield nh(e,t,r);return yield n.estimateGas(i)})}}(this,t))}}),Object.keys(r).forEach(e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&wr(this,e,this[n])}catch(e){}null==this.functions[e]&&wr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&wr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&wr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&wr(this.estimateGas,e,this.estimateGas[n])})}static getContractAddress(e){return zi(e)}static getInterface(e){return Xd.isInterface(e)?e:new Xd(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&Zd.throwError("contract not deployed",Nn.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Zd.throwError("sending a transactions require a signer",Nn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Sr(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Zd.throwError("cannot override "+e,Nn.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new u(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&wr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Jd.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new oh);if("event"===e)return this._normalizeRunningEvent(new ah("event",null));if("*"===e)return this._normalizeRunningEvent(new lh(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new uh(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new uh(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new ah(sh(t),t))}return this._normalizeRunningEvent(new lh(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=Nr(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||Zd.throwError("events require a provider or a signer with a provider",Nn.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=Sr(r.filter);return"string"==typeof t&&Fn(t,32)?(null!=n&&Zd.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(r,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}}class dh extends ch{}var hh;!function(e){e[e.DELEGATECALL=0]="DELEGATECALL",e[e.CALL=1]="CALL",e[e.STATICCALL=2]="STATICCALL",e[e.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",e[e.CALLTYPE_MASK=3]="CALLTYPE_MASK",e[e.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",e[e.TUPLE_RETURN=128]="TUPLE_RETURN"}(hh||(hh={}));const ph="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",fh=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function mh(e){const t=e.plan(),{commands:n,state:r}=t;return new Xd(fh).encodeFunctionData("execute",[n,r])}function yh(e){const t=new N;return e(t),{to:ph,value:BigInt(0),data:mh(t)}}function gh(e,t){return x.createContract(e,t)}function bh(e){return x.createLibrary(e)}const vh=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],wh=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],Ah=["function balanceOf(address account) external view returns (uint256)"],Th=["function approve(address spender, uint256 amount) external returns (bool)"];async function Eh(e,t,n){const r=e.getCowShedAccount(t.sellTokenChainId,t.owner||t.account),i=await n.getCode(r);return i&&"0x"!==i?bc:bc+vc}const Sh=`${wc}/across`,Ih=[me,ke,le,de,Se];class kh{constructor(e){this.supportedTokens=null,this.info={name:"Across",logoUrl:`${gc}/across/across-logo.png`,dappId:Sh,website:"https://across.to"},this.api=new Rc(e.apiOptions),this.cowShedSdk=new Xc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}async getNetworks(){return Ih}async getBuyTokens(e){return Object.values((await this.getSupportedTokensState())[e.buyChainId]||{})}async getIntermediateTokens(e){var t;if(e.kind!==E.SELL)throw new L(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});const{sellTokenChainId:n,buyTokenChainId:r,buyTokenAddress:i}=e,s=await this.getSupportedTokensState(),a=i.toLowerCase(),o=s[n],u=s[r],l=u&&(null==(t=u[a])||null==(t=t.symbol)?void 0:t.toLowerCase());return l?Object.values(o||{}).filter(e=>{var t;return(null==(t=e.symbol)?void 0:t.toLowerCase())===l}):[]}async getQuote(e){const{sellTokenAddress:t,sellTokenChainId:n,buyTokenChainId:r,amount:i,receiver:s}=e;return function(e,t,n){const{kind:r}=e;return{isSell:r===E.SELL,amountsAndCosts:qc(e,0,n),quoteTimestamp:Number(n.timestamp),expectedFillTimeSeconds:Number(n.estimatedFillTimeSec),fees:{bridgeFee:BigInt(n.relayerCapitalFee.total),destinationGasFee:BigInt(n.relayerGasFee.total)},limits:{minDeposit:BigInt(n.limits.minDeposit),maxDeposit:BigInt(n.limits.maxDeposit)},suggestedFees:n}}(e,0,await this.api.getSuggestedFees({token:t,originChainId:n,destinationChainId:r,amount:i,recipient:null!=s?s:void 0}))}async getUnsignedBridgeCall(e,t){return function(e){const{request:t,quote:n,cowShedSdk:r}=e,{sellTokenChainId:i,sellTokenAddress:s,buyTokenChainId:a,buyTokenAddress:o,account:u,receiver:l}=t,c=function(e){const t=Uc[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return gh(new dh(t,wh),hh.CALL)}(i),d=function(e){const t=Gc[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return gh(new dh(t,vh),hh.CALL)}(i),h=function(e){return gh(new dh(e,Ah),hh.STATICCALL)}(s),p=function(e){return gh(new dh(e,Th),hh.CALL)}(s),f=r.getCowShedAccount(i,u),{suggestedFees:m}=n;return yh(e=>{const t=e.add(h.balanceOf(f)),n=BigInt(m.totalRelayFee.pct),r=e.add(d.multiplyAndSubtract(t,n));e.add(p.approve(c.address,t));const i=BigInt(m.timestamp);e.add(c.depositV3(f,l||u,s,o,t,r,a,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk})}async getGasLimitEstimationForHook(e){return Eh(this.cowShedSdk,e,this.getRpcProvider(e.sellTokenChainId))}async getSignedHook(e,t,n,r,i,s){const{signedMulticall:a,cowShedAccount:o,gasLimit:u}=await this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:n,gasLimit:BigInt(s),deadline:i,nonce:r}),{to:l,data:c}=a;return{postHook:{target:l,callData:c,gasLimit:u.toString(),dappId:Sh},recipient:o}}async decodeBridgeHook(e){throw new Error("Not implemented")}async getBridgingParams(e,t,n){const r=await this.getRpcProvider(e).getTransactionReceipt(n),i=await async function(e,t,n){const r=function(e,t){var n;const r=null==(n=Uc[e])?void 0:n.toLowerCase();if(!r)return[];const i=t.filter(e=>e.address.toLocaleLowerCase()===r&&e.topics[0]===Lc);return i.map(e=>{const{inputToken:t,outputToken:n,inputAmount:r,outputAmount:i,destinationChainId:s,depositId:a,quoteTimestamp:o,fillDeadline:u,exclusivityDeadline:l,depositor:c,recipient:d,exclusiveRelayer:h,message:p}=Bc.parseLog(e).args;return{inputToken:Vc(t),outputToken:Vc(n),inputAmount:r,outputAmount:i,destinationChainId:s,depositId:a,quoteTimestamp:o,fillDeadline:u,exclusivityDeadline:l,depositor:Vc(c),recipient:Vc(d),exclusiveRelayer:h,message:p}})}(e,n.logs);if(0===r.length)return null;const i=function(e,t){const n=t.filter(t=>t.address.toLowerCase()===Ke[e].toLowerCase()&&t.topics[0]===Fc);return n.map(e=>{const t=Dc.parseLog(e).args,{owner:n,sellToken:r,buyToken:i,sellAmount:s,buyAmount:a,feeAmount:o}=t;return{owner:n,sellToken:r,buyToken:i,sellAmount:s,buyAmount:a,feeAmount:o,orderUid:"0x"+e.data.slice(450,562)}})}(e,n.logs),s=i.findIndex(e=>e.orderUid===t);if(s<0)return null;const a=r[s];return a?{inputTokenAddress:a.inputToken,outputTokenAddress:a.outputToken,inputAmount:BigInt(a.inputAmount.toString()),outputAmount:BigInt(a.outputAmount.toString()),owner:a.depositor,quoteTimestamp:parseInt(a.quoteTimestamp.toString()),fillDeadline:parseInt(a.fillDeadline.toString()),recipient:a.recipient,sourceChainId:e,destinationChainId:parseInt(a.destinationChainId.toString()),bridgingId:a.depositId.toString()}:(Y(`Trade event found at index ${s} but only ${r.length} deposit events available`),null)}(e,t,r);return i?{params:i,status:await this.getStatus(i.bridgingId,e)}:null}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}async getStatus(e,t){const n=await this.api.getDepositStatus({originChainId:t.toString(),depositId:e});return{status:(r=n.status,Kc[r]),depositTxHash:n.depositTxHash,fillTxHash:n.fillTx};var r}async getCancelBridgingTx(e){throw new Error("Not implemented")}async getRefundBridgingTx(e){throw new Error("Not implemented")}async getSupportedTokensState(){return this.supportedTokens||(this.supportedTokens=(await this.api.getSupportedTokens()).reduce((e,t)=>(e[t.chainId]=e[t.chainId]||{},e[t.chainId][t.address.toLowerCase()]=t,e),{})),this.supportedTokens}}const Ch=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_socketGateway",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominateOwner",inputs:[{name:"nominee_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominee",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseCallData",inputs:[{name:"callData",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"tuple",internalType:"struct SocketVerifier.UserRequest",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"bytes",internalType:"bytes"}]}],stateMutability:"nonpayable"},{type:"function",name:"routeIdsToVerifiers",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"socketGateway",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"validateRotueId",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRouteId",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateSocketRequest",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRequest",type:"tuple",internalType:"struct SocketVerifier.UserRequestValidation",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"tuple",internalType:"struct SocketVerifier.SocketRequest",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"toChainId",type:"uint256",internalType:"uint256"},{name:"token",type:"address",internalType:"address"},{name:"signature",type:"bytes4",internalType:"bytes4"}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnerClaimed",inputs:[{name:"claimer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerNominated",inputs:[{name:"nominee",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AmountNotMatched",inputs:[]},{type:"error",name:"FailedToVerify",inputs:[]},{type:"error",name:"OnlyNominee",inputs:[]},{type:"error",name:"OnlyOwner",inputs:[]},{type:"error",name:"RecipientNotMatched",inputs:[]},{type:"error",name:"RouteIdNotFound",inputs:[]},{type:"error",name:"RouteIdNotMatched",inputs:[]},{type:"error",name:"SignatureNotMatched",inputs:[]},{type:"error",name:"ToChainIdNotMatched",inputs:[]},{type:"error",name:"TokenNotMatched",inputs:[]}],Nh=[{type:"function",name:"approveAndBridge",inputs:[{name:"token",type:"address",internalType:"contract IERC20"},{name:"minAmount",type:"uint256",internalType:"uint256"},{name:"nativeTokenExtraFee",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"}],xh={across:{["0x792ebcb9".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:488,bytes_length:32,bytesString_startIndex:978,bytesString_length:64}},["0xe421f352".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:392,bytes_length:32,bytesString_startIndex:786,bytesString_length:64}}},cctp:{["0xb7dfe9d0".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64}}}};var _h;!function(e){e.Across="across",e.CircleCCTP="cctp"}(_h||(_h={}));const Rh={Across:_h.Across,"Circle CCTP":_h.CircleCCTP};var Mh,Ph;function Oh(e,t,n){const{amount:r,sellTokenDecimals:i,buyTokenDecimals:s}=e,a=Mt(r,i).big,o=Mt(n.route.output.amount,s).big,u=o,l=n.route.routeDetails.routeFee.amount,c=function(e,t){return e*BigInt(1e4-t)/10000n}(u,t);return{beforeFee:{sellAmount:a,buyAmount:o},afterFee:{sellAmount:a,buyAmount:u},afterSlippage:{sellAmount:a,buyAmount:c},costs:{bridgingFee:{feeBps:function(e,t){if(0n===t)throw new Error("Denominator is 0");if(e>t)throw new Error("Fee amount is greater than amount");return Number((10000n*e+t/2n)/t)}(BigInt(n.route.routeDetails.routeFee.amount),BigInt(r)),amountInSellCurrency:BigInt(l),amountInBuyCurrency:BigInt(0)}},slippageBps:t}}function Bh(e){if(!e||e.length<10)throw new Error("Invalid txData: too short");if(!e.startsWith("0x"))throw new Error("Invalid txData: must start with 0x");const t=e.slice(2);if(t.length<8)throw new Error("Invalid txData: insufficient data for routeId");const n=`0x${t.slice(0,8)}`,r=`0x${t.slice(8)}`;if(r.length<10)throw new Error("Invalid txData: insufficient data for function selector");const i=`${r.slice(0,10)}`;return{routeId:n,encodedFunctionData:r,functionSelector:i}}function Dh(e){const t=new URLSearchParams;return Object.entries(e).forEach(([e,n])=>{Array.isArray(n)?t.append(e,n.join(",")):t.append(e,String(n))}),t}!function(e){e.COMPLETED="COMPLETED",e.PENDING="PENDING"}(Mh||(Mh={})),function(e){e.ACROSS="across",e.CCTP="cctp"}(Ph||(Ph={}));const Lh="0xa27A3f5A96DF7D8Be26EE2790999860C00eb688D",Fh={[B.MAINNET]:Lh,[B.GNOSIS_CHAIN]:Lh,[B.ARBITRUM_ONE]:Lh,[B.BASE]:Lh,[B.AVALANCHE]:Lh,[B.POLYGON]:Lh,[B.LENS]:void 0,[B.BNB]:void 0,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Lh},Uh="0x936fa1cfd96849329B18b915773E176718A64b95",Gh={[B.MAINNET]:Uh,[B.GNOSIS_CHAIN]:Uh,[B.ARBITRUM_ONE]:Uh,[B.BASE]:Uh,[B.AVALANCHE]:Uh,[B.POLYGON]:Uh,[B.LENS]:void 0,[B.BNB]:void 0,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Uh},Hh="https://public-backend.bungee.exchange/api/v1/bungee",qh="https://microservices.socket.tech/loki",Vh="https://app.across.to/api",zh=["across","cctp"],jh={bungee:"Bungee Api Error",events:"Bungee Events Api Error",across:"Across Api Error","bungee-manual":"Bungee Manual Api Error"};class Kh{constructor(e={apiBaseUrl:Hh,eventsApiBaseUrl:qh,acrossApiBaseUrl:Vh,includeBridges:zh}){this.options=e,this.validateBridges(this.getSupportedBridges())}validateBridges(e){if(null!=e&&e.some(e=>!zh.includes(e)))throw new F(`Unsupported bridge: ${e.filter(e=>!zh.includes(e)).join(", ")}`,{includeBridges:e})}async getBuyTokens(e,t){const{sellChainId:n,sellTokenAddress:r,buyChainId:i}=e,s=this.getSupportedBridges(null==t?void 0:t.includeBridges);this.validateBridges(s);const a={toChainId:i.toString(),includeBridges:s.join(",")};n&&(a.fromChainId=n.toString()),r&&(a.fromTokenAddress=r);const o=Dh(a),u=await this.makeApiCall("bungee-manual","/dest-tokens",o);if(!u.success)throw new F("Bungee Api Error: Buy tokens failed",u);return u.result.map(e=>K({},e,{logoUrl:e.logoURI}))}async getIntermediateTokens(e){const{fromChainId:t,toChainId:n,toTokenAddress:r}=e,i=this.getSupportedBridges(e.includeBridges);this.validateBridges(i);const s=Dh({fromChainId:t.toString(),toChainId:n.toString(),toTokenAddress:r,includeBridges:i.join(",")}),a=await this.makeApiCall("bungee-manual","/intermediate-tokens",s);if(!a.success)throw new L(O.NO_INTERMEDIATE_TOKENS,a);return a.result.map(e=>K({},e,{logoUrl:e.logoURI}))}async getBungeeQuoteWithBuildTx(e){const t=await this.getBungeeQuote(e);return{bungeeQuote:t,buildTx:await this.getBungeeBuildTx(t)}}async getBungeeQuote(e){try{var t;e.includeBridges=this.getSupportedBridges(e.includeBridges),this.validateBridges(e.includeBridges);const n=Dh(e),r=await this.makeApiCall("bungee","/quote",n,Wh);if(!r.success)throw new L(O.QUOTE_ERROR,r);const i=Math.floor(Date.now()/1e3),{manualRoutes:s}=r.result;if(0===s.length)throw new L(O.NO_ROUTES,r.result);const a=s[0];if(null==a||null==(t=a.routeDetails)||!t.name)throw new L(O.NO_ROUTES,{manualRoutes:s});const o=Rh[a.routeDetails.name];if(!o)throw new L(O.INVALID_BRIDGE,{firstRoute:a});const u=s.sort((e,t)=>Number(t.output.amount)-Number(e.output.amount));return{originChainId:r.result.originChainId,destinationChainId:r.result.destinationChainId,userAddress:r.result.userAddress,receiverAddress:r.result.receiverAddress,input:r.result.input,route:u[0],routeBridge:o,quoteTimestamp:i}}catch(e){throw console.error("🔴 Error getting bungee quote:",e),e}}async getBungeeBuildTx(e){const t=await this.makeApiCall("bungee","/build-tx",{quoteId:e.route.quoteId});if(!t.success)throw new L(O.TX_BUILD_ERROR,t);return t.result}async verifyBungeeBuildTx(e,t,n){const{routeId:r,functionSelector:i}=Bh(t.txData.data),s={amount:e.input.amount,recipient:e.receiverAddress,toChainId:e.destinationChainId.toString(),token:e.input.token.address,signature:i};return this.verifyBungeeBuildTxData(e.originChainId,t.txData.data,r,s,n)}async verifyBungeeBuildTxData(e,t,n,r,s){const a=jl(s),o=Fh[e];if(!o)throw new L(O.TX_BUILD_ERROR,{originChainId:e,error:"Socket verifier not found"});const u=new i.Contract(o,Ch,a);try{await u.callStatic.validateRotueId(t,n)}catch(e){return console.error("🔴 Error validating routeId:",e),!1}const l={routeId:n,socketRequest:r};try{await u.callStatic.validateSocketRequest(t,l)}catch(e){return console.error("🔴 Error validating socket request:",e),!1}return!0}async getEvents(e){const t=await this.makeApiCall("events",e.orderId?"/order":"/tx",e,Jh);if(!t.success)throw new F("Bungee Events Api Error",t);return t.result}async getAcrossStatus(e){return(await this.makeApiCall("across","/deposit/status",{depositTxHash:e},Qh)).status}getSupportedBridges(e){var t;return null!==(t=null!=e?e:this.options.includeBridges)&&void 0!==t?t:zh}async makeApiCall(e,t,n,r){const i=`${{bungee:this.options.apiBaseUrl||Hh,events:this.options.eventsApiBaseUrl||qh,across:this.options.acrossApiBaseUrl||Vh,"bungee-manual":this.options.manualApiBaseUrl||"https://public-backend.bungee.exchange/api/v1/bungee-manual"}[e]}${t}?${new URLSearchParams(n).toString()}`;Y(`Fetching ${e} API: GET ${i}. Params: ${JSON.stringify(n)}`);const s=await fetch(i,{method:"GET"});if(!s.ok){const t=await s.json();throw new L(O.API_ERROR,{errorBody:t,type:jh[e]})}const a=await s.json();if(r&&!r(a))throw new L(O.INVALID_API_JSON_RESPONSE,{json:a,apiType:e,params:n});return a}}function Wh(e){if("object"!=typeof e||null===e)return!1;if(!("success"in e)||!("statusCode"in e)||!("result"in e)||"boolean"!=typeof e.success||"number"!=typeof e.statusCode)return!1;const t=e.result;if("object"!=typeof t||null===t)return!1;const n=t;return!!("originChainId"in n&&"destinationChainId"in n&&"userAddress"in n&&"receiverAddress"in n&&"manualRoutes"in n&&Array.isArray(n.manualRoutes))&&n.manualRoutes.every(e=>{if("object"!=typeof e||null===e)return!1;if(!("routeDetails"in e)||"object"!=typeof e.routeDetails||null===e.routeDetails)return!1;if(!("routeFee"in e.routeDetails))return!1;const t=e.routeDetails.routeFee;return"object"==typeof t&&null!==t&&"amount"in t&&"quoteId"in e&&"quoteExpiry"in e&&"output"in e&&"gasFee"in e&&"slippage"in e&&"estimatedTime"in e&&"routeDetails"in e})}function Jh(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!("success"in t&&"result"in t&&"boolean"==typeof t.success&&Array.isArray(t.result))&&t.result.every(e=>"object"==typeof e&&null!==e&&"identifier"in e&&"bridgeName"in e&&"fromChainId"in e&&"isCowswapTrade"in e&&"orderId"in e&&"recipient"in e&&"sender"in e&&"srcTxStatus"in e&&"destTxStatus"in e)}function Qh(e){return"object"==typeof e&&null!==e&&"status"in e}async function Yh(e,t){if(null==e||!e.length)return{status:P.UNKNOWN};const n=e[0];if(n.srcTxStatus===Mh.PENDING)return{status:P.IN_PROGRESS};if(n.srcTxStatus===Mh.COMPLETED&&n.destTxStatus===Mh.PENDING){if(n.bridgeName===Ph.ACROSS)try{const e=await t(n.orderId);if("expired"===e)return{status:P.EXPIRED,depositTxHash:n.srcTransactionHash};if("refunded"===e)return{status:P.REFUND,depositTxHash:n.srcTransactionHash}}catch(e){console.error("BungeeBridgeProvider get across status error",e)}return{status:P.IN_PROGRESS,depositTxHash:n.srcTransactionHash}}if(n.srcTxStatus===Mh.COMPLETED&&n.destTxStatus===Mh.COMPLETED)return{status:P.EXECUTED,depositTxHash:n.srcTransactionHash,fillTxHash:n.destTransactionHash};throw new Error("Unknown status")}const Xh="cow-sdk://bridging/providers/bungee",$h=[me,ke,le,de,Se,ve];class Zh{constructor(e){this.info={name:"Bungee",logoUrl:`${gc}/bungee/bungee-logo.png`,dappId:Xh,website:"https://www.bungee.exchange"},this.options=e,this.api=new Kh(e.apiOptions),this.cowShedSdk=new Xc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}async getNetworks(){return $h}async getBuyTokens(e){return this.api.getBuyTokens(e)}async getIntermediateTokens(e){if(e.kind!==E.SELL)throw new L(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});return this.api.getIntermediateTokens({fromChainId:e.sellTokenChainId,toChainId:e.buyTokenChainId,toTokenAddress:e.buyTokenAddress})}async getQuote(e){var t;const{sellTokenAddress:n,sellTokenChainId:r,buyTokenChainId:i,buyTokenAddress:s,amount:a,receiver:o,account:u,owner:l}=e,c={userAddress:this.cowShedSdk.getCowShedAccount(r,null!=l?l:u),originChainId:r.toString(),destinationChainId:i.toString(),inputToken:n,inputAmount:a.toString(),receiverAddress:null!=o?o:u,outputToken:s,includeBridges:null==(t=this.options.apiOptions)?void 0:t.includeBridges,enableManual:!0,disableSwapping:!0,disableAuto:!0},d=await this.api.getBungeeQuoteWithBuildTx(c);if(!await this.api.verifyBungeeBuildTx(d.bungeeQuote,d.buildTx,jl(e.signer)))throw new L(O.TX_BUILD_ERROR,d);return function(e,t,n){const{kind:r}=e,{bungeeQuote:i,buildTx:s}=n;return{isSell:r===E.SELL,amountsAndCosts:Oh(e,0,i),quoteTimestamp:Number(i.quoteTimestamp),expectedFillTimeSeconds:Number(i.route.estimatedTime),fees:{bridgeFee:BigInt(i.route.routeDetails.routeFee.amount),destinationGasFee:BigInt(0)},limits:{minDeposit:BigInt(0),maxDeposit:BigInt(0)},bungeeQuote:i,buildTx:s}}(e,0,d)}async getUnsignedBridgeCall(e,t){return async function(e){const{request:t,quote:n}=e,{bungeeQuote:r,buildTx:s}=n,a=r.routeBridge,{functionSelector:o}=Bh(s.txData.data),u=o.toLowerCase();let l=!1,c=0;const d=0n;a===_h.Across&&(l=!0,c=xh[a][u].outputAmount.bytes_startIndex);const h=i.utils.defaultAbiCoder.encode(["uint256","bool","uint256"],[xh[a][u].inputAmount.bytes_startIndex,l,c]);let p=s.txData.data;p.startsWith("0x")&&(p=p.slice(2));let f=h;f.startsWith("0x")&&(f=f.slice(2));const m="0x"+p+f,y=r.input.amount,g=new i.utils.Interface(Nh).encodeFunctionData("approveAndBridge",[t.sellTokenAddress,y,d,m]),b=(t.sellTokenAddress.toLowerCase()===Le.toLowerCase()?BigInt(y):0n)+d,v=Gh[t.sellTokenChainId];if(!v)throw new Error("BungeeApproveAndBridgeV1 not found");return{to:v,data:g,value:b}}({request:e,quote:t})}async getGasLimitEstimationForHook(e){return Eh(this.cowShedSdk,e,this.getRpcProvider(e.sellTokenChainId))}async getSignedHook(e,t,n,r,i,s){const{signedMulticall:a,cowShedAccount:o,gasLimit:u}=await this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:n,gasLimit:BigInt(s),deadline:i,nonce:r}),{to:l,data:c}=a;return{postHook:{target:l,callData:c,gasLimit:u.toString(),dappId:Xh},recipient:o}}async getBridgingParams(e,t,n){const r=await this.api.getEvents({orderId:t}),i=r[0];if(!i)return null;const s=await Yh(r,e=>this.api.getAcrossStatus(e));return{params:{inputTokenAddress:i.srcTokenAddress,outputTokenAddress:i.destTokenAddress,inputAmount:BigInt(i.srcAmount),outputAmount:i.destAmount?BigInt(i.destAmount):null,owner:i.sender,quoteTimestamp:null,fillDeadline:null,recipient:i.recipient,sourceChainId:i.fromChainId,destinationChainId:i.toChainId,bridgingId:t},status:s}}async decodeBridgeHook(e){throw new Error("Not implemented")}getExplorerUrl(e){return`https://socketscan.io/tx/${e}`}async getStatus(e){return Yh(await this.api.getEvents({orderId:e}),e=>this.api.getAcrossStatus(e))}async getCancelBridgingTx(e){throw new Error("Not implemented")}async getRefundBridgingTx(e){throw new Error("Not implemented")}}let ep,tp,np,rp=e=>e;const ip=_(ep||(ep=rp`
2
- query Totals {
3
- totals {
4
- tokens
5
- orders
6
- traders
7
- settlements
8
- volumeUsd
9
- volumeEth
10
- feesUsd
11
- feesEth
12
- }
13
- }
14
- `)),sp=_(tp||(tp=rp`
15
- query LastDaysVolume($days: Int!) {
16
- dailyTotals(orderBy: timestamp, orderDirection: desc, first: $days) {
17
- timestamp
18
- volumeUsd
19
- }
20
- }
21
- `)),ap=_(np||(np=rp`
22
- query LastHoursVolume($hours: Int!) {
23
- hourlyTotals(orderBy: timestamp, orderDirection: desc, first: $hours) {
24
- timestamp
25
- volumeUsd
26
- }
27
- }
28
- `)),op="https://api.thegraph.com/subgraphs/name/cowprotocol",up={[B.MAINNET]:op+"/cow",[B.GNOSIS_CHAIN]:op+"/cow-gc",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null,[B.LENS]:null,[B.BNB]:null},lp={[B.MAINNET]:op+"/cow-staging",[B.GNOSIS_CHAIN]:op+"/cow-gc-staging",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null,[B.LENS]:null,[B.BNB]:null};class cp{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=K({},Oe,e)}async getTotals(e={}){return(await this.runQuery(ip,void 0,e)).totals[0]}async getLastDaysVolume(e,t={}){return this.runQuery(sp,{days:e},t)}async getLastHoursVolume(e,t={}){return this.runQuery(ap,{hours:e},t)}async runQuery(e,t=undefined,n={}){const{chainId:r,env:i}=this.getContextWithOverride(n),s=this.getEnvConfigs(i)[r];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+r);try{return await R(s,e,t)}catch(n){throw console.error(`[subgraph:${this.API_NAME}]`,n),new J(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${n}`)}}getContextWithOverride(e={}){return K({},this.context,e)}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?up:lp}}var dp,hp;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(dp||(dp={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(hp||(hp={}));const pp=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],fp=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],mp=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],yp=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],gp=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],bp=["tuple(address handler, bytes32 salt, bytes staticInput)"],vp=(e,t)=>`${t}@${e}`;function wp(e,t){return e===Je[t]}function Ap(e,t){return e===Qe[t]}async function Tp(e,t,n,r){const i=tn.connect(Je[n],r);return await i.callStatic.domainVerifiers(e,t)}function Ep(e,t){return tn.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function Sp(e){return n.defaultAbiCoder.encode(bp,[e])}function Ip(e){const{handler:t,salt:r,staticInput:i}=n.defaultAbiCoder.decode(bp,e)[0];return{handler:t,salt:r,staticInput:i}}function kp(e,t){try{n.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}async function Cp(e){const t=await e.getBlock("latest");return{blockNumber:t.number,blockTimestamp:t.timestamp}}function Np(e){return new Date(1e3*e).toISOString()}function xp(e){if(pp.includes(e))return C.ERC20;if(fp.includes(e))return C.EXTERNAL;if(mp.includes(e))return C.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function _p(e){if(yp.includes(e))return E.SELL;if(gp.includes(e))return E.BUY;throw new Error(`Unknown kind: ${e}`)}function Rp(e){const{sellToken:t,sellAmount:n,buyToken:r,buyAmount:i,buyTokenBalance:s,sellTokenBalance:a,feeAmount:o,kind:u,receiver:l,validTo:c,partiallyFillable:d,appData:h}=e;return{sellToken:t,sellAmount:n,buyToken:r,buyAmount:i,feeAmount:o,receiver:l,partiallyFillable:d,appData:h,validTo:Number(c),kind:_p(u.toString()),sellTokenBalance:xp(a.toString()),buyTokenBalance:xp(s.toString())}}function Mp(e){return e.isValid}let Pp,Op;function Bp(){return Pp||(Pp=Xt.createInterface()),Pp}function Dp(e,t){return Op||(Op=Xt.connect(Qe[e],t)),Op}class Lp{constructor(e){const{handler:t,salt:r=n.keccak256(n.randomBytes(32)),data:s,hasOffChainInput:a=!1}=e;if(!i.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!i.utils.isHexString(r)||32!==i.utils.hexDataLength(r))throw new Error(`Invalid salt: ${r}`);this.handler=t,this.salt=r,this.data=s,this.staticInput=this.transformDataToStruct(s),this.hasOffChainInput=a}get context(){}assertIsValid(){const e=this.isValid();if(!Mp(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=Bp(),r={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?n.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[r,e.address,i,!0])}return t.encodeFunctionData("create",[r,!0])}get removeCalldata(){return this.assertIsValid(),Bp().encodeFunctionData("remove",[this.id])}get id(){return n.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:s.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return n.keccak256(Sp(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return n.defaultAbiCoder.encode(e,[t])}async poll(e){const{chainId:t,owner:n,provider:r,orderBookApi:i}=e,s=Dp(t,r);try{const r=this.isValid();if(!Mp(r))return{result:hp.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${r.reason}`};const a=await this.pollValidate(e);if(a)return a;if(!await this.isAuthorized(e))return{result:hp.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${this.id} is not authorized for ${n} on chain ${t}`};const[o,u]=await s.getTradeableOrderWithSignature(n,this.leaf,this.offChainInput,[]),l=await async function(e,t,n){const{computeOrderUid:r}=await import("@cowprotocol/contracts");return r(await Dt.getDomain(e),n,t)}(t,n,Rp(o));return await i.getOrder(l).then(()=>!0).catch(()=>!1)?await this.handlePollFailedAlreadyPresent(l,o,e)||{result:hp.TRY_NEXT_BLOCK,reason:"Order already in orderbook"}:{result:hp.SUCCESS,order:o,signature:u}}catch(e){return{result:hp.UNEXPECTED_ERROR,error:e}}}isAuthorized(e){const{chainId:t,owner:n,provider:r}=e;return Dp(t,r).callStatic.singleOrders(n,this.id)}cabinet(e){const{chainId:t,owner:n,provider:r}=e;return Dp(t,r).callStatic.cabinet(n,this.ctx)}static deserializeHelper(e,t,r,i){try{const{handler:s,salt:a,staticInput:o}=Ip(e);if(s!=t)throw new Error("HandlerMismatch");const[u]=n.defaultAbiCoder.decode(r,o);return i(u,a)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Fp=["orderType"],Up=["address","bytes32","bytes"],Gp=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Hp{constructor(e,t,n,r=dp.PRIVATE){if(this.orders={},this.chain=e,this.location=r,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!n||!t&&n)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const n=t[e];if(!Hp.orderTypeRegistry.hasOwnProperty(n.orderType))throw new Error(`Unknown order type: ${n.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==n))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:n,root:r,location:i}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const n in t)if(t.hasOwnProperty(n)){const r=t[n],{orderType:i}=r,s=W(r,Fp);if(!Hp.orderTypeRegistry.hasOwnProperty(i))throw new Error(`Unknown order type: ${i}`);e[n]=new(0,Hp.orderTypeRegistry[i])(s)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?a.from(t):t}),s=new Hp(t,n,r);return s.location=i,s}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify(K({},this,{root:e}),(e,t)=>{if("tree"!==e)return"object"==typeof t&&null!==t&&"orderType"in t?K({},t,{orderType:t.orderType}):t})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const n=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[n.id]=n,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=M.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Up)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}async prepareProofStruct(e=this.location,t,r){var i=this;return await async function(){switch(e){case dp.PRIVATE:return"0x";case dp.EMITTED:return i.encodeToABI(t);case dp.SWARM:case dp.WAKU:case dp.IPFS:if(!r)throw new Error("Must provide an uploader function");try{return await r(i.encodeToJSON(t))}catch(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}default:throw new Error("Unsupported location")}}().then(t=>{try{return n.hexlify(n.arrayify(t)),this.location=e,{location:e,data:t}}catch(e){throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)})}static async poll(e,t,n,r,i){const s=Dp(n,r),a=i?await i(e,t.params):"0x";return await s.getTradeableOrderWithSignature(e,t.params,a,t.proof)}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,n])=>e&&e(n)||void 0===e?{idx:t,value:n}:void 0).reduce((e,t)=>{if(t){const n={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:n})}return e},[])}encodeToABI(e){return n.defaultAbiCoder.encode(Gp,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Hp.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Hp.orderTypeRegistry={}}}Hp.orderTypeRegistry={};class qp{constructor(e){this.knownOrderTypes=Object.entries(e).reduce((e,[t,n])=>(e[t.toLowerCase()]=n,e),{})}fromParams(e){const{handler:t}=e,n=this.knownOrderTypes[t.toLocaleLowerCase()];if(n)return n(e)}}const Vp=["sellAmount","buyAmount","numberOfParts","startTime","timeBetweenParts","durationOfPart"],zp="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",jp="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Kp=a.from(2).pow(32).sub(1),Wp=a.from(31536e3),Jp=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Qp,Yp;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(Qp||(Qp={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(Yp||(Yp={}));const Xp={startType:Yp.AT_MINING_TIME},$p={durationType:Qp.AUTO};class Zp extends Lp{constructor(e){const{handler:t,salt:n,data:r,hasOffChainInput:i}=e;if(t!==zp)throw new Error(`InvalidHandler: Expected: ${zp}, provided: ${t}`);super({handler:zp,salt:n,data:r,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Zp({handler:zp,data:e,salt:t})}static fromParams(e){return Zp.deserialize(Sp(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:jp,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:n,buyAmount:r,startTime:i=Xp,numberOfParts:a,timeBetweenParts:o,durationOfPart:u=$p}=this.data;if(e==n)return"InvalidSameToken";if(e==s.AddressZero||n==s.AddressZero)return"InvalidToken";if(!t.gt(s.Zero))return"InvalidSellAmount";if(!r.gt(s.Zero))return"InvalidMinBuyAmount";if(i.startType===Yp.AT_EPOCH){const e=i.epoch;if(!e.gte(s.Zero)||!e.lt(Kp))return"InvalidStartTime"}return a.gt(s.One)&&a.lte(Kp)?o.gt(s.Zero)&&o.lte(Wp)?u.durationType!==Qp.LIMIT_DURATION||u.duration.lte(o)?kp(Jp,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}async startTimestamp(e){const{startTime:t}=this.data;if((null==t?void 0:t.startType)===Yp.AT_EPOCH)return t.epoch.toNumber();const r=await this.cabinet(e),i=n.defaultAbiCoder.decode(["uint256"],r)[0];if(i.gt(Kp))throw new Error(`Cabinet epoch out of range: ${i.toString()}`);const s=i.toNumber();if(0===s)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return s}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:n,durationOfPart:r}=this.data;return r&&r.durationType===Qp.LIMIT_DURATION?e+t.sub(1).mul(n).add(r.duration).toNumber():e+t.mul(n).toNumber()}async pollValidate(e){const{blockInfo:t=await Cp(e.provider)}=e,{blockTimestamp:n}=t;try{const t=await this.startTimestamp(e);if(t>n)return{result:hp.TRY_AT_EPOCH,epoch:t,reason:`TWAP hasn't started yet. Starts at ${t} (${Np(t)})`};const r=this.endTimestamp(t);return n>=r?{result:hp.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Np(r)})`}:void 0}catch(e){var r,i;const t=e;return null!=t&&null!=(r=t.message)&&r.includes("Cabinet is not set")?{result:hp.DONT_TRY_AGAIN,reason:`${null==t?void 0:t.message}. User likely removed the order.`}:null!=t&&null!=(i=t.message)&&i.includes("Cabinet epoch out of range")?{result:hp.DONT_TRY_AGAIN,reason:`${null==t?void 0:t.message}`}:{result:hp.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}}}async handlePollFailedAlreadyPresent(e,t,n){const{blockInfo:r=await Cp(n.provider)}=n,{blockTimestamp:i}=r,s=this.data.timeBetweenParts.toNumber(),{numberOfParts:a}=this.data,o=await this.startTimestamp(n);if(i<o)return{result:hp.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${o} (${Np(o)})`,error:void 0};const u=a.mul(s).add(o).toNumber();if(i>=u)return{result:hp.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${u} (${Np(u)})`,error:void 0};const l=Math.floor((i-o)/s);if(l===a.toNumber()-1)return{result:hp.DONT_TRY_AGAIN,reason:`Current active TWAP part (${l+1}/${a}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const c=o+(l+1)*s;return{result:hp.TRY_AT_EPOCH,epoch:c,reason:`Current active TWAP part (${l+1}/${a}) is already in the Order Book. TWAP part ${l+2} doesn't start until ${c} (${Np(c)})`}}serialize(){return Sp(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(Jp,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,zp,Jp,(e,t)=>new Zp({handler:zp,salt:t,data:tf(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:n,buyToken:r,numberOfParts:i,startTime:s=Xp,timeBetweenParts:a,durationOfPart:o=$p,receiver:u,appData:l}=this.data,c=s.startType===Yp.AT_MINING_TIME?"AT_MINING_TIME":s.epoch.toNumber(),d=o.durationType===Qp.AUTO?"AUTO":o.duration.toNumber(),h={sellAmount:e.toString(),sellToken:t,buyAmount:n.toString(),buyToken:r,numberOfParts:i.toString(),startTime:c,timeBetweenParts:a.toNumber(),durationOfPart:d,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(h)}`}transformDataToStruct(e){return ef(e)}transformStructToData(e){return tf(e)}}function ef(e){const{sellAmount:t,buyAmount:n,numberOfParts:r,startTime:i=Xp,timeBetweenParts:a,durationOfPart:o=$p}=e,u=W(e,Vp),{partSellAmount:l,minPartLimit:c}=r&&!r.isZero()?{partSellAmount:t.div(r),minPartLimit:n.div(r)}:{partSellAmount:s.Zero,minPartLimit:s.Zero};return K({partSellAmount:l,minPartLimit:c,t0:i.startType===Yp.AT_MINING_TIME?s.Zero:i.epoch,n:r,t:a,span:o.durationType===Qp.AUTO?s.Zero:o.duration},u)}function tf(e){const{n:t,partSellAmount:n,minPartLimit:r,t:i,t0:s,span:a,sellToken:o,buyToken:u,receiver:l,appData:c}=e,d=a.isZero()?{durationType:Qp.AUTO}:{durationType:Qp.LIMIT_DURATION,duration:a},h=s.isZero()?{startType:Yp.AT_MINING_TIME}:{startType:Yp.AT_EPOCH,epoch:s};return{sellAmount:n.mul(t),buyAmount:r.mul(t),startTime:h,numberOfParts:t,timeBetweenParts:i,durationOfPart:d,sellToken:o,buyToken:u,receiver:l,appData:c}}const nf={[zp]:e=>Zp.fromParams(e)};export{Be as $,kh as A,Zh as B,J as C,bc as D,mt as E,Ue as F,Ge as G,wc as H,He as I,qe as J,Ve as K,ze as L,je as M,We as N,Je as O,Qe as P,Ye as Q,gc as R,Xe as S,$e as T,Ze as U,et as V,Z as W,ee as X,ne as Y,ie as Z,K as _,Ke as a,oc as a$,De as a0,lt as a1,ct as a2,ht as a3,pt as a4,ft as a5,yt as a6,gt as a7,bt as a8,vt as a9,Ep as aA,Sp as aB,Ip as aC,kp as aD,Cp as aE,Np as aF,Rp as aG,Mp as aH,Lp as aI,Hp as aJ,qp as aK,nf as aL,zp as aM,jp as aN,Kp as aO,Wp as aP,Qp as aQ,Yp as aR,Zp as aS,ef as aT,tf as aU,Xc as aV,Jc as aW,Qc as aX,hn as aY,Wt as aZ,hc as a_,wt as aa,At as ab,Tt as ac,Et as ad,St as ae,It as af,kt as ag,Ct as ah,nt as ai,it as aj,st as ak,ot as al,xt as am,Rt as an,Mt as ao,up as ap,lp as aq,cp as ar,Dt as as,dp as at,hp as au,bp as av,vp as aw,wp as ax,Ap as ay,Tp as az,P as b,uc as b0,fn as b1,dc as b2,pn as b3,lc as b4,cc as b5,sc as b6,Lt as b7,ln as b8,an as b9,Ac as bA,Tc as bB,pc as ba,Yl as bb,Wl as bc,Jl as bd,Ql as be,sn as bf,hh as bg,yh as bh,gh as bi,bh as bj,B as bk,D as bl,Ft as bm,Ut as bn,Gt as bo,Ht as bp,le as bq,ve as br,de as bs,Ae as bt,pe as bu,Te as bv,me as bw,Se as bx,ke as by,ge as bz,O as c,L as d,F as e,U as f,Nc as g,H as h,G as i,q as j,V as k,z as l,j as m,_c as n,vc as o,X as p,Ce as q,Ne as r,xe as s,_e as t,Re as u,Me as v,Pe as w,Oe as x,Le as y,Fe as z};
29
- //# sourceMappingURL=index-7b4950ee.js.map