From abc8933aba6704f68ddeec199cc5aea78c9cfa5b Mon Sep 17 00:00:00 2001 From: damartripamungkas Date: Mon, 4 Dec 2023 22:55:09 +0700 Subject: [PATCH] feat: add iterations feature --- .prettierrc | 19 +++ LICENSE | 21 ++++ README.md | 47 ++++++++ index.html | 135 ++++++++++++++++++++++ public/css/style.css | 56 +++++++++ public/favicon/android-chrome-192x192.png | Bin 0 -> 49430 bytes public/favicon/android-chrome-512x512.png | Bin 0 -> 244152 bytes public/favicon/apple-touch-icon.png | Bin 0 -> 44137 bytes public/favicon/favicon-16x16.png | Bin 0 -> 761 bytes public/favicon/favicon-32x32.png | Bin 0 -> 2222 bytes public/favicon/favicon.ico | Bin 0 -> 15406 bytes public/favicon/site.webmanifest | 1 + public/js/ethers.min.js | 1 + screenshot/home.png | Bin 0 -> 54324 bytes 14 files changed, 280 insertions(+) create mode 100644 .prettierrc create mode 100644 LICENSE create mode 100644 README.md create mode 100644 index.html create mode 100644 public/css/style.css create mode 100644 public/favicon/android-chrome-192x192.png create mode 100644 public/favicon/android-chrome-512x512.png create mode 100644 public/favicon/apple-touch-icon.png create mode 100644 public/favicon/favicon-16x16.png create mode 100644 public/favicon/favicon-32x32.png create mode 100644 public/favicon/favicon.ico create mode 100644 public/favicon/site.webmanifest create mode 100644 public/js/ethers.min.js create mode 100644 screenshot/home.png diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..80bc59e --- /dev/null +++ b/.prettierrc @@ -0,0 +1,19 @@ +{ + "overrides": [ + { + "files": "*.json", + "options": { + "tabWidth": 2 + } + }, + { + "files": "*.html", + "options": { + "printWidth": 100, + "tabWidth": 2, + "useTabs": false, + "semi": true + } + } + ] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6d5cedb --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 damartripamungkas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3f94f4b --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +

+ CUSTOM-KEY-WALLET-CRYPTO +

+ +

+ GitHub top language + + + Made by + + + Repository size + + + GitHub last commit + +

+ +
+ +![Home](/screenshot/home.png) + +### 📖 Description : + +This website assists users who struggle recalling the lengthy mnemonic phrases or private keys for their cryptocurrency wallets. To address this issue, the site provides a method for users to generate customized mnemonic passphrase words. These customized word combinations serve as an easier alternative for users to remember. `Please refrain from using short or easily guessable words when creating your custom passphrases. For better security, construct elaborate multi-word phrases appended with random number sequences.` + +### 🪂 Features : + +- keccak256 hashing algorithm +- support iterations, Iteration refers to applying the hash function double based on the provided number. For instance, if the number given is 2, the process would be as follows: `hash(hash("your words"))` In other words, your words are hashed once, then the output is hashed again. So a higher count leads to greater computation worked into hashing the data. + +### 👮 Security : + +This website does not store any user input, wallet addresses, private keys or other user data. You may review the source code to confirm that no data is saved. Additionally, turning off mobile data or internet connection when accessing the website to prove it. + +### ⛷️ Support Wallet : + +- Wallet evm like ethereum, bsc, arbitrum or other +- Wallet bitcoin (coming soon) + +### 🥤 Donation For Support Me : + +- (bsc, eth, other) = 0x106afd8f747687876fa9b096ff20a78620621af3 + +### 📝 License : + +Licensed under the [MIT License](./LICENSE). diff --git a/index.html b/index.html new file mode 100644 index 0000000..56a1ce3 --- /dev/null +++ b/index.html @@ -0,0 +1,135 @@ + + + + + + + + Custom Key Wallet Crypto + + + + + + + +
+
+
+

Custom Key Wallet Crypto

+

author: damartripamungkas

+

donation address: 0x106afd8f747687876fa9b096ff20a78620621af3

+ https://github.com/damartripamungkas/custom-key-wallet-crypto +
+ +
+

Select type wallet

+ + +

Number of iterations

+ + +

Enter the words you want to use

+ + +

Result privatekey and address wallet

+ + +
+
+
+ + + + diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..653fd07 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,56 @@ +body { + font-family: Arial, Helvetica, sans-serif; + background-color: #f2f2f2; +} + +.text-area { + width: 100%; + min-height: 3rem; + border: 1px solid #ccc; + font-size: large; + font-family: monospace; +} + +@media screen and (max-width: 576px) { + a { + font-size: small; + } + + p { + font-size: small; + } +} + +.container { + max-width: 64rem; + margin: 0 auto; +} + +.card { + border: 1px solid #ccc; + padding: 30px; + margin-bottom: 15px; + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + background-color: #fff; + border-radius: 0.5rem; +} + +.pt-10 { + padding-top: 2.5rem; +} + +.w-full { + width: 100%; +} + +.mt-2-5 { + margin-top: 0.625rem; +} + +.mt-0 { + margin-top: 0; +} + +.click-able { + cursor: pointer; +} diff --git a/public/favicon/android-chrome-192x192.png b/public/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..8ea47455b8684fc30eeba6931b9f69e26714baed GIT binary patch literal 49430 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%0AmSAt6LWg;TCvIqb4zkpdu! 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�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 literal 0 HcmV?d00001 diff --git a/public/favicon/apple-touch-icon.png b/public/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1b52829851c7ee780a717e9809508c0807fde0df GIT binary patch literal 44137 zcmV*iKuy1iP)PyA07*naRCr$OodsN#+1AGY=N!7h?rv-yJI8Lt?iLZT02LJzTQN{k#Ky$L7O}g# zTM<;G8_xNDd!KUst%;?AA9pYMz^1BW;E`|P#Xde*bnR-~tEGztZ}L!%%*3y3f`fv0q zf844V0hvS55p$A0{9fAb$MF3afxqeqC^In`KYZxF>RbA8U*9zXnJu)m*gtsa?;5us zANq@qzz;zG$`|u%GJU`D)IUD{2aUiFm*bxeq==GrKl`54uKGV9=K6!)@&C)yNNfGW z<cbM>RfLCqAd8I+af$IHC#RrLsj#!Prf}YTbarr{OXrT{ z%AQ@P`~G@@WCq7y3DCbZkuytw|B93F*WmvDt;>-a&_V;AuGVnx{(U?qPv-FP)0kP9 z(y&$y=FFHu_N-aixMeGWd-n45fVrk4KqWsH!i!bnU4 z{eAvjT#^4*7WykdYakUhFWvh zyajM}97-pLcG%k5VqmD^!INkBu3Ra>9T62nN>VBcl?FR&D@MDFpl{C}*jia(Y-EH| zrOcSxndv_1nq;cE{2sb6vyJ#AK z;$3T62IkIJ;Zq3^KT(3U$>eixI zk;1$W3**$;bA+5a$H_Bic=755pv2bJntHWsQLk1F>ei`EnGz*2G%%2sF+(IKOD}() z8zL>N?i}J=NlD3Ezk7?T*KTm<-aQ^Yd&#TU@Awq)nUvI&3}sq|LQM&l78c~qlb0d| z^HaQN5z5+^rb@*M6fIOZ?`P~0Jp!L3^K1C{^lbo8$fMG5K2JIs) zC6(eu^Rs#VI!YERLCBf2I1Y0rH2jkeBN_~VtXZ=Y7XA^9Dh-83g@MWdb2DSAR;+;A zs8Q6dT?>syO?-SjA*W6;Z_y&I-ncKFSCxSZ3v&y8s#G4g(Icr}qlWag^~};Qu?^q* zGR5It4p>`SYCkL$o0(jwzYxIxr%SND&GRRxrf}-)dB#nc%d;aq*S2`*Pv7=u(h#a!kCfd&6|&xFJE!<_ARbly}|QWuSu7)B^|Li zmn&U{P7dv0xkLTmZkGy&Nme9~p-iLkQ&AU)OMMjY>D)QvgrXf$xZ1m{V zg;vd*QlXqZ=4NJJ-Sh8VWxjU;|GUrqPXao#U#Sg*ATcS0>2v3@c6|V!K1WiZaDKdJ zdC{nDJuY9n&Zu!7+<*9()YNn|3MC4KhP=6RFn#hwZrr%Zrj47ivCTr6QpNeXVMA})BNKR@kTwW4p&?%3Jc^6}#*9zA`;)*ZXq8n}zN_ylR` za%9g&(IN%t+|hw94jss1V=JvKO6jqp(J1)hd4FR`H5%0FbY8y;#nr=ukTd6qjZ2ar z%9h2B?p@o{s(Et?<;{zotsNE?7ATcs0_ZbIdULHcxdM>MNy$V;NAuy+C+<9WNYK80 z91S@|OhOV0O}d!kWXqD3+SRKt-p!SYeQ-6r>No@o3rqIx+b4b1(2wCHCMQe82w)m26?E#*fdT#cQMyDs9?-8*)oSkc1rvtotF3}eYU=$r&WGv0i7 zpFu;NxqbH`8l{44S#4?CqB#@Y+{l|V2kB|)G8k1Vg~irLS1T?qj)cTSQc_Z-n<9R0 zWMGJ?i7^&t=9rimNe5qRan*!<_{92+o7o(=gJ&;ak(8V&R~ZvSBZdwdfb)<+?86frPye!*j+A2KDYI zLHIEuLU^LY#>EjIpU9(U&p3Pj0&ha!qtGZ(D%7-V(~2>}hx6$1Blhm!&xsSKF}Jj& zq6nS}7a@0!99+D7nS;lUl9-yRgEg2Ln^K`{8S2!kPMcOOsZ_2kiHS*Exqh8vAtCJC zy^mL~-=J0~u(r0OT)DC|s9T3l?b=eRSTPB%q@+YXMt7M*h6HGs5Vw@Gv@ zpYB~Gnkd%^)SggfzEqNBThRS8jF=gU78q}?g zv4H_;=^A$I*@NfQ>AVa7NScr!00sssn%1pD*ryNNfAo;Vq%=^95LG;*8YN0p3N=Fp z^kw=KPp)3MPLYCzICA_rRm+#h%*p~ckMSHneiAi;UCBhnDTEzW%gLaP^7L6C6$*t~ zx)@Cw)??yWcPf>&mp-?k^3u|^f#--Z?!5o-LHoN(1IgL@FI|MCg{cgfMSLO7ES@?; z!Kg2l`UBHTndQCzsJ8nX_T~5%&}nM5%=k^8HHZC&kC3iZ(y?7@ri^tXSFSwx`uj6; z?mXh+lTa%(RIgBp5zfQ#Uh2z($B&7N7cPJXa|;uS7AZolYSrlG;6Sx1RkUyr(WCy5 zmI%VaKXBm45sn-?%IS0GNJ&Yf@z0H^P_8^tQBgd7{+zQ{ukh*fXPrBu^(4xbwP%#m zV7hc@k4mB7$%_|Eo41f%`}Rv=l(yZV77|(xSbQU0yQnL`)XZL_s8gp7cOE`u>5ApN4GoomQ!11c%wK@wMGKK9Pj1Or7^qZ|#*2!Mk<{bs*Kc_7 z>Me;WTDM8W5e7;X)vHvYYln7pYTuqLwl)%u5m8YrUEzz5?@FQ*5~TsCRJJT$o|97|&n5!NkOv8Ivb4uvahQ6B6h% z#EDbqFOZg$CasgOQ6>h4^zPM@$>YY7n3O=oCqdU~$d)~uDa`@PB z(sW#|m6;_)ixi|xsgl&KS&RDhYEvL@UI~sfmoC$>cV9k7#?sxPExwEA<2hv-5eZ4W zdj5)^>((SDE*5VeU((am7#S#N->wa_XG|kc&RjCc%*gg-zWJ{T8?-|tGK|MhonX_} z9h^CTiO{h3q@%>h$cRpDTjS>9OzDy(B%l83^;;%QnZcd|`-w|Q!ra)5iR0ZEIb<-# zCdP72QK`jZli_n@xFLUJ0Qt94+hr^%nabAXimcWUmz2clu^w#Qy_=-uL>ktq#XPU+ zQeWZgzlKFVD|q+egS1AvzQGb;1{yUkPL8;Z8c7bjELu&3uv+R&UH&A|parw`Z*8Vg z`%$f5{I%dnA+5GZE&Hrqf%lSCghfP?FHcS;dyJ*Y&-Hom=n?b17jfy@4Wgs9EJs!w zTe@`YK4ddRhv1?%pFgIhkh7n#)OIYGR5)POpT0mF38t_{v+h7nKkNvD?n!e>YF|ccOO2a&)}ildGJ6kgDsjiV(I(^m>L=} z$9oap%a@UysuSf%vQ!J&tX5V`n=qci{rgJbNM}N$AvPgiCK%3Nxg;&%E9##S7D@Wm^o5Oi77Ppij^4>^*o$vNe_#X6)RwiF$QwXShh>d|S3{<>t+sbm-85 zS~Y5tEo(MnVxkER|G>M@cbJ-*QaE3Jsa3JEv_vV~68U68ji`{xD3?)VxN_|}De39b z;`i^_gQ=4|$ZlsVr+UDaK*qSc6PXYvgKIaJ;Y=RuF6qEu5O})HHln`QbKkvdrq47%ABo zxLt~X?%uyor*1uY_WGR+d^CcBlW$ZEq=LeEa&r7|5c%@tmz0w5LK2da80s>dxVQvb zwQ9wzxpR5>_8sZzy5Y|}Xkw|BBdG+n5)%UjYyDQzsbvd7KYpNduijj`euZpVvv73p z9!eA~&fK~4Bzqw&lz0J6e{P7s?{c!+TBB4LkdmIp$uno^H*hdvpCh%dk(7ICFjhh5 z&Yf@_<4TD_1?BUcI(eFQ-FuOkBD~r(S~PCT;bTYTvnW(b$`mV3lScJu-Le%`D_2Hk zAl4skvPbW73600QuyDq>y0h=#0V-9hCMmhQw{Mb?nhYup+3m8h)O!)_TC~K_@Jr58 zTu1QS4xPL4;_Vw5I0_y+_|Sez6)h~;6OmzT-M*t1zy>Ood3)2pXIDx6{gNj9x2Dej zwt&{=>EPq%&&*!10Kc`Hq&A{v^-3(7JBK2L3bJKKApUFD@l&;0Yzy2)MAT=kDNqQz zp{91#N-UT)i%R9oON%N7_T%SB+&w19Y})6@C=MJvgi5JItx%Ghmae6O1fX?+pvcH& z92zl2)a1;b6|c#Y3EZ`dBf-HGDpY`_3+GeGzC4q?X0k3|vy_$=E?j`21N$?uZ*R=a z&84q?>+U^#R<4wqkAy_wpNiy)Id!U6qh*uEv}x5sF8Via-Qx1q>s-8cgX`CC@+l@p zO95-tm>L_CprhI(qaX#>;;V)n*|N!mPW?J{sPWTJl2tJ@6swYU(j=#($;q%`(-z8C zu1Kd29l3G!y5z-=2OlRjEsfs2x=X!_Na^cy@xpt%_uv8JCV6u7#2IP*1tqv*(E{q$ zs3xb+frCdGGGY{ApFfc&cP=*g`BJ}T4V_r(%P?x~&2Lj2{vx3D21uXb`TA1-{r}Tv z0N;kbXW;N*gq*p6COw^|jT^9hfwxRydrq6e)$7+-yuh2H1qyNf{sY={>`FxBXUXw) zYTpv?nKQ|jHLLUurBAAcxeFHZDKdr=Cr(H)f4VxIUfsG=vUmvs19#HFp#zVeJZ1O3 zy;{%+&Qm`mIyXb1R%2;uN^E=_`Sa&x|MqQIT3gYx-(W6XxkhTbni9neNvm9=d^wZ` zhNP<11Z>;R)S0t*_2!+V1cmOTW1E(Ya~)0LLWQI+?&Isr{zFFy`}m2N_{59^jkW|u zCw6Ity1NttCyfR}m6EJkvrxN6H6~A(K#8J7q;LljqJdVuUMi!^5akuO>Uzts_eoThLExjfTkR7{*TUWW%Pdq^UGgJF<8C7D^Q_ zE_r+3wHp}Y;Xz_rsw{vw9<Q|3hDLPl)Q-6`rjgCg?u&5+ z$)Wb>)rXR$%CI9aPrKmlh?ooDRysWfTch{3)4@cvaO z{Tzq$;K_Y{s#1xq8`sNHv&@GmNpp4?&8|ZSCAC+wNFf3@Z<1eyD9m}3tE5!Zl?r-v z>c9%`g)-y%M@djKTWN(_t=$Dn&Qx)U-)Q>(2s^H~#2M#Oi$F%h$#dr!?mC7?PhVnb zX2P7A)9BW|18?8GW90a8G;Yvi28D+^1R z`O+T(kiv2ZasQ)-k9qR+DdrXyY}*omAp$fOcut!t8ISq1W?*k`&y(jb<;rmA$YH!! ztVATAwMlIyhALRSdC$eWMe-MTVj$Y5-&tuj<|Po6$!{A5p( z)G%|JCzb}r40Lqi)RhZ#YTuUS-V3m^ww8gWE?OiqG8*>@lUToHhb$&;(X0`hRp&BD(DnJ+4(D1>Cv|zZ$Czm zGkX^NmM@`co%(WcdJXJ{=eP;<@6|_IsMQ-bFvfkn)bW}c8!~m$I9!GflR=7J*Q*C~ za!M)C|x*HLTSUgierZ#nb5jKC z)1Y2mRxe*B%g*$%g-E?SjUL18`w!T&nVUF=Q2o?UcaxNbz#HN5}u zk#4>Fa{lTyInh1b-SBi9gMmW9l^eHc+qE0v5fPNNFU8S4yXA_h&m#UFL;8z=&RmD~ zM_Ak6dJesoIWZ|oR$5P-I-Q8qYHZqm{Sq5aau-URL4 zLyhV`(Y;d_o;`ia-b07*S+PR;&~2MEXVbdXRIlHF`%hm;=Ad!I`fT*`<>28X3?DmQ z(t34kR%fHXpEg5>f>-a}GRSE-At%pbXkUgLkbkgPuVi1 z_^EP5S^8yPsxy|S3 zoH%s`3s?9`!{IS{1XDfSzw)Jj52!Q38oh=7Zvt9N6>BqWLX9S5luK8wV$$Rp#HS=u zpy{0p$cQ2Vq6d|L~gNz(Kn!{($)3#j~E}pr}^RYUog_u zog>FX(s)_(^F<1?>~A(`Euo$G-V3qt5jz0?D-7n*NX{muJr8JpWriRFgGz}#nQ!e z>)26x*zt);cut$n;^n@WnwcP%FmNYqU8@W4eBF9$hxYkc*4dt_}^Qn)a!TeQru2I88cs(YoMKL&oRuK^yjis@Y!@G81U%J#+ zfYw*KT)%ObI?bAqlBywhPCIU0yhs)+D?Z1>(!4`QF5kFKiK2zrzil%`3Ksl@bNn`F z|LIlV8AO9ZAw}RyQ8%a25dQHaqsESB`>wr+ilKI`o3ni3A`Fa;nJ|4iEB)6=A(F9? zF)qWLIB;+u4<0;|175LWX|}9eN8$Vh{$XIYY}?L`9f9O8ke@Cc9jH;GhFp*Z08-M@ z=-#s@g^HG7^}6*k-7T%OG&x_=v$=9+Wyzd*jC6M;CN4o*#^j_VyrxXTdB|YuG-$&0 z2X|!)fW2F{%60|f5Cs7BnziKl%jb0O+zIcQv)Q$G4ntedjJxMY{%t z2%xnF#&_WYdUx%Np^@OoRXl$7jK(cm@-{M7R>kbwyq;=Rt4f2C(bz^UGMvIc*D!SW zaQp)V9ja#P1P{iK94T*T=E8+cox4EZ-`eFqbnnn!w$M`DeTOH z5b-$@=MkgW6%-_!y*Li+&qOzO>Hi9l3x6*uB`sshib)_|lvpWSw`k0gxpT>zGnZCD zrc=Mkw1Y-NR8$OJUS2$X`jnXHNDd!9f|0QZ6txyjEXy;zW?^5UBEEk9G7!=Vm@-)i zk&QDkk-~Rj{ly`;*x&;}goK1JY_vNXl}6U`i9f=}6@gpVzJ1w$_!vzaHNbzx3ibva zVDtnJ$ySKdH>_6|zZJ_ka`Y&nZ{FcJc!*T#t=km9@e?6(SF$>_>r%B!6mbS^x)X(bFyG_P`_TxojQ%=q!juOAI5xQ2H*e8Ct1JM3 ziuR>Bcj&Oz2#D(WTA9wrIoo?TV|vCRk~Qip~Ht+w_y_|rWV8|B=PX^Bc8r|p-na^mGT7%kc&aLwlv|^ z*>jvZca}cGhRbU#oaKefpg~gGAv7kv2RX89Ul0psPp3=!4mfn{#l`D4BtM zE6HMQ%l!xUv9isI^N2CnmoCAee!XeYw5il*=np-e2RjKtB&n~Xw)UQADy{5{ns~7_@E+a;cX8F>k6v~@V%SS78EYdes-|GUl z;N?F@SfAJE=O`m~6VTiZaR9prR{;H$oud&cyHKP18I{52-R=KEX zkVT+Tv9Yvj-;t}=Z%8XNWzslCJG;oL=1x6&a_Pp+FG52Z!D|662DoGE7OYsZ6gw*` z(PxFXVWBv5>Lh`}gY3yu=5Wp^j3--?>L$hB*(Vb@RrEx%=%>DnRYGbt_jc zUBhqDyo@?S;m-%|+bi|Wc|>bp-67_2np%US({TJZ1xPNua-|CF-LXx!08Uq{xpDh8 z&04qRb4(Q3bL3#})@?F-Sgn2o-i3WctrWho0t-VU0s}VCv_XADb&!}fhmQtx@yZn@ zjUTVAwalD_)vu%)xN-Xqt-E$7Ec_F#n>1wiw$1XR&tJc$WQEG8m4>uzT%X;W1EfqK zV-o+0hL(To9xK{g{L&{wyzn~@A2Y~t2v=|4$I8M?X4u?Dy71!pOJd^VnK^HP>~JJ% z^fD{m%#4lb(YX_gyu2_qGnK)a@HL0JI8)ZXJh8EfJbL_?xwB`=6s=0%AW>KIr>_9g zyK8!RkMzfN>NMfHeE9f@po0fFbM`Fpaq-yN*h+DJ;Nc_0CMFWF+=m)ftI(iTYo5M- zN9T5J@LS@IrMamTJdGGPUTTI9?AwK5dO8l>d-Cp6gtV%nk>jD=JJ}T&h^eIwrHU6p z6!vc4xsS(>pU5hZ!UghCyJihpX(BAG96^PWBd5;r;Qj-K_V10Ev59ORlf}-C+&Oc} zbhyYaikYk{9^=82CpbF~r(|h+83Vj{_Do7SmoHsR_AItCz&v;)m_bfXghfQqtWhI2 zukmB=fkU{sjwdcL0kul&mi2IOz;CHH#zul-Q^?q4xZ4<9N4rw4)E6#U+^aMqI`1$l zI+l9PTX6r;Q}X7{&eJ=$WKE^`OsUG%c=q}YC5jc~^udEt6O!-qQYbHkr``#wyn-3}Z+%%`X* zndK98Y~x)=YuyYq1n%0+gejg38aPn44-lEN)$7*b=f740!qCW2D%b=!EUHUNlqgR1 z>NUujGbaXu>e7w-FI7zlLnN$NY<#Tj)$#h(TO9ff!qmcqpn!FJjQB*ewq2yZxP0Lp zS%@o`fvA`mij*l!gN6;*xXPDt9+Oz+zlL;;wj0v~R~MT8+=%vFdk_&5r`2q$wG}mb z`!u9)ZPcWHr=>A= z;siRiZBLErH6+Nz>gP0aBvH|kY~36{4jVg?lT&4L_wkb^p)^u5YPbvI$Bd?X-vP2C zt6CSBh&bg!@DXz7%z?_lK(49*+qSWIg)her?8ny9{7aEqCOwcaI_-ykVYp$n4I($ZxlzI$H~dGh7M%)%UXS{hNGB6#uq8KLjrQ@%oZ`uFQk z^~zPSvb4x#)xJ2{X=!OP5g@W{0%?bWkJGK+P)e66%AU;|nLU3Yi+ufM8;?5|&rz~S z5&6r3d-u_6@DNt}_|WX<1{5z}kB1tv|Kj?bz!s8xDhvUU~IBYN0? zek_?YlUef?GI5S@FaFt~iwcD~RBL24PQ98nnKo%6r_P_o(%hV(0|(1)Q2K7Cuin0+ zX^WQBtzVA?vu9ytY9{H+&OLe)bo7X{+95{{V5%~te#_QU_Nk4>HB1;Y3fJMzl1;L* zupl}%hO!l_;5o^Y{=K?qaMqdcR=9+26FphvyHeWjGslilvtlJV=I&FbGk>WMS?sLY zyspCG;?{#l40dwj#*N!#&z6;Wv!>IjZCj28 zpJ23y2TxzVlF@vT0tMK*ehoG1)<D+*yn^F z9j3&62%*i*+jnSGzaB;^74vcVk8jG2zJ|HZ%4;-av9-n8!h#cr50NK(HrWSSyN+uO%j2id=sU=fp-w~S z*}0R<1H5?iistP*^7z?vI<{-a>LrVDa&>1*;4WRYwvs$qvvKRfX}Ox%T3gH4EU3Oi z$Aa0qZjEeVpe=yN6d-C~+MIdJSl}%i038V2O0)X)rTewW*N@Q?CQ6y^R{vErZP@TP z0XhS1;{AQK*Y_W=X^>VLkePl#f~;QS7KDa}VQ8q4+-rA-4xBi5k)Hhq@-Z?Bjan4D zL(xKoq#swKo&dB77G{?0-L#JSb!*9=KX~|%8uc5}p<^djEm|mBS&2g=83J}}$9cp^ zNo~pMZEc3&%X^n)SlXjn`HHk`(SnT|H?elDAJr>W%E+b&K&#W#jGZunG=&1M$x~!1 zcT?aVW=|eZzwVvMS+o=yl_6t?J2TZ|Eb(!%@_M2ysYKb*%$q!wLiS}5A}H~aMQQ&g zzZJwrM$y;F8MRn{^*5uhiqSe33>6l7)=cItS%SyZ=^6Jg3lnsQp0-l!`h{qNGVK^j z&9er2b?w5Ud2_I`5bl8PN20|-co;2Oci_$Im)yQ_jr_TC%AkA3Ja4AXnuU$EEx|#1 zWDL`!jRT3PNpiA@Rs;ukZjr5lvuDpn{(SkQM7C%dd#RJI^Ha4ilT>#-VWB;y&5#B` z#81KdcF~|_4GHMg8#l{}7Be$5HmzJH`||0JUt^*5zw?h(-x(drzF^?j{#OQ|b%EHW z>(>}E%!RuTpGX0`5VW*!(}ul4`x!NE65*ddYWY;P=+dK<8MO-b_P9@+M7mOirMVS* zHm#+8-P#$qa^%DboQ92{WvdplHGrv+F_UL{$;3#!C}R?b=x~&&YrYOEU*4)3iWVq9 zvnEY>`uH)67cHPj{``72O!~EtpFE>gr_Pv|n39l^%FB1}*|%vOwpOOpZPi{jpE>G10VX-x1%HzN9B5(7IDs5>ry;eH6%DfW2GSF?5&L;Wz)5wyq zPHo!KrezCR^jfGuAu3lahtMV8xqnaAHtK_8ZL0-jBgTk`2pKpYKYd09SD7cTcn^k3 z6$ASSM#WR!Uvx|iYqxA-L%?R*HE+++V@D`fya>w|FT&i^m?zI)Q>#&9+2KhPwvHS+ zgmyjpaq0SX323oG&Yd!W-ralPzuKQxZCX*XXi>WL=|@aLEI~U0rEmQuUm#yA-TMz9 zFzBF+gYI3uNYVWHh>nh7+ur@sP>5=J0qAxuTl^+KeNRaTcINT(mt?iGkXno8jhe7=>vmi{Cdw960u=Hk8E9lB^tzS4jC6J7!Sm$Gw(TZ0Emg`V>osUd$eGj91(BIO9leo} z*47Q1z*C|81*lu48gJgdX7}zLn49SMUyayOC7r2WGnnPQ7>!bN<%D||FL3?ZWqJ=E zCAsOh5AN|MJd^^ta>**^Uj6!U>&g{;SFXZ+@-&%U6SJgBS$j6FUQW5nHAywd)FfBu zqLnFDg6n5bVI*0KuW}6k(xwO*sR&TVO`6EIok65YE3QjLYs9=(GSO`eT|0Kb(aDiq zdGp{kbsBkd~WbC9V_^#U|HQEZ5 zA>*AL@f<&v&Rx3DrDGSmcIm|YMT_zDn#sk}C#g`n)Rz)94aCMLP^Wnd$!ytJTk!Jk z4U%Hx`1m1$gQrg8KFJeH3v0HlUP1FFjWVjrzL(+1JUCyKV2L06UO;CoYibSGZrr46 z?>@YK_g<>Te7xt;s7^hpEf#5Ru_uWnm{dy4&CU3^c1^~P7{!v6D+t`Xmvo^i&}eAY zv@tt2Y?Ng}nUzH+&t9Zsm+lN4(2wQIm&QaXlfXFJGf3G4ZLgW$cINPg%2W4P&Ry z!ou8?4^JL*_~dc9++MzUodw>D*}pRo*RkX9S+ic-{80lvJGQ5bLmS$3=_Q|8?;2=> zL9wN;hSP@+P^)T{uhZ_|u|$ez5;EGsL!Ai<4%TK?_3n&Xjg7fEh4STLV81@}?cEzw zLu2`4!C*KJcfs1)irLeq%S`Rt_a7-+r5Z8uk?h&Fg@})z892gK#zDg6Sv-9TT{?H7 zQKKd_Ytn>1{d)1}!DD(4bz+3$V5Uu)@YNo2-WD%5i=_>th7Be1^GCdbil$Opo!HnJO7IY1)^DE0W&& z(&=>m^eK#V8v2!tL>L)~&0h!z^?GmJS$O*N8PyszATnMQ^Xi>gk>X6FP4i~#5(yUF zWYX)yFI~Bcqq7qygO6ilsZCTl^z19!dJP-WmjONcP^Cc=G-3-5BNf+9ALs6a$9PPb zLW4ThFtawNN2jhd@7S4=MGLWe+ZJrCY%=DnrEe6FgbF zb}h*%$+D^U@}*07_b!YH)4WJZikB3Ofw3W_iWg<&(#2FMuVWx|@;9**g@t{fQ;*(^ z8aaZVeFsR_pkagh^y=P~l7$OlVQERV2K9-LPm&F}r%swcQhYpiS+a8V>NS~$4vUV` zQZSuRbJ9Xs2;|DZt(v&G46Itfx&$5+%)TvRKom;k%r9 zUnY$ij^luVvMt!sr7Njhw;C5NUFKA9Ftr-|j8bJl(2mWNDp8Cyje-Y{o>0GWGos?- zDP6oUy8;5(6S#}Al`B!CR7vVLYAQ3ZWy_S{)Zv4&wL@n0+^=;z{-dqHM8Av4(`Mkm zc7wFIqI`bklEt!i7nE?|oQA??P zDWAIk=m~=zopET_hOyJMEI{Fc1z5Xs1@W;lRH{&s6@IJPwQCQvy{2>F(nT&`zee*$ zO&Kz%Ka;1=WX=*FEn;P*jE3$5@<$f}m)4zK+8h7Z(wHvo(rcIfy=D-fIapx}91Z>aL zwD60C7Wd)mD5^lFWlSXT(*niI5gPG9i$UEC)6-PhZEXoYuv<1w)SJYGOPAp`Wom}j zLl0>2^PZjBvDVi&gOg6vq;uiQH3klG;`ytWQgYh3!Oybs&52Vdu`gMKJv(<(v1T2r zRIbQI-{qV=cY#x9&ardX9?F(2O~{E;Jb8GR7H!(|=4~i@wr!Hl(odehz+h)*x$mQ> z>GWN)kUZIQ^8WpMnQhILFCSfd_L1Z7G@u`g=FI%fRY%9JRDrKvgh@84mjNZ9o2D~0F-90zhN_@vC#<;j(U^QS{_ za<-i8I>9=2CU1k&Vx9T)W2lHU5$p%?#+!&~OTtDNFu>1$cJ-D*YXYvTnO5^0el_ zu0W~D@L#c*1xr?7CHir6a-e>zw%ob*Pzz|an&bQSuzKwpw(Jf>fWce={VKq`?H)f-o?pk2$BddHK+%U3dH;v~s^YeBA&+7NN% z&zXgjA;B0J8nSNP1_A;Dc^ei+N_--zX(`y3EXnC3hvnv?9lP~p^5pTv#>6md-XcyP z6%BYatlhGMhj;FC=k6`(``&x_kc($S7&~z?Atz6>akVdzadAxYoJvG=v>f9}ZmtaK z(}Vf*z3J1xANvmM=lJncoV#{S-rxD)qg1U_;VV!1*I4I&U^(<>`n8FbZ^hN$`tIUF zf}WW*e?CiAtRy)#opPm1v&MHB70Q%m<(iGMRe%u3WU6gpu3Py$UZ0LXijC6A3-TN>`xVjM@{(-3z zJ*ZQs25Z)=XZgB~M9ZER0?=y7uI$*cgAHr_u{1OL%4ZjDM8Ohe$etrRuO8fGsPhO` z1#H92)R3(kH?Vf?1~&Tnu-tDg#>U3<>fDi^+d6RL?mg`)pjLBY{~r9-u4C)Y{aQfl z^X}pXbUgGJVWFo@`v*XWe)u5o=gU5UTCHrZEOt^CQchnrqDiO607tg&+pCjt>4rv^ ziWZbwxzZ(Miw3cUhTMAMr)q?Uhttz>2$M&TVd&ugym%8T-44h8y=m9JGab4(Fv-=G z+6@|FVVjN6w{M7!ik8W#Ptma)JGh&T0UKGnVKY|N)!7>TiQEL-JA$$1joscdl|dR~|q88Bd=Bd+7dGkBPDMo0ZZ`SRjE z(nW6kBX-6T+F`wg7FIGUCXNEdN@8Se$cL9N80#?sZ{IbbO2=oxLiX<7$F>ct*uFc6 z&ry*K?bnYMox5`W@>MN2tX6Yy#};<&-HZRG9lFBQufZlX9ixB2LRa{y7O&ojE#$OJ zh}g+Wq_RtuF3$9clc-mt21-%xrP1)}-D@gTt4&Ojw!@Q7OPVp^jSLN#J!KNzJ9ojx z+ER8?67xzlhpAM*Aro9&=1DiM721jAgM*|2#t=g(ij z)YO=OHEU?qxQUDl1e2nj|NnYByI(S#`tSY6_0Vz#rE5q^O_A+wMe8lGWkZ321=+M_ z6;;buBq-{<*HgsEkrhvpXt_T05|U3 zBPvdG=+sd>`mZ|Ove@kBr-~H`+OdUGXJ${0s{jBX07*naR8PvznkP=2mprSGRtk$J zv>L+)58~{ZQ;Zxrf^Hq!OCV&p9HK%zDVgHsDiZPOBN1<3$kTBBj(ilyAXa{wMe;l7vo%l&i`Og*5rUj?8? z4H>|^88g0OIYfU9Su-d!*^B@%F*c*btYYgJii|cxWgSJg1U1M{XWIenQJ;O-WU!O5M4rvuoS3 zDSkf7uoWA6>f)r|4d`@jt4rPe{pUI-31BBBCQ0UFyys+M6O-ijWlI;#lMVcK?>)c( zr(qceP;QLW-3r&ax%m)TvTcz9%92U$}TF?NJ>Z`}%Ngl94&My{I!md+(|rWlt+OzE zf~Txl$vE`Q)H47*{TDZ*|JEvHxO*Z^4{X}Dg>jRn5FQb!WjMZRTrMY#Mxzzkj~J%y zrKdZoxSNudD>2d4UG8QTpODOynX_^1-H5%KN2*6jkR1Nt``O-k1_6T30W(TTtv z+gQ7H4RxwlmrJ_TOsF-Ioq6%*H4U0JCp1g|MZ@9UJFvB~qgSm;dA z-#i#IV3%SpfYcf`vQ z8$hn#u#rhKrV|mHfT^*mt_x5`HbAG?(pmv|C`84#5xH{aAbYNCEHdeNU)$1YTJJv}lR2nccF``MM#uO`DkmALPP^M&Q zN);`_kWp{sb9-_WBCWJNN7%J~>IpFzT$T)IuA}mSkcZ zX6cIQc5oHloB9oP;&W_5rd2>Yh@v9I+iM!mg9qw@Mr|p8;E4;DD8-I|02(!@%iGW} z)(32%L#viFY}t<5wX3tqZzZKGR^dh1d)@oczAIHa+&F&b7Buh(ZVdFJ+E$0oA1TZFMaMGXuCh7NLDZS7mojyz(59% zaFtu~Y8#V_KY{_!S9lBRNxu&1Etz(IYkksR_C`{t$wn{*^5>;Str|3}T}Ntb1%;NT zPM2NlA3c7;waZtzaP1-CVTk}ohc@yW0-mw4F?8!Q zP*%5O9JlVv|I_QS1OBd* zHjc>1D7lB;`>^+X{v1g}bQF=Fqlt=&mY>nKL(pw%DK?YT^{^A=S4E2!mF;4MwJlY$ zBn9&4lbg3^&z^(lFJEx=+I88+;K|b$ynOeDx9>wqlFeWAv4lXD>PsR-$WAL&WN*L* z)^FL$*lAw6$I(bZ{Qc{fxqRUgGrZ?<=2$R}!$z@v&u%Fd6%7mLOqope$`xtY&Ox$0 znGZ41U55^4_OvM(+gph6reN_hyp8xM-4NMD^qZq`-CFDn*r?k~UStc^vV3a!`VARs zKK-um>WEQgN-^ZdngUcG$9ne*qRn{oT{Y}^9^lvssAe$I`fT+&h`U`kCrX6eCN-nZR?hVeforjsF$;}kfMCy(@H-t zJx#h0v9a+PU=I%uo;!63TDyELRedAv83y$&G8x<7-3~=MHX8txoLd0 z|D*0I;Hu2G?K+3<5L8gaKm`;rK(PZA3=~mRENnnUQ0(qN#T>gq0WmSK6T84}1yl@d zLbsX5am4|~*Uc4moI20?m1j7gTVdmtCNHjnU zGP{>&p|(?13=bZH26gH%)j_E>A-3`V4sZ*5&u<6x+VBYUA3O{OMg~|uFO)gEi{edy`wv*Q!hjp^2%Vb)qsU%F&G;g@#cmi*RDOgaq9GC zyng!zZ>jT@lPxHi656Q#tGK#y32Ie!z}~Gfh}aUv4V~%Z$Mb;f-a|+D0V90v*&2n1 z_aE}4MkcAhDB9T)2}TU`!;DE3p@m=4XP2?7ilkSmVu?+`{}4Kh)VcHb?T)!Krn7Z1 zy&+qcg@B+CtlbJvLJ(g?CL&b)MYT z($Zw9TU{M3=<4dh*pS4_CG1E=Q`uB$s8FE-o4(suv}M9LNz)SbGbt$vckVyH*^8HO z`rJ7@OMS_c*%B!gs|es~(9_mKQ8RN`mnwy_rAi^|+ZR-*SPu2;)k8H$N7kjgaq}jw zBqSj2z#*Kya2}u8o`PtaVs%(9<$7w=+7+l&xf1#g2*k!!D-a)l7QF@x!bh?>lc=GR zZFxkkSq0xdez_r&F)@KP#q=h8)-IeQL$1A{qV9yWLodUxxB z(pFZ&G?B`FpdhoLehRFQs3DMQ}V)>f0C zqKyse*Qtwo_3JSZuO%kpSZcQmns2MQzO)_Rf{87(xv1ADhw6xL6 zt0P{&f5)JJ$S_E=1tI~QNG>45^G)~9 z?L!JnGVI&A6$uH~(Wz%|CYaIHA)W^P4C>pPUB%k8?}P&<<58|`DeT^~2^GuRD9=HJ z^IwI>UwZv_Q{Vq2!T--530;zPn>V9>paAGHrAne!wd!2G`1m;;X=!Qffk*XY2Dwt! zi`Zl2KPV2s<|eU9!jG1k8nkt^IVUG8GS@~8QKMQlT)%!3$BrC>k+Cs)_xDAU`VCk> z=2QA-ymeXxU@$)yKlO~b#z=@W&9xRGmp>!!59^yTBJ|0Cai=uryFN~Qm z3Gd#MwzOD&gBA;`pt0-4VR^pf7z@bA38a^6Nl9QEVUt&QXQ^$_PsGz}6Q`bPom(Lu1 zgMx=~rKf6jN9^3P1xEUY*s*6X-n@IyJ}CY{LGbO=2@B@VL9IFsaQ(pp7GW0(;&SL} zYGLi-MR0G?9HlGT<3mO!OZ@JR+6+BiF{R=4Rki5(XVLN3UiY5>G#xTYRQUxB=ONM_ z-dOL)+c(gsoLgIm zg$J|A0+}}+Di={M{(%LF=P@yMZ^NVOjAP>Jvz0+!Z~xF8_}q4eSG?sfdz{eVW58iI(F%X>(>);KK?jv-MWW1K3yP}3Zmp3T_h6NSe3v* zQh?gK55p%+=9FnHr%dC-3{p6fe( z$B(8TUcXI4#<#C9H8euyiWO1JyckDZlOo1gwQ&<3kqlSc)(9R*WhX&LgDMlJ&z=+N zyvzmWil}fXqS+>O*~*kCiQ>hI!nQ&Ml(MqM!$%LGrKyIlK0a`+UY!|w4<0|k@%S^W zcX#9VEul5bfRggEYiweU5|*X$;^i}>5ec7z7d1F?c$wc9vjy6E`snF55WRf6qG`iM z=vu9x1tWeBexK!+LD#{_sy&mh0 zkgKkcrLmTo@{&{AqF;9(%$za_TG~4NpwK>o{x|(wCR(&=$uohYhJ|p>zAZMEYuK;T z-eTB@kr+RA1cSRzz#ve+Kw0Y->-<9p^vB4M5I8v3#EW;IpeB*y!il47grs^LzXH&T zlm6EU{(lD0v?-LUOVOo$I}GUF6&@XYpslOVg5R`UaXKXYmjD5L{E7@~H5dN{GnDmX0>6=tCazyR zk0Zy9qtBqh$bmZQ)pW+uxLraGUFA4`IiP<9IjJCE^QKTG<>=CZ0Nn+XX3W8q$rG`A z_ik(q-;5V&Z$!x~+IT4xvjoDwxTYyLh+66ztjhE zA#B-Fp8Q~v5|0#$vH@~AFU#bBN~2!}`uZ?7G-6rX=FOX+UfntjKH`q-+Px1kJ9gj& z&H5>pVr7~m9wb*DBBj(JQ%K8~J9yKf^80IELFmcLsj*7$TE)J`gFGd@;R%q3}JSCf+z2gIAgO`Ex~LMca=_MYh9r4y!w z&d276buctELfXqW7&2@mcJ7OVOp+svATeRSutJt1&ErLwWfCZU7Bedf&sMEb+`Kp@ zgwEv8Y2Dln8J|BR{`6^N%j7Kl!d*dTywiYy9Ogw#S*Di!0O?^_xL`i2SETX3U<&RSst0 ziSG*;=#SYG$0KyXBIaE)SD1%m#UWW$*$#OQi>!C)+!_1g_Mv-MAB-On!p$bd=gDO` zc=_%ftjd-_wp0!DpGP;ZvGC%Y1z~V^cSm&0cFdVO4+94VVBYj;7(Qwo7Oh#6hqXtS z-@0T8?Aa2@%A`$NdLScH21k2a?BBi>Ma|5V`SY)e%->C{{7yiV7_J%?9&rIJh@@S(UZ)BPMp8MH<0sgiD)j&WkGf5>geI?=M1>IHbU2q9nsviG3(@! zz~qMT&DgnbA1~c3Kc@IXUPUC(RM$Wy`-+%LGFv)2n7&{>8Z~HuE^R$==}H0?E?>?= zr6iP2k+5dfDwr{0JaqN+aroE~wmT-GKOGm5lIX#UJA4>c7M7SYaRMCd?b!VDk5y~2 zaN%NX-5ic;jt>0YB>Avw?>>ahUx2iaAMhkOh5cAUr%%Q8YY8Y(!U7NOKf>6FQ{dUA zHC8WMiUS7^!EZ3WW&Wxvd8}wQYsPE7viXWB0zj0=U$q(AL)E8tT{VO!fvL zOW{1VE#;(&qBSgjV}as^BFLl?80#Ct+^h&1)T@isS8uQ@ZaLxH+Z=>fxWFQ zA|fO4ChaZekOHW#4tueXMcum$@_3QM)XrjbZzg+GPA_tczFK-#*HCYtnIAb zmQ5TAPET`lRH6HlFa5|5VpXsgmdp#uG{<(xvT%6MZj`hv!J_AT_U*&PgamH7@VLB~ zveH*ebL4QTS{)(5L8vd;pXbf!sjDKkHzk|IJ^@lrggM+xs}|rn-AyrBy32>uw?aW%$+p{*AuQN z#TavPWY`sV2)@1gpkwEbIC$tF^SdXE8-sdIwK!_tfAkPrx5l7N+qQ_^yN^>I62gpF zw}CaVNw=D~%Uu4Hiw$*&1ZAyCFqp|pyrZu#l2c!E*OaU{{QCGR=U;whbXMHXe0AvG zV_q+83M1ebME1B+v~1cKJ=?d#(sdh}7ITnRt=Nj`ifA%qW@-WldwVo*(gbcznqu;t*@)e@m%oc9`>6V& zFm9*c5buOGSTuv@?d8c$orjMeW9#lcSg~Rio)dpWonFaqJWOMyPNQcVPZ;WG;Of-` z+`Ms(XBurvmj$UA5zB4=p+kbznp6Tavm)r=;em;xM}v;<;PK<|?a>>@j~s-hWied3 zav8A)590j!%eZ^vHkveVj2>OPqEVeXFfcIW*8aQq?{W3kHCUA>g>mC2V$XpC=$hJ02jJ?h+sg4YA!Sp8wx$#-7l)xu%T}Cf9F0HCrArUD=7`$39-11t(qq3W zcUFx}`RdTW574W_BM=ZQ_&qmkR3E*)ys$Jp0vR7ZBRM4ne=H8e!ao+{+@-6KsR+O1 z4YUeS3sIIdpu=WPMM`oCr!Ds$KW1((Nl%eZh(IPPq!pJZ+UG!xJ@>>37ztovY=j|x z{wy~6NvX_O#lZo!Tx#L|{RcR4 z>?FHbeU-_et*s4XLw&Sv(E|Sc`mwDAJwS@+C6njy0|GE;=y0~$p!-Eu$I%-$)r$M)Cz}SjPo@I(T8lrbxVh`vDIgK45#{@NHW}5y`@Es6e^^=o02d zv42}MD%sm3QO2=TAE5I@0Xew78#ZeeTxvSw z?3uIJxpyD-9X=w?!YQ0OrM$Wjq21S~Gg`VghmN)um&(>hL}7DO3_hg47i!gNS}0e> z8V+{$=-ZsM@ujK<>StMN27nHhT;np$YltO=8Y zOiWDKZliqJax4z7t*yniV3Oq(>O9~9iS4_0vMbl^8+YOE)(ivu`k_Mk@>sQY9m19@ z#miU3Wfn|=#Qrv0d4vS^!|0(QY)d_9W+<{UWjxh0Yx*P%?AuQmqv8ed*L4Q-KLiB= zTA2L!HLXfvfd^J^3`f9FvM7_Fu2VJi^lp!JQ89S+B8@$&Nyu>rZ4PtG6#33YHPUhs zmjS(RTNE5B*(=LkiZ_uF`}k=yF?Z=QF;XgO*#bv_AwWbUVf!pLEaZYXxp)wo5-Gb# z4IeTDoxHu!#H}@M-M`0w7cAg%=Ss+6r&iVKSR57x`--J`GyC#o8u|wY;t=_lP);tD zKucYd{kNOCHi28ix+rN?3iHAi;(S5^{+K_Pg~dO9_{f@kC(oUMM5>0GwQAzXo*nr1 zDV>$1UcP>d9El887R6D=xh4o_r2M*k)oN^rh`{^w43sWqjpg&_p-#=3oZt8I55VPw z>n!OYoFDxc9ls`kEDRmc2UEsR#?IKi=sR!#zGTX{Y8p78KaYx0Nm8{H|4&5Qzw;UY z89-BG#XooiM}?YIDx-UQPeg3niPUE=nRs5mUR@k#5AHv6ngXCL&CRiITQsUvvgb{l za*~+tS&kfIrc6cXl0SqfB$va{-X22+_~XizE4cIE0UjkMac7ZS00fsl;$5h2JOybj zI;5gzMezE~8>Vemu4sp~P zj{eM@{Hw3|&j6aL97IkcKv%Q3MK`ZD*t~r=o;`iR?PA*sHn{WfzPNM>#yE4!_BTP&Tv2^(=sB3CtWN;vEKYWCG z?yd0d{Ril3YM@-H(p(++n*D|KK{C?QVOhcwjp{c<3%6!`4atKrIpryqE?m!8*G{>lCKV=M4s4BvL#0Z2Ox1Zo%^^Tf=9Gg|ikuwOB@V)# zSl0Rw8Z*KVr5_{(+;>0_!ee5@v{K}hhygoy;Sdbl4RmzTuXiu>>d}oS&6|6)LHgG( zA_FitZ?Z040#n9~f_u{@C}L`c7q8!7#OQI@5gW^mBg%nY-QCfqSrfE&Zwd>uqUh)E zk4~L^;MU9))8{V0)LEfS%yex~AD*pS!K{c0EK6FmiIK5^K0bW>z^(afH?AXMOAL;m zh{refOV4dY(ErD+cexZ&4GHQxSHrRe3t(ho!pccYR<7X|C~YmBs@oxQV>ql!l*q&S z<7@ScYR(1Wt-w08;)TD0yQ=su!URo35TGeBv$3*bKu2udfwb3ekpAThYsq~h?F*Wp zlS{EXawD5VQcar3OHWdg@c2mzZ}@0D>gu(dY_h&@M+~PN3ScS{1_JcxiBoa`EtjK? zvl9baFdxbbXqhY%+!8gaR6*Ra!~C#mYiYCZb;h@E zqJy0vQK^XCi}d>=hw68j=*>gn(_PB(9FxYnu7!tqn5&A_rpFYQ=Y147y%o${5Q$8(6t(wkQ7B&x+>_`J7e^2WtG=%>p>ivoL{-*#< zoMr`mv{dn8@M+ryYd1wBJ^eFx1=$sqr?>@6;oT7%(5iVeVFSk2uQ^Qi=TZ?%gvpSU z{FEJ<=`0sImS$yg1LW)5t;z)M1bDKt>f<^bT$Dx5E0w9NwZoYykPnaN4QW>yh-DTGt=hZrqf!C;px z8e9;}sM_>1}P@nq$+tHP95Pr-BOV@2hAO zlx}=Cg7v#1H0RKia;VW}&I}z}x5Baw8+l4aN!L(B5~#6*YiqaWLN!Jab5sI^GF?#F zM5-=_1n7y=W-=*A&{~#ogg&x+CrFu7HBY8!PRBu1)W{v%3W*hk7RQB(foLaD+`K3P z{r%9=-HpX=)^3Wxxyx5sQIx*ZSVs>F=Y?{o^zGaCXz$Yl@s}@fr>ij)axQPvvLw~ zIf|K@pl!3JSRENv$k2`ydm=ZYRkLP!0j+X&iYK+e$w=OiOE@<_b@nXw#Kqz0(PJoS zQ5;9&;zUy-f#;!+DfpiOtsE?nKuw|sT7@Q#8;g3iT;S5!6=@$n3Jf|DBe%4~jf-bt zpsj@?$4;WTXFEWu$?^oC=tv;grIZVssYrtlV@$05mJv zv4!%W0Riys+8M?M20S7*Y03;-xqb~9G{w%=Z8@x2^2huzIM~_>WGHb({8jU&erK(>3fr#3GMrRXi^=o?psx#Q z4L^j6P)w75a-N1MUaS~OT3Dc(gB@HOH9{R17o7 z+rhniP|w+k4Tk7r`J?{dy^7=(zJts>t! z-(@CU4n;)#KDiTrqeufpA{AF2<#2D-45?3_A>r;FWd+huOBeUAU51&dF#MpV#A6*xX!Lf+5WCF z=-&nA-+iA_#(+NHSF`OlY>q+8;KTVP+V zoKn`~uL4?e(F#gcD2Jzg=Zn{`u`wbFTefY*y+;p`q0qbFwLBj$>%#!j8i!?BhYB`|Bsc#vNw(NUVzt&4U(-Er>P4K#3Z zLd1%t(9zUpZb?>_3}3!}#mg5jaPHzo965Rf=UAd4lQ*KY$)@y2TU#I2)}>Lgl0Ecw zHR0Z%0e0`*hv?ngc;sy6?tnad_7bn46Hfkb>Bs_i_+0Nj#8GR)t!c*HKClXmbToID+%QE7fTw z+;BO3^eE;pUW!ZCuCZMkj}r*%ac;ryr=S+wxtH8c>pW+mFSa_4OiwV?B- z7BZ52l>wRAnLO1@vSG|+Rspxt(@&*Ikf)u>DYbA^1eTut{BYp-apaIjoFaKGzyjjC z(-0MX$ST9cP!A{f??IccJ@DjF3Ubt_R3<^px>YDDX8W^Rs^VE(_ zxw32#(%7vf?%jU?iMkYXrcTFTKN3b4>L|?K`|0ZQzryiO^;e=g5f!cLisTAEopR5%@-VcK!q8)dDn z(YP#~oG-4DaQVp1x6+sKvW@y#Y74KfZftN=Mcy;l`nXA{t z@pTDo%9cmPiuO>G=Rij)Vd;YV5AMO=-w!wMCF8}57r1fpC|Y`SMB1ASJbZKwJGVx% zN+{JbGO{ueFgOI^TcX)J($UTyNA||D#ve!M{|Im6XORC70GcASO8H9_kOf8rMIlLz zm5gSN8;RjTg9?q%3P95smz!rh9{1u2ZT=WVm%PI9IEh$NNK-?MHxC z)IQH%xCr-l?eR$*ZWW#YVW}_lM~u*NX*R2se*E+q;y5m+9I=}>vW8y#>2nw`d;}Rq z!^o@%nm1~UHXd$Bd+`dL+O>bm~%@Bj-HA~v$mds z^+g^)i-aSwWo%Wv7@{|>L(S^dg;uyK1yyJqE02pxT$85F#LNW?bI;*tfM&d_K~n;( zShxV=r%uJwS7}0CFPAW1rCjM!>=W)EG7M6w1`JJ1(5z8ocz86&o0qTA*~uYy+}-wVh6BS0%Qg|t!ARA;L+&(2+OH|ZIt4(b%4qc*_W zsw7UupN0SM;k*hN85d!bdUrQh9#Zvb?}2s<=v%C~PgKwx`8P=9q|Y3LE*(0s-gQxP zQ!HM-9?RFR!^|n;aQhBfP&`Id^d>BvHx~yE9KpGSD~Q~v{cyo3y6?t3SUL&_WJ9L?ycY;6fDw=vfm-V_0CpfEE^i!JXvj zsk46q(DVj%6gM$O-1aSSbRcbu9|M}?yt?-DL)4D#DzXKIq#P<$4s8tyE*v|I4qdzB zZgQ#;&^tG;LrF^uoI8J+0ZkelCMITR-OLpY8rH?f_aEWYp$*z~5+byPMRD}&(H-kH zY{1jhXDCsu7`AQNgz8lt*z!3uI|n`egLs;K=-@%PcsUW*Zrs563+FLw`VAjyNq*h4 z7ZDYOUIPfw;&=Y&$u9`dQZ>w)Fq$VfIFBfBQz%S=|LF)VA?`vpHZ5O@P8~Xk8zM3I z(($o9aqb)=%^b{MwgMw3Oc3k7BEPbb$_(%Q8XH3E1{(a#a z5Xi^o?&=1g-o1qpF%1nCKKE|xrR354m-6Vs0sRZKd{rNpO;OS484$!(4zZ;0r_&8W zFDLH@{*3-SW_>(G=#Q`?+I@AIY{1wFZ)stVN$i}eC~`ngR|~F<>hrMiwZ!Y# z8XJqq^=pv%`5W%szmM^gC!$%?W<2VZl=2jNwvz$rX2k4>!J3sT*sEsA>Q#`*Bye%A zhMk)tP^5^lu>|C0yJ$3Pnwntb{swxkAOizNY5Zq9AVKSE{LIy4#tleg*`iCQQf%)ri~qo zl$58SfU`Rhk;)K@$CyZr47uG4{JX#K%I(rU{TX_g=YGrU% zkw6ghZ2|zfHf;@Gk5Mmtsfw8aO-GU}@dn!9)1-s7+nm%oGi3yP#AFOSE!p2LHfexOx8(zI;pPC_ZY) zAWRxL3UA+kK=jTXh>qTZ2al8R`u!))gWZ}m!lV(y;p5vI;cHgGv2tY=eE06s1y86d zqM?P9AUR3gh$ST_Az;WbT)K3b=M<>}NB=09 zO?-cZ8gk z1Aoj5MduFQ$~;lEsi0c6695fNojD8B=7tquzMe0wQ7PL=)pBrT_b&Jk3c{U7DO~R( zFYZ-gvtVDz4tMT9Mz2AGm9}qmSt^vYhNGhc%G+2YcJCpCuU-XDA0H&AzCxLDme?N| zh4SUf3DUcA;O)ovaCE7Ur?1mcx>QNrK7R(cZr(xD7OfC4$Pbf7j^K{zm?<+5wqOxg zR7iTvqeV-sTecYOJ9pnM+`fGu&tIqUN2|#t2wygz-KkDrxQw0y1M?`D5+|ihS!=kvH^r&r zXLz``ZKqB+d*vERm9oJ8Es?M-UqNWsLymVJKf?YY=k7Rl?lebx9UWbS&X^46Dpk<2TVJ@fYzpV9RS`UFI6h}(!ARc# z(cx=(;+&Ry1#?lc|M{JH^=|~UoHr%8DMumg@9&=4T*)n|R2`uc$8gHQu2te|RY$N? z^Q-)k_D2ChwV9Itb;>194y@T2fdNB?2u_8$J29~tDfpiVBT>ZiQ&dp|eG!3l%IX+G zgr-g5x|L|$xDmF+?uGwgm6E0)&4i*wia}jNj)ryXV)?@P@M!OiQk|rL*@VKr4V*P!9MbK-2ZimdUXH&=GX))r-mV#77|ttX=u?aB+4* zjjGjQRnih9g+LXB8#nLZ{*y;YdiE5lsW0#;od`)PzA4;+Q$zL2cBoLP3f_PCh`4=m zEG?#34yZLwB}m6A6|r=|eAwAkfV*dVoVl8SQdT8#VCyE>+T;TIQ$_|VIn}|_S1(~^ zVuS|?mvP|GL3n$5;^LJ=cy;cCVIe~h*sni7kaNQRz~osom5yGd;IwMVVsz`>ml~*8 zwrDZBbnl5<4T{$%dxk1is<8MtfmtzcqL^V+O%MtiwB@A~Ie4G(4J+5I#o}elk@|{= zJc3D3NMIoRd-s7=i4u69{s}2hpRsy>2@4D88|dQm=g)YP_6D!tq~YeB+cVtCokx%H zDLsQ%0MfjZNOD+*qkQQy7!=S4O&d1l5h^;buiw6jfWC@SR;84HCNR@KS(#a|t62w0 zPoF|vD#4Zb6L_2U8ZIuipdnS`$rR6yol()Q0_IMcf`>^dc=h%@I(6=XS8v}is7sY7 ziIWHRV#9__m^p7ABE#2Xb7VAPcJJm*Bq?4U-M<&6#zuJ(fnOD&3zRWX6as$bOyLg! z{nMwLCNl&;&zUp^L-MB_s$dkopbs89f|eb8g#94z3FXk!(M1{SQYc@p44j;t;O*58 zWvm3yG<0amYFk6H5<;w{yF>04xi^&3sK z3#y)ghD6FX&gHC2qjYI&_Ff^*2nnp4n3}S_-s`k9eERf>MIC7(yLi!}C|0x>YicB1 zzs_~zhIQ*fM^6XM+IVqfllG6BdpsVNsMl80*!qgSKw& zEWCd0`c3o-7>MBDLGbbFfb*9Uuy6kXEMB@4-?B21BT<7}lZLF+->qj~=o#o>>ZD2N z>o*9Gl9B-Qip7D!}jKuy!hgr0o0nWPX zLYhSr;B=5`YI2kPtGxOwvyJUm*$w^uJDT)F}^ zH8qTwI0Y9IZ^F8Cal~!e0y~@Xf}S?HhGhbd4I1Lk-MiwpQz#=!)a20809w1dBiL^s zPM$iAu;nXobZ;ywRVasD2Tox6%-Oh_c$MA3$V+|k?3t)rvld)jn`2Z+Fltnie<}+!w$br@9u{w$FBzTcRBP=BeMuEC7>k;6&ovgsvHX9zAB)PorGKa z4g~{RtdCF*Yf2@ljcd`QVg2vxE6U@OVCkB57(8qw%2-?B+=;{R>ga ze=eM=R8fMKbT;A+9l_8MBk?FH1-d%A>{Lq*Rg|*iE}KHJkA*ozj})Pk#(iJqC;-q0kDY{jen2a~Pq8T#Tu@syY{(=YBSV8c zBVEEWN)c5GFP|=mJ#-X)y?esnw<}t<@5Gz5h&3zFys0Zk&pcD++1ZHLvJJic2SQs* z3*~KWP@-f>80hIEE$ub#-M!0xGSuWz$bE1;mE=H2M+XiLRnX15Gwf{3JWDM3uc zMz}RR~gIsX9A3e2IEPt-3Qg#1f6v?_I!D-A3z05x?DES@nL0Yr0D+9~9_O5(%{ zne4cC@K)K4D;%`)v+mS*0huah)e3t5_Gma%7DUtYMjV=|1}aytiF-*Ytgv6cbSZfE z=!Fs%me{i`5-HD~p{|RI=+Yp(pN^RtIaO-a!o8%YLP{g2?jT@Q(h8OAY++ff7&J6B zA)<I-j(6ZxI_C%W`PfZ{KG%r7T$%zo)3F8BXorg9>HK;Z@oj^a~h_-G}${ z`*jQqv24)-Xv^jBA3PKxLjqC0bUE}L7>LiAU-mU5 zR)?Bgj%^WZ;nA{19)7rBh$94@iVoHB_*p8}EL#Fg^CIZjvkxlTl*8WbG4S&4goO*j zI8vp5`V0*XHQtQL?})vU%Md+gF=Slt1JgvI{Fwmz#qZB z-O#>U56H5=V!?t1=-RV4p1yd+d+sS?hGRHYJ)}~>Hu}$|l7Azb7653$)=e?4|8IV| z>hTJV6(T1oxEuvFS0qeQ-?n}&8Z~Tym#<$TDJhBbK}!n@*xA{$o`=9)D0tYKN|9h94$L|ixReq7w0$bqz#igs5uw8W*OSIYb$6e=i@h%EN?(?5LQQQMWY6_5wUVP z8oIVbTKan|o-+&g@88A7P0>h6e#SX)o!Ye!L<0byGca%Q5+vNcop=3F{d{rtp&XpF zHcX8SVPIf@uV23K^tDY{Yc!}|4{DIX#ko3yMvTXqD>pxmGFUuyI^tC{ zRS;4vfUv)P?_PL!?FFft1W9*pV$$RpSQD`sb!$6g?3iJ=eEtGzIyfc z?K<@^eBuPIU*`@oeLp1&0Fm#?Et87u4~ za#FdxfX=TgqPTow0Z&LzO@(sU5fhDp!9%cf?|!abw`=8w&1+Zl_?9YN?4J&p|9=22 zUU}-0#jIV;-XhA)S-$-GM-iGI3pv=GwUu`#y#GXGdOW5!etJ1tTLvOdT}>v*w0j){JTB)}bA%m4+@@j7c+Q z1KC;7HZ_Kcp$Sr-JV2+89k4WP9v(hUMu)Dxc=YTkwA7_oJa-Ojd$8%W3cu!WWEO?K zr2s(71+T?ltUgL0{4PSPE=l4+>1*p@>xNZuQ;E>REf&HiSDeK66=eUWASaOr$-|^% zoV$1d`}W7-MEp4>08zB2h(bR!o?p(Y1hz#*ppva^ZjDprW+*-{Gbkw{3mhVFg+@%H08_C%rfHf;<)XJp{*r;l9zD*Q)f#mHCH5%PEmHRV`Vz}BV= zTJ8!0H_*fJ*d5rm zeHV7^-HY=ljzM2nmn9pz^!3NCeS7%5MN5`oI?kLMaZiQgQG z-Jx9R6sy6%4rs*}{K}a^+KAA^O0NNmi4}$Lp&}FtDALo`Mf92#?8vH!U8*@@t`u&5 zCbaN5dB$@@SufhCq^D=F$M%`CXK~}sUH1B`Q>zyI`u2gbfngqJ)cndxitBad+BGz9 z-Impl2Kx8Igwdn0d-py}nl=q7sV}(8#!#e9EB7*fFfUn93Y728o9OBBTuxKB=15IV z!psR1F?{?KoVk+7fR2k6QVs^r4V{u7C8Hom5DaqJ~$eGiqGGxRV%Fd zV=)Z$b#ot}e=wIWFy#=YczWjIxHKusqnxHvhZOlfP* zDHZDqYs=-G&(0Ok&zF-bH;?RjsCYyK#ZHCAQ~vE~F3CS{9fhhwF}q?}6rCnLdUfrF zX=6s?dFnH4j*ekhtLHCY@kUe7vk+1MR>N1YN<`tByvMJ4Aw>Ep>q<+w$)csDg{fnQ zqiN%YsMoADUVlhOX=_WwMMt5cjR0uz+r)Bb!7(xS?17x@91Iyd9!poRW8umZdv~Em zRYz>!z8if848-b{OVHV~Ew}GO!~Vd;nX|ZQV{B@Mkl;WJ>Dvc7LcR5_G)M!4PV;3|`$n7J_; zHfo5*WV2Aq1?EM~P{i0+8I2VwNdA&eVUDx~ZTeIpP}l?pf%2P72Iu;Xar53?ZXz_S zQx^-v=E1t8C3G}3d4_ScyI}Dd@T*01g+juyDN_=i@ym0!$1&+eD6)R%(qJ^kc-H}VEGFc85 zuUdBT3Vud)vBmj!wDuvM$GZpec&*Lju?Z~*RPoRPc&FLIc#x+j{XkN)ZP4!VVLhK zaSS1s-6_*CZ!t}gXJPxs^=RI>F=mF&Ldfvp*t>5(5A=qwTLq66?jXaZDKqC_W>^?x z5;=-nSfHP8UyK^uk2|;&Y>4FKP^&gl)6$@=rH4G6)TmY+&d$!vTx;RlglUm~8PG(y=cu{khnVLXPUmseU8vMEps*b$- zfafn#apTr4Y}v5`mlLibTeXYCXe>NJ|5-qjLFedcGZDJz56SFFH3h7D@hg`<5X ze!%(<48+67kFbR#9*P%7+MBm9P?=0IChlfUcK+4E@M ztry!kSFTtVS5BQ^>4e+``A3zX!ji|rf1j7&{|ni6oN`1)q4z*V4*j#TR$(VWV&yWt zNqPiBgYQ!g&U0h7!MA^aQvXAmorAYelNdybP@-tgP!r}v{3+he7cngYb+SyB%kkmE z2i&}Q6EU%SxztDU1^*S=(`L=XlgCf+=FMAVOKHl6D5m64 zkPTx!1C+3|#N$WzacJLeHt3||ojh|crq7*^9GMKI%9TOjz=0Up!-q*(G23^c=fGel zLiO+69ZN$)6>L?$6o2OUeg^CRjB?V($SCw7Io;g#C->O%Hx~*zEAchzayj0nJYsHf z{tLtn90Igo09!3^RLqv)?bGD%04-c$pqHONHgDSr9UVQMHKfn@oSx1`^m2uzmLi4t z9--oXAb-_D1iE<4ObQZ0X6`4D62G<%zI^?{a%5k!Xrrj0tkJVatAPX_E!v=!yDR$@ zw(QUz51&32Wem2!zQW%FG?fJDh=}}k?dDCKK6e(o;`Zax)kI`wQMN8Lg|sv@VO6v! z%*~7txoH!uEQ%rJ`Ac|q^x^kO)YVa|USrG{Hv;u*IAGl58JM|nDd*Lz|5yN@cAjEA zM-Y?ehmR+L3VPaq24%%6m;2t|8lg9Cjzk~wSW(t!RhA#+2CI`ynR*>py}dD(LZPi)@_c=S4I=Lo!?XR@?CY6j$a-% zSBlUo7hW#snlcT#(#RBJ8xlC!+2QWpJ7`?H9uA%)r!BEL!}Ev|?luPa1;Ej+9H#&- zO&a6Q<0lO01KVQ$R)i)nE69h`0OCz@4z<~GaQD$8%wMzwTet7V$1fQ?hq-Ra5)26N z$B<#c7(FzYkNjf7bu@B!$G6N(XzLiFXTQFfJ$e{A`gFnm6K7avVOQivINI59OHus8Udr5i2t)uvb(` zTB%wM&JDe}5H>hN@T!?o+Tk^Jl_CXAbiW({h> zx=d*_Y}y=&ckZE-bt&xMN`Mx~Nq?n^pz5}pyISU6etO`>PM(U{i(4C)g};h!^V*0A_zxb=7oX}4L`}@*0)YUGJds;j*-)uX=V?aJMoQ@M zsY&I~*3#rrCrk69Fg7(s{P_#Q{2no$B@($~9d7reQ1V5qH&&)>fCWCuIRLW)VFM&N03609vOF?RNB9&IABlZA;PQeVDDa_V!8 z8953qn$%-M&PL7MkZ}7h`wcRnMf&Lf3}}^dCV`Fyf~PH5!hDylo5Jxe{R^VEZNaS@ z*KscXB#aFV@ch*)cy;QEi`NsOsi}>Yt{&KTa2I<-8XFm7OZYl8tzSne+xAaL^8QZ| zy1*Us-$ZsUpocMjdv@xGu3qhN=kY^4NlM0zTX%5c>^XeP`o_FCo@5r6WlkiNDT&}A z#ebtbP_T9tAAc2pApVuOd=qJX$wJtaEyGK7(W2%&6~c?Y9Pl4H46DL7{v<-HrWSwg zBCy1bJO{;0P4MR32V{wdMu6V6Ihb8 zrS!1Sz5Tm6G`~+ZQ~h0KI|lTo2>1mKM%08B{1&4qvn77&l`EGCrka z=%4{`a;lERYu9o6)@@u$OvIDt&pF>E0zEmXGWkaV+T8Gzw@ITChssQ|11?Dg972zqABzY_0goI2QFW~0V|#< z+zR{h<)K=8{;O4l{8QA5lwkVYFif63pUZ}n7Oh;gfcYkEO$h>@&$~<0+V#QFWR!vr!s#&9&QaJsug@nRi{o7jKNRT?ik>JpqkdKli_df_e!wh*A@ zQXJeK4J*syIDF&;1`Zp+3jPk2>=6{u2h*m8Leta;LkA9orHLULG-?RfR&7)O9RquX z`lw=&`iqT=g3?O5RI|etVEl}^LJeIi#s9T;C16#SY5P7PiwhWnfFOvtkw>vqTt+S2 znzB+v%|vm_eJ$6lX3{KcX1eD8+pflGCVwq6mBuBP0EKd4lT|I1O<6sMeLI|U1kU-d z=lQ-54tOv&!9nQqvgq61_kG^yeU|&VpQq(d;_&{j(bvTV(`L?ug{3(T9ykCi%g)Fz zEP~Igeh80K{&Qc!dvEPPuU-xUaH)~sYHVHGRG|MY z+R#GLYZVm+GBS;iA{MktW(#7FdsP+p>9)1AgN1o#q-AF@=61>4*_bzXE}pQl;TpE^ zs93Du_9iN-w6N~h1r^!~Xzo#JT5K>cmQ?BKePV-po*1@UM3aSu-Ov$ix_MD+(rXE{ z3Bu0>VUGV&B&DbGt|GVaY`}MLbMA$oFGXPG#?4$EGH5`5ESNI`2M-27X59s=7B0lN zQ6n(Gy+01u`OgzL=olarH!3QAsxc5ih=1PHFo!C6 zHJW&;7;eHg73i<_e}grzZ$szKme}{jCz$s9RGdB&$eulwF5Ok;ATu+IE50kMbnI9V z@0+q9A4-K1g@pysOY~ao(9qHoFD)J4ddU0tB2KGnFx9bDr-@IDYahN-8v1?dOk|e5S#3kQ~qX%tS=o)p`Y5pk8R2{aBTNsYuCd>X97?8Kx}&b zbqx0$3VS;np=&9laAYVcDMn#_0X*b#96fd%MfnBj?d*bHPEMezk*LTBgoTG8i^25N zZc^Z&6VfVz2W@6%#;7+c#UhQd)Xxuo^Ik>2zHSU?KX@nr+ji~Z`)sVOpi-$hy)6-O zaIX{2rb)jOI5RlfQeV8>sF5dp7c~enHPxZAihKpZ%p&Z>nZpMdSbyqFAeOG*2$_i~ zCyU(sxFSC<5BVj9*tTXZMvobZDbGy8)LF9-5gjiG^wGl@JWyotZvkz`mY6}zpJY1d zTnJ_@Tne>DgS9J{W8&zM@R{*4tJm;|D9m597`ylEhW~7$T?0;>3dEvSYf)BK%ILvY z=FG-tpMSyq&3&Gqif_OEC*xNPf10%k+bYUIr~Q@aX!!UoKyF@}GAvkjvcMT-e$6#IT`*k(r*sS|TX)XT-)OAe)>-l?r+J zMaU^C6dL+SX;y|yRd{Z?v~Anj0}g3tu2OoK8-Egx8qcBFal5gh=K0zP-`{JvUKoB0B35+*C{M2;xX;q zx(V-W-*z9yr9}imbIaU zsR_D2Va3I#)Buva;s;ZDOltMq1YLy1pUXE~fazu|FJ>cf*ioD!n9RBe*4{PVvEpY4WhU?dVU1DT_r<_Kl$I4^)YD!V|H3rOR8x3VD3WcdiQicd%E?$nryk*NcOei1M zcOFpy01M|yL_t(Ah#lFIk`ib%T9lQmg#IIJsz?Gam?&1}rU(xSgwMQ%NTy!j<+nv8_y|07nso4ba2ZmT70nDeT|Z9sT>c!_CEo zQF)xKBgP=D7U`K;%%Y!@o5w_qq-BVyGbuHhkJg&RqaG$zR8XsfxrI3#?ChCzokEEE zs!Htn^IMoXeFmy@I^4~^i&McN`1BuN@|X3rvE|B{lF|}>oVg76Ip{R}m#;#SD9{v} z{bB!C9OI3MNr2yy6#}42CWDQQ4aSZggN@6VBJlJn%$zeD|M==(%xFqZ>jL`k&;AD% z=H?Gops5w!tObjq(x@?@Zy(I{^?~=e@fa*0jGnf(T=`8z?VI2J6HW&Igy3VxnK!yr zt-^+FZ({%V|KTO`9^=In2W-wX!``o(2zn$0T5ywUObl|q>K>aUM9fUDqmugyq@<_e zLRc6=FJ3}eSQv71asj<5mm_ghLga@dqy`%lR1!u1P{&r89-f|ZOnTOv7sG4h2v~OM zj9g_dq9P(O;h70gD0ATGh=TKOhcSRr}=JY!J`29hQA3u)Gpwp)V@wZPt!Dz3ikd&H+bY%f&(dhg3efBZj zU7V4fSBQCwma{;2?b;RI6DJ}gGaVjI4*2l>J^1>&{oEK6dVv!6?0@L^p3tJlcU=ul z3Lx~Ci}3Ydf--eEOu76^&;7@r=w^vmUzvktOJ9S>z1Jw3$z{|{pl@i-LS3(nASvWblnJ!tV+Tz^3t>(`)FNJmKwF(8rB^*{%C>5N%;pbOt91&wcrRvaOkeeIE zjTsAfH#aytJ7NF9!?+L@F3=m8Pzs-9x)V+w+6T`kJrEw7fVqp83Y$}>LoY{1j2hvI zr-ltf=+D0(JUW`q8#6Nttbc7eKHT*#Ogq)s@y$iC88bKNnPjT%cy~8q#loVK3}K8&kN%-IfI9i5qM=7~S_fyB%;<6GHmzE(bD;qH}(YPELiz_iP$jQwCs_9+@ z!DB(xlQ!3J%#_Nx2$JgI=8j1dz2W6Gl6#?4-m5@fULN8T5^ysm6=f0>fYqyknBE$U^6xf}{-2M3%zAHoEQl0Z{x znCNO5r@>JSIuZ0(=rZ8c5*3yQ-1qoRyK1c|qNzW6~+H9`ezRlV(GAas*iHVHYEi4s;pGe6ClSMqOD8fR> zCtVeu=x&7(!-r$^$dT|GIUKIe&P;cel$?w^X=yBMz3d%fWo?awYgZ9>H34bqnJ6wQ zMFIN+MV!2mv6n9hA5j-bi@$lzD!4fIRi2yTT!?;J7AID zT&!KWlEa(?KGn5?K=Yx<@K>qd43L?fg%f8^M)}#V!h&HJ2*kf3RRzs1S!>RV{ zY$blXnTRVf(TGh*fP(CDevc645cZBB>@pKQH?wrK>&d(o*-;L3=7AG4eQ}Me*r=+ zhV#iW`^6V9Y2pNE)LKqL&^zQ$4&uM7v-e_Rtf}+b(EEe{=lvl{njh*Jla`T=q?BYt zMaLoVTqqK*UWJxU6`sdVFg5Fh4|Z(Dmi6ld{DwGyrfBE;*0-&r91Wes#$H#Sup0`r z;ZY|kV^-|EVlv#TtU_W^5`xbKBP8S^;(on`((*F?JrS-8N=F3vGhG2K8pX?X=w{gk z&y4*8rat=&yuH2IW;U}hXXc|Dzx~E3_X`)p;Og$iZPKi|S>cBt0+5=NjL$#$l)0>5 zU9=cFn4@!7a~$~M3;4b~%>Y3t+Unv-B;<5zS9dpd&Ki1seF81@`zE9$)jm=_fe6); zlT$#oqXEZ`L77{?C(^;M_Tt5^ON;K2ZNo>w_wS=2(b3>0%e6k@x zT(VMXuH=iT8&qOSGLjOLn2A3zIT?v5sYtzj2W2WX^dnY@ z^mE6cf&DPB{{YzA+Cx>QLSA7WJFFg04np6)eewO_0KEU#zd)H^z$b&;!ySRgPr#w4 zUClJyXJ!fEN+XK1Ia62fy*00w{!J>l5U7i*^99m;fWo6{F50;M+YLr4C*l2uRiv(%QYf@7{%Vq$S7FbJWcAxOEM z#zZheG=&=0*C0{J;Ut(W;kP@RS)iAr1ICUU%O*#1auP0HzKnw6GSR`(GaUBR4@WR* z{4-*__Ws3hiKDt{VpN0kF#LwPB~f*s&DV0ENtj?`-31!+Jw{5f+J?cuF(2Jp*BTzD z^$|OgalvV715G5LJ7jDR6WeI~)da-G$Kl3}B&26&B3r3|GB+Put&oMRPVKW+m7GuE z?SdhrhfVjccxU@otY5hr#GD{hQ>iqw@n!NgC zuXV&5p~;sK(S0Syzzd2BIZ;DxjU%J4ASN~*X?L>N4wu@|u^lM}zJ|#?u=Aa_F~!@P z3w?!6ApG?x3vwf;wpo`O#=mO&Lv7S!rCFnCg_|Y8;rMS8e`-0QBL6f!mrNFgLW%Im zNJPiSbI6Zy90X;ZJb5z4jv5WKPNrOzWc0{x;`g+t+v*i)y|{9%jkaqqll!3XVeK$s zjj6&$1_Szq4z8?u4PwX~_ZF$6rMP@!l1=SpZXYxbqg*0v!F6cpR$KpCCHGRW#fXz% z{i}!E$kLs}^!5 zMi)x>r36EL5tf$yg7*2e4wIvOuIpntDiPq{5r=*(SHB$&x3nqz`w^Z2j%?P!#kXloibr^^IzH_YpMeKt z3Txvkj?a4>W`Mz5LgmtZ;3R4M^_d*i{2BG6VyoHTs~`06swXJ< zz*Ts{d1J72^=-w+VRip|$Jh{zN{xKg^uZCVjr&3CoLG5~K=UnPMRt9BX_CO#$g@}g z`jFEqgVPoFY5Y5pV>shxNPx%vq?ljR5(walWR!RVHAg-Y301kZEiE0nwptekeZrySz=*dqC%01B+!bqBsHXh ztSmF>Lxd2R6?q|*K2-=^D7uN}70sz-d9O5dVW6p*`){#-kxc#6c|X19b{ zCs^XPm{tD%3>gd@*dLEv?mPo{Rar%GSvgxHH)C&aPjziQN`;)aZEb`E1>x-E$k(A^ zJls79@b|;k)`ra+H~axuO3lj2MJkn2)6mG&)D%gH2~<3O!jNH@^drd>mX@(6Hij3k zE5-N2i3x;gP{nGMT7^gH%fB+8{Ce!bOWH$h(TxS zr9~pSsjxLrHR%P-(#S2upX%Lon(WO&#> zPhUS*axb7%D6D(X+@dEjC6zlj@@aqHL6mM22UAk{G%$ct?#$)v^NfxCptin|6@JUv z8y7Pd5Pv8cjans+Z%usz-FKeX{jL_QtPAvV);Gp<-SB;vSbD4O$yYr^Do(B&faWd@~YPHIGlxOc-Z+}0XT|KM| r4M8Dyo_8H3g2`mIEX@CyWfXn`7il(u*wgQJ00000NkvXXu0mjfGRSI+ literal 0 HcmV?d00001 diff --git a/public/favicon/favicon-32x32.png b/public/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..d477a831f217e4e71605e66a5995728044b19c85 GIT binary patch literal 2222 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 literal 0 HcmV?d00001 diff --git a/public/favicon/site.webmanifest b/public/favicon/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/favicon/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/public/js/ethers.min.js b/public/js/ethers.min.js new file mode 100644 index 0000000..531bd56 --- /dev/null +++ b/public/js/ethers.min.js @@ -0,0 +1 @@ +const __$G=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};const version="6.7.0";function checkType(value,type,name){const types=type.split("|").map(t=>t.trim());for(let i=0;iPromise.resolve(value[k])));return results.reduce((accum,v,index)=>{accum[keys[index]]=v;return accum},{})}function defineProperties(target,values,types){for(let key in values){let value=values[key];const type=types?types[key]:null;if(type){checkType(value,type,key)}Object.defineProperty(target,key,{enumerable:true,value:value,writable:false})}}function stringify$1(value){if(value==null){return"null"}if(Array.isArray(value)){return"[ "+value.map(stringify$1).join(", ")+" ]"}if(value instanceof Uint8Array){const HEX="0123456789abcdef";let result="0x";for(let i=0;i>4];result+=HEX[value[i]&15]}return result}if(typeof value==="object"&&typeof value.toJSON==="function"){return stringify$1(value.toJSON())}switch(typeof value){case"boolean":case"symbol":return value.toString();case"bigint":return BigInt(value).toString();case"number":return value.toString();case"string":return JSON.stringify(value);case"object":{const keys=Object.keys(value);keys.sort();return"{ "+keys.map(k=>`${stringify$1(k)}: ${stringify$1(value[k])}`).join(", ")+" }"}}return`[ COULD NOT SERIALIZE ]`}function isError(error,code){return error&&error.code===code}function isCallException(error){return isError(error,"CALL_EXCEPTION")}function makeError(message,code,info){{const details=[];if(info){if("message"in info||"code"in info||"name"in info){throw new Error(`value will overwrite populated values: ${stringify$1(info)}`)}for(const key in info){const value=info[key];details.push(key+"="+stringify$1(value))}}details.push(`code=${code}`);details.push(`version=${version}`);if(details.length){message+=" ("+details.join(", ")+")"}}let error;switch(code){case"INVALID_ARGUMENT":error=new TypeError(message);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":error=new RangeError(message);break;default:error=new Error(message)}defineProperties(error,{code:code});if(info){Object.assign(error,info)}return error}function assert$1(check,message,code,info){if(!check){throw makeError(message,code,info)}}function assertArgument(check,message,name,value){assert$1(check,message,"INVALID_ARGUMENT",{argument:name,value:value})}function assertArgumentCount(count,expectedCount,message){if(message==null){message=""}if(message){message=": "+message}assert$1(count>=expectedCount,"missing arguemnt"+message,"MISSING_ARGUMENT",{count:count,expectedCount:expectedCount});assert$1(count<=expectedCount,"too many arguemnts"+message,"UNEXPECTED_ARGUMENT",{count:count,expectedCount:expectedCount})}const _normalizeForms=["NFD","NFC","NFKD","NFKC"].reduce((accum,form)=>{try{if("test".normalize(form)!=="test"){throw new Error("bad")}if(form==="NFD"){const check=String.fromCharCode(233).normalize("NFD");const expected=String.fromCharCode(101,769);if(check!==expected){throw new Error("broken")}}accum.push(form)}catch(error){}return accum},[]);function assertNormalize(form){assert$1(_normalizeForms.indexOf(form)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:form}})}function assertPrivate(givenGuard,guard,className){if(className==null){className=""}if(givenGuard!==guard){let method=className,operation="new";if(className){method+=".";operation+=" "+className}assert$1(false,`private constructor; use ${method}from* methods`,"UNSUPPORTED_OPERATION",{operation:operation})}}function _getBytes(value,name,copy){if(value instanceof Uint8Array){if(copy){return new Uint8Array(value)}return value}if(typeof value==="string"&&value.match(/^0x([0-9a-f][0-9a-f])*$/i)){const result=new Uint8Array((value.length-2)/2);let offset=2;for(let i=0;i>4]+HexCharacters[v&15]}return result}function concat(datas){return"0x"+datas.map(d=>hexlify(d).substring(2)).join("")}function dataLength(data){if(isHexString(data,true)){return(data.length-2)/2}return getBytes(data).length}function dataSlice(data,start,end){const bytes=getBytes(data);if(end!=null&&end>bytes.length){assert$1(false,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:bytes,length:bytes.length,offset:end})}return hexlify(bytes.slice(start==null?0:start,end==null?bytes.length:end))}function stripZerosLeft(data){let bytes=hexlify(data).substring(2);while(bytes.startsWith("00")){bytes=bytes.substring(2)}return"0x"+bytes}function zeroPad(data,length,left){const bytes=getBytes(data);assert$1(length>=bytes.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(bytes),length:length,offset:length+1});const result=new Uint8Array(length);result.fill(0);if(left){result.set(bytes,length-bytes.length)}else{result.set(bytes,0)}return hexlify(result)}function zeroPadValue(data,length){return zeroPad(data,length,true)}function zeroPadBytes(data,length){return zeroPad(data,length,false)}const BN_0$a=BigInt(0);const BN_1$5=BigInt(1);const maxValue=9007199254740991;function fromTwos(_value,_width){const value=getUint(_value,"value");const width=BigInt(getNumber(_width,"width"));assert$1(value>>width===BN_0$a,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:_value});if(value>>width-BN_1$5){const mask=(BN_1$5<=-maxValue&&value<=maxValue,"overflow",name||"value",value);return BigInt(value);case"string":try{if(value===""){throw new Error("empty string")}if(value[0]==="-"&&value[1]!=="-"){return-BigInt(value.substring(1))}return BigInt(value)}catch(e){assertArgument(false,`invalid BigNumberish string: ${e.message}`,name||"value",value)}}assertArgument(false,"invalid BigNumberish value",name||"value",value)}function getUint(value,name){const result=getBigInt(value,name);assert$1(result>=BN_0$a,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:value});return result}const Nibbles$1="0123456789abcdef";function toBigInt(value){if(value instanceof Uint8Array){let result="0x0";for(const v of value){result+=Nibbles$1[v>>4];result+=Nibbles$1[v&15]}return BigInt(result)}return getBigInt(value)}function getNumber(value,name){switch(typeof value){case"bigint":assertArgument(value>=-maxValue&&value<=maxValue,"overflow",name||"value",value);return Number(value);case"number":assertArgument(Number.isInteger(value),"underflow",name||"value",value);assertArgument(value>=-maxValue&&value<=maxValue,"overflow",name||"value",value);return value;case"string":try{if(value===""){throw new Error("empty string")}return getNumber(BigInt(value),name)}catch(e){assertArgument(false,`invalid numeric string: ${e.message}`,name||"value",value)}}assertArgument(false,"invalid numeric value",name||"value",value)}function toNumber(value){return getNumber(toBigInt(value))}function toBeHex(_value,_width){const value=getUint(_value,"value");let result=value.toString(16);if(_width==null){if(result.length%2){result="0"+result}}else{const width=getNumber(_width,"width");assert$1(width*2>=result.length,`value exceeds width (${width} bits)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:_value});while(result.length>6!==2){break}i++}return i}if(reason==="OVERRUN"){return bytes.length-offset-1}return 0}function replaceFunc(reason,offset,bytes,output,badCodepoint){if(reason==="OVERLONG"){assertArgument(typeof badCodepoint==="number","invalid bad code point for replacement","badCodepoint",badCodepoint);output.push(badCodepoint);return 0}output.push(65533);return ignoreFunc(reason,offset,bytes)}const Utf8ErrorFuncs=Object.freeze({error:errorFunc,ignore:ignoreFunc,replace:replaceFunc});function getUtf8CodePoints(_bytes,onError){if(onError==null){onError=Utf8ErrorFuncs.error}const bytes=getBytes(_bytes,"bytes");const result=[];let i=0;while(i>7===0){result.push(c);continue}let extraLength=null;let overlongMask=null;if((c&224)===192){extraLength=1;overlongMask=127}else if((c&240)===224){extraLength=2;overlongMask=2047}else if((c&248)===240){extraLength=3;overlongMask=65535}else{if((c&192)===128){i+=onError("UNEXPECTED_CONTINUE",i-1,bytes,result)}else{i+=onError("BAD_PREFIX",i-1,bytes,result)}continue}if(i-1+extraLength>=bytes.length){i+=onError("OVERRUN",i-1,bytes,result);continue}let res=c&(1<<8-extraLength-1)-1;for(let j=0;j1114111){i+=onError("OUT_OF_RANGE",i-1-extraLength,bytes,result,res);continue}if(res>=55296&&res<=57343){i+=onError("UTF16_SURROGATE",i-1-extraLength,bytes,result,res);continue}if(res<=overlongMask){i+=onError("OVERLONG",i-1-extraLength,bytes,result,res);continue}result.push(res)}return result}function toUtf8Bytes(str,form){if(form!=null){assertNormalize(form);str=str.normalize(form)}let result=[];for(let i=0;i>6|192);result.push(c&63|128)}else if((c&64512)==55296){i++;const c2=str.charCodeAt(i);assertArgument(i>18|240);result.push(pair>>12&63|128);result.push(pair>>6&63|128);result.push(pair&63|128)}else{result.push(c>>12|224);result.push(c>>6&63|128);result.push(c&63|128)}}return new Uint8Array(result)}function _toUtf8String(codePoints){return codePoints.map(codePoint=>{if(codePoint<=65535){return String.fromCharCode(codePoint)}codePoint-=65536;return String.fromCharCode((codePoint>>10&1023)+55296,(codePoint&1023)+56320)}).join("")}function toUtf8String(bytes,onError){return _toUtf8String(getUtf8CodePoints(bytes,onError))}function toUtf8CodePoints(str,form){return getUtf8CodePoints(toUtf8Bytes(str,form))}async function getUrl(req,_signal){const protocol=req.url.split(":")[0].toLowerCase();assert$1(protocol==="http"||protocol==="https",`unsupported protocol ${protocol}`,"UNSUPPORTED_OPERATION",{info:{protocol:protocol},operation:"request"});assert$1(protocol==="https"||!req.credentials||req.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let signal=undefined;if(_signal){const controller=new AbortController;signal=controller.signal;_signal.addListener(()=>{controller.abort()})}const init={method:req.method,headers:new Headers(Array.from(req)),body:req.body||undefined,signal:signal};const resp=await fetch(req.url,init);const headers={};resp.headers.forEach((value,key)=>{headers[key.toLowerCase()]=value});const respBody=await resp.arrayBuffer();const body=respBody==null?null:new Uint8Array(respBody);return{statusCode:resp.status,statusMessage:resp.statusText,headers:headers,body:body}}const MAX_ATTEMPTS=12;const SLOT_INTERVAL=250;let getUrlFunc=getUrl;const reData=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i");const reIpfs=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let locked$5=false;async function dataGatewayFunc(url,signal){try{const match=url.match(reData);if(!match){throw new Error("invalid data")}return new FetchResponse(200,"OK",{"content-type":match[1]||"text/plain"},match[2]?decodeBase64(match[3]):unpercent(match[3]))}catch(error){return new FetchResponse(599,"BAD REQUEST (invalid data: URI)",{},null,new FetchRequest(url))}}function getIpfsGatewayFunc(baseUrl){async function gatewayIpfs(url,signal){try{const match=url.match(reIpfs);if(!match){throw new Error("invalid link")}return new FetchRequest(`${baseUrl}${match[2]}`)}catch(error){return new FetchResponse(599,"BAD REQUEST (invalid IPFS URI)",{},null,new FetchRequest(url))}}return gatewayIpfs}const Gateways={data:dataGatewayFunc,ipfs:getIpfsGatewayFunc("https://gateway.ipfs.io/ipfs/")};const fetchSignals=new WeakMap;class FetchCancelSignal{#listeners;#cancelled;constructor(request){this.#listeners=[];this.#cancelled=false;fetchSignals.set(request,()=>{if(this.#cancelled){return}this.#cancelled=true;for(const listener of this.#listeners){setTimeout(()=>{listener()},0)}this.#listeners=[]})}addListener(listener){assert$1(!this.#cancelled,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"});this.#listeners.push(listener)}get cancelled(){return this.#cancelled}checkSignal(){assert$1(!this.cancelled,"cancelled","CANCELLED",{})}}function checkSignal(signal){if(signal==null){throw new Error("missing signal; should not happen")}signal.checkSignal();return signal}class FetchRequest{#allowInsecure;#gzip;#headers;#method;#timeout;#url;#body;#bodyType;#creds;#preflight;#process;#retry;#signal;#throttle;get url(){return this.#url}set url(url){this.#url=String(url)}get body(){if(this.#body==null){return null}return new Uint8Array(this.#body)}set body(body){if(body==null){this.#body=undefined;this.#bodyType=undefined}else if(typeof body==="string"){this.#body=toUtf8Bytes(body);this.#bodyType="text/plain"}else if(body instanceof Uint8Array){this.#body=body;this.#bodyType="application/octet-stream"}else if(typeof body==="object"){this.#body=toUtf8Bytes(JSON.stringify(body));this.#bodyType="application/json"}else{throw new Error("invalid body")}}hasBody(){return this.#body!=null}get method(){if(this.#method){return this.#method}if(this.hasBody()){return"POST"}return"GET"}set method(method){if(method==null){method=""}this.#method=String(method).toUpperCase()}get headers(){const headers=Object.assign({},this.#headers);if(this.#creds){headers["authorization"]=`Basic ${encodeBase64(toUtf8Bytes(this.#creds))}`}if(this.allowGzip){headers["accept-encoding"]="gzip"}if(headers["content-type"]==null&&this.#bodyType){headers["content-type"]=this.#bodyType}if(this.body){headers["content-length"]=String(this.body.length)}return headers}getHeader(key){return this.headers[key.toLowerCase()]}setHeader(key,value){this.#headers[String(key).toLowerCase()]=String(value)}clearHeaders(){this.#headers={}}[Symbol.iterator](){const headers=this.headers;const keys=Object.keys(headers);let index=0;return{next:()=>{if(index=0,"timeout must be non-zero","timeout",timeout);this.#timeout=timeout}get preflightFunc(){return this.#preflight||null}set preflightFunc(preflight){this.#preflight=preflight}get processFunc(){return this.#process||null}set processFunc(process){this.#process=process}get retryFunc(){return this.#retry||null}set retryFunc(retry){this.#retry=retry}constructor(url){this.#url=String(url);this.#allowInsecure=false;this.#gzip=true;this.#headers={};this.#method="";this.#timeout=3e5;this.#throttle={slotInterval:SLOT_INTERVAL,maxAttempts:MAX_ATTEMPTS}}toString(){return``}setThrottleParams(params){if(params.slotInterval!=null){this.#throttle.slotInterval=params.slotInterval}if(params.maxAttempts!=null){this.#throttle.maxAttempts=params.maxAttempts}}async#send(attempt,expires,delay,_request,_response){if(attempt>=this.#throttle.maxAttempts){return _response.makeServerError("exceeded maximum retry limit")}assert$1(getTime$2()<=expires,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:_request});if(delay>0){await wait(delay)}let req=this.clone();const scheme=(req.url.split(":")[0]||"").toLowerCase();if(scheme in Gateways){const result=await Gateways[scheme](req.url,checkSignal(_request.#signal));if(result instanceof FetchResponse){let response=result;if(this.processFunc){checkSignal(_request.#signal);try{response=await this.processFunc(req,response)}catch(error){if(error.throttle==null||typeof error.stall!=="number"){response.makeServerError("error in post-processing function",error).assertOk()}}}return response}req=result}if(this.preflightFunc){req=await this.preflightFunc(req)}const resp=await getUrlFunc(req,checkSignal(_request.#signal));let response=new FetchResponse(resp.statusCode,resp.statusMessage,resp.headers,resp.body,_request);if(response.statusCode===301||response.statusCode===302){try{const location=response.headers.location||"";return req.redirect(location).#send(attempt+1,expires,0,_request,response)}catch(error){}return response}else if(response.statusCode===429){if(this.retryFunc==null||await this.retryFunc(req,response,attempt)){const retryAfter=response.headers["retry-after"];let delay=this.#throttle.slotInterval*Math.trunc(Math.random()*Math.pow(2,attempt));if(typeof retryAfter==="string"&&retryAfter.match(/^[1-9][0-9]*$/)){delay=parseInt(retryAfter)}return req.clone().#send(attempt+1,expires,delay,_request,response)}}if(this.processFunc){checkSignal(_request.#signal);try{response=await this.processFunc(req,response)}catch(error){if(error.throttle==null||typeof error.stall!=="number"){response.makeServerError("error in post-processing function",error).assertOk()}let delay=this.#throttle.slotInterval*Math.trunc(Math.random()*Math.pow(2,attempt));if(error.stall>=0){delay=error.stall}return req.clone().#send(attempt+1,expires,delay,_request,response)}}return response}send(){assert$1(this.#signal==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"});this.#signal=new FetchCancelSignal(this);return this.#send(0,getTime$2()+this.timeout,0,this,new FetchResponse(0,"",{},null,this))}cancel(){assert$1(this.#signal!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const signal=fetchSignals.get(this);if(!signal){throw new Error("missing signal; should not happen")}signal()}redirect(location){const current=this.url.split(":")[0].toLowerCase();const target=location.split(":")[0].toLowerCase();assert$1(this.method==="GET"&&(current!=="https"||target!=="http")&&location.match(/^https?:/),`unsupported redirect`,"UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(location)})`});const req=new FetchRequest(location);req.method="GET";req.allowGzip=this.allowGzip;req.timeout=this.timeout;req.#headers=Object.assign({},this.#headers);if(this.#body){req.#body=new Uint8Array(this.#body)}req.#bodyType=this.#bodyType;return req}clone(){const clone=new FetchRequest(this.url);clone.#method=this.#method;if(this.#body){clone.#body=this.#body}clone.#bodyType=this.#bodyType;clone.#headers=Object.assign({},this.#headers);clone.#creds=this.#creds;if(this.allowGzip){clone.allowGzip=true}clone.timeout=this.timeout;if(this.allowInsecureAuthentication){clone.allowInsecureAuthentication=true}clone.#preflight=this.#preflight;clone.#process=this.#process;clone.#retry=this.#retry;return clone}static lockConfig(){locked$5=true}static getGateway(scheme){return Gateways[scheme.toLowerCase()]||null}static registerGateway(scheme,func){scheme=scheme.toLowerCase();if(scheme==="http"||scheme==="https"){throw new Error(`cannot intercept ${scheme}; use registerGetUrl`)}if(locked$5){throw new Error("gateways locked")}Gateways[scheme]=func}static registerGetUrl(getUrl){if(locked$5){throw new Error("gateways locked")}getUrlFunc=getUrl}static createDataGateway(){return dataGatewayFunc}static createIpfsGatewayFunc(baseUrl){return getIpfsGatewayFunc(baseUrl)}}class FetchResponse{#statusCode;#statusMessage;#headers;#body;#request;#error;toString(){return``}get statusCode(){return this.#statusCode}get statusMessage(){return this.#statusMessage}get headers(){return Object.assign({},this.#headers)}get body(){return this.#body==null?null:new Uint8Array(this.#body)}get bodyText(){try{return this.#body==null?"":toUtf8String(this.#body)}catch(error){assert$1(false,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch(error){assert$1(false,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const headers=this.headers;const keys=Object.keys(headers);let index=0;return{next:()=>{if(index{accum[k.toLowerCase()]=String(headers[k]);return accum},{});this.#body=body==null?null:new Uint8Array(body);this.#request=request||null;this.#error={message:""}}makeServerError(message,error){let statusMessage;if(!message){message=`${this.statusCode} ${this.statusMessage}`;statusMessage=`CLIENT ESCALATED SERVER ERROR (${message})`}else{statusMessage=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${message})`}const response=new FetchResponse(599,statusMessage,this.headers,this.body,this.#request||undefined);response.#error={message:message,error:error};return response}throwThrottleError(message,stall){if(stall==null){stall=-1}else{assertArgument(Number.isInteger(stall)&&stall>=0,"invalid stall timeout","stall",stall)}const error=new Error(message||"throttling requests");defineProperties(error,{stall:stall,throttle:true});throw error}getHeader(key){return this.headers[key.toLowerCase()]}hasBody(){return this.#body!=null}get request(){return this.#request}ok(){return this.#error.message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok()){return}let{message,error}=this.#error;if(message===""){message=`server response ${this.statusCode} ${this.statusMessage}`}assert$1(false,message,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:error})}}function getTime$2(){return(new Date).getTime()}function unpercent(value){return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi,(all,code)=>{return String.fromCharCode(parseInt(code,16))}))}function wait(delay){return new Promise(resolve=>setTimeout(resolve,delay))}const BN_N1=BigInt(-1);const BN_0$8=BigInt(0);const BN_1$4=BigInt(1);const BN_5=BigInt(5);const _guard$5={};let Zeros$1="0000";while(Zeros$1.length<80){Zeros$1+=Zeros$1}function getTens(decimals){let result=Zeros$1;while(result.length=-limit&&valBN_0$8){val=fromTwos(mask(val,width),width)}else{val=-fromTwos(mask(-val,width),width)}}else{const limit=BN_1$4<=0&&val{if(v[key]==null){return defaultValue}assertArgument(typeof v[key]===type,"invalid fixed format ("+key+" not "+type+")","format."+key,v[key]);return v[key]};signed=check("signed","boolean",signed);width=check("width","number",width);decimals=check("decimals","number",decimals)}assertArgument(width%8===0,"invalid FixedNumber width (not byte aligned)","format.width",width);assertArgument(decimals<=80,"invalid FixedNumber decimals (too large)","format.decimals",decimals);const name=(signed?"":"u")+"fixed"+String(width)+"x"+String(decimals);return{signed:signed,width:width,decimals:decimals,name:name}}function toString(val,decimals){let negative="";if(val0){b*=getTens(delta)}else if(delta<0){a*=getTens(-delta)}if(ab){return 1}return 0}eq(other){return this.cmp(other)===0}lt(other){return this.cmp(other)<0}lte(other){return this.cmp(other)<=0}gt(other){return this.cmp(other)>0}gte(other){return this.cmp(other)>=0}floor(){let val=this.#val;if(this.#valBN_0$8){val+=this.#tens-BN_1$4}val=this.#val/this.#tens*this.#tens;return this.#checkValue(val,"ceiling")}round(decimals){if(decimals==null){decimals=0}if(decimals>=this.decimals){return this}const delta=this.decimals-decimals;const bump=BN_5*getTens(delta-1);let value=this.value+bump;const tens=getTens(delta);value=value/tens*tens;checkValue(value,this.#format,"round");return new FixedNumber(_guard$5,value,this.#format)}isZero(){return this.#val===BN_0$8}isNegative(){return this.#val0){const tens=getTens(delta);assert$1(value%tens===BN_0$8,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:_value});value/=tens}else if(delta<0){value*=getTens(-delta)}checkValue(value,format,"fromValue");return new FixedNumber(_guard$5,value,format)}static fromString(_value,_format){const match=_value.match(/^(-?)([0-9]*)\.?([0-9]*)$/);assertArgument(match&&match[2].length+match[3].length>0,"invalid FixedNumber string value","value",_value);const format=getFormat(_format);let whole=match[2]||"0",decimal=match[3]||"";while(decimal.length{assert$1(offset<=data.length,"data short segment too short","BUFFER_OVERRUN",{buffer:data,length:data.length,offset:offset})};if(data[offset]>=248){const lengthLength=data[offset]-247;checkOffset(offset+1+lengthLength);const length=unarrayifyInteger(data,offset+1,lengthLength);checkOffset(offset+1+lengthLength+length);return _decodeChildren(data,offset,offset+1+lengthLength,lengthLength+length)}else if(data[offset]>=192){const length=data[offset]-192;checkOffset(offset+1+length);return _decodeChildren(data,offset,offset+1,length)}else if(data[offset]>=184){const lengthLength=data[offset]-183;checkOffset(offset+1+lengthLength);const length=unarrayifyInteger(data,offset+1,lengthLength);checkOffset(offset+1+lengthLength+length);const result=hexlify(data.slice(offset+1+lengthLength,offset+1+lengthLength+length));return{consumed:1+lengthLength+length,result:result}}else if(data[offset]>=128){const length=data[offset]-128;checkOffset(offset+1+length);const result=hexlify(data.slice(offset+1,offset+1+length));return{consumed:1+length,result:result}}return{consumed:1,result:hexlifyByte(data[offset])}}function decodeRlp(_data){const data=getBytes(_data,"data");const decoded=_decode(data,0);assertArgument(decoded.consumed===data.length,"unexpected junk after rlp payload","data",_data);return decoded.result}function arrayifyInteger(value){const result=[];while(value){result.unshift(value&255);value>>=8}return result}function _encode(object){if(Array.isArray(object)){let payload=[];object.forEach(function(child){payload=payload.concat(_encode(child))});if(payload.length<=55){payload.unshift(192+payload.length);return payload}const length=arrayifyInteger(payload.length);length.unshift(247+length.length);return length.concat(payload)}const data=Array.prototype.slice.call(getBytes(object,"object"));if(data.length===1&&data[0]<=127){return data}else if(data.length<=55){data.unshift(128+data.length);return data}const length=arrayifyInteger(data.length);length.unshift(183+length.length);return length.concat(data)}const nibbles="0123456789abcdef";function encodeRlp(object){let result="0x";for(const v of _encode(object)){result+=nibbles[v>>4];result+=nibbles[v&15]}return result}const names=["wei","kwei","mwei","gwei","szabo","finney","ether"];function formatUnits(value,unit){let decimals=18;if(typeof unit==="string"){const index=names.indexOf(unit);assertArgument(index>=0,"invalid unit","unit",unit);decimals=3*index}else if(unit!=null){decimals=getNumber(unit,"unit")}return FixedNumber.fromValue(value,decimals,{decimals:decimals,width:512}).toString()}function parseUnits$1(value,unit){assertArgument(typeof value==="string","value must be a string","value",value);let decimals=18;if(typeof unit==="string"){const index=names.indexOf(unit);assertArgument(index>=0,"invalid unit","unit",unit);decimals=3*index}else if(unit!=null){decimals=getNumber(unit,"unit")}return FixedNumber.fromString(value,{decimals:decimals,width:512}).value}function formatEther(wei){return formatUnits(wei,18)}function parseEther(ether){return parseUnits$1(ether,18)}function uuidV4(randomBytes){const bytes=getBytes(randomBytes,"randomBytes");bytes[6]=bytes[6]&15|64;bytes[8]=bytes[8]&63|128;const value=hexlify(bytes);return[value.substring(2,10),value.substring(10,14),value.substring(14,18),value.substring(18,22),value.substring(22,34)].join("-")}const WordSize=32;const Padding=new Uint8Array(WordSize);const passProperties$1=["then"];const _guard$4={};function throwError(name,error){const wrapped=new Error(`deferred error during ABI decoding triggered accessing ${name}`);wrapped.error=error;throw wrapped}class Result extends Array{#names;constructor(...args){const guard=args[0];let items=args[1];let names=(args[2]||[]).slice();let wrap=true;if(guard!==_guard$4){items=args;names=[];wrap=false}super(items.length);items.forEach((item,index)=>{this[index]=item});const nameCounts=names.reduce((accum,name)=>{if(typeof name==="string"){accum.set(name,(accum.get(name)||0)+1)}return accum},new Map);this.#names=Object.freeze(items.map((item,index)=>{const name=names[index];if(name!=null&&nameCounts.get(name)===1){return name}return null}));if(!wrap){return}Object.freeze(this);return new Proxy(this,{get:(target,prop,receiver)=>{if(typeof prop==="string"){if(prop.match(/^[0-9]+$/)){const index=getNumber(prop,"%index");if(index<0||index>=this.length){throw new RangeError("out of result range")}const item=target[index];if(item instanceof Error){throwError(`index ${index}`,item)}return item}if(passProperties$1.indexOf(prop)>=0){return Reflect.get(target,prop,receiver)}const value=target[prop];if(value instanceof Function){return function(...args){return value.apply(this===receiver?target:this,args)}}else if(!(prop in target)){return target.getValue.apply(this===receiver?target:this,[prop])}}return Reflect.get(target,prop,receiver)}})}toArray(){const result=[];this.forEach((item,index)=>{if(item instanceof Error){throwError(`index ${index}`,item)}result.push(item)});return result}toObject(){return this.#names.reduce((accum,name,index)=>{assert$1(name!=null,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"});if(!(name in accum)){accum[name]=this.getValue(name)}return accum},{})}slice(start,end){if(start==null){start=0}if(start<0){start+=this.length;if(start<0){start=0}}if(end==null){end=this.length}if(end<0){end+=this.length;if(end<0){end=0}}if(end>this.length){end=this.length}const result=[],names=[];for(let i=start;i{this.#data[offset]=getValue$1(value)}}}class Reader{allowLoose;#data;#offset;constructor(data,allowLoose){defineProperties(this,{allowLoose:!!allowLoose});this.#data=getBytesCopy(data);this.#offset=0}get data(){return hexlify(this.#data)}get dataLength(){return this.#data.length}get consumed(){return this.#offset}get bytes(){return new Uint8Array(this.#data)}#peekBytes(offset,length,loose){let alignedLength=Math.ceil(length/WordSize)*WordSize;if(this.#offset+alignedLength>this.#data.length){if(this.allowLoose&&loose&&this.#offset+length<=this.#data.length){alignedLength=length}else{assert$1(false,"data out-of-bounds","BUFFER_OVERRUN",{buffer:getBytesCopy(this.#data),length:this.#data.length,offset:this.#offset+alignedLength})}}return this.#data.slice(this.#offset,this.#offset+alignedLength)}subReader(offset){return new Reader(this.#data.slice(this.#offset+offset),this.allowLoose)}readBytes(length,loose){let bytes=this.#peekBytes(0,length,!!loose);this.#offset+=bytes.length;return bytes.slice(0,length)}readValue(){return toBigInt(this.readBytes(WordSize))}readIndex(){return toNumber(this.readBytes(WordSize))}}function number(n){if(!Number.isSafeInteger(n)||n<0)throw new Error(`Wrong positive integer: ${n}`)}function bool(b){if(typeof b!=="boolean")throw new Error(`Expected boolean, not ${b}`)}function bytes(b,...lengths){if(!(b instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(lengths.length>0&&!lengths.includes(b.length))throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`)}function hash(hash){if(typeof hash!=="function"||typeof hash.create!=="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");number(hash.outputLen);number(hash.blockLen)}function exists(instance,checkFinished=true){if(instance.destroyed)throw new Error("Hash instance has been destroyed");if(checkFinished&&instance.finished)throw new Error("Hash#digest() has already been called")}function output(out,instance){bytes(out);const min=instance.outputLen;if(out.lengthnew Uint32Array(arr.buffer,arr.byteOffset,Math.floor(arr.byteLength/4));const createView=arr=>new DataView(arr.buffer,arr.byteOffset,arr.byteLength);const rotr=(word,shift)=>word<<32-shift|word>>>shift;const isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!isLE)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(v,i)=>i.toString(16).padStart(2,"0"));const nextTick=async()=>{};async function asyncLoop(iters,tick,cb){let ts=Date.now();for(let i=0;i=0&&diffObject.prototype.toString.call(obj)==="[object Object]"&&obj.constructor===Object;function checkOpts(defaults,opts){if(opts!==undefined&&(typeof opts!=="object"||!isPlainObject(opts)))throw new TypeError("Options should be object or undefined");const merged=Object.assign(defaults,opts);return merged}function wrapConstructor(hashConstructor){const hashC=message=>hashConstructor().update(toBytes(message)).digest();const tmp=hashConstructor();hashC.outputLen=tmp.outputLen;hashC.blockLen=tmp.blockLen;hashC.create=()=>hashConstructor();return hashC}function wrapConstructorWithOpts(hashCons){const hashC=(msg,opts)=>hashCons(opts).update(toBytes(msg)).digest();const tmp=hashCons({});hashC.outputLen=tmp.outputLen;hashC.blockLen=tmp.blockLen;hashC.create=opts=>hashCons(opts);return hashC}class HMAC extends Hash{constructor(hash,_key){super();this.finished=false;this.destroyed=false;assert.hash(hash);const key=toBytes(_key);this.iHash=hash.create();if(!(this.iHash instanceof Hash))throw new TypeError("Expected instance of class which extends utils.Hash");const blockLen=this.blockLen=this.iHash.blockLen;this.outputLen=this.iHash.outputLen;const pad=new Uint8Array(blockLen);pad.set(key.length>this.iHash.blockLen?hash.create().update(key).digest():key);for(let i=0;inew HMAC(hash,key).update(message).digest();hmac.create=(hash,key)=>new HMAC(hash,key);function pbkdf2Init(hash,_password,_salt,_opts){assert.hash(hash);const opts=checkOpts({dkLen:32,asyncTick:10},_opts);const{c,dkLen,asyncTick}=opts;assert.number(c);assert.number(dkLen);assert.number(asyncTick);if(c<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const password=toBytes(_password);const salt=toBytes(_salt);const DK=new Uint8Array(dkLen);const PRF=hmac.create(hash,password);const PRFSalt=PRF._cloneInto().update(salt);return{c:c,dkLen:dkLen,asyncTick:asyncTick,DK:DK,PRF:PRF,PRFSalt:PRFSalt}}function pbkdf2Output(PRF,PRFSalt,DK,prfW,u){PRF.destroy();PRFSalt.destroy();if(prfW)prfW.destroy();u.fill(0);return DK}function pbkdf2$1(hash,password,salt,opts){const{c,dkLen,DK,PRF,PRFSalt}=pbkdf2Init(hash,password,salt,opts);let prfW;const arr=new Uint8Array(4);const view=createView(arr);const u=new Uint8Array(PRF.outputLen);for(let ti=1,pos=0;pos>_32n&_u32_max);const wl=Number(value&_u32_max);const h=isLE?4:0;const l=isLE?0:4;view.setUint32(byteOffset+h,wh,isLE);view.setUint32(byteOffset+l,wl,isLE)}class SHA2 extends Hash{constructor(blockLen,outputLen,padOffset,isLE){super();this.blockLen=blockLen;this.outputLen=outputLen;this.padOffset=padOffset;this.isLE=isLE;this.finished=false;this.length=0;this.pos=0;this.destroyed=false;this.buffer=new Uint8Array(blockLen);this.view=createView(this.buffer)}update(data){assert.exists(this);const{view,buffer,blockLen}=this;data=toBytes(data);const len=data.length;for(let pos=0;posblockLen-pos){this.process(view,0);pos=0}for(let i=pos;ioview.setUint32(4*i,v,isLE))}digest(){const{buffer,outputLen}=this;this.digestInto(buffer);const res=buffer.slice(0,outputLen);this.destroy();return res}_cloneInto(to){to||(to=new this.constructor);to.set(...this.get());const{blockLen,buffer,length,finished,destroyed,pos}=this;to.length=length;to.pos=pos;to.finished=finished;to.destroyed=destroyed;if(length%blockLen)to.buffer.set(buffer);return to}}const Chi=(a,b,c)=>a&b^~a&c;const Maj=(a,b,c)=>a&b^a&c^b&c;const SHA256_K=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]);const IV=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);const SHA256_W=new Uint32Array(64);class SHA256 extends SHA2{constructor(){super(64,32,8,false);this.A=IV[0]|0;this.B=IV[1]|0;this.C=IV[2]|0;this.D=IV[3]|0;this.E=IV[4]|0;this.F=IV[5]|0;this.G=IV[6]|0;this.H=IV[7]|0}get(){const{A,B,C,D,E,F,G,H}=this;return[A,B,C,D,E,F,G,H]}set(A,B,C,D,E,F,G,H){this.A=A|0;this.B=B|0;this.C=C|0;this.D=D|0;this.E=E|0;this.F=F|0;this.G=G|0;this.H=H|0}process(view,offset){for(let i=0;i<16;i++,offset+=4)SHA256_W[i]=view.getUint32(offset,false);for(let i=16;i<64;i++){const W15=SHA256_W[i-15];const W2=SHA256_W[i-2];const s0=rotr(W15,7)^rotr(W15,18)^W15>>>3;const s1=rotr(W2,17)^rotr(W2,19)^W2>>>10;SHA256_W[i]=s1+SHA256_W[i-7]+s0+SHA256_W[i-16]|0}let{A,B,C,D,E,F,G,H}=this;for(let i=0;i<64;i++){const sigma1=rotr(E,6)^rotr(E,11)^rotr(E,25);const T1=H+sigma1+Chi(E,F,G)+SHA256_K[i]+SHA256_W[i]|0;const sigma0=rotr(A,2)^rotr(A,13)^rotr(A,22);const T2=sigma0+Maj(A,B,C)|0;H=G;G=F;F=E;E=D+T1|0;D=C;C=B;B=A;A=T1+T2|0}A=A+this.A|0;B=B+this.B|0;C=C+this.C|0;D=D+this.D|0;E=E+this.E|0;F=F+this.F|0;G=G+this.G|0;H=H+this.H|0;this.set(A,B,C,D,E,F,G,H)}roundClean(){SHA256_W.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0);this.buffer.fill(0)}}const sha256$1=wrapConstructor(()=>new SHA256);const U32_MASK64=BigInt(2**32-1);const _32n=BigInt(32);function fromBig(n,le=false){if(le)return{h:Number(n&U32_MASK64),l:Number(n>>_32n&U32_MASK64)};return{h:Number(n>>_32n&U32_MASK64)|0,l:Number(n&U32_MASK64)|0}}function split(lst,le=false){let Ah=new Uint32Array(lst.length);let Al=new Uint32Array(lst.length);for(let i=0;iBigInt(h>>>0)<<_32n|BigInt(l>>>0);const shrSH=(h,l,s)=>h>>>s;const shrSL=(h,l,s)=>h<<32-s|l>>>s;const rotrSH=(h,l,s)=>h>>>s|l<<32-s;const rotrSL=(h,l,s)=>h<<32-s|l>>>s;const rotrBH=(h,l,s)=>h<<64-s|l>>>s-32;const rotrBL=(h,l,s)=>h>>>s-32|l<<64-s;const rotr32H=(h,l)=>l;const rotr32L=(h,l)=>h;const rotlSH=(h,l,s)=>h<>>32-s;const rotlSL=(h,l,s)=>l<>>32-s;const rotlBH=(h,l,s)=>l<>>64-s;const rotlBL=(h,l,s)=>h<>>64-s;function add(Ah,Al,Bh,Bl){const l=(Al>>>0)+(Bl>>>0);return{h:Ah+Bh+(l/2**32|0)|0,l:l|0}}const add3L=(Al,Bl,Cl)=>(Al>>>0)+(Bl>>>0)+(Cl>>>0);const add3H=(low,Ah,Bh,Ch)=>Ah+Bh+Ch+(low/2**32|0)|0;const add4L=(Al,Bl,Cl,Dl)=>(Al>>>0)+(Bl>>>0)+(Cl>>>0)+(Dl>>>0);const add4H=(low,Ah,Bh,Ch,Dh)=>Ah+Bh+Ch+Dh+(low/2**32|0)|0;const add5L=(Al,Bl,Cl,Dl,El)=>(Al>>>0)+(Bl>>>0)+(Cl>>>0)+(Dl>>>0)+(El>>>0);const add5H=(low,Ah,Bh,Ch,Dh,Eh)=>Ah+Bh+Ch+Dh+Eh+(low/2**32|0)|0;const u64={fromBig:fromBig,split:split,toBig:toBig,shrSH:shrSH,shrSL:shrSL,rotrSH:rotrSH,rotrSL:rotrSL,rotrBH:rotrBH,rotrBL:rotrBL,rotr32H:rotr32H,rotr32L:rotr32L,rotlSH:rotlSH,rotlSL:rotlSL,rotlBH:rotlBH,rotlBL:rotlBL,add:add,add3L:add3L,add3H:add3H,add4L:add4L,add4H:add4H,add5H:add5H,add5L:add5L};const[SHA512_Kh,SHA512_Kl]=u64.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(n=>BigInt(n)));const SHA512_W_H=new Uint32Array(80);const SHA512_W_L=new Uint32Array(80);class SHA512 extends SHA2{constructor(){super(128,64,16,false);this.Ah=1779033703|0;this.Al=4089235720|0;this.Bh=3144134277|0;this.Bl=2227873595|0;this.Ch=1013904242|0;this.Cl=4271175723|0;this.Dh=2773480762|0;this.Dl=1595750129|0;this.Eh=1359893119|0;this.El=2917565137|0;this.Fh=2600822924|0;this.Fl=725511199|0;this.Gh=528734635|0;this.Gl=4215389547|0;this.Hh=1541459225|0;this.Hl=327033209|0}get(){const{Ah,Al,Bh,Bl,Ch,Cl,Dh,Dl,Eh,El,Fh,Fl,Gh,Gl,Hh,Hl}=this;return[Ah,Al,Bh,Bl,Ch,Cl,Dh,Dl,Eh,El,Fh,Fl,Gh,Gl,Hh,Hl]}set(Ah,Al,Bh,Bl,Ch,Cl,Dh,Dl,Eh,El,Fh,Fl,Gh,Gl,Hh,Hl){this.Ah=Ah|0;this.Al=Al|0;this.Bh=Bh|0;this.Bl=Bl|0;this.Ch=Ch|0;this.Cl=Cl|0;this.Dh=Dh|0;this.Dl=Dl|0;this.Eh=Eh|0;this.El=El|0;this.Fh=Fh|0;this.Fl=Fl|0;this.Gh=Gh|0;this.Gl=Gl|0;this.Hh=Hh|0;this.Hl=Hl|0}process(view,offset){for(let i=0;i<16;i++,offset+=4){SHA512_W_H[i]=view.getUint32(offset);SHA512_W_L[i]=view.getUint32(offset+=4)}for(let i=16;i<80;i++){const W15h=SHA512_W_H[i-15]|0;const W15l=SHA512_W_L[i-15]|0;const s0h=u64.rotrSH(W15h,W15l,1)^u64.rotrSH(W15h,W15l,8)^u64.shrSH(W15h,W15l,7);const s0l=u64.rotrSL(W15h,W15l,1)^u64.rotrSL(W15h,W15l,8)^u64.shrSL(W15h,W15l,7);const W2h=SHA512_W_H[i-2]|0;const W2l=SHA512_W_L[i-2]|0;const s1h=u64.rotrSH(W2h,W2l,19)^u64.rotrBH(W2h,W2l,61)^u64.shrSH(W2h,W2l,6);const s1l=u64.rotrSL(W2h,W2l,19)^u64.rotrBL(W2h,W2l,61)^u64.shrSL(W2h,W2l,6);const SUMl=u64.add4L(s0l,s1l,SHA512_W_L[i-7],SHA512_W_L[i-16]);const SUMh=u64.add4H(SUMl,s0h,s1h,SHA512_W_H[i-7],SHA512_W_H[i-16]);SHA512_W_H[i]=SUMh|0;SHA512_W_L[i]=SUMl|0}let{Ah,Al,Bh,Bl,Ch,Cl,Dh,Dl,Eh,El,Fh,Fl,Gh,Gl,Hh,Hl}=this;for(let i=0;i<80;i++){const sigma1h=u64.rotrSH(Eh,El,14)^u64.rotrSH(Eh,El,18)^u64.rotrBH(Eh,El,41);const sigma1l=u64.rotrSL(Eh,El,14)^u64.rotrSL(Eh,El,18)^u64.rotrBL(Eh,El,41);const CHIh=Eh&Fh^~Eh&Gh;const CHIl=El&Fl^~El&Gl;const T1ll=u64.add5L(Hl,sigma1l,CHIl,SHA512_Kl[i],SHA512_W_L[i]);const T1h=u64.add5H(T1ll,Hh,sigma1h,CHIh,SHA512_Kh[i],SHA512_W_H[i]);const T1l=T1ll|0;const sigma0h=u64.rotrSH(Ah,Al,28)^u64.rotrBH(Ah,Al,34)^u64.rotrBH(Ah,Al,39);const sigma0l=u64.rotrSL(Ah,Al,28)^u64.rotrBL(Ah,Al,34)^u64.rotrBL(Ah,Al,39);const MAJh=Ah&Bh^Ah&Ch^Bh&Ch;const MAJl=Al&Bl^Al&Cl^Bl&Cl;Hh=Gh|0;Hl=Gl|0;Gh=Fh|0;Gl=Fl|0;Fh=Eh|0;Fl=El|0;({h:Eh,l:El}=u64.add(Dh|0,Dl|0,T1h|0,T1l|0));Dh=Ch|0;Dl=Cl|0;Ch=Bh|0;Cl=Bl|0;Bh=Ah|0;Bl=Al|0;const All=u64.add3L(T1l,sigma0l,MAJl);Ah=u64.add3H(All,T1h,sigma0h,MAJh);Al=All|0}({h:Ah,l:Al}=u64.add(this.Ah|0,this.Al|0,Ah|0,Al|0));({h:Bh,l:Bl}=u64.add(this.Bh|0,this.Bl|0,Bh|0,Bl|0));({h:Ch,l:Cl}=u64.add(this.Ch|0,this.Cl|0,Ch|0,Cl|0));({h:Dh,l:Dl}=u64.add(this.Dh|0,this.Dl|0,Dh|0,Dl|0));({h:Eh,l:El}=u64.add(this.Eh|0,this.El|0,Eh|0,El|0));({h:Fh,l:Fl}=u64.add(this.Fh|0,this.Fl|0,Fh|0,Fl|0));({h:Gh,l:Gl}=u64.add(this.Gh|0,this.Gl|0,Gh|0,Gl|0));({h:Hh,l:Hl}=u64.add(this.Hh|0,this.Hl|0,Hh|0,Hl|0));this.set(Ah,Al,Bh,Bl,Ch,Cl,Dh,Dl,Eh,El,Fh,Fl,Gh,Gl,Hh,Hl)}roundClean(){SHA512_W_H.fill(0);SHA512_W_L.fill(0)}destroy(){this.buffer.fill(0);this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class SHA512_256 extends SHA512{constructor(){super();this.Ah=573645204|0;this.Al=4230739756|0;this.Bh=2673172387|0;this.Bl=3360449730|0;this.Ch=596883563|0;this.Cl=1867755857|0;this.Dh=2520282905|0;this.Dl=1497426621|0;this.Eh=2519219938|0;this.El=2827943907|0;this.Fh=3193839141|0;this.Fl=1401305490|0;this.Gh=721525244|0;this.Gl=746961066|0;this.Hh=246885852|0;this.Hl=2177182882|0;this.outputLen=32}}class SHA384 extends SHA512{constructor(){super();this.Ah=3418070365|0;this.Al=3238371032|0;this.Bh=1654270250|0;this.Bl=914150663|0;this.Ch=2438529370|0;this.Cl=812702999|0;this.Dh=355462360|0;this.Dl=4144912697|0;this.Eh=1731405415|0;this.El=4290775857|0;this.Fh=2394180231|0;this.Fl=1750603025|0;this.Gh=3675008525|0;this.Gl=1694076839|0;this.Hh=1203062813|0;this.Hl=3204075428|0;this.outputLen=48}}const sha512$1=wrapConstructor(()=>new SHA512);wrapConstructor(()=>new SHA512_256);wrapConstructor(()=>new SHA384);function getGlobal$1(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")}const anyGlobal=getGlobal$1();const crypto$1=anyGlobal.crypto||anyGlobal.msCrypto;function createHash(algo){switch(algo){case"sha256":return sha256$1.create();case"sha512":return sha512$1.create()}assertArgument(false,"invalid hashing algorithm name","algorithm",algo)}function createHmac(_algo,key){const algo={sha256:sha256$1,sha512:sha512$1}[_algo];assertArgument(algo!=null,"invalid hmac algorithm","algorithm",_algo);return hmac.create(algo,key)}function pbkdf2Sync(password,salt,iterations,keylen,_algo){const algo={sha256:sha256$1,sha512:sha512$1}[_algo];assertArgument(algo!=null,"invalid pbkdf2 algorithm","algorithm",_algo);return pbkdf2$1(algo,password,salt,{c:iterations,dkLen:keylen})}function randomBytes$1(length){assert$1(crypto$1!=null,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"});assertArgument(Number.isInteger(length)&&length>0&&length<=1024,"invalid length","length",length);const result=new Uint8Array(length);crypto$1.getRandomValues(result);return result}let locked$4=false;const _computeHmac=function(algorithm,key,data){return createHmac(algorithm,key).update(data).digest()};let __computeHmac=_computeHmac;function computeHmac(algorithm,_key,_data){const key=getBytes(_key,"key");const data=getBytes(_data,"data");return hexlify(__computeHmac(algorithm,key,data))}computeHmac._=_computeHmac;computeHmac.lock=function(){locked$4=true};computeHmac.register=function(func){if(locked$4){throw new Error("computeHmac is locked")}__computeHmac=func};Object.freeze(computeHmac);const[SHA3_PI,SHA3_ROTL,_SHA3_IOTA]=[[],[],[]];const _0n$1=BigInt(0);const _1n$1=BigInt(1);const _2n$1=BigInt(2);const _7n=BigInt(7);const _256n=BigInt(256);const _0x71n=BigInt(113);for(let round=0,R=_1n$1,x=1,y=0;round<24;round++){[x,y]=[y,(2*x+3*y)%5];SHA3_PI.push(2*(5*y+x));SHA3_ROTL.push((round+1)*(round+2)/2%64);let t=_0n$1;for(let j=0;j<7;j++){R=(R<<_1n$1^(R>>_7n)*_0x71n)%_256n;if(R&_2n$1)t^=_1n$1<<(_1n$1<s>32?u64.rotlBH(h,l,s):u64.rotlSH(h,l,s);const rotlL=(h,l,s)=>s>32?u64.rotlBL(h,l,s):u64.rotlSL(h,l,s);function keccakP(s,rounds=24){const B=new Uint32Array(5*2);for(let round=24-rounds;round<24;round++){for(let x=0;x<10;x++)B[x]=s[x]^s[x+10]^s[x+20]^s[x+30]^s[x+40];for(let x=0;x<10;x+=2){const idx1=(x+8)%10;const idx0=(x+2)%10;const B0=B[idx0];const B1=B[idx0+1];const Th=rotlH(B0,B1,1)^B[idx1];const Tl=rotlL(B0,B1,1)^B[idx1+1];for(let y=0;y<50;y+=10){s[x+y]^=Th;s[x+y+1]^=Tl}}let curH=s[2];let curL=s[3];for(let t=0;t<24;t++){const shift=SHA3_ROTL[t];const Th=rotlH(curH,curL,shift);const Tl=rotlL(curH,curL,shift);const PI=SHA3_PI[t];curH=s[PI];curL=s[PI+1];s[PI]=Th;s[PI+1]=Tl}for(let y=0;y<50;y+=10){for(let x=0;x<10;x++)B[x]=s[y+x];for(let x=0;x<10;x++)s[y+x]^=~B[(x+2)%10]&B[(x+4)%10]}s[0]^=SHA3_IOTA_H[round];s[1]^=SHA3_IOTA_L[round]}B.fill(0)}class Keccak extends Hash{constructor(blockLen,suffix,outputLen,enableXOF=false,rounds=24){super();this.blockLen=blockLen;this.suffix=suffix;this.outputLen=outputLen;this.enableXOF=enableXOF;this.rounds=rounds;this.pos=0;this.posOut=0;this.finished=false;this.destroyed=false;assert.number(outputLen);if(0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200);this.state32=u32(this.state)}keccak(){keccakP(this.state32,this.rounds);this.posOut=0;this.pos=0}update(data){assert.exists(this);const{blockLen,state}=this;data=toBytes(data);const len=data.length;for(let pos=0;pos=blockLen)this.keccak();const take=Math.min(blockLen-this.posOut,len-pos);out.set(bufferOut.subarray(this.posOut,this.posOut+take),pos);this.posOut+=take;pos+=take}return out}xofInto(out){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(out)}xof(bytes){assert.number(bytes);return this.xofInto(new Uint8Array(bytes))}digestInto(out){assert.output(out,this);if(this.finished)throw new Error("digest() was already called");this.writeInto(out);this.destroy();return out}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=true;this.state.fill(0)}_cloneInto(to){const{blockLen,suffix,outputLen,rounds,enableXOF}=this;to||(to=new Keccak(blockLen,suffix,outputLen,enableXOF,rounds));to.state32.set(this.state32);to.pos=this.pos;to.posOut=this.posOut;to.finished=this.finished;to.rounds=rounds;to.suffix=suffix;to.outputLen=outputLen;to.enableXOF=enableXOF;to.destroyed=this.destroyed;return to}}const gen=(suffix,blockLen,outputLen)=>wrapConstructor(()=>new Keccak(blockLen,suffix,outputLen));gen(6,144,224/8);gen(6,136,256/8);gen(6,104,384/8);gen(6,72,512/8);gen(1,144,224/8);const keccak_256=gen(1,136,256/8);gen(1,104,384/8);gen(1,72,512/8);const genShake=(suffix,blockLen,outputLen)=>wrapConstructorWithOpts((opts={})=>new Keccak(blockLen,suffix,opts.dkLen===undefined?outputLen:opts.dkLen,true));genShake(31,168,128/8);genShake(31,136,256/8);let locked$3=false;const _keccak256=function(data){return keccak_256(data)};let __keccak256=_keccak256;function keccak256(_data){const data=getBytes(_data,"data");return hexlify(__keccak256(data))}keccak256._=_keccak256;keccak256.lock=function(){locked$3=true};keccak256.register=function(func){if(locked$3){throw new TypeError("keccak256 is locked")}__keccak256=func};Object.freeze(keccak256);const Rho=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]);const Id=Uint8Array.from({length:16},(_,i)=>i);const Pi=Id.map(i=>(9*i+5)%16);let idxL=[Id];let idxR=[Pi];for(let i=0;i<4;i++)for(let j of[idxL,idxR])j.push(j[i].map(k=>Rho[k]));const shifts=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(i=>new Uint8Array(i));const shiftsL=idxL.map((idx,i)=>idx.map(j=>shifts[i][j]));const shiftsR=idxR.map((idx,i)=>idx.map(j=>shifts[i][j]));const Kl=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]);const Kr=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]);const rotl$1=(word,shift)=>word<>>32-shift;function f(group,x,y,z){if(group===0)return x^y^z;else if(group===1)return x&y|~x&z;else if(group===2)return(x|~y)^z;else if(group===3)return x&z|y&~z;else return x^(y|~z)}const BUF=new Uint32Array(16);class RIPEMD160 extends SHA2{constructor(){super(64,20,8,true);this.h0=1732584193|0;this.h1=4023233417|0;this.h2=2562383102|0;this.h3=271733878|0;this.h4=3285377520|0}get(){const{h0,h1,h2,h3,h4}=this;return[h0,h1,h2,h3,h4]}set(h0,h1,h2,h3,h4){this.h0=h0|0;this.h1=h1|0;this.h2=h2|0;this.h3=h3|0;this.h4=h4|0}process(view,offset){for(let i=0;i<16;i++,offset+=4)BUF[i]=view.getUint32(offset,true);let al=this.h0|0,ar=al,bl=this.h1|0,br=bl,cl=this.h2|0,cr=cl,dl=this.h3|0,dr=dl,el=this.h4|0,er=el;for(let group=0;group<5;group++){const rGroup=4-group;const hbl=Kl[group],hbr=Kr[group];const rl=idxL[group],rr=idxR[group];const sl=shiftsL[group],sr=shiftsR[group];for(let i=0;i<16;i++){const tl=rotl$1(al+f(group,bl,cl,dl)+BUF[rl[i]]+hbl,sl[i])+el|0;al=el,el=dl,dl=rotl$1(cl,10)|0,cl=bl,bl=tl}for(let i=0;i<16;i++){const tr=rotl$1(ar+f(rGroup,br,cr,dr)+BUF[rr[i]]+hbr,sr[i])+er|0;ar=er,er=dr,dr=rotl$1(cr,10)|0,cr=br,br=tr}}this.set(this.h1+cl+dr|0,this.h2+dl+er|0,this.h3+el+ar|0,this.h4+al+br|0,this.h0+bl+cr|0)}roundClean(){BUF.fill(0)}destroy(){this.destroyed=true;this.buffer.fill(0);this.set(0,0,0,0,0)}}const ripemd160$1=wrapConstructor(()=>new RIPEMD160);let locked$2=false;const _ripemd160=function(data){return ripemd160$1(data)};let __ripemd160=_ripemd160;function ripemd160(_data){const data=getBytes(_data,"data");return hexlify(__ripemd160(data))}ripemd160._=_ripemd160;ripemd160.lock=function(){locked$2=true};ripemd160.register=function(func){if(locked$2){throw new TypeError("ripemd160 is locked")}__ripemd160=func};Object.freeze(ripemd160);let locked$1=false;const _pbkdf2=function(password,salt,iterations,keylen,algo){return pbkdf2Sync(password,salt,iterations,keylen,algo)};let __pbkdf2=_pbkdf2;function pbkdf2(_password,_salt,iterations,keylen,algo){const password=getBytes(_password,"password");const salt=getBytes(_salt,"salt");return hexlify(__pbkdf2(password,salt,iterations,keylen,algo))}pbkdf2._=_pbkdf2;pbkdf2.lock=function(){locked$1=true};pbkdf2.register=function(func){if(locked$1){throw new Error("pbkdf2 is locked")}__pbkdf2=func};Object.freeze(pbkdf2);let locked=false;const _randomBytes=function(length){return new Uint8Array(randomBytes$1(length))};let __randomBytes=_randomBytes;function randomBytes(length){return __randomBytes(length)}randomBytes._=_randomBytes;randomBytes.lock=function(){locked=true};randomBytes.register=function(func){if(locked){throw new Error("randomBytes is locked")}__randomBytes=func};Object.freeze(randomBytes);const rotl=(a,b)=>a<>>32-b;function XorAndSalsa(prev,pi,input,ii,out,oi){let y00=prev[pi++]^input[ii++],y01=prev[pi++]^input[ii++];let y02=prev[pi++]^input[ii++],y03=prev[pi++]^input[ii++];let y04=prev[pi++]^input[ii++],y05=prev[pi++]^input[ii++];let y06=prev[pi++]^input[ii++],y07=prev[pi++]^input[ii++];let y08=prev[pi++]^input[ii++],y09=prev[pi++]^input[ii++];let y10=prev[pi++]^input[ii++],y11=prev[pi++]^input[ii++];let y12=prev[pi++]^input[ii++],y13=prev[pi++]^input[ii++];let y14=prev[pi++]^input[ii++],y15=prev[pi++]^input[ii++];let x00=y00,x01=y01,x02=y02,x03=y03,x04=y04,x05=y05,x06=y06,x07=y07,x08=y08,x09=y09,x10=y10,x11=y11,x12=y12,x13=y13,x14=y14,x15=y15;for(let i=0;i<8;i+=2){x04^=rotl(x00+x12|0,7);x08^=rotl(x04+x00|0,9);x12^=rotl(x08+x04|0,13);x00^=rotl(x12+x08|0,18);x09^=rotl(x05+x01|0,7);x13^=rotl(x09+x05|0,9);x01^=rotl(x13+x09|0,13);x05^=rotl(x01+x13|0,18);x14^=rotl(x10+x06|0,7);x02^=rotl(x14+x10|0,9);x06^=rotl(x02+x14|0,13);x10^=rotl(x06+x02|0,18);x03^=rotl(x15+x11|0,7);x07^=rotl(x03+x15|0,9);x11^=rotl(x07+x03|0,13);x15^=rotl(x11+x07|0,18);x01^=rotl(x00+x03|0,7);x02^=rotl(x01+x00|0,9);x03^=rotl(x02+x01|0,13);x00^=rotl(x03+x02|0,18);x06^=rotl(x05+x04|0,7);x07^=rotl(x06+x05|0,9);x04^=rotl(x07+x06|0,13);x05^=rotl(x04+x07|0,18);x11^=rotl(x10+x09|0,7);x08^=rotl(x11+x10|0,9);x09^=rotl(x08+x11|0,13);x10^=rotl(x09+x08|0,18);x12^=rotl(x15+x14|0,7);x13^=rotl(x12+x15|0,9);x14^=rotl(x13+x12|0,13);x15^=rotl(x14+x13|0,18)}out[oi++]=y00+x00|0;out[oi++]=y01+x01|0;out[oi++]=y02+x02|0;out[oi++]=y03+x03|0;out[oi++]=y04+x04|0;out[oi++]=y05+x05|0;out[oi++]=y06+x06|0;out[oi++]=y07+x07|0;out[oi++]=y08+x08|0;out[oi++]=y09+x09|0;out[oi++]=y10+x10|0;out[oi++]=y11+x11|0;out[oi++]=y12+x12|0;out[oi++]=y13+x13|0;out[oi++]=y14+x14|0;out[oi++]=y15+x15|0}function BlockMix(input,ii,out,oi,r){let head=oi+0;let tail=oi+16*r;for(let i=0;i<16;i++)out[tail+i]=input[ii+(2*r-1)*16+i];for(let i=0;i0)tail+=16;XorAndSalsa(out,head,input,ii+=16,out,tail)}}function scryptInit(password,salt,_opts){const opts=checkOpts({dkLen:32,asyncTick:10,maxmem:1024**3+1024},_opts);const{N,r,p,dkLen,asyncTick,maxmem,onProgress}=opts;assert.number(N);assert.number(r);assert.number(p);assert.number(dkLen);assert.number(asyncTick);assert.number(maxmem);if(onProgress!==undefined&&typeof onProgress!=="function")throw new Error("progressCb should be function");const blockSize=128*r;const blockSize32=blockSize/4;if(N<=1||(N&N-1)!==0||N>=2**(blockSize/8)||N>2**32){throw new Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32")}if(p<0||p>(2**32-1)*32/blockSize){throw new Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)")}if(dkLen<0||dkLen>(2**32-1)*32){throw new Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32")}const memUsed=blockSize*(N+p);if(memUsed>maxmem){throw new Error(`Scrypt: parameters too large, ${memUsed} (128 * r * (N + p)) > ${maxmem} (maxmem)`)}const B=pbkdf2$1(sha256$1,password,salt,{c:1,dkLen:blockSize*p});const B32=u32(B);const V=u32(new Uint8Array(blockSize*N));const tmp=u32(new Uint8Array(blockSize));let blockMixCb=()=>{};if(onProgress){const totalBlockMix=2*N*p;const callbackPer=Math.max(Math.floor(totalBlockMix/1e4),1);let blockMixCnt=0;blockMixCb=()=>{blockMixCnt++;if(onProgress&&(!(blockMixCnt%callbackPer)||blockMixCnt===totalBlockMix))onProgress(blockMixCnt/totalBlockMix)}}return{N:N,r:r,p:p,dkLen:dkLen,blockSize32:blockSize32,V:V,B32:B32,B:B,tmp:tmp,blockMixCb:blockMixCb,asyncTick:asyncTick}}function scryptOutput(password,dkLen,B,V,tmp){const res=pbkdf2$1(sha256$1,password,B,{c:1,dkLen:dkLen});B.fill(0);V.fill(0);tmp.fill(0);return res}function scrypt$1(password,salt,opts){const{N,r,p,dkLen,blockSize32,V,B32,B,tmp,blockMixCb}=scryptInit(password,salt,opts);for(let pi=0;pi{BlockMix(V,pos,V,pos+=blockSize32,r);blockMixCb()});BlockMix(V,(N-1)*blockSize32,B32,Pi,r);blockMixCb();await asyncLoop(N,asyncTick,i=>{const j=B32[Pi+blockSize32-16]%N;for(let k=0;k(a+b/_2n)/b;const endo={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(k){const{n}=CURVE;const a1=BigInt("0x3086d221a7d46bcde86c90e49284eb15");const b1=-_1n*BigInt("0xe4437ed6010e88286f547fa90abfe4c3");const a2=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8");const b2=a1;const POW_2_128=BigInt("0x100000000000000000000000000000000");const c1=divNearest(b2*k,n);const c2=divNearest(-b1*k,n);let k1=mod(k-c1*a1-c2*a2,n);let k2=mod(-c1*b1-c2*b2,n);const k1neg=k1>POW_2_128;const k2neg=k2>POW_2_128;if(k1neg)k1=n-k1;if(k2neg)k2=n-k2;if(k1>POW_2_128||k2>POW_2_128){throw new Error("splitScalarEndo: Endomorphism failed, k="+k)}return{k1neg:k1neg,k1:k1,k2neg:k2neg,k2:k2}}};const fieldLen=32;const groupLen=32;const hashLen=32;const compressedLen=fieldLen+1;const uncompressedLen=2*fieldLen+1;function weierstrass(x){const{a,b}=CURVE;const x2=mod(x*x);const x3=mod(x2*x);return mod(x3+a*x+b)}const USE_ENDOMORPHISM=CURVE.a===_0n;class ShaError extends Error{constructor(message){super(message)}}function assertJacPoint(other){if(!(other instanceof JacobianPoint))throw new TypeError("JacobianPoint expected")}class JacobianPoint{constructor(x,y,z){this.x=x;this.y=y;this.z=z}static fromAffine(p){if(!(p instanceof Point)){throw new TypeError("JacobianPoint#fromAffine: expected Point")}if(p.equals(Point.ZERO))return JacobianPoint.ZERO;return new JacobianPoint(p.x,p.y,_1n)}static toAffineBatch(points){const toInv=invertBatch(points.map(p=>p.z));return points.map((p,i)=>p.toAffine(toInv[i]))}static normalizeZ(points){return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine)}equals(other){assertJacPoint(other);const{x:X1,y:Y1,z:Z1}=this;const{x:X2,y:Y2,z:Z2}=other;const Z1Z1=mod(Z1*Z1);const Z2Z2=mod(Z2*Z2);const U1=mod(X1*Z2Z2);const U2=mod(X2*Z1Z1);const S1=mod(mod(Y1*Z2)*Z2Z2);const S2=mod(mod(Y2*Z1)*Z1Z1);return U1===U2&&S1===S2}negate(){return new JacobianPoint(this.x,mod(-this.y),this.z)}double(){const{x:X1,y:Y1,z:Z1}=this;const A=mod(X1*X1);const B=mod(Y1*Y1);const C=mod(B*B);const x1b=X1+B;const D=mod(_2n*(mod(x1b*x1b)-A-C));const E=mod(_3n*A);const F=mod(E*E);const X3=mod(F-_2n*D);const Y3=mod(E*(D-X3)-_8n*C);const Z3=mod(_2n*Y1*Z1);return new JacobianPoint(X3,Y3,Z3)}add(other){assertJacPoint(other);const{x:X1,y:Y1,z:Z1}=this;const{x:X2,y:Y2,z:Z2}=other;if(X2===_0n||Y2===_0n)return this;if(X1===_0n||Y1===_0n)return other;const Z1Z1=mod(Z1*Z1);const Z2Z2=mod(Z2*Z2);const U1=mod(X1*Z2Z2);const U2=mod(X2*Z1Z1);const S1=mod(mod(Y1*Z2)*Z2Z2);const S2=mod(mod(Y2*Z1)*Z1Z1);const H=mod(U2-U1);const r=mod(S2-S1);if(H===_0n){if(r===_0n){return this.double()}else{return JacobianPoint.ZERO}}const HH=mod(H*H);const HHH=mod(H*HH);const V=mod(U1*HH);const X3=mod(r*r-HHH-_2n*V);const Y3=mod(r*(V-X3)-S1*HHH);const Z3=mod(Z1*Z2*H);return new JacobianPoint(X3,Y3,Z3)}subtract(other){return this.add(other.negate())}multiplyUnsafe(scalar){const P0=JacobianPoint.ZERO;if(typeof scalar==="bigint"&&scalar===_0n)return P0;let n=normalizeScalar(scalar);if(n===_1n)return this;if(!USE_ENDOMORPHISM){let p=P0;let d=this;while(n>_0n){if(n&_1n)p=p.add(d);d=d.double();n>>=_1n}return p}let{k1neg,k1,k2neg,k2}=endo.splitScalar(n);let k1p=P0;let k2p=P0;let d=this;while(k1>_0n||k2>_0n){if(k1&_1n)k1p=k1p.add(d);if(k2&_1n)k2p=k2p.add(d);d=d.double();k1>>=_1n;k2>>=_1n}if(k1neg)k1p=k1p.negate();if(k2neg)k2p=k2p.negate();k2p=new JacobianPoint(mod(k2p.x*endo.beta),k2p.y,k2p.z);return k1p.add(k2p)}precomputeWindow(W){const windows=USE_ENDOMORPHISM?128/W+1:256/W+1;const points=[];let p=this;let base=p;for(let window=0;window>=shiftBy;if(wbits>windowSize){wbits-=maxNumber;n+=_1n}const offset1=offset;const offset2=offset+Math.abs(wbits)-1;const cond1=window%2!==0;const cond2=wbits<0;if(wbits===0){f=f.add(constTimeNegate(cond1,precomputes[offset1]))}else{p=p.add(constTimeNegate(cond2,precomputes[offset2]))}}return{p:p,f:f}}multiply(scalar,affinePoint){let n=normalizeScalar(scalar);let point;let fake;if(USE_ENDOMORPHISM){const{k1neg,k1,k2neg,k2}=endo.splitScalar(n);let{p:k1p,f:f1p}=this.wNAF(k1,affinePoint);let{p:k2p,f:f2p}=this.wNAF(k2,affinePoint);k1p=constTimeNegate(k1neg,k1p);k2p=constTimeNegate(k2neg,k2p);k2p=new JacobianPoint(mod(k2p.x*endo.beta),k2p.y,k2p.z);point=k1p.add(k2p);fake=f1p.add(f2p)}else{const{p,f}=this.wNAF(n,affinePoint);point=p;fake=f}return JacobianPoint.normalizeZ([point,fake])[0]}toAffine(invZ){const{x,y,z}=this;const is0=this.equals(JacobianPoint.ZERO);if(invZ==null)invZ=is0?_8n:invert(z);const iz1=invZ;const iz2=mod(iz1*iz1);const iz3=mod(iz2*iz1);const ax=mod(x*iz2);const ay=mod(y*iz3);const zz=mod(z*iz1);if(is0)return Point.ZERO;if(zz!==_1n)throw new Error("invZ was invalid");return new Point(ax,ay)}}JacobianPoint.BASE=new JacobianPoint(CURVE.Gx,CURVE.Gy,_1n);JacobianPoint.ZERO=new JacobianPoint(_0n,_1n,_0n);function constTimeNegate(condition,item){const neg=item.negate();return condition?neg:item}const pointPrecomputes=new WeakMap;class Point{constructor(x,y){this.x=x;this.y=y}_setWindowSize(windowSize){this._WINDOW_SIZE=windowSize;pointPrecomputes.delete(this)}hasEvenY(){return this.y%_2n===_0n}static fromCompressedHex(bytes){const isShort=bytes.length===32;const x=bytesToNumber(isShort?bytes:bytes.subarray(1));if(!isValidFieldElement(x))throw new Error("Point is not on curve");const y2=weierstrass(x);let y=sqrtMod(y2);const isYOdd=(y&_1n)===_1n;if(isShort){if(isYOdd)y=mod(-y)}else{const isFirstByteOdd=(bytes[0]&1)===1;if(isFirstByteOdd!==isYOdd)y=mod(-y)}const point=new Point(x,y);point.assertValidity();return point}static fromUncompressedHex(bytes){const x=bytesToNumber(bytes.subarray(1,fieldLen+1));const y=bytesToNumber(bytes.subarray(fieldLen+1,fieldLen*2+1));const point=new Point(x,y);point.assertValidity();return point}static fromHex(hex){const bytes=ensureBytes(hex);const len=bytes.length;const header=bytes[0];if(len===fieldLen)return this.fromCompressedHex(bytes);if(len===compressedLen&&(header===2||header===3)){return this.fromCompressedHex(bytes)}if(len===uncompressedLen&&header===4)return this.fromUncompressedHex(bytes);throw new Error(`Point.fromHex: received invalid point. Expected 32-${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes, not ${len}`)}static fromPrivateKey(privateKey){return Point.BASE.multiply(normalizePrivateKey(privateKey))}static fromSignature(msgHash,signature,recovery){const{r,s}=normalizeSignature(signature);if(![0,1,2,3].includes(recovery))throw new Error("Cannot recover: invalid recovery bit");const h=truncateHash(ensureBytes(msgHash));const{n}=CURVE;const radj=recovery===2||recovery===3?r+n:r;const rinv=invert(radj,n);const u1=mod(-h*rinv,n);const u2=mod(s*rinv,n);const prefix=recovery&1?"03":"02";const R=Point.fromHex(prefix+numTo32bStr(radj));const Q=Point.BASE.multiplyAndAddUnsafe(R,u1,u2);if(!Q)throw new Error("Cannot recover signature: point at infinify");Q.assertValidity();return Q}toRawBytes(isCompressed=false){return hexToBytes(this.toHex(isCompressed))}toHex(isCompressed=false){const x=numTo32bStr(this.x);if(isCompressed){const prefix=this.hasEvenY()?"02":"03";return`${prefix}${x}`}else{return`04${x}${numTo32bStr(this.y)}`}}toHexX(){return this.toHex(true).slice(2)}toRawX(){return this.toRawBytes(true).slice(1)}assertValidity(){const msg="Point is not on elliptic curve";const{x,y}=this;if(!isValidFieldElement(x)||!isValidFieldElement(y))throw new Error(msg);const left=mod(y*y);const right=weierstrass(x);if(mod(left-right)!==_0n)throw new Error(msg)}equals(other){return this.x===other.x&&this.y===other.y}negate(){return new Point(this.x,mod(-this.y))}double(){return JacobianPoint.fromAffine(this).double().toAffine()}add(other){return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine()}subtract(other){return this.add(other.negate())}multiply(scalar){return JacobianPoint.fromAffine(this).multiply(scalar,this).toAffine()}multiplyAndAddUnsafe(Q,a,b){const P=JacobianPoint.fromAffine(this);const aP=a===_0n||a===_1n||this!==Point.BASE?P.multiplyUnsafe(a):P.multiply(a);const bQ=JacobianPoint.fromAffine(Q).multiplyUnsafe(b);const sum=aP.add(bQ);return sum.equals(JacobianPoint.ZERO)?undefined:sum.toAffine()}}Point.BASE=new Point(CURVE.Gx,CURVE.Gy);Point.ZERO=new Point(_0n,_0n);function sliceDER(s){return Number.parseInt(s[0],16)>=8?"00"+s:s}function parseDERInt(data){if(data.length<2||data[0]!==2){throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`)}const len=data[1];const res=data.subarray(2,len+2);if(!len||res.length!==len){throw new Error(`Invalid signature integer: wrong length`)}if(res[0]===0&&res[1]<=127){throw new Error("Invalid signature integer: trailing length")}return{data:bytesToNumber(res),left:data.subarray(len+2)}}function parseDERSignature(data){if(data.length<2||data[0]!=48){throw new Error(`Invalid signature tag: ${bytesToHex(data)}`)}if(data[1]!==data.length-2){throw new Error("Invalid signature: incorrect length")}const{data:r,left:sBytes}=parseDERInt(data.subarray(2));const{data:s,left:rBytesLeft}=parseDERInt(sBytes);if(rBytesLeft.length){throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`)}return{r:r,s:s}}let Signature$1=class Signature{constructor(r,s){this.r=r;this.s=s;this.assertValidity()}static fromCompact(hex){const arr=hex instanceof Uint8Array;const name="Signature.fromCompact";if(typeof hex!=="string"&&!arr)throw new TypeError(`${name}: Expected string or Uint8Array`);const str=arr?bytesToHex(hex):hex;if(str.length!==128)throw new Error(`${name}: Expected 64-byte hex`);return new Signature(hexToNumber(str.slice(0,64)),hexToNumber(str.slice(64,128)))}static fromDER(hex){const arr=hex instanceof Uint8Array;if(typeof hex!=="string"&&!arr)throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);const{r,s}=parseDERSignature(arr?hex:hexToBytes(hex));return new Signature(r,s)}static fromHex(hex){return this.fromDER(hex)}assertValidity(){const{r,s}=this;if(!isWithinCurveOrder(r))throw new Error("Invalid Signature: r must be 0 < r < n");if(!isWithinCurveOrder(s))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const HALF=CURVE.n>>_1n;return this.s>HALF}normalizeS(){return this.hasHighS()?new Signature(this.r,mod(-this.s,CURVE.n)):this}toDERRawBytes(){return hexToBytes(this.toDERHex())}toDERHex(){const sHex=sliceDER(numberToHexUnpadded(this.s));const rHex=sliceDER(numberToHexUnpadded(this.r));const sHexL=sHex.length/2;const rHexL=rHex.length/2;const sLen=numberToHexUnpadded(sHexL);const rLen=numberToHexUnpadded(rHexL);const length=numberToHexUnpadded(rHexL+sHexL+4);return`30${length}02${rLen}${rHex}02${sLen}${sHex}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return hexToBytes(this.toCompactHex())}toCompactHex(){return numTo32bStr(this.r)+numTo32bStr(this.s)}};function concatBytes(...arrays){if(!arrays.every(b=>b instanceof Uint8Array))throw new Error("Uint8Array list expected");if(arrays.length===1)return arrays[0];const length=arrays.reduce((a,arr)=>a+arr.length,0);const result=new Uint8Array(length);for(let i=0,pad=0;ii.toString(16).padStart(2,"0"));function bytesToHex(uint8a){if(!(uint8a instanceof Uint8Array))throw new Error("Expected Uint8Array");let hex="";for(let i=0;i0)return BigInt(num);if(typeof num==="bigint"&&isWithinCurveOrder(num))return num;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function mod(a,b=CURVE.P){const result=a%b;return result>=_0n?result:b+result}function pow2(x,power){const{P}=CURVE;let res=x;while(power-- >_0n){res*=res;res%=P}return res}function sqrtMod(x){const{P}=CURVE;const _6n=BigInt(6);const _11n=BigInt(11);const _22n=BigInt(22);const _23n=BigInt(23);const _44n=BigInt(44);const _88n=BigInt(88);const b2=x*x*x%P;const b3=b2*b2*x%P;const b6=pow2(b3,_3n)*b3%P;const b9=pow2(b6,_3n)*b3%P;const b11=pow2(b9,_2n)*b2%P;const b22=pow2(b11,_11n)*b11%P;const b44=pow2(b22,_22n)*b22%P;const b88=pow2(b44,_44n)*b44%P;const b176=pow2(b88,_88n)*b88%P;const b220=pow2(b176,_44n)*b44%P;const b223=pow2(b220,_3n)*b3%P;const t1=pow2(b223,_23n)*b22%P;const t2=pow2(t1,_6n)*b2%P;const rt=pow2(t2,_2n);const xc=rt*rt%P;if(xc!==x)throw new Error("Cannot find square root");return rt}function invert(number,modulo=CURVE.P){if(number===_0n||modulo<=_0n){throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`)}let a=mod(number,modulo);let b=modulo;let x=_0n,u=_1n;while(a!==_0n){const q=b/a;const r=b%a;const m=x-u*q;b=a,a=r,x=u,u=m}const gcd=b;if(gcd!==_1n)throw new Error("invert: does not exist");return mod(x,modulo)}function invertBatch(nums,p=CURVE.P){const scratch=new Array(nums.length);const lastMultiplied=nums.reduce((acc,num,i)=>{if(num===_0n)return acc;scratch[i]=acc;return mod(acc*num,p)},_1n);const inverted=invert(lastMultiplied,p);nums.reduceRight((acc,num,i)=>{if(num===_0n)return acc;scratch[i]=mod(acc*scratch[i],p);return mod(acc*num,p)},inverted);return scratch}function bits2int_2(bytes){const delta=bytes.length*8-groupLen*8;const num=bytesToNumber(bytes);return delta>0?num>>BigInt(delta):num}function truncateHash(hash,truncateOnly=false){const h=bits2int_2(hash);if(truncateOnly)return h;const{n}=CURVE;return h>=n?h-n:h}let _sha256Sync;let _hmacSha256Sync;class HmacDrbg{constructor(hashLen,qByteLen){this.hashLen=hashLen;this.qByteLen=qByteLen;if(typeof hashLen!=="number"||hashLen<2)throw new Error("hashLen must be a number");if(typeof qByteLen!=="number"||qByteLen<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(hashLen).fill(1);this.k=new Uint8Array(hashLen).fill(0);this.counter=0}hmac(...values){return utils.hmacSha256(this.k,...values)}hmacSync(...values){return _hmacSha256Sync(this.k,...values)}checkSync(){if(typeof _hmacSha256Sync!=="function")throw new ShaError("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(seed=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),seed);this.v=await this.hmac(this.v);if(seed.length===0)return;this.k=await this.hmac(this.v,Uint8Array.from([1]),seed);this.v=await this.hmac(this.v)}reseedSync(seed=new Uint8Array){this.checkSync();this.k=this.hmacSync(this.v,Uint8Array.from([0]),seed);this.v=this.hmacSync(this.v);if(seed.length===0)return;this.k=this.hmacSync(this.v,Uint8Array.from([1]),seed);this.v=this.hmacSync(this.v)}async generate(){this.incr();let len=0;const out=[];while(len0){num=BigInt(key)}else if(typeof key==="string"){if(key.length!==2*groupLen)throw new Error("Expected 32 bytes of private key");num=hexToNumber(key)}else if(key instanceof Uint8Array){if(key.length!==groupLen)throw new Error("Expected 32 bytes of private key");num=bytesToNumber(key)}else{throw new TypeError("Expected valid private key")}if(!isWithinCurveOrder(num))throw new Error("Expected private key: 0 < key < n");return num}function normalizePublicKey(publicKey){if(publicKey instanceof Point){publicKey.assertValidity();return publicKey}else{return Point.fromHex(publicKey)}}function normalizeSignature(signature){if(signature instanceof Signature$1){signature.assertValidity();return signature}try{return Signature$1.fromDER(signature)}catch(error){return Signature$1.fromCompact(signature)}}function getPublicKey(privateKey,isCompressed=false){return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed)}function recoverPublicKey(msgHash,signature,recovery,isCompressed=false){return Point.fromSignature(msgHash,signature,recovery).toRawBytes(isCompressed)}function isProbPub(item){const arr=item instanceof Uint8Array;const str=typeof item==="string";const len=(arr||str)&&item.length;if(arr)return len===compressedLen||len===uncompressedLen;if(str)return len===compressedLen*2||len===uncompressedLen*2;if(item instanceof Point)return true;return false}function getSharedSecret(privateA,publicB,isCompressed=false){if(isProbPub(privateA))throw new TypeError("getSharedSecret: first arg must be private key");if(!isProbPub(publicB))throw new TypeError("getSharedSecret: second arg must be public key");const b=normalizePublicKey(publicB);b.assertValidity();return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed)}function bits2int(bytes){const slice=bytes.length>fieldLen?bytes.slice(0,fieldLen):bytes;return bytesToNumber(slice)}function bits2octets(bytes){const z1=bits2int(bytes);const z2=mod(z1,CURVE.n);return int2octets(z2<_0n?z1:z2)}function int2octets(num){return numTo32b(num)}function initSigArgs(msgHash,privateKey,extraEntropy){if(msgHash==null)throw new Error(`sign: expected valid message hash, not "${msgHash}"`);const h1=ensureBytes(msgHash);const d=normalizePrivateKey(privateKey);const seedArgs=[int2octets(d),bits2octets(h1)];if(extraEntropy!=null){if(extraEntropy===true)extraEntropy=utils.randomBytes(fieldLen);const e=ensureBytes(extraEntropy);if(e.length!==fieldLen)throw new Error(`sign: Expected ${fieldLen} bytes of extra data`);seedArgs.push(e)}const seed=concatBytes(...seedArgs);const m=bits2int(h1);return{seed:seed,m:m,d:d}}function finalizeSig(recSig,opts){const{sig,recovery}=recSig;const{der,recovered}=Object.assign({canonical:true,der:true},opts);const hashed=der?sig.toDERRawBytes():sig.toCompactRawBytes();return recovered?[hashed,recovery]:hashed}function signSync(msgHash,privKey,opts={}){const{seed,m,d}=initSigArgs(msgHash,privKey,opts.extraEntropy);const drbg=new HmacDrbg(hashLen,groupLen);drbg.reseedSync(seed);let sig;while(!(sig=kmdToSig(drbg.generateSync(),m,d,opts.canonical)))drbg.reseedSync();return finalizeSig(sig,opts)}Point.BASE._setWindowSize(8);const crypto={node:nodeCrypto,web:typeof self==="object"&&"crypto"in self?self.crypto:undefined};const TAGGED_HASH_PREFIXES={};const utils={bytesToHex:bytesToHex,hexToBytes:hexToBytes,concatBytes:concatBytes,mod:mod,invert:invert,isValidPrivateKey(privateKey){try{normalizePrivateKey(privateKey);return true}catch(error){return false}},_bigintTo32Bytes:numTo32b,_normalizePrivateKey:normalizePrivateKey,hashToPrivateKey:hash=>{hash=ensureBytes(hash);const minLen=groupLen+8;if(hash.length1024){throw new Error(`Expected valid bytes of private key as per FIPS 186`)}const num=mod(bytesToNumber(hash),CURVE.n-_1n)+_1n;return numTo32b(num)},randomBytes:(bytesLength=32)=>{if(crypto.web){return crypto.web.getRandomValues(new Uint8Array(bytesLength))}else if(crypto.node){const{randomBytes}=crypto.node;return Uint8Array.from(randomBytes(bytesLength))}else{throw new Error("The environment doesn't have randomBytes function")}},randomPrivateKey:()=>utils.hashToPrivateKey(utils.randomBytes(groupLen+8)),precompute(windowSize=8,point=Point.BASE){const cached=point===Point.BASE?point:new Point(point.x,point.y);cached._setWindowSize(windowSize);cached.multiply(_3n);return cached},sha256:async(...messages)=>{if(crypto.web){const buffer=await crypto.web.subtle.digest("SHA-256",concatBytes(...messages));return new Uint8Array(buffer)}else if(crypto.node){const{createHash}=crypto.node;const hash=createHash("sha256");messages.forEach(m=>hash.update(m));return Uint8Array.from(hash.digest())}else{throw new Error("The environment doesn't have sha256 function")}},hmacSha256:async(key,...messages)=>{if(crypto.web){const ckey=await crypto.web.subtle.importKey("raw",key,{name:"HMAC",hash:{name:"SHA-256"}},false,["sign"]);const message=concatBytes(...messages);const buffer=await crypto.web.subtle.sign("HMAC",ckey,message);return new Uint8Array(buffer)}else if(crypto.node){const{createHmac}=crypto.node;const hash=createHmac("sha256",key);messages.forEach(m=>hash.update(m));return Uint8Array.from(hash.digest())}else{throw new Error("The environment doesn't have hmac-sha256 function")}},sha256Sync:undefined,hmacSha256Sync:undefined,taggedHash:async(tag,...messages)=>{let tagP=TAGGED_HASH_PREFIXES[tag];if(tagP===undefined){const tagH=await utils.sha256(Uint8Array.from(tag,c=>c.charCodeAt(0)));tagP=concatBytes(tagH,tagH);TAGGED_HASH_PREFIXES[tag]=tagP}return utils.sha256(tagP,...messages)},taggedHashSync:(tag,...messages)=>{if(typeof _sha256Sync!=="function")throw new ShaError("sha256Sync is undefined, you need to set it");let tagP=TAGGED_HASH_PREFIXES[tag];if(tagP===undefined){const tagH=_sha256Sync(Uint8Array.from(tag,c=>c.charCodeAt(0)));tagP=concatBytes(tagH,tagH);TAGGED_HASH_PREFIXES[tag]=tagP}return _sha256Sync(tagP,...messages)},_JacobianPoint:JacobianPoint};Object.defineProperties(utils,{sha256Sync:{configurable:false,get(){return _sha256Sync},set(val){if(!_sha256Sync)_sha256Sync=val}},hmacSha256Sync:{configurable:false,get(){return _hmacSha256Sync},set(val){if(!_hmacSha256Sync)_hmacSha256Sync=val}}});const ZeroAddress="0x0000000000000000000000000000000000000000";const ZeroHash="0x0000000000000000000000000000000000000000000000000000000000000000";const N$1=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");const WeiPerEther=BigInt("1000000000000000000");const MaxUint256=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const MinInt256=BigInt("0x8000000000000000000000000000000000000000000000000000000000000000")*BigInt(-1);const MaxInt256=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const EtherSymbol="Ξ";const MessagePrefix="Ethereum Signed Message:\n";const BN_0$7=BigInt(0);const BN_1$3=BigInt(1);const BN_2$3=BigInt(2);const BN_27$1=BigInt(27);const BN_28$1=BigInt(28);const BN_35$1=BigInt(35);const _guard$3={};function toUint256(value){return zeroPadValue(toBeArray(value),32)}class Signature{#r;#s;#v;#networkV;get r(){return this.#r}set r(value){assertArgument(dataLength(value)===32,"invalid r","value",value);this.#r=hexlify(value)}get s(){return this.#s}set s(_value){assertArgument(dataLength(_value)===32,"invalid s","value",_value);const value=hexlify(_value);assertArgument(parseInt(value.substring(0,3))<8,"non-canonical s","value",value);this.#s=value}get v(){return this.#v}set v(value){const v=getNumber(value,"value");assertArgument(v===27||v===28,"invalid v","v",value);this.#v=v}get networkV(){return this.#networkV}get legacyChainId(){const v=this.networkV;if(v==null){return null}return Signature.getChainId(v)}get yParity(){return this.v===27?0:1}get yParityAndS(){const yParityAndS=getBytes(this.s);if(this.yParity){yParityAndS[0]|=128}return hexlify(yParityAndS)}get compactSerialized(){return concat([this.r,this.yParityAndS])}get serialized(){return concat([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(guard,r,s,v){assertPrivate(guard,_guard$3,"Signature");this.#r=r;this.#s=s;this.#v=v;this.#networkV=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const clone=new Signature(_guard$3,this.r,this.s,this.v);if(this.networkV){clone.#networkV=this.networkV}return clone}toJSON(){const networkV=this.networkV;return{_type:"signature",networkV:networkV!=null?networkV.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(v){const bv=getBigInt(v,"v");if(bv==BN_27$1||bv==BN_28$1){return BN_0$7}assertArgument(bv>=BN_35$1,"invalid EIP-155 v","v",v);return(bv-BN_35$1)/BN_2$3}static getChainIdV(chainId,v){return getBigInt(chainId)*BN_2$3+BigInt(35+v-27)}static getNormalizedV(v){const bv=getBigInt(v);if(bv===BN_0$7||bv===BN_27$1){return 27}if(bv===BN_1$3||bv===BN_28$1){return 28}assertArgument(bv>=BN_35$1,"invalid v","v",v);return bv&BN_1$3?27:28}static from(sig){function assertError(check,message){assertArgument(check,message,"signature",sig)}if(sig==null){return new Signature(_guard$3,ZeroHash,ZeroHash,27)}if(typeof sig==="string"){const bytes=getBytes(sig,"signature");if(bytes.length===64){const r=hexlify(bytes.slice(0,32));const s=bytes.slice(32,64);const v=s[0]&128?28:27;s[0]&=127;return new Signature(_guard$3,r,hexlify(s),v)}if(bytes.length===65){const r=hexlify(bytes.slice(0,32));const s=bytes.slice(32,64);assertError((s[0]&128)===0,"non-canonical s");const v=Signature.getNormalizedV(bytes[64]);return new Signature(_guard$3,r,hexlify(s),v)}assertError(false,"invalid raw signature length")}if(sig instanceof Signature){return sig.clone()}const _r=sig.r;assertError(_r!=null,"missing r");const r=toUint256(_r);const s=function(s,yParityAndS){if(s!=null){return toUint256(s)}if(yParityAndS!=null){assertError(isHexString(yParityAndS,32),"invalid yParityAndS");const bytes=getBytes(yParityAndS);bytes[0]&=127;return hexlify(bytes)}assertError(false,"missing s")}(sig.s,sig.yParityAndS);assertError((getBytes(s)[0]&128)==0,"non-canonical s");const{networkV,v}=function(_v,yParityAndS,yParity){if(_v!=null){const v=getBigInt(_v);return{networkV:v>=BN_35$1?v:undefined,v:Signature.getNormalizedV(v)}}if(yParityAndS!=null){assertError(isHexString(yParityAndS,32),"invalid yParityAndS");return{v:getBytes(yParityAndS)[0]&128?28:27}}if(yParity!=null){switch(getNumber(yParity,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}assertError(false,"invalid yParity")}assertError(false,"missing v")}(sig.v,sig.yParityAndS,sig.yParity);const result=new Signature(_guard$3,r,s,v);if(networkV){result.#networkV=networkV}assertError(sig.yParity==null||getNumber(sig.yParity,"sig.yParity")===result.yParity,"yParity mismatch");assertError(sig.yParityAndS==null||sig.yParityAndS===result.yParityAndS,"yParityAndS mismatch");return result}}utils.hmacSha256Sync=function(key,...messages){return getBytes(computeHmac("sha256",key,concat(messages)))};class SigningKey{#privateKey;constructor(privateKey){assertArgument(dataLength(privateKey)===32,"invalid private key","privateKey","[REDACTED]");this.#privateKey=hexlify(privateKey)}get privateKey(){return this.#privateKey}get publicKey(){return SigningKey.computePublicKey(this.#privateKey)}get compressedPublicKey(){return SigningKey.computePublicKey(this.#privateKey,true)}sign(digest){assertArgument(dataLength(digest)===32,"invalid digest length","digest",digest);const[sigDer,recid]=signSync(getBytesCopy(digest),getBytesCopy(this.#privateKey),{recovered:true,canonical:true});const sig=Signature$1.fromHex(sigDer);return Signature.from({r:toBeHex("0x"+sig.r.toString(16),32),s:toBeHex("0x"+sig.s.toString(16),32),v:recid?28:27})}computeSharedSecret(other){const pubKey=SigningKey.computePublicKey(other);return hexlify(getSharedSecret(getBytesCopy(this.#privateKey),getBytes(pubKey)))}static computePublicKey(key,compressed){let bytes=getBytes(key,"key");if(bytes.length===32){const pubKey=getPublicKey(bytes,!!compressed);return hexlify(pubKey)}if(bytes.length===64){const pub=new Uint8Array(65);pub[0]=4;pub.set(bytes,1);bytes=pub}const point=Point.fromHex(bytes);return hexlify(point.toRawBytes(compressed))}static recoverPublicKey(digest,signature){assertArgument(dataLength(digest)===32,"invalid digest length","digest",digest);const sig=Signature.from(signature);const der=Signature$1.fromCompact(getBytesCopy(concat([sig.r,sig.s]))).toDERRawBytes();const pubKey=recoverPublicKey(getBytesCopy(digest),der,sig.yParity);assertArgument(pubKey!=null,"invalid signautre for digest","signature",signature);return hexlify(pubKey)}static addPoints(p0,p1,compressed){const pub0=Point.fromHex(SigningKey.computePublicKey(p0).substring(2));const pub1=Point.fromHex(SigningKey.computePublicKey(p1).substring(2));return"0x"+pub0.add(pub1).toHex(!!compressed)}}function lock(){computeHmac.lock();keccak256.lock();pbkdf2.lock();randomBytes.lock();ripemd160.lock();scrypt.lock();scryptSync.lock();sha256.lock();sha512.lock();randomBytes.lock()}const BN_0$6=BigInt(0);const BN_36=BigInt(36);function getChecksumAddress(address){address=address.toLowerCase();const chars=address.substring(2).split("");const expanded=new Uint8Array(40);for(let i=0;i<40;i++){expanded[i]=chars[i].charCodeAt(0)}const hashed=getBytes(keccak256(expanded));for(let i=0;i<40;i+=2){if(hashed[i>>1]>>4>=8){chars[i]=chars[i].toUpperCase()}if((hashed[i>>1]&15)>=8){chars[i+1]=chars[i+1].toUpperCase()}}return"0x"+chars.join("")}const ibanLookup={};for(let i=0;i<10;i++){ibanLookup[String(i)]=String(i)}for(let i=0;i<26;i++){ibanLookup[String.fromCharCode(65+i)]=String(10+i)}const safeDigits=15;function ibanChecksum(address){address=address.toUpperCase();address=address.substring(4)+address.substring(0,2)+"00";let expanded=address.split("").map(c=>{return ibanLookup[c]}).join("");while(expanded.length>=safeDigits){let block=expanded.substring(0,safeDigits);expanded=parseInt(block,10)%97+expanded.substring(block.length)}let checksum=String(98-parseInt(expanded,10)%97);while(checksum.length<2){checksum="0"+checksum}return checksum}const Base36=function(){const result={};for(let i=0;i<36;i++){const key="0123456789abcdefghijklmnopqrstuvwxyz"[i];result[key]=BigInt(i)}return result}();function fromBase36(value){value=value.toLowerCase();let result=BN_0$6;for(let i=0;iv.format()).join(",")})`}return this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple"){throw TypeError("not a tuple")}return this.#options}get arrayLength(){if(this.type!=="array"){throw TypeError("not an array")}if(this.#options===true){return-1}if(this.#options===false){return this.value.length}return null}static from(type,value){return new Typed(_gaurd,type,value)}static uint8(v){return n(v,8)}static uint16(v){return n(v,16)}static uint24(v){return n(v,24)}static uint32(v){return n(v,32)}static uint40(v){return n(v,40)}static uint48(v){return n(v,48)}static uint56(v){return n(v,56)}static uint64(v){return n(v,64)}static uint72(v){return n(v,72)}static uint80(v){return n(v,80)}static uint88(v){return n(v,88)}static uint96(v){return n(v,96)}static uint104(v){return n(v,104)}static uint112(v){return n(v,112)}static uint120(v){return n(v,120)}static uint128(v){return n(v,128)}static uint136(v){return n(v,136)}static uint144(v){return n(v,144)}static uint152(v){return n(v,152)}static uint160(v){return n(v,160)}static uint168(v){return n(v,168)}static uint176(v){return n(v,176)}static uint184(v){return n(v,184)}static uint192(v){return n(v,192)}static uint200(v){return n(v,200)}static uint208(v){return n(v,208)}static uint216(v){return n(v,216)}static uint224(v){return n(v,224)}static uint232(v){return n(v,232)}static uint240(v){return n(v,240)}static uint248(v){return n(v,248)}static uint256(v){return n(v,256)}static uint(v){return n(v,256)}static int8(v){return n(v,-8)}static int16(v){return n(v,-16)}static int24(v){return n(v,-24)}static int32(v){return n(v,-32)}static int40(v){return n(v,-40)}static int48(v){return n(v,-48)}static int56(v){return n(v,-56)}static int64(v){return n(v,-64)}static int72(v){return n(v,-72)}static int80(v){return n(v,-80)}static int88(v){return n(v,-88)}static int96(v){return n(v,-96)}static int104(v){return n(v,-104)}static int112(v){return n(v,-112)}static int120(v){return n(v,-120)}static int128(v){return n(v,-128)}static int136(v){return n(v,-136)}static int144(v){return n(v,-144)}static int152(v){return n(v,-152)}static int160(v){return n(v,-160)}static int168(v){return n(v,-168)}static int176(v){return n(v,-176)}static int184(v){return n(v,-184)}static int192(v){return n(v,-192)}static int200(v){return n(v,-200)}static int208(v){return n(v,-208)}static int216(v){return n(v,-216)}static int224(v){return n(v,-224)}static int232(v){return n(v,-232)}static int240(v){return n(v,-240)}static int248(v){return n(v,-248)}static int256(v){return n(v,-256)}static int(v){return n(v,-256)}static bytes1(v){return b(v,1)}static bytes2(v){return b(v,2)}static bytes3(v){return b(v,3)}static bytes4(v){return b(v,4)}static bytes5(v){return b(v,5)}static bytes6(v){return b(v,6)}static bytes7(v){return b(v,7)}static bytes8(v){return b(v,8)}static bytes9(v){return b(v,9)}static bytes10(v){return b(v,10)}static bytes11(v){return b(v,11)}static bytes12(v){return b(v,12)}static bytes13(v){return b(v,13)}static bytes14(v){return b(v,14)}static bytes15(v){return b(v,15)}static bytes16(v){return b(v,16)}static bytes17(v){return b(v,17)}static bytes18(v){return b(v,18)}static bytes19(v){return b(v,19)}static bytes20(v){return b(v,20)}static bytes21(v){return b(v,21)}static bytes22(v){return b(v,22)}static bytes23(v){return b(v,23)}static bytes24(v){return b(v,24)}static bytes25(v){return b(v,25)}static bytes26(v){return b(v,26)}static bytes27(v){return b(v,27)}static bytes28(v){return b(v,28)}static bytes29(v){return b(v,29)}static bytes30(v){return b(v,30)}static bytes31(v){return b(v,31)}static bytes32(v){return b(v,32)}static address(v){return new Typed(_gaurd,"address",v)}static bool(v){return new Typed(_gaurd,"bool",!!v)}static bytes(v){return new Typed(_gaurd,"bytes",v)}static string(v){return new Typed(_gaurd,"string",v)}static array(v,dynamic){throw new Error("not implemented yet")}static tuple(v,name){throw new Error("not implemented yet")}static overrides(v){return new Typed(_gaurd,"overrides",Object.assign({},v))}static isTyped(value){return value&&typeof value==="object"&&"_typedSymbol"in value&&value._typedSymbol===_typedSymbol}static dereference(value,type){if(Typed.isTyped(value)){if(value.type!==type){throw new Error(`invalid type: expecetd ${type}, got ${value.type}`)}return value.value}return value}}class AddressCoder extends Coder{constructor(localName){super("address","address",localName,false)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(writer,_value){let value=Typed.dereference(_value,"string");try{value=getAddress(value)}catch(error){return this._throwError(error.message,_value)}return writer.writeValue(value)}decode(reader){return getAddress(toBeHex(reader.readValue(),20))}}class AnonymousCoder extends Coder{coder;constructor(coder){super(coder.name,coder.type,"_",coder.dynamic);this.coder=coder}defaultValue(){return this.coder.defaultValue()}encode(writer,value){return this.coder.encode(writer,value)}decode(reader){return this.coder.decode(reader)}}function pack(writer,coders,values){let arrayValues=[];if(Array.isArray(values)){arrayValues=values}else if(values&&typeof values==="object"){let unique={};arrayValues=coders.map(coder=>{const name=coder.localName;assert$1(name,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:coder},value:values});assert$1(!unique[name],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:coder},value:values});unique[name]=true;return values[name]})}else{assertArgument(false,"invalid tuple value","tuple",values)}assertArgument(coders.length===arrayValues.length,"types/value length mismatch","tuple",values);let staticWriter=new Writer;let dynamicWriter=new Writer;let updateFuncs=[];coders.forEach((coder,index)=>{let value=arrayValues[index];if(coder.dynamic){let dynamicOffset=dynamicWriter.length;coder.encode(dynamicWriter,value);let updateFunc=staticWriter.writeUpdatableValue();updateFuncs.push(baseOffset=>{updateFunc(baseOffset+dynamicOffset)})}else{coder.encode(staticWriter,value)}});updateFuncs.forEach(func=>{func(staticWriter.length)});let length=writer.appendWriter(staticWriter);length+=writer.appendWriter(dynamicWriter);return length}function unpack(reader,coders){let values=[];let keys=[];let baseReader=reader.subReader(0);coders.forEach(coder=>{let value=null;if(coder.dynamic){let offset=reader.readIndex();let offsetReader=baseReader.subReader(offset);try{value=coder.decode(offsetReader)}catch(error){if(isError(error,"BUFFER_OVERRUN")){throw error}value=error;value.baseType=coder.name;value.name=coder.localName;value.type=coder.type}}else{try{value=coder.decode(reader)}catch(error){if(isError(error,"BUFFER_OVERRUN")){throw error}value=error;value.baseType=coder.name;value.name=coder.localName;value.type=coder.type}}if(value==undefined){throw new Error("investigate")}values.push(value);keys.push(coder.localName||null)});return Result.fromItems(values,keys)}class ArrayCoder extends Coder{coder;length;constructor(coder,length,localName){const type=coder.type+"["+(length>=0?length:"")+"]";const dynamic=length===-1||coder.dynamic;super("array",type,localName,dynamic);defineProperties(this,{coder:coder,length:length})}defaultValue(){const defaultChild=this.coder.defaultValue();const result=[];for(let i=0;ibounds||value<-(bounds+BN_1$2)){this._throwError("value out-of-bounds",_value)}value=toTwos(value,8*WordSize)}else if(valuemask(maxUintValue,this.size*8)){this._throwError("value out-of-bounds",_value)}return writer.writeValue(value)}decode(reader){let value=mask(reader.readValue(),this.size*8);if(this.signed){value=fromTwos(value,this.size*8)}return value}}class StringCoder extends DynamicBytesCoder{constructor(localName){super("string",localName)}defaultValue(){return""}encode(writer,_value){return super.encode(writer,toUtf8Bytes(Typed.dereference(_value,"string")))}decode(reader){return toUtf8String(super.decode(reader))}}class TupleCoder extends Coder{coders;constructor(coders,localName){let dynamic=false;const types=[];coders.forEach(coder=>{if(coder.dynamic){dynamic=true}types.push(coder.type)});const type="tuple("+types.join(",")+")";super("tuple",type,localName,dynamic);defineProperties(this,{coders:Object.freeze(coders.slice())})}defaultValue(){const values=[];this.coders.forEach(coder=>{values.push(coder.defaultValue())});const uniqueNames=this.coders.reduce((accum,coder)=>{const name=coder.localName;if(name){if(!accum[name]){accum[name]=0}accum[name]++}return accum},{});this.coders.forEach((coder,index)=>{let name=coder.localName;if(!name||uniqueNames[name]!==1){return}if(name==="length"){name="_length"}if(values[name]!=null){return}values[name]=values[index]});return Object.freeze(values)}encode(writer,_value){const value=Typed.dereference(_value,"tuple");return pack(writer,this.coders,value)}decode(reader){return unpack(reader,this.coders)}}function id(value){return keccak256(toUtf8Bytes(value))}function decode_arithmetic(bytes){let pos=0;function u16(){return bytes[pos++]<<8|bytes[pos++]}let symbol_count=u16();let total=1;let acc=[0,1];for(let i=1;i>--read_width&1}const N=31;const FULL=2**N;const HALF=FULL>>>1;const QRTR=HALF>>1;const MASK=FULL-1;let register=0;for(let i=0;i1){let mid=start+end>>>1;if(value>>1|read_bit();a=a<<1^HALF;b=(b^HALF)<<1|HALF|1}low=a;range=1+b-a}let offset=symbol_count-4;return symbols.map(x=>{switch(x-offset){case 3:return offset+65792+(bytes[pos_payload++]<<16|bytes[pos_payload++]<<8|bytes[pos_payload++]);case 2:return offset+256+(bytes[pos_payload++]<<8|bytes[pos_payload++]);case 1:return offset+bytes[pos_payload++];default:return x-1}})}function read_payload(v){let pos=0;return()=>v[pos++]}function read_compressed_payload(s){return read_payload(decode_arithmetic(unsafe_atob(s)))}function unsafe_atob(s){let lookup=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((c,i)=>lookup[c.charCodeAt(0)]=i);let n=s.length;let ret=new Uint8Array(6*n>>3);for(let i=0,pos=0,width=0,carry=0;i=8){ret[pos++]=carry>>(width-=8)}}return ret}function signed(i){return i&1?~i>>1:i>>1}function read_deltas(n,next){let v=Array(n);for(let i=0,x=0;i{let v=read_sorted(next);if(v.length)return v})}function read_mapped(next){let ret=[];while(true){let w=next();if(w==0)break;ret.push(read_linear_table(w,next))}while(true){let w=next()-1;if(w<0)break;ret.push(read_replacement_table(w,next))}return ret.flat()}function read_array_while(next){let v=[];while(true){let x=next(v.length);if(!x)break;v.push(x)}return v}function read_transposed(n,w,next){let m=Array(n).fill().map(()=>[]);for(let i=0;im[j].push(x))}return m}function read_linear_table(w,next){let dx=1+next();let dy=next();let vN=read_array_while(next);let m=read_transposed(vN.length,1+w,next);return m.flatMap((v,i)=>{let[x,...ys]=v;return Array(vN[i]).fill().map((_,j)=>{let j_dy=j*dy;return[x+j*dx,ys.map(y=>y+j_dy)]})})}function read_replacement_table(w,next){let n=1+next();let m=read_transposed(n,1+w,next);return m.map(v=>[v[0],v.slice(1)])}var r$1=read_compressed_payload("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");const FENCED=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]);const NSM_MAX=4;function hex_cp(cp){return cp.toString(16).toUpperCase().padStart(2,"0")}function quote_cp(cp){return`{${hex_cp(cp)}}`}function explode_cp(s){let cps=[];for(let pos=0,len=s.length;pos>24&255}function unpack_cp(packed){return packed&16777215}const SHIFTED_RANK=new Map(read_sorted_arrays(r).flatMap((v,i)=>v.map(x=>[x,i+1<<24])));const EXCLUSIONS=new Set(read_sorted(r));const DECOMP=new Map;const RECOMP=new Map;for(let[cp,cps]of read_mapped(r)){if(!EXCLUSIONS.has(cp)&&cps.length==2){let[a,b]=cps;let bucket=RECOMP.get(a);if(!bucket){bucket=new Map;RECOMP.set(a,bucket)}bucket.set(b,cp)}DECOMP.set(cp,cps.reverse())}const S0=44032;const L0=4352;const V0=4449;const T0=4519;const L_COUNT=19;const V_COUNT=21;const T_COUNT=28;const N_COUNT=V_COUNT*T_COUNT;const S_COUNT=L_COUNT*N_COUNT;const S1=S0+S_COUNT;const L1=L0+L_COUNT;const V1=V0+V_COUNT;const T1$1=T0+T_COUNT;function is_hangul(cp){return cp>=S0&&cp=L0&&a=V0&&bT0&&b0)add(T0+t_index)}else{let mapped=DECOMP.get(cp);if(mapped){buf.push(...mapped)}else{add(cp)}}if(!buf.length)break;cp=buf.pop()}}if(check_order&&ret.length>1){let prev_cc=unpack_cc(ret[0]);for(let i=1;i0&&prev_cc>=cc){if(cc==0){ret.push(prev_cp,...stack);stack.length=0;prev_cp=cp}else{stack.push(cp)}prev_cc=cc}else{let composed=compose_pair(prev_cp,cp);if(composed>=0){prev_cp=composed}else if(prev_cc==0&&cc==0){ret.push(prev_cp);prev_cp=cp}else{stack.push(cp);prev_cc=cc}}}if(prev_cp>=0){ret.push(prev_cp,...stack)}return ret}function nfd(cps){return decomposed(cps).map(unpack_cp)}function nfc(cps){return composed_from_decomposed(decomposed(cps))}const FE0F=65039;const STOP_CH=".";const UNIQUE_PH=1;const HYPHEN=45;function read_set(){return new Set(read_sorted(r$1))}const MAPPED=new Map(read_mapped(r$1));const IGNORED=read_set();const CM=read_set();const NSM=new Set(read_sorted(r$1).map(function(i){return this[i]},[...CM]));const ESCAPE=read_set();read_set();const CHUNKS=read_sorted_arrays(r$1);function read_chunked(){return new Set([read_sorted(r$1).map(i=>CHUNKS[i]),read_sorted(r$1)].flat(2))}const UNRESTRICTED=r$1();const GROUPS=read_array_while(i=>{let N=read_array_while(r$1).map(x=>x+96);if(N.length){let R=i>=UNRESTRICTED;N[0]-=32;N=str_from_cps(N);if(R)N=`Restricted[${N}]`;let P=read_chunked();let Q=read_chunked();let V=[...P,...Q].sort((a,b)=>a-b);let M=!r$1();return{N:N,P:P,M:M,R:R,V:new Set(V)}}});const WHOLE_VALID=read_set();const WHOLE_MAP=new Map;[...WHOLE_VALID,...read_set()].sort((a,b)=>a-b).map((cp,i,v)=>{let d=r$1();let w=v[i]=d?v[i-d]:{V:[],M:new Map};w.V.push(cp);if(!WHOLE_VALID.has(cp)){WHOLE_MAP.set(cp,w)}});for(let{V,M}of new Set(WHOLE_MAP.values())){let recs=[];for(let cp of V){let gs=GROUPS.filter(g=>g.V.has(cp));let rec=recs.find(({G})=>gs.some(g=>G.has(g)));if(!rec){rec={G:new Set,V:[]};recs.push(rec)}rec.V.push(cp);gs.forEach(g=>rec.G.add(g))}let union=recs.flatMap(({G})=>[...G]);for(let{G,V}of recs){let complement=new Set(union.filter(g=>!G.has(g)));for(let cp of V){M.set(cp,complement)}}}let union=new Set;let multi=new Set;for(let g of GROUPS){for(let cp of g.V){(union.has(cp)?multi:union).add(cp)}}for(let cp of union){if(!WHOLE_MAP.has(cp)&&!multi.has(cp)){WHOLE_MAP.set(cp,UNIQUE_PH)}}const VALID=new Set([...union,...nfd(union)]);const EMOJI_SORTED=read_sorted(r$1);const EMOJI_ROOT=read_emoji_trie([]);function read_emoji_trie(cps){let B=read_array_while(()=>{let keys=read_sorted(r$1).map(i=>EMOJI_SORTED[i]);if(keys.length)return read_emoji_trie(keys)}).sort((a,b)=>b.Q.size-a.Q.size);let temp=r$1();let V=temp%3;temp=temp/3|0;let F=temp&1;temp>>=1;let S=temp&1;let C=temp&2;return{B:B,V:V,F:F,S:S,C:C,Q:new Set(cps)}}class Emoji extends Array{get is_emoji(){return true}}function safe_str_from_cps(cps,quoter=quote_cp){let buf=[];if(is_combining_mark(cps[0]))buf.push("◌");let prev=0;let n=cps.length;for(let i=0;i=4&&cps[2]==HYPHEN&&cps[3]==HYPHEN){throw new Error("invalid label extension")}}function check_leading_underscore(cps){const UNDERSCORE=95;for(let i=cps.lastIndexOf(UNDERSCORE);i>0;){if(cps[--i]!==UNDERSCORE){throw new Error("underscore allowed only at start")}}}function check_fenced(cps){let cp=cps[0];let prev=FENCED.get(cp);if(prev)throw error_placement(`leading ${prev}`);let n=cps.length;let last=-1;for(let i=1;i{let input=explode_cp(label);let info={input:input,offset:offset};offset+=input.length+1;let norm;try{let tokens=info.tokens=process(input,nfc);let token_count=tokens.length;let type;if(!token_count){throw new Error(`empty label`)}else{let chars=tokens[0];let emoji=token_count>1||chars.is_emoji;if(!emoji&&chars.every(cp=>cp<128)){norm=chars;check_leading_underscore(norm);check_label_extension(norm);type="ASCII"}else{if(emoji){info.emoji=true;chars=tokens.flatMap(x=>x.is_emoji?[]:x)}norm=tokens.flatMap(x=>!preserve_emoji&&x.is_emoji?filter_fe0f(x):x);check_leading_underscore(norm);if(!chars.length){type="Emoji"}else{if(CM.has(norm[0]))throw error_placement("leading combining mark");for(let i=1;iset.has(g)):[...set];if(!maker.length)return}else{shared.push(cp)}}if(maker){for(let g of maker){if(shared.every(cp=>g.V.has(cp))){throw new Error(`whole-script confusable: ${group.N}/${g.N}`)}}}}function determine_group(unique){let groups=GROUPS;for(let cp of unique){let gs=groups.filter(g=>g.V.has(cp));if(!gs.length){if(groups===GROUPS){throw error_disallowed(cp)}else{throw error_group_member(groups[0],cp)}}groups=gs;if(gs.length==1)break}return groups}function flatten(split){return split.map(({input,error,output})=>{if(error){let msg=error.message;throw new Error(split.length==1?msg:`Invalid label ${bidi_qq(safe_str_from_cps(input))}: ${msg}`)}return str_from_cps(output)}).join(STOP_CH)}function error_disallowed(cp){return new Error(`disallowed character: ${quoted_cp(cp)}`)}function error_group_member(g,cp){let quoted=quoted_cp(cp);let gg=GROUPS.find(g=>g.P.has(cp));if(gg){quoted=`${gg.N} ${quoted}`}return new Error(`illegal mixture: ${g.N} + ${quoted}`)}function error_placement(where){return new Error(`illegal placement: ${where}`)}function check_group(g,cps){let{V,M}=g;for(let cp of cps){if(!V.has(cp)){throw error_group_member(g,cp)}}if(M){let decomposed=nfd(cps);for(let i=1,e=decomposed.length;iNSM_MAX){throw new Error(`non-spacing marks: too many ${bidi_qq(safe_str_from_cps(decomposed.slice(i-1,j)))} (${j-i}/${NSM_MAX})`)}i=j}}}}function process(input,nf){let ret=[];let chars=[];input=input.slice().reverse();while(input.length){let emoji=consume_emoji_reversed(input);if(emoji){if(chars.length){ret.push(nf(chars));chars=[]}ret.push(emoji)}else{let cp=input.pop();if(VALID.has(cp)){chars.push(cp)}else{let cps=MAPPED.get(cp);if(cps){chars.push(...cps)}else if(!IGNORED.has(cp)){throw error_disallowed(cp)}}}}if(chars.length){ret.push(nf(chars))}return ret}function filter_fe0f(cps){return cps.filter(cp=>cp!=FE0F)}function consume_emoji_reversed(cps,eaten){let node=EMOJI_ROOT;let emoji;let saved;let stack=[];let pos=cps.length;if(eaten)eaten.length=0;while(pos){let cp=cps[--pos];node=node.B.find(x=>x.Q.has(cp));if(!node)break;if(node.S){saved=cp}else if(node.C){if(cp===saved)break}stack.push(cp);if(node.F){stack.push(FE0F);if(pos>0&&cps[pos-1]==FE0F)pos--}if(node.V){emoji=conform_emoji_copy(stack,node);if(eaten)eaten.push(...cps.slice(pos).reverse());cps.length=pos}}return emoji}function conform_emoji_copy(cps,node){let copy=Emoji.from(cps);if(node.V==2)copy.splice(1,1);return copy}const Zeros=new Uint8Array(32);Zeros.fill(0);function checkComponent(comp){assertArgument(comp.length!==0,"invalid ENS name; empty component","comp",comp);return comp}function ensNameSplit(name){const bytes=toUtf8Bytes(ensNormalize(name));const comps=[];if(name.length===0){return comps}let last=0;for(let i=0;i{if(comp.length>63){throw new Error("invalid DNS encoded entry; length exceeds 63 bytes")}const bytes=new Uint8Array(comp.length+1);bytes.set(comp,1);bytes[0]=bytes.length-1;return bytes})))+"00"}function accessSetify(addr,storageKeys){return{address:getAddress(addr),storageKeys:storageKeys.map((storageKey,index)=>{assertArgument(isHexString(storageKey,32),"invalid slot",`storageKeys[${index}]`,storageKey);return storageKey.toLowerCase()})}}function accessListify(value){if(Array.isArray(value)){return value.map((set,index)=>{if(Array.isArray(set)){assertArgument(set.length===2,"invalid slot set",`value[${index}]`,set);return accessSetify(set[0],set[1])}assertArgument(set!=null&&typeof set==="object","invalid address-slot set","value",value);return accessSetify(set.address,set.storageKeys)})}assertArgument(value!=null&&typeof value==="object","invalid access list","value",value);const result=Object.keys(value).map(addr=>{const storageKeys=value[addr].reduce((accum,storageKey)=>{accum[storageKey]=true;return accum},{});return accessSetify(addr,Object.keys(storageKeys).sort())});result.sort((a,b)=>a.address.localeCompare(b.address));return result}function computeAddress(key){let pubkey;if(typeof key==="string"){pubkey=SigningKey.computePublicKey(key,false)}else{pubkey=key.publicKey}return getAddress(keccak256("0x"+pubkey.substring(4)).substring(26))}function recoverAddress(digest,signature){return computeAddress(SigningKey.recoverPublicKey(digest,signature))}const BN_0$4=BigInt(0);const BN_2$2=BigInt(2);const BN_27=BigInt(27);const BN_28=BigInt(28);const BN_35=BigInt(35);const BN_MAX_UINT=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function handleAddress(value){if(value==="0x"){return null}return getAddress(value)}function handleAccessList(value,param){try{return accessListify(value)}catch(error){assertArgument(false,error.message,param,value)}}function handleNumber(_value,param){if(_value==="0x"){return 0}return getNumber(_value,param)}function handleUint(_value,param){if(_value==="0x"){return BN_0$4}const value=getBigInt(_value,param);assertArgument(value<=BN_MAX_UINT,"value exceeds uint size",param,value);return value}function formatNumber(_value,name){const value=getBigInt(_value,"value");const result=toBeArray(value);assertArgument(result.length<=32,`value too large`,`tx.${name}`,value);return result}function formatAccessList(value){return accessListify(value).map(set=>[set.address,set.storageKeys])}function _parseLegacy(data){const fields=decodeRlp(data);assertArgument(Array.isArray(fields)&&(fields.length===9||fields.length===6),"invalid field count for legacy transaction","data",data);const tx={type:0,nonce:handleNumber(fields[0],"nonce"),gasPrice:handleUint(fields[1],"gasPrice"),gasLimit:handleUint(fields[2],"gasLimit"),to:handleAddress(fields[3]),value:handleUint(fields[4],"value"),data:hexlify(fields[5]),chainId:BN_0$4};if(fields.length===6){return tx}const v=handleUint(fields[6],"v");const r=handleUint(fields[7],"r");const s=handleUint(fields[8],"s");if(r===BN_0$4&&s===BN_0$4){tx.chainId=v}else{let chainId=(v-BN_35)/BN_2$2;if(chainId=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this})}assert$1(!hasFee||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this});assert$1(this.type!==0||!hasAccessList,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const types=[];if(this.type!=null){types.push(this.type)}else{if(hasFee){types.push(2)}else if(hasGasPrice){types.push(1);if(!hasAccessList){types.push(0)}}else if(hasAccessList){types.push(1);types.push(2)}else{types.push(0);types.push(1);types.push(2)}}types.sort();return types}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}clone(){return Transaction.from(this)}toJSON(){const s=v=>{if(v==null){return null}return v.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:s(this.gasLimit),gasPrice:s(this.gasPrice),maxPriorityFeePerGas:s(this.maxPriorityFeePerGas),maxFeePerGas:s(this.maxFeePerGas),value:s(this.value),chainId:s(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(tx){if(tx==null){return new Transaction}if(typeof tx==="string"){const payload=getBytes(tx);if(payload[0]>=127){return Transaction.from(_parseLegacy(payload))}switch(payload[0]){case 1:return Transaction.from(_parseEip2930(payload));case 2:return Transaction.from(_parseEip1559(payload))}assert$1(false,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const result=new Transaction;if(tx.type!=null){result.type=tx.type}if(tx.to!=null){result.to=tx.to}if(tx.nonce!=null){result.nonce=tx.nonce}if(tx.gasLimit!=null){result.gasLimit=tx.gasLimit}if(tx.gasPrice!=null){result.gasPrice=tx.gasPrice}if(tx.maxPriorityFeePerGas!=null){result.maxPriorityFeePerGas=tx.maxPriorityFeePerGas}if(tx.maxFeePerGas!=null){result.maxFeePerGas=tx.maxFeePerGas}if(tx.data!=null){result.data=tx.data}if(tx.value!=null){result.value=tx.value}if(tx.chainId!=null){result.chainId=tx.chainId}if(tx.signature!=null){result.signature=Signature.from(tx.signature)}if(tx.accessList!=null){result.accessList=tx.accessList}if(tx.hash!=null){assertArgument(result.isSigned(),"unsigned transaction cannot define hash","tx",tx);assertArgument(result.hash===tx.hash,"hash mismatch","tx",tx)}if(tx.from!=null){assertArgument(result.isSigned(),"unsigned transaction cannot define from","tx",tx);assertArgument(result.from.toLowerCase()===(tx.from||"").toLowerCase(),"from mismatch","tx",tx)}return result}}function hashMessage(message){if(typeof message==="string"){message=toUtf8Bytes(message)}return keccak256(concat([toUtf8Bytes(MessagePrefix),toUtf8Bytes(String(message.length)),message]))}function verifyMessage(message,sig){const digest=hashMessage(message);return recoverAddress(digest,sig)}const regexBytes=new RegExp("^bytes([0-9]+)$");const regexNumber=new RegExp("^(u?int)([0-9]*)$");const regexArray=new RegExp("^(.*)\\[([0-9]*)\\]$");function _pack(type,value,isArray){switch(type){case"address":if(isArray){return getBytes(zeroPadValue(value,32))}return getBytes(getAddress(value));case"string":return toUtf8Bytes(value);case"bytes":return getBytes(value);case"bool":value=!!value?"0x01":"0x00";if(isArray){return getBytes(zeroPadValue(value,32))}return getBytes(value)}let match=type.match(regexNumber);if(match){let signed=match[1]==="int";let size=parseInt(match[2]||"256");assertArgument((!match[2]||match[2]===String(size))&&size%8===0&&size!==0&&size<=256,"invalid number type","type",type);if(isArray){size=256}if(signed){value=toTwos(value,size)}return getBytes(zeroPadValue(toBeArray(value),size/8))}match=type.match(regexBytes);if(match){const size=parseInt(match[1]);assertArgument(String(size)===match[1]&&size!==0&&size<=32,"invalid bytes type","type",type);assertArgument(dataLength(value)===size,`invalid value for ${type}`,"value",value);if(isArray){return getBytes(zeroPadBytes(value,32))}return value}match=type.match(regexArray);if(match&&Array.isArray(value)){const baseType=match[1];const count=parseInt(match[2]||String(value.length));assertArgument(count===value.length,`invalid array length for ${type}`,"value",value);const result=[];value.forEach(function(value){result.push(_pack(baseType,value,true))});return getBytes(concat(result))}assertArgument(false,"invalid type","type",type)}function solidityPacked(types,values){assertArgument(types.length===values.length,"wrong number of values; expected ${ types.length }","values",values);const tight=[];types.forEach(function(type,index){tight.push(_pack(type,values[index]))});return hexlify(concat(tight))}function solidityPackedKeccak256(types,values){return keccak256(solidityPacked(types,values))}function solidityPackedSha256(types,values){return sha256(solidityPacked(types,values))}const padding=new Uint8Array(32);padding.fill(0);const BN__1=BigInt(-1);const BN_0$3=BigInt(0);const BN_1$1=BigInt(1);const BN_MAX_UINT256=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function hexPadRight(value){const bytes=getBytes(value);const padOffset=bytes.length%32;if(padOffset){return concat([bytes,padding.slice(padOffset)])}return hexlify(bytes)}const hexTrue=toBeHex(BN_1$1,32);const hexFalse=toBeHex(BN_0$3,32);const domainFieldTypes={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"};const domainFieldNames=["name","version","chainId","verifyingContract","salt"];function checkString(key){return function(value){assertArgument(typeof value==="string",`invalid domain value for ${JSON.stringify(key)}`,`domain.${key}`,value);return value}}const domainChecks={name:checkString("name"),version:checkString("version"),chainId:function(_value){const value=getBigInt(_value,"domain.chainId");assertArgument(value>=0,"invalid chain ID","domain.chainId",_value);if(Number.isSafeInteger(value)){return Number(value)}return toQuantity(value)},verifyingContract:function(value){try{return getAddress(value).toLowerCase()}catch(error){}assertArgument(false,`invalid domain value "verifyingContract"`,"domain.verifyingContract",value)},salt:function(value){const bytes=getBytes(value,"domain.salt");assertArgument(bytes.length===32,`invalid domain value "salt"`,"domain.salt",value);return hexlify(bytes)}};function getBaseEncoder(type){{const match=type.match(/^(u?)int(\d*)$/);if(match){const signed=match[1]==="";const width=parseInt(match[2]||"256");assertArgument(width%8===0&&width!==0&&width<=256&&(match[2]==null||match[2]===String(width)),"invalid numeric width","type",type);const boundsUpper=mask(BN_MAX_UINT256,signed?width-1:width);const boundsLower=signed?(boundsUpper+BN_1$1)*BN__1:BN_0$3;return function(_value){const value=getBigInt(_value,"value");assertArgument(value>=boundsLower&&value<=boundsUpper,`value out-of-bounds for ${type}`,"value",value);return toBeHex(signed?toTwos(value,256):value,32)}}}{const match=type.match(/^bytes(\d+)$/);if(match){const width=parseInt(match[1]);assertArgument(width!==0&&width<=32&&match[1]===String(width),"invalid bytes width","type",type);return function(value){const bytes=getBytes(value);assertArgument(bytes.length===width,`invalid length for ${type}`,"value",value);return hexPadRight(value)}}}switch(type){case"address":return function(value){return zeroPadValue(getAddress(value),32)};case"bool":return function(value){return!value?hexFalse:hexTrue};case"bytes":return function(value){return keccak256(value)};case"string":return function(value){return id(value)}}return null}function encodeType(name,fields){return`${name}(${fields.map(({name,type})=>type+" "+name).join(",")})`}class TypedDataEncoder{primaryType;#types;get types(){return JSON.parse(this.#types)}#fullTypes;#encoderCache;constructor(types){this.#types=JSON.stringify(types);this.#fullTypes=new Map;this.#encoderCache=new Map;const links=new Map;const parents=new Map;const subtypes=new Map;Object.keys(types).forEach(type=>{links.set(type,new Set);parents.set(type,[]);subtypes.set(type,new Set)});for(const name in types){const uniqueNames=new Set;for(const field of types[name]){assertArgument(!uniqueNames.has(field.name),`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`,"types",types);uniqueNames.add(field.name);const baseType=field.type.match(/^([^\x5b]*)(\x5b|$)/)[1]||null;assertArgument(baseType!==name,`circular type reference to ${JSON.stringify(baseType)}`,"types",types);const encoder=getBaseEncoder(baseType);if(encoder){continue}assertArgument(parents.has(baseType),`unknown type ${JSON.stringify(baseType)}`,"types",types);parents.get(baseType).push(name);links.get(name).add(baseType)}}const primaryTypes=Array.from(parents.keys()).filter(n=>parents.get(n).length===0);assertArgument(primaryTypes.length!==0,"missing primary type","types",types);assertArgument(primaryTypes.length===1,`ambiguous primary types or unused types: ${primaryTypes.map(t=>JSON.stringify(t)).join(", ")}`,"types",types);defineProperties(this,{primaryType:primaryTypes[0]});function checkCircular(type,found){assertArgument(!found.has(type),`circular type reference to ${JSON.stringify(type)}`,"types",types);found.add(type);for(const child of links.get(type)){if(!parents.has(child)){continue}checkCircular(child,found);for(const subtype of found){subtypes.get(subtype).add(child)}}found.delete(type)}checkCircular(this.primaryType,new Set);for(const[name,set]of subtypes){const st=Array.from(set);st.sort();this.#fullTypes.set(name,encodeType(name,types[name])+st.map(t=>encodeType(t,types[t])).join(""))}}getEncoder(type){let encoder=this.#encoderCache.get(type);if(!encoder){encoder=this.#getEncoder(type);this.#encoderCache.set(type,encoder)}return encoder}#getEncoder(type){{const encoder=getBaseEncoder(type);if(encoder){return encoder}}const match=type.match(/^(.*)(\x5b(\d*)\x5d)$/);if(match){const subtype=match[1];const subEncoder=this.getEncoder(subtype);return value=>{assertArgument(!match[3]||parseInt(match[3])===value.length,`array length mismatch; expected length ${parseInt(match[3])}`,"value",value);let result=value.map(subEncoder);if(this.#fullTypes.has(subtype)){result=result.map(keccak256)}return keccak256(concat(result))}}const fields=this.types[type];if(fields){const encodedType=id(this.#fullTypes.get(type));return value=>{const values=fields.map(({name,type})=>{const result=this.getEncoder(type)(value[name]);if(this.#fullTypes.has(type)){return keccak256(result)}return result});values.unshift(encodedType);return concat(values)}}assertArgument(false,`unknown type: ${type}`,"type",type)}encodeType(name){const result=this.#fullTypes.get(name);assertArgument(result,`unknown type: ${JSON.stringify(name)}`,"name",name);return result}encodeData(type,value){return this.getEncoder(type)(value)}hashStruct(name,value){return keccak256(this.encodeData(name,value))}encode(value){return this.encodeData(this.primaryType,value)}hash(value){return this.hashStruct(this.primaryType,value)}_visit(type,value,callback){{const encoder=getBaseEncoder(type);if(encoder){return callback(type,value)}}const match=type.match(/^(.*)(\x5b(\d*)\x5d)$/);if(match){assertArgument(!match[3]||parseInt(match[3])===value.length,`array length mismatch; expected length ${parseInt(match[3])}`,"value",value);return value.map(v=>this._visit(match[1],v,callback))}const fields=this.types[type];if(fields){return fields.reduce((accum,{name,type})=>{accum[name]=this._visit(type,value[name],callback);return accum},{})}assertArgument(false,`unknown type: ${type}`,"type",type)}visit(value,callback){return this._visit(this.primaryType,value,callback)}static from(types){return new TypedDataEncoder(types)}static getPrimaryType(types){return TypedDataEncoder.from(types).primaryType}static hashStruct(name,types,value){return TypedDataEncoder.from(types).hashStruct(name,value)}static hashDomain(domain){const domainFields=[];for(const name in domain){if(domain[name]==null){continue}const type=domainFieldTypes[name];assertArgument(type,`invalid typed-data domain key: ${JSON.stringify(name)}`,"domain",domain);domainFields.push({name:name,type:type})}domainFields.sort((a,b)=>{return domainFieldNames.indexOf(a.name)-domainFieldNames.indexOf(b.name)});return TypedDataEncoder.hashStruct("EIP712Domain",{EIP712Domain:domainFields},domain)}static encode(domain,types,value){return concat(["0x1901",TypedDataEncoder.hashDomain(domain),TypedDataEncoder.from(types).hash(value)])}static hash(domain,types,value){return keccak256(TypedDataEncoder.encode(domain,types,value))}static async resolveNames(domain,types,value,resolveName){domain=Object.assign({},domain);for(const key in domain){if(domain[key]==null){delete domain[key]}}const ensCache={};if(domain.verifyingContract&&!isHexString(domain.verifyingContract,20)){ensCache[domain.verifyingContract]="0x"}const encoder=TypedDataEncoder.from(types);encoder.visit(value,(type,value)=>{if(type==="address"&&!isHexString(value,20)){ensCache[value]="0x"}return value});for(const name in ensCache){ensCache[name]=await resolveName(name)}if(domain.verifyingContract&&ensCache[domain.verifyingContract]){domain.verifyingContract=ensCache[domain.verifyingContract]}value=encoder.visit(value,(type,value)=>{if(type==="address"&&ensCache[value]){return ensCache[value]}return value});return{domain:domain,value:value}}static getPayload(domain,types,value){TypedDataEncoder.hashDomain(domain);const domainValues={};const domainTypes=[];domainFieldNames.forEach(name=>{const value=domain[name];if(value==null){return}domainValues[name]=domainChecks[name](value);domainTypes.push({name:name,type:domainFieldTypes[name]})});const encoder=TypedDataEncoder.from(types);const typesWithDomain=Object.assign({},types);assertArgument(typesWithDomain.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",types);typesWithDomain.EIP712Domain=domainTypes;encoder.encode(value);return{types:typesWithDomain,domain:domainValues,primaryType:encoder.primaryType,message:encoder.visit(value,(type,value)=>{if(type.match(/^bytes(\d*)/)){return hexlify(getBytes(value))}if(type.match(/^u?int/)){return getBigInt(value).toString()}switch(type){case"address":return value.toLowerCase();case"bool":return!!value;case"string":assertArgument(typeof value==="string","invalid string","value",value);return value}assertArgument(false,"unsupported type","type",type)})}}}function verifyTypedData(domain,types,value,signature){return recoverAddress(TypedDataEncoder.hash(domain,types,value),signature)}function setify(items){const result=new Set;items.forEach(k=>result.add(k));return Object.freeze(result)}const _kwVisibDeploy="external public payable";const KwVisibDeploy=setify(_kwVisibDeploy.split(" "));const _kwVisib="constant external internal payable private public pure view";const KwVisib=setify(_kwVisib.split(" "));const _kwTypes="constructor error event fallback function receive struct";const KwTypes=setify(_kwTypes.split(" "));const _kwModifiers="calldata memory storage payable indexed";const KwModifiers=setify(_kwModifiers.split(" "));const _kwOther="tuple returns";const _keywords=[_kwTypes,_kwModifiers,_kwOther,_kwVisib].join(" ");const Keywords=setify(_keywords.split(" "));const SimpleTokens={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"};const regexWhitespacePrefix=new RegExp("^(\\s*)");const regexNumberPrefix=new RegExp("^([0-9]+)");const regexIdPrefix=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)");const regexId=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$");const regexType=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");class TokenString{#offset;#tokens;get offset(){return this.#offset}get length(){return this.#tokens.length-this.#offset}constructor(tokens){this.#offset=0;this.#tokens=tokens.slice()}clone(){return new TokenString(this.#tokens)}reset(){this.#offset=0}#subTokenString(from=0,to=0){return new TokenString(this.#tokens.slice(from,to).map(t=>{return Object.freeze(Object.assign({},t,{match:t.match-from,linkBack:t.linkBack-from,linkNext:t.linkNext-from}))}))}popKeyword(allowed){const top=this.peek();if(top.type!=="KEYWORD"||!allowed.has(top.text)){throw new Error(`expected keyword ${top.text}`)}return this.pop().text}popType(type){if(this.peek().type!==type){throw new Error(`expected ${type}; got ${JSON.stringify(this.peek())}`)}return this.pop().text}popParen(){const top=this.peek();if(top.type!=="OPEN_PAREN"){throw new Error("bad start")}const result=this.#subTokenString(this.#offset+1,top.match+1);this.#offset=top.match+1;return result}popParams(){const top=this.peek();if(top.type!=="OPEN_PAREN"){throw new Error("bad start")}const result=[];while(this.#offset=this.#tokens.length){throw new Error("out-of-bounds")}return this.#tokens[this.#offset]}peekKeyword(allowed){const top=this.peekType("KEYWORD");return top!=null&&allowed.has(top)?top:null}peekType(type){if(this.length===0){return null}const top=this.peek();return top.type===type?top.text:null}pop(){const result=this.peek();this.#offset++;return result}toString(){const tokens=[];for(let i=this.#offset;i`}}function lex(text){const tokens=[];const throwError=message=>{const token=offset0&&tokens[tokens.length-1].type==="NUMBER"){const value=tokens.pop().text;suffix=value+suffix;tokens[tokens.length-1].value=getNumber(value)}if(tokens.length===0||tokens[tokens.length-1].type!=="BRACKET"){throw new Error("missing opening bracket")}tokens[tokens.length-1].text+=suffix}continue}match=cur.match(regexIdPrefix);if(match){token.text=match[1];offset+=token.text.length;if(Keywords.has(token.text)){token.type="KEYWORD";continue}if(token.text.match(regexType)){token.type="TYPE";continue}token.type="ID";continue}match=cur.match(regexNumberPrefix);if(match){token.text=match[1];token.type="NUMBER";offset+=token.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(cur[0])} at position ${offset}`)}return new TokenString(tokens.map(t=>Object.freeze(t)))}function allowSingle(set,allowed){let included=[];for(const key in allowed.keys()){if(set.has(key)){included.push(key)}}if(included.length>1){throw new Error(`conflicting types: ${included.join(", ")}`)}}function consumeName(type,tokens){if(tokens.peekKeyword(KwTypes)){const keyword=tokens.pop().text;if(keyword!==type){throw new Error(`expected ${type}, got ${keyword}`)}}return tokens.popType("ID")}function consumeKeywords(tokens,allowed){const keywords=new Set;while(true){const keyword=tokens.peekType("KEYWORD");if(keyword==null||allowed&&!allowed.has(keyword)){break}tokens.pop();if(keywords.has(keyword)){throw new Error(`duplicate keywords: ${JSON.stringify(keyword)}`)}keywords.add(keyword)}return Object.freeze(keywords)}function consumeMutability(tokens){let modifiers=consumeKeywords(tokens,KwVisib);allowSingle(modifiers,setify("constant payable nonpayable".split(" ")));allowSingle(modifiers,setify("pure view payable nonpayable".split(" ")));if(modifiers.has("view")){return"view"}if(modifiers.has("pure")){return"pure"}if(modifiers.has("payable")){return"payable"}if(modifiers.has("nonpayable")){return"nonpayable"}if(modifiers.has("constant")){return"view"}return"nonpayable"}function consumeParams(tokens,allowIndexed){return tokens.popParams().map(t=>ParamType.from(t,allowIndexed))}function consumeGas(tokens){if(tokens.peekType("AT")){tokens.pop();if(tokens.peekType("NUMBER")){return getBigInt(tokens.pop().text)}throw new Error("invalid gas")}return null}function consumeEoi(tokens){if(tokens.length){throw new Error(`unexpected tokens: ${tokens.toString()}`)}}const regexArrayType=new RegExp(/^(.*)\[([0-9]*)\]$/);function verifyBasicType(type){const match=type.match(regexType);assertArgument(match,"invalid type","type",type);if(type==="uint"){return"uint256"}if(type==="int"){return"int256"}if(match[2]){const length=parseInt(match[2]);assertArgument(length!==0&&length<=32,"invalid bytes length","type",type)}else if(match[3]){const size=parseInt(match[3]);assertArgument(size!==0&&size<=256&&size%8===0,"invalid numeric width","type",type)}return type}const _guard$2={};const internal$1=Symbol.for("_ethers_internal");const ParamTypeInternal="_ParamTypeInternal";const ErrorFragmentInternal="_ErrorInternal";const EventFragmentInternal="_EventInternal";const ConstructorFragmentInternal="_ConstructorInternal";const FallbackFragmentInternal="_FallbackInternal";const FunctionFragmentInternal="_FunctionInternal";const StructFragmentInternal="_StructInternal";class ParamType{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(guard,name,type,baseType,indexed,components,arrayLength,arrayChildren){assertPrivate(guard,_guard$2,"ParamType");Object.defineProperty(this,internal$1,{value:ParamTypeInternal});if(components){components=Object.freeze(components.slice())}if(baseType==="array"){if(arrayLength==null||arrayChildren==null){throw new Error("")}}else if(arrayLength!=null||arrayChildren!=null){throw new Error("")}if(baseType==="tuple"){if(components==null){throw new Error("")}}else if(components!=null){throw new Error("")}defineProperties(this,{name:name,type:type,baseType:baseType,indexed:indexed,components:components,arrayLength:arrayLength,arrayChildren:arrayChildren})}format(format){if(format==null){format="sighash"}if(format==="json"){const name=this.name||"";if(this.isArray()){const result=JSON.parse(this.arrayChildren.format("json"));result.name=name;result.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`;return JSON.stringify(result)}const result={type:this.baseType==="tuple"?"tuple":this.type,name:name};if(typeof this.indexed==="boolean"){result.indexed=this.indexed}if(this.isTuple()){result.components=this.components.map(c=>JSON.parse(c.format(format)))}return JSON.stringify(result)}let result="";if(this.isArray()){result+=this.arrayChildren.format(format);result+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`}else{if(this.isTuple()){if(format!=="sighash"){result+=this.type}result+="("+this.components.map(comp=>comp.format(format)).join(format==="full"?", ":",")+")"}else{result+=this.type}}if(format!=="sighash"){if(this.indexed===true){result+=" indexed"}if(format==="full"&&this.name){result+=" "+this.name}}return result}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(value,process){if(this.isArray()){if(!Array.isArray(value)){throw new Error("invalid array value")}if(this.arrayLength!==-1&&value.length!==this.arrayLength){throw new Error("array is wrong length")}const _this=this;return value.map(v=>_this.arrayChildren.walk(v,process))}if(this.isTuple()){if(!Array.isArray(value)){throw new Error("invalid tuple value")}if(value.length!==this.components.length){throw new Error("array is wrong length")}const _this=this;return value.map((v,i)=>_this.components[i].walk(v,process))}return process(this.type,value)}#walkAsync(promises,value,process,setValue){if(this.isArray()){if(!Array.isArray(value)){throw new Error("invalid array value")}if(this.arrayLength!==-1&&value.length!==this.arrayLength){throw new Error("array is wrong length")}const childType=this.arrayChildren;const result=value.slice();result.forEach((value,index)=>{childType.#walkAsync(promises,value,process,value=>{result[index]=value})});setValue(result);return}if(this.isTuple()){const components=this.components;let result;if(Array.isArray(value)){result=value.slice()}else{if(value==null||typeof value!=="object"){throw new Error("invalid tuple value")}result=components.map(param=>{if(!param.name){throw new Error("cannot use object value with unnamed components")}if(!(param.name in value)){throw new Error(`missing value for component ${param.name}`)}return value[param.name]})}if(result.length!==this.components.length){throw new Error("array is wrong length")}result.forEach((value,index)=>{components[index].#walkAsync(promises,value,process,value=>{result[index]=value})});setValue(result);return}const result=process(this.type,value);if(result.then){promises.push(async function(){setValue(await result)}())}else{setValue(result)}}async walkAsync(value,process){const promises=[];const result=[value];this.#walkAsync(promises,value,process,value=>{result[0]=value});if(promises.length){await Promise.all(promises)}return result[0]}static from(obj,allowIndexed){if(ParamType.isParamType(obj)){return obj}if(typeof obj==="string"){try{return ParamType.from(lex(obj),allowIndexed)}catch(error){assertArgument(false,"invalid param type","obj",obj)}}else if(obj instanceof TokenString){let type="",baseType="";let comps=null;if(consumeKeywords(obj,setify(["tuple"])).has("tuple")||obj.peekType("OPEN_PAREN")){baseType="tuple";comps=obj.popParams().map(t=>ParamType.from(t));type=`tuple(${comps.map(c=>c.format()).join(",")})`}else{type=verifyBasicType(obj.popType("TYPE"));baseType=type}let arrayChildren=null;let arrayLength=null;while(obj.length&&obj.peekType("BRACKET")){const bracket=obj.pop();arrayChildren=new ParamType(_guard$2,"",type,baseType,null,comps,arrayLength,arrayChildren);arrayLength=bracket.value;type+=bracket.text;baseType="array";comps=null}let indexed=null;const keywords=consumeKeywords(obj,KwModifiers);if(keywords.has("indexed")){if(!allowIndexed){throw new Error("")}indexed=true}const name=obj.peekType("ID")?obj.pop().text:"";if(obj.length){throw new Error("leftover tokens")}return new ParamType(_guard$2,name,type,baseType,indexed,comps,arrayLength,arrayChildren)}const name=obj.name;assertArgument(!name||typeof name==="string"&&name.match(regexId),"invalid name","obj.name",name);let indexed=obj.indexed;if(indexed!=null){assertArgument(allowIndexed,"parameter cannot be indexed","obj.indexed",obj.indexed);indexed=!!indexed}let type=obj.type;let arrayMatch=type.match(regexArrayType);if(arrayMatch){const arrayLength=parseInt(arrayMatch[2]||"-1");const arrayChildren=ParamType.from({type:arrayMatch[1],components:obj.components});return new ParamType(_guard$2,name||"",type,"array",indexed,null,arrayLength,arrayChildren)}if(type==="tuple"||type.startsWith("tuple(")||type.startsWith("(")){const comps=obj.components!=null?obj.components.map(c=>ParamType.from(c)):null;const tuple=new ParamType(_guard$2,name||"",type,"tuple",indexed,comps,null,null);return tuple}type=verifyBasicType(obj.type);return new ParamType(_guard$2,name||"",type,type,indexed,null,null,null)}static isParamType(value){return value&&value[internal$1]===ParamTypeInternal}}class Fragment{type;inputs;constructor(guard,type,inputs){assertPrivate(guard,_guard$2,"Fragment");inputs=Object.freeze(inputs.slice());defineProperties(this,{type:type,inputs:inputs})}static from(obj){if(typeof obj==="string"){try{Fragment.from(JSON.parse(obj))}catch(e){}return Fragment.from(lex(obj))}if(obj instanceof TokenString){const type=obj.peekKeyword(KwTypes);switch(type){case"constructor":return ConstructorFragment.from(obj);case"error":return ErrorFragment.from(obj);case"event":return EventFragment.from(obj);case"fallback":case"receive":return FallbackFragment.from(obj);case"function":return FunctionFragment.from(obj);case"struct":return StructFragment.from(obj)}}else if(typeof obj==="object"){switch(obj.type){case"constructor":return ConstructorFragment.from(obj);case"error":return ErrorFragment.from(obj);case"event":return EventFragment.from(obj);case"fallback":case"receive":return FallbackFragment.from(obj);case"function":return FunctionFragment.from(obj);case"struct":return StructFragment.from(obj)}assert$1(false,`unsupported type: ${obj.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}assertArgument(false,"unsupported frgament object","obj",obj)}static isConstructor(value){return ConstructorFragment.isFragment(value)}static isError(value){return ErrorFragment.isFragment(value)}static isEvent(value){return EventFragment.isFragment(value)}static isFunction(value){return FunctionFragment.isFragment(value)}static isStruct(value){return StructFragment.isFragment(value)}}class NamedFragment extends Fragment{name;constructor(guard,type,name,inputs){super(guard,type,inputs);assertArgument(typeof name==="string"&&name.match(regexId),"invalid identifier","name",name);inputs=Object.freeze(inputs.slice());defineProperties(this,{name:name})}}function joinParams(format,params){return"("+params.map(p=>p.format(format)).join(format==="full"?", ":",")+")"}class ErrorFragment extends NamedFragment{constructor(guard,name,inputs){super(guard,"error",name,inputs);Object.defineProperty(this,internal$1,{value:ErrorFragmentInternal})}get selector(){return id(this.format("sighash")).substring(0,10)}format(format){if(format==null){format="sighash"}if(format==="json"){return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(input=>JSON.parse(input.format(format)))})}const result=[];if(format!=="sighash"){result.push("error")}result.push(this.name+joinParams(format,this.inputs));return result.join(" ")}static from(obj){if(ErrorFragment.isFragment(obj)){return obj}if(typeof obj==="string"){return ErrorFragment.from(lex(obj))}else if(obj instanceof TokenString){const name=consumeName("error",obj);const inputs=consumeParams(obj);consumeEoi(obj);return new ErrorFragment(_guard$2,name,inputs)}return new ErrorFragment(_guard$2,obj.name,obj.inputs?obj.inputs.map(ParamType.from):[])}static isFragment(value){return value&&value[internal$1]===ErrorFragmentInternal}}class EventFragment extends NamedFragment{anonymous;constructor(guard,name,inputs,anonymous){super(guard,"event",name,inputs);Object.defineProperty(this,internal$1,{value:EventFragmentInternal});defineProperties(this,{anonymous:anonymous})}get topicHash(){return id(this.format("sighash"))}format(format){if(format==null){format="sighash"}if(format==="json"){return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(i=>JSON.parse(i.format(format)))})}const result=[];if(format!=="sighash"){result.push("event")}result.push(this.name+joinParams(format,this.inputs));if(format!=="sighash"&&this.anonymous){result.push("anonymous")}return result.join(" ")}static getTopicHash(name,params){params=(params||[]).map(p=>ParamType.from(p));const fragment=new EventFragment(_guard$2,name,params,false);return fragment.topicHash}static from(obj){if(EventFragment.isFragment(obj)){return obj}if(typeof obj==="string"){try{return EventFragment.from(lex(obj))}catch(error){assertArgument(false,"invalid event fragment","obj",obj)}}else if(obj instanceof TokenString){const name=consumeName("event",obj);const inputs=consumeParams(obj,true);const anonymous=!!consumeKeywords(obj,setify(["anonymous"])).has("anonymous");consumeEoi(obj);return new EventFragment(_guard$2,name,inputs,anonymous)}return new EventFragment(_guard$2,obj.name,obj.inputs?obj.inputs.map(p=>ParamType.from(p,true)):[],!!obj.anonymous)}static isFragment(value){return value&&value[internal$1]===EventFragmentInternal}}class ConstructorFragment extends Fragment{payable;gas;constructor(guard,type,inputs,payable,gas){super(guard,type,inputs);Object.defineProperty(this,internal$1,{value:ConstructorFragmentInternal});defineProperties(this,{payable:payable,gas:gas})}format(format){assert$1(format!=null&&format!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"});if(format==="json"){return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:undefined,inputs:this.inputs.map(i=>JSON.parse(i.format(format)))})}const result=[`constructor${joinParams(format,this.inputs)}`];result.push(this.payable?"payable":"nonpayable");if(this.gas!=null){result.push(`@${this.gas.toString()}`)}return result.join(" ")}static from(obj){if(ConstructorFragment.isFragment(obj)){return obj}if(typeof obj==="string"){try{return ConstructorFragment.from(lex(obj))}catch(error){assertArgument(false,"invalid constuctor fragment","obj",obj)}}else if(obj instanceof TokenString){consumeKeywords(obj,setify(["constructor"]));const inputs=consumeParams(obj);const payable=!!consumeKeywords(obj,KwVisibDeploy).has("payable");const gas=consumeGas(obj);consumeEoi(obj);return new ConstructorFragment(_guard$2,"constructor",inputs,payable,gas)}return new ConstructorFragment(_guard$2,"constructor",obj.inputs?obj.inputs.map(ParamType.from):[],!!obj.payable,obj.gas!=null?obj.gas:null)}static isFragment(value){return value&&value[internal$1]===ConstructorFragmentInternal}}class FallbackFragment extends Fragment{payable;constructor(guard,inputs,payable){super(guard,"fallback",inputs);Object.defineProperty(this,internal$1,{value:FallbackFragmentInternal});defineProperties(this,{payable:payable})}format(format){const type=this.inputs.length===0?"receive":"fallback";if(format==="json"){const stateMutability=this.payable?"payable":"nonpayable";return JSON.stringify({type:type,stateMutability:stateMutability})}return`${type}()${this.payable?" payable":""}`}static from(obj){if(FallbackFragment.isFragment(obj)){return obj}if(typeof obj==="string"){try{return FallbackFragment.from(lex(obj))}catch(error){assertArgument(false,"invalid fallback fragment","obj",obj)}}else if(obj instanceof TokenString){const errorObj=obj.toString();const topIsValid=obj.peekKeyword(setify(["fallback","receive"]));assertArgument(topIsValid,"type must be fallback or receive","obj",errorObj);const type=obj.popKeyword(setify(["fallback","receive"]));if(type==="receive"){const inputs=consumeParams(obj);assertArgument(inputs.length===0,`receive cannot have arguments`,"obj.inputs",inputs);consumeKeywords(obj,setify(["payable"]));consumeEoi(obj);return new FallbackFragment(_guard$2,[],true)}let inputs=consumeParams(obj);if(inputs.length){assertArgument(inputs.length===1&&inputs[0].type==="bytes","invalid fallback inputs","obj.inputs",inputs.map(i=>i.format("minimal")).join(", "))}else{inputs=[ParamType.from("bytes")]}const mutability=consumeMutability(obj);assertArgument(mutability==="nonpayable"||mutability==="payable","fallback cannot be constants","obj.stateMutability",mutability);if(consumeKeywords(obj,setify(["returns"])).has("returns")){const outputs=consumeParams(obj);assertArgument(outputs.length===1&&outputs[0].type==="bytes","invalid fallback outputs","obj.outputs",outputs.map(i=>i.format("minimal")).join(", "))}consumeEoi(obj);return new FallbackFragment(_guard$2,inputs,mutability==="payable")}if(obj.type==="receive"){return new FallbackFragment(_guard$2,[],true)}if(obj.type==="fallback"){const inputs=[ParamType.from("bytes")];const payable=obj.stateMutability==="payable";return new FallbackFragment(_guard$2,inputs,payable)}assertArgument(false,"invalid fallback description","obj",obj)}static isFragment(value){return value&&value[internal$1]===FallbackFragmentInternal}}class FunctionFragment extends NamedFragment{constant;outputs;stateMutability;payable;gas;constructor(guard,name,stateMutability,inputs,outputs,gas){super(guard,"function",name,inputs);Object.defineProperty(this,internal$1,{value:FunctionFragmentInternal});outputs=Object.freeze(outputs.slice());const constant=stateMutability==="view"||stateMutability==="pure";const payable=stateMutability==="payable";defineProperties(this,{constant:constant,gas:gas,outputs:outputs,payable:payable,stateMutability:stateMutability})}get selector(){return id(this.format("sighash")).substring(0,10)}format(format){if(format==null){format="sighash"}if(format==="json"){return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:undefined,payable:this.payable,gas:this.gas!=null?this.gas:undefined,inputs:this.inputs.map(i=>JSON.parse(i.format(format))),outputs:this.outputs.map(o=>JSON.parse(o.format(format)))})}const result=[];if(format!=="sighash"){result.push("function")}result.push(this.name+joinParams(format,this.inputs));if(format!=="sighash"){if(this.stateMutability!=="nonpayable"){result.push(this.stateMutability)}if(this.outputs&&this.outputs.length){result.push("returns");result.push(joinParams(format,this.outputs))}if(this.gas!=null){result.push(`@${this.gas.toString()}`)}}return result.join(" ")}static getSelector(name,params){params=(params||[]).map(p=>ParamType.from(p));const fragment=new FunctionFragment(_guard$2,name,"view",params,[],null);return fragment.selector}static from(obj){if(FunctionFragment.isFragment(obj)){return obj}if(typeof obj==="string"){try{return FunctionFragment.from(lex(obj))}catch(error){assertArgument(false,"invalid function fragment","obj",obj)}}else if(obj instanceof TokenString){const name=consumeName("function",obj);const inputs=consumeParams(obj);const mutability=consumeMutability(obj);let outputs=[];if(consumeKeywords(obj,setify(["returns"])).has("returns")){outputs=consumeParams(obj)}const gas=consumeGas(obj);consumeEoi(obj);return new FunctionFragment(_guard$2,name,mutability,inputs,outputs,gas)}let stateMutability=obj.stateMutability;if(stateMutability==null){stateMutability="payable";if(typeof obj.constant==="boolean"){stateMutability="view";if(!obj.constant){stateMutability="payable";if(typeof obj.payable==="boolean"&&!obj.payable){stateMutability="nonpayable"}}}else if(typeof obj.payable==="boolean"&&!obj.payable){stateMutability="nonpayable"}}return new FunctionFragment(_guard$2,obj.name,stateMutability,obj.inputs?obj.inputs.map(ParamType.from):[],obj.outputs?obj.outputs.map(ParamType.from):[],obj.gas!=null?obj.gas:null)}static isFragment(value){return value&&value[internal$1]===FunctionFragmentInternal}}class StructFragment extends NamedFragment{constructor(guard,name,inputs){super(guard,"struct",name,inputs);Object.defineProperty(this,internal$1,{value:StructFragmentInternal})}format(){throw new Error("@TODO")}static from(obj){if(typeof obj==="string"){try{return StructFragment.from(lex(obj))}catch(error){assertArgument(false,"invalid struct fragment","obj",obj)}}else if(obj instanceof TokenString){const name=consumeName("struct",obj);const inputs=consumeParams(obj);consumeEoi(obj);return new StructFragment(_guard$2,name,inputs)}return new StructFragment(_guard$2,obj.name,obj.inputs?obj.inputs.map(ParamType.from):[])}static isFragment(value){return value&&value[internal$1]===StructFragmentInternal}}const PanicReasons$1=new Map;PanicReasons$1.set(0,"GENERIC_PANIC");PanicReasons$1.set(1,"ASSERT_FALSE");PanicReasons$1.set(17,"OVERFLOW");PanicReasons$1.set(18,"DIVIDE_BY_ZERO");PanicReasons$1.set(33,"ENUM_RANGE_ERROR");PanicReasons$1.set(34,"BAD_STORAGE_DATA");PanicReasons$1.set(49,"STACK_UNDERFLOW");PanicReasons$1.set(50,"ARRAY_RANGE_ERROR");PanicReasons$1.set(65,"OUT_OF_MEMORY");PanicReasons$1.set(81,"UNINITIALIZED_FUNCTION_CALL");const paramTypeBytes=new RegExp(/^bytes([0-9]*)$/);const paramTypeNumber=new RegExp(/^(u?int)([0-9]*)$/);let defaultCoder=null;function getBuiltinCallException(action,tx,data,abiCoder){let message="missing revert data";let reason=null;const invocation=null;let revert=null;if(data){message="execution reverted";const bytes=getBytes(data);data=hexlify(data);if(bytes.length===0){message+=" (no data present; likely require(false) occurred";reason="require(false)"}else if(bytes.length%32!==4){message+=" (could not decode reason; invalid data length)"}else if(hexlify(bytes.slice(0,4))==="0x08c379a0"){try{reason=abiCoder.decode(["string"],bytes.slice(4))[0];revert={signature:"Error(string)",name:"Error",args:[reason]};message+=`: ${JSON.stringify(reason)}`}catch(error){message+=" (could not decode reason; invalid string data)"}}else if(hexlify(bytes.slice(0,4))==="0x4e487b71"){try{const code=Number(abiCoder.decode(["uint256"],bytes.slice(4))[0]);revert={signature:"Panic(uint256)",name:"Panic",args:[code]};reason=`Panic due to ${PanicReasons$1.get(code)||"UNKNOWN"}(${code})`;message+=`: ${reason}`}catch(error){message+=" (could not decode panic code)"}}else{message+=" (unknown custom error)"}}const transaction={to:tx.to?getAddress(tx.to):null,data:tx.data||"0x"};if(tx.from){transaction.from=getAddress(tx.from)}return makeError(message,"CALL_EXCEPTION",{action:action,data:data,reason:reason,transaction:transaction,invocation:invocation,revert:revert})}class AbiCoder{#getCoder(param){if(param.isArray()){return new ArrayCoder(this.#getCoder(param.arrayChildren),param.arrayLength,param.name)}if(param.isTuple()){return new TupleCoder(param.components.map(c=>this.#getCoder(c)),param.name)}switch(param.baseType){case"address":return new AddressCoder(param.name);case"bool":return new BooleanCoder(param.name);case"string":return new StringCoder(param.name);case"bytes":return new BytesCoder(param.name);case"":return new NullCoder(param.name)}let match=param.type.match(paramTypeNumber);if(match){let size=parseInt(match[2]||"256");assertArgument(size!==0&&size<=256&&size%8===0,"invalid "+match[1]+" bit length","param",param);return new NumberCoder(size/8,match[1]==="int",param.name)}match=param.type.match(paramTypeBytes);if(match){let size=parseInt(match[1]);assertArgument(size!==0&&size<=32,"invalid bytes length","param",param);return new FixedBytesCoder(size,param.name)}assertArgument(false,"invalid type","type",param.type)}getDefaultValue(types){const coders=types.map(type=>this.#getCoder(ParamType.from(type)));const coder=new TupleCoder(coders,"_");return coder.defaultValue()}encode(types,values){assertArgumentCount(values.length,types.length,"types/values length mismatch");const coders=types.map(type=>this.#getCoder(ParamType.from(type)));const coder=new TupleCoder(coders,"_");const writer=new Writer;coder.encode(writer,values);return writer.data}decode(types,data,loose){const coders=types.map(type=>this.#getCoder(ParamType.from(type)));const coder=new TupleCoder(coders,"_");return coder.decode(new Reader(data,loose))}static defaultAbiCoder(){if(defaultCoder==null){defaultCoder=new AbiCoder}return defaultCoder}static getBuiltinCallException(action,tx,data){return getBuiltinCallException(action,tx,data,AbiCoder.defaultAbiCoder())}}function encodeBytes32String(text){const bytes=toUtf8Bytes(text);if(bytes.length>31){throw new Error("bytes32 string must be less than 32 bytes")}return zeroPadBytes(bytes,32)}function decodeBytes32String(_bytes){const data=getBytes(_bytes,"bytes");if(data.length!==32){throw new Error("invalid bytes32 - not 32 bytes long")}if(data[31]!==0){throw new Error("invalid bytes32 string - no null terminator")}let length=31;while(data[length-1]===0){length--}return toUtf8String(data.slice(0,length))}class LogDescription{fragment;name;signature;topic;args;constructor(fragment,topic,args){const name=fragment.name,signature=fragment.format();defineProperties(this,{fragment:fragment,name:name,signature:signature,topic:topic,args:args})}}class TransactionDescription{fragment;name;args;signature;selector;value;constructor(fragment,selector,args,value){const name=fragment.name,signature=fragment.format();defineProperties(this,{fragment:fragment,name:name,args:args,signature:signature,selector:selector,value:value})}}class ErrorDescription{fragment;name;args;signature;selector;constructor(fragment,selector,args){const name=fragment.name,signature=fragment.format();defineProperties(this,{fragment:fragment,name:name,args:args,signature:signature,selector:selector})}}class Indexed{hash;_isIndexed;static isIndexed(value){return!!(value&&value._isIndexed)}constructor(hash){defineProperties(this,{hash:hash,_isIndexed:true})}}const PanicReasons={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"};const BuiltinErrors={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:message=>{return`reverted with reason string ${JSON.stringify(message)}`}},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:code=>{let reason="unknown panic code";if(code>=0&&code<=255&&PanicReasons[code.toString()]){reason=PanicReasons[code.toString()]}return`reverted with panic code 0x${code.toString(16)} (${reason})`}}};class Interface{fragments;deploy;fallback;receive;#errors;#events;#functions;#abiCoder;constructor(fragments){let abi=[];if(typeof fragments==="string"){abi=JSON.parse(fragments)}else{abi=fragments}this.#functions=new Map;this.#errors=new Map;this.#events=new Map;const frags=[];for(const a of abi){try{frags.push(Fragment.from(a))}catch(error){console.log("EE",error)}}defineProperties(this,{fragments:Object.freeze(frags)});let fallback=null;let receive=false;this.#abiCoder=this.getAbiCoder();this.fragments.forEach((fragment,index)=>{let bucket;switch(fragment.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}defineProperties(this,{deploy:fragment});return;case"fallback":if(fragment.inputs.length===0){receive=true}else{assertArgument(!fallback||fragment.payable!==fallback.payable,"conflicting fallback fragments",`fragments[${index}]`,fragment);fallback=fragment;receive=fallback.payable}return;case"function":bucket=this.#functions;break;case"event":bucket=this.#events;break;case"error":bucket=this.#errors;break;default:return}const signature=fragment.format();if(bucket.has(signature)){return}bucket.set(signature,fragment)});if(!this.deploy){defineProperties(this,{deploy:ConstructorFragment.from("constructor()")})}defineProperties(this,{fallback:fallback,receive:receive})}format(minimal){const format=minimal?"minimal":"full";const abi=this.fragments.map(f=>f.format(format));return abi}formatJson(){const abi=this.fragments.map(f=>f.format("json"));return JSON.stringify(abi.map(j=>JSON.parse(j)))}getAbiCoder(){return AbiCoder.defaultAbiCoder()}#getFunction(key,values,forceUnique){if(isHexString(key)){const selector=key.toLowerCase();for(const fragment of this.#functions.values()){if(selector===fragment.selector){return fragment}}return null}if(key.indexOf("(")===-1){const matching=[];for(const[name,fragment]of this.#functions){if(name.split("(")[0]===key){matching.push(fragment)}}if(values){const lastValue=values.length>0?values[values.length-1]:null;let valueLength=values.length;let allowOptions=true;if(Typed.isTyped(lastValue)&&lastValue.type==="overrides"){allowOptions=false;valueLength--}for(let i=matching.length-1;i>=0;i--){const inputs=matching[i].inputs.length;if(inputs!==valueLength&&(!allowOptions||inputs!==valueLength-1)){matching.splice(i,1)}}for(let i=matching.length-1;i>=0;i--){const inputs=matching[i].inputs;for(let j=0;j=inputs.length){if(values[j].type==="overrides"){continue}matching.splice(i,1);break}if(values[j].type!==inputs[j].baseType){matching.splice(i,1);break}}}}if(matching.length===1&&values&&values.length!==matching[0].inputs.length){const lastArg=values[values.length-1];if(lastArg==null||Array.isArray(lastArg)||typeof lastArg!=="object"){matching.splice(0,1)}}if(matching.length===0){return null}if(matching.length>1&&forceUnique){const matchStr=matching.map(m=>JSON.stringify(m.format())).join(", ");assertArgument(false,`ambiguous function description (i.e. matches ${matchStr})`,"key",key)}return matching[0]}const result=this.#functions.get(FunctionFragment.from(key).format());if(result){return result}return null}getFunctionName(key){const fragment=this.#getFunction(key,null,false);assertArgument(fragment,"no matching function","key",key);return fragment.name}hasFunction(key){return!!this.#getFunction(key,null,false)}getFunction(key,values){return this.#getFunction(key,values||null,true)}forEachFunction(callback){const names=Array.from(this.#functions.keys());names.sort((a,b)=>a.localeCompare(b));for(let i=0;i=0;i--){if(matching[i].inputs.length=0;i--){const inputs=matching[i].inputs;for(let j=0;j1&&forceUnique){const matchStr=matching.map(m=>JSON.stringify(m.format())).join(", ");assertArgument(false,`ambiguous event description (i.e. matches ${matchStr})`,"key",key)}return matching[0]}const result=this.#events.get(EventFragment.from(key).format());if(result){return result}return null}getEventName(key){const fragment=this.#getEvent(key,null,false);assertArgument(fragment,"no matching event","key",key);return fragment.name}hasEvent(key){return!!this.#getEvent(key,null,false)}getEvent(key,values){return this.#getEvent(key,values||null,true)}forEachEvent(callback){const names=Array.from(this.#events.keys());names.sort((a,b)=>a.localeCompare(b));for(let i=0;i1){const matchStr=matching.map(m=>JSON.stringify(m.format())).join(", ");assertArgument(false,`ambiguous error description (i.e. ${matchStr})`,"name",key)}return matching[0]}key=ErrorFragment.from(key).format();if(key==="Error(string)"){return ErrorFragment.from("error Error(string)")}if(key==="Panic(uint256)"){return ErrorFragment.from("error Panic(uint256)")}const result=this.#errors.get(key);if(result){return result}return null}forEachError(callback){const names=Array.from(this.#errors.keys());names.sort((a,b)=>a.localeCompare(b));for(let i=0;i{if(param.type==="string"){return id(value)}else if(param.type==="bytes"){return keccak256(hexlify(value))}if(param.type==="bool"&&typeof value==="boolean"){value=value?"0x01":"0x00"}else if(param.type.match(/^u?int/)){value=toBeHex(value)}else if(param.type.match(/^bytes/)){value=zeroPadBytes(value,32)}else if(param.type==="address"){this.#abiCoder.encode(["address"],[value])}return zeroPadValue(hexlify(value),32)};values.forEach((value,index)=>{const param=fragment.inputs[index];if(!param.indexed){assertArgument(value==null,"cannot filter non-indexed parameters; must be null","contract."+param.name,value);return}if(value==null){topics.push(null)}else if(param.baseType==="array"||param.baseType==="tuple"){assertArgument(false,"filtering with tuples or arrays not supported","contract."+param.name,value)}else if(Array.isArray(value)){topics.push(value.map(value=>encodeTopic(param,value)))}else{topics.push(encodeTopic(param,value))}});while(topics.length&&topics[topics.length-1]===null){topics.pop()}return topics}encodeEventLog(fragment,values){if(typeof fragment==="string"){const f=this.getEvent(fragment);assertArgument(f,"unknown event","eventFragment",fragment);fragment=f}const topics=[];const dataTypes=[];const dataValues=[];if(!fragment.anonymous){topics.push(fragment.topicHash)}assertArgument(values.length===fragment.inputs.length,"event arguments/values mismatch","values",values);fragment.inputs.forEach((param,index)=>{const value=values[index];if(param.indexed){if(param.type==="string"){topics.push(id(value))}else if(param.type==="bytes"){topics.push(keccak256(value))}else if(param.baseType==="tuple"||param.baseType==="array"){throw new Error("not implemented")}else{topics.push(this.#abiCoder.encode([param.type],[value]))}}else{dataTypes.push(param);dataValues.push(value)}});return{data:this.#abiCoder.encode(dataTypes,dataValues),topics:topics}}decodeEventLog(fragment,data,topics){if(typeof fragment==="string"){const f=this.getEvent(fragment);assertArgument(f,"unknown event","eventFragment",fragment);fragment=f}if(topics!=null&&!fragment.anonymous){const eventTopic=fragment.topicHash;assertArgument(isHexString(topics[0],32)&&topics[0].toLowerCase()===eventTopic,"fragment/topic mismatch","topics[0]",topics[0]);topics=topics.slice(1)}const indexed=[];const nonIndexed=[];const dynamic=[];fragment.inputs.forEach((param,index)=>{if(param.indexed){if(param.type==="string"||param.type==="bytes"||param.baseType==="tuple"||param.baseType==="array"){indexed.push(ParamType.from({type:"bytes32",name:param.name}));dynamic.push(true)}else{indexed.push(param);dynamic.push(false)}}else{nonIndexed.push(param);dynamic.push(false)}});const resultIndexed=topics!=null?this.#abiCoder.decode(indexed,concat(topics)):null;const resultNonIndexed=this.#abiCoder.decode(nonIndexed,data,true);const values=[];const keys=[];let nonIndexedIndex=0,indexedIndex=0;fragment.inputs.forEach((param,index)=>{let value=null;if(param.indexed){if(resultIndexed==null){value=new Indexed(null)}else if(dynamic[index]){value=new Indexed(resultIndexed[indexedIndex++])}else{try{value=resultIndexed[indexedIndex++]}catch(error){value=error}}}else{try{value=resultNonIndexed[nonIndexedIndex++]}catch(error){value=error}}values.push(value);keys.push(param.name||null)});return Result.fromItems(values,keys)}parseTransaction(tx){const data=getBytes(tx.data,"tx.data");const value=getBigInt(tx.value!=null?tx.value:0,"tx.value");const fragment=this.getFunction(hexlify(data.slice(0,4)));if(!fragment){return null}const args=this.#abiCoder.decode(fragment.inputs,data.slice(4));return new TransactionDescription(fragment,fragment.selector,args,value)}parseCallResult(data){throw new Error("@TODO")}parseLog(log){const fragment=this.getEvent(log.topics[0]);if(!fragment||fragment.anonymous){return null}return new LogDescription(fragment,fragment.topicHash,this.decodeEventLog(fragment,log.data,log.topics))}parseError(data){const hexData=hexlify(data);const fragment=this.getError(dataSlice(hexData,0,4));if(!fragment){return null}const args=this.#abiCoder.decode(fragment.inputs,dataSlice(hexData,4));return new ErrorDescription(fragment,fragment.selector,args)}static from(value){if(value instanceof Interface){return value}if(typeof value==="string"){return new Interface(JSON.parse(value))}if(typeof value.format==="function"){return new Interface(value.format("json"))}return new Interface(value)}}const BN_0$2=BigInt(0);function getValue(value){if(value==null){return null}return value}function toJson(value){if(value==null){return null}return value.toString()}class FeeData{gasPrice;maxFeePerGas;maxPriorityFeePerGas;constructor(gasPrice,maxFeePerGas,maxPriorityFeePerGas){defineProperties(this,{gasPrice:getValue(gasPrice),maxFeePerGas:getValue(maxFeePerGas),maxPriorityFeePerGas:getValue(maxPriorityFeePerGas)})}toJSON(){const{gasPrice,maxFeePerGas,maxPriorityFeePerGas}=this;return{_type:"FeeData",gasPrice:toJson(gasPrice),maxFeePerGas:toJson(maxFeePerGas),maxPriorityFeePerGas:toJson(maxPriorityFeePerGas)}}}function copyRequest(req){const result={};if(req.to){result.to=req.to}if(req.from){result.from=req.from}if(req.data){result.data=hexlify(req.data)}const bigIntKeys="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const key of bigIntKeys){if(!(key in req)||req[key]==null){continue}result[key]=getBigInt(req[key],`request.${key}`)}const numberKeys="type,nonce".split(/,/);for(const key of numberKeys){if(!(key in req)||req[key]==null){continue}result[key]=getNumber(req[key],`request.${key}`)}if(req.accessList){result.accessList=accessListify(req.accessList)}if("blockTag"in req){result.blockTag=req.blockTag}if("enableCcipRead"in req){result.enableCcipRead=!!req.enableCcipRead}if("customData"in req){result.customData=req.customData}return result}class Block{provider;number;hash;timestamp;parentHash;nonce;difficulty;gasLimit;gasUsed;miner;extraData;baseFeePerGas;#transactions;constructor(block,provider){this.#transactions=block.transactions.map(tx=>{if(typeof tx!=="string"){return new TransactionResponse(tx,provider)}return tx});defineProperties(this,{provider:provider,hash:getValue(block.hash),number:block.number,timestamp:block.timestamp,parentHash:block.parentHash,nonce:block.nonce,difficulty:block.difficulty,gasLimit:block.gasLimit,gasUsed:block.gasUsed,miner:block.miner,extraData:block.extraData,baseFeePerGas:getValue(block.baseFeePerGas)})}get transactions(){return this.#transactions.map(tx=>{if(typeof tx==="string"){return tx}return tx.hash})}get prefetchedTransactions(){const txs=this.#transactions.slice();if(txs.length===0){return[]}assert$1(typeof txs[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"});return txs}toJSON(){const{baseFeePerGas,difficulty,extraData,gasLimit,gasUsed,hash,miner,nonce,number,parentHash,timestamp,transactions}=this;return{_type:"Block",baseFeePerGas:toJson(baseFeePerGas),difficulty:toJson(difficulty),extraData:extraData,gasLimit:toJson(gasLimit),gasUsed:toJson(gasUsed),hash:hash,miner:miner,nonce:nonce,number:number,parentHash:parentHash,timestamp:timestamp,transactions:transactions}}[Symbol.iterator](){let index=0;const txs=this.transactions;return{next:()=>{if(index{return new Log(log,provider)}));let gasPrice=BN_0$2;if(tx.effectiveGasPrice!=null){gasPrice=tx.effectiveGasPrice}else if(tx.gasPrice!=null){gasPrice=tx.gasPrice}defineProperties(this,{provider:provider,to:tx.to,from:tx.from,contractAddress:tx.contractAddress,hash:tx.hash,index:tx.index,blockHash:tx.blockHash,blockNumber:tx.blockNumber,logsBloom:tx.logsBloom,gasUsed:tx.gasUsed,cumulativeGasUsed:tx.cumulativeGasUsed,gasPrice:gasPrice,type:tx.type,status:tx.status,root:tx.root})}get logs(){return this.#logs}toJSON(){const{to,from,contractAddress,hash,index,blockHash,blockNumber,logsBloom,logs,status,root}=this;return{_type:"TransactionReceipt",blockHash:blockHash,blockNumber:blockNumber,contractAddress:contractAddress,cumulativeGasUsed:toJson(this.cumulativeGasUsed),from:from,gasPrice:toJson(this.gasPrice),gasUsed:toJson(this.gasUsed),hash:hash,index:index,logs:logs,logsBloom:logsBloom,root:root,status:status,to:to}}get length(){return this.logs.length}[Symbol.iterator](){let index=0;return{next:()=>{if(index{if(stopScanning){return null}const{blockNumber,nonce}=await resolveProperties({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(nonce{if(receipt==null||receipt.status!==0){return receipt}assert$1(false,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:receipt.to,from:receipt.from,data:""},receipt:receipt})};const receipt=await this.provider.getTransactionReceipt(this.hash);if(confirms===0){return checkReceipt(receipt)}if(receipt){if(await receipt.confirmations()>=confirms){return checkReceipt(receipt)}}else{await checkReplacement();if(confirms===0){return null}}const waiter=new Promise((resolve,reject)=>{const cancellers=[];const cancel=()=>{cancellers.forEach(c=>c())};cancellers.push(()=>{stopScanning=true});if(timeout>0){const timer=setTimeout(()=>{cancel();reject(makeError("wait for transaction timeout","TIMEOUT"))},timeout);cancellers.push(()=>{clearTimeout(timer)})}const txListener=async receipt=>{if(await receipt.confirmations()>=confirms){cancel();try{resolve(checkReceipt(receipt))}catch(error){reject(error)}}};cancellers.push(()=>{this.provider.off(this.hash,txListener)});this.provider.on(this.hash,txListener);if(startBlock>=0){const replaceListener=async()=>{try{await checkReplacement()}catch(error){if(isError(error,"TRANSACTION_REPLACED")){cancel();reject(error);return}}if(!stopScanning){this.provider.once("block",replaceListener)}};cancellers.push(()=>{this.provider.off("block",replaceListener)});this.provider.once("block",replaceListener)}});return await waiter}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}removedEvent(){assert$1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"});return createRemovedTransactionFilter(this)}reorderedEvent(other){assert$1(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"});assert$1(!other||other.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"});return createReorderedTransactionFilter(this,other)}replaceableTransaction(startBlock){assertArgument(Number.isInteger(startBlock)&&startBlock>=0,"invalid startBlock","startBlock",startBlock);const tx=new TransactionResponse(this,this.provider);tx.#startBlock=startBlock;return tx}}function createOrphanedBlockFilter(block){return{orphan:"drop-block",hash:block.hash,number:block.number}}function createReorderedTransactionFilter(tx,other){return{orphan:"reorder-transaction",tx:tx,other:other}}function createRemovedTransactionFilter(tx){return{orphan:"drop-transaction",tx:tx}}function createRemovedLogFilter(log){return{orphan:"drop-log",log:{transactionHash:log.transactionHash,blockHash:log.blockHash,blockNumber:log.blockNumber,address:log.address,data:log.data,topics:Object.freeze(log.topics.slice()),index:log.index}}}class EventLog extends Log{interface;fragment;args;constructor(log,iface,fragment){super(log,log.provider);const args=iface.decodeEventLog(fragment,log.data,log.topics);defineProperties(this,{args:args,fragment:fragment,interface:iface})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class UndecodedEventLog extends Log{error;constructor(log,error){super(log,log.provider);defineProperties(this,{error:error})}}class ContractTransactionReceipt extends TransactionReceipt{#iface;constructor(iface,provider,tx){super(tx,provider);this.#iface=iface}get logs(){return super.logs.map(log=>{const fragment=log.topics.length?this.#iface.getEvent(log.topics[0]):null;if(fragment){try{return new EventLog(log,this.#iface,fragment)}catch(error){return new UndecodedEventLog(log,error)}}return log})}}class ContractTransactionResponse extends TransactionResponse{#iface;constructor(iface,provider,tx){super(tx,provider);this.#iface=iface}async wait(confirms){const receipt=await super.wait(confirms);if(receipt==null){return null}return new ContractTransactionReceipt(this.#iface,this.provider,receipt)}}class ContractUnknownEventPayload extends EventPayload{log;constructor(contract,listener,filter,log){super(contract,listener,filter);defineProperties(this,{log:log})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class ContractEventPayload extends ContractUnknownEventPayload{constructor(contract,listener,filter,fragment,_log){super(contract,listener,filter,new EventLog(_log,contract.interface,fragment));const args=contract.interface.decodeEventLog(fragment,this.log.data,this.log.topics);defineProperties(this,{args:args,fragment:fragment})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const BN_0$1=BigInt(0);function canCall(value){return value&&typeof value.call==="function"}function canEstimate(value){return value&&typeof value.estimateGas==="function"}function canResolve(value){return value&&typeof value.resolveName==="function"}function canSend(value){return value&&typeof value.sendTransaction==="function"}class PreparedTopicFilter{#filter;fragment;constructor(contract,fragment,args){defineProperties(this,{fragment:fragment});if(fragment.inputs.length{const arg=args[index];if(arg==null){return null}return param.walkAsync(args[index],(type,value)=>{if(type==="address"){if(Array.isArray(value)){return Promise.all(value.map(v=>resolveAddress(v,resolver)))}return resolveAddress(value,resolver)}return value})}));return contract.interface.encodeFilterTopics(fragment,resolvedArgs)}()}getTopicFilter(){return this.#filter}}function getRunner(value,feature){if(value==null){return null}if(typeof value[feature]==="function"){return value}if(value.provider&&typeof value.provider[feature]==="function"){return value.provider}return null}function getProvider(value){if(value==null){return null}return value.provider||null}async function copyOverrides(arg,allowed){const _overrides=Typed.dereference(arg,"overrides");assertArgument(typeof _overrides==="object","invalid overrides parameter","overrides",arg);const overrides=copyRequest(_overrides);assertArgument(overrides.to==null||(allowed||[]).indexOf("to")>=0,"cannot override to","overrides.to",overrides.to);assertArgument(overrides.data==null||(allowed||[]).indexOf("data")>=0,"cannot override data","overrides.data",overrides.data);if(overrides.from){overrides.from=await resolveAddress(overrides.from)}return overrides}async function resolveArgs(_runner,inputs,args){const runner=getRunner(_runner,"resolveName");const resolver=canResolve(runner)?runner:null;return await Promise.all(inputs.map((param,index)=>{return param.walkAsync(args[index],(type,value)=>{value=Typed.dereference(value,type);if(type==="address"){return resolveAddress(value,resolver)}return value})}))}function buildWrappedFallback(contract){const populateTransaction=async function(overrides){const tx=await copyOverrides(overrides,["data"]);tx.to=await contract.getAddress();const iface=contract.interface;const noValue=getBigInt(tx.value||BN_0$1,"overrides.value")===BN_0$1;const noData=(tx.data||"0x")==="0x";if(iface.fallback&&!iface.fallback.payable&&iface.receive&&!noData&&!noValue){assertArgument(false,"cannot send data to receive or send value to non-payable fallback","overrides",overrides)}assertArgument(iface.fallback||noData,"cannot send data to receive-only contract","overrides.data",tx.data);const payable=iface.receive||iface.fallback&&iface.fallback.payable;assertArgument(payable||noValue,"cannot send value to non-payable fallback","overrides.value",tx.value);assertArgument(iface.fallback||noData,"cannot send data to receive-only contract","overrides.data",tx.data);return tx};const staticCall=async function(overrides){const runner=getRunner(contract.runner,"call");assert$1(canCall(runner),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const tx=await populateTransaction(overrides);try{return await runner.call(tx)}catch(error){if(isCallException(error)&&error.data){throw contract.interface.makeError(error.data,tx)}throw error}};const send=async function(overrides){const runner=contract.runner;assert$1(canSend(runner),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const tx=await runner.sendTransaction(await populateTransaction(overrides));const provider=getProvider(contract.runner);return new ContractTransactionResponse(contract.interface,provider,tx)};const estimateGas=async function(overrides){const runner=getRunner(contract.runner,"estimateGas");assert$1(canEstimate(runner),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"});return await runner.estimateGas(await populateTransaction(overrides))};const method=async overrides=>{return await send(overrides)};defineProperties(method,{_contract:contract,estimateGas:estimateGas,populateTransaction:populateTransaction,send:send,staticCall:staticCall});return method}function buildWrappedMethod(contract,key){const getFragment=function(...args){const fragment=contract.interface.getFunction(key,args);assert$1(fragment,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:key,args:args}});return fragment};const populateTransaction=async function(...args){const fragment=getFragment(...args);let overrides={};if(fragment.inputs.length+1===args.length){overrides=await copyOverrides(args.pop())}if(fragment.inputs.length!==args.length){throw new Error("internal error: fragment inputs doesn't match arguments; should not happen")}const resolvedArgs=await resolveArgs(contract.runner,fragment.inputs,args);return Object.assign({},overrides,await resolveProperties({to:contract.getAddress(),data:contract.interface.encodeFunctionData(fragment,resolvedArgs)}))};const staticCall=async function(...args){const result=await staticCallResult(...args);if(result.length===1){return result[0]}return result};const send=async function(...args){const runner=contract.runner;assert$1(canSend(runner),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const tx=await runner.sendTransaction(await populateTransaction(...args));const provider=getProvider(contract.runner);return new ContractTransactionResponse(contract.interface,provider,tx)};const estimateGas=async function(...args){const runner=getRunner(contract.runner,"estimateGas");assert$1(canEstimate(runner),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"});return await runner.estimateGas(await populateTransaction(...args))};const staticCallResult=async function(...args){const runner=getRunner(contract.runner,"call");assert$1(canCall(runner),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const tx=await populateTransaction(...args);let result="0x";try{result=await runner.call(tx)}catch(error){if(isCallException(error)&&error.data){throw contract.interface.makeError(error.data,tx)}throw error}const fragment=getFragment(...args);return contract.interface.decodeFunctionResult(fragment,result)};const method=async(...args)=>{const fragment=getFragment(...args);if(fragment.constant){return await staticCall(...args)}return await send(...args)};defineProperties(method,{name:contract.interface.getFunctionName(key),_contract:contract,_key:key,getFragment:getFragment,estimateGas:estimateGas,populateTransaction:populateTransaction,send:send,staticCall:staticCall,staticCallResult:staticCallResult});Object.defineProperty(method,"fragment",{configurable:false,enumerable:true,get:()=>{const fragment=contract.interface.getFunction(key);assert$1(fragment,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:key}});return fragment}});return method}function buildWrappedEvent(contract,key){const getFragment=function(...args){const fragment=contract.interface.getEvent(key,args);assert$1(fragment,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:key,args:args}});return fragment};const method=function(...args){return new PreparedTopicFilter(contract,getFragment(...args),args)};defineProperties(method,{name:contract.interface.getEventName(key),_contract:contract,_key:key,getFragment:getFragment});Object.defineProperty(method,"fragment",{configurable:false,enumerable:true,get:()=>{const fragment=contract.interface.getEvent(key);assert$1(fragment,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:key}});return fragment}});return method}const internal=Symbol.for("_ethersInternal_contract");const internalValues=new WeakMap;function setInternal(contract,values){internalValues.set(contract[internal],values)}function getInternal(contract){return internalValues.get(contract[internal])}function isDeferred(value){return value&&typeof value==="object"&&"getTopicFilter"in value&&typeof value.getTopicFilter==="function"&&value.fragment}async function getSubInfo(contract,event){let topics;let fragment=null;if(Array.isArray(event)){const topicHashify=function(name){if(isHexString(name,32)){return name}const fragment=contract.interface.getEvent(name);assertArgument(fragment,"unknown fragment","name",name);return fragment.topicHash};topics=event.map(e=>{if(e==null){return null}if(Array.isArray(e)){return e.map(topicHashify)}return topicHashify(e)})}else if(event==="*"){topics=[null]}else if(typeof event==="string"){if(isHexString(event,32)){topics=[event]}else{fragment=contract.interface.getEvent(event);assertArgument(fragment,"unknown fragment","event",event);topics=[fragment.topicHash]}}else if(isDeferred(event)){topics=await event.getTopicFilter()}else if("fragment"in event){fragment=event.fragment;topics=[fragment.topicHash]}else{assertArgument(false,"unknown event name","event",event)}topics=topics.map(t=>{if(t==null){return null}if(Array.isArray(t)){const items=Array.from(new Set(t.map(t=>t.toLowerCase())).values());if(items.length===1){return items[0]}items.sort();return items}return t.toLowerCase()});const tag=topics.map(t=>{if(t==null){return"null"}if(Array.isArray(t)){return t.join("|")}return t}).join("&");return{fragment:fragment,tag:tag,topics:topics}}async function hasSub(contract,event){const{subs}=getInternal(contract);return subs.get((await getSubInfo(contract,event)).tag)||null}async function getSub(contract,operation,event){const provider=getProvider(contract.runner);assert$1(provider,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:operation});const{fragment,tag,topics}=await getSubInfo(contract,event);const{addr,subs}=getInternal(contract);let sub=subs.get(tag);if(!sub){const address=addr?addr:contract;const filter={address:address,topics:topics};const listener=log=>{let foundFragment=fragment;if(foundFragment==null){try{foundFragment=contract.interface.getEvent(log.topics[0])}catch(error){}}if(foundFragment){const _foundFragment=foundFragment;const args=fragment?contract.interface.decodeEventLog(fragment,log.data,log.topics):[];emit(contract,event,args,listener=>{return new ContractEventPayload(contract,listener,event,_foundFragment,log)})}else{emit(contract,event,[],listener=>{return new ContractUnknownEventPayload(contract,listener,event,log)})}};let starting=[];const start=()=>{if(starting.length){return}starting.push(provider.on(filter,listener))};const stop=async()=>{if(starting.length==0){return}let started=starting;starting=[];await Promise.all(started);provider.off(filter,listener)};sub={tag:tag,listeners:[],start:start,stop:stop};subs.set(tag,sub)}return sub}let lastEmit=Promise.resolve();async function _emit(contract,event,args,payloadFunc){await lastEmit;const sub=await hasSub(contract,event);if(!sub){return false}const count=sub.listeners.length;sub.listeners=sub.listeners.filter(({listener,once})=>{const passArgs=Array.from(args);if(payloadFunc){passArgs.push(payloadFunc(once?null:listener))}try{listener.call(contract,...passArgs)}catch(error){}return!once});if(sub.listeners.length===0){sub.stop();getInternal(contract).subs.delete(sub.tag)}return count>0}async function emit(contract,event,args,payloadFunc){try{await lastEmit}catch(error){}const resultPromise=_emit(contract,event,args,payloadFunc);lastEmit=resultPromise;return await resultPromise}const passProperties=["then"];class BaseContract{target;interface;runner;filters;[internal];fallback;constructor(target,abi,runner,_deployTx){assertArgument(typeof target==="string"||isAddressable(target),"invalid value for Contract target","target",target);if(runner==null){runner=null}const iface=Interface.from(abi);defineProperties(this,{target:target,runner:runner,interface:iface});Object.defineProperty(this,internal,{value:{}});let addrPromise;let addr=null;let deployTx=null;if(_deployTx){const provider=getProvider(runner);deployTx=new ContractTransactionResponse(this.interface,provider,_deployTx)}let subs=new Map;if(typeof target==="string"){if(isHexString(target)){addr=target;addrPromise=Promise.resolve(target)}else{const resolver=getRunner(runner,"resolveName");if(!canResolve(resolver)){throw makeError("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"})}addrPromise=resolver.resolveName(target).then(addr=>{if(addr==null){throw makeError("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:target})}getInternal(this).addr=addr;return addr})}}else{addrPromise=target.getAddress().then(addr=>{if(addr==null){throw new Error("TODO")}getInternal(this).addr=addr;return addr})}setInternal(this,{addrPromise:addrPromise,addr:addr,deployTx:deployTx,subs:subs});const filters=new Proxy({},{get:(target,prop,receiver)=>{if(typeof prop==="symbol"||passProperties.indexOf(prop)>=0){return Reflect.get(target,prop,receiver)}try{return this.getEvent(prop)}catch(error){if(!isError(error,"INVALID_ARGUMENT")||error.argument!=="key"){throw error}}return undefined},has:(target,prop)=>{if(passProperties.indexOf(prop)>=0){return Reflect.has(target,prop)}return Reflect.has(target,prop)||this.interface.hasEvent(String(prop))}});defineProperties(this,{filters:filters});defineProperties(this,{fallback:iface.receive||iface.fallback?buildWrappedFallback(this):null});return new Proxy(this,{get:(target,prop,receiver)=>{if(typeof prop==="symbol"||prop in target||passProperties.indexOf(prop)>=0){return Reflect.get(target,prop,receiver)}try{return target.getFunction(prop)}catch(error){if(!isError(error,"INVALID_ARGUMENT")||error.argument!=="key"){throw error}}return undefined},has:(target,prop)=>{if(typeof prop==="symbol"||prop in target||passProperties.indexOf(prop)>=0){return Reflect.has(target,prop)}return target.interface.hasFunction(prop)}})}connect(runner){return new BaseContract(this.target,this.interface,runner)}attach(target){return new BaseContract(target,this.interface,this.runner)}async getAddress(){return await getInternal(this).addrPromise}async getDeployedCode(){const provider=getProvider(this.runner);assert$1(provider,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const code=await provider.getCode(await this.getAddress());if(code==="0x"){return null}return code}async waitForDeployment(){const deployTx=this.deploymentTransaction();if(deployTx){await deployTx.wait();return this}const code=await this.getDeployedCode();if(code!=null){return this}const provider=getProvider(this.runner);assert$1(provider!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"});return new Promise((resolve,reject)=>{const checkCode=async()=>{try{const code=await this.getDeployedCode();if(code!=null){return resolve(this)}provider.once("block",checkCode)}catch(error){reject(error)}};checkCode()})}deploymentTransaction(){return getInternal(this).deployTx}getFunction(key){if(typeof key!=="string"){key=key.format()}const func=buildWrappedMethod(this,key);return func}getEvent(key){if(typeof key!=="string"){key=key.format()}return buildWrappedEvent(this,key)}async queryTransaction(hash){throw new Error("@TODO")}async queryFilter(event,fromBlock,toBlock){if(fromBlock==null){fromBlock=0}if(toBlock==null){toBlock="latest"}const{addr,addrPromise}=getInternal(this);const address=addr?addr:await addrPromise;const{fragment,topics}=await getSubInfo(this,event);const filter={address:address,topics:topics,fromBlock:fromBlock,toBlock:toBlock};const provider=getProvider(this.runner);assert$1(provider,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"});return(await provider.getLogs(filter)).map(log=>{let foundFragment=fragment;if(foundFragment==null){try{foundFragment=this.interface.getEvent(log.topics[0])}catch(error){}}if(foundFragment){try{return new EventLog(log,this.interface,foundFragment)}catch(error){return new UndecodedEventLog(log,error)}}return new Log(log,provider)})}async on(event,listener){const sub=await getSub(this,"on",event);sub.listeners.push({listener:listener,once:false});sub.start();return this}async once(event,listener){const sub=await getSub(this,"once",event);sub.listeners.push({listener:listener,once:true});sub.start();return this}async emit(event,...args){return await emit(this,event,args,null)}async listenerCount(event){if(event){const sub=await hasSub(this,event);if(!sub){return 0}return sub.listeners.length}const{subs}=getInternal(this);let total=0;for(const{listeners}of subs.values()){total+=listeners.length}return total}async listeners(event){if(event){const sub=await hasSub(this,event);if(!sub){return[]}return sub.listeners.map(({listener})=>listener)}const{subs}=getInternal(this);let result=[];for(const{listeners}of subs.values()){result=result.concat(listeners.map(({listener})=>listener))}return result}async off(event,listener){const sub=await hasSub(this,event);if(!sub){return this}if(listener){const index=sub.listeners.map(({listener})=>listener).indexOf(listener);if(index>=0){sub.listeners.splice(index,1)}}if(listener==null||sub.listeners.length===0){sub.stop();getInternal(this).subs.delete(sub.tag)}return this}async removeAllListeners(event){if(event){const sub=await hasSub(this,event);if(!sub){return this}sub.stop();getInternal(this).subs.delete(sub.tag)}else{const{subs}=getInternal(this);for(const{tag,stop}of subs.values()){stop();subs.delete(tag)}}return this}async addListener(event,listener){return await this.on(event,listener)}async removeListener(event,listener){return await this.off(event,listener)}static buildClass(abi){class CustomContract extends BaseContract{constructor(address,runner=null){super(address,abi,runner)}}return CustomContract}static from(target,abi,runner){if(runner==null){runner=null}const contract=new this(target,abi,runner);return contract}}function _ContractBase(){return BaseContract}class Contract extends _ContractBase(){}class ContractFactory{interface;bytecode;runner;constructor(abi,bytecode,runner){const iface=Interface.from(abi);if(bytecode instanceof Uint8Array){bytecode=hexlify(getBytes(bytecode))}else{if(typeof bytecode==="object"){bytecode=bytecode.object}if(!bytecode.startsWith("0x")){bytecode="0x"+bytecode}bytecode=hexlify(getBytes(bytecode))}defineProperties(this,{bytecode:bytecode,interface:iface,runner:runner||null})}attach(target){return new BaseContract(target,this.interface,this.runner)}async getDeployTransaction(...args){let overrides={};const fragment=this.interface.deploy;if(fragment.inputs.length+1===args.length){overrides=await copyOverrides(args.pop())}if(fragment.inputs.length!==args.length){throw new Error("incorrect number of arguments to constructor")}const resolvedArgs=await resolveArgs(this.runner,fragment.inputs,args);const data=concat([this.bytecode,this.interface.encodeDeploy(resolvedArgs)]);return Object.assign({},overrides,{data:data})}async deploy(...args){const tx=await this.getDeployTransaction(...args);assert$1(this.runner&&typeof this.runner.sendTransaction==="function","factory runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const sentTx=await this.runner.sendTransaction(tx);const address=getCreateAddress(sentTx);return new BaseContract(address,this.interface,this.runner,sentTx)}connect(runner){return new ContractFactory(this.interface,this.bytecode,runner)}static fromSolidity(output,runner){assertArgument(output!=null,"bad compiler output","output",output);if(typeof output==="string"){output=JSON.parse(output)}const abi=output.abi;let bytecode="";if(output.bytecode){bytecode=output.bytecode}else if(output.evm&&output.evm.bytecode){bytecode=output.evm.bytecode}return new this(abi,bytecode,runner)}}function getIpfsLink(link){if(link.match(/^ipfs:\/\/ipfs\//i)){link=link.substring(12)}else if(link.match(/^ipfs:\/\//i)){link=link.substring(7)}else{assertArgument(false,"unsupported IPFS format","link",link)}return`https:/\/gateway.ipfs.io/ipfs/${link}`}class MulticoinProviderPlugin{name;constructor(name){defineProperties(this,{name:name})}connect(proivder){return this}supportsCoinType(coinType){return false}async encodeAddress(coinType,address){throw new Error("unsupported coin")}async decodeAddress(coinType,data){throw new Error("unsupported coin")}}const matcherIpfs=new RegExp("^(ipfs)://(.*)$","i");const matchers=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),matcherIpfs,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class EnsResolver{provider;address;name;#supports2544;#resolver;constructor(provider,address,name){defineProperties(this,{provider:provider,address:address,name:name});this.#supports2544=null;this.#resolver=new Contract(address,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],provider)}async supportsWildcard(){if(this.#supports2544==null){this.#supports2544=(async()=>{try{return await this.#resolver.supportsInterface("0x9061b923")}catch(error){if(isError(error,"CALL_EXCEPTION")){return false}this.#supports2544=null;throw error}})()}return await this.#supports2544}async#fetch(funcName,params){params=(params||[]).slice();const iface=this.#resolver.interface;params.unshift(namehash(this.name));let fragment=null;if(await this.supportsWildcard()){fragment=iface.getFunction(funcName);assert$1(fragment,"missing fragment","UNKNOWN_ERROR",{info:{funcName:funcName}});params=[dnsEncode(this.name),iface.encodeFunctionData(fragment,params)];funcName="resolve(bytes,bytes)"}params.push({enableCcipRead:true});try{const result=await this.#resolver[funcName](...params);if(fragment){return iface.decodeFunctionResult(fragment,result)[0]}return result}catch(error){if(!isError(error,"CALL_EXCEPTION")){throw error}}return null}async getAddress(coinType){if(coinType==null){coinType=60}if(coinType===60){try{const result=await this.#fetch("addr(bytes32)");if(result==null||result===ZeroAddress){return null}return result}catch(error){if(isError(error,"CALL_EXCEPTION")){return null}throw error}}if(coinType>=0&&coinType<2147483648){let ethCoinType=coinType+2147483648;const data=await this.#fetch("addr(bytes32,uint)",[ethCoinType]);if(isHexString(data,20)){return getAddress(data)}}let coinPlugin=null;for(const plugin of this.provider.plugins){if(!(plugin instanceof MulticoinProviderPlugin)){continue}if(plugin.supportsCoinType(coinType)){coinPlugin=plugin;break}}if(coinPlugin==null){return null}const data=await this.#fetch("addr(bytes32,uint)",[coinType]);if(data==null||data==="0x"){return null}const address=await coinPlugin.decodeAddress(coinType,data);if(address!=null){return address}assert$1(false,`invalid coin data`,"UNSUPPORTED_OPERATION",{operation:`getAddress(${coinType})`,info:{coinType:coinType,data:data}})}async getText(key){const data=await this.#fetch("text(bytes32,string)",[key]);if(data==null||data==="0x"){return null}return data}async getContentHash(){const data=await this.#fetch("contenthash(bytes32)");if(data==null||data==="0x"){return null}const ipfs=data.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(ipfs){const scheme=ipfs[1]==="e3010170"?"ipfs":"ipns";const length=parseInt(ipfs[4],16);if(ipfs[5].length===length*2){return`${scheme}:/\/${encodeBase58("0x"+ipfs[2])}`}}const swarm=data.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(swarm&&swarm[1].length===64){return`bzz:/\/${swarm[1]}`}assert$1(false,`invalid or unsupported content hash data`,"UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:data}})}async getAvatar(){const avatar=await this._getAvatar();return avatar.url}async _getAvatar(){const linkage=[{type:"name",value:this.name}];try{const avatar=await this.getText("avatar");if(avatar==null){linkage.push({type:"!avatar",value:""});return{url:null,linkage:linkage}}linkage.push({type:"avatar",value:avatar});for(let i=0;i{if(!Array.isArray(array)){throw new Error("not an array")}return array.map(i=>format(i))}}function object(format,altNames){return value=>{const result={};for(const key in format){let srcKey=key;if(altNames&&key in altNames&&!(srcKey in value)){for(const altKey of altNames[key]){if(altKey in value){srcKey=altKey;break}}}try{const nv=format[key](value[srcKey]);if(nv!==undefined){result[key]=nv}}catch(error){const message=error instanceof Error?error.message:"not-an-error";assert$1(false,`invalid value for value.${key} (${message})`,"BAD_DATA",{value:value})}}return result}}function formatBoolean(value){switch(value){case true:case"true":return true;case false:case"false":return false}assertArgument(false,`invalid boolean; ${JSON.stringify(value)}`,"value",value)}function formatData(value){assertArgument(isHexString(value,true),"invalid data","value",value);return value}function formatHash(value){assertArgument(isHexString(value,32),"invalid hash","value",value);return value}const _formatLog=object({address:getAddress,blockHash:formatHash,blockNumber:getNumber,data:formatData,index:getNumber,removed:allowNull(formatBoolean,false),topics:arrayOf(formatHash),transactionHash:formatHash,transactionIndex:getNumber},{index:["logIndex"]});function formatLog(value){return _formatLog(value)}const _formatBlock=object({hash:allowNull(formatHash),parentHash:formatHash,number:getNumber,timestamp:getNumber,nonce:allowNull(formatData),difficulty:getBigInt,gasLimit:getBigInt,gasUsed:getBigInt,miner:allowNull(getAddress),extraData:formatData,baseFeePerGas:allowNull(getBigInt)});function formatBlock(value){const result=_formatBlock(value);result.transactions=value.transactions.map(tx=>{if(typeof tx==="string"){return tx}return formatTransactionResponse(tx)});return result}const _formatReceiptLog=object({transactionIndex:getNumber,blockNumber:getNumber,transactionHash:formatHash,address:getAddress,topics:arrayOf(formatHash),data:formatData,index:getNumber,blockHash:formatHash},{index:["logIndex"]});function formatReceiptLog(value){return _formatReceiptLog(value)}const _formatTransactionReceipt=object({to:allowNull(getAddress,null),from:allowNull(getAddress,null),contractAddress:allowNull(getAddress,null),index:getNumber,root:allowNull(hexlify),gasUsed:getBigInt,logsBloom:allowNull(formatData),blockHash:formatHash,hash:formatHash,logs:arrayOf(formatReceiptLog),blockNumber:getNumber,cumulativeGasUsed:getBigInt,effectiveGasPrice:allowNull(getBigInt),status:allowNull(getNumber),type:allowNull(getNumber,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function formatTransactionReceipt(value){return _formatTransactionReceipt(value)}function formatTransactionResponse(value){if(value.to&&getBigInt(value.to)===BN_0){value.to="0x0000000000000000000000000000000000000000"}const result=object({hash:formatHash,type:value=>{if(value==="0x"||value==null){return 0}return getNumber(value)},accessList:allowNull(accessListify,null),blockHash:allowNull(formatHash,null),blockNumber:allowNull(getNumber,null),transactionIndex:allowNull(getNumber,null),from:getAddress,gasPrice:allowNull(getBigInt),maxPriorityFeePerGas:allowNull(getBigInt),maxFeePerGas:allowNull(getBigInt),gasLimit:getBigInt,to:allowNull(getAddress,null),value:getBigInt,nonce:getNumber,data:formatData,creates:allowNull(getAddress,null),chainId:allowNull(getBigInt,null)},{data:["input"],gasLimit:["gas"]})(value);if(result.to==null&&result.creates==null){result.creates=getCreateAddress(result)}if((value.type===1||value.type===2)&&value.accessList==null){result.accessList=[]}if(value.signature){result.signature=Signature.from(value.signature)}else{result.signature=Signature.from(value)}if(result.chainId==null){const chainId=result.signature.legacyChainId;if(chainId!=null){result.chainId=chainId}}if(result.blockHash&&getBigInt(result.blockHash)===BN_0){result.blockHash=null}return result}const EnsAddress="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class NetworkPlugin{name;constructor(name){defineProperties(this,{name:name})}clone(){return new NetworkPlugin(this.name)}}class GasCostPlugin extends NetworkPlugin{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(effectiveBlock,costs){if(effectiveBlock==null){effectiveBlock=0}super(`org.ethers.network.plugins.GasCost#${effectiveBlock||0}`);const props={effectiveBlock:effectiveBlock};function set(name,nullish){let value=(costs||{})[name];if(value==null){value=nullish}assertArgument(typeof value==="number",`invalud value for ${name}`,"costs",costs);props[name]=value}set("txBase",21e3);set("txCreate",32e3);set("txDataZero",4);set("txDataNonzero",16);set("txAccessListStorageKey",1900);set("txAccessListAddress",2400);defineProperties(this,props)}clone(){return new GasCostPlugin(this.effectiveBlock,this)}}class EnsPlugin extends NetworkPlugin{address;targetNetwork;constructor(address,targetNetwork){super("org.ethers.plugins.network.Ens");defineProperties(this,{address:address||EnsAddress,targetNetwork:targetNetwork==null?1:targetNetwork})}clone(){return new EnsPlugin(this.address,this.targetNetwork)}}class FeeDataNetworkPlugin extends NetworkPlugin{#feeDataFunc;get feeDataFunc(){return this.#feeDataFunc}constructor(feeDataFunc){super("org.ethers.plugins.network.FeeData");this.#feeDataFunc=feeDataFunc}async getFeeData(provider){return await this.#feeDataFunc(provider)}clone(){return new FeeDataNetworkPlugin(this.#feeDataFunc)}}class FetchUrlFeeDataNetworkPlugin extends NetworkPlugin{#url;#processFunc;get url(){return this.#url}get processFunc(){return this.#processFunc}constructor(url,processFunc){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin");this.#url=url;this.#processFunc=processFunc}clone(){return this}}const Networks=new Map;class Network{#name;#chainId;#plugins;constructor(name,chainId){this.#name=name;this.#chainId=getBigInt(chainId);this.#plugins=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#name}set name(value){this.#name=value}get chainId(){return this.#chainId}set chainId(value){this.#chainId=getBigInt(value,"chainId")}matches(other){if(other==null){return false}if(typeof other==="string"){try{return this.chainId===getBigInt(other)}catch(error){}return this.name===other}if(typeof other==="number"||typeof other==="bigint"){try{return this.chainId===getBigInt(other)}catch(error){}return false}if(typeof other==="object"){if(other.chainId!=null){try{return this.chainId===getBigInt(other.chainId)}catch(error){}return false}if(other.name!=null){return this.name===other.name}return false}return false}get plugins(){return Array.from(this.#plugins.values())}attachPlugin(plugin){if(this.#plugins.get(plugin.name)){throw new Error(`cannot replace existing plugin: ${plugin.name} `)}this.#plugins.set(plugin.name,plugin.clone());return this}getPlugin(name){return this.#plugins.get(name)||null}getPlugins(basename){return this.plugins.filter(p=>p.name.split("#")[0]===basename)}clone(){const clone=new Network(this.name,this.chainId);this.plugins.forEach(plugin=>{clone.attachPlugin(plugin.clone())});return clone}computeIntrinsicGas(tx){const costs=this.getPlugin("org.ethers.plugins.network.GasCost")||new GasCostPlugin;let gas=costs.txBase;if(tx.to==null){gas+=costs.txCreate}if(tx.data){for(let i=2;i9){let frac=BigInt(comps[1].substring(0,9));if(!comps[1].substring(9).match(/^0+$/)){frac++}comps[1]=frac.toString()}return BigInt(comps[0]+comps[1])}function getGasStationPlugin(url){return new FetchUrlFeeDataNetworkPlugin(url,async(fetchFeeData,provider,request)=>{request.setHeader("User-Agent","ethers");let response;try{response=await request.send();const payload=response.bodyJson.standard;const feeData={maxFeePerGas:parseUnits(payload.maxFee,9),maxPriorityFeePerGas:parseUnits(payload.maxPriorityFee,9)};return feeData}catch(error){assert$1(false,`error encountered with polygon gas station (${JSON.stringify(request.url)})`,"SERVER_ERROR",{request:request,response:response,error:error})}})}function getPriorityFeePlugin(maxPriorityFeePerGas){return new FetchUrlFeeDataNetworkPlugin("data:",async(fetchFeeData,provider,request)=>{const feeData=await fetchFeeData();if(feeData.maxFeePerGas==null||feeData.maxPriorityFeePerGas==null){return feeData}const baseFee=feeData.maxFeePerGas-feeData.maxPriorityFeePerGas;return{gasPrice:feeData.gasPrice,maxFeePerGas:baseFee+maxPriorityFeePerGas,maxPriorityFeePerGas:maxPriorityFeePerGas}})}let injected=false;function injectCommonNetworks(){if(injected){return}injected=true;function registerEth(name,chainId,options){const func=function(){const network=new Network(name,chainId);if(options.ensNetwork!=null){network.attachPlugin(new EnsPlugin(null,options.ensNetwork))}network.attachPlugin(new GasCostPlugin);(options.plugins||[]).forEach(plugin=>{network.attachPlugin(plugin)});return network};Network.register(name,func);Network.register(chainId,func);if(options.altNames){options.altNames.forEach(name=>{Network.register(name,func)})}}registerEth("mainnet",1,{ensNetwork:1,altNames:["homestead"]});registerEth("ropsten",3,{ensNetwork:3});registerEth("rinkeby",4,{ensNetwork:4});registerEth("goerli",5,{ensNetwork:5});registerEth("kovan",42,{ensNetwork:42});registerEth("sepolia",11155111,{});registerEth("classic",61,{});registerEth("classicKotti",6,{});registerEth("arbitrum",42161,{ensNetwork:1});registerEth("arbitrum-goerli",421613,{});registerEth("bnb",56,{ensNetwork:1});registerEth("bnbt",97,{});registerEth("linea",59144,{ensNetwork:1});registerEth("linea-goerli",59140,{});registerEth("matic",137,{ensNetwork:1,plugins:[getGasStationPlugin("https://gasstation.polygon.technology/v2")]});registerEth("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[getGasStationPlugin("https://gasstation-testnet.polygon.technology/v2")]});registerEth("optimism",10,{ensNetwork:1,plugins:[getPriorityFeePlugin(BigInt("1000000"))]});registerEth("optimism-goerli",420,{});registerEth("xdai",100,{ensNetwork:1})}function copy$2(obj){return JSON.parse(JSON.stringify(obj))}class PollingBlockSubscriber{#provider;#poller;#interval;#blockNumber;constructor(provider){this.#provider=provider;this.#poller=null;this.#interval=4e3;this.#blockNumber=-2}get pollingInterval(){return this.#interval}set pollingInterval(value){this.#interval=value}async#poll(){try{const blockNumber=await this.#provider.getBlockNumber();if(this.#blockNumber===-2){this.#blockNumber=blockNumber;return}if(blockNumber!==this.#blockNumber){for(let b=this.#blockNumber+1;b<=blockNumber;b++){if(this.#poller==null){return}await this.#provider.emit("block",b)}this.#blockNumber=blockNumber}}catch(error){}if(this.#poller==null){return}this.#poller=this.#provider._setTimeout(this.#poll.bind(this),this.#interval)}start(){if(this.#poller){return}this.#poller=this.#provider._setTimeout(this.#poll.bind(this),this.#interval);this.#poll()}stop(){if(!this.#poller){return}this.#provider._clearTimeout(this.#poller);this.#poller=null}pause(dropWhilePaused){this.stop();if(dropWhilePaused){this.#blockNumber=-2}}resume(){this.start()}}class OnBlockSubscriber{#provider;#poll;#running;constructor(provider){this.#provider=provider;this.#running=false;this.#poll=blockNumber=>{this._poll(blockNumber,this.#provider)}}async _poll(blockNumber,provider){throw new Error("sub-classes must override this")}start(){if(this.#running){return}this.#running=true;this.#poll(-2);this.#provider.on("block",this.#poll)}stop(){if(!this.#running){return}this.#running=false;this.#provider.off("block",this.#poll)}pause(dropWhilePaused){this.stop()}resume(){this.start()}}class PollingOrphanSubscriber extends OnBlockSubscriber{#filter;constructor(provider,filter){super(provider);this.#filter=copy$2(filter)}async _poll(blockNumber,provider){throw new Error("@TODO")}}class PollingTransactionSubscriber extends OnBlockSubscriber{#hash;constructor(provider,hash){super(provider);this.#hash=hash}async _poll(blockNumber,provider){const tx=await provider.getTransactionReceipt(this.#hash);if(tx){provider.emit(this.#hash,tx)}}}class PollingEventSubscriber{#provider;#filter;#poller;#running;#blockNumber;constructor(provider,filter){this.#provider=provider;this.#filter=copy$2(filter);this.#poller=this.#poll.bind(this);this.#running=false;this.#blockNumber=-2}async#poll(blockNumber){if(this.#blockNumber===-2){return}const filter=copy$2(this.#filter);filter.fromBlock=this.#blockNumber+1;filter.toBlock=blockNumber;const logs=await this.#provider.getLogs(filter);if(logs.length===0){if(this.#blockNumber{this.#blockNumber=blockNumber})}this.#provider.on("block",this.#poller)}stop(){if(!this.#running){return}this.#running=false;this.#provider.off("block",this.#poller)}pause(dropWhilePaused){this.stop();if(dropWhilePaused){this.#blockNumber=-2}}resume(){this.start()}}const BN_2$1=BigInt(2);const MAX_CCIP_REDIRECTS=10;function isPromise$1(value){return value&&typeof value.then==="function"}function getTag(prefix,value){return prefix+":"+JSON.stringify(value,(k,v)=>{if(v==null){return"null"}if(typeof v==="bigint"){return`bigint:${v.toString()}`}if(typeof v==="string"){return v.toLowerCase()}if(typeof v==="object"&&!Array.isArray(v)){const keys=Object.keys(v);keys.sort();return keys.reduce((accum,key)=>{accum[key]=v[key];return accum},{})}return v})}class UnmanagedSubscriber{name;constructor(name){defineProperties(this,{name:name})}start(){}stop(){}pause(dropWhilePaused){}resume(){}}function copy$1(value){return JSON.parse(JSON.stringify(value))}function concisify(items){items=Array.from(new Set(items).values());items.sort();return items}async function getSubscription(_event,provider){if(_event==null){throw new Error("invalid event")}if(Array.isArray(_event)){_event={topics:_event}}if(typeof _event==="string"){switch(_event){case"block":case"pending":case"debug":case"error":case"network":{return{type:_event,tag:_event}}}}if(isHexString(_event,32)){const hash=_event.toLowerCase();return{type:"transaction",tag:getTag("tx",{hash:hash}),hash:hash}}if(_event.orphan){const event=_event;return{type:"orphan",tag:getTag("orphan",event),filter:copy$1(event)}}if(_event.address||_event.topics){const event=_event;const filter={topics:(event.topics||[]).map(t=>{if(t==null){return null}if(Array.isArray(t)){return concisify(t.map(t=>t.toLowerCase()))}return t.toLowerCase()})};if(event.address){const addresses=[];const promises=[];const addAddress=addr=>{if(isHexString(addr)){addresses.push(addr)}else{promises.push((async()=>{addresses.push(await resolveAddress(addr,provider))})())}};if(Array.isArray(event.address)){event.address.forEach(addAddress)}else{addAddress(event.address)}if(promises.length){await Promise.all(promises)}filter.address=concisify(addresses.map(a=>a.toLowerCase()))}return{filter:filter,tag:getTag("event",filter),type:"event"}}assertArgument(false,"unknown ProviderEvent","event",_event)}function getTime$1(){return(new Date).getTime()}const defaultOptions$1={cacheTimeout:250,pollingInterval:4e3};class AbstractProvider{#subs;#plugins;#pausedState;#destroyed;#networkPromise;#anyNetwork;#performCache;#lastBlockNumber;#nextTimer;#timers;#disableCcipRead;#options;constructor(_network,options){this.#options=Object.assign({},defaultOptions$1,options||{});if(_network==="any"){this.#anyNetwork=true;this.#networkPromise=null}else if(_network){const network=Network.from(_network);this.#anyNetwork=false;this.#networkPromise=Promise.resolve(network);setTimeout(()=>{this.emit("network",network,null)},0)}else{this.#anyNetwork=false;this.#networkPromise=null}this.#lastBlockNumber=-1;this.#performCache=new Map;this.#subs=new Map;this.#plugins=new Map;this.#pausedState=null;this.#destroyed=false;this.#nextTimer=1;this.#timers=new Map;this.#disableCcipRead=false}get pollingInterval(){return this.#options.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#plugins.values())}attachPlugin(plugin){if(this.#plugins.get(plugin.name)){throw new Error(`cannot replace existing plugin: ${plugin.name} `)}this.#plugins.set(plugin.name,plugin.connect(this));return this}getPlugin(name){return this.#plugins.get(name)||null}get disableCcipRead(){return this.#disableCcipRead}set disableCcipRead(value){this.#disableCcipRead=!!value}async#perform(req){const timeout=this.#options.cacheTimeout;if(timeout<0){return await this._perform(req)}const tag=getTag(req.method,req);let perform=this.#performCache.get(tag);if(!perform){perform=this._perform(req);this.#performCache.set(tag,perform);setTimeout(()=>{if(this.#performCache.get(tag)===perform){this.#performCache.delete(tag)}},timeout)}return await perform}async ccipReadFetch(tx,calldata,urls){if(this.disableCcipRead||urls.length===0||tx.to==null){return null}const sender=tx.to.toLowerCase();const data=calldata.toLowerCase();const errorMessages=[];for(let i=0;i=500,`response not found during CCIP fetch: ${errorMessage}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:tx,info:{url:url,errorMessage:errorMessage}});errorMessages.push(errorMessage)}assert$1(false,`error encountered during CCIP fetch: ${errorMessages.map(m=>JSON.stringify(m)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:tx,info:{urls:urls,errorMessages:errorMessages}})}_wrapBlock(value,network){return new Block(formatBlock(value),this)}_wrapLog(value,network){return new Log(formatLog(value),this)}_wrapTransactionReceipt(value,network){return new TransactionReceipt(formatTransactionReceipt(value),this)}_wrapTransactionResponse(tx,network){return new TransactionResponse(formatTransactionResponse(tx),this)}_detectNetwork(){assert$1(false,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(req){assert$1(false,`unsupported method: ${req.method}`,"UNSUPPORTED_OPERATION",{operation:req.method,info:req})}async getBlockNumber(){const blockNumber=getNumber(await this.#perform({method:"getBlockNumber"}),"%response");if(this.#lastBlockNumber>=0){this.#lastBlockNumber=blockNumber}return blockNumber}_getAddress(address){return resolveAddress(address,this)}_getBlockTag(blockTag){if(blockTag==null){return"latest"}switch(blockTag){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return blockTag}if(isHexString(blockTag)){if(isHexString(blockTag,32)){return blockTag}return toQuantity(blockTag)}if(typeof blockTag==="bigint"){blockTag=getNumber(blockTag,"blockTag")}if(typeof blockTag==="number"){if(blockTag>=0){return toQuantity(blockTag)}if(this.#lastBlockNumber>=0){return toQuantity(this.#lastBlockNumber+blockTag)}return this.getBlockNumber().then(b=>toQuantity(b+blockTag))}assertArgument(false,"invalid blockTag","blockTag",blockTag)}_getFilter(filter){const topics=(filter.topics||[]).map(t=>{if(t==null){return null}if(Array.isArray(t)){return concisify(t.map(t=>t.toLowerCase()))}return t.toLowerCase()});const blockHash="blockHash"in filter?filter.blockHash:undefined;const resolve=(_address,fromBlock,toBlock)=>{let address=undefined;switch(_address.length){case 0:break;case 1:address=_address[0];break;default:_address.sort();address=_address}if(blockHash){if(fromBlock!=null||toBlock!=null){throw new Error("invalid filter")}}const filter={};if(address){filter.address=address}if(topics.length){filter.topics=topics}if(fromBlock){filter.fromBlock=fromBlock}if(toBlock){filter.toBlock=toBlock}if(blockHash){filter.blockHash=blockHash}return filter};let address=[];if(filter.address){if(Array.isArray(filter.address)){for(const addr of filter.address){address.push(this._getAddress(addr))}}else{address.push(this._getAddress(filter.address))}}let fromBlock=undefined;if("fromBlock"in filter){fromBlock=this._getBlockTag(filter.fromBlock)}let toBlock=undefined;if("toBlock"in filter){toBlock=this._getBlockTag(filter.toBlock)}if(address.filter(a=>typeof a!=="string").length||fromBlock!=null&&typeof fromBlock!=="string"||toBlock!=null&&typeof toBlock!=="string"){return Promise.all([Promise.all(address),fromBlock,toBlock]).then(result=>{return resolve(result[0],result[1],result[2])})}return resolve(address,fromBlock,toBlock)}_getTransactionRequest(_request){const request=copyRequest(_request);const promises=[];["to","from"].forEach(key=>{if(request[key]==null){return}const addr=resolveAddress(request[key]);if(isPromise$1(addr)){promises.push(async function(){request[key]=await addr}())}else{request[key]=addr}});if(request.blockTag!=null){const blockTag=this._getBlockTag(request.blockTag);if(isPromise$1(blockTag)){promises.push(async function(){request.blockTag=await blockTag}())}else{request.blockTag=blockTag}}if(promises.length){return async function(){await Promise.all(promises);return request}()}return request}async getNetwork(){if(this.#networkPromise==null){const detectNetwork=this._detectNetwork().then(network=>{this.emit("network",network,null);return network},error=>{if(this.#networkPromise===detectNetwork){this.#networkPromise=null}throw error});this.#networkPromise=detectNetwork;return(await detectNetwork).clone()}const networkPromise=this.#networkPromise;const[expected,actual]=await Promise.all([networkPromise,this._detectNetwork()]);if(expected.chainId!==actual.chainId){if(this.#anyNetwork){this.emit("network",actual,expected);if(this.#networkPromise===networkPromise){this.#networkPromise=Promise.resolve(actual)}}else{assert$1(false,`network changed: ${expected.chainId} => ${actual.chainId} `,"NETWORK_ERROR",{event:"changed"})}}return expected.clone()}async getFeeData(){const network=await this.getNetwork();const getFeeDataFunc=async()=>{const{_block,gasPrice}=await resolveProperties({_block:this.#getBlock("latest",false),gasPrice:(async()=>{try{const gasPrice=await this.#perform({method:"getGasPrice"});return getBigInt(gasPrice,"%response")}catch(error){}return null})()});let maxFeePerGas=null,maxPriorityFeePerGas=null;const block=this._wrapBlock(_block,network);if(block&&block.baseFeePerGas){maxPriorityFeePerGas=BigInt("1000000000");maxFeePerGas=block.baseFeePerGas*BN_2$1+maxPriorityFeePerGas}return new FeeData(gasPrice,maxFeePerGas,maxPriorityFeePerGas)};const plugin=network.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(plugin){const req=new FetchRequest(plugin.url);const feeData=await plugin.processFunc(getFeeDataFunc,this,req);return new FeeData(feeData.gasPrice,feeData.maxFeePerGas,feeData.maxPriorityFeePerGas)}return await getFeeDataFunc()}async estimateGas(_tx){let tx=this._getTransactionRequest(_tx);if(isPromise$1(tx)){tx=await tx}return getBigInt(await this.#perform({method:"estimateGas",transaction:tx}),"%response")}async#call(tx,blockTag,attempt){assert$1(attempt=0&&blockTag==="latest"&&transaction.to!=null&&dataSlice(error.data,0,4)==="0x556f1830"){const data=error.data;const txSender=await resolveAddress(transaction.to,this);let ccipArgs;try{ccipArgs=parseOffchainLookup(dataSlice(error.data,4))}catch(error){assert$1(false,error.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:transaction,info:{data:data}})}assert$1(ccipArgs.sender.toLowerCase()===txSender.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:data,reason:"OffchainLookup",transaction:transaction,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:ccipArgs.errorArgs}});const ccipResult=await this.ccipReadFetch(transaction,ccipArgs.calldata,ccipArgs.urls);assert$1(ccipResult!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:transaction,info:{data:error.data,errorArgs:ccipArgs.errorArgs}});const tx={to:txSender,data:concat([ccipArgs.selector,encodeBytes([ccipResult,ccipArgs.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:tx});try{const result=await this.#call(tx,blockTag,attempt+1);this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},tx),result:result});return result}catch(error){this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},tx),error:error});throw error}}throw error}}async#checkNetwork(promise){const{value}=await resolveProperties({network:this.getNetwork(),value:promise});return value}async call(_tx){const{tx,blockTag}=await resolveProperties({tx:this._getTransactionRequest(_tx),blockTag:this._getBlockTag(_tx.blockTag)});return await this.#checkNetwork(this.#call(tx,blockTag,_tx.enableCcipRead?0:-1))}async#getAccountValue(request,_address,_blockTag){let address=this._getAddress(_address);let blockTag=this._getBlockTag(_blockTag);if(typeof address!=="string"||typeof blockTag!=="string"){[address,blockTag]=await Promise.all([address,blockTag])}return await this.#checkNetwork(this.#perform(Object.assign(request,{address:address,blockTag:blockTag})))}async getBalance(address,blockTag){return getBigInt(await this.#getAccountValue({method:"getBalance"},address,blockTag),"%response")}async getTransactionCount(address,blockTag){return getNumber(await this.#getAccountValue({method:"getTransactionCount"},address,blockTag),"%response")}async getCode(address,blockTag){return hexlify(await this.#getAccountValue({method:"getCode"},address,blockTag))}async getStorage(address,_position,blockTag){const position=getBigInt(_position,"position");return hexlify(await this.#getAccountValue({method:"getStorage",position:position},address,blockTag))}async broadcastTransaction(signedTx){const{blockNumber,hash,network}=await resolveProperties({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:signedTx}),network:this.getNetwork()});const tx=Transaction.from(signedTx);if(tx.hash!==hash){throw new Error("@TODO: the returned hash did not match")}return this._wrapTransactionResponse(tx,network).replaceableTransaction(blockNumber)}async#getBlock(block,includeTransactions){if(isHexString(block,32)){return await this.#perform({method:"getBlock",blockHash:block,includeTransactions:includeTransactions})}let blockTag=this._getBlockTag(block);if(typeof blockTag!=="string"){blockTag=await blockTag}return await this.#perform({method:"getBlock",blockTag:blockTag,includeTransactions:includeTransactions})}async getBlock(block,prefetchTxs){const{network,params}=await resolveProperties({network:this.getNetwork(),params:this.#getBlock(block,!!prefetchTxs)});if(params==null){return null}return this._wrapBlock(params,network)}async getTransaction(hash){const{network,params}=await resolveProperties({network:this.getNetwork(),params:this.#perform({method:"getTransaction",hash:hash})});if(params==null){return null}return this._wrapTransactionResponse(params,network)}async getTransactionReceipt(hash){const{network,params}=await resolveProperties({network:this.getNetwork(),params:this.#perform({method:"getTransactionReceipt",hash:hash})});if(params==null){return null}if(params.gasPrice==null&¶ms.effectiveGasPrice==null){const tx=await this.#perform({method:"getTransaction",hash:hash});if(tx==null){throw new Error("report this; could not find tx or effectiveGasPrice")}params.effectiveGasPrice=tx.gasPrice}return this._wrapTransactionReceipt(params,network)}async getTransactionResult(hash){const{result}=await resolveProperties({network:this.getNetwork(),result:this.#perform({method:"getTransactionResult",hash:hash})});if(result==null){return null}return hexlify(result)}async getLogs(_filter){let filter=this._getFilter(_filter);if(isPromise$1(filter)){filter=await filter}const{network,params}=await resolveProperties({network:this.getNetwork(),params:this.#perform({method:"getLogs",filter:filter})});return params.map(p=>this._wrapLog(p,network))}_getProvider(chainId){assert$1(false,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(name){return await EnsResolver.fromName(this,name)}async getAvatar(name){const resolver=await this.getResolver(name);if(resolver){return await resolver.getAvatar()}return null}async resolveName(name){const resolver=await this.getResolver(name);if(resolver){return await resolver.getAddress()}return null}async lookupAddress(address){address=getAddress(address);const node=namehash(address.substring(2).toLowerCase()+".addr.reverse");try{const ensAddr=await EnsResolver.getEnsAddress(this);const ensContract=new Contract(ensAddr,["function resolver(bytes32) view returns (address)"],this);const resolver=await ensContract.resolver(node);if(resolver==null||resolver===ZeroAddress){return null}const resolverContract=new Contract(resolver,["function name(bytes32) view returns (string)"],this);const name=await resolverContract.name(node);const check=await this.resolveName(name);if(check!==address){return null}return name}catch(error){if(isError(error,"BAD_DATA")&&error.value==="0x"){return null}if(isError(error,"CALL_EXCEPTION")){return null}throw error}return null}async waitForTransaction(hash,_confirms,timeout){const confirms=_confirms!=null?_confirms:1;if(confirms===0){return this.getTransactionReceipt(hash)}return new Promise(async(resolve,reject)=>{let timer=null;const listener=async blockNumber=>{try{const receipt=await this.getTransactionReceipt(hash);if(receipt!=null){if(blockNumber-receipt.blockNumber+1>=confirms){resolve(receipt);if(timer){clearTimeout(timer);timer=null}return}}}catch(error){console.log("EEE",error)}this.once("block",listener)};if(timeout!=null){timer=setTimeout(()=>{if(timer==null){return}timer=null;this.off("block",listener);reject(makeError("timeout","TIMEOUT",{reason:"timeout"}))},timeout)}listener(await this.getBlockNumber())})}async waitForBlock(blockTag){assert$1(false,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(timerId){const timer=this.#timers.get(timerId);if(!timer){return}if(timer.timer){clearTimeout(timer.timer)}this.#timers.delete(timerId)}_setTimeout(_func,timeout){if(timeout==null){timeout=0}const timerId=this.#nextTimer++;const func=()=>{this.#timers.delete(timerId);_func()};if(this.paused){this.#timers.set(timerId,{timer:null,func:func,time:timeout})}else{const timer=setTimeout(func,timeout);this.#timers.set(timerId,{timer:timer,func:func,time:getTime$1()})}return timerId}_forEachSubscriber(func){for(const sub of this.#subs.values()){func(sub.subscriber)}}_getSubscriber(sub){switch(sub.type){case"debug":case"error":case"network":return new UnmanagedSubscriber(sub.type);case"block":{const subscriber=new PollingBlockSubscriber(this);subscriber.pollingInterval=this.pollingInterval;return subscriber}case"event":return new PollingEventSubscriber(this,sub.filter);case"transaction":return new PollingTransactionSubscriber(this,sub.hash);case"orphan":return new PollingOrphanSubscriber(this,sub.filter)}throw new Error(`unsupported event: ${sub.type}`)}_recoverSubscriber(oldSub,newSub){for(const sub of this.#subs.values()){if(sub.subscriber===oldSub){if(sub.started){sub.subscriber.stop()}sub.subscriber=newSub;if(sub.started){newSub.start()}if(this.#pausedState!=null){newSub.pause(this.#pausedState)}break}}}async#hasSub(event,emitArgs){let sub=await getSubscription(event,this);if(sub.type==="event"&&emitArgs&&emitArgs.length>0&&emitArgs[0].removed===true){sub=await getSubscription({orphan:"drop-log",log:emitArgs[0]},this)}return this.#subs.get(sub.tag)||null}async#getSub(event){const subscription=await getSubscription(event,this);const tag=subscription.tag;let sub=this.#subs.get(tag);if(!sub){const subscriber=this._getSubscriber(subscription);const addressableMap=new WeakMap;const nameMap=new Map;sub={subscriber:subscriber,tag:tag,addressableMap:addressableMap,nameMap:nameMap,started:false,listeners:[]};this.#subs.set(tag,sub)}return sub}async on(event,listener){const sub=await this.#getSub(event);sub.listeners.push({listener:listener,once:false});if(!sub.started){sub.subscriber.start();sub.started=true;if(this.#pausedState!=null){sub.subscriber.pause(this.#pausedState)}}return this}async once(event,listener){const sub=await this.#getSub(event);sub.listeners.push({listener:listener,once:true});if(!sub.started){sub.subscriber.start();sub.started=true;if(this.#pausedState!=null){sub.subscriber.pause(this.#pausedState)}}return this}async emit(event,...args){const sub=await this.#hasSub(event,args);if(!sub||sub.listeners.length===0){return false}const count=sub.listeners.length;sub.listeners=sub.listeners.filter(({listener,once})=>{const payload=new EventPayload(this,once?null:listener,event);try{listener.call(this,...args,payload)}catch(error){}return!once});if(sub.listeners.length===0){if(sub.started){sub.subscriber.stop()}this.#subs.delete(sub.tag)}return count>0}async listenerCount(event){if(event){const sub=await this.#hasSub(event);if(!sub){return 0}return sub.listeners.length}let total=0;for(const{listeners}of this.#subs.values()){total+=listeners.length}return total}async listeners(event){if(event){const sub=await this.#hasSub(event);if(!sub){return[]}return sub.listeners.map(({listener})=>listener)}let result=[];for(const{listeners}of this.#subs.values()){result=result.concat(listeners.map(({listener})=>listener))}return result}async off(event,listener){const sub=await this.#hasSub(event);if(!sub){return this}if(listener){const index=sub.listeners.map(({listener})=>listener).indexOf(listener);if(index>=0){sub.listeners.splice(index,1)}}if(!listener||sub.listeners.length===0){if(sub.started){sub.subscriber.stop()}this.#subs.delete(sub.tag)}return this}async removeAllListeners(event){if(event){const{tag,started,subscriber}=await this.#getSub(event);if(started){subscriber.stop()}this.#subs.delete(tag)}else{for(const[tag,{started,subscriber}]of this.#subs){if(started){subscriber.stop()}this.#subs.delete(tag)}}return this}async addListener(event,listener){return await this.on(event,listener)}async removeListener(event,listener){return this.off(event,listener)}get destroyed(){return this.#destroyed}destroy(){this.removeAllListeners();for(const timerId of this.#timers.keys()){this._clearTimeout(timerId)}this.#destroyed=true}get paused(){return this.#pausedState!=null}set paused(pause){if(!!pause===this.paused){return}if(this.paused){this.resume()}else{this.pause(false)}}pause(dropWhilePaused){this.#lastBlockNumber=-1;if(this.#pausedState!=null){if(this.#pausedState==!!dropWhilePaused){return}assert$1(false,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(s=>s.pause(dropWhilePaused));this.#pausedState=!!dropWhilePaused;for(const timer of this.#timers.values()){if(timer.timer){clearTimeout(timer.timer)}timer.time=getTime$1()-timer.time}}resume(){if(this.#pausedState==null){return}this._forEachSubscriber(s=>s.resume());this.#pausedState=null;for(const timer of this.#timers.values()){let timeout=timer.time;if(timeout<0){timeout=0}timer.time=getTime$1();setTimeout(timer.func,timeout)}}}function _parseString(result,start){try{const bytes=_parseBytes(result,start);if(bytes){return toUtf8String(bytes)}}catch(error){}return null}function _parseBytes(result,start){if(result==="0x"){return null}try{const offset=getNumber(dataSlice(result,start,start+32));const length=getNumber(dataSlice(result,offset,offset+32));return dataSlice(result,offset+32,offset+32+length)}catch(error){}return null}function numPad(value){const result=toBeArray(value);if(result.length>32){throw new Error("internal; should not happen")}const padded=new Uint8Array(32);padded.set(result,32-result.length);return padded}function bytesPad(value){if(value.length%32===0){return value}const result=new Uint8Array(Math.ceil(value.length/32)*32);result.set(value);return result}const empty=new Uint8Array([]);function encodeBytes(datas){const result=[];let byteCount=0;for(let i=0;i=5*32,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const sender=dataSlice(data,0,32);assert$1(dataSlice(sender,0,12)===dataSlice(zeros,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"});result.sender=dataSlice(sender,12);try{const urls=[];const urlsOffset=getNumber(dataSlice(data,32,64));const urlsLength=getNumber(dataSlice(data,urlsOffset,urlsOffset+32));const urlsData=dataSlice(data,urlsOffset+32);for(let u=0;uresult[k]);return result}function checkProvider(signer,operation){if(signer.provider){return signer.provider}assert$1(false,"missing provider","UNSUPPORTED_OPERATION",{operation:operation})}async function populate(signer,tx){let pop=copyRequest(tx);if(pop.to!=null){pop.to=resolveAddress(pop.to,signer)}if(pop.from!=null){const from=pop.from;pop.from=Promise.all([signer.getAddress(),resolveAddress(from,signer)]).then(([address,from])=>{assertArgument(address.toLowerCase()===from.toLowerCase(),"transaction from mismatch","tx.from",from);return address})}else{pop.from=signer.getAddress()}return await resolveProperties(pop)}class AbstractSigner{provider;constructor(provider){defineProperties(this,{provider:provider||null})}async getNonce(blockTag){return checkProvider(this,"getTransactionCount").getTransactionCount(await this.getAddress(),blockTag)}async populateCall(tx){const pop=await populate(this,tx);return pop}async populateTransaction(tx){const provider=checkProvider(this,"populateTransaction");const pop=await populate(this,tx);if(pop.nonce==null){pop.nonce=await this.getNonce("pending")}if(pop.gasLimit==null){pop.gasLimit=await this.estimateGas(pop)}const network=await this.provider.getNetwork();if(pop.chainId!=null){const chainId=getBigInt(pop.chainId);assertArgument(chainId===network.chainId,"transaction chainId mismatch","tx.chainId",tx.chainId)}else{pop.chainId=network.chainId}const hasEip1559=pop.maxFeePerGas!=null||pop.maxPriorityFeePerGas!=null;if(pop.gasPrice!=null&&(pop.type===2||hasEip1559)){assertArgument(false,"eip-1559 transaction do not support gasPrice","tx",tx)}else if((pop.type===0||pop.type===1)&&hasEip1559){assertArgument(false,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",tx)}if((pop.type===2||pop.type==null)&&(pop.maxFeePerGas!=null&&pop.maxPriorityFeePerGas!=null)){pop.type=2}else if(pop.type===0||pop.type===1){const feeData=await provider.getFeeData();assert$1(feeData.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"});if(pop.gasPrice==null){pop.gasPrice=feeData.gasPrice}}else{const feeData=await provider.getFeeData();if(pop.type==null){if(feeData.maxFeePerGas!=null&&feeData.maxPriorityFeePerGas!=null){pop.type=2;if(pop.gasPrice!=null){const gasPrice=pop.gasPrice;delete pop.gasPrice;pop.maxFeePerGas=gasPrice;pop.maxPriorityFeePerGas=gasPrice}else{if(pop.maxFeePerGas==null){pop.maxFeePerGas=feeData.maxFeePerGas}if(pop.maxPriorityFeePerGas==null){pop.maxPriorityFeePerGas=feeData.maxPriorityFeePerGas}}}else if(feeData.gasPrice!=null){assert$1(!hasEip1559,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"});if(pop.gasPrice==null){pop.gasPrice=feeData.gasPrice}pop.type=0}else{assert$1(false,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"})}}else if(pop.type===2){if(pop.maxFeePerGas==null){pop.maxFeePerGas=feeData.maxFeePerGas}if(pop.maxPriorityFeePerGas==null){pop.maxPriorityFeePerGas=feeData.maxPriorityFeePerGas}}}return await resolveProperties(pop)}async estimateGas(tx){return checkProvider(this,"estimateGas").estimateGas(await this.populateCall(tx))}async call(tx){return checkProvider(this,"call").call(await this.populateCall(tx))}async resolveName(name){const provider=checkProvider(this,"resolveName");return await provider.resolveName(name)}async sendTransaction(tx){const provider=checkProvider(this,"sendTransaction");const pop=await this.populateTransaction(tx);delete pop.from;const txObj=Transaction.from(pop);return await provider.broadcastTransaction(await this.signTransaction(txObj))}}class VoidSigner extends AbstractSigner{address;constructor(address,provider){super(provider);defineProperties(this,{address:address})}async getAddress(){return this.address}connect(provider){return new VoidSigner(this.address,provider)}#throwUnsupported(suffix,operation){assert$1(false,`VoidSigner cannot sign ${suffix}`,"UNSUPPORTED_OPERATION",{operation:operation})}async signTransaction(tx){this.#throwUnsupported("transactions","signTransaction")}async signMessage(message){this.#throwUnsupported("messages","signMessage")}async signTypedData(domain,types,value){this.#throwUnsupported("typed-data","signTypedData")}}const shown=new Set;function showThrottleMessage(service){if(shown.has(service)){return}shown.add(service);console.log("========= NOTICE =========");console.log(`Request-Rate Exceeded for ${service} (this message will not be repeated)`);console.log("");console.log("The default API keys for each service are provided as a highly-throttled,");console.log("community resource for low-traffic projects and early prototyping.");console.log("");console.log("While your application will continue to function, we highly recommended");console.log("signing up for your own API keys to improve performance, increase your");console.log("request rate/limit and enable other perks, such as metrics and advanced APIs.");console.log("");console.log("For more details: https://docs.ethers.org/api-keys/");console.log("==========================")}function copy(obj){return JSON.parse(JSON.stringify(obj))}class FilterIdSubscriber{#provider;#filterIdPromise;#poller;#running;#network;#hault;constructor(provider){this.#provider=provider;this.#filterIdPromise=null;this.#poller=this.#poll.bind(this);this.#running=false;this.#network=null;this.#hault=false}_subscribe(provider){throw new Error("subclasses must override this")}_emitResults(provider,result){throw new Error("subclasses must override this")}_recover(provider){throw new Error("subclasses must override this")}async#poll(blockNumber){try{if(this.#filterIdPromise==null){this.#filterIdPromise=this._subscribe(this.#provider)}let filterId=null;try{filterId=await this.#filterIdPromise}catch(error){if(!isError(error,"UNSUPPORTED_OPERATION")||error.operation!=="eth_newFilter"){throw error}}if(filterId==null){this.#filterIdPromise=null;this.#provider._recoverSubscriber(this,this._recover(this.#provider));return}const network=await this.#provider.getNetwork();if(!this.#network){this.#network=network}if(this.#network.chainId!==network.chainId){throw new Error("chaid changed")}if(this.#hault){return}const result=await this.#provider.send("eth_getFilterChanges",[filterId]);await this._emitResults(this.#provider,result)}catch(error){console.log("@TODO",error)}this.#provider.once("block",this.#poller)}#teardown(){const filterIdPromise=this.#filterIdPromise;if(filterIdPromise){this.#filterIdPromise=null;filterIdPromise.then(filterId=>{this.#provider.send("eth_uninstallFilter",[filterId])})}}start(){if(this.#running){return}this.#running=true;this.#poll(-2)}stop(){if(!this.#running){return}this.#running=false;this.#hault=true;this.#teardown();this.#provider.off("block",this.#poller)}pause(dropWhilePaused){if(dropWhilePaused){this.#teardown()}this.#provider.off("block",this.#poller)}resume(){this.start()}}class FilterIdEventSubscriber extends FilterIdSubscriber{#event;constructor(provider,filter){super(provider);this.#event=copy(filter)}_recover(provider){return new PollingEventSubscriber(provider,this.#event)}async _subscribe(provider){const filterId=await provider.send("eth_newFilter",[this.#event]);return filterId}async _emitResults(provider,results){for(const result of results){provider.emit(this.#event,provider._wrapLog(result,provider._network))}}}class FilterIdPendingSubscriber extends FilterIdSubscriber{async _subscribe(provider){return await provider.send("eth_newPendingTransactionFilter",[])}async _emitResults(provider,results){for(const result of results){provider.emit("pending",result)}}}const Primitive="bigint,boolean,function,number,string,symbol".split(/,/g);function deepCopy(value){if(value==null||Primitive.indexOf(typeof value)>=0){return value}if(typeof value.getAddress==="function"){return value}if(Array.isArray(value)){return value.map(deepCopy)}if(typeof value==="object"){return Object.keys(value).reduce((accum,key)=>{accum[key]=value[key];return accum},{})}throw new Error(`should not happen: ${value} (${typeof value})`)}function stall$3(duration){return new Promise(resolve=>{setTimeout(resolve,duration)})}function getLowerCase(value){if(value){return value.toLowerCase()}return value}function isPollable(value){return value&&typeof value.pollingInterval==="number"}const defaultOptions={polling:false,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class JsonRpcSigner extends AbstractSigner{address;constructor(provider,address){super(provider);address=getAddress(address);defineProperties(this,{address:address})}connect(provider){assert$1(false,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(tx){return await this.populateCall(tx)}async sendUncheckedTransaction(_tx){const tx=deepCopy(_tx);const promises=[];if(tx.from){const _from=tx.from;promises.push((async()=>{const from=await resolveAddress(_from,this.provider);assertArgument(from!=null&&from.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",_tx);tx.from=from})())}else{tx.from=this.address}if(tx.gasLimit==null){promises.push((async()=>{tx.gasLimit=await this.provider.estimateGas({...tx,from:this.address})})())}if(tx.to!=null){const _to=tx.to;promises.push((async()=>{tx.to=await resolveAddress(_to,this.provider)})())}if(promises.length){await Promise.all(promises)}const hexTx=this.provider.getRpcTransaction(tx);return this.provider.send("eth_sendTransaction",[hexTx])}async sendTransaction(tx){const blockNumber=await this.provider.getBlockNumber();const hash=await this.sendUncheckedTransaction(tx);return await new Promise((resolve,reject)=>{const timeouts=[1e3,100];const checkTx=async()=>{const tx=await this.provider.getTransaction(hash);if(tx!=null){resolve(tx.replaceableTransaction(blockNumber));return}this.provider._setTimeout(()=>{checkTx()},timeouts.pop()||4e3)};checkTx()})}async signTransaction(_tx){const tx=deepCopy(_tx);if(tx.from){const from=await resolveAddress(tx.from,this.provider);assertArgument(from!=null&&from.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",_tx);tx.from=from}else{tx.from=this.address}const hexTx=this.provider.getRpcTransaction(tx);return await this.provider.send("eth_signTransaction",[hexTx])}async signMessage(_message){const message=typeof _message==="string"?toUtf8Bytes(_message):_message;return await this.provider.send("personal_sign",[hexlify(message),this.address.toLowerCase()])}async signTypedData(domain,types,_value){const value=deepCopy(_value);const populated=await TypedDataEncoder.resolveNames(domain,types,value,async value=>{const address=await resolveAddress(value);assertArgument(address!=null,"TypedData does not support null address","value",value);return address});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(TypedDataEncoder.getPayload(populated.domain,types,populated.value))])}async unlock(password){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),password,null])}async _legacySignMessage(_message){const message=typeof _message==="string"?toUtf8Bytes(_message):_message;return await this.provider.send("eth_sign",[this.address.toLowerCase(),hexlify(message)])}}class JsonRpcApiProvider extends AbstractProvider{#options;#nextId;#payloads;#drainTimer;#notReady;#network;#scheduleDrain(){if(this.#drainTimer){return}const stallTime=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");this.#drainTimer=setTimeout(()=>{this.#drainTimer=null;const payloads=this.#payloads;this.#payloads=[];while(payloads.length){const batch=[payloads.shift()];while(payloads.length){if(batch.length===this.#options.batchMaxCount){break}batch.push(payloads.shift());const bytes=JSON.stringify(batch.map(p=>p.payload));if(bytes.length>this.#options.batchMaxSize){payloads.unshift(batch.pop());break}}(async()=>{const payload=batch.length===1?batch[0].payload:batch.map(p=>p.payload);this.emit("debug",{action:"sendRpcPayload",payload:payload});try{const result=await this._send(payload);this.emit("debug",{action:"receiveRpcResult",result:result});for(const{resolve,reject,payload}of batch){if(this.destroyed){reject(makeError("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:payload.method}));continue}const resp=result.filter(r=>r.id===payload.id)[0];if(resp==null){const error=makeError("missing response for request","BAD_DATA",{value:result,info:{payload:payload}});this.emit("error",error);reject(error);continue}if("error"in resp){reject(this.getRpcError(payload,resp));continue}resolve(resp.result)}}catch(error){this.emit("debug",{action:"receiveRpcError",error:error});for(const{reject}of batch){reject(error)}}})()}},stallTime)}constructor(network,options){super(network,options);this.#nextId=1;this.#options=Object.assign({},defaultOptions,options||{});this.#payloads=[];this.#drainTimer=null;this.#network=null;{let resolve=null;const promise=new Promise(_resolve=>{resolve=_resolve});this.#notReady={promise:promise,resolve:resolve}}const staticNetwork=this._getOption("staticNetwork");if(staticNetwork){assertArgument(network==null||staticNetwork.matches(network),"staticNetwork MUST match network object","options",options);this.#network=staticNetwork}}_getOption(key){return this.#options[key]}get _network(){assert$1(this.#network,"network is not available yet","NETWORK_ERROR");return this.#network}async _perform(req){if(req.method==="call"||req.method==="estimateGas"){let tx=req.transaction;if(tx&&tx.type!=null&&getBigInt(tx.type)){if(tx.maxFeePerGas==null&&tx.maxPriorityFeePerGas==null){const feeData=await this.getFeeData();if(feeData.maxFeePerGas==null&&feeData.maxPriorityFeePerGas==null){req=Object.assign({},req,{transaction:Object.assign({},tx,{type:undefined})})}}}}const request=this.getRpcRequest(req);if(request!=null){return await this.send(request.method,request.args)}return super._perform(req)}async _detectNetwork(){const network=this._getOption("staticNetwork");if(network){return network}if(this.ready){return Network.from(getBigInt(await this.send("eth_chainId",[])))}const payload={id:this.#nextId++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:payload});let result;try{result=(await this._send(payload))[0]}catch(error){this.emit("debug",{action:"receiveRpcError",error:error});throw error}this.emit("debug",{action:"receiveRpcResult",result:result});if("result"in result){return Network.from(getBigInt(result.result))}throw this.getRpcError(payload,result)}_start(){if(this.#notReady==null||this.#notReady.resolve==null){return}this.#notReady.resolve();this.#notReady=null;(async()=>{while(this.#network==null&&!this.destroyed){try{this.#network=await this._detectNetwork()}catch(error){console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)");this.emit("error",makeError("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:error}}));await stall$3(1e3)}}this.#scheduleDrain()})()}async _waitUntilReady(){if(this.#notReady==null){return}return await this.#notReady.promise}_getSubscriber(sub){if(sub.type==="pending"){return new FilterIdPendingSubscriber(this)}if(sub.type==="event"){if(this._getOption("polling")){return new PollingEventSubscriber(this,sub.filter)}return new FilterIdEventSubscriber(this,sub.filter)}if(sub.type==="orphan"&&sub.filter.orphan==="drop-log"){return new UnmanagedSubscriber("orphan")}return super._getSubscriber(sub)}get ready(){return this.#notReady==null}getRpcTransaction(tx){const result={};["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(key=>{if(tx[key]==null){return}let dstKey=key;if(key==="gasLimit"){dstKey="gas"}result[dstKey]=toQuantity(getBigInt(tx[key],`tx.${key}`))});["from","to","data"].forEach(key=>{if(tx[key]==null){return}result[key]=hexlify(tx[key])});if(tx.accessList){result["accessList"]=accessListify(tx.accessList)}return result}getRpcRequest(req){switch(req.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getBalance":return{method:"eth_getBalance",args:[getLowerCase(req.address),req.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[getLowerCase(req.address),req.blockTag]};case"getCode":return{method:"eth_getCode",args:[getLowerCase(req.address),req.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[getLowerCase(req.address),"0x"+req.position.toString(16),req.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[req.signedTransaction]};case"getBlock":if("blockTag"in req){return{method:"eth_getBlockByNumber",args:[req.blockTag,!!req.includeTransactions]}}else if("blockHash"in req){return{method:"eth_getBlockByHash",args:[req.blockHash,!!req.includeTransactions]}}break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[req.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[req.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(req.transaction),req.blockTag]};case"estimateGas":{return{method:"eth_estimateGas",args:[this.getRpcTransaction(req.transaction)]}}case"getLogs":if(req.filter&&req.filter.address!=null){if(Array.isArray(req.filter.address)){req.filter.address=req.filter.address.map(getLowerCase)}else{req.filter.address=getLowerCase(req.filter.address)}}return{method:"eth_getLogs",args:[req.filter]}}return null}getRpcError(payload,_error){const{method}=payload;const{error}=_error;if(method==="eth_estimateGas"&&error.message){const msg=error.message;if(!msg.match(/revert/i)&&msg.match(/insufficient funds/i)){return makeError("insufficient funds","INSUFFICIENT_FUNDS",{transaction:payload.params[0],info:{payload:payload,error:error}})}}if(method==="eth_call"||method==="eth_estimateGas"){const result=spelunkData(error);const e=AbiCoder.getBuiltinCallException(method==="eth_call"?"call":"estimateGas",payload.params[0],result?result.data:null);e.info={error:error,payload:payload};return e}const message=JSON.stringify(spelunkMessage(error));if(typeof error.message==="string"&&error.message.match(/user denied|ethers-user-denied/i)){const actionMap={eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"};return makeError(`user rejected action`,"ACTION_REJECTED",{action:actionMap[method]||"unknown",reason:"rejected",info:{payload:payload,error:error}})}if(method==="eth_sendRawTransaction"||method==="eth_sendTransaction"){const transaction=payload.params[0];if(message.match(/insufficient funds|base fee exceeds gas limit/i)){return makeError("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:transaction,info:{error:error}})}if(message.match(/nonce/i)&&message.match(/too low/i)){return makeError("nonce has already been used","NONCE_EXPIRED",{transaction:transaction,info:{error:error}})}if(message.match(/replacement transaction/i)&&message.match(/underpriced/i)){return makeError("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:transaction,info:{error:error}})}if(message.match(/only replay-protected/i)){return makeError("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:method,info:{transaction:transaction,info:{error:error}}})}}let unsupported=!!message.match(/the method .* does not exist/i);if(!unsupported){if(error&&error.details&&error.details.startsWith("Unauthorized method:")){unsupported=true}}if(unsupported){return makeError("unsupported operation","UNSUPPORTED_OPERATION",{operation:payload.method,info:{error:error,payload:payload}})}return makeError("could not coalesce error","UNKNOWN_ERROR",{error:error,payload:payload})}send(method,params){if(this.destroyed){return Promise.reject(makeError("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:method}))}const id=this.#nextId++;const promise=new Promise((resolve,reject)=>{this.#payloads.push({resolve:resolve,reject:reject,payload:{method:method,params:params,id:id,jsonrpc:"2.0"}})});this.#scheduleDrain();return promise}async getSigner(address){if(address==null){address=0}const accountsPromise=this.send("eth_accounts",[]);if(typeof address==="number"){const accounts=await accountsPromise;if(address>=accounts.length){throw new Error("no such account")}return new JsonRpcSigner(this,accounts[address])}const{accounts}=await resolveProperties({network:this.getNetwork(),accounts:accountsPromise});address=getAddress(address);for(const account of accounts){if(getAddress(account)===address){return new JsonRpcSigner(this,address)}}throw new Error("invalid account")}async listAccounts(){const accounts=await this.send("eth_accounts",[]);return accounts.map(a=>new JsonRpcSigner(this,a))}destroy(){if(this.#drainTimer){clearTimeout(this.#drainTimer);this.#drainTimer=null}for(const{payload,reject}of this.#payloads){reject(makeError("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:payload.method}))}this.#payloads=[];super.destroy()}}class JsonRpcApiPollingProvider extends JsonRpcApiProvider{#pollingInterval;constructor(network,options){super(network,options);this.#pollingInterval=4e3}_getSubscriber(sub){const subscriber=super._getSubscriber(sub);if(isPollable(subscriber)){subscriber.pollingInterval=this.#pollingInterval}return subscriber}get pollingInterval(){return this.#pollingInterval}set pollingInterval(value){if(!Number.isInteger(value)||value<0){throw new Error("invalid interval")}this.#pollingInterval=value;this._forEachSubscriber(sub=>{if(isPollable(sub)){sub.pollingInterval=this.#pollingInterval}})}}class JsonRpcProvider extends JsonRpcApiPollingProvider{#connect;constructor(url,network,options){if(url==null){url="http://localhost:8545"}super(network,options);if(typeof url==="string"){this.#connect=new FetchRequest(url)}else{this.#connect=url.clone()}}_getConnection(){return this.#connect.clone()}async send(method,params){await this._start();return await super.send(method,params)}async _send(payload){const request=this._getConnection();request.body=JSON.stringify(payload);request.setHeader("content-type","application/json");const response=await request.send();response.assertOk();let resp=response.bodyJson;if(!Array.isArray(resp)){resp=[resp]}return resp}}function spelunkData(value){if(value==null){return null}if(typeof value.message==="string"&&value.message.match(/revert/i)&&isHexString(value.data)){return{message:value.message,data:value.data}}if(typeof value==="object"){for(const key in value){const result=spelunkData(value[key]);if(result){return result}}return null}if(typeof value==="string"){try{return spelunkData(JSON.parse(value))}catch(error){}}return null}function _spelunkMessage(value,result){if(value==null){return}if(typeof value.message==="string"){result.push(value.message)}if(typeof value==="object"){for(const key in value){_spelunkMessage(value[key],result)}}if(typeof value==="string"){try{return _spelunkMessage(JSON.parse(value),result)}catch(error){}}}function spelunkMessage(value){const result=[];_spelunkMessage(value,result);return result}const defaultApiKey$1="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function getHost$4(name){switch(name){case"mainnet":return"rpc.ankr.com/eth";case"goerli":return"rpc.ankr.com/eth_goerli";case"matic":return"rpc.ankr.com/polygon";case"arbitrum":return"rpc.ankr.com/arbitrum"}assertArgument(false,"unsupported network","network",name)}class AnkrProvider extends JsonRpcProvider{apiKey;constructor(_network,apiKey){if(_network==null){_network="mainnet"}const network=Network.from(_network);if(apiKey==null){apiKey=defaultApiKey$1}const options={polling:true,staticNetwork:network};const request=AnkrProvider.getRequest(network,apiKey);super(request,network,options);defineProperties(this,{apiKey:apiKey})}_getProvider(chainId){try{return new AnkrProvider(chainId,this.apiKey)}catch(error){}return super._getProvider(chainId)}static getRequest(network,apiKey){if(apiKey==null){apiKey=defaultApiKey$1}const request=new FetchRequest(`https:/\/${getHost$4(network.name)}/${apiKey}`);request.allowGzip=true;if(apiKey===defaultApiKey$1){request.retryFunc=async(request,response,attempt)=>{showThrottleMessage("AnkrProvider");return true}}return request}getRpcError(payload,error){if(payload.method==="eth_sendRawTransaction"){if(error&&error.error&&error.error.message==="INTERNAL_ERROR: could not replace existing tx"){error.error.message="replacement transaction underpriced"}}return super.getRpcError(payload,error)}isCommunityResource(){return this.apiKey===defaultApiKey$1}}const defaultApiKey="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";function getHost$3(name){switch(name){case"mainnet":return"eth-mainnet.alchemyapi.io";case"goerli":return"eth-goerli.g.alchemy.com";case"sepolia":return"eth-sepolia.g.alchemy.com";case"arbitrum":return"arb-mainnet.g.alchemy.com";case"arbitrum-goerli":return"arb-goerli.g.alchemy.com";case"matic":return"polygon-mainnet.g.alchemy.com";case"matic-mumbai":return"polygon-mumbai.g.alchemy.com";case"optimism":return"opt-mainnet.g.alchemy.com";case"optimism-goerli":return"opt-goerli.g.alchemy.com"}assertArgument(false,"unsupported network","network",name)}class AlchemyProvider extends JsonRpcProvider{apiKey;constructor(_network,apiKey){if(_network==null){_network="mainnet"}const network=Network.from(_network);if(apiKey==null){apiKey=defaultApiKey}const request=AlchemyProvider.getRequest(network,apiKey);super(request,network,{staticNetwork:network});defineProperties(this,{apiKey:apiKey})}_getProvider(chainId){try{return new AlchemyProvider(chainId,this.apiKey)}catch(error){}return super._getProvider(chainId)}async _perform(req){if(req.method==="getTransactionResult"){const{trace,tx}=await resolveProperties({trace:this.send("trace_transaction",[req.hash]),tx:this.getTransaction(req.hash)});if(trace==null||tx==null){return null}let data;let error=false;try{data=trace[0].result.output;error=trace[0].error==="Reverted"}catch(error){}if(data){assert$1(!error,"an error occurred during transaction executions","CALL_EXCEPTION",{action:"getTransactionResult",data:data,reason:null,transaction:tx,invocation:null,revert:null});return data}assert$1(false,"could not parse trace result","BAD_DATA",{value:trace})}return await super._perform(req)}isCommunityResource(){return this.apiKey===defaultApiKey}static getRequest(network,apiKey){if(apiKey==null){apiKey=defaultApiKey}const request=new FetchRequest(`https:/\/${getHost$3(network.name)}/v2/${apiKey}`);request.allowGzip=true;if(apiKey===defaultApiKey){request.retryFunc=async(request,response,attempt)=>{showThrottleMessage("alchemy");return true}}return request}}class CloudflareProvider extends JsonRpcProvider{constructor(_network){if(_network==null){_network="mainnet"}const network=Network.from(_network);assertArgument(network.name==="mainnet","unsupported network","network",_network);super("https://cloudflare-eth.com/",network,{staticNetwork:network})}}const THROTTLE=2e3;function isPromise(value){return value&&typeof value.then==="function"}const EtherscanPluginId="org.ethers.plugins.provider.Etherscan";class EtherscanPlugin extends NetworkPlugin{baseUrl;constructor(baseUrl){super(EtherscanPluginId);defineProperties(this,{baseUrl:baseUrl})}clone(){return new EtherscanPlugin(this.baseUrl)}}const skipKeys=["enableCcipRead"];let nextId=1;class EtherscanProvider extends AbstractProvider{network;apiKey;#plugin;constructor(_network,_apiKey){const apiKey=_apiKey!=null?_apiKey:null;super();const network=Network.from(_network);this.#plugin=network.getPlugin(EtherscanPluginId);defineProperties(this,{apiKey:apiKey,network:network});this.getBaseUrl()}getBaseUrl(){if(this.#plugin){return this.#plugin.baseUrl}switch(this.network.name){case"mainnet":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"matic":return"https://api.polygonscan.com";case"matic-mumbai":return"https://api-testnet.polygonscan.com";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io";case"bnb":return"http://api.bscscan.com";case"bnbt":return"http://api-testnet.bscscan.com"}assertArgument(false,"unsupported network","network",this.network)}getUrl(module,params){const query=Object.keys(params).reduce((accum,key)=>{const value=params[key];if(value!=null){accum+=`&${key}=${value}`}return accum},"");const apiKey=this.apiKey?`&apikey=${this.apiKey}`:"";return`${this.getBaseUrl()}/api?module=${module}${query}${apiKey}`}getPostUrl(){return`${this.getBaseUrl()}/api`}getPostData(module,params){params.module=module;params.apikey=this.apiKey;return params}async detectNetwork(){return this.network}async fetch(module,params,post){const id=nextId++;const url=post?this.getPostUrl():this.getUrl(module,params);const payload=post?this.getPostData(module,params):null;this.emit("debug",{action:"sendRequest",id:id,url:url,payload:payload});const request=new FetchRequest(url);request.setThrottleParams({slotInterval:1e3});request.retryFunc=(req,resp,attempt)=>{if(this.isCommunityResource()){showThrottleMessage("Etherscan")}return Promise.resolve(true)};request.processFunc=async(request,response)=>{const result=response.hasBody()?JSON.parse(toUtf8String(response.body)):{};const throttle=(typeof result.result==="string"?result.result:"").toLowerCase().indexOf("rate limit")>=0;if(module==="proxy"){if(result&&result.status==0&&result.message=="NOTOK"&&throttle){this.emit("debug",{action:"receiveError",id:id,reason:"proxy-NOTOK",error:result});response.throwThrottleError(result.result,THROTTLE)}}else{if(throttle){this.emit("debug",{action:"receiveError",id:id,reason:"null result",error:result.result});response.throwThrottleError(result.result,THROTTLE)}}return response};if(payload){request.setHeader("content-type","application/x-www-form-urlencoded; charset=UTF-8");request.body=Object.keys(payload).map(k=>`${k}=${payload[k]}`).join("&")}const response=await request.send();try{response.assertOk()}catch(error){this.emit("debug",{action:"receiveError",id:id,error:error,reason:"assertOk"});assert$1(false,"response error","SERVER_ERROR",{request:request,response:response})}if(!response.hasBody()){this.emit("debug",{action:"receiveError",id:id,error:"missing body",reason:"null body"});assert$1(false,"missing response","SERVER_ERROR",{request:request,response:response})}const result=JSON.parse(toUtf8String(response.body));if(module==="proxy"){if(result.jsonrpc!="2.0"){this.emit("debug",{action:"receiveError",id:id,result:result,reason:"invalid JSON-RPC"});assert$1(false,"invalid JSON-RPC response (missing jsonrpc='2.0')","SERVER_ERROR",{request:request,response:response,info:{result:result}})}if(result.error){this.emit("debug",{action:"receiveError",id:id,result:result,reason:"JSON-RPC error"});assert$1(false,"error response","SERVER_ERROR",{request:request,response:response,info:{result:result}})}this.emit("debug",{action:"receiveRequest",id:id,result:result});return result.result}else{if(result.status==0&&(result.message==="No records found"||result.message==="No transactions found")){this.emit("debug",{action:"receiveRequest",id:id,result:result});return result.result}if(result.status!=1||typeof result.message==="string"&&!result.message.match(/^OK/)){this.emit("debug",{action:"receiveError",id:id,result:result});assert$1(false,"error response","SERVER_ERROR",{request:request,response:response,info:{result:result}})}this.emit("debug",{action:"receiveRequest",id:id,result:result});return result.result}}_getTransactionPostData(transaction){const result={};for(let key in transaction){if(skipKeys.indexOf(key)>=0){continue}if(transaction[key]==null){continue}let value=transaction[key];if(key==="type"&&value===0){continue}if({type:true,gasLimit:true,gasPrice:true,maxFeePerGs:true,maxPriorityFeePerGas:true,nonce:true,value:true}[key]){value=toQuantity(value)}else if(key==="accessList"){value="["+accessListify(value).map(set=>{return`{address:"${set.address}",storageKeys:["${set.storageKeys.join('","')}"]}`}).join(",")+"]"}else{value=hexlify(value)}result[key]=value}return result}_checkError(req,error,transaction){let message="";if(isError(error,"SERVER_ERROR")){try{message=error.info.result.error.message}catch(e){}if(!message){try{message=error.info.message}catch(e){}}}if(req.method==="estimateGas"){if(!message.match(/revert/i)&&message.match(/insufficient funds/i)){assert$1(false,"insufficient funds","INSUFFICIENT_FUNDS",{transaction:req.transaction})}}if(req.method==="call"||req.method==="estimateGas"){if(message.match(/execution reverted/i)){let data="";try{data=error.info.result.error.data}catch(error){}const e=AbiCoder.getBuiltinCallException(req.method,req.transaction,data);e.info={request:req,error:error};throw e}}if(message){if(req.method==="broadcastTransaction"){const transaction=Transaction.from(req.signedTransaction);if(message.match(/replacement/i)&&message.match(/underpriced/i)){assert$1(false,"replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:transaction})}if(message.match(/insufficient funds/)){assert$1(false,"insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:transaction})}if(message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)){assert$1(false,"nonce has already been used","NONCE_EXPIRED",{transaction:transaction})}}}throw error}async _detectNetwork(){return this.network}async _perform(req){switch(req.method){case"chainId":return this.network.chainId;case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getBalance":return this.fetch("account",{action:"balance",address:req.address,tag:req.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:req.address,tag:req.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:req.address,tag:req.blockTag});case"getStorage":return this.fetch("proxy",{action:"eth_getStorageAt",address:req.address,position:req.position,tag:req.blockTag});case"broadcastTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:req.signedTransaction},true).catch(error=>{return this._checkError(req,error,req.signedTransaction)});case"getBlock":if("blockTag"in req){return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:req.blockTag,boolean:req.includeTransactions?"true":"false"})}assert$1(false,"getBlock by blockHash not supported by Etherscan","UNSUPPORTED_OPERATION",{operation:"getBlock(blockHash)"});case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:req.hash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:req.hash});case"call":{if(req.blockTag!=="latest"){throw new Error("EtherscanProvider does not support blockTag for call")}const postData=this._getTransactionPostData(req.transaction);postData.module="proxy";postData.action="eth_call";try{return await this.fetch("proxy",postData,true)}catch(error){return this._checkError(req,error,req.transaction)}}case"estimateGas":{const postData=this._getTransactionPostData(req.transaction);postData.module="proxy";postData.action="eth_estimateGas";try{return await this.fetch("proxy",postData,true)}catch(error){return this._checkError(req,error,req.transaction)}}}return super._perform(req)}async getNetwork(){return this.network}async getEtherPrice(){if(this.network.name!=="mainnet"){return 0}return parseFloat((await this.fetch("stats",{action:"ethprice"})).ethusd)}async getContract(_address){let address=this._getAddress(_address);if(isPromise(address)){address=await address}try{const resp=await this.fetch("contract",{action:"getabi",address:address});const abi=JSON.parse(resp);return new Contract(address,abi,this)}catch(error){return null}}isCommunityResource(){return this.apiKey==null}}function getGlobal(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")}const _WebSocket=getGlobal().WebSocket;class SocketSubscriber{#provider;#filter;get filter(){return JSON.parse(this.#filter)}#filterId;#paused;#emitPromise;constructor(provider,filter){this.#provider=provider;this.#filter=JSON.stringify(filter);this.#filterId=null;this.#paused=null;this.#emitPromise=null}start(){this.#filterId=this.#provider.send("eth_subscribe",this.filter).then(filterId=>{this.#provider._register(filterId,this);return filterId})}stop(){this.#filterId.then(filterId=>{this.#provider.send("eth_unsubscribe",[filterId])});this.#filterId=null}pause(dropWhilePaused){assert$1(dropWhilePaused,"preserve logs while paused not supported by SocketSubscriber yet","UNSUPPORTED_OPERATION",{operation:"pause(false)"});this.#paused=!!dropWhilePaused}resume(){this.#paused=null}_handleMessage(message){if(this.#filterId==null){return}if(this.#paused===null){let emitPromise=this.#emitPromise;if(emitPromise==null){emitPromise=this._emit(this.#provider,message)}else{emitPromise=emitPromise.then(async()=>{await this._emit(this.#provider,message)})}this.#emitPromise=emitPromise.then(()=>{if(this.#emitPromise===emitPromise){this.#emitPromise=null}})}}async _emit(provider,message){throw new Error("sub-classes must implemente this; _emit")}}class SocketBlockSubscriber extends SocketSubscriber{constructor(provider){super(provider,["newHeads"])}async _emit(provider,message){provider.emit("block",parseInt(message.number))}}class SocketPendingSubscriber extends SocketSubscriber{constructor(provider){super(provider,["newPendingTransactions"])}async _emit(provider,message){provider.emit("pending",message)}}class SocketEventSubscriber extends SocketSubscriber{#logFilter;get logFilter(){return JSON.parse(this.#logFilter)}constructor(provider,filter){super(provider,["logs",filter]);this.#logFilter=JSON.stringify(filter)}async _emit(provider,message){provider.emit(this.logFilter,provider._wrapLog(message,provider._network))}}class SocketProvider extends JsonRpcApiProvider{#callbacks;#subs;#pending;constructor(network){super(network,{batchMaxCount:1});this.#callbacks=new Map;this.#subs=new Map;this.#pending=new Map}_getSubscriber(sub){switch(sub.type){case"close":return new UnmanagedSubscriber("close");case"block":return new SocketBlockSubscriber(this);case"pending":return new SocketPendingSubscriber(this);case"event":return new SocketEventSubscriber(this,sub.filter);case"orphan":if(sub.filter.orphan==="drop-log"){return new UnmanagedSubscriber("drop-log")}}return super._getSubscriber(sub)}_register(filterId,subscriber){this.#subs.set(filterId,subscriber);const pending=this.#pending.get(filterId);if(pending){for(const message of pending){subscriber._handleMessage(message)}this.#pending.delete(filterId)}}async _send(payload){assertArgument(!Array.isArray(payload),"WebSocket does not support batch send","payload",payload);const promise=new Promise((resolve,reject)=>{this.#callbacks.set(payload.id,{payload:payload,resolve:resolve,reject:reject})});await this._waitUntilReady();await this._write(JSON.stringify(payload));return[await promise]}async _processMessage(message){const result=JSON.parse(message);if(result&&typeof result==="object"&&"id"in result){const callback=this.#callbacks.get(result.id);if(callback==null){this.emit("error",makeError("received result for unknown id","UNKNOWN_ERROR",{reasonCode:"UNKNOWN_ID",result:result}));return}this.#callbacks.delete(result.id);callback.resolve(result)}else if(result&&result.method==="eth_subscription"){const filterId=result.params.subscription;const subscriber=this.#subs.get(filterId);if(subscriber){subscriber._handleMessage(result.params.result)}else{let pending=this.#pending.get(filterId);if(pending==null){pending=[];this.#pending.set(filterId,pending)}pending.push(result.params.result)}}else{this.emit("error",makeError("received unexpected message","UNKNOWN_ERROR",{reasonCode:"UNEXPECTED_MESSAGE",result:result}));return}}async _write(message){throw new Error("sub-classes must override this")}}class WebSocketProvider extends SocketProvider{#connect;#websocket;get websocket(){if(this.#websocket==null){throw new Error("websocket closed")}return this.#websocket}constructor(url,network){super(network);if(typeof url==="string"){this.#connect=()=>{return new _WebSocket(url)};this.#websocket=this.#connect()}else if(typeof url==="function"){this.#connect=url;this.#websocket=url()}else{this.#connect=null;this.#websocket=url}this.websocket.onopen=async()=>{try{await this._start();this.resume()}catch(error){console.log("failed to start WebsocketProvider",error)}};this.websocket.onmessage=message=>{this._processMessage(message.data)}}async _write(message){this.websocket.send(message)}async destroy(){if(this.#websocket!=null){this.#websocket.close();this.#websocket=null}super.destroy()}}const defaultProjectId="84842078b09946638c03157f83405213";function getHost$2(name){switch(name){case"mainnet":return"mainnet.infura.io";case"goerli":return"goerli.infura.io";case"sepolia":return"sepolia.infura.io";case"arbitrum":return"arbitrum-mainnet.infura.io";case"arbitrum-goerli":return"arbitrum-goerli.infura.io";case"linea":return"linea-mainnet.infura.io";case"linea-goerli":return"linea-goerli.infura.io";case"matic":return"polygon-mainnet.infura.io";case"matic-mumbai":return"polygon-mumbai.infura.io";case"optimism":return"optimism-mainnet.infura.io";case"optimism-goerli":return"optimism-goerli.infura.io"}assertArgument(false,"unsupported network","network",name)}class InfuraWebSocketProvider extends WebSocketProvider{projectId;projectSecret;constructor(network,projectId){const provider=new InfuraProvider(network,projectId);const req=provider._getConnection();assert$1(!req.credentials,"INFURA WebSocket project secrets unsupported","UNSUPPORTED_OPERATION",{operation:"InfuraProvider.getWebSocketProvider()"});const url=req.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/");super(url,network);defineProperties(this,{projectId:provider.projectId,projectSecret:provider.projectSecret})}isCommunityResource(){return this.projectId===defaultProjectId}}class InfuraProvider extends JsonRpcProvider{projectId;projectSecret;constructor(_network,projectId,projectSecret){if(_network==null){_network="mainnet"}const network=Network.from(_network);if(projectId==null){projectId=defaultProjectId}if(projectSecret==null){projectSecret=null}const request=InfuraProvider.getRequest(network,projectId,projectSecret);super(request,network,{staticNetwork:network});defineProperties(this,{projectId:projectId,projectSecret:projectSecret})}_getProvider(chainId){try{return new InfuraProvider(chainId,this.projectId,this.projectSecret)}catch(error){}return super._getProvider(chainId)}isCommunityResource(){return this.projectId===defaultProjectId}static getWebSocketProvider(network,projectId){return new InfuraWebSocketProvider(network,projectId)}static getRequest(network,projectId,projectSecret){if(projectId==null){projectId=defaultProjectId}if(projectSecret==null){projectSecret=null}const request=new FetchRequest(`https:/\/${getHost$2(network.name)}/v3/${projectId}`);request.allowGzip=true;if(projectSecret){request.setCredentials("",projectSecret)}if(projectId===defaultProjectId){request.retryFunc=async(request,response,attempt)=>{showThrottleMessage("InfuraProvider");return true}}return request}}const defaultToken="919b412a057b5e9c9b6dce193c5a60242d6efadb";function getHost$1(name){switch(name){case"mainnet":return"ethers.quiknode.pro";case"goerli":return"ethers.ethereum-goerli.quiknode.pro";case"arbitrum":return"ethers.arbitrum-mainnet.quiknode.pro";case"arbitrum-goerli":return"ethers.arbitrum-goerli.quiknode.pro";case"matic":return"ethers.matic.quiknode.pro";case"matic-mumbai":return"ethers.matic-testnet.quiknode.pro";case"optimism":return"ethers.optimism.quiknode.pro";case"optimism-goerli":return"ethers.optimism-goerli.quiknode.pro"}assertArgument(false,"unsupported network","network",name)}class QuickNodeProvider extends JsonRpcProvider{token;constructor(_network,token){if(_network==null){_network="mainnet"}const network=Network.from(_network);if(token==null){token=defaultToken}const request=QuickNodeProvider.getRequest(network,token);super(request,network,{staticNetwork:network});defineProperties(this,{token:token})}_getProvider(chainId){try{return new QuickNodeProvider(chainId,this.token)}catch(error){}return super._getProvider(chainId)}isCommunityResource(){return this.token===defaultToken}static getRequest(network,token){if(token==null){token=defaultToken}const request=new FetchRequest(`https:/\/${getHost$1(network.name)}/${token}`);request.allowGzip=true;if(token===defaultToken){request.retryFunc=async(request,response,attempt)=>{showThrottleMessage("QuickNodeProvider");return true}}return request}}const BN_1=BigInt("1");const BN_2=BigInt("2");function shuffle(array){for(let i=array.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));const tmp=array[i];array[i]=array[j];array[j]=tmp}}function stall$2(duration){return new Promise(resolve=>{setTimeout(resolve,duration)})}function getTime(){return(new Date).getTime()}function stringify(value){return JSON.stringify(value,(key,value)=>{if(typeof value==="bigint"){return{type:"bigint",value:value.toString()}}return value})}const defaultConfig={stallTimeout:400,priority:1,weight:1};const defaultState={blockNumber:-2,requests:0,lateResponses:0,errorResponses:0,outOfSync:-1,unsupportedEvents:0,rollingDuration:0,score:0,_network:null,_updateNumber:null,_totalTime:0,_lastFatalError:null,_lastFatalErrorTimestamp:0};async function waitForSync(config,blockNumber){while(config.blockNumber<0||config.blockNumber{try{const blockNumber=await config.provider.getBlockNumber();if(blockNumber>config.blockNumber){config.blockNumber=blockNumber}}catch(error){config.blockNumber=-2;config._lastFatalError=error;config._lastFatalErrorTimestamp=getTime()}config._updateNumber=null})()}await config._updateNumber;config.outOfSync++;if(config._lastFatalError){break}}}function _normalize(value){if(value==null){return"null"}if(Array.isArray(value)){return"["+value.map(_normalize).join(",")+"]"}if(typeof value==="object"&&typeof value.toJSON==="function"){return _normalize(value.toJSON())}switch(typeof value){case"boolean":case"symbol":return value.toString();case"bigint":case"number":return BigInt(value).toString();case"string":return JSON.stringify(value);case"object":{const keys=Object.keys(value);keys.sort();return"{"+keys.map(k=>`${JSON.stringify(k)}:${_normalize(value[k])}`).join(",")+"}"}}console.log("Could not serialize",value);throw new Error("Hmm...")}function normalizeResult(value){if("error"in value){const error=value.error;return{tag:_normalize(error),value:error}}const result=value.result;return{tag:_normalize(result),value:result}}function checkQuorum(quorum,results){const tally=new Map;for(const{value,tag,weight}of results){const t=tally.get(tag)||{value:value,weight:0};t.weight+=weight;tally.set(tag,t)}let best=null;for(const r of tally.values()){if(r.weight>=quorum&&(!best||r.weight>best.weight)){best=r}}if(best){return best.value}return undefined}function getMedian(quorum,results){let resultWeight=0;const errorMap=new Map;let bestError=null;const values=[];for(const{value,tag,weight}of results){if(value instanceof Error){const e=errorMap.get(tag)||{value:value,weight:0};e.weight+=weight;errorMap.set(tag,e);if(bestError==null||e.weight>bestError.weight){bestError=e}}else{values.push(BigInt(value));resultWeight+=weight}}if(resultWeight=quorum){return bestError.value}return undefined}values.sort((a,b)=>aa?1:0);const mid=Math.floor(values.length/2);if(values.length%2){return values[mid]}return(values[mid-1]+values[mid]+BN_1)/BN_2}function getAnyResult(quorum,results){const result=checkQuorum(quorum,results);if(result!==undefined){return result}for(const r of results){if(r.value){return r.value}}return undefined}function getFuzzyMode(quorum,results){if(quorum===1){return getNumber(getMedian(quorum,results),"%internal")}const tally=new Map;const add=(result,weight)=>{const t=tally.get(result)||{result:result,weight:0};t.weight+=weight;tally.set(result,t)};for(const{weight,value}of results){const r=getNumber(value);add(r-1,weight);add(r,weight);add(r+1,weight)}let bestWeight=0;let bestResult=undefined;for(const{weight,result}of tally.values()){if(weight>=quorum&&(weight>bestWeight||bestResult!=null&&weight===bestWeight&&result>bestResult)){bestWeight=weight;bestResult=result}}return bestResult}class FallbackProvider extends AbstractProvider{quorum;eventQuorum;eventWorkers;#configs;#height;#initialSyncPromise;constructor(providers,network,options){super(network,options);this.#configs=providers.map(p=>{if(p instanceof AbstractProvider){return Object.assign({provider:p},defaultConfig,defaultState)}else{return Object.assign({},defaultConfig,p,defaultState)}});this.#height=-2;this.#initialSyncPromise=null;if(options&&options.quorum!=null){this.quorum=options.quorum}else{this.quorum=Math.ceil(this.#configs.reduce((accum,config)=>{accum+=config.weight;return accum},0)/2)}this.eventQuorum=1;this.eventWorkers=1;assertArgument(this.quorum<=this.#configs.reduce((a,c)=>a+c.weight,0),"quorum exceed provider wieght","quorum",this.quorum)}get providerConfigs(){return this.#configs.map(c=>{const result=Object.assign({},c);for(const key in result){if(key[0]==="_"){delete result[key]}}return result})}async _detectNetwork(){return Network.from(getBigInt(await this._perform({method:"chainId"})))}async _translatePerform(provider,req){switch(req.method){case"broadcastTransaction":return await provider.broadcastTransaction(req.signedTransaction);case"call":return await provider.call(Object.assign({},req.transaction,{blockTag:req.blockTag}));case"chainId":return(await provider.getNetwork()).chainId;case"estimateGas":return await provider.estimateGas(req.transaction);case"getBalance":return await provider.getBalance(req.address,req.blockTag);case"getBlock":{const block="blockHash"in req?req.blockHash:req.blockTag;return await provider.getBlock(block,req.includeTransactions)}case"getBlockNumber":return await provider.getBlockNumber();case"getCode":return await provider.getCode(req.address,req.blockTag);case"getGasPrice":return(await provider.getFeeData()).gasPrice;case"getLogs":return await provider.getLogs(req.filter);case"getStorage":return await provider.getStorage(req.address,req.position,req.blockTag);case"getTransaction":return await provider.getTransaction(req.hash);case"getTransactionCount":return await provider.getTransactionCount(req.address,req.blockTag);case"getTransactionReceipt":return await provider.getTransactionReceipt(req.hash);case"getTransactionResult":return await provider.getTransactionResult(req.hash)}}#getNextConfig(running){const configs=Array.from(running).map(r=>r.config);const allConfigs=this.#configs.slice();shuffle(allConfigs);allConfigs.sort((a,b)=>a.priority-b.priority);for(const config of allConfigs){if(config._lastFatalError){continue}if(configs.indexOf(config)===-1){return config}}return null}#addRunner(running,req){const config=this.#getNextConfig(running);if(config==null){return null}const runner={config:config,result:null,didBump:false,perform:null,staller:null};const now=getTime();runner.perform=(async()=>{try{config.requests++;const result=await this._translatePerform(config.provider,req);runner.result={result:result}}catch(error){config.errorResponses++;runner.result={error:error}}const dt=getTime()-now;config._totalTime+=dt;config.rollingDuration=.95*config.rollingDuration+.05*dt;runner.perform=null})();runner.staller=(async()=>{await stall$2(config.stallTimeout);runner.staller=null})();running.add(runner);return runner}async#initialSync(){let initialSync=this.#initialSyncPromise;if(!initialSync){const promises=[];this.#configs.forEach(config=>{promises.push((async()=>{await waitForSync(config,0);if(!config._lastFatalError){config._network=await config.provider.getNetwork()}})())});this.#initialSyncPromise=initialSync=(async()=>{await Promise.all(promises);let chainId=null;for(const config of this.#configs){if(config._lastFatalError){continue}const network=config._network;if(chainId==null){chainId=network.chainId}else if(network.chainId!==chainId){assert$1(false,"cannot mix providers on different networks","UNSUPPORTED_OPERATION",{operation:"new FallbackProvider"})}}})()}await initialSync}async#checkQuorum(running,req){const results=[];for(const runner of running){if(runner.result!=null){const{tag,value}=normalizeResult(runner.result);results.push({tag:tag,value:value,weight:runner.config.weight})}}if(results.reduce((a,r)=>a+r.weight,0)!c._lastFatalError).map(c=>({value:c.blockNumber,tag:getNumber(c.blockNumber).toString(),weight:c.weight})))))}const mode=getFuzzyMode(this.quorum,results);if(mode===undefined){return undefined}if(mode>this.#height){this.#height=mode}return this.#height}case"getGasPrice":case"estimateGas":return getMedian(this.quorum,results);case"getBlock":if("blockTag"in req&&req.blockTag==="pending"){return getAnyResult(this.quorum,results)}return checkQuorum(this.quorum,results);case"call":case"chainId":case"getBalance":case"getTransactionCount":case"getCode":case"getStorage":case"getTransaction":case"getTransactionReceipt":case"getLogs":return checkQuorum(this.quorum,results);case"broadcastTransaction":return getAnyResult(this.quorum,results)}assert$1(false,"unsupported method","UNSUPPORTED_OPERATION",{operation:`_perform(${stringify(req.method)})`})}async#waitForQuorum(running,req){if(running.size===0){throw new Error("no runners?!")}const interesting=[];let newRunners=0;for(const runner of running){if(runner.perform){interesting.push(runner.perform)}if(runner.staller){interesting.push(runner.staller);continue}if(runner.didBump){continue}runner.didBump=true;newRunners++}const value=await this.#checkQuorum(running,req);if(value!==undefined){if(value instanceof Error){throw value}return value}for(let i=0;i0,"quorum not met","SERVER_ERROR",{request:"%sub-requests",info:{request:req,results:Array.from(running).map(r=>stringify(r.result))}});await Promise.race(interesting);return await this.#waitForQuorum(running,req)}async _perform(req){if(req.method==="broadcastTransaction"){const results=await Promise.all(this.#configs.map(async({provider,weight})=>{try{const result=await provider._perform(req);return Object.assign(normalizeResult({result:result}),{weight:weight})}catch(error){return Object.assign(normalizeResult({error:error}),{weight:weight})}}));const result=getAnyResult(this.quorum,results);assert$1(result!==undefined,"problem multi-broadcasting","SERVER_ERROR",{request:"%sub-requests",info:{request:req,results:results.map(stringify)}});if(result instanceof Error){throw result}return result}await this.#initialSync();const running=new Set;for(let i=0;i{if(options[name]==="-"){return false}if(typeof options.exclusive==="string"){return name===options.exclusive}if(Array.isArray(options.exclusive)){return options.exclusive.indexOf(name)!==-1}return true};if(typeof network==="string"&&network.match(/^https?:/)){return new JsonRpcProvider(network)}if(typeof network==="string"&&network.match(/^wss?:/)||isWebSocketLike(network)){return new WebSocketProvider(network)}let staticNetwork=null;try{staticNetwork=Network.from(network)}catch(error){}const providers=[];if(allowService("publicPolygon")&&staticNetwork){if(staticNetwork.name==="matic"){providers.push(new JsonRpcProvider("https://polygon-rpc.com/",staticNetwork,{staticNetwork:staticNetwork}))}}if(allowService("alchemy")){try{providers.push(new AlchemyProvider(network,options.alchemy))}catch(error){}}if(allowService("ankr")&&options.ankr!=null){try{providers.push(new AnkrProvider(network,options.ankr))}catch(error){}}if(allowService("cloudflare")){try{providers.push(new CloudflareProvider(network))}catch(error){}}if(allowService("etherscan")){try{providers.push(new EtherscanProvider(network,options.etherscan))}catch(error){}}if(allowService("infura")){try{let projectId=options.infura;let projectSecret=undefined;if(typeof projectId==="object"){projectSecret=projectId.projectSecret;projectId=projectId.projectId}providers.push(new InfuraProvider(network,projectId,projectSecret))}catch(error){}}if(allowService("quicknode")){try{let token=options.quicknode;providers.push(new QuickNodeProvider(network,token))}catch(error){}}assert$1(providers.length,"unsupported default network","UNSUPPORTED_OPERATION",{operation:"getDefaultProvider"});if(providers.length===1){return providers[0]}let quorum=Math.floor(providers.length/2);if(quorum>2){quorum=2}if(staticNetwork&&Testnets.indexOf(staticNetwork.name)!==-1){quorum=1}if(options&&options.quorum){quorum=options.quorum}return new FallbackProvider(providers,undefined,{quorum:quorum})}class NonceManager extends AbstractSigner{signer;#noncePromise;#delta;constructor(signer){super(signer.provider);defineProperties(this,{signer:signer});this.#noncePromise=null;this.#delta=0}async getAddress(){return this.signer.getAddress()}connect(provider){return new NonceManager(this.signer.connect(provider))}async getNonce(blockTag){if(blockTag==="pending"){if(this.#noncePromise==null){this.#noncePromise=super.getNonce("pending")}const delta=this.#delta;return await this.#noncePromise+delta}return super.getNonce(blockTag)}increment(){this.#delta++}reset(){this.#delta=0;this.#noncePromise=null}async sendTransaction(tx){const noncePromise=this.getNonce("pending");this.increment();tx=await this.signer.populateTransaction(tx);tx.nonce=await noncePromise;return await this.signer.sendTransaction(tx)}signTransaction(tx){return this.signer.signTransaction(tx)}signMessage(message){return this.signer.signMessage(message)}signTypedData(domain,types,value){return this.signer.signTypedData(domain,types,value)}}class BrowserProvider extends JsonRpcApiPollingProvider{#request;constructor(ethereum,network){super(network,{batchMaxCount:1});this.#request=async(method,params)=>{const payload={method:method,params:params};this.emit("debug",{action:"sendEip1193Request",payload:payload});try{const result=await ethereum.request(payload);this.emit("debug",{action:"receiveEip1193Result",result:result});return result}catch(e){const error=new Error(e.message);error.code=e.code;error.data=e.data;error.payload=payload;this.emit("debug",{action:"receiveEip1193Error",error:error});throw error}}}async send(method,params){await this._start();return await super.send(method,params)}async _send(payload){assertArgument(!Array.isArray(payload),"EIP-1193 does not support batch request","payload",payload);try{const result=await this.#request(payload.method,payload.params||[]);return[{id:payload.id,result:result}]}catch(e){return[{id:payload.id,error:{code:e.code,data:e.data,message:e.message}}]}}getRpcError(payload,error){error=JSON.parse(JSON.stringify(error));switch(error.error.code||-1){case 4001:error.error.message=`ethers-user-denied: ${error.error.message}`;break;case 4200:error.error.message=`ethers-unsupported: ${error.error.message}`;break}return super.getRpcError(payload,error)}async hasSigner(address){if(address==null){address=0}const accounts=await this.send("eth_accounts",[]);if(typeof address==="number"){return accounts.length>address}address=address.toLowerCase();return accounts.filter(a=>a.toLowerCase()===address).length!==0}async getSigner(address){if(address==null){address=0}if(!await this.hasSigner(address)){try{await this.#request("eth_requestAccounts",[])}catch(error){const payload=error.payload;throw this.getRpcError(payload,{id:payload.id,error:error})}}return await super.getSigner(address)}}const defaultApplicationId="62e1ad51b37b8e00394bda3b";function getHost(name){switch(name){case"mainnet":return"eth-mainnet.gateway.pokt.network";case"goerli":return"eth-goerli.gateway.pokt.network";case"matic":return"poly-mainnet.gateway.pokt.network";case"matic-mumbai":return"polygon-mumbai-rpc.gateway.pokt.network"}assertArgument(false,"unsupported network","network",name)}class PocketProvider extends JsonRpcProvider{applicationId;applicationSecret;constructor(_network,applicationId,applicationSecret){if(_network==null){_network="mainnet"}const network=Network.from(_network);if(applicationId==null){applicationId=defaultApplicationId}if(applicationSecret==null){applicationSecret=null}const options={staticNetwork:network};const request=PocketProvider.getRequest(network,applicationId,applicationSecret);super(request,network,options);defineProperties(this,{applicationId:applicationId,applicationSecret:applicationSecret})}_getProvider(chainId){try{return new PocketProvider(chainId,this.applicationId,this.applicationSecret)}catch(error){}return super._getProvider(chainId)}static getRequest(network,applicationId,applicationSecret){if(applicationId==null){applicationId=defaultApplicationId}const request=new FetchRequest(`https:/\/${getHost(network.name)}/v1/lb/${applicationId}`);request.allowGzip=true;if(applicationSecret){request.setCredentials("",applicationSecret)}if(applicationId===defaultApplicationId){request.retryFunc=async(request,response,attempt)=>{showThrottleMessage("PocketProvider");return true}}return request}isCommunityResource(){return this.applicationId===defaultApplicationId}}const IpcSocketProvider=undefined;class BaseWallet extends AbstractSigner{address;#signingKey;constructor(privateKey,provider){super(provider);assertArgument(privateKey&&typeof privateKey.sign==="function","invalid private key","privateKey","[ REDACTED ]");this.#signingKey=privateKey;const address=computeAddress(this.signingKey.publicKey);defineProperties(this,{address:address})}get signingKey(){return this.#signingKey}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(provider){return new BaseWallet(this.#signingKey,provider)}async signTransaction(tx){const{to,from}=await resolveProperties({to:tx.to?resolveAddress(tx.to,this.provider):undefined,from:tx.from?resolveAddress(tx.from,this.provider):undefined});if(to!=null){tx.to=to}if(from!=null){tx.from=from}if(tx.from!=null){assertArgument(getAddress(tx.from)===this.address,"transaction from address mismatch","tx.from",tx.from);delete tx.from}const btx=Transaction.from(tx);btx.signature=this.signingKey.sign(btx.unsignedHash);return btx.serialized}async signMessage(message){return this.signMessageSync(message)}signMessageSync(message){return this.signingKey.sign(hashMessage(message)).serialized}async signTypedData(domain,types,value){const populated=await TypedDataEncoder.resolveNames(domain,types,value,async name=>{assert$1(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:name}});const address=await this.provider.resolveName(name);assert$1(address!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:name});return address});return this.signingKey.sign(TypedDataEncoder.hash(populated.domain,types,populated.value)).serialized}}const subsChrs=" !#$%&'()*+,-./<=>?@[]^_`{|}~";const Word=/^[a-z]*$/i;function unfold(words,sep){let initial=97;return words.reduce((accum,word)=>{if(word===sep){initial++}else if(word.match(Word)){accum.push(String.fromCharCode(initial)+word)}else{initial=97;accum.push(word)}return accum},[])}function decode(data,subs){for(let i=subsChrs.length-1;i>=0;i--){data=data.split(subsChrs[i]).join(subs.substring(2*i,2*i+2))}const clumps=[];const leftover=data.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(all,item,semi,word)=>{if(semi){for(let i=parseInt(semi);i>=0;i--){clumps.push(";")}}else{clumps.push(item.toLowerCase())}return""});if(leftover){throw new Error(`leftovers: ${JSON.stringify(leftover)}`)}return unfold(unfold(clumps,";"),":")}function decodeOwl(data){assertArgument(data[0]==="0","unsupported auwl data","data",data);return decode(data.substring(1+2*subsChrs.length),data.substring(1,1+2*subsChrs.length))}class Wordlist{locale;constructor(locale){defineProperties(this,{locale:locale})}split(phrase){return phrase.toLowerCase().split(/\s+/g)}join(words){return words.join(" ")}}class WordlistOwl extends Wordlist{#data;#checksum;constructor(locale,data,checksum){super(locale);this.#data=data;this.#checksum=checksum;this.#words=null}get _data(){return this.#data}_decodeWords(){return decodeOwl(this.#data)}#words;#loadWords(){if(this.#words==null){const words=this._decodeWords();const checksum=id(words.join("\n")+"\n");if(checksum!==this.#checksum){throw new Error(`BIP39 Wordlist for ${this.locale} FAILED`)}this.#words=words}return this.#words}getWord(index){const words=this.#loadWords();assertArgument(index>=0&&index=12&&words.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");const entropy=new Uint8Array(Math.ceil(11*words.length/8));let offset=0;for(let i=0;i=0,`invalid mnemonic word at index ${i}`,"mnemonic","[ REDACTED ]");for(let bit=0;bit<11;bit++){if(index&1<<10-bit){entropy[offset>>3]|=1<<7-offset%8}offset++}}const entropyBits=32*words.length/3;const checksumBits=words.length/3;const checksumMask=getUpperMask(checksumBits);const checksum=getBytes(sha256(entropy.slice(0,entropyBits/8)))[0]&checksumMask;assertArgument(checksum===(entropy[entropy.length-1]&checksumMask),"invalid mnemonic checksum","mnemonic","[ REDACTED ]");return hexlify(entropy.slice(0,entropyBits/8))}function entropyToMnemonic(entropy,wordlist){assertArgument(entropy.length%4===0&&entropy.length>=16&&entropy.length<=32,"invalid entropy size","entropy","[ REDACTED ]");if(wordlist==null){wordlist=LangEn.wordlist()}const indices=[0];let remainingBits=11;for(let i=0;i8){indices[indices.length-1]<<=8;indices[indices.length-1]|=entropy[i];remainingBits-=8}else{indices[indices.length-1]<<=remainingBits;indices[indices.length-1]|=entropy[i]>>8-remainingBits;indices.push(entropy[i]&getLowerMask(8-remainingBits));remainingBits+=3}}const checksumBits=entropy.length/4;const checksum=parseInt(sha256(entropy).substring(2,4),16)&getUpperMask(checksumBits);indices[indices.length-1]<<=checksumBits;indices[indices.length-1]|=checksum>>8-checksumBits;return wordlist.join(indices.map(index=>wordlist.getWord(index)))}const _guard$1={};class Mnemonic{phrase;password;wordlist;entropy;constructor(guard,entropy,phrase,password,wordlist){if(password==null){password=""}if(wordlist==null){wordlist=LangEn.wordlist()}assertPrivate(guard,_guard$1,"Mnemonic");defineProperties(this,{phrase:phrase,password:password,wordlist:wordlist,entropy:entropy})}computeSeed(){const salt=toUtf8Bytes("mnemonic"+this.password,"NFKD");return pbkdf2(toUtf8Bytes(this.phrase,"NFKD"),salt,2048,64,"sha512")}static fromPhrase(phrase,password,wordlist){const entropy=mnemonicToEntropy(phrase,wordlist);phrase=entropyToMnemonic(getBytes(entropy),wordlist);return new Mnemonic(_guard$1,entropy,phrase,password,wordlist)}static fromEntropy(_entropy,password,wordlist){const entropy=getBytes(_entropy,"entropy");const phrase=entropyToMnemonic(entropy,wordlist);return new Mnemonic(_guard$1,hexlify(entropy),phrase,password,wordlist)}static entropyToPhrase(_entropy,wordlist){const entropy=getBytes(_entropy,"entropy");return entropyToMnemonic(entropy,wordlist)}static phraseToEntropy(phrase,wordlist){return mnemonicToEntropy(phrase,wordlist)}static isValidMnemonic(phrase,wordlist){try{mnemonicToEntropy(phrase,wordlist);return true}catch(error){}return false}}var __classPrivateFieldGet$2=__$G&&__$G.__classPrivateFieldGet||function(receiver,state,kind,f){if(kind==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof state==="function"?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return kind==="m"?f:kind==="a"?f.call(receiver):f?f.value:state.get(receiver)};var __classPrivateFieldSet$2=__$G&&__$G.__classPrivateFieldSet||function(receiver,state,value,kind,f){if(kind==="m")throw new TypeError("Private method is not writable");if(kind==="a"&&!f)throw new TypeError("Private accessor was defined without a setter");if(typeof state==="function"?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot write private member to an object whose class did not declare it");return kind==="a"?f.call(receiver,value):f?f.value=value:state.set(receiver,value),value};var _AES_key,_AES_Kd,_AES_Ke;const numberOfRounds={16:10,24:12,32:14};const rcon=[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];const S=[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];const Si=[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];const T1=[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];const T2=[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];const T3=[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];const T4=[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];const T5=[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];const T6=[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];const T7=[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];const T8=[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];const U1=[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];const U2=[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];const U3=[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];const U4=[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 convertToInt32(bytes){const result=[];for(let i=0;i>2;__classPrivateFieldGet$2(this,_AES_Ke,"f")[index][i%4]=tk[i];__classPrivateFieldGet$2(this,_AES_Kd,"f")[rounds-index][i%4]=tk[i]}let rconpointer=0;let t=KC,tt;while(t>16&255]<<24^S[tt>>8&255]<<16^S[tt&255]<<8^S[tt>>24&255]^rcon[rconpointer]<<24;rconpointer+=1;if(KC!=8){for(let i=1;i>8&255]<<8^S[tt>>16&255]<<16^S[tt>>24&255]<<24;for(let i=KC/2+1;i>2;c=t%4;__classPrivateFieldGet$2(this,_AES_Ke,"f")[r][c]=tk[i];__classPrivateFieldGet$2(this,_AES_Kd,"f")[rounds-r][c]=tk[i++];t++}}for(let r=1;r>24&255]^U2[tt>>16&255]^U3[tt>>8&255]^U4[tt&255]}}}encrypt(plaintext){if(plaintext.length!=16){throw new TypeError("invalid plaintext size (must be 16 bytes)")}const rounds=__classPrivateFieldGet$2(this,_AES_Ke,"f").length-1;const a=[0,0,0,0];let t=convertToInt32(plaintext);for(let i=0;i<4;i++){t[i]^=__classPrivateFieldGet$2(this,_AES_Ke,"f")[0][i]}for(let r=1;r>24&255]^T2[t[(i+1)%4]>>16&255]^T3[t[(i+2)%4]>>8&255]^T4[t[(i+3)%4]&255]^__classPrivateFieldGet$2(this,_AES_Ke,"f")[r][i]}t=a.slice()}const result=new Uint8Array(16);let tt=0;for(let i=0;i<4;i++){tt=__classPrivateFieldGet$2(this,_AES_Ke,"f")[rounds][i];result[4*i]=(S[t[i]>>24&255]^tt>>24)&255;result[4*i+1]=(S[t[(i+1)%4]>>16&255]^tt>>16)&255;result[4*i+2]=(S[t[(i+2)%4]>>8&255]^tt>>8)&255;result[4*i+3]=(S[t[(i+3)%4]&255]^tt)&255}return result}decrypt(ciphertext){if(ciphertext.length!=16){throw new TypeError("invalid ciphertext size (must be 16 bytes)")}const rounds=__classPrivateFieldGet$2(this,_AES_Kd,"f").length-1;const a=[0,0,0,0];let t=convertToInt32(ciphertext);for(let i=0;i<4;i++){t[i]^=__classPrivateFieldGet$2(this,_AES_Kd,"f")[0][i]}for(let r=1;r>24&255]^T6[t[(i+3)%4]>>16&255]^T7[t[(i+2)%4]>>8&255]^T8[t[(i+1)%4]&255]^__classPrivateFieldGet$2(this,_AES_Kd,"f")[r][i]}t=a.slice()}const result=new Uint8Array(16);let tt=0;for(let i=0;i<4;i++){tt=__classPrivateFieldGet$2(this,_AES_Kd,"f")[rounds][i];result[4*i]=(Si[t[i]>>24&255]^tt>>24)&255;result[4*i+1]=(Si[t[(i+3)%4]>>16&255]^tt>>16)&255;result[4*i+2]=(Si[t[(i+2)%4]>>8&255]^tt>>8)&255;result[4*i+3]=(Si[t[(i+1)%4]&255]^tt)&255}return result}}_AES_key=new WeakMap,_AES_Kd=new WeakMap,_AES_Ke=new WeakMap;class ModeOfOperation{constructor(name,key,cls){if(cls&&!(this instanceof cls)){throw new Error(`${name} must be instantiated with "new"`)}Object.defineProperties(this,{aes:{enumerable:true,value:new AES(key)},name:{enumerable:true,value:name}})}}var __classPrivateFieldSet$1=__$G&&__$G.__classPrivateFieldSet||function(receiver,state,value,kind,f){if(kind==="m")throw new TypeError("Private method is not writable");if(kind==="a"&&!f)throw new TypeError("Private accessor was defined without a setter");if(typeof state==="function"?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot write private member to an object whose class did not declare it");return kind==="a"?f.call(receiver,value):f?f.value=value:state.set(receiver,value),value};var __classPrivateFieldGet$1=__$G&&__$G.__classPrivateFieldGet||function(receiver,state,kind,f){if(kind==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof state==="function"?receiver!==state||!f:!state.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return kind==="m"?f:kind==="a"?f.call(receiver):f?f.value:state.get(receiver)};var _CBC_iv,_CBC_lastBlock;class CBC extends ModeOfOperation{constructor(key,iv){super("ECC",key,CBC);_CBC_iv.set(this,void 0);_CBC_lastBlock.set(this,void 0);if(iv){if(iv.length%16){throw new TypeError("invalid iv size (must be 16 bytes)")}__classPrivateFieldSet$1(this,_CBC_iv,new Uint8Array(iv),"f")}else{__classPrivateFieldSet$1(this,_CBC_iv,new Uint8Array(16),"f")}__classPrivateFieldSet$1(this,_CBC_lastBlock,this.iv,"f")}get iv(){return new Uint8Array(__classPrivateFieldGet$1(this,_CBC_iv,"f"))}encrypt(plaintext){if(plaintext.length%16){throw new TypeError("invalid plaintext size (must be multiple of 16 bytes)")}const ciphertext=new Uint8Array(plaintext.length);for(let i=0;iNumber.MAX_SAFE_INTEGER){throw new TypeError("invalid counter initial integer value")}for(let index=15;index>=0;--index){__classPrivateFieldGet(this,_CTR_counter,"f")[index]=value%256;value=Math.floor(value/256)}}setCounterBytes(value){if(value.length!==16){throw new TypeError("invalid counter initial Uint8Array value length")}__classPrivateFieldGet(this,_CTR_counter,"f").set(value)}increment(){for(let i=15;i>=0;i--){if(__classPrivateFieldGet(this,_CTR_counter,"f")[i]===255){__classPrivateFieldGet(this,_CTR_counter,"f")[i]=0}else{__classPrivateFieldGet(this,_CTR_counter,"f")[i]++;break}}}encrypt(plaintext){var _a,_b;const crypttext=new Uint8Array(plaintext);for(let i=0;i16){throw new TypeError("PKCS#7 padding byte out of range")}const length=data.length-padder;for(let i=0;i0&&(N&N-1)===0,"invalid kdf.N","kdf.N",N);assertArgument(r>0&&p>0,"invalid kdf","kdf",kdf);const dkLen=spelunk(data,"crypto.kdfparams.dklen:int!");assertArgument(dkLen===32,"invalid kdf.dklen","kdf.dflen",dkLen);return{name:"scrypt",salt:salt,N:N,r:r,p:p,dkLen:64}}else if(kdf.toLowerCase()==="pbkdf2"){const salt=spelunk(data,"crypto.kdfparams.salt:data!");const prf=spelunk(data,"crypto.kdfparams.prf:string!");const algorithm=prf.split("-").pop();assertArgument(algorithm==="sha256"||algorithm==="sha512","invalid kdf.pdf","kdf.pdf",prf);const count=spelunk(data,"crypto.kdfparams.c:int!");const dkLen=spelunk(data,"crypto.kdfparams.dklen:int!");assertArgument(dkLen===32,"invalid kdf.dklen","kdf.dklen",dkLen);return{name:"pbkdf2",salt:salt,count:count,dkLen:dkLen,algorithm:algorithm}}}assertArgument(false,"unsupported key-derivation function","kdf",kdf)}function decryptKeystoreJsonSync(json,_password){const data=JSON.parse(json);const password=getPassword(_password);const params=getDecryptKdfParams(data);if(params.name==="pbkdf2"){const{salt,count,dkLen,algorithm}=params;const key=pbkdf2(password,salt,count,dkLen,algorithm);return getAccount(data,key)}assert$1(params.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:params});const{salt,N,r,p,dkLen}=params;const key=scryptSync(password,salt,N,r,p,dkLen);return getAccount(data,key)}function stall$1(duration){return new Promise(resolve=>{setTimeout(()=>{resolve()},duration)})}async function decryptKeystoreJson(json,_password,progress){const data=JSON.parse(json);const password=getPassword(_password);const params=getDecryptKdfParams(data);if(params.name==="pbkdf2"){if(progress){progress(0);await stall$1(0)}const{salt,count,dkLen,algorithm}=params;const key=pbkdf2(password,salt,count,dkLen,algorithm);if(progress){progress(1);await stall$1(0)}return getAccount(data,key)}assert$1(params.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:params});const{salt,N,r,p,dkLen}=params;const key=await scrypt(password,salt,N,r,p,dkLen,progress);return getAccount(data,key)}function getEncryptKdfParams(options){const salt=options.salt!=null?getBytes(options.salt,"options.salt"):randomBytes(32);let N=1<<17,r=8,p=1;if(options.scrypt){if(options.scrypt.N){N=options.scrypt.N}if(options.scrypt.r){r=options.scrypt.r}if(options.scrypt.p){p=options.scrypt.p}}assertArgument(typeof N==="number"&&N>0&&Number.isSafeInteger(N)&&(BigInt(N)&BigInt(N-1))===BigInt(0),"invalid scrypt N parameter","options.N",N);assertArgument(typeof r==="number"&&r>0&&Number.isSafeInteger(r),"invalid scrypt r parameter","options.r",r);assertArgument(typeof p==="number"&&p>0&&Number.isSafeInteger(p),"invalid scrypt p parameter","options.p",p);return{name:"scrypt",dkLen:32,salt:salt,N:N,r:r,p:p}}function _encryptKeystore(key,kdf,account,options){const privateKey=getBytes(account.privateKey,"privateKey");const iv=options.iv!=null?getBytes(options.iv,"options.iv"):randomBytes(16);assertArgument(iv.length===16,"invalid options.iv length","options.iv",options.iv);const uuidRandom=options.uuid!=null?getBytes(options.uuid,"options.uuid"):randomBytes(16);assertArgument(uuidRandom.length===16,"invalid options.uuid length","options.uuid",options.iv);const derivedKey=key.slice(0,16);const macPrefix=key.slice(16,32);const aesCtr=new CTR(derivedKey,iv);const ciphertext=getBytes(aesCtr.encrypt(privateKey));const mac=keccak256(concat([macPrefix,ciphertext]));const data={address:account.address.substring(2).toLowerCase(),id:uuidV4(uuidRandom),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:hexlify(iv).substring(2)},ciphertext:hexlify(ciphertext).substring(2),kdf:"scrypt",kdfparams:{salt:hexlify(kdf.salt).substring(2),n:kdf.N,dklen:32,p:kdf.p,r:kdf.r},mac:mac.substring(2)}};if(account.mnemonic){const client=options.client!=null?options.client:`ethers/${version}`;const path=account.mnemonic.path||defaultPath$1;const locale=account.mnemonic.locale||"en";const mnemonicKey=key.slice(32,64);const entropy=getBytes(account.mnemonic.entropy,"account.mnemonic.entropy");const mnemonicIv=randomBytes(16);const mnemonicAesCtr=new CTR(mnemonicKey,mnemonicIv);const mnemonicCiphertext=getBytes(mnemonicAesCtr.encrypt(entropy));const now=new Date;const timestamp=now.getUTCFullYear()+"-"+zpad$1(now.getUTCMonth()+1,2)+"-"+zpad$1(now.getUTCDate(),2)+"T"+zpad$1(now.getUTCHours(),2)+"-"+zpad$1(now.getUTCMinutes(),2)+"-"+zpad$1(now.getUTCSeconds(),2)+".0Z";const gethFilename="UTC--"+timestamp+"--"+data.address;data["x-ethers"]={client:client,gethFilename:gethFilename,path:path,locale:locale,mnemonicCounter:hexlify(mnemonicIv).substring(2),mnemonicCiphertext:hexlify(mnemonicCiphertext).substring(2),version:"0.1"}}return JSON.stringify(data)}function encryptKeystoreJsonSync(account,password,options){if(options==null){options={}}const passwordBytes=getPassword(password);const kdf=getEncryptKdfParams(options);const key=scryptSync(passwordBytes,kdf.salt,kdf.N,kdf.r,kdf.p,64);return _encryptKeystore(getBytes(key),kdf,account,options)}async function encryptKeystoreJson(account,password,options){if(options==null){options={}}const passwordBytes=getPassword(password);const kdf=getEncryptKdfParams(options);const key=await scrypt(passwordBytes,kdf.salt,kdf.N,kdf.r,kdf.p,64,options.progressCallback);return _encryptKeystore(getBytes(key),kdf,account,options)}const defaultPath="m/44'/60'/0'/0/0";const MasterSecret=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]);const HardenedBit=2147483648;const N=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");const Nibbles="0123456789abcdef";function zpad(value,length){let result="";while(value){result=Nibbles[value%16]+result;value=Math.trunc(value/16)}while(result.length=0;i-=8){data[33+(i>>3)]=index>>24-i&255}const I=getBytes(computeHmac("sha512",chainCode,data));return{IL:I.slice(0,32),IR:I.slice(32)}}function derivePath(node,path){const components=path.split("/");assertArgument(components.length>0&&(components[0]==="m"||node.depth>0),"invalid path","path",path);if(components[0]==="m"){components.shift()}let result=node;for(let i=0;i=16&&seed.length<=64,"invalid seed","seed","[REDACTED]");const I=getBytes(computeHmac("sha512",MasterSecret,seed));const signingKey=new SigningKey(hexlify(I.slice(0,32)));return new HDNodeWallet(_guard,signingKey,"0x00000000",hexlify(I.slice(32)),"m",0,0,mnemonic,null)}static fromExtendedKey(extendedKey){const bytes=toBeArray(decodeBase58(extendedKey));assertArgument(bytes.length===82||encodeBase58Check(bytes.slice(0,78))===extendedKey,"invalid extended key","extendedKey","[ REDACTED ]");const depth=bytes[4];const parentFingerprint=hexlify(bytes.slice(5,9));const index=parseInt(hexlify(bytes.slice(9,13)).substring(2),16);const chainCode=hexlify(bytes.slice(13,45));const key=bytes.slice(45,78);switch(hexlify(bytes.slice(0,4))){case"0x0488b21e":case"0x043587cf":{const publicKey=hexlify(key);return new HDNodeVoidWallet(_guard,computeAddress(publicKey),publicKey,parentFingerprint,chainCode,null,index,depth,null)}case"0x0488ade4":case"0x04358394 ":if(key[0]!==0){break}return new HDNodeWallet(_guard,new SigningKey(key.slice(1)),parentFingerprint,chainCode,null,index,depth,null,null)}assertArgument(false,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(password,path,wordlist){if(password==null){password=""}if(path==null){path=defaultPath}if(wordlist==null){wordlist=LangEn.wordlist()}const mnemonic=Mnemonic.fromEntropy(randomBytes(16),password,wordlist);return HDNodeWallet.#fromSeed(mnemonic.computeSeed(),mnemonic).derivePath(path)}static fromMnemonic(mnemonic,path){if(!path){path=defaultPath}return HDNodeWallet.#fromSeed(mnemonic.computeSeed(),mnemonic).derivePath(path)}static fromPhrase(phrase,password,path,wordlist){if(password==null){password=""}if(path==null){path=defaultPath}if(wordlist==null){wordlist=LangEn.wordlist()}const mnemonic=Mnemonic.fromPhrase(phrase,password,wordlist);return HDNodeWallet.#fromSeed(mnemonic.computeSeed(),mnemonic).derivePath(path)}static fromSeed(seed){return HDNodeWallet.#fromSeed(seed,null)}}class HDNodeVoidWallet extends VoidSigner{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(guard,address,publicKey,parentFingerprint,chainCode,path,index,depth,provider){super(address,provider);assertPrivate(guard,_guard,"HDNodeVoidWallet");defineProperties(this,{publicKey:publicKey});const fingerprint=dataSlice(ripemd160(sha256(publicKey)),0,4);defineProperties(this,{publicKey:publicKey,fingerprint:fingerprint,parentFingerprint:parentFingerprint,chainCode:chainCode,path:path,index:index,depth:depth})}connect(provider){return new HDNodeVoidWallet(_guard,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,provider)}get extendedKey(){assert$1(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"});return encodeBase58Check(concat(["0x0488B21E",zpad(this.depth,1),this.parentFingerprint,zpad(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(_index){const index=getNumber(_index,"index");assertArgument(index<=4294967295,"invalid index","index",index);let path=this.path;if(path){path+="/"+(index&~HardenedBit);if(index&HardenedBit){path+="'"}}const{IR,IL}=ser_I(index,this.chainCode,this.publicKey,null);const Ki=SigningKey.addPoints(IL,this.publicKey,true);const address=computeAddress(Ki);return new HDNodeVoidWallet(_guard,address,Ki,this.fingerprint,hexlify(IR),path,index,this.depth+1,this.provider)}derivePath(path){return derivePath(this,path)}}function getAccountPath(_index){const index=getNumber(_index,"index");assertArgument(index>=0&&index=0&&index{setTimeout(()=>{resolve()},duration)})}class Wallet extends BaseWallet{constructor(key,provider){if(typeof key==="string"&&!key.startsWith("0x")){key="0x"+key}let signingKey=typeof key==="string"?new SigningKey(key):key;super(signingKey,provider)}connect(provider){return new Wallet(this.signingKey,provider)}async encrypt(password,progressCallback){const account={address:this.address,privateKey:this.privateKey};return await encryptKeystoreJson(account,password,{progressCallback:progressCallback})}encryptSync(password){const account={address:this.address,privateKey:this.privateKey};return encryptKeystoreJsonSync(account,password)}static#fromAccount(account){assertArgument(account,"invalid JSON wallet","json","[ REDACTED ]");if("mnemonic"in account&&account.mnemonic&&account.mnemonic.locale==="en"){const mnemonic=Mnemonic.fromEntropy(account.mnemonic.entropy);const wallet=HDNodeWallet.fromMnemonic(mnemonic,account.mnemonic.path);if(wallet.address===account.address&&wallet.privateKey===account.privateKey){return wallet}console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}const wallet=new Wallet(account.privateKey);assertArgument(wallet.address===account.address,"address/privateKey mismatch","json","[ REDACTED ]");return wallet}static async fromEncryptedJson(json,password,progress){let account=null;if(isKeystoreJson(json)){account=await decryptKeystoreJson(json,password,progress)}else if(isCrowdsaleJson(json)){if(progress){progress(0);await stall(0)}account=decryptCrowdsaleJson(json,password);if(progress){progress(1);await stall(0)}}return Wallet.#fromAccount(account)}static fromEncryptedJsonSync(json,password){let account=null;if(isKeystoreJson(json)){account=decryptKeystoreJsonSync(json,password)}else if(isCrowdsaleJson(json)){account=decryptCrowdsaleJson(json,password)}else{assertArgument(false,"invalid JSON wallet","json","[ REDACTED ]")}return Wallet.#fromAccount(account)}static createRandom(provider){const wallet=HDNodeWallet.createRandom();if(provider){return wallet.connect(provider)}return wallet}static fromPhrase(phrase,provider){const wallet=HDNodeWallet.fromPhrase(phrase);if(provider){return wallet.connect(provider)}return wallet}}const Base64=")!@#$%^&*(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_";function decodeBits(width,data){const maxValue=(1<=width){const value=accum>>bits-width;accum&=(1<{const match=accent.match(/^([a-z]*)([0-9]+)([0-9])(.*)$/);assertArgument(match!==null,"internal error parsing accents","accents",accents);let posOffset=0;const positions=decodeBits(parseInt(match[3]),match[4]);const charCode=parseInt(match[2]);const regex=new RegExp(`([${match[1]}])`,"g");words=words.replace(regex,(all,letter)=>{const rem=--positions[posOffset];if(rem===0){letter=String.fromCharCode(letter.charCodeAt(0),charCode);posOffset++}return letter})});return words.split(",")}class WordlistOwlA extends WordlistOwl{#accent;constructor(locale,data,accent,checksum){super(locale,data,checksum);this.#accent=accent}get _accent(){return this.#accent}_decodeWords(){return decodeOwlA(this._data,this._accent)}}const wordlists={en:LangEn.wordlist()};var ethers=Object.freeze({__proto__:null,AbiCoder:AbiCoder,AbstractProvider:AbstractProvider,AbstractSigner:AbstractSigner,AlchemyProvider:AlchemyProvider,AnkrProvider:AnkrProvider,BaseContract:BaseContract,BaseWallet:BaseWallet,Block:Block,BrowserProvider:BrowserProvider,CloudflareProvider:CloudflareProvider,ConstructorFragment:ConstructorFragment,Contract:Contract,ContractEventPayload:ContractEventPayload,ContractFactory:ContractFactory,ContractTransactionReceipt:ContractTransactionReceipt,ContractTransactionResponse:ContractTransactionResponse,ContractUnknownEventPayload:ContractUnknownEventPayload,EnsPlugin:EnsPlugin,EnsResolver:EnsResolver,ErrorDescription:ErrorDescription,ErrorFragment:ErrorFragment,EtherSymbol:EtherSymbol,EtherscanPlugin:EtherscanPlugin,EtherscanProvider:EtherscanProvider,EventFragment:EventFragment,EventLog:EventLog,EventPayload:EventPayload,FallbackFragment:FallbackFragment,FallbackProvider:FallbackProvider,FeeData:FeeData,FeeDataNetworkPlugin:FeeDataNetworkPlugin,FetchCancelSignal:FetchCancelSignal,FetchRequest:FetchRequest,FetchResponse:FetchResponse,FetchUrlFeeDataNetworkPlugin:FetchUrlFeeDataNetworkPlugin,FixedNumber:FixedNumber,Fragment:Fragment,FunctionFragment:FunctionFragment,GasCostPlugin:GasCostPlugin,HDNodeVoidWallet:HDNodeVoidWallet,HDNodeWallet:HDNodeWallet,Indexed:Indexed,InfuraProvider:InfuraProvider,InfuraWebSocketProvider:InfuraWebSocketProvider,Interface:Interface,IpcSocketProvider:IpcSocketProvider,JsonRpcApiProvider:JsonRpcApiProvider,JsonRpcProvider:JsonRpcProvider,JsonRpcSigner:JsonRpcSigner,LangEn:LangEn,Log:Log,LogDescription:LogDescription,MaxInt256:MaxInt256,MaxUint256:MaxUint256,MessagePrefix:MessagePrefix,MinInt256:MinInt256,Mnemonic:Mnemonic,MulticoinProviderPlugin:MulticoinProviderPlugin,N:N$1,NamedFragment:NamedFragment,Network:Network,NetworkPlugin:NetworkPlugin,NonceManager:NonceManager,ParamType:ParamType,PocketProvider:PocketProvider,QuickNodeProvider:QuickNodeProvider,Result:Result,Signature:Signature,SigningKey:SigningKey,SocketBlockSubscriber:SocketBlockSubscriber,SocketEventSubscriber:SocketEventSubscriber,SocketPendingSubscriber:SocketPendingSubscriber,SocketProvider:SocketProvider,SocketSubscriber:SocketSubscriber,StructFragment:StructFragment,Transaction:Transaction,TransactionDescription:TransactionDescription,TransactionReceipt:TransactionReceipt,TransactionResponse:TransactionResponse,Typed:Typed,TypedDataEncoder:TypedDataEncoder,UndecodedEventLog:UndecodedEventLog,UnmanagedSubscriber:UnmanagedSubscriber,Utf8ErrorFuncs:Utf8ErrorFuncs,VoidSigner:VoidSigner,Wallet:Wallet,WebSocketProvider:WebSocketProvider,WeiPerEther:WeiPerEther,Wordlist:Wordlist,WordlistOwl:WordlistOwl,WordlistOwlA:WordlistOwlA,ZeroAddress:ZeroAddress,ZeroHash:ZeroHash,accessListify:accessListify,assert:assert$1,assertArgument:assertArgument,assertArgumentCount:assertArgumentCount,assertNormalize:assertNormalize,assertPrivate:assertPrivate,checkResultErrors:checkResultErrors,computeAddress:computeAddress,computeHmac:computeHmac,concat:concat,copyRequest:copyRequest,dataLength:dataLength,dataSlice:dataSlice,decodeBase58:decodeBase58,decodeBase64:decodeBase64,decodeBytes32String:decodeBytes32String,decodeRlp:decodeRlp,decryptCrowdsaleJson:decryptCrowdsaleJson,decryptKeystoreJson:decryptKeystoreJson,decryptKeystoreJsonSync:decryptKeystoreJsonSync,defaultPath:defaultPath,defineProperties:defineProperties,dnsEncode:dnsEncode,encodeBase58:encodeBase58,encodeBase64:encodeBase64,encodeBytes32String:encodeBytes32String,encodeRlp:encodeRlp,encryptKeystoreJson:encryptKeystoreJson,encryptKeystoreJsonSync:encryptKeystoreJsonSync,ensNormalize:ensNormalize,formatEther:formatEther,formatUnits:formatUnits,fromTwos:fromTwos,getAccountPath:getAccountPath,getAddress:getAddress,getBigInt:getBigInt,getBytes:getBytes,getBytesCopy:getBytesCopy,getCreate2Address:getCreate2Address,getCreateAddress:getCreateAddress,getDefaultProvider:getDefaultProvider,getIcapAddress:getIcapAddress,getIndexedAccountPath:getIndexedAccountPath,getNumber:getNumber,getUint:getUint,hashMessage:hashMessage,hexlify:hexlify,id:id,isAddress:isAddress,isAddressable:isAddressable,isBytesLike:isBytesLike,isCallException:isCallException,isCrowdsaleJson:isCrowdsaleJson,isError:isError,isHexString:isHexString,isKeystoreJson:isKeystoreJson,isValidName:isValidName,keccak256:keccak256,lock:lock,makeError:makeError,mask:mask,namehash:namehash,parseEther:parseEther,parseUnits:parseUnits$1,pbkdf2:pbkdf2,randomBytes:randomBytes,recoverAddress:recoverAddress,resolveAddress:resolveAddress,resolveProperties:resolveProperties,ripemd160:ripemd160,scrypt:scrypt,scryptSync:scryptSync,sha256:sha256,sha512:sha512,showThrottleMessage:showThrottleMessage,solidityPacked:solidityPacked,solidityPackedKeccak256:solidityPackedKeccak256,solidityPackedSha256:solidityPackedSha256,stripZerosLeft:stripZerosLeft,toBeArray:toBeArray,toBeHex:toBeHex,toBigInt:toBigInt,toNumber:toNumber,toQuantity:toQuantity,toTwos:toTwos,toUtf8Bytes:toUtf8Bytes,toUtf8CodePoints:toUtf8CodePoints,toUtf8String:toUtf8String,uuidV4:uuidV4,verifyMessage:verifyMessage,verifyTypedData:verifyTypedData,version:version,wordlists:wordlists,zeroPadBytes:zeroPadBytes,zeroPadValue:zeroPadValue});export{AbiCoder,AbstractProvider,AbstractSigner,AlchemyProvider,AnkrProvider,BaseContract,BaseWallet,Block,BrowserProvider,CloudflareProvider,ConstructorFragment,Contract,ContractEventPayload,ContractFactory,ContractTransactionReceipt,ContractTransactionResponse,ContractUnknownEventPayload,EnsPlugin,EnsResolver,ErrorDescription,ErrorFragment,EtherSymbol,EtherscanPlugin,EtherscanProvider,EventFragment,EventLog,EventPayload,FallbackFragment,FallbackProvider,FeeData,FeeDataNetworkPlugin,FetchCancelSignal,FetchRequest,FetchResponse,FetchUrlFeeDataNetworkPlugin,FixedNumber,Fragment,FunctionFragment,GasCostPlugin,HDNodeVoidWallet,HDNodeWallet,Indexed,InfuraProvider,InfuraWebSocketProvider,Interface,IpcSocketProvider,JsonRpcApiProvider,JsonRpcProvider,JsonRpcSigner,LangEn,Log,LogDescription,MaxInt256,MaxUint256,MessagePrefix,MinInt256,Mnemonic,MulticoinProviderPlugin,N$1 as N,NamedFragment,Network,NetworkPlugin,NonceManager,ParamType,PocketProvider,QuickNodeProvider,Result,Signature,SigningKey,SocketBlockSubscriber,SocketEventSubscriber,SocketPendingSubscriber,SocketProvider,SocketSubscriber,StructFragment,Transaction,TransactionDescription,TransactionReceipt,TransactionResponse,Typed,TypedDataEncoder,UndecodedEventLog,UnmanagedSubscriber,Utf8ErrorFuncs,VoidSigner,Wallet,WebSocketProvider,WeiPerEther,Wordlist,WordlistOwl,WordlistOwlA,ZeroAddress,ZeroHash,accessListify,assert$1 as assert,assertArgument,assertArgumentCount,assertNormalize,assertPrivate,checkResultErrors,computeAddress,computeHmac,concat,copyRequest,dataLength,dataSlice,decodeBase58,decodeBase64,decodeBytes32String,decodeRlp,decryptCrowdsaleJson,decryptKeystoreJson,decryptKeystoreJsonSync,defaultPath,defineProperties,dnsEncode,encodeBase58,encodeBase64,encodeBytes32String,encodeRlp,encryptKeystoreJson,encryptKeystoreJsonSync,ensNormalize,ethers,formatEther,formatUnits,fromTwos,getAccountPath,getAddress,getBigInt,getBytes,getBytesCopy,getCreate2Address,getCreateAddress,getDefaultProvider,getIcapAddress,getIndexedAccountPath,getNumber,getUint,hashMessage,hexlify,id,isAddress,isAddressable,isBytesLike,isCallException,isCrowdsaleJson,isError,isHexString,isKeystoreJson,isValidName,keccak256,lock,makeError,mask,namehash,parseEther,parseUnits$1 as parseUnits,pbkdf2,randomBytes,recoverAddress,resolveAddress,resolveProperties,ripemd160,scrypt,scryptSync,sha256,sha512,showThrottleMessage,solidityPacked,solidityPackedKeccak256,solidityPackedSha256,stripZerosLeft,toBeArray,toBeHex,toBigInt,toNumber,toQuantity,toTwos,toUtf8Bytes,toUtf8CodePoints,toUtf8String,uuidV4,verifyMessage,verifyTypedData,version,wordlists,zeroPadBytes,zeroPadValue}; \ No newline at end of file diff --git a/screenshot/home.png b/screenshot/home.png new file mode 100644 index 0000000000000000000000000000000000000000..df1cbf2de8192785b9387de58e5d55247fd63f3e GIT binary patch literal 54324 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