From 4c597b0aad84936c7845e64bc1dd6fe92000fa35 Mon Sep 17 00:00:00 2001 From: RodrigoCSolari Date: Mon, 11 Dec 2023 17:54:50 +0000 Subject: [PATCH] deploy: 515d9c49af9d3350a51c4bfd799c57541656f44a --- books.9f18cc1f.svg | 1 + checkers-icon.8a291530.png | Bin 0 -> 7190 bytes cheddar-logo.12783765.png | Bin 0 -> 55530 bytes cheddar.3357e5b0.svg | 1 + cheddar.ece7dc64.ico | Bin 0 -> 27612 bytes confirm.41308e81.svg | 1 + expand-button.5f0ac1bd.svg | 1 + farm.00c486f2.svg | 1 + index.1bde7f29.css | 2 ++ index.1bde7f29.css.map | 1 + index.576999f7.css | 2 ++ index.576999f7.css.map | 1 + index.9b0516fd.js | 47 +++++++++++++++++++++++++++++++++ index.9b0516fd.js.map | 1 + index.9beecf59.js | 16 +++++++++++ index.9beecf59.js.map | 1 + index.c77ebeb6.css | 2 ++ index.c77ebeb6.css.map | 1 + index.e692f8a6.css | 2 ++ index.e692f8a6.css.map | 1 + index.html | 1 + info.f6ca4b8b.svg | 1 + narwallets-logo.37085d70.svg | 1 + near-logo-black.fb1fa9d1.svg | 1 + newFarmBackground.c6905a5e.png | Bin 0 -> 751520 bytes play.d4593b67.svg | 1 + red-x.ddebeb1c.svg | 1 + spinner.50fbc432.svg | 1 + warning.af6c77e0.svg | 1 + 29 files changed, 90 insertions(+) create mode 100644 books.9f18cc1f.svg create mode 100644 checkers-icon.8a291530.png create mode 100644 cheddar-logo.12783765.png create mode 100644 cheddar.3357e5b0.svg create mode 100644 cheddar.ece7dc64.ico create mode 100644 confirm.41308e81.svg create mode 100644 expand-button.5f0ac1bd.svg create mode 100644 farm.00c486f2.svg create mode 100644 index.1bde7f29.css create mode 100644 index.1bde7f29.css.map create mode 100644 index.576999f7.css create mode 100644 index.576999f7.css.map create mode 100644 index.9b0516fd.js create mode 100644 index.9b0516fd.js.map create mode 100644 index.9beecf59.js create mode 100644 index.9beecf59.js.map create mode 100644 index.c77ebeb6.css create mode 100644 index.c77ebeb6.css.map create mode 100644 index.e692f8a6.css create mode 100644 index.e692f8a6.css.map create mode 100644 index.html create mode 100644 info.f6ca4b8b.svg create mode 100644 narwallets-logo.37085d70.svg create mode 100644 near-logo-black.fb1fa9d1.svg create mode 100644 newFarmBackground.c6905a5e.png create mode 100644 play.d4593b67.svg create mode 100644 red-x.ddebeb1c.svg create mode 100644 spinner.50fbc432.svg create mode 100644 warning.af6c77e0.svg diff --git a/books.9f18cc1f.svg b/books.9f18cc1f.svg new file mode 100644 index 0000000..4331d5c --- /dev/null +++ b/books.9f18cc1f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/checkers-icon.8a291530.png b/checkers-icon.8a291530.png new file mode 100644 index 0000000000000000000000000000000000000000..e0939a66bb8df5003a8b497f4db240eb0b062f30 GIT binary patch literal 7190 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 literal 0 HcmV?d00001 diff --git a/cheddar-logo.12783765.png b/cheddar-logo.12783765.png new file mode 100644 index 0000000000000000000000000000000000000000..1dfa540e41dd93d708693059be5586f61b400e09 GIT binary patch literal 55530 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

(i$n|-<0%p0wh5b3i6-PV9mFr!^--_-a9 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 \ No newline at end of file diff --git a/cheddar.ece7dc64.ico b/cheddar.ece7dc64.ico new file mode 100644 index 0000000000000000000000000000000000000000..69ca29330e5550d73beede2a72c9ecffe8ae4d3a GIT binary patch literal 27612 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

lITf&MBVEJ4Glk=mVn_ zF5O=UV+qaH?QC+S8@hsERZU)Pp&@xa-Vo9+PdzIFYnX}ph)@o^)3mWfb}S*Q>kr>pmcoz5|~Z@c>| z1TgA*Q7kc_}T|3i8S3pi=J<#Rv-7e1ilFt*bsp;cg506Um zhZ}VM^E`>;7Y$Y(O8f^=ItX0)`r}rS^HQiA4<)27Vci4e;r~+ z3bNli4(!6nFhNE2GMn|qf|A9L*6nW=C6?ePG;?;8>$02YTBxZw;FwPF*T6+Frf%k) zvG6UBl;mT}wQD*Ywau+EGK=~Tb=>&pFf5GZd>c1?M#^WP(?^A-mV;W_SEk41Bgy4% z>vQ))GEU&~>>NvJskqZj*$Q-nQWQbqYzSUaPwg7pNfPsU zf00go#hxF&&6CjhVh@p!153Vewh3BEQflMY%ZmIsjq%5sOH$(d@z9AFjTuo*>}wIz zee2U1@pTjN_R_D%GdxlfGYe-n4r~)6^zQj`o*G??G~fb=CKO_!1h9q$&?jWbuHDQw zSjiGy=;#Att0o&x;)kK7 zA@{Hjwr_n{f8OyC?cM2}+TBM)IJR**zboH2Hg6h#r5}x`h09NLZ{ms-5@Sotf&+vO zf`CmNPK6Pyf4S5_*?!Wt{?K8 z3e>Z&3TB%51vbGfzd^5DEEd6jR0N{&_0!$}x&&qLzJSubN%1tW%DPP57ZOyP>;2v5 z)jc{pRKtwc0j}C}*YUl24awDK?P(tcMRJ9c4eTIZzD8>lQ8p7}z?acqk_qhm{08xN zv=fR1?JJlCjazb0gDYj(afDi85EcRRlN+|2y35nl@H>S>nNGG#Stt^O*Mr^&(aYP* z6smS9%M`!KDm;@nTdv=Ijvkw!odK8v>wr1)P`Zw}TI*K;AC#v{9Won?2w@M@O-lF2 zM(HQxsI4~NJL3o45U8%Du8xQe=^4^kkjM0 z@O=K?Fxup1)qa%|Ky@!JIr_fA{a@5jB_B@{q``b|Nj~yFhGc~EK(#?)xNiYlPgzEp z>;w*{Cu-_utrsyq_Zi(KiobmNH6Km$jS=R{gKvWK6qEC07DO0jm1^2YFq=_>R=2#E z6V!3m>$&XUJ2B@6;7P&B*tXXv>0l|p+*W-2|S~h`UFU=F*!b8>-p}mBADM%3(+VnP`4BuaAR<3YZYKPS;&EK2+Uz?H)iMf1$fk zBq(1cNr~f>2CmlnDuI3hKsHQCl^ByKI}U?MYx*Rmgieb;n5Db38Kyk{>UBJp@zPQ( zMfn)hX%44?GrfyKh_on8xrd%KENQZ$=cz<`4Upr+^{WA&7!bA#*Hb?GXYB9x|8}N+ zrRmwvbw4(&eaSW&em1d=8`sdJ1diAVRVA~pENWfDfMQolWNOB{Z#7?4*xnvs8cd;Z ziLr%CK)q1gwf*EQ5!axOd4pedsrojQ8w*3%&+YSy4ddw$YSDy@7UkQl{P<_OY3XCf zX{c!!Spr>shAx=}NDYeXvxI5)sSuun>4cwcaHEb3wX+Z~2D`En!I{PbWt1}@#LB63 zst1P!*PxYsWHH=*L?5qg^&S~JN8URiVsZmWTTT&AdF~7Ewv_MLGMf5VnKjsra;3YEXrnUab|d&H7t2+*B*E0r&^ut7sz7g zq_Sv_0eTCZZ0Xl96+2nG=w2gwGg8iHtuR(IcHBs<%5L4NKGBQU-Zz~e_id|BcA@;g zRl_uApBzHTAG@VC=R}Q91RD@w(IIR#T!*ilGyEidslZ1@#>PnpX6-M&M0Y?xHD-l7))Ey>Xt8OC{14< zX}PRx^wh8I5ql#cMpbgWTo!s^?J@ywU&SLo`Jl$DUfJwnvzfZM_#-=OeQT)hU;Iho zy+;%Y?v6#HRe{AD5holW={rxH6Y%JBVD0M0)i%7aXvBkhpN}rLd3xSyC0~yI%nsJC zTwSf7LXF|?KaJvFou*(D(83a?wBfDFQHK!+eOvN=@XK53bJ%{7uUVHf`;^N#Fb)h# zwjMGzR*XMOpMYt8y~+weHf<;ubndc0o-+-Ey#a4P$#Es($yuI3Oc)IQaSV_9(KenC zzreP}x^I1rfQvt_Z+9++XkFs%i8Ko@JGVeZZtbGYUrgJCE#!{8Xp+!i(0`wx4)?ga zFS59A9AhqL*luU|&erX&El}nxQMtk1U zz-yfH)Xn*@G#CdCX@q8o?1aVCgx|z-myJQtlO=$F$hPw^oeTXE4OC3hTL-(m?rVfKGUx~71|A)&lqL$%n3pa zl}mP>0y>N(Aut{-@8(z8_QIGg%Az8OJA%6*$2Nk{KQmE zEJ_}1Mt+tYQIqsTbq#MEIp-IiBs-E2oPtdK=>ifE!-P3xN*g($jQU$|U%n(1uqf4W zi^KT1mD#>#A=2?)B*HlXFhVfdQoP|A?HX(jc4ai(dHFSG^G9DQ`L2n(-4_P!Da)4$ zFVXhSAqeIhe3ZLtpDqzOFDpErw=Rd>-$A6tj~uqqYSl9R`Zt4jSXzd&5}ux^opq3N zh1hb$NfW`?&)Hk;>&`%UNzg>@!8_C(zkOjJ70NHb&MaIc_&4tf@YWCB9CMl`a`LsjX{E55L04$g&J&&4i*#+Y?-{{ z`lWkdWRHONb*FWsy=m==SrklVS5&4@w}CPTrx}N=9u>4+xrDM*HWEz?#el7F?Xp$1 zVa^=boY85GF3dBuN|H>euF#<@MGY;vZDIIJ{X*@oinWpL5KsLBRzrxGESm2^C)P!} z&0E%Qm;7a&-8pb$0JN-J+qa6IAH<*Zx5##H_q{Yp9VDnFBCbHFb+a(al|qS;)Y0K5 zOX%b#`oKh%g0a*ytF#&SiPx1HIZj;zOkgZJ;(+S=UZ?3*(qmcCOHsj*_Sw1NcAsmr z+Ru%Xg)tQ+Iutc9!>QRY_%W;5^4hxV3Yn2rb0E6QbyN&R6gqScuI{Rrp?y z%zO5`R^G^0^+m~HoM}trlxTLNd*5^>_%xy0eaHXmN@94wZVQ0V zRSsism2*oTqUK$Vi_HGaRfTEAHgyz4N(c-OOp3q)lN^TYW0A!w$N1~c#_%f&V|heW ztKR0am0HnBr`S-X=+arvw_bq<;bQH$P-~c_1nJ7m0p+fo(3PF0Nc;9_b zy$nDcPTMp?@WGg(8n)ubfiD z8>3^t?s10LS?+afs|r;G7UB)Ls+Rr&dtB!eajX1`I8w=+M}38d+*_373#J1Nr&tQ| z4Gqf4ERBJgn^X7OsKw(%uxy3MNW%QMN|}>G`RZha85WkusELP!Go3s&1q>jReXl zT9WREcsu7i2@yFTjdF6%$($}>B#l;gMQyF!N*v1Zm^!ef4&rigy5y#1opQ3k?Cke& zF7HPB;p&<*r@oB~)fnpvu^K$oV3ZAcfrLffY>F9FunV++-*bOGeogNiE%>6;?Ax6Q zwJ&??`?sRev81%+%HshU8)^i+^8eENSqg)r#7hqf2jn84v-W(8KtH-spl*R12V*lv zs6~*VhxM}5f_+hyyMeKOTei<}MpY$|@sl{YskKaT{-#(y7Ej5`FNV6D7+zMz%t%nE*8i#b9aX zoV>e+$m;s!4b>9}!-vR$6_Or@h$gIPrEcV@^)rgyoKMB|<6NZE*T?>v;CpK(uIQTr z2l>sI$OIuA0XifH!zvnRKOW;_eQfaa?LwWCr;GL+Q(`Ysbw61@;G6P-s-w^Mpy`~-59^Db$18?ldt_G#ikMed94Co#>l&;Xs}L_iKs(7s zc0t195)0)F^6TUvF-honYbt(d?PUw{2z69%SO-5(&r2W?vFgYvNV2jSR=(zU=q5Ga zrHz97a+ zwdkp$%OuishoFlrUj?1Zx~rb>9w3{DDrorYzAx3^{BlO>0t!X7pCr4)7Fo|W@29{F{W%SI(GjEynZhjs+EvBnpCc4=M}0b zPJB`L{B&5pd#6uhceUGC%Bp&ai2!LDwS}}KwJEo#HJ7HaGMyGH*JuC&gdYX9#_1mD zsrf)%!IBdVNnjXJ9@Y$k5hqVju^~B0V2_-59=>nRl!Sf&K_Khau&$u!=KEqSM=#eIBqV!BlJ1Vxrq+yzG3Gg5`8D&LJ(2R+F!;M^7t9V)M%tYKl$y zjPMTyBc5PNIs!`8dOWxfjzZ$|u_E1O{+$Bf%kIz$lD2<`e6!fYTEYj@* zLStJf1X3@ct`ex5!O>j^OC3MPAJr!xNXhhaVCR%8R(Z^qLv6u!GLQgJC?j_^x`0pj zq&)WrNKhrFM+9HnHXBmF^@%;XE@km2DBFHhb-ph?i$v}xtBLBTh;-A;@kpn%%7>O& z396Eqeg{4LDi~v|!NLU32Bx)72D#wFXMzpygg2t*E)q|q>%$1%SkL^J8|4oBMGx`J@QeaIOS-?=tx=auHg>;|7yVBg%bD zv~sHc?g(Mi97aTlXU zrD`iiaRz0|GE;O<2?L0j9*)B_RSzKs$ zLR&7tqeJK0`#T_3ymvN*t@0sF)D$2 zYEW(S=OJxqL$GSuk71Ydok4JycEzHh{_;q@n}CIN0WH138e)Nh8k$r^@b~gin8Gb4 zw|E(}ILRM?H)LHGF&=r4HY<57 z4IX$fwi7n26kT*Hq!_lT8%m(v_|;#o%V8pSu?M)E*AGgrW}MHFZnL|y?oa5Tc`OJJ zxzAmQD9LB=s_LhNmDN>_l{|$mPTU^z{MdEbW9|B9P%3}i0JH$mN?Pq!@c9Y13dT?b z<#$>|+_}Gwn)aRO!DL8arRE;hgSR6hCqJFyF9%HYJ~YEd9aTorRLC#b7+^cInc7wH z*k=(QsAO}Zd<>ot+i&CetQ_X(W01U;uF&Is3ebA?`1l5mJD-rWbl!mI0`ktX&ZQ{@ zGSeVUq4K(8Mw*>#coEC-l%429%94BWf#hexd02!m-z*QaTu!M79S>PKc04!e9?rXY z&$CRzxvMQv)W(?>_n8^ELS=Wu?5xk@q03U&GgWtI-#3ZAb%!){Jrm=78%*Vkw+QpR zw5e928n#6^^k`KWQKb+D;GT$D*Ss2n%F;(iqC(oJZ2x_*A0+mWvIS++QQ68_U-gY$DWb!j#%Nx2R!qgpG7n7)rQF zq*W(3?D6|0wRmkq%d-g!?vCh16oy8Ttf9;I!W38Hjee)*Rz0IUMf_cd%Xti(Tu0e8 z%7re@vM-a}u58_JaRF?Z`0KT0Jsbc0Ll?T*$}L%ny#y?mEmIJDwoQnVwDlLozhG9z ziClZta08^RU4BnyI+`dXAizq^X0zU5JYKj(s{D2zzJ!S(V5HTR>aZ7+H2N)VGMYMS zEa5LI(qRv?_X41#hT&?W5N2rJJ`M_JUDvMqC%4hI)n#S3^6}jLTDGD0{I6!h?r;U^ z_Osh9lJ8@V5BQyyl>^CxO!CH>ng{6bsmAGcY3oJa>+aqdcfR*GAv+VF^5aYTIEUWE zb3)b>x>D5okv<9%wTBH9rDj;q+}5eBGtnl2bQWz zq&J}ga~$hZk!#R#x)+mfg~ezSh7yN)ZYnm_$!ZVkSslJJC3J}LeAfqB#X|?*Twc?2 zf)w4QP|4IF9nz-S5wPp(>_v<3*@G<*e?3+K+xcd&(>vHH@Jk4FV7r- zWJWqnDb~Yvv93yxwUh=g99@H84NZ$UGL=_7UMjH}Y<0~uYY|hPG9`ic&kIRMkr+0T zFjJ+j>sGmuzS&IfKT(lu9bt*E-4FLKOFkkUES>#4m2Sn053<$ll|&JGc8a)aN@>WF zd!|KdtPW#cfpLt0(z#l!)30nj$FKK_Ew;O$t*@Nl&!cR~FU40J{lk2pH{aP|2Z-wz zT%y;1)?M$HL0|JQ6HoaPJ|CTP1Ylb_2mjU%z0<@=pO2zx;iyPX$uWX{RsF=422b80 z?kk^S1pS`ugHH5qOEs>LBP6C_Jn}mamqN6Y(YuMvxRpVrrF zMU93=3yF;HWc=`NM7HPKb}TE*`cdZ$N5T&kZrl}OD$DcKLpcsve0#@~-f*1p3nSw9 z51pLej|H)Ol)sbeoOi*ih$fab{mDC$PI8Jp?(1%2S@gc9gmJW9A+v#o8dY^op#RM;KJcL(4YaS@=L zH5ps8_%PlRAtK?W{T}$(U`CRLlESnIis~XbC{paA?d`i-!!#`TDzR`5Q+SfsbZ5iY z-AfZv7J{}&uY;hwF77Qa@*jTq71Z*9QY33UIcY6HK98c}>N z`e5vi1&RSC`KPGqrSHM;bICM_FZfI$+#?v?G7U}}z_1z&josIWW1{PbrbHJkK(N z`hBZ{LTVrYQUl8UwG184#EFurr26O;^~1+`>%vv;sy`@nRxK&c)0E$zT~XJ)cw$CK zC!hMl*8-km3RykC=4Th0MS0P zDGs7rOn2qy{`y-(Yf%2lU!u5uZ%N85H+5c6G&a0nsK?y^m=2~RGjP4czdCr55D|WY z;4RrVvwK_O%MXlYWMkNp`P}PV&d0#;SG^KlFTT!~o%aWnh`r-HL^0jtdo6psIOC<} z;2updi&{#jrZnN$e2P>r)iCSex{UE+a_s27^|DZQ$=&B8r`X?l-EmV@UY^SHHCL1h z>b!aLF4*s63uC^|P8VT5q`1wfXlblu*;9o;3-i(f0`(Od@xU)6kFKoVY5 z*Clz6yv6C&H9|SuTbSpY#&CPt{C~q|O9XB)2Yh<1h_zs2>M0IT8@EY9i z!C|2lt^NzGjtY}o_Ft@IQeaN`Yc~cJWdD4xeey42B*6dzowDZvVu9#j`gb;EB+J@$ zIoOqb^c5%}X!#39(MK5zxQg3@U?$gE(VV@Ivm>S|vuUh;!iSV7dAjtJ0(3+TyFa6l z+pJ|ine=R&ZvS1s@+9z$jE0{Thr9mtfOGe%(xQ&`?@?l1r~TmHjK-3qQBF8DGmt!T z@^8NP!8ahLGp9et16KxB8w_Q$TJ{U`S{55+a^$I12${@6Q;}p^Hwyq0Kv zamrWiH0=e4*gR-AZAN|=oqlDnYdqR0C<=KWP>9RTXWsR)g$a85btEM0u11a!o)Tj) zFSm}LIAtGtSvj6zT05NMMlocvqhC#`(Hv)OM`6pP_F!SSWwMcw8w>X2mKvacwzKTu zlXfTwC!ap?Ybf>O0^_c;{2fDoSiF}_z5-_mFSsW_P0j?2zEyeq9T$bx$>!K@V%4GD zxW0zj3>+@SWC6j^iX!cK4_#X>tPMGH$#gMlEWj5FdsIcrW2DHR<{lcZVw;>zf!&K2 zufqU}{!8HSjuww!?c?xsJD!ATxe)bq3~&b{=s>e86+=I#8)*i?`^%Rhu&B6z4I0fw z{e1{BR5C=mhcG_~rWV8Qxz47jeRiZ;Wdi%fxBL^tcB}Nj@V^9c7^6^YV(FD#YU$q( zQ5>c=bXP;l9w1I%^jS@mdXhNC8Ty&_R&#ZWH%>({ft8_*1W3x78yhhM-anV-Yy(fN zp7k;Yl04I(4U2ci8s<_OLZb|mr$F4KD?)$j_9^lCen`4KX_8JiZ zB9GVKv0ZI(itAbp0;T3jXVB)zy>FUw+^dt3s_X)WL)i&z3BHW+yGNTvP3>u{4BkQqHK7gE(K- zJ3PLdAkSI>?8b9?+l8Siu5Uk3PB@(p^C&`LtALbMgb_3Qh+8k<5E&ip))P#0-4EO^G<_F=Q6PFBew1?dMfbZOk{sQO z`93k_m*h1vEQ-&2Z6!D@@x!07rQn_7(@WwXiLtREd}u&-Uz#8Eq!(#9!y z7GNig)yWOJ57sGW+%DT`vEp>NK|<(nWg%cr-v5~tW0%l0=aS(8n}io(;Ahluv&8*{ zp47M_WU{S^k1LV=%CL1j0!5(Vei;TiTSR zZUtMOI4$$5FjFC1M47qTjhWt!GR=4eqGie4l+G!styPgXlUESqTr7}nqV+F7zUy9` z@L$KFq;cA^hC4CH3PkCK?Za;X=NF-@GdA_uDiG|WAuCY zkS1dnH97iQ7YLkH07k)9bC^*|H4xTU*IBxhtC;CV)vT@|X3!>bQ2h7tH-$uJwqpEc zm(p9HFI%+ckH&HX_da=Ao%NtmOvjv?iP+cX%UcXGX-gn;SCw=P!JIat+0P)yHO5o) zZsW4(7ZyrSNtJJBtkzM2S^H6pyU2|1ZRodX7>e7An*gYlvIo~LFJfnLQa_dV0Ux1w z{eufPKcA^k5_v`6@U|(s``#Yv8T{amsO|U_h>+PQxlu5C4V5>J@LLb@#gDVu`@_KH z`swn!^3{B2n#l7fr-~G0d@lZScl9WriLmz8U0|7A|FX#WYyW=SRT9!ek>d@nX3)) z`$#nqvlvNv#lZ%=+mda)m}(-tcp>r+eXwIX3Om44s4N{&uEz=kYE$Urul%kU%@uJly}{P~|a1pJsnlDP{9>V$?T$i zt?!s*MXPUV6L#99{}<1+;OLmCjgf{a6F@FOkqf7{*5A+s4|*R&qqtla+6U$`|q34(0g)}jvo08KK#*WmpWOng4%Dicjz>F=A?>q=y)PFw!IlG7^ z`5<|ooh~Ix_Kg=7scw*$ME2}IN+e^c0=Rh4Q?(wE!*D7%BDK$PJHQAm=;uswVRc80 z-aa{*JuDoxQ0VS>R1ZD=rU>=PN@vQ>u!>%P8}v{C@2N~Kr8N4*)$b$(gzZ&HM1My* zk`8 zLKY;1@6Jy;fS#j-k5lp)ZW-fj0ar3G7Zfobi@`e;5bVIYpo+17ccV8MZfR+2`( z5;WoabiCo3(nt?9R9h{~$xvp7O%mlVLaDtdE|gwrEi49=A@CPvPz~k`cz6hi06cI& z4CCho3-6d8Awq3<26nW4apA;b`xGb@E^Vm|bROeYvM}OD%9L${g z>Z#1%SoP@XeRy`7F7sN|sr`vOd6s6f`5dof4%|S7R9#Irh2}1B{bh!8=^?pI@x%i+ zR2U@;^wH4el+fN!soETj!ia2s>`?*kr3wQ)P$C*O4ETD>qlG_gwHAdy;}b1|7R%@x zy)gXku9)7aEZ@Wbq~pwdX&rYw4u0XH@q69^?e^6nNZ{c=!+w&}W{yHqM=vZq|IyX~Vae`zY^;-NvW zWE!C=UXbc$Xe2J^{YjTRS7s;|8ZM@`6FZ?7Nu>1uYc^(*U4oERz-qAleIS`-AoScx zBShjuem}5Pp~$K0yH6Z^nlP0M#tyUZ9KY0Zo-uR&L*Mj=Z7pykmO9eTY!v9L)GLB4 zn!6#8!%eoWF*s%h>zBiAituqP$UEsh$VkdrH-qSv(pU->qqtDeIDh6-5RWc8IEm6~ ztS_O8Z6*B15mrY@vq&#ZhHlTg8ul;uubXXrTaDLE_YlOiIn9-qhso>w$}=8FUueOG z?7jW`g(KxzXUn-|DM5GmPu2mbgwQNuY;ehpu152CJb5$aG8Wp>xd9-uXkcfoY=wvU z<@5T?qT!u2o~zTDhs0=AocDqrK5Uk4ZSVlOkQh(KA3zt9fVr%(X<*#L-yoT1tNIn- z`ZD8-pNXkl){D|b-Y{9oeLbyYe7UTg%r1nq7yKkekjgXV#CRgy0N1Y=2zw1*#Jnd> zAVk|C#PkI%>G~=D8y04pPp#*9(4G^Ai;I2%7oJ@^ekZypEQz7kE+iZ(i)`vCi((of z^TEx>MXK$X_hqyMDVyhG{bosn1TYHfO+j3mbbUtA zp$Vge$UuQ~1GUx(rtm|!ZdNo_nJ`j<$%!W;70EB>4?=c{u?-O|U6&%5?TpP<3z7a( z6wHT8)353RNdqr65UlSH27EPx(v5jcqKrB0fk`)OnSw{y>T-l&|8rKs>ogJD} z8>i~-B-_P)8XuQ{McEn^Xo)0SbeIYnRfXM$>}Wb~_fs{^s8P{Fi~{h|_1A5@$_jFH zA4JQoy5=b(XXF0Y4c{|JqQw3UY5x2@XD7qute^1$G%x%vY9%eY!uUhe=LUsoiBKL;dmiE|{fXeEQ1URj z`*D^pX5g?Rt05H4)-3ALq-jn3TiwWo5IY)!%L1lbul06eTn8q!ic0Ng>t72V9QV&= zhjOelEbFDP2Irx(){-lgpl3Lb>l`E1?Ioy9a}`3`0hgg4Xlcm&I}jc9>|V!i=1=E2 zj63hV6Dz%o=BOT9#|vYZt;^*W-)7Nta5I!=^jl+K4E@o09ah4Z1^e~*o-Z37I%}^t zB9}Pgv_9c2bw14=XdO!L6rVK-h-Zh)-Oo!3ME`qU;1}`=Zk4C!hb4p!-sz`NyBLZ6 z2QhnQK2n|a!Xkjm{v(7w8->zk!EIwrD%0I9P6_z4zJ8hncCV0KVy;wDA19-%{wP|a zX^SPe&O$6jM`8EW#g6a~h$ISB$F92fjawf$Gs3RzpGJ*>l%?PHjeBc@`PEjx_~B^} zf~{CP1Ezf5)1Ytra;ho>esBE!NQ6%}sl3dF3lPOiJFq|pkda5msUoG>n2>oSSn*y@ z*UP;$5iF-cb;^n_M}+Mat}>wQFH^v2O>aUH%e2i%@+u*m*Yn?{C#{_fD#`_Y9$I= zR=n*oBCKuU$c~$r;>bJo78qYhA!qrNx~!meXT0dLJt~b8cjwTnNyIPBg!Nq=LI?Tb z_54mGG_S!}@m8(@(PYJv*L^eUt)>B;248_%)##uN zbRGL(JmLq_sIZEH!DKg<*vHUvKBYU1!&I;i!$%*l289 zjcv8Doiw)X#`&s)H4DoJrXJRZ?M9Zrik=C+~vD`mX*rsjaz9eb~IsjA+z;@8%b#KNoGUY-jAU6MC72T;zS~8mLBQ^rxOP7=EtwGfmU1 z`J`kRj_T@4jyOfqO1TF;H+&-P)#oaDqv=6+=!0-fpx245^2$jWp*gzUr$~DN<<@10(R$g+W z#YZ5p)?S&r92!?%+{t|QksbBOrt6?CdEL8Z-&o*N~gGv^khUm0Y+)bq6|)9zXe~S zEs!S6&3-1|N11?iAf~;zxb!}{AZdR4vE?ovyxZcVn%b1=lv4o$yop1~NW$H2-zZS4 z9?pG>qB3o%^!OsFv(~b>A=Sg(KSkt!doG{PA|A3nY8>k=R>c7&3YkQ`84Em_Owj9d zqZkv?(OgsJa7*na)y1pxkVG~p*o{#O3DeP-6tiQE(yb6xDj7`yUzVrQMlw;l{8~*~ z)t$`6PYgzyL-X?%k}rGeuMHaL3TL1TYf3W!*zh}z7Ki#)=qmtN;`*x%oT*F9kRjIc zip;!&4r;AGs|%z>&qjn*?w@zIH0L0}>tnY~VgQQSo2t^u%v`M4ERT2>{lFN=uL+73 zu$QLshHpL+Qx2~W&+50wcz_;Z)G|MdFzjU&!B)mNBuhAa=jCZEeT!YFu_h|nnt_Kl z7bkfTUFzfi`$JR+pY`SH1uqA5E2zQ95m5CPLI)pV-A(jxe0PT3;Y73XX{rp_QWmB# z13R8Pu=!P?H_uQK2Eo|H?|AYeBkMBy0+rqCSQn|0I#RoK>A()1&g zRUxYEq&QSfhQ92L=1`8}D_Z~UoZZl3c56JB$!K=076sYaU#sv^4tvsL9t{Qgi2DgR zX2!m|_rTVjRS~=}lt=M1MrOCYve<>$BloL^I-%kJn>5xAX?GJRGia2@4Zhn4op`(krsyJhb+m{(_*H15?scP}yZ5Z%dX6qR{1}cVncT!O6 zDpf1VMW%XpexZK`=@$AMnMTa*r7@t!z^M%TDv*+g@wm~lB7N3&3?ZPs0 z93CjL1rQLMW=>JuP!ndw1I&FLD1K)IYSZUv2S0CepYB~`xmK$mxmM~7(ejP;&P31H zsafWp16lq)MWwyq1ck{~1k!S%_I~xlF6|co9Oxt+`(7}@AfEApJz$r;AmM^hW|BC= zp{+Brs4wEZf_C_2E2r(^(H}JJ=ldF-%e(U0Q3klW9{k)j=#4XY*4Wj%^uqCf1N!Tt z_L(y_o=#2{B8bq!V_a;&(#x^9W9JBEZCtv2j~Y4IY&z4Ia4>erturc-v@njkXw^HR zvM7h4bSpP*Qr?rXUpm6Ezatgj;M0f96AB=06YigQg>OD9*_W@kxL$Z?gqEt zNaFIM{N(PJIxat|${;-s5~QAnsDC(aV)St)^-f8J&J}xwe_QrznQz+8Hh{%gBwiop z*Zp=EfBrNjQWx#EZdvxnjeo~DM${I0>K2qrC*1*6!nSmK4SCs#`Vw6>+Tt$Jckqtr zijGm3z(=gcKHxz<38!Ipy#i&CCp0-WDlw44Bp!)uE*NZZP5b9p`6XddgL}|gEUWG6 zI5Hn01&4%@d>y|$l1lmkN4XjW4S9;>CpC{$*{a*;@kqmy&|9xi$5n;F3n*jj@nc`> zqKkc}Lu`DxMayB5qWT>?N*eYIHz@y{R-AsY2(B0quK~7RpEgmhOOCA?WQqEt4aEyV z8h`!x(p#z3R>~ny>w$$y&n)zUASLvQ;K)BzJo+=z#MOf|8m{#~Wt(^SVfozX>M??{5C!mmcA+*Ps5a_JJO>5pBqjY=0w(9eMmZxq;-pvB`6H4qfqG-8T z7JR>g;|3G+F`rMJEoHA|lFuXVk29dq=KKB8o3BOhW0%3MiNFN^HgCU_(97)UNtEv3 zDiG>N@UwOz#>dalO2UFVZ#U!w;_!X7mYusVuyADP`r*QbNx@pAL9yR20M(xV6iq5aKaF71ZT6Ce8egC2L?T-gW1&C!9H0gXuvb``t z3oVNaf_!q5K*TzXK)u)GB&ie{7nzn4H2F*gBPV1zQ*pWe=HPiPEx&7zvyxH3u$V2a zj4=ZKomjF+if*aNCwsLD6%e_lvcCSGrnZda=y7i?=E$bEyXWT#!Is(ft4{CJ({%Tf z?463BxAU#urBLWe*7I6j&H*{ev$P0=SdhMy$X?6I%Ka%!ck5i^aDNY1Gk}l8FPfiG z!^o@4X-5%QV3GLIAe%XW`26N;dM<1%4Y%{{G|7otdT-60^+emUPG%cqDUgV2#z-1G zrf=JJ;EkDZzVusg7fR4y6is1{w(l+^WE>g-u5$k7V^IFF2J$Kt{;EU?CrUVWp*J$Z5Q>zWB~-aQBN%Ms_a8 z_WRK?to`f1@W;=MJm1>eab|(n(ITNce}Bf_D+0!?kB7EfYX2K*ZZ62;_mlgQZ%WAY zYRjIuSJnuj(MfEFM}!>5p>`O$O3KvllH|{8!Ds%yWnEu%RD&{AiGPjl$L5ztYeB!UpWL$fceIT)pTukmMSQds16|c zF>H=$Wa<8|(#j>o3$(Au*m{2s?NT&lBN|Mte^yYmoo~{9_V!*)oh-jSF#GNMdp%p; zCCmfuv|c(N0SMh0Z9O$!lhHA?8Obd_RLs`hyTh5^@2EfJnrwQr2*VZC$y=3N+Pb~G zYG8z74LyHm2tiJUivJ6(Zc;QRdHf=@d|7LNlJyOEd~*5cTS=Je=25vKZELgs^rg+) zE0LX5;2}G8x}baJPiMS8Vv!mk&G8J`KWPt}1J_x0^UzCI3YBMTZ{(v`I1wd8DVqP5 ztboW@HjzU8Ro|Cj_tE&ZbamZ&-_HvES@fP>HWT|_e47gUJUS-YH~H~-)GO#WId#lA z4*>q7kOv>(9bCwL+$FBFvWw4T zVDQ}zI4M+Is#~wCk*$zXvldlH?dAG`rrvw|#~s$-ox0b~4>TIQWv>Miz~b#F ztpV2JL9U!L+O5u-$HO`RFnof=zN75kjk8+ltLRD_L&u?hhHvH@;0)1aeQef({78vvQk<=S`ebbx z>%-Qt9BD1~P{%ROII|l=L1nK=x@<#3oR`z z{^R!xvZ+|lRy$00g}D1QGpH@ZLt)6s5@{&o9{F~C0)0<9;|GsMW%(a!e5Y(72WRiu zNlO2cMDxD?^p76d8Fp~9Tbf73%A`g<&gFE$iMDB;)uD7a%RXb(kNzcSF~TRRZ=>*- zi4FY)P^$nl7Sk#U-6wH%a!Yz!w$azYO;OJqPEr+;C-Rup?Lf_}bG&gxoaPsvbmlMX zuEO(3D8C7rQbF)>V+$vlxC(3Iqpf4=YoG%qttj73g+!A!9dpdzyDSEU1Z5E`kv1S7=!RyC-LBM{gTRzikbB+i)bOKg4-cC+B>K-@O=HyLfz?mZ)f zn+EcUSO!!0C(aiGd`MFgjQeE8@mVY0Lc6&fV7jTko-!AVh77u4x6giLO^ZIC0&omyG%!9{Wkok5m142L`DTvtx~iRTAtp zz5w_jO9~Y&tn_b6#GW`cmhWUeJU zHqVx_%kRZ0N$v5s;*+2W`Ytzx1O*%6y_;aVKNyKHyx|H)uHCF%vZGT;pFqyqm&->=$E&ap} zHA45d+LYouX#cJyz-W z_-&}+=A<8G^T7c@B=x@aWr;Z%$*?FT3dZ5WOVIrxo7-7U z)`{P_0t6cOOUOtkPI(6=t3MYZk#-+OI#;ZlUCQ3r?R%PCVp9ca_`-U+`}<5lQ8@6( ziOt_nug03Z?VguPWsraD#tL|s-g9EASE(HXi(l5|qPW5-2>!k89OH^F04B-|@p@^> z!JNYVIEW}yg5mpKa)z6Y?%Gk?#4Tay$aT;$%{Z^)rY<12`lw7Fl2FJfb;+RKiiZ!& zpfAC6F=!SN>AfZ4;c8fWm{t`dZPO7CtsFu#H;ZLJ7aW?gUh(yJF`hMYp5RiRaLpiM zm*BC(FHh-aGWCe_ZTKmWI8iH-s-TSyzX~F(rT4n-nOe zs;h?%&U))l~AY4a@fLVG%RhC|cRb zu=@yR%JGyPL^|UCro>K*iyRG$uJ_P>Flt#yk0DDyXbrqbw7_7T>=TQu&it<7gwCdG zP%~DEQH!B5p38Ql_QhH{P}PO)%0!VS*ISikD><^p&LAMSUDw&0n6=~6ClvpZHl>WW z_DAjS4}#1Dim$Yaw~M}+<3tm9NF5`6JFzHM7`|P3Z&P)&c$PQakaecD@7933P@a0> zCeEGY70a7CisPA)9RU{{BG+SNFIs(%oH(jbn;6D?$m+q=(`-VGaxR}zw`87cC-3uQ zS}<9qYTqmNa=7%B9z{dOZAQajHjg9eAwAAms>HP6y~F9(r7Mm8CS@tqfD=Mk&AEBe;M-85YqelP^N3L75##TEEkr0aeI( z*PsAr>dugeSUR)0Bg$UAwT39EBVCvg!|h$vSqISiA(DknoHRaQJ}b8{_VX<`jq$P%`@ z$A}qd4)N+W1(+QFgGA|v%tcUirNJ@OV6O(ekN{)z?J_oW_OvUkDp^{ZCN9=1yI*wK zuZ@ahqfLbhd&O@v0;%>j6vQ$|;_Ht`cSN_R=@h<`z>kz(7^Yn7K@N|&3gT*DQMIPD zf6|wFfIwzPimq0ntSZ${OLs}*;5Gbuj%CgN7QKQSC7z!Uks~5*3&``{n_pWo&G&6v zjuZvbPcvXhb%v>%q*cC2Iu29NFJ6vWIGul{XvuX3=RI;Gb3!laE*NRPyDQ?Y6VI#=_bHq0-A6Zo z0$zK4qW(Gynk%_lGKpIjKLJWuLF_$k;=kv5N4Du~rlx;p__!*-e~&^Y+e1EA!C}Se z(`-N7a+Eb2ms4V%wHmgWgw)W@=K0#hv0GrA|8a`$x2dL|x0F0%!3yZ8e0fR9F zaHg6Z_#y=(jZ&ysR^I95xB$I|86>+_q; zVpUViUskg8RLK)kbNRDLiM(V4;ZVLDug};W&&%ZDxNI|yI>Nv_`fU|-?B$OqrSjz-$}m87m-z*FcY73c1ix`^Eik5th~)dqE4Z( zt9}MDL*bkaxIm{tKYCGN?cN^T*`Z>r%W_azqzi2xE+kOhmhro2voa}~`~rnaBWS7~ zuEOaXTFQSt>+TqS@WqnF>N>=BIVu61GOB^?At)7l7ATxhY~<z zUe2OXw4^cG{^aVPclu09qO7^~r@4G;uT@!%VU)}6EZemTrs?suw5Cl$`B#uL7nD?e zoxvhZlF}S1v*r)#>1!GV^D&yamkk2jMLmSGr$a-Id({8&GS(GwurUg-3qarQJ|wfv z-<;*(8DslI>T!vQ<+qEhc_-=9vF|MuP1DG3943jIz0AgA`rzSbNGbE5+DB_R4`7ZSijTMI24RI>oUCF+g8P!=?f{l=qeuGGr= zteOnhXXW{3=s0k?(R0`-OkDk%IeC~JPG?wk81Z^ImxeBIX@5ctO2Hx>qQ zd9CF6{&ETavME|m6Nc$L(beI-w5g>o7yT`;^AKLT>X|=Pk(N0@Y(H-!F=Uz$%dwX5 z^)r0$lMV+7%2ZLvBy`QC??LBO{+yONbIvTgt$2@VucYjV*SDDWpzgZ5;DB-<&&65R zZVqG3LbUUkEY;wg4bUt9+a0uaXVb0@1$IepNym4_-M!5%!TPJ-G(QJ|SIKs{X6&4( zR)UJ$Z=6_h$ym}Ob*5gM$gyl{oFPBqGcFr+hJ2Y)B0>m6!7y%IhsBaJDIHqaLfGdY zdny^{PDoU}h_@gS9N(yzQud2M10nXDNo9U}T(ZHg@ymXXc$GMVw>a@0dCDhN{r4vU-KYzy|3vv-z9EP^uhwQQ^0k5k@ zfo&7BS~(lm;`OLVvG8b)G!9DN$r0^-dOX?1p(8u_FAHU|$<`H{Ju+0Pn7k1wMkxYhV79r8hq4ZM|=uYmsR`Rtvv7!x$?ptfkhCG)!DiC*fwVGkLSep zXAi}>f^GH2Xn~_)gPEtl^m?tu!mGc->^5_cMI2;ntLu1R+HugsD-${oNme@T2 z{q&Td_)0HR13s&lX3+tC8>1)|aa>YkqW*oLN;^f*T@veks+p{~bpO`TyHos?niCuv z?Vy@(Hb&+HMizV9rvOtwKDV2=LY|5`RYSYgA_6`tf>}s=d%jw0Bvv*RQO1>X!4p{P_TjiQnfbz2o_lxGUUT=cn7`(5I&P z;fib)$(ckWdDq?){5V)k4!sm$fi)dukF~8P!0bB_A2x`4(yJUlh@B94o9tnck@-## zC4<;bk#=3)!EHvA;8hcGp&DZF*joEm_wlSFuCt0RmUCk7mwE`iC|OK+sFnKI+0K4n z@Fvl-x_$3a-ooIoI1XLq{l`~8fRZO?!eRBAgC1#Iqxj{ng) zh-AFDF=@1sFUP*8Odk9as(bzO3>|0=KFO-w7T4xpSq$oilWgGwJIzWvIk(=Ba)6f- zy?311JQhEC{KLKX7P6ng>D6-6-+_Sd;kV>8o*OS=zd3Nc!BlL~QDTVWT7RT?Pg_Su>}towBeir^+gW>w zNCmO&CdJZ0%Q|k?Zx)JkR$(@rfypr0YGmY^MHOFJHpIo|kLpaozH03@P^>zZfLDAi z17@^;UrA8BRA68F(w2N{@1IWFo&6^^5<&2Mux!WbD3Ywr{9)WadcPF?mg?@vsB{_D za~h>mpes$a2Y+a|L155uP99OlwEs}-|BL!}&VF)r8J~icS|Dqlup3g#bjYD73zOfD z7|5)JBIFkq%3hN|K4H9A>@{yCBtm2VNzT&IHC$uACeuND$4_Q2xNGsgPnQ{Fhf?`X zkoU&X_rxz(=%>-HjFN^Gd^4sZ4-m&2Ejt5)7@*Vh7wbfYK}~VBBsL2Zh361E`5nPq zJp*zWQ`WOWZ&RION!(eQ46{+vrrul_PAqoB?@3iEoY^3lfwiYhIb^(OlhzXL!O6-*OO*O=W@Q8Fm7FUDr&)u- zHUWyUgr+Gn3Cp;N{uok+Hmo2SEZLR-=(_c(i*>4W{#Db5Aq0A7qRyIl8U?Md{a!%^ zH(+KdeNE3|9q@Ir0YV&ocYCa1(=Y9H{L)heY;aY07e+0~JTWaal!3zFYe!htEK?X& zmXlOAh>QIz1okrK?5waNG(mniHs@po{4r@Zf}EP@yfIr7c*y9hmc{hp*lG%J;9Z>2 zqU3ExvM{(v0EF?-9rvz!i}J-l?aGuDU++l0Hbrzd6R#XF89 z>Q#!y+gj1MUU7E$O7Jh7xeP4YygJ0M38VngI>~stP#uV(tF@66CiuxBEt^y}mpV_r zHA*R8OF2u_s?EBl%yQ1bw{!YQi9p~4&Yk9JK6ZoxiI4L9mf6M?KtXOIQ@lWD6{K;- z-9L5TCL=MpkPXIAG#)6azJRZSA{om3i&I`TEnbXyj0_VxsNUBJVtPCa3*P8Xtz@MMoFD?CRXDDfeRMLI1CKpK>TYxh* zW5d?}C~vJ;y@YSemS^}!tjjQ5qY==0C)Emv_@6!qX9C*4^}>0xtT)EnE|k4Vybr2A ze@sqgqKseAWAhco@nLp-EGIVx7>jrOvO6ws(@u+QpjfIM+_t6aQc*_=)$IPEZdF&u zTRdd=Psz7Cp(X4V2U^b?3~1*RxNH}ZlPt#x4S+^b=#@5P&;CIWCC^V?%VQ1>unG9Y zt+C&#B9c?(n1s`DcPyZd_Mvq&T$u@wY2dR+I%z|T!7B|`%z=&pOQ$rg?c0rDJL)k$ z?{(@WUnZ}U@p@O_nHEMcQy@cy6GiN^EqBQFGyASLKt(Qx=?{(hFm0E{YTi8lgFTN= z2Bn}xevkZ!Sv=kEuTdG>hP(7C>NshaS==)E6II~Yh~CU*5%3?8<3vm8R3 zpK2JVm6^jx3}tq&gEu(&qFN%AY?j4QS76|oAwhe#<@W$P*_YC52As&j8bA9Ae*ofV4BltndTE19 zu3BMnxLj#WO`5ERvO}*@Uv0<@2c7wA$CL4_+3Jc6&@abrW`nFl~Fww1E z6fwHeFwgryOK7Mp)j+-cwRVCJ@2Rpw9rVLY)Gfd^Z1jUY3CsSpo1HdXQzeQS(xK z2s5K|-u&)SLoD?GD%e{Cyhf%BtYpYzUHRM^=_`u9R~4<~am6VNq;>k;o2AkbNmieK z%b3T{riTLuF;xXo`0(P_F!!Xa+p8X>!S2dUhBNp6NS%*clVv8W01)m*OoTF5owfw( z)NtA!+U|g#VuPi8ODL1@uA=VXsv0 \ No newline at end of file diff --git a/expand-button.5f0ac1bd.svg b/expand-button.5f0ac1bd.svg new file mode 100644 index 0000000..8e47755 --- /dev/null +++ b/expand-button.5f0ac1bd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/farm.00c486f2.svg b/farm.00c486f2.svg new file mode 100644 index 0000000..007a72e --- /dev/null +++ b/farm.00c486f2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.1bde7f29.css b/index.1bde7f29.css new file mode 100644 index 0000000..9552a3e --- /dev/null +++ b/index.1bde7f29.css @@ -0,0 +1,2 @@ +section#faq article{min-width:65vw;padding-bottom:0;font-weight:500}section#faq ul{margin-bottom:0;display:grid}.collapsible{width:100%;align-self:flex-start;margin-bottom:1em;padding-bottom:1em}.collapsible:not(:nth-last-child(1)){border-bottom:1px dashed #d8dbe5}.collapsible input{position:absolute;left:-9999px}.collapsible input:focus~.collapser{border-color:gray}.collapsible .collapser{cursor:pointer;border:1px dotted rgba(0,0,0,0)}.collapsible span.arrow:before{content:">"}.collapsible .arrow{margin-right:.5em;padding:0;transition:transform .25s ease-out;display:inline-flex;transform:rotate(0deg)}.collapsible input:checked~.arrow,.collapsible input:checked~.collapser .arrow{transform:rotate(90deg)}.collapsible .collapsed,.collapsible .collapsed li{white-space:break-spaces;opacity:0;margin:0;padding:0;font-size:0;transition:opacity .6s,margin .5s .25s,font-size .5s .25s,padding .5s .25s}.collapsible input:checked~.collapsed li{opacity:1;white-space:break-spaces;margin-left:2em;margin-right:2em;padding-bottom:6px;font-size:1em;transition:margin .1s,padding .1s,font-size .1s,opacity .1s}.collapsible input:checked~.collapsed{white-space:break-spaces;opacity:1;height:auto;margin-bottom:0;padding:1em 1em 1em 2em;font-size:1em;line-height:1.45em;transition:margin .25s,padding .25s,font-size .25s,opacity .2s .25s}.collapsed a{border-bottom:1px dashed #90939d} +/*# sourceMappingURL=index.1bde7f29.css.map */ diff --git a/index.1bde7f29.css.map b/index.1bde7f29.css.map new file mode 100644 index 0000000..7ee62c8 --- /dev/null +++ b/index.1bde7f29.css.map @@ -0,0 +1 @@ +{"mappings":"ACAA,oEAMA,4CAKA,mFAOA,sEAIA,kDAKA,sDAIA,uEAKA,2CAIA,8HAQA,uGAIA,gMASA,0MASA,kOAaA","sources":["index.1bde7f29.css","src/faq.css"],"sourcesContent":["section#faq article {\n min-width: 65vw;\n padding-bottom: 0;\n font-weight: 500;\n}\n\nsection#faq ul {\n margin-bottom: 0;\n display: grid;\n}\n\n.collapsible {\n width: 100%;\n align-self: flex-start;\n margin-bottom: 1em;\n padding-bottom: 1em;\n}\n\n.collapsible:not(:nth-last-child(1)) {\n border-bottom: 1px dashed #d8dbe5;\n}\n\n.collapsible input {\n position: absolute;\n left: -9999px;\n}\n\n.collapsible input:focus ~ .collapser {\n border-color: gray;\n}\n\n.collapsible .collapser {\n cursor: pointer;\n border: 1px dotted rgba(0, 0, 0, 0);\n}\n\n.collapsible span.arrow:before {\n content: \">\";\n}\n\n.collapsible .arrow {\n margin-right: .5em;\n padding: 0;\n transition: transform .25s ease-out;\n display: inline-flex;\n transform: rotate(0deg);\n}\n\n.collapsible input:checked ~ .arrow, .collapsible input:checked ~ .collapser .arrow {\n transform: rotate(90deg);\n}\n\n.collapsible .collapsed, .collapsible .collapsed li {\n white-space: break-spaces;\n opacity: 0;\n margin: 0;\n padding: 0;\n font-size: 0;\n transition: opacity .6s, margin .5s .25s, font-size .5s .25s, padding .5s .25s;\n}\n\n.collapsible input:checked ~ .collapsed li {\n opacity: 1;\n white-space: break-spaces;\n margin-left: 2em;\n margin-right: 2em;\n padding-bottom: 6px;\n font-size: 1em;\n transition: margin .1s, padding .1s, font-size .1s, opacity .1s;\n}\n\n.collapsible input:checked ~ .collapsed {\n white-space: break-spaces;\n opacity: 1;\n height: auto;\n margin-bottom: 0;\n padding: 1em 1em 1em 2em;\n font-size: 1em;\n line-height: 1.45em;\n transition: margin .25s, padding .25s, font-size .25s, opacity .2s .25s;\n}\n\n.collapsed a {\n border-bottom: 1px dashed #90939d;\n}\n\n/*# sourceMappingURL=index.1bde7f29.css.map */\n","section#faq article {\r\n min-width: 65vw;\r\n font-weight: 500;\r\n padding-bottom: 0em;\r\n}\r\n\r\nsection#faq ul {\r\n margin-block-end: 0em;\r\n display: grid;\r\n}\r\n\r\n.collapsible {\r\n align-self: flex-start;\r\n width: 100%;\r\n margin-bottom: 1em;\r\n padding-bottom: 1em;\r\n}\r\n\r\n.collapsible:not(:nth-last-child(1)) {\r\n border-bottom: 1px dashed #D8DBE5;\r\n}\r\n\r\n.collapsible input {\r\n position: absolute;\r\n left: -9999px;\r\n}\r\n\r\n.collapsible input:focus ~ .collapser {\r\n border-color: grey;\r\n}\r\n\r\n.collapsible .collapser {\r\n cursor: pointer;\r\n border: 1px transparent dotted;\r\n}\r\n\r\n.collapsible span.arrow:before {\r\n content: \">\";\r\n}\r\n\r\n.collapsible .arrow {\r\n padding: 0em;\r\n margin-right: 0.5em;\r\n transform: rotate(0deg);\r\n transition: transform 0.25s ease-out;\r\n display: inline-flex;\r\n}\r\n\r\n.collapsible input:checked ~ .arrow, .collapsible input:checked ~ .collapser .arrow {\r\n transform: rotate(90deg);\r\n}\r\n\r\n.collapsible .collapsed, .collapsible .collapsed li {\r\n font-size: 0;\r\n white-space: break-spaces;\r\n margin: 0;\r\n opacity: 0;\r\n padding: 0;\r\n /* fade out, then shrink */\r\n transition: opacity .6s, margin 0.5s 0.25s, font-size 0.5s 0.25s, padding 0.5s 0.25s;\r\n}\r\n.collapsible input:checked ~ .collapsed li {\r\n opacity: 1;\r\n font-size: 1em;\r\n margin-left: 2em;\r\n margin-right: 2em;\r\n white-space: break-spaces;\r\n transition: margin 0.1s, padding 0.1s, font-size 0.1s, opacity .1s;\r\n padding-bottom: 6px;\r\n}\r\n.collapsible input:checked ~ .collapsed {\r\n font-size: 1em;\r\n line-height: 1.45em;\r\n white-space: break-spaces;\r\n opacity: 1;\r\n height: auto;\r\n padding: 1em;\r\n padding-left: 2em;\r\n margin-bottom: 0;\r\n /* grow, then fade in */\r\n transition: margin 0.25s, padding 0.25s, font-size 0.25s, opacity .2s 0.25s;\r\n}\r\n\r\n.collapsed a {\r\n border-bottom: 1px dashed #90939d;\r\n}"],"names":[],"version":3,"file":"index.1bde7f29.css.map"} \ No newline at end of file diff --git a/index.576999f7.css b/index.576999f7.css new file mode 100644 index 0000000..69d9ac6 --- /dev/null +++ b/index.576999f7.css @@ -0,0 +1,2 @@ +html{--yellow:#f9ba37;--primary:#8542eb}@keyframes loading{0%{cy:10}25%{cy:3}50%{cy:10}}#new-confetti-button_canvas{pointer-events:none;width:100%;z-index:10;position:absolute}.confetti-button{max-width:180px;color:#f4f7ff;cursor:pointer;height:40px;width:100%;-webkit-tap-highlight-color:transparent;z-index:1;background:0 0;border:none;outline:none;margin:5px 7px;padding:0 10px;font-size:16px;font-weight:400;position:relative;overflow:hidden}.confetti-button:before{background:var(--primary);content:"";height:36px;width:100%;border-radius:4px;margin:0 auto;transition:width .2s cubic-bezier(.39,1.86,.64,1) .3s;display:block;position:relative;box-shadow:inset 0 2px 5px rgba(0,0,0,.4)}.confetti-button>*{opacity:0}.confetti-button.ready .submitMessage{opacity:1}.confetti-button.ready .submitMessage svg{opacity:1;transition:top .4s .6s,opacity .3s linear .6s;top:1px}.confetti-button.ready .submitMessage .button-text span{opacity:1;transition:all .2s ease calc(var(--dr) + 600ms);top:0}.confetti-button.loading:before{width:80%;transition:width .3s}.confetti-button.loading .loadingMessage{opacity:1}.confetti-button.loading .loadingCircle{cy:10;animation-name:loading;animation-duration:1s;animation-iteration-count:infinite}.confetti-button.complete .successMessage{opacity:1}.confetti-button.complete .submitMessage svg{transition:none;top:-30px}.confetti-button.complete .submitMessage .button-text span{transition:none;top:-8px}.confetti-button.complete .loadingMessage{top:80px}.confetti-button.complete .successMessage .button-text span{opacity:1;transition:all .2s ease calc(var(--d) + 1000ms);left:0}.confetti-button.complete .successMessage svg{stroke-dashoffset:0;transition:stroke-dashoffset .3s ease-in-out 1.4s}.button-text span{opacity:0;position:relative}.message{width:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.message svg{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;margin-right:5px;display:inline-block}.submitMessage .button-text span{transition:all .2s ease var(--d);top:8px}.submitMessage svg{color:var(--yellow);opacity:0;width:14px;margin-left:-1px;transition:top .4s,opacity .3s linear;position:relative;top:30px}.loadingMessage{opacity:0;transition:opacity .3s linear .3s,top .4s cubic-bezier(.22,0,.41,-.57)}.loadingMessage svg{fill:#5c86ff;width:22px;margin:0}.successMessage .button-text span{transition:all .2s ease var(--dr);left:5px}.successMessage svg{color:#5cffa1;stroke-dasharray:20;stroke-dashoffset:20px;width:14px;transition:stroke-dashoffset .3s ease-in-out}.loadingCircle:nth-child(2){animation-delay:.1s}.loadingCircle:nth-child(3){animation-delay:.2s} +/*# sourceMappingURL=index.576999f7.css.map */ diff --git a/index.576999f7.css.map b/index.576999f7.css.map new file mode 100644 index 0000000..53f0957 --- /dev/null +++ b/index.576999f7.css.map @@ -0,0 +1 @@ +{"mappings":"ACAA,wCAMA,gDAMA,wFAQA,8QAmBA,oPAaA,6BAMA,gDAIA,0GAMA,wHASA,+DAIA,mDAGA,8HAUA,oDAKA,uEAKA,oFAKA,mDAIA,6HAMA,oHAMA,8CAKA,sFAQA,yHAUA,0EAKA,8IAWA,iGAKA,qDAMA,6EAKA,qIASA,gDACA","sources":["index.576999f7.css","src/util/animations/new-confetti-button.css"],"sourcesContent":["html {\n --yellow: #f9ba37;\n --primary: #8542eb;\n}\n\n@keyframes loading {\n 0% {\n cy: 10;\n }\n\n 25% {\n cy: 3;\n }\n\n 50% {\n cy: 10;\n }\n}\n\n#new-confetti-button_canvas {\n pointer-events: none;\n width: 100%;\n z-index: 10;\n position: absolute;\n}\n\n.confetti-button {\n max-width: 180px;\n color: #f4f7ff;\n cursor: pointer;\n height: 40px;\n width: 100%;\n -webkit-tap-highlight-color: transparent;\n z-index: 1;\n background: none;\n border: none;\n outline: none;\n margin: 5px 7px;\n padding: 0 10px;\n font-size: 16px;\n font-weight: 400;\n position: relative;\n overflow: hidden;\n}\n\n.confetti-button:before {\n background: var(--primary);\n content: \"\";\n height: 36px;\n width: 100%;\n border-radius: 4px;\n margin: 0 auto;\n transition: width .2s cubic-bezier(.39, 1.86, .64, 1) .3s;\n display: block;\n position: relative;\n box-shadow: inset 0 2px 5px rgba(0, 0, 0, .4);\n}\n\n.confetti-button > * {\n opacity: 0;\n}\n\n.confetti-button.ready .submitMessage {\n opacity: 1;\n}\n\n.confetti-button.ready .submitMessage svg {\n opacity: 1;\n transition: top .4s .6s, opacity .3s linear .6s;\n top: 1px;\n}\n\n.confetti-button.ready .submitMessage .button-text span {\n opacity: 1;\n transition: all .2s ease calc(var(--dr) + 600ms);\n top: 0;\n}\n\n.confetti-button.loading:before {\n width: 80%;\n transition: width .3s;\n}\n\n.confetti-button.loading .loadingMessage {\n opacity: 1;\n}\n\n.confetti-button.loading .loadingCircle {\n cy: 10;\n animation-name: loading;\n animation-duration: 1s;\n animation-iteration-count: infinite;\n}\n\n.confetti-button.complete .successMessage {\n opacity: 1;\n}\n\n.confetti-button.complete .submitMessage svg {\n transition: none;\n top: -30px;\n}\n\n.confetti-button.complete .submitMessage .button-text span {\n transition: none;\n top: -8px;\n}\n\n.confetti-button.complete .loadingMessage {\n top: 80px;\n}\n\n.confetti-button.complete .successMessage .button-text span {\n opacity: 1;\n transition: all .2s ease calc(var(--d) + 1000ms);\n left: 0;\n}\n\n.confetti-button.complete .successMessage svg {\n stroke-dashoffset: 0;\n transition: stroke-dashoffset .3s ease-in-out 1.4s;\n}\n\n.button-text span {\n opacity: 0;\n position: relative;\n}\n\n.message {\n width: 100%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.message svg {\n fill: none;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: 2px;\n margin-right: 5px;\n display: inline-block;\n}\n\n.submitMessage .button-text span {\n transition: all .2s ease var(--d);\n top: 8px;\n}\n\n.submitMessage svg {\n color: var(--yellow);\n opacity: 0;\n width: 14px;\n margin-left: -1px;\n transition: top .4s, opacity .3s linear;\n position: relative;\n top: 30px;\n}\n\n.loadingMessage {\n opacity: 0;\n transition: opacity .3s linear .3s, top .4s cubic-bezier(.22, 0, .41, -.57);\n}\n\n.loadingMessage svg {\n fill: #5c86ff;\n width: 22px;\n margin: 0;\n}\n\n.successMessage .button-text span {\n transition: all .2s ease var(--dr);\n left: 5px;\n}\n\n.successMessage svg {\n color: #5cffa1;\n stroke-dasharray: 20;\n stroke-dashoffset: 20px;\n width: 14px;\n transition: stroke-dashoffset .3s ease-in-out;\n}\n\n.loadingCircle:nth-child(2) {\n animation-delay: .1s;\n}\n\n.loadingCircle:nth-child(3) {\n animation-delay: .2s;\n}\n\n/*# sourceMappingURL=index.576999f7.css.map */\n","html {\n --yellow : #f9ba37;\n --primary: #8542eb;\n}\n\n\n@keyframes loading {\n 0% { cy: 10; }\n 25% { cy: 3; }\n 50% { cy: 10; }\n}\n\n#new-confetti-button_canvas {\n /* height: 100vh; */\n pointer-events: none;\n position: absolute;\n width: 100%;\n z-index: 10;\n}\n\n.confetti-button {\n max-width: 180px;\n background: none;\n border: none;\n color: #f4f7ff;\n cursor: pointer;\n font-size: 16px;\n font-weight: 400;\n height: 40px;\n outline: none;\n overflow: hidden;\n padding: 0 10px;\n width: 100%;\n -webkit-tap-highlight-color: transparent;\n z-index: 1;\n position: relative;\n margin: 5px 7px;\n}\n\n.confetti-button::before {\n background: var(--primary);\n border-radius: 4px;\n box-shadow: 0 2px 5px rgba(0, 0, 0, .4) inset;\n content: '';\n display: block;\n height: 36px;\n margin: 0 auto;\n position: relative;\n transition: width .2s cubic-bezier(.39,1.86,.64,1) .3s;\n width: 100%;\n}\n\n.confetti-button>*{\n opacity: 0;\n}\n\n\n/* READY STATE */\n.confetti-button.ready .submitMessage {\n opacity: 1;\n}\n\n.confetti-button.ready .submitMessage svg {\n opacity: 1;\n top: 1px;\n transition: top .4s ease 600ms, opacity .3s linear 600ms;\n}\n\n.confetti-button.ready .submitMessage .button-text span {\n top: 0;\n opacity: 1;\n transition: all .2s ease calc(var(--dr) + 600ms);\n}\n/* END READY STATE */\n\n/* LOADING STATE */\n\n.confetti-button.loading::before {\n transition: width .3s ease;\n width: 80%;\n}\n.confetti-button.loading .loadingMessage {\n opacity: 1;\n}\n.confetti-button.loading .loadingCircle {\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-name: loading;\n cy: 10;\n}\n/* END LOADING STATE */\n\n\n/* COMPLETE STATE */\n.confetti-button.complete .successMessage {\n opacity: 1;\n}\n/*END COMPLETE STATE*/\n\n.confetti-button.complete .submitMessage svg {\n top: -30px;\n transition: none;\n}\n\n.confetti-button.complete .submitMessage .button-text span {\n top: -8px;\n transition: none;\n}\n\n.confetti-button.complete .loadingMessage {\n top: 80px;\n}\n\n.confetti-button.complete .successMessage .button-text span {\n left: 0;\n opacity: 1;\n transition: all .2s ease calc(var(--d) + 1000ms);\n}\n\n.confetti-button.complete .successMessage svg { \n stroke-dashoffset: 0;\n transition: stroke-dashoffset .3s ease-in-out 1.4s;\n}\n\n\n.button-text span {\n opacity: 0;\n position: relative;\n}\n\n.message {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n}\n\n.message svg {\n display: inline-block;\n fill: none;\n margin-right: 5px;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: 2;\n}\n\n\n.submitMessage .button-text span {\n top: 8px;\n transition: all .2s ease var(--d);\n}\n\n.submitMessage svg {\n color: var(--yellow);\n margin-left: -1px;\n opacity: 0;\n position: relative;\n top: 30px;\n transition: top .4s ease, opacity .3s linear;\n width: 14px;\n}\n\n\n.loadingMessage {\n opacity: 0;\n transition: opacity .3s linear .3s, top .4s cubic-bezier(.22,0,.41,-0.57);\n}\n\n.loadingMessage svg {\n fill: #5c86ff;\n margin: 0;\n width: 22px;\n}\n\n.successMessage .button-text span {\n left: 5px;\n transition: all .2s ease var(--dr);\n}\n\n.successMessage svg {\n color: #5cffa1;\n stroke-dasharray: 20;\n stroke-dashoffset: 20;\n transition: stroke-dashoffset .3s ease-in-out;\n width: 14px;\n}\n\n\n.loadingCircle:nth-child(2) { animation-delay: .1s }\n.loadingCircle:nth-child(3) { animation-delay: .2s }"],"names":[],"version":3,"file":"index.576999f7.css.map"} \ No newline at end of file diff --git a/index.9b0516fd.js b/index.9b0516fd.js new file mode 100644 index 0000000..a89bf87 --- /dev/null +++ b/index.9b0516fd.js @@ -0,0 +1,47 @@ +(function(){var $parcel$global="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function $parcel$export(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e}var $parcel$modules={},$parcel$inits={},parcelRequire=$parcel$global.parcelRequired7b7;null==parcelRequire&&(parcelRequire=function(e){if(e in $parcel$modules)return $parcel$modules[e].exports;if(e in $parcel$inits){var t=$parcel$inits[e];delete $parcel$inits[e];var r={id:e,exports:{}};return $parcel$modules[e]=r,t.call(r.exports,r,r.exports),r.exports}var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n},parcelRequire.register=function(e,t){$parcel$inits[e]=t},$parcel$global.parcelRequired7b7=parcelRequire),parcelRequire.register("cLgDC",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.MergeKeyStore=e.exports.BrowserLocalStorageKeyStore=e.exports.InMemoryKeyStore=e.exports.KeyStore=void 0;var r=parcelRequire("5locV");Object.defineProperty(e.exports,"KeyStore",{enumerable:!0,get:function(){return r.KeyStore}});var n=parcelRequire("a2Tq3");Object.defineProperty(e.exports,"InMemoryKeyStore",{enumerable:!0,get:function(){return n.InMemoryKeyStore}});var a=parcelRequire("6fIhg");Object.defineProperty(e.exports,"BrowserLocalStorageKeyStore",{enumerable:!0,get:function(){return a.BrowserLocalStorageKeyStore}});var o=parcelRequire("jmjoH");Object.defineProperty(e.exports,"MergeKeyStore",{enumerable:!0,get:function(){return o.MergeKeyStore}})})),parcelRequire.register("5locV",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.KeyStore=void 0;e.exports.KeyStore=class{}})),parcelRequire.register("a2Tq3",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.InMemoryKeyStore=void 0;var r=parcelRequire("5locV"),n=parcelRequire("7v7or");class a extends r.KeyStore{async setKey(e,t,r){this.keys[`${t}:${e}`]=r.toString()}async getKey(e,t){const r=this.keys[`${t}:${e}`];return r?n.KeyPair.fromString(r):null}async removeKey(e,t){delete this.keys[`${t}:${e}`]}async clear(){this.keys={}}async getNetworks(){const e=new Set;return Object.keys(this.keys).forEach((t=>{const r=t.split(":");e.add(r[1])})),Array.from(e.values())}async getAccounts(e){const t=new Array;return Object.keys(this.keys).forEach((r=>{const n=r.split(":");n[n.length-1]===e&&t.push(n.slice(0,n.length-1).join(":"))})),t}toString(){return"InMemoryKeyStore"}constructor(){super(),this.keys={}}}e.exports.InMemoryKeyStore=a})),parcelRequire.register("7v7or",(function(e,t){"use strict";var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.KeyPairEd25519=e.exports.KeyPair=e.exports.PublicKey=e.exports.KeyType=void 0;const n=r(parcelRequire("eRF6j"));var a,o,i=parcelRequire("lKyV1"),s=parcelRequire("35nut");function c(e){if("ed25519"===e.toLowerCase())return a.ED25519;throw new Error(`Unknown key type ${e}`)}(o=a=e.exports.KeyType||(e.exports.KeyType={}))[o.ED25519=0]="ED25519";class l extends s.Assignable{static from(e){return"string"==typeof e?l.fromString(e):e}static fromString(e){const t=e.split(":");if(1===t.length)return new l({keyType:a.ED25519,data:i.base_decode(t[0])});if(2===t.length)return new l({keyType:c(t[0]),data:i.base_decode(t[1])});throw new Error("Invalid encoded key format, must be :")}toString(){return`${function(e){if(e===a.ED25519)return"ed25519";throw new Error(`Unknown key type ${e}`)}(this.keyType)}:${i.base_encode(this.data)}`}}e.exports.PublicKey=l;class u{static fromRandom(e){if("ED25519"===e.toUpperCase())return f.fromRandom();throw new Error(`Unknown curve ${e}`)}static fromString(e){const t=e.split(":");if(1===t.length)return new f(t[0]);if(2===t.length){if("ED25519"===t[0].toUpperCase())return new f(t[1]);throw new Error(`Unknown curve: ${t[0]}`)}throw new Error("Invalid encoded key format, must be :")}}e.exports.KeyPair=u;class f extends u{static fromRandom(){const e=n.default.sign.keyPair();return new f(i.base_encode(e.secretKey))}sign(e){return{signature:n.default.sign.detached(e,i.base_decode(this.secretKey)),publicKey:this.publicKey}}verify(e,t){return n.default.sign.detached.verify(e,t,this.publicKey.data)}toString(){return`ed25519:${this.secretKey}`}getPublicKey(){return this.publicKey}constructor(e){super();const t=n.default.sign.keyPair.fromSecretKey(i.base_decode(e));this.publicKey=new l({keyType:a.ED25519,data:t.publicKey}),this.secretKey=e}}e.exports.KeyPairEd25519=f})),parcelRequire.register("eRF6j",(function(e,t){!function(e){"use strict";var t=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function p(e,t,r,n,a){var o,i=0;for(o=0;o>>8)-1}function b(e,t,r,n){return p(e,t,r,n,16)}function $(e,t,r,n){return p(e,t,r,n,32)}function g(e,t,r,n){!function(e,t,r,n){for(var a,o=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,i=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,s=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,c=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,l=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,u=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,f=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,d=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,h=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,b=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,$=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,g=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,m=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,y=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,v=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,w=o,x=i,_=s,k=c,S=l,E=u,A=f,M=d,R=h,T=p,C=b,I=$,N=g,L=m,q=y,O=v,P=0;P<20;P+=2)w^=(a=(N^=(a=(R^=(a=(S^=(a=w+N|0)<<7|a>>>25)+w|0)<<9|a>>>23)+S|0)<<13|a>>>19)+R|0)<<18|a>>>14,E^=(a=(x^=(a=(L^=(a=(T^=(a=E+x|0)<<7|a>>>25)+E|0)<<9|a>>>23)+T|0)<<13|a>>>19)+L|0)<<18|a>>>14,C^=(a=(A^=(a=(_^=(a=(q^=(a=C+A|0)<<7|a>>>25)+C|0)<<9|a>>>23)+q|0)<<13|a>>>19)+_|0)<<18|a>>>14,O^=(a=(I^=(a=(M^=(a=(k^=(a=O+I|0)<<7|a>>>25)+O|0)<<9|a>>>23)+k|0)<<13|a>>>19)+M|0)<<18|a>>>14,w^=(a=(k^=(a=(_^=(a=(x^=(a=w+k|0)<<7|a>>>25)+w|0)<<9|a>>>23)+x|0)<<13|a>>>19)+_|0)<<18|a>>>14,E^=(a=(S^=(a=(M^=(a=(A^=(a=E+S|0)<<7|a>>>25)+E|0)<<9|a>>>23)+A|0)<<13|a>>>19)+M|0)<<18|a>>>14,C^=(a=(T^=(a=(R^=(a=(I^=(a=C+T|0)<<7|a>>>25)+C|0)<<9|a>>>23)+I|0)<<13|a>>>19)+R|0)<<18|a>>>14,O^=(a=(q^=(a=(L^=(a=(N^=(a=O+q|0)<<7|a>>>25)+O|0)<<9|a>>>23)+N|0)<<13|a>>>19)+L|0)<<18|a>>>14;w=w+o|0,x=x+i|0,_=_+s|0,k=k+c|0,S=S+l|0,E=E+u|0,A=A+f|0,M=M+d|0,R=R+h|0,T=T+p|0,C=C+b|0,I=I+$|0,N=N+g|0,L=L+m|0,q=q+y|0,O=O+v|0,e[0]=w>>>0&255,e[1]=w>>>8&255,e[2]=w>>>16&255,e[3]=w>>>24&255,e[4]=x>>>0&255,e[5]=x>>>8&255,e[6]=x>>>16&255,e[7]=x>>>24&255,e[8]=_>>>0&255,e[9]=_>>>8&255,e[10]=_>>>16&255,e[11]=_>>>24&255,e[12]=k>>>0&255,e[13]=k>>>8&255,e[14]=k>>>16&255,e[15]=k>>>24&255,e[16]=S>>>0&255,e[17]=S>>>8&255,e[18]=S>>>16&255,e[19]=S>>>24&255,e[20]=E>>>0&255,e[21]=E>>>8&255,e[22]=E>>>16&255,e[23]=E>>>24&255,e[24]=A>>>0&255,e[25]=A>>>8&255,e[26]=A>>>16&255,e[27]=A>>>24&255,e[28]=M>>>0&255,e[29]=M>>>8&255,e[30]=M>>>16&255,e[31]=M>>>24&255,e[32]=R>>>0&255,e[33]=R>>>8&255,e[34]=R>>>16&255,e[35]=R>>>24&255,e[36]=T>>>0&255,e[37]=T>>>8&255,e[38]=T>>>16&255,e[39]=T>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=I>>>0&255,e[45]=I>>>8&255,e[46]=I>>>16&255,e[47]=I>>>24&255,e[48]=N>>>0&255,e[49]=N>>>8&255,e[50]=N>>>16&255,e[51]=N>>>24&255,e[52]=L>>>0&255,e[53]=L>>>8&255,e[54]=L>>>16&255,e[55]=L>>>24&255,e[56]=q>>>0&255,e[57]=q>>>8&255,e[58]=q>>>16&255,e[59]=q>>>24&255,e[60]=O>>>0&255,e[61]=O>>>8&255,e[62]=O>>>16&255,e[63]=O>>>24&255}(e,t,r,n)}function m(e,t,r,n){!function(e,t,r,n){for(var a,o=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,i=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,s=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,c=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,l=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,u=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,f=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,d=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,h=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,b=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,$=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,g=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,m=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,y=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,v=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,w=0;w<20;w+=2)o^=(a=(g^=(a=(h^=(a=(l^=(a=o+g|0)<<7|a>>>25)+o|0)<<9|a>>>23)+l|0)<<13|a>>>19)+h|0)<<18|a>>>14,u^=(a=(i^=(a=(m^=(a=(p^=(a=u+i|0)<<7|a>>>25)+u|0)<<9|a>>>23)+p|0)<<13|a>>>19)+m|0)<<18|a>>>14,b^=(a=(f^=(a=(s^=(a=(y^=(a=b+f|0)<<7|a>>>25)+b|0)<<9|a>>>23)+y|0)<<13|a>>>19)+s|0)<<18|a>>>14,v^=(a=($^=(a=(d^=(a=(c^=(a=v+$|0)<<7|a>>>25)+v|0)<<9|a>>>23)+c|0)<<13|a>>>19)+d|0)<<18|a>>>14,o^=(a=(c^=(a=(s^=(a=(i^=(a=o+c|0)<<7|a>>>25)+o|0)<<9|a>>>23)+i|0)<<13|a>>>19)+s|0)<<18|a>>>14,u^=(a=(l^=(a=(d^=(a=(f^=(a=u+l|0)<<7|a>>>25)+u|0)<<9|a>>>23)+f|0)<<13|a>>>19)+d|0)<<18|a>>>14,b^=(a=(p^=(a=(h^=(a=($^=(a=b+p|0)<<7|a>>>25)+b|0)<<9|a>>>23)+$|0)<<13|a>>>19)+h|0)<<18|a>>>14,v^=(a=(y^=(a=(m^=(a=(g^=(a=v+y|0)<<7|a>>>25)+v|0)<<9|a>>>23)+g|0)<<13|a>>>19)+m|0)<<18|a>>>14;e[0]=o>>>0&255,e[1]=o>>>8&255,e[2]=o>>>16&255,e[3]=o>>>24&255,e[4]=u>>>0&255,e[5]=u>>>8&255,e[6]=u>>>16&255,e[7]=u>>>24&255,e[8]=b>>>0&255,e[9]=b>>>8&255,e[10]=b>>>16&255,e[11]=b>>>24&255,e[12]=v>>>0&255,e[13]=v>>>8&255,e[14]=v>>>16&255,e[15]=v>>>24&255,e[16]=f>>>0&255,e[17]=f>>>8&255,e[18]=f>>>16&255,e[19]=f>>>24&255,e[20]=d>>>0&255,e[21]=d>>>8&255,e[22]=d>>>16&255,e[23]=d>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,t,r,n)}var y=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function v(e,t,r,n,a,o,i){var s,c,l=new Uint8Array(16),u=new Uint8Array(64);for(c=0;c<16;c++)l[c]=0;for(c=0;c<8;c++)l[c]=o[c];for(;a>=64;){for(g(u,l,i,y),c=0;c<64;c++)e[t+c]=r[n+c]^u[c];for(s=1,c=8;c<16;c++)s=s+(255&l[c])|0,l[c]=255&s,s>>>=8;a-=64,t+=64,n+=64}if(a>0)for(g(u,l,i,y),c=0;c=64;){for(g(c,s,a,y),i=0;i<64;i++)e[t+i]=c[i];for(o=1,i=8;i<16;i++)o=o+(255&s[i])|0,s[i]=255&o,o>>>=8;r-=64,t+=64}if(r>0)for(g(c,s,a,y),i=0;i>>13|r<<3),n=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(r>>>10|n<<6),a=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(n>>>7|a<<9),o=255&e[8]|(255&e[9])<<8,this.r[4]=255&(a>>>4|o<<12),this.r[5]=o>>>1&8190,i=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(o>>>14|i<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(i>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function S(e,t,r,n,a,o){var i=new k(o);return i.update(r,n,a),i.finish(e,t),0}function E(e,t,r,n,a,o){var i=new Uint8Array(16);return S(i,0,r,n,a,o),b(e,t,i,0)}function A(e,t,r,n,a){var o;if(r<32)return-1;for(_(e,0,t,0,r,n,a),S(e,16,e,32,r-32,e),o=0;o<16;o++)e[o]=0;return 0}function M(e,t,r,n,a){var o,i=new Uint8Array(32);if(r<32)return-1;if(x(i,0,32,n,a),0!==E(t,16,t,32,r-32,i))return-1;for(_(e,0,t,0,r,n,a),o=0;o<32;o++)e[o]=0;return 0}function R(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function T(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function C(e,t,r){for(var n,a=~(r-1),o=0;o<16;o++)n=a&(e[o]^t[o]),e[o]^=n,t[o]^=n}function I(e,r){var n,a,o,i=t(),s=t();for(n=0;n<16;n++)s[n]=r[n];for(T(s),T(s),T(s),a=0;a<2;a++){for(i[0]=s[0]-65517,n=1;n<15;n++)i[n]=s[n]-65535-(i[n-1]>>16&1),i[n-1]&=65535;i[15]=s[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,C(s,i,1-o)}for(n=0;n<16;n++)e[2*n]=255&s[n],e[2*n+1]=s[n]>>8}function N(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return I(r,e),I(n,t),$(r,0,n,0)}function L(e){var t=new Uint8Array(32);return I(t,e),1&t[0]}function q(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function O(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function P(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function D(e,t,r){var n,a,o=0,i=0,s=0,c=0,l=0,u=0,f=0,d=0,h=0,p=0,b=0,$=0,g=0,m=0,y=0,v=0,w=0,x=0,_=0,k=0,S=0,E=0,A=0,M=0,R=0,T=0,C=0,I=0,N=0,L=0,q=0,O=r[0],P=r[1],D=r[2],B=r[3],U=r[4],F=r[5],j=r[6],H=r[7],K=r[8],W=r[9],V=r[10],X=r[11],z=r[12],G=r[13],J=r[14],Y=r[15];o+=(n=t[0])*O,i+=n*P,s+=n*D,c+=n*B,l+=n*U,u+=n*F,f+=n*j,d+=n*H,h+=n*K,p+=n*W,b+=n*V,$+=n*X,g+=n*z,m+=n*G,y+=n*J,v+=n*Y,i+=(n=t[1])*O,s+=n*P,c+=n*D,l+=n*B,u+=n*U,f+=n*F,d+=n*j,h+=n*H,p+=n*K,b+=n*W,$+=n*V,g+=n*X,m+=n*z,y+=n*G,v+=n*J,w+=n*Y,s+=(n=t[2])*O,c+=n*P,l+=n*D,u+=n*B,f+=n*U,d+=n*F,h+=n*j,p+=n*H,b+=n*K,$+=n*W,g+=n*V,m+=n*X,y+=n*z,v+=n*G,w+=n*J,x+=n*Y,c+=(n=t[3])*O,l+=n*P,u+=n*D,f+=n*B,d+=n*U,h+=n*F,p+=n*j,b+=n*H,$+=n*K,g+=n*W,m+=n*V,y+=n*X,v+=n*z,w+=n*G,x+=n*J,_+=n*Y,l+=(n=t[4])*O,u+=n*P,f+=n*D,d+=n*B,h+=n*U,p+=n*F,b+=n*j,$+=n*H,g+=n*K,m+=n*W,y+=n*V,v+=n*X,w+=n*z,x+=n*G,_+=n*J,k+=n*Y,u+=(n=t[5])*O,f+=n*P,d+=n*D,h+=n*B,p+=n*U,b+=n*F,$+=n*j,g+=n*H,m+=n*K,y+=n*W,v+=n*V,w+=n*X,x+=n*z,_+=n*G,k+=n*J,S+=n*Y,f+=(n=t[6])*O,d+=n*P,h+=n*D,p+=n*B,b+=n*U,$+=n*F,g+=n*j,m+=n*H,y+=n*K,v+=n*W,w+=n*V,x+=n*X,_+=n*z,k+=n*G,S+=n*J,E+=n*Y,d+=(n=t[7])*O,h+=n*P,p+=n*D,b+=n*B,$+=n*U,g+=n*F,m+=n*j,y+=n*H,v+=n*K,w+=n*W,x+=n*V,_+=n*X,k+=n*z,S+=n*G,E+=n*J,A+=n*Y,h+=(n=t[8])*O,p+=n*P,b+=n*D,$+=n*B,g+=n*U,m+=n*F,y+=n*j,v+=n*H,w+=n*K,x+=n*W,_+=n*V,k+=n*X,S+=n*z,E+=n*G,A+=n*J,M+=n*Y,p+=(n=t[9])*O,b+=n*P,$+=n*D,g+=n*B,m+=n*U,y+=n*F,v+=n*j,w+=n*H,x+=n*K,_+=n*W,k+=n*V,S+=n*X,E+=n*z,A+=n*G,M+=n*J,R+=n*Y,b+=(n=t[10])*O,$+=n*P,g+=n*D,m+=n*B,y+=n*U,v+=n*F,w+=n*j,x+=n*H,_+=n*K,k+=n*W,S+=n*V,E+=n*X,A+=n*z,M+=n*G,R+=n*J,T+=n*Y,$+=(n=t[11])*O,g+=n*P,m+=n*D,y+=n*B,v+=n*U,w+=n*F,x+=n*j,_+=n*H,k+=n*K,S+=n*W,E+=n*V,A+=n*X,M+=n*z,R+=n*G,T+=n*J,C+=n*Y,g+=(n=t[12])*O,m+=n*P,y+=n*D,v+=n*B,w+=n*U,x+=n*F,_+=n*j,k+=n*H,S+=n*K,E+=n*W,A+=n*V,M+=n*X,R+=n*z,T+=n*G,C+=n*J,I+=n*Y,m+=(n=t[13])*O,y+=n*P,v+=n*D,w+=n*B,x+=n*U,_+=n*F,k+=n*j,S+=n*H,E+=n*K,A+=n*W,M+=n*V,R+=n*X,T+=n*z,C+=n*G,I+=n*J,N+=n*Y,y+=(n=t[14])*O,v+=n*P,w+=n*D,x+=n*B,_+=n*U,k+=n*F,S+=n*j,E+=n*H,A+=n*K,M+=n*W,R+=n*V,T+=n*X,C+=n*z,I+=n*G,N+=n*J,L+=n*Y,v+=(n=t[15])*O,i+=38*(x+=n*D),s+=38*(_+=n*B),c+=38*(k+=n*U),l+=38*(S+=n*F),u+=38*(E+=n*j),f+=38*(A+=n*H),d+=38*(M+=n*K),h+=38*(R+=n*W),p+=38*(T+=n*V),b+=38*(C+=n*X),$+=38*(I+=n*z),g+=38*(N+=n*G),m+=38*(L+=n*J),y+=38*(q+=n*Y),o=(n=(o+=38*(w+=n*P))+(a=1)+65535)-65536*(a=Math.floor(n/65536)),i=(n=i+a+65535)-65536*(a=Math.floor(n/65536)),s=(n=s+a+65535)-65536*(a=Math.floor(n/65536)),c=(n=c+a+65535)-65536*(a=Math.floor(n/65536)),l=(n=l+a+65535)-65536*(a=Math.floor(n/65536)),u=(n=u+a+65535)-65536*(a=Math.floor(n/65536)),f=(n=f+a+65535)-65536*(a=Math.floor(n/65536)),d=(n=d+a+65535)-65536*(a=Math.floor(n/65536)),h=(n=h+a+65535)-65536*(a=Math.floor(n/65536)),p=(n=p+a+65535)-65536*(a=Math.floor(n/65536)),b=(n=b+a+65535)-65536*(a=Math.floor(n/65536)),$=(n=$+a+65535)-65536*(a=Math.floor(n/65536)),g=(n=g+a+65535)-65536*(a=Math.floor(n/65536)),m=(n=m+a+65535)-65536*(a=Math.floor(n/65536)),y=(n=y+a+65535)-65536*(a=Math.floor(n/65536)),v=(n=v+a+65535)-65536*(a=Math.floor(n/65536)),o=(n=(o+=a-1+37*(a-1))+(a=1)+65535)-65536*(a=Math.floor(n/65536)),i=(n=i+a+65535)-65536*(a=Math.floor(n/65536)),s=(n=s+a+65535)-65536*(a=Math.floor(n/65536)),c=(n=c+a+65535)-65536*(a=Math.floor(n/65536)),l=(n=l+a+65535)-65536*(a=Math.floor(n/65536)),u=(n=u+a+65535)-65536*(a=Math.floor(n/65536)),f=(n=f+a+65535)-65536*(a=Math.floor(n/65536)),d=(n=d+a+65535)-65536*(a=Math.floor(n/65536)),h=(n=h+a+65535)-65536*(a=Math.floor(n/65536)),p=(n=p+a+65535)-65536*(a=Math.floor(n/65536)),b=(n=b+a+65535)-65536*(a=Math.floor(n/65536)),$=(n=$+a+65535)-65536*(a=Math.floor(n/65536)),g=(n=g+a+65535)-65536*(a=Math.floor(n/65536)),m=(n=m+a+65535)-65536*(a=Math.floor(n/65536)),y=(n=y+a+65535)-65536*(a=Math.floor(n/65536)),v=(n=v+a+65535)-65536*(a=Math.floor(n/65536)),o+=a-1+37*(a-1),e[0]=o,e[1]=i,e[2]=s,e[3]=c,e[4]=l,e[5]=u,e[6]=f,e[7]=d,e[8]=h,e[9]=p,e[10]=b,e[11]=$,e[12]=g,e[13]=m,e[14]=y,e[15]=v}function B(e,t){D(e,t,t)}function U(e,r){var n,a=t();for(n=0;n<16;n++)a[n]=r[n];for(n=253;n>=0;n--)B(a,a),2!==n&&4!==n&&D(a,a,r);for(n=0;n<16;n++)e[n]=a[n]}function F(e,r){var n,a=t();for(n=0;n<16;n++)a[n]=r[n];for(n=250;n>=0;n--)B(a,a),1!==n&&D(a,a,r);for(n=0;n<16;n++)e[n]=a[n]}function j(e,r,n){var a,o,i=new Uint8Array(32),c=new Float64Array(80),l=t(),u=t(),f=t(),d=t(),h=t(),p=t();for(o=0;o<31;o++)i[o]=r[o];for(i[31]=127&r[31]|64,i[0]&=248,q(c,n),o=0;o<16;o++)u[o]=c[o],d[o]=l[o]=f[o]=0;for(l[0]=d[0]=1,o=254;o>=0;--o)C(l,u,a=i[o>>>3]>>>(7&o)&1),C(f,d,a),O(h,l,f),P(l,l,f),O(f,u,d),P(u,u,d),B(d,h),B(p,l),D(l,f,l),D(f,u,h),O(h,l,f),P(l,l,f),B(u,l),P(f,d,p),D(l,f,s),O(l,l,d),D(f,f,l),D(l,d,p),D(d,u,c),B(u,h),C(l,u,a),C(f,d,a);for(o=0;o<16;o++)c[o+16]=l[o],c[o+32]=f[o],c[o+48]=u[o],c[o+64]=d[o];var b=c.subarray(32),$=c.subarray(16);return U(b,b),D($,$,b),I(e,$),0}function H(e,t){return j(e,t,a)}function K(e,t){return r(t,32),H(e,t)}function W(e,t,r){var a=new Uint8Array(32);return j(a,r,t),m(e,n,a,y)}k.prototype.blocks=function(e,t,r){for(var n,a,o,i,s,c,l,u,f,d,h,p,b,$,g,m,y,v,w,x=this.fin?0:2048,_=this.h[0],k=this.h[1],S=this.h[2],E=this.h[3],A=this.h[4],M=this.h[5],R=this.h[6],T=this.h[7],C=this.h[8],I=this.h[9],N=this.r[0],L=this.r[1],q=this.r[2],O=this.r[3],P=this.r[4],D=this.r[5],B=this.r[6],U=this.r[7],F=this.r[8],j=this.r[9];r>=16;)d=f=0,d+=(_+=8191&(n=255&e[t+0]|(255&e[t+1])<<8))*N,d+=(k+=8191&(n>>>13|(a=255&e[t+2]|(255&e[t+3])<<8)<<3))*(5*j),d+=(S+=8191&(a>>>10|(o=255&e[t+4]|(255&e[t+5])<<8)<<6))*(5*F),d+=(E+=8191&(o>>>7|(i=255&e[t+6]|(255&e[t+7])<<8)<<9))*(5*U),f=(d+=(A+=8191&(i>>>4|(s=255&e[t+8]|(255&e[t+9])<<8)<<12))*(5*B))>>>13,d&=8191,d+=(M+=s>>>1&8191)*(5*D),d+=(R+=8191&(s>>>14|(c=255&e[t+10]|(255&e[t+11])<<8)<<2))*(5*P),d+=(T+=8191&(c>>>11|(l=255&e[t+12]|(255&e[t+13])<<8)<<5))*(5*O),d+=(C+=8191&(l>>>8|(u=255&e[t+14]|(255&e[t+15])<<8)<<8))*(5*q),h=f+=(d+=(I+=u>>>5|x)*(5*L))>>>13,h+=_*L,h+=k*N,h+=S*(5*j),h+=E*(5*F),f=(h+=A*(5*U))>>>13,h&=8191,h+=M*(5*B),h+=R*(5*D),h+=T*(5*P),h+=C*(5*O),f+=(h+=I*(5*q))>>>13,h&=8191,p=f,p+=_*q,p+=k*L,p+=S*N,p+=E*(5*j),f=(p+=A*(5*F))>>>13,p&=8191,p+=M*(5*U),p+=R*(5*B),p+=T*(5*D),p+=C*(5*P),b=f+=(p+=I*(5*O))>>>13,b+=_*O,b+=k*q,b+=S*L,b+=E*N,f=(b+=A*(5*j))>>>13,b&=8191,b+=M*(5*F),b+=R*(5*U),b+=T*(5*B),b+=C*(5*D),$=f+=(b+=I*(5*P))>>>13,$+=_*P,$+=k*O,$+=S*q,$+=E*L,f=($+=A*N)>>>13,$&=8191,$+=M*(5*j),$+=R*(5*F),$+=T*(5*U),$+=C*(5*B),g=f+=($+=I*(5*D))>>>13,g+=_*D,g+=k*P,g+=S*O,g+=E*q,f=(g+=A*L)>>>13,g&=8191,g+=M*N,g+=R*(5*j),g+=T*(5*F),g+=C*(5*U),m=f+=(g+=I*(5*B))>>>13,m+=_*B,m+=k*D,m+=S*P,m+=E*O,f=(m+=A*q)>>>13,m&=8191,m+=M*L,m+=R*N,m+=T*(5*j),m+=C*(5*F),y=f+=(m+=I*(5*U))>>>13,y+=_*U,y+=k*B,y+=S*D,y+=E*P,f=(y+=A*O)>>>13,y&=8191,y+=M*q,y+=R*L,y+=T*N,y+=C*(5*j),v=f+=(y+=I*(5*F))>>>13,v+=_*F,v+=k*U,v+=S*B,v+=E*D,f=(v+=A*P)>>>13,v&=8191,v+=M*O,v+=R*q,v+=T*L,v+=C*N,w=f+=(v+=I*(5*j))>>>13,w+=_*j,w+=k*F,w+=S*U,w+=E*B,f=(w+=A*D)>>>13,w&=8191,w+=M*P,w+=R*O,w+=T*q,w+=C*L,_=d=8191&(f=(f=((f+=(w+=I*N)>>>13)<<2)+f|0)+(d&=8191)|0),k=h+=f>>>=13,S=p&=8191,E=b&=8191,A=$&=8191,M=g&=8191,R=m&=8191,T=y&=8191,C=v&=8191,I=w&=8191,t+=16,r-=16;this.h[0]=_,this.h[1]=k,this.h[2]=S,this.h[3]=E,this.h[4]=A,this.h[5]=M,this.h[6]=R,this.h[7]=T,this.h[8]=C,this.h[9]=I},k.prototype.finish=function(e,t){var r,n,a,o,i=new Uint16Array(10);if(this.leftover){for(o=this.leftover,this.buffer[o++]=1;o<16;o++)this.buffer[o]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(r=this.h[1]>>>13,this.h[1]&=8191,o=2;o<10;o++)this.h[o]+=r,r=this.h[o]>>>13,this.h[o]&=8191;for(this.h[0]+=5*r,r=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=r,r=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=r,i[0]=this.h[0]+5,r=i[0]>>>13,i[0]&=8191,o=1;o<10;o++)i[o]=this.h[o]+r,r=i[o]>>>13,i[o]&=8191;for(i[9]-=8192,n=(1^r)-1,o=0;o<10;o++)i[o]&=n;for(n=~n,o=0;o<10;o++)this.h[o]=this.h[o]&n|i[o];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),a=this.h[0]+this.pad[0],this.h[0]=65535&a,o=1;o<8;o++)a=(this.h[o]+this.pad[o]|0)+(a>>>16)|0,this.h[o]=65535&a;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},k.prototype.update=function(e,t,r){var n,a;if(this.leftover){for((a=16-this.leftover)>r&&(a=r),n=0;n=16&&(a=r-r%16,this.blocks(e,t,a),t+=a,r-=a),r){for(n=0;n=128;){for(x=0;x<16;x++)_=8*x+G,T[x]=r[_+0]<<24|r[_+1]<<16|r[_+2]<<8|r[_+3],C[x]=r[_+4]<<24|r[_+5]<<16|r[_+6]<<8|r[_+7];for(x=0;x<80;x++)if(a=I,o=N,i=L,s=q,c=O,l=P,u=D,B,d=U,h=F,p=j,b=H,$=K,g=W,m=V,X,E=65535&(S=X),A=S>>>16,M=65535&(k=B),R=k>>>16,E+=65535&(S=(K>>>14|O<<18)^(K>>>18|O<<14)^(O>>>9|K<<23)),A+=S>>>16,M+=65535&(k=(O>>>14|K<<18)^(O>>>18|K<<14)^(K>>>9|O<<23)),R+=k>>>16,E+=65535&(S=K&W^~K&V),A+=S>>>16,M+=65535&(k=O&P^~O&D),R+=k>>>16,E+=65535&(S=z[2*x+1]),A+=S>>>16,M+=65535&(k=z[2*x]),R+=k>>>16,k=T[x%16],A+=(S=C[x%16])>>>16,M+=65535&k,R+=k>>>16,M+=(A+=(E+=65535&S)>>>16)>>>16,E=65535&(S=w=65535&E|A<<16),A=S>>>16,M=65535&(k=v=65535&M|(R+=M>>>16)<<16),R=k>>>16,E+=65535&(S=(U>>>28|I<<4)^(I>>>2|U<<30)^(I>>>7|U<<25)),A+=S>>>16,M+=65535&(k=(I>>>28|U<<4)^(U>>>2|I<<30)^(U>>>7|I<<25)),R+=k>>>16,A+=(S=U&F^U&j^F&j)>>>16,M+=65535&(k=I&N^I&L^N&L),R+=k>>>16,f=65535&(M+=(A+=(E+=65535&S)>>>16)>>>16)|(R+=M>>>16)<<16,y=65535&E|A<<16,E=65535&(S=b),A=S>>>16,M=65535&(k=s),R=k>>>16,A+=(S=w)>>>16,M+=65535&(k=v),R+=k>>>16,N=a,L=o,q=i,O=s=65535&(M+=(A+=(E+=65535&S)>>>16)>>>16)|(R+=M>>>16)<<16,P=c,D=l,B=u,I=f,F=d,j=h,H=p,K=b=65535&E|A<<16,W=$,V=g,X=m,U=y,x%16==15)for(_=0;_<16;_++)k=T[_],E=65535&(S=C[_]),A=S>>>16,M=65535&k,R=k>>>16,k=T[(_+9)%16],E+=65535&(S=C[(_+9)%16]),A+=S>>>16,M+=65535&k,R+=k>>>16,v=T[(_+1)%16],E+=65535&(S=((w=C[(_+1)%16])>>>1|v<<31)^(w>>>8|v<<24)^(w>>>7|v<<25)),A+=S>>>16,M+=65535&(k=(v>>>1|w<<31)^(v>>>8|w<<24)^v>>>7),R+=k>>>16,v=T[(_+14)%16],A+=(S=((w=C[(_+14)%16])>>>19|v<<13)^(v>>>29|w<<3)^(w>>>6|v<<26))>>>16,M+=65535&(k=(v>>>19|w<<13)^(w>>>29|v<<3)^v>>>6),R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,T[_]=65535&M|R<<16,C[_]=65535&E|A<<16;E=65535&(S=U),A=S>>>16,M=65535&(k=I),R=k>>>16,k=e[0],A+=(S=t[0])>>>16,M+=65535&k,R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[0]=I=65535&M|R<<16,t[0]=U=65535&E|A<<16,E=65535&(S=F),A=S>>>16,M=65535&(k=N),R=k>>>16,k=e[1],A+=(S=t[1])>>>16,M+=65535&k,R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[1]=N=65535&M|R<<16,t[1]=F=65535&E|A<<16,E=65535&(S=j),A=S>>>16,M=65535&(k=L),R=k>>>16,k=e[2],A+=(S=t[2])>>>16,M+=65535&k,R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[2]=L=65535&M|R<<16,t[2]=j=65535&E|A<<16,E=65535&(S=H),A=S>>>16,M=65535&(k=q),R=k>>>16,k=e[3],A+=(S=t[3])>>>16,M+=65535&k,R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[3]=q=65535&M|R<<16,t[3]=H=65535&E|A<<16,E=65535&(S=K),A=S>>>16,M=65535&(k=O),R=k>>>16,k=e[4],A+=(S=t[4])>>>16,M+=65535&k,R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[4]=O=65535&M|R<<16,t[4]=K=65535&E|A<<16,E=65535&(S=W),A=S>>>16,M=65535&(k=P),R=k>>>16,k=e[5],A+=(S=t[5])>>>16,M+=65535&k,R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[5]=P=65535&M|R<<16,t[5]=W=65535&E|A<<16,E=65535&(S=V),A=S>>>16,M=65535&(k=D),R=k>>>16,k=e[6],A+=(S=t[6])>>>16,M+=65535&k,R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[6]=D=65535&M|R<<16,t[6]=V=65535&E|A<<16,E=65535&(S=X),A=S>>>16,M=65535&(k=B),R=k>>>16,k=e[7],A+=(S=t[7])>>>16,M+=65535&k,R+=k>>>16,R+=(M+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[7]=B=65535&M|R<<16,t[7]=X=65535&E|A<<16,G+=128,n-=128}return n}function J(e,t,r){var n,a=new Int32Array(8),o=new Int32Array(8),i=new Uint8Array(256),s=r;for(a[0]=1779033703,a[1]=3144134277,a[2]=1013904242,a[3]=2773480762,a[4]=1359893119,a[5]=2600822924,a[6]=528734635,a[7]=1541459225,o[0]=4089235720,o[1]=2227873595,o[2]=4271175723,o[3]=1595750129,o[4]=2917565137,o[5]=725511199,o[6]=4215389547,o[7]=327033209,G(a,o,t,r),r%=128,n=0;n=0;--a)Z(e,t,n=r[a/8|0]>>(7&a)&1),Y(t,e),Y(e,e),Z(e,t,n)}function te(e,r){var n=[t(),t(),t(),t()];R(n[0],u),R(n[1],f),R(n[2],i),D(n[3],u,f),ee(e,n,r)}function re(e,n,a){var o,i=new Uint8Array(64),s=[t(),t(),t(),t()];for(a||r(n,32),J(i,n,32),i[0]&=248,i[31]&=127,i[31]|=64,te(s,i),Q(e,s),o=0;o<32;o++)n[o+32]=e[o];return 0}var ne=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ae(e,t){var r,n,a,o;for(n=63;n>=32;--n){for(r=0,a=n-32,o=n-12;a>4)*ne[a],r=t[a]>>8,t[a]&=255;for(a=0;a<32;a++)t[a]-=r*ne[a];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function oe(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;ae(e,r)}function ie(e,r,n,a){var o,i,s=new Uint8Array(64),c=new Uint8Array(64),l=new Uint8Array(64),u=new Float64Array(64),f=[t(),t(),t(),t()];J(s,a,32),s[0]&=248,s[31]&=127,s[31]|=64;var d=n+64;for(o=0;o>7&&P(e[0],o,e[0]),D(e[3],e[0],e[1]),0)}(h,a))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(ue),t=new Uint8Array(fe);return re(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(he(e),e.length!==fe)throw new Error("bad secret key size");for(var t=new Uint8Array(ue),r=0;r=0;s--)(a=e[s])&&(i=(o<3?a(i):o>3?a(t,r,i):a(t,r))||i);return o>3&&i&&Object.defineProperty(t,r,i),i},i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t},s=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.deserialize=e.exports.serialize=e.exports.BinaryReader=e.exports.BinaryWriter=e.exports.BorshError=e.exports.baseDecode=e.exports.baseEncode=void 0;const c=s(parcelRequire("lq4RO")),l=s(parcelRequire("05ixR")),u=i(parcelRequire("7WTrq")),f=new("function"!=typeof $parcel$global.TextDecoder?u.TextDecoder:$parcel$global.TextDecoder)("utf-8",{fatal:!0});e.exports.baseEncode=function(e){return"string"==typeof e&&(e=r.from(e,"utf8")),l.default.encode(r.from(e))},e.exports.baseDecode=function(e){return r.from(l.default.decode(e))};const d=1024;class h extends Error{addToFieldPath(e){this.fieldPath.splice(0,0,e),this.message=this.originalMessage+": "+this.fieldPath.join(".")}constructor(e){super(e),this.fieldPath=[],this.originalMessage=e}}e.exports.BorshError=h;class p{maybeResize(){this.buf.length<16+this.length&&(this.buf=r.concat([this.buf,r.alloc(d)]))}writeU8(e){this.maybeResize(),this.buf.writeUInt8(e,this.length),this.length+=1}writeU32(e){this.maybeResize(),this.buf.writeUInt32LE(e,this.length),this.length+=4}writeU64(e){this.maybeResize(),this.writeBuffer(r.from(new c.default(e).toArray("le",8)))}writeU128(e){this.maybeResize(),this.writeBuffer(r.from(new c.default(e).toArray("le",16)))}writeBuffer(e){this.buf=r.concat([r.from(this.buf.subarray(0,this.length)),e,r.alloc(d)]),this.length+=e.length}writeString(e){this.maybeResize();const t=r.from(e,"utf8");this.writeU32(t.length),this.writeBuffer(t)}writeFixedArray(e){this.writeBuffer(r.from(e))}writeArray(e,t){this.maybeResize(),this.writeU32(e.length);for(const r of e)this.maybeResize(),t(r)}toArray(){return this.buf.subarray(0,this.length)}constructor(){this.buf=r.alloc(d),this.length=0}}function b(e,t,r){const n=r.value;r.value=function(...e){try{return n.apply(this,e)}catch(e){if(e instanceof RangeError){const t=e.code;if(["ERR_BUFFER_OUT_OF_BOUNDS","ERR_OUT_OF_RANGE"].indexOf(t)>=0)throw new h("Reached the end of buffer when deserializing")}throw e}}}e.exports.BinaryWriter=p;class ${readU8(){const e=this.buf.readUInt8(this.offset);return this.offset+=1,e}readU32(){const e=this.buf.readUInt32LE(this.offset);return this.offset+=4,e}readU64(){const e=this.readBuffer(8);return new c.default(e,"le")}readU128(){const e=this.readBuffer(16);return new c.default(e,"le")}readBuffer(e){if(this.offset+e>this.buf.length)throw new h(`Expected buffer length ${e} isn't within bounds`);const t=this.buf.slice(this.offset,this.offset+e);return this.offset+=e,t}readString(){const e=this.readU32(),t=this.readBuffer(e);try{return f.decode(t)}catch(e){throw new h(`Error decoding UTF-8 string: ${e}`)}}readFixedArray(e){return new Uint8Array(this.readBuffer(e))}readArray(e){const t=this.readU32(),r=Array();for(let n=0;n{m(e,t,r,n[0],a)}));else if(void 0!==n.kind){if("option"!==n.kind)throw new h(`FieldType ${n} unrecognized`);null===r?a.writeU8(0):(a.writeU8(1),m(e,t,r,n.type,a))}else y(e,r,a)}catch(e){throw e instanceof h&&e.addToFieldPath(t),e}}function y(e,t,r){const n=e.get(t.constructor);if(!n)throw new h(`Class ${t.constructor.name} is missing in schema`);if("struct"===n.kind)n.fields.map((([n,a])=>{m(e,n,t[n],a,r)}));else{if("enum"!==n.kind)throw new h(`Unexpected schema kind: ${n.kind} for ${t.constructor.name}`);{const a=t[n.field];for(let o=0;ov(e,t,r[0],n))):w(e,r,n)}catch(e){throw e instanceof h&&e.addToFieldPath(t),e}}function w(e,t,r){const n=e.get(t);if(!n)throw new h(`Class ${t.name} is missing in schema`);if("struct"===n.kind){const n={};for(const[a,o]of e.get(t).fields)n[a]=v(e,a,o,r);return new t(n)}if("enum"===n.kind){const a=r.readU8();if(a>=n.values.length)throw new h(`Enum index: ${a} is out of range`);const[o,i]=n.values[a];return new t({[o]:v(e,o,i,r)})}throw new h(`Unexpected schema kind: ${n.kind} for ${t.constructor.name}`)}o([b],$.prototype,"readU8",null),o([b],$.prototype,"readU32",null),o([b],$.prototype,"readU64",null),o([b],$.prototype,"readU128",null),o([b],$.prototype,"readString",null),o([b],$.prototype,"readFixedArray",null),o([b],$.prototype,"readArray",null),e.exports.BinaryReader=$,e.exports.serialize=function(e,t){const r=new p;return y(e,t,r),r.toArray()},e.exports.deserialize=function(e,t,r){const n=new $(r),a=w(e,t,n);if(n.offsetl)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,f.prototype),t}function f(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return p(e)}return d(e,t,r)}function d(e,t,r){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!f.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=u(r);const a=n.write(e,t);a!==r&&(n=n.slice(0,a));return n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Z(e,Uint8Array)){const t=new Uint8Array(e);return $(t.buffer,t.byteOffset,t.byteLength)}return b(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Z(e,ArrayBuffer)||e&&Z(e.buffer,ArrayBuffer))return $(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(Z(e,SharedArrayBuffer)||e&&Z(e.buffer,SharedArrayBuffer)))return $(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return f.from(n,t,r);const a=function(e){if(f.isBuffer(e)){const t=0|g(e.length),r=u(t);return 0===r.length||e.copy(r,0,0,t),r}if(void 0!==e.length)return"number"!=typeof e.length||Q(e.length)?u(0):b(e);if("Buffer"===e.type&&Array.isArray(e.data))return b(e.data)}(e);if(a)return a;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return f.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function h(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function p(e){return h(e),u(e<0?0:0|g(e))}function b(e){const t=e.length<0?0:0|g(e.length),r=u(t);for(let n=0;n=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return 0|e}function m(e,t){if(f.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Z(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let a=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return G(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return J(e).length;default:if(a)return n?-1:G(e).length;t=(""+t).toLowerCase(),a=!0}}function y(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,r);case"utf8":case"utf-8":return R(this,t,r);case"ascii":return C(this,t,r);case"latin1":case"binary":return I(this,t,r);case"base64":return M(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function v(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function w(e,t,r,n,a){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Q(r=+r)&&(r=a?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(a)return-1;r=e.length-1}else if(r<0){if(!a)return-1;r=0}if("string"==typeof t&&(t=f.from(t,n)),f.isBuffer(t))return 0===t.length?-1:x(e,t,r,n,a);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):x(e,[t],r,n,a);throw new TypeError("val must be string, number or Buffer")}function x(e,t,r,n,a){let o,i=1,s=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,s/=2,c/=2,r/=2}function l(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(a){let n=-1;for(o=r;os&&(r=s-c),o=r;o>=0;o--){let r=!0;for(let n=0;na&&(n=a):n=a;const o=t.length;let i;for(n>o/2&&(n=o/2),i=0;i>8,a=r%256,o.push(a),o.push(n);return o}(t,e.length-r),e,r,n)}function M(e,t,r){return 0===t&&r===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,r))}function R(e,t,r){r=Math.min(e.length,r);const n=[];let a=t;for(;a239?4:t>223?3:t>191?2:1;if(a+i<=r){let r,n,s,c;switch(i){case 1:t<128&&(o=t);break;case 2:r=e[a+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(o=c));break;case 3:r=e[a+1],n=e[a+2],128==(192&r)&&128==(192&n)&&(c=(15&t)<<12|(63&r)<<6|63&n,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:r=e[a+1],n=e[a+2],s=e[a+3],128==(192&r)&&128==(192&n)&&128==(192&s)&&(c=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&s,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,i=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),a+=i}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(f.isBuffer(t)||(t=f.from(t)),t.copy(n,a)):Uint8Array.prototype.set.call(n,t,a);else{if(!f.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,a)}a+=t.length}return n},f.byteLength=m,f.prototype._isBuffer=!0,f.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""},c&&(f.prototype[c]=f.prototype.inspect),f.prototype.compare=function(e,t,r,n,a){if(Z(e,Uint8Array)&&(e=f.from(e,e.offset,e.byteLength)),!f.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===a&&(a=this.length),t<0||r>e.length||n<0||a>this.length)throw new RangeError("out of range index");if(n>=a&&t>=r)return 0;if(n>=a)return-1;if(t>=r)return 1;if(this===e)return 0;let o=(a>>>=0)-(n>>>=0),i=(r>>>=0)-(t>>>=0);const s=Math.min(o,i),c=this.slice(n,a),l=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const a=this.length-t;if((void 0===r||r>a)&&(r=a),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return k(this,e,t,r);case"ascii":case"latin1":case"binary":return S(this,e,t,r);case"base64":return E(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function C(e,t,r){let n="";r=Math.min(e.length,r);for(let a=t;an)&&(r=n);let a="";for(let n=t;nr)throw new RangeError("Trying to access beyond buffer length")}function O(e,t,r,n,a,o){if(!f.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||te.length)throw new RangeError("Index out of range")}function P(e,t,r,n,a){W(t,n,a,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,r}function D(e,t,r,n,a){W(t,n,a,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o>>=8,e[r+6]=o,o>>=8,e[r+5]=o,o>>=8,e[r+4]=o;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=i,i>>=8,e[r+2]=i,i>>=8,e[r+1]=i,i>>=8,e[r]=i,r+8}function B(e,t,r,n,a,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(e,t,r,n,a){return t=+t,r>>>=0,a||B(e,0,r,4),s.write(e,t,r,n,23,4),r+4}function F(e,t,r,n,a){return t=+t,r>>>=0,a||B(e,0,r,8),s.write(e,t,r,n,52,8),r+8}f.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||q(e,t,this.length);let n=this[e],a=1,o=0;for(;++o>>=0,t>>>=0,r||q(e,t,this.length);let n=this[e+--t],a=1;for(;t>0&&(a*=256);)n+=this[e+--t]*a;return n},f.prototype.readUint8=f.prototype.readUInt8=function(e,t){return e>>>=0,t||q(e,1,this.length),this[e]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(e,t){return e>>>=0,t||q(e,2,this.length),this[e]|this[e+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(e,t){return e>>>=0,t||q(e,2,this.length),this[e]<<8|this[e+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(e,t){return e>>>=0,t||q(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(e,t){return e>>>=0,t||q(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},f.prototype.readBigUInt64LE=te((function(e){V(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||X(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,a=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(a)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||X(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],a=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||q(e,t,this.length);let n=this[e],a=1,o=0;for(;++o=a&&(n-=Math.pow(2,8*t)),n},f.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||q(e,t,this.length);let n=t,a=1,o=this[e+--n];for(;n>0&&(a*=256);)o+=this[e+--n]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*t)),o},f.prototype.readInt8=function(e,t){return e>>>=0,t||q(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},f.prototype.readInt16LE=function(e,t){e>>>=0,t||q(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},f.prototype.readInt16BE=function(e,t){e>>>=0,t||q(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},f.prototype.readInt32LE=function(e,t){return e>>>=0,t||q(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},f.prototype.readInt32BE=function(e,t){return e>>>=0,t||q(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},f.prototype.readBigInt64LE=te((function(e){V(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||X(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||X(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||q(e,4,this.length),s.read(this,e,!0,23,4)},f.prototype.readFloatBE=function(e,t){return e>>>=0,t||q(e,4,this.length),s.read(this,e,!1,23,4)},f.prototype.readDoubleLE=function(e,t){return e>>>=0,t||q(e,8,this.length),s.read(this,e,!0,52,8)},f.prototype.readDoubleBE=function(e,t){return e>>>=0,t||q(e,8,this.length),s.read(this,e,!1,52,8)},f.prototype.writeUintLE=f.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){O(this,e,t,r,Math.pow(2,8*r)-1,0)}let a=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,!n){O(this,e,t,r,Math.pow(2,8*r)-1,0)}let a=r-1,o=1;for(this[t+a]=255&e;--a>=0&&(o*=256);)this[t+a]=e/o&255;return t+r},f.prototype.writeUint8=f.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,1,255,0),this[t]=255&e,t+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},f.prototype.writeBigUInt64LE=te((function(e,t=0){return P(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),f.prototype.writeBigUInt64BE=te((function(e,t=0){return D(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),f.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);O(this,e,t,r,n-1,-n)}let a=0,o=1,i=0;for(this[t]=255&e;++a>0)-i&255;return t+r},f.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);O(this,e,t,r,n-1,-n)}let a=r-1,o=1,i=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===i&&0!==this[t+a+1]&&(i=1),this[t+a]=(e/o>>0)-i&255;return t+r},f.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},f.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},f.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},f.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},f.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},f.prototype.writeBigInt64LE=te((function(e,t=0){return P(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),f.prototype.writeBigInt64BE=te((function(e,t=0){return D(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),f.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},f.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},f.prototype.writeDoubleLE=function(e,t,r){return F(this,e,t,!0,r)},f.prototype.writeDoubleBE=function(e,t,r){return F(this,e,t,!1,r)},f.prototype.copy=function(e,t,r,n){if(!f.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(a=t;a=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function W(e,t,r,n,a,o){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new j.ERR_OUT_OF_RANGE("value",a,e)}!function(e,t,r){V(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||X(t,e.length-(r+1))}(n,a,o)}function V(e,t){if("number"!=typeof e)throw new j.ERR_INVALID_ARG_TYPE(t,"number",e)}function X(e,t,r){if(Math.floor(e)!==e)throw V(e,r),new j.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new j.ERR_BUFFER_OUT_OF_BOUNDS;throw new j.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}H("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),H("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),H("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,a=r;return Number.isInteger(r)&&Math.abs(r)>2**32?a=K(String(r)):"bigint"==typeof r&&(a=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(a=K(a)),a+="n"),n+=` It must be ${t}. Received ${a}`,n}),RangeError);const z=/[^+/0-9A-Za-z-_]/g;function G(e,t){let r;t=t||1/0;const n=e.length;let a=null;const o=[];for(let i=0;i55295&&r<57344){if(!a){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&o.push(239,191,189);continue}a=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),a=r;continue}r=65536+(a-55296<<10|r-56320)}else a&&(t-=3)>-1&&o.push(239,191,189);if(a=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function J(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,r,n){let a;for(a=0;a=t.length||a>=e.length);++a)t[a+r]=e[a];return a}function Z(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Q(e){return e!=e}const ee=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let a=0;a<16;++a)t[n+a]=e[r]+e[a]}return t}();function te(e){return"undefined"==typeof BigInt?re:e}function re(){throw new Error("BigInt not supported")}})),parcelRequire.register("77LpT",(function(e,t){var r,n;$parcel$export(e.exports,"toByteArray",(function(){return r}),(function(e){return r=e})),$parcel$export(e.exports,"fromByteArray",(function(){return n}),(function(e){return n=e})),r=function(e){var t,r,n=u(e),a=n[0],s=n[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,a,s)),l=0,f=s>0?a-4:a;for(r=0;r>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(r)]<<2|o[e.charCodeAt(r+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(r)]<<10|o[e.charCodeAt(r+1)]<<4|o[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},n=function(e){for(var t,r=e.length,n=r%3,o=[],i=16383,s=0,c=r-n;sc?c:s+i));1===n?(t=e[r-1],o.push(a[t>>2]+a[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],o.push(a[t>>10]+a[t>>4&63]+a[t<<2&63]+"="));return o.join("")};for(var a=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,l=s.length;c0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function f(e,t,r){for(var n,o,i=[],s=t;s>18&63]+a[o>>12&63]+a[o>>6&63]+a[63&o]);return i.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63})),parcelRequire.register("dbRZz",(function(e,t){ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */var r,n;$parcel$export(e.exports,"read",(function(){return r}),(function(e){return r=e})),$parcel$export(e.exports,"write",(function(){return n}),(function(e){return n=e})),r=function(e,t,r,n,a){var o,i,s=8*a-n-1,c=(1<>1,u=-7,f=r?a-1:0,d=r?-1:1,h=e[t+f];for(f+=d,o=h&(1<<-u)-1,h>>=-u,u+=s;u>0;o=256*o+e[t+f],f+=d,u-=8);for(i=o&(1<<-u)-1,o>>=-u,u+=n;u>0;i=256*i+e[t+f],f+=d,u-=8);if(0===o)o=1-l;else{if(o===c)return i?NaN:1/0*(h?-1:1);i+=Math.pow(2,n),o-=l}return(h?-1:1)*i*Math.pow(2,o-n)},n=function(e,t,r,n,a,o){var i,s,c,l=8*o-a-1,u=(1<>1,d=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:o-1,p=n?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-i))<1&&(i--,c*=2),(t+=i+f>=1?d/c:d*Math.pow(2,1-f))*c>=2&&(i++,c/=2),i+f>=u?(s=0,i=u):i+f>=1?(s=(t*c-1)*Math.pow(2,a),i+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,a),i=0));a>=8;e[r+h]=255&s,h+=p,s/=256,a-=8);for(i=i<0;e[r+h]=255&i,h+=p,i/=256,l-=8);e[r+h-p]|=128*b}})),parcelRequire.register("lq4RO",(function(e,t){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function a(e,t,r){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=a:t.BN=a,a.BN=a,a.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:parcelRequire("jCjhT").Buffer}catch(e){}function i(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function s(e,t,r){var n=i(e,r);return r-1>=t&&(n|=i(e,r-1)<<4),n}function c(e,t,n,a){for(var o=0,i=0,s=Math.min(e.length,n),c=t;c=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&i0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var a=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(a++,this.negative=1),a=0;a-=3)i=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[o]|=i<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===n)for(a=0,o=0;a>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this._strip()},a.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)a=s(e,t,n)<=18?(o-=18,i+=1,this.words[i]|=a>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(o-=18,i+=1,this.words[i]|=a>>>26):o+=8;this._strip()},a.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,a=1;a<=67108863;a*=t)n++;n--,a=a/t|0;for(var o=e.length-r,i=o%n,s=Math.min(o,o-i)+r,l=0,u=r;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=u}catch(e){a.prototype.inspect=u}else a.prototype.inspect=u;function u(){return(this.red?""}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var a=0,o=0,i=0;i>>24-a&16777215)||i!==this.length-1?f[6-c.length]+c+n:c+n,(a+=2)>=26&&(a-=26,i--)}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=d[e],u=h[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modrn(u).toString(e);n=(p=p.idivn(u)).isZero()?b+n:f[l-b.length]+b+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16,2)},o&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function p(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var a=0|e.words[0],o=0|t.words[0],i=a*o,s=67108863&i,c=i/67108864|0;r.words[0]=s;for(var l=1;l>>26,f=67108863&c,d=Math.min(l,t.length-1),h=Math.max(0,l-e.length+1);h<=d;h++){var p=l-h|0;u+=(i=(a=0|e.words[p])*(o=0|t.words[h])+f)/67108864|0,f=67108863&i}r.words[l]=0|f,c=0|u}return 0!==c?r.words[l]=0|c:r.length--,r._strip()}a.prototype.toArrayLike=function(e,t,n){this._strip();var a=this.byteLength(),o=n||Math.max(1,a);r(a<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var i=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](i,a),i},a.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,a=0,o=0;a>8&255),r>16&255),6===o?(r>24&255),n=0,o=0):(n=i>>>24,o+=2)}if(r=0&&(e[r--]=i>>8&255),r>=0&&(e[r--]=i>>16&255),6===o?(r>=0&&(e[r--]=i>>24&255),n=0,o=0):(n=i>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this._strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var a=0,o=0;o>>26;for(;0!==a&&o>>26;if(this.length=r.length,0!==a)this.words[this.length]=a,this.length++;else if(r!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,a=this.cmp(e);if(0===a)return this.negative=0,this.length=1,this.words[0]=0,this;a>0?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>26,this.words[i]=67108863&t;for(;0!==o&&i>26,this.words[i]=67108863&t;if(0===o&&i>>13,h=0|i[1],p=8191&h,b=h>>>13,$=0|i[2],g=8191&$,m=$>>>13,y=0|i[3],v=8191&y,w=y>>>13,x=0|i[4],_=8191&x,k=x>>>13,S=0|i[5],E=8191&S,A=S>>>13,M=0|i[6],R=8191&M,T=M>>>13,C=0|i[7],I=8191&C,N=C>>>13,L=0|i[8],q=8191&L,O=L>>>13,P=0|i[9],D=8191&P,B=P>>>13,U=0|s[0],F=8191&U,j=U>>>13,H=0|s[1],K=8191&H,W=H>>>13,V=0|s[2],X=8191&V,z=V>>>13,G=0|s[3],J=8191&G,Y=G>>>13,Z=0|s[4],Q=8191&Z,ee=Z>>>13,te=0|s[5],re=8191&te,ne=te>>>13,ae=0|s[6],oe=8191&ae,ie=ae>>>13,se=0|s[7],ce=8191&se,le=se>>>13,ue=0|s[8],fe=8191&ue,de=ue>>>13,he=0|s[9],pe=8191&he,be=he>>>13;r.negative=e.negative^t.negative,r.length=19;var $e=(l+(n=Math.imul(f,F))|0)+((8191&(a=(a=Math.imul(f,j))+Math.imul(d,F)|0))<<13)|0;l=((o=Math.imul(d,j))+(a>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(p,F),a=(a=Math.imul(p,j))+Math.imul(b,F)|0,o=Math.imul(b,j);var ge=(l+(n=n+Math.imul(f,K)|0)|0)+((8191&(a=(a=a+Math.imul(f,W)|0)+Math.imul(d,K)|0))<<13)|0;l=((o=o+Math.imul(d,W)|0)+(a>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),a=(a=Math.imul(g,j))+Math.imul(m,F)|0,o=Math.imul(m,j),n=n+Math.imul(p,K)|0,a=(a=a+Math.imul(p,W)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,W)|0;var me=(l+(n=n+Math.imul(f,X)|0)|0)+((8191&(a=(a=a+Math.imul(f,z)|0)+Math.imul(d,X)|0))<<13)|0;l=((o=o+Math.imul(d,z)|0)+(a>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(v,F),a=(a=Math.imul(v,j))+Math.imul(w,F)|0,o=Math.imul(w,j),n=n+Math.imul(g,K)|0,a=(a=a+Math.imul(g,W)|0)+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,n=n+Math.imul(p,X)|0,a=(a=a+Math.imul(p,z)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,z)|0;var ye=(l+(n=n+Math.imul(f,J)|0)|0)+((8191&(a=(a=a+Math.imul(f,Y)|0)+Math.imul(d,J)|0))<<13)|0;l=((o=o+Math.imul(d,Y)|0)+(a>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(_,F),a=(a=Math.imul(_,j))+Math.imul(k,F)|0,o=Math.imul(k,j),n=n+Math.imul(v,K)|0,a=(a=a+Math.imul(v,W)|0)+Math.imul(w,K)|0,o=o+Math.imul(w,W)|0,n=n+Math.imul(g,X)|0,a=(a=a+Math.imul(g,z)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,z)|0,n=n+Math.imul(p,J)|0,a=(a=a+Math.imul(p,Y)|0)+Math.imul(b,J)|0,o=o+Math.imul(b,Y)|0;var ve=(l+(n=n+Math.imul(f,Q)|0)|0)+((8191&(a=(a=a+Math.imul(f,ee)|0)+Math.imul(d,Q)|0))<<13)|0;l=((o=o+Math.imul(d,ee)|0)+(a>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,F),a=(a=Math.imul(E,j))+Math.imul(A,F)|0,o=Math.imul(A,j),n=n+Math.imul(_,K)|0,a=(a=a+Math.imul(_,W)|0)+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,n=n+Math.imul(v,X)|0,a=(a=a+Math.imul(v,z)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,z)|0,n=n+Math.imul(g,J)|0,a=(a=a+Math.imul(g,Y)|0)+Math.imul(m,J)|0,o=o+Math.imul(m,Y)|0,n=n+Math.imul(p,Q)|0,a=(a=a+Math.imul(p,ee)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,ee)|0;var we=(l+(n=n+Math.imul(f,re)|0)|0)+((8191&(a=(a=a+Math.imul(f,ne)|0)+Math.imul(d,re)|0))<<13)|0;l=((o=o+Math.imul(d,ne)|0)+(a>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(R,F),a=(a=Math.imul(R,j))+Math.imul(T,F)|0,o=Math.imul(T,j),n=n+Math.imul(E,K)|0,a=(a=a+Math.imul(E,W)|0)+Math.imul(A,K)|0,o=o+Math.imul(A,W)|0,n=n+Math.imul(_,X)|0,a=(a=a+Math.imul(_,z)|0)+Math.imul(k,X)|0,o=o+Math.imul(k,z)|0,n=n+Math.imul(v,J)|0,a=(a=a+Math.imul(v,Y)|0)+Math.imul(w,J)|0,o=o+Math.imul(w,Y)|0,n=n+Math.imul(g,Q)|0,a=(a=a+Math.imul(g,ee)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,ee)|0,n=n+Math.imul(p,re)|0,a=(a=a+Math.imul(p,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0;var xe=(l+(n=n+Math.imul(f,oe)|0)|0)+((8191&(a=(a=a+Math.imul(f,ie)|0)+Math.imul(d,oe)|0))<<13)|0;l=((o=o+Math.imul(d,ie)|0)+(a>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(I,F),a=(a=Math.imul(I,j))+Math.imul(N,F)|0,o=Math.imul(N,j),n=n+Math.imul(R,K)|0,a=(a=a+Math.imul(R,W)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul(E,X)|0,a=(a=a+Math.imul(E,z)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,z)|0,n=n+Math.imul(_,J)|0,a=(a=a+Math.imul(_,Y)|0)+Math.imul(k,J)|0,o=o+Math.imul(k,Y)|0,n=n+Math.imul(v,Q)|0,a=(a=a+Math.imul(v,ee)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,ee)|0,n=n+Math.imul(g,re)|0,a=(a=a+Math.imul(g,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0,n=n+Math.imul(p,oe)|0,a=(a=a+Math.imul(p,ie)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,ie)|0;var _e=(l+(n=n+Math.imul(f,ce)|0)|0)+((8191&(a=(a=a+Math.imul(f,le)|0)+Math.imul(d,ce)|0))<<13)|0;l=((o=o+Math.imul(d,le)|0)+(a>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(q,F),a=(a=Math.imul(q,j))+Math.imul(O,F)|0,o=Math.imul(O,j),n=n+Math.imul(I,K)|0,a=(a=a+Math.imul(I,W)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,W)|0,n=n+Math.imul(R,X)|0,a=(a=a+Math.imul(R,z)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,z)|0,n=n+Math.imul(E,J)|0,a=(a=a+Math.imul(E,Y)|0)+Math.imul(A,J)|0,o=o+Math.imul(A,Y)|0,n=n+Math.imul(_,Q)|0,a=(a=a+Math.imul(_,ee)|0)+Math.imul(k,Q)|0,o=o+Math.imul(k,ee)|0,n=n+Math.imul(v,re)|0,a=(a=a+Math.imul(v,ne)|0)+Math.imul(w,re)|0,o=o+Math.imul(w,ne)|0,n=n+Math.imul(g,oe)|0,a=(a=a+Math.imul(g,ie)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,ie)|0,n=n+Math.imul(p,ce)|0,a=(a=a+Math.imul(p,le)|0)+Math.imul(b,ce)|0,o=o+Math.imul(b,le)|0;var ke=(l+(n=n+Math.imul(f,fe)|0)|0)+((8191&(a=(a=a+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;l=((o=o+Math.imul(d,de)|0)+(a>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(D,F),a=(a=Math.imul(D,j))+Math.imul(B,F)|0,o=Math.imul(B,j),n=n+Math.imul(q,K)|0,a=(a=a+Math.imul(q,W)|0)+Math.imul(O,K)|0,o=o+Math.imul(O,W)|0,n=n+Math.imul(I,X)|0,a=(a=a+Math.imul(I,z)|0)+Math.imul(N,X)|0,o=o+Math.imul(N,z)|0,n=n+Math.imul(R,J)|0,a=(a=a+Math.imul(R,Y)|0)+Math.imul(T,J)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(E,Q)|0,a=(a=a+Math.imul(E,ee)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,ee)|0,n=n+Math.imul(_,re)|0,a=(a=a+Math.imul(_,ne)|0)+Math.imul(k,re)|0,o=o+Math.imul(k,ne)|0,n=n+Math.imul(v,oe)|0,a=(a=a+Math.imul(v,ie)|0)+Math.imul(w,oe)|0,o=o+Math.imul(w,ie)|0,n=n+Math.imul(g,ce)|0,a=(a=a+Math.imul(g,le)|0)+Math.imul(m,ce)|0,o=o+Math.imul(m,le)|0,n=n+Math.imul(p,fe)|0,a=(a=a+Math.imul(p,de)|0)+Math.imul(b,fe)|0,o=o+Math.imul(b,de)|0;var Se=(l+(n=n+Math.imul(f,pe)|0)|0)+((8191&(a=(a=a+Math.imul(f,be)|0)+Math.imul(d,pe)|0))<<13)|0;l=((o=o+Math.imul(d,be)|0)+(a>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(D,K),a=(a=Math.imul(D,W))+Math.imul(B,K)|0,o=Math.imul(B,W),n=n+Math.imul(q,X)|0,a=(a=a+Math.imul(q,z)|0)+Math.imul(O,X)|0,o=o+Math.imul(O,z)|0,n=n+Math.imul(I,J)|0,a=(a=a+Math.imul(I,Y)|0)+Math.imul(N,J)|0,o=o+Math.imul(N,Y)|0,n=n+Math.imul(R,Q)|0,a=(a=a+Math.imul(R,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(E,re)|0,a=(a=a+Math.imul(E,ne)|0)+Math.imul(A,re)|0,o=o+Math.imul(A,ne)|0,n=n+Math.imul(_,oe)|0,a=(a=a+Math.imul(_,ie)|0)+Math.imul(k,oe)|0,o=o+Math.imul(k,ie)|0,n=n+Math.imul(v,ce)|0,a=(a=a+Math.imul(v,le)|0)+Math.imul(w,ce)|0,o=o+Math.imul(w,le)|0,n=n+Math.imul(g,fe)|0,a=(a=a+Math.imul(g,de)|0)+Math.imul(m,fe)|0,o=o+Math.imul(m,de)|0;var Ee=(l+(n=n+Math.imul(p,pe)|0)|0)+((8191&(a=(a=a+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;l=((o=o+Math.imul(b,be)|0)+(a>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(D,X),a=(a=Math.imul(D,z))+Math.imul(B,X)|0,o=Math.imul(B,z),n=n+Math.imul(q,J)|0,a=(a=a+Math.imul(q,Y)|0)+Math.imul(O,J)|0,o=o+Math.imul(O,Y)|0,n=n+Math.imul(I,Q)|0,a=(a=a+Math.imul(I,ee)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,ee)|0,n=n+Math.imul(R,re)|0,a=(a=a+Math.imul(R,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(E,oe)|0,a=(a=a+Math.imul(E,ie)|0)+Math.imul(A,oe)|0,o=o+Math.imul(A,ie)|0,n=n+Math.imul(_,ce)|0,a=(a=a+Math.imul(_,le)|0)+Math.imul(k,ce)|0,o=o+Math.imul(k,le)|0,n=n+Math.imul(v,fe)|0,a=(a=a+Math.imul(v,de)|0)+Math.imul(w,fe)|0,o=o+Math.imul(w,de)|0;var Ae=(l+(n=n+Math.imul(g,pe)|0)|0)+((8191&(a=(a=a+Math.imul(g,be)|0)+Math.imul(m,pe)|0))<<13)|0;l=((o=o+Math.imul(m,be)|0)+(a>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(D,J),a=(a=Math.imul(D,Y))+Math.imul(B,J)|0,o=Math.imul(B,Y),n=n+Math.imul(q,Q)|0,a=(a=a+Math.imul(q,ee)|0)+Math.imul(O,Q)|0,o=o+Math.imul(O,ee)|0,n=n+Math.imul(I,re)|0,a=(a=a+Math.imul(I,ne)|0)+Math.imul(N,re)|0,o=o+Math.imul(N,ne)|0,n=n+Math.imul(R,oe)|0,a=(a=a+Math.imul(R,ie)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ie)|0,n=n+Math.imul(E,ce)|0,a=(a=a+Math.imul(E,le)|0)+Math.imul(A,ce)|0,o=o+Math.imul(A,le)|0,n=n+Math.imul(_,fe)|0,a=(a=a+Math.imul(_,de)|0)+Math.imul(k,fe)|0,o=o+Math.imul(k,de)|0;var Me=(l+(n=n+Math.imul(v,pe)|0)|0)+((8191&(a=(a=a+Math.imul(v,be)|0)+Math.imul(w,pe)|0))<<13)|0;l=((o=o+Math.imul(w,be)|0)+(a>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(D,Q),a=(a=Math.imul(D,ee))+Math.imul(B,Q)|0,o=Math.imul(B,ee),n=n+Math.imul(q,re)|0,a=(a=a+Math.imul(q,ne)|0)+Math.imul(O,re)|0,o=o+Math.imul(O,ne)|0,n=n+Math.imul(I,oe)|0,a=(a=a+Math.imul(I,ie)|0)+Math.imul(N,oe)|0,o=o+Math.imul(N,ie)|0,n=n+Math.imul(R,ce)|0,a=(a=a+Math.imul(R,le)|0)+Math.imul(T,ce)|0,o=o+Math.imul(T,le)|0,n=n+Math.imul(E,fe)|0,a=(a=a+Math.imul(E,de)|0)+Math.imul(A,fe)|0,o=o+Math.imul(A,de)|0;var Re=(l+(n=n+Math.imul(_,pe)|0)|0)+((8191&(a=(a=a+Math.imul(_,be)|0)+Math.imul(k,pe)|0))<<13)|0;l=((o=o+Math.imul(k,be)|0)+(a>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(D,re),a=(a=Math.imul(D,ne))+Math.imul(B,re)|0,o=Math.imul(B,ne),n=n+Math.imul(q,oe)|0,a=(a=a+Math.imul(q,ie)|0)+Math.imul(O,oe)|0,o=o+Math.imul(O,ie)|0,n=n+Math.imul(I,ce)|0,a=(a=a+Math.imul(I,le)|0)+Math.imul(N,ce)|0,o=o+Math.imul(N,le)|0,n=n+Math.imul(R,fe)|0,a=(a=a+Math.imul(R,de)|0)+Math.imul(T,fe)|0,o=o+Math.imul(T,de)|0;var Te=(l+(n=n+Math.imul(E,pe)|0)|0)+((8191&(a=(a=a+Math.imul(E,be)|0)+Math.imul(A,pe)|0))<<13)|0;l=((o=o+Math.imul(A,be)|0)+(a>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(D,oe),a=(a=Math.imul(D,ie))+Math.imul(B,oe)|0,o=Math.imul(B,ie),n=n+Math.imul(q,ce)|0,a=(a=a+Math.imul(q,le)|0)+Math.imul(O,ce)|0,o=o+Math.imul(O,le)|0,n=n+Math.imul(I,fe)|0,a=(a=a+Math.imul(I,de)|0)+Math.imul(N,fe)|0,o=o+Math.imul(N,de)|0;var Ce=(l+(n=n+Math.imul(R,pe)|0)|0)+((8191&(a=(a=a+Math.imul(R,be)|0)+Math.imul(T,pe)|0))<<13)|0;l=((o=o+Math.imul(T,be)|0)+(a>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(D,ce),a=(a=Math.imul(D,le))+Math.imul(B,ce)|0,o=Math.imul(B,le),n=n+Math.imul(q,fe)|0,a=(a=a+Math.imul(q,de)|0)+Math.imul(O,fe)|0,o=o+Math.imul(O,de)|0;var Ie=(l+(n=n+Math.imul(I,pe)|0)|0)+((8191&(a=(a=a+Math.imul(I,be)|0)+Math.imul(N,pe)|0))<<13)|0;l=((o=o+Math.imul(N,be)|0)+(a>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(D,fe),a=(a=Math.imul(D,de))+Math.imul(B,fe)|0,o=Math.imul(B,de);var Ne=(l+(n=n+Math.imul(q,pe)|0)|0)+((8191&(a=(a=a+Math.imul(q,be)|0)+Math.imul(O,pe)|0))<<13)|0;l=((o=o+Math.imul(O,be)|0)+(a>>>13)|0)+(Ne>>>26)|0,Ne&=67108863;var Le=(l+(n=Math.imul(D,pe))|0)+((8191&(a=(a=Math.imul(D,be))+Math.imul(B,pe)|0))<<13)|0;return l=((o=Math.imul(B,be))+(a>>>13)|0)+(Le>>>26)|0,Le&=67108863,c[0]=$e,c[1]=ge,c[2]=me,c[3]=ye,c[4]=ve,c[5]=we,c[6]=xe,c[7]=_e,c[8]=ke,c[9]=Se,c[10]=Ee,c[11]=Ae,c[12]=Me,c[13]=Re,c[14]=Te,c[15]=Ce,c[16]=Ie,c[17]=Ne,c[18]=Le,0!==l&&(c[19]=l,r.length++),r};function $(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,a=0,o=0;o>>26)|0)>>>26,i&=67108863}r.words[o]=s,n=i,i=a}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(e,t,r){return $(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(b=p),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?b(this,e,t):r<63?p(this,e,t):r<1024?$(this,e,t):g(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,a,o){for(var i=0;i>>=1)a++;return 1<>>=13,n[2*i+1]=8191&o,o>>>=13;for(i=2*t;i>=26,n+=o/67108864|0,n+=i>>>26,this.words[a]=67108863&i}return 0!==n&&(this.words[a]=n,this.length++),t?this.ineg():this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>a&1}return t}(e);if(0===t.length)return new a(1);for(var r=this,n=0;n=0);var t,n=e%26,a=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var i=0;for(t=0;t>>26-n}i&&(this.words[t]=i,this.length++)}if(0!==a){for(t=this.length-1;t>=0;t--)this.words[t+a]=this.words[t];for(t=0;t=0),a=t?(t-t%26)/26:0;var o=e%26,i=Math.min((e-o)/26,this.length),s=67108863^67108863>>>o<i)for(this.length-=i,l=0;l=0&&(0!==u||l>=a);l--){var f=0|this.words[l];this.words[l]=u<<26-o|f>>>o,u=f&s}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,a=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var a=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[a+n]=67108863&o}for(;a>26,this.words[a+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,a=0;a>26,this.words[a]=67108863&o;return this.negative=1,this._strip()},a.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),o=e,i=0|o.words[o.length-1];0!==(r=26-this._countBits(i))&&(o=o.ushln(r),n.iushln(r),i=0|o.words[o.length-1]);var s,c=n.length-o.length;if("mod"!==t){(s=new a(null)).length=c+1,s.words=new Array(s.length);for(var l=0;l=0;f--){var d=67108864*(0|n.words[o.length+f])+(0|n.words[o.length+f-1]);for(d=Math.min(d/i|0,67108863),n._ishlnsubmul(o,d,f);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(o,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=d)}return s&&s._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(i=s.mod.neg(),n&&0!==i.negative&&i.iadd(e)),{div:o,mod:i}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(i=s.mod.neg(),n&&0!==i.negative&&i.isub(e)),{div:s.div,mod:i}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,i,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),a=e.andln(1),o=r.cmp(n);return o<0||1===a&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=67108864%e,a=0,o=this.length-1;o>=0;o--)a=(n*a+(0|this.words[o]))%e;return t?-a:a},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,a=this.length-1;a>=0;a--){var o=(0|this.words[a])+67108864*n;this.words[a]=o/e|0,n=o%e}return this._strip(),t?this.ineg():this},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new a(1),i=new a(0),s=new a(0),c=new a(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var u=n.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(o.isOdd()||i.isOdd())&&(o.iadd(u),i.isub(f)),o.iushrn(1),i.iushrn(1);for(var p=0,b=1;0==(n.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(u),c.isub(f)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(s),i.isub(c)):(n.isub(t),s.isub(o),c.isub(i))}return{a:s,b:c,gcd:n.iushln(l)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,i=new a(1),s=new a(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,u=1;0==(t.words[0]&u)&&l<26;++l,u<<=1);if(l>0)for(t.iushrn(l);l-- >0;)i.isOdd()&&i.iadd(c),i.iushrn(1);for(var f=0,d=1;0==(n.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(n.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s)):(n.isub(t),s.isub(i))}return(o=0===t.cmpn(1)?i:s).cmpn(0)<0&&o.iadd(e),o},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var a=t.cmp(r);if(a<0){var o=t;t=r,r=o}else if(0===a||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,a=1<>>26,s&=67108863,this.words[i]=s}return 0!==o&&(this.words[i]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var a=0|this.words[0];t=a===e?0:ae.length)return 1;if(this.length=0;r--){var n=0|this.words[r],a=0|e.words[r];if(n!==a){na&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new S(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(w,v),w.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),a=0;a>>22,o=i}o>>>=22,e.words[a-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},w.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=a,t=n}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new x;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new k}return y[e]=t,t},S.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),i=0;!o.isZero()&&0===o.andln(1);)i++,o.iushrn(1);r(!o.isZero());var s=new a(1).toRed(this),c=s.redNeg(),l=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new a(2*u*u).toRed(this);0!==this.pow(u,l).cmp(c);)u.redIAdd(c);for(var f=this.pow(u,o),d=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=i;0!==h.cmp(s);){for(var b=h,$=0;0!==b.cmp(s);$++)b=b.redSqr();r($=0;n--){for(var l=t.words[n],u=c-1;u>=0;u--){var f=l>>u&1;o!==r[0]&&(o=this.sqr(o)),0!==f||0!==i?(i<<=1,i|=f,(4===++s||0===n&&0===u)&&(o=this.mul(o,r[i]),s=0,i=0)):s=0}c=26}return o},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new E(e)},n(E,S),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(n).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)})),parcelRequire.register("05ixR",(function(e,t){var r=parcelRequire("2bXqi");e.exports=r("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")})),parcelRequire.register("2bXqi",(function(e,t){"use strict";var r=parcelRequire("d4PAw").Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n>>0,u=new Uint8Array(i);e[n];){var f=t[e.charCodeAt(n)];if(255===f)return;for(var d=0,h=i-1;(0!==f||d>>0,u[h]=f%256>>>0,f=f/256>>>0;if(0!==f)throw new Error("Non-zero carry");o=d,n++}for(var p=i-o;p!==i&&0===u[p];)p++;var b=r.allocUnsafe(a+(i-p));b.fill(0,0,a);for(var $=a;p!==i;)b[$++]=u[p++];return b}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=r.from(t)),!r.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var n=0,a=0,o=0,i=t.length;o!==i&&0===t[o];)o++,n++;for(var l=(i-o)*u+1>>>0,f=new Uint8Array(l);o!==i;){for(var d=t[o],h=0,p=l-1;(0!==d||h>>0,f[p]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");a=h,o++}for(var b=l-a;b!==l&&0===f[b];)b++;for(var $=c.repeat(n);b>6*r)+n];r>0;){var i=t>>6*(r-1);o.push(128|63&i),r-=1}return o}}u.prototype={decode:function(e,t){var r;r="object"==typeof e&&e instanceof ArrayBuffer?new Uint8Array(e):"object"==typeof e&&"buffer"in e&&e.buffer instanceof ArrayBuffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(0),t=o(t),this._streaming||(this._decoder=new d({fatal:this._fatal}),this._BOMseen=!1),this._streaming=Boolean(t.stream);for(var n,a=new i(r),c=[];!a.endOfStream()&&(n=this._decoder.handler(a,a.read()))!==s;)null!==n&&(Array.isArray(n)?c.push.apply(c,n):c.push(n));if(!this._streaming){do{if((n=this._decoder.handler(a,a.read()))===s)break;null!==n&&(Array.isArray(n)?c.push.apply(c,n):c.push(n))}while(!a.endOfStream());this._decoder=null}return c.length&&(-1===["utf-8"].indexOf(this.encoding)||this._ignoreBOM||this._BOMseen||(65279===c[0]?(this._BOMseen=!0,c.shift()):this._BOMseen=!0)),function(e){for(var t="",r=0;r>10),56320+(1023&n)))}return t}(c)}},f.prototype={encode:function(e,t){e=e?String(e):"",t=o(t),this._streaming||(this._encoder=new h(this._options)),this._streaming=Boolean(t.stream);for(var r,n=[],a=new i(function(e){for(var t=String(e),r=t.length,n=0,a=[];n57343)a.push(o);else if(56320<=o&&o<=57343)a.push(65533);else if(55296<=o&&o<=56319)if(n===r-1)a.push(65533);else{var i=e.charCodeAt(n+1);if(56320<=i&&i<=57343){var s=1023&o,c=1023&i;a.push(65536+(s<<10)+c),n+=1}else a.push(65533)}n+=1}return a}(e));!a.endOfStream()&&(r=this._encoder.handler(a,a.read()))!==s;)Array.isArray(r)?n.push.apply(n,r):n.push(r);if(!this._streaming){for(;(r=this._encoder.handler(a,a.read()))!==s;)Array.isArray(r)?n.push.apply(n,r):n.push(r);this._encoder=null}return new Uint8Array(n)}},r=f,n=u})),parcelRequire.register("35nut",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Assignable=e.exports.Enum=void 0;e.exports.Enum=class{constructor(e){if(1!==Object.keys(e).length)throw new Error("Enum can only take single value");Object.keys(e).map((t=>{this[t]=e[t],this.enum=t}))}};e.exports.Assignable=class{constructor(e){Object.keys(e).map((t=>{this[t]=e[t]}))}}})),parcelRequire.register("6fIhg",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.BrowserLocalStorageKeyStore=void 0;var r=parcelRequire("5locV"),n=parcelRequire("7v7or");class a extends r.KeyStore{async setKey(e,t,r){this.localStorage.setItem(this.storageKeyForSecretKey(e,t),r.toString())}async getKey(e,t){const r=this.localStorage.getItem(this.storageKeyForSecretKey(e,t));return r?n.KeyPair.fromString(r):null}async removeKey(e,t){this.localStorage.removeItem(this.storageKeyForSecretKey(e,t))}async clear(){for(const e of this.storageKeys())e.startsWith(this.prefix)&&this.localStorage.removeItem(e)}async getNetworks(){const e=new Set;for(const t of this.storageKeys())if(t.startsWith(this.prefix)){const r=t.substring(this.prefix.length).split(":");e.add(r[1])}return Array.from(e.values())}async getAccounts(e){const t=new Array;for(const r of this.storageKeys())if(r.startsWith(this.prefix)){const n=r.substring(this.prefix.length).split(":");n[1]===e&&t.push(n[0])}return t}storageKeyForSecretKey(e,t){return`${this.prefix}${t}:${e}`}*storageKeys(){for(let e=0;e{try{const r={method:e,params:t,id:f++,jsonrpc:"2.0"},n=await i.fetchJson(this.connection,JSON.stringify(r));if(n.error){if("object"==typeof n.error.data){if("string"==typeof n.error.data.error_message&&"string"==typeof n.error.data.error_type)throw new s.TypedError(n.error.data.error_message,n.error.data.error_type);throw u.parseRpcError(n.error.data)}{const e=`[${n.error.code}] ${n.error.message}: ${n.error.data}`;if("Timeout"===n.error.data||e.includes("Timeout error")||e.includes("query has timed out"))throw new s.TypedError(e,"TimeoutError");throw new s.TypedError(e,u.getErrorTypeFromErrorMessage(n.error.data))}}return n.result}catch(r){if("TimeoutError"===r.type)return console.warn(`Retrying request to ${e} as it has timed out`,t),null;throw r}}));if(!r)throw new s.TypedError(`Exceeded 12 attempts for request to ${e}.`,"RetriesExceeded");return r}async gasPrice(e){return await this.sendJsonRpc("gas_price",[e])}constructor(e){super(),this.connection={url:e}}}e.exports.JsonRpcProvider=d})),parcelRequire.register("hIrXm",(function(e,t){ +/*! + * depd + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +"use strict";function r(e,t){if("function"!=typeof e)throw new TypeError("argument fn must be a function");return e}function n(e,t,r){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("argument obj must be object");var n=Object.getOwnPropertyDescriptor(e,t);if(!n)throw new TypeError("must call property on owner object");if(!n.configurable)throw new TypeError("property must be configurable")}e.exports=function(e){if(!e)throw new TypeError("argument namespace is required");function t(e){}return t._file=void 0,t._ignored=!0,t._namespace=e,t._traced=!1,t._warned=Object.create(null),t.function=r,t.property=n,t}})),parcelRequire.register("jxZzD",(function(e,t){var r=parcelRequire("idIiZ"),n=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.fetchJson=void 0;const a=n(parcelRequire("7OAFq")),o=n(parcelRequire("5d0mB"));var i=parcelRequire("8O0X7");let s;if("undefined"==typeof window||"nodejs"===window.name){const e=parcelRequire("2LHES"),t=parcelRequire("3CE9p"),n=parcelRequire("02WYR"),a=new t.Agent({keepAlive:!0}),o=new n.Agent({keepAlive:!0});s=function(t,n){return e(t,(0,r.default)({agent:(i=new URL(t),"http:"===i.protocol?a:o)},n));var i}}else s=window.fetch;e.exports.fetchJson=async function(e,t){let r=null;r="string"==typeof e?e:e.url;const n=await o.default(1e3,10,1.5,(async()=>{try{const e=await s(r,{method:t?"POST":"GET",body:t||void 0,headers:{"Content-Type":"application/json; charset=utf-8"}});if(!e.ok){if(503===e.status)return console.warn(`Retrying HTTP request for ${r} as it's not available now`),null;throw a.default(e.status,await e.text())}return e}catch(e){if(e.toString().includes("FetchError")||e.toString().includes("Failed to fetch"))return console.warn(`Retrying HTTP request for ${r} because of error: ${e}`),null;throw e}}));if(!n)throw new i.TypedError(`Exceeded 10 attempts for ${r}.`,"RetriesExceeded");return await n.json()}})),parcelRequire.register("idIiZ",(function(e,t){$parcel$export(e.exports,"default",(function(){return n}));var r=parcelRequire("9BvVM");function n(e){for(var t=1;t=600)&&n("non-error status code; use only 4xx or 5xx status codes");("number"!=typeof a||!o[a]&&(a<400||a>=600))&&(a=500);var u=e[a]||e[c(a)];t||(t=u?new u(r):new Error(r||o[a]),Error.captureStackTrace(t,e));u&&t instanceof u&&t.status===a||(t.expose=a<500,t.status=t.statusCode=a);for(var f in i)"status"!==f&&"statusCode"!==f&&(t[f]=i[f]);return t},e.exports.HttpError=function(){function e(){throw new TypeError("cannot construct abstract class")}return i(e,Error),e}(),e.exports.isHttpError=(r=e.exports.HttpError,function(e){return!(!e||"object"!=typeof e)&&(e instanceof r||e instanceof Error&&"boolean"==typeof e.expose&&"number"==typeof e.statusCode&&e.status===e.statusCode)}),function(e,t,r){t.forEach((function(t){var n,f=s(o[t]);switch(c(t)){case 400:n=function(e,t,r){var n=u(t);function s(e){var t=null!=e?e:o[r],i=new Error(t);return Error.captureStackTrace(i,s),a(i,s.prototype),Object.defineProperty(i,"message",{enumerable:!0,configurable:!0,value:t,writable:!0}),Object.defineProperty(i,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),i}return i(s,e),l(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!0,s}(r,f,t);break;case 500:n=function(e,t,r){var n=u(t);function s(e){var t=null!=e?e:o[r],i=new Error(t);return Error.captureStackTrace(i,s),a(i,s.prototype),Object.defineProperty(i,"message",{enumerable:!0,configurable:!0,value:t,writable:!0}),Object.defineProperty(i,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),i}return i(s,e),l(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!1,s}(r,f,t)}n&&(e[t]=n,e[f]=n)})),e["I'mateapot"]=n.function(e.ImATeapot,'"I\'mateapot"; use "ImATeapot" instead')}(e.exports,o.codes,e.exports.HttpError)})),parcelRequire.register("8bj0f",(function(e,t){ +/*! + * depd + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ +"use strict";function r(e,t){if("function"!=typeof e)throw new TypeError("argument fn must be a function");return e}function n(e,t,r){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("argument obj must be object");var n=Object.getOwnPropertyDescriptor(e,t);if(!n)throw new TypeError("must call property on owner object");if(!n.configurable)throw new TypeError("property must be configurable")}e.exports=function(e){if(!e)throw new TypeError("argument namespace is required");function t(e){}return t._file=void 0,t._ignored=!0,t._namespace=e,t._traced=!1,t._warned=Object.create(null),t.function=r,t.property=n,t}})),parcelRequire.register("6qO3b",(function(e,t){"use strict";e.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){return e.__proto__=t,e}:function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(e,r)||(e[r]=t[r]);return e})})),parcelRequire.register("5R7ii",(function(e,t){ +/*! + * statuses + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ +"use strict";var r,n,a,o=parcelRequire("39O1L");function i(e){if("number"==typeof e){if(!i[e])throw new Error("invalid status code: "+e);return e}if("string"!=typeof e)throw new TypeError("code must be a number or string");var t=parseInt(e,10);if(!isNaN(t)){if(!i[t])throw new Error("invalid status code: "+t);return t}if(!(t=i[e.toLowerCase()]))throw new Error('invalid status message: "'+e+'"');return t}e.exports=i,i.STATUS_CODES=o,i.codes=(r=i,n=o,a=[],Object.keys(n).forEach((function(e){var t=n[e],o=Number(e);r[o]=t,r[t]=o,r[t.toLowerCase()]=o,a.push(o)})),a),i.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0},i.empty={204:!0,205:!0,304:!0},i.retry={502:!0,503:!0,504:!0}})),parcelRequire.register("39O1L",(function(e,t){e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","306":"(Unused)","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')})),parcelRequire.register("aNbjQ",(function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}})),parcelRequire.register("fs0nk",(function(e,t){ +/*! + * toidentifier + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ +"use strict";e.exports=function(e){return e.split(" ").map((function(e){return e.slice(0,1).toUpperCase()+e.slice(1)})).join("").replace(/[^ _0-9a-z]/gi,"")}})),parcelRequire.register("5d0mB",(function(e,t){"use strict";function r(e){return new Promise((t=>setTimeout(t,e)))}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.default=async function(e,t,n,a){let o=e;for(let e=0;e1)for(var r=1;rt._pos){var a=n.substr(t._pos);if("x-user-defined"===t._charset){for(var i=o.alloc(a.length),s=0;st._pos&&(t.push(o.from(new Uint8Array(c.result.slice(t._pos)))),t._pos=c.result.byteLength)},c.onload=function(){e(!0),t.push(null)},c.readAsArrayBuffer(n)}t._xhr.readyState===l.DONE&&"ms-stream"!==t._mode&&(e(!0),t.push(null))}})),parcelRequire.register("gt7Vh",(function(e,t){(t=e.exports=parcelRequire("9OHdu")).Stream=t,t.Readable=t,t.Writable=parcelRequire("h41tr"),t.Duplex=parcelRequire("9dJ9Z"),t.Transform=parcelRequire("5qFiP"),t.PassThrough=parcelRequire("dhKTu"),t.finished=parcelRequire("2nD8J"),t.pipeline=parcelRequire("8cGeP")})),parcelRequire.register("9OHdu",(function(e,t){"use strict";var r,n=parcelRequire("foczT");e.exports=k,k.ReadableState=_;parcelRequire("boJyS").EventEmitter;var a=function(e,t){return e.listeners(t).length},o=parcelRequire("60ubC"),i=parcelRequire("rEmZP").Buffer,s=$parcel$global.Uint8Array||function(){};var c,l=parcelRequire("jCjhT");c=l&&l.debuglog?l.debuglog("stream"):function(){};var u,f,d,h=parcelRequire("aMJXl"),p=parcelRequire("47wRh"),b=parcelRequire("iYlRb").getHighWaterMark,$=parcelRequire("52KXJ").codes,g=$.ERR_INVALID_ARG_TYPE,m=$.ERR_STREAM_PUSH_AFTER_EOF,y=$.ERR_METHOD_NOT_IMPLEMENTED,v=$.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;parcelRequire("aNbjQ")(k,o);var w=p.errorOrDestroy,x=["error","close","destroy","pause","resume"];function _(e,t,n){r=r||parcelRequire("9dJ9Z"),e=e||{},"boolean"!=typeof n&&(n=t instanceof r),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=b(this,e,"readableHighWaterMark",n),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(u||(u=parcelRequire("eSnQq").StringDecoder),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function k(e){if(r=r||parcelRequire("9dJ9Z"),!(this instanceof k))return new k(e);var t=this instanceof r;this._readableState=new _(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function S(e,t,r,n,a){c("readableAddChunk",t);var o,l=e._readableState;if(null===t)l.reading=!1,function(e,t){if(c("onEofChunk"),t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?R(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,T(e)))}(e,l);else if(a||(o=function(e,t){var r;n=t,i.isBuffer(n)||n instanceof s||"string"==typeof t||void 0===t||e.objectMode||(r=new g("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(l,t)),o)w(e,o);else if(l.objectMode||t&&t.length>0)if("string"==typeof t||l.objectMode||Object.getPrototypeOf(t)===i.prototype||(t=function(e){return i.from(e)}(t)),n)l.endEmitted?w(e,new v):E(e,l,t,!0);else if(l.ended)w(e,new m);else{if(l.destroyed)return!1;l.reading=!1,l.decoder&&!r?(t=l.decoder.write(t),l.objectMode||0!==t.length?E(e,l,t,!1):C(e,l)):E(e,l,t,!1)}else n||(l.reading=!1,C(e,l));return!l.ended&&(l.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=A?e=A:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function R(e){var t=e._readableState;c("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(c("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(T,e))}function T(e){var t=e._readableState;c("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,O(e)}function C(e,t){t.readingMore||(t.readingMore=!0,n.nextTick(I,e,t))}function I(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function L(e){c("readable nexttick read 0"),e.read(0)}function q(e,t){c("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),O(e),t.flowing&&!t.reading&&e.read(0)}function O(e){var t=e._readableState;for(c("flow",t.flowing);t.flowing&&null!==e.read(););}function P(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function D(e){var t=e._readableState;c("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(B,t,e))}function B(e,t){if(c("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function U(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return c("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?D(this):R(this),null;if(0===(e=M(e,t))&&t.ended)return 0===t.length&&D(this),null;var n,a=t.needReadable;return c("need readable",a),(0===t.length||t.length-e0?P(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&D(this)),null!==n&&this.emit("data",n),n},k.prototype._read=function(e){w(this,new y("_read()"))},k.prototype.pipe=function(e,t){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,c("pipe count=%d opts=%j",o.pipesCount,t);var i=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?l:$;function s(t,n){c("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,c("cleanup"),e.removeListener("close",p),e.removeListener("finish",b),e.removeListener("drain",u),e.removeListener("error",h),e.removeListener("unpipe",s),r.removeListener("end",l),r.removeListener("end",$),r.removeListener("data",d),f=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function l(){c("onend"),e.end()}o.endEmitted?n.nextTick(i):r.once("end",i),e.on("unpipe",s);var u=function(e){return function(){var t=e._readableState;c("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,O(e))}}(r);e.on("drain",u);var f=!1;function d(t){c("ondata");var n=e.write(t);c("dest.write",n),!1===n&&((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==U(o.pipes,e))&&!f&&(c("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function h(t){c("onerror",t),$(),e.removeListener("error",h),0===a(e,"error")&&w(e,t)}function p(){e.removeListener("finish",b),$()}function b(){c("onfinish"),e.removeListener("close",p),$()}function $(){c("unpipe"),r.unpipe(e)}return r.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",p),e.once("finish",b),e.emit("pipe",r),o.flowing||(c("pipe resume"),r.resume()),e},k.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,a=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,!1!==a.flowing&&this.resume()):"readable"===e&&(a.endEmitted||a.readableListening||(a.readableListening=a.needReadable=!0,a.flowing=!1,a.emittedReadable=!1,c("on readable",a.length,a.reading),a.length?R(this):a.reading||n.nextTick(L,this))),r},k.prototype.addListener=k.prototype.on,k.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(N,this),r},k.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(N,this),t},k.prototype.resume=function(){var e=this._readableState;return e.flowing||(c("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(q,e,t))}(this,e)),e.paused=!1,this},k.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},k.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var a in e.on("end",(function(){if(c("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(a){(c("wrapped data"),r.decoder&&(a=r.decoder.write(a)),r.objectMode&&null==a)||(r.objectMode||a&&a.length)&&(t.push(a)||(n=!0,e.pause()))})),e)void 0===this[a]&&"function"==typeof e[a]&&(this[a]=function(t){return function(){return e[t].apply(e,arguments)}}(a));for(var o=0;o0&&i.length>a&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=i.length,s=u,console&&console.warn&&console.warn(s)}return e}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},a=f.bind(n);return a.listener=r,n.wrapFn=a,a}function h(e,t,r){var n=e._events;if(void 0===n)return[];var a=n[t];return void 0===a?[]:"function"==typeof a?r?[a.listener||a]:[a]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)a(c,this,t);else{var l=c.length,u=b(c,l);for(r=0;r=0;o--)if(r[o]===t||r[o].listener===t){i=r[o].listener,a=o;break}if(a<0)return this;0===a?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},i.prototype.listeners=function(e){return h(this,e,!0)},i.prototype.rawListeners=function(e){return h(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},i.prototype.listenerCount=p,i.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}})),parcelRequire.register("60ubC",(function(e,t){e.exports=parcelRequire("boJyS").EventEmitter})),parcelRequire.register("aMJXl",(function(e,t){"use strict";function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,n,a=o.allocUnsafe(e>>>0),i=this.head,s=0;i;)t=i.data,r=a,n=s,o.prototype.copy.call(t,r,n),s+=i.data.length,i=i.next;return a}},{key:"consume",value:function(e,t){var r;return ea.length?a.length:e;if(o===a.length?n+=a:n+=a.slice(0,e),0==(e-=o)){o===a.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=a.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var a=r.data,i=e>a.length?a.length:e;if(a.copy(t,t.length-e,0,i),0==(e-=i)){i===a.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=a.slice(i));break}++n}return this.length-=n,t}},{key:s,value:function(e,t){return i(this,function(e){for(var t=1;t2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}a("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),a("ERR_INVALID_ARG_TYPE",(function(e,t,r){var n,a,i,s;if("string"==typeof t&&(a="not ",t.substr(!i||i<0?0:+i,a.length)===a)?(n="must not be",t=t.replace(/^not /,"")):n="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))s="The ".concat(e," ").concat(n," ").concat(o(t,"type"));else{var c=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";s='The "'.concat(e,'" ').concat(c," ").concat(n," ").concat(o(t,"type"))}return s+=". Received type ".concat(typeof r)}),TypeError),a("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),a("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),a("ERR_STREAM_PREMATURE_CLOSE","Premature close"),a("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),a("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),a("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),a("ERR_STREAM_WRITE_AFTER_END","write after end"),a("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),a("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),a("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),r=n})),parcelRequire.register("9dJ9Z",(function(e,t){"use strict";var r=parcelRequire("foczT"),n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=l;var a=parcelRequire("9OHdu"),o=parcelRequire("h41tr");parcelRequire("aNbjQ")(l,a);for(var i=n(o.prototype),s=0;s-1))throw new v(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(k.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(k.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),k.prototype._write=function(e,t,r){r(new p("_write()"))},k.prototype._writev=null,k.prototype.end=function(e,t,r){var a=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),a.corked&&(a.corked=1,this.uncork()),a.ending||function(e,t,r){t.ending=!0,T(e,t),r&&(t.finished?n.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,a,r),this},Object.defineProperty(k.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(k.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),k.prototype.destroy=u.destroy,k.prototype._undestroy=u.undestroy,k.prototype._destroy=function(e,t){t(e)}})),parcelRequire.register("duaLr",(function(e,t){function r(e){try{if(!$parcel$global.localStorage)return!1}catch(e){return!1}var t=$parcel$global.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}})),parcelRequire.register("eSnQq",(function(e,t){var r;$parcel$export(e.exports,"StringDecoder",(function(){return r}),(function(e){return r=e}));var n=parcelRequire("d4PAw").Buffer,a=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===a||!a(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=l,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=u,this.end=f,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function i(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}r=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return a>0&&(e.lastNeed=a-1),a;if(--n=0)return a>0&&(e.lastNeed=a-2),a;if(--n=0)return a>0&&(2===a?a=0:e.lastNeed=a-3),a;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}})),parcelRequire.register("a9TK7",(function(e,t){"use strict";var r,n=parcelRequire("foczT");function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=parcelRequire("2nD8J"),i=Symbol("lastResolve"),s=Symbol("lastReject"),c=Symbol("error"),l=Symbol("ended"),u=Symbol("lastPromise"),f=Symbol("handlePromise"),d=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[i];if(null!==t){var r=e[d].read();null!==r&&(e[u]=null,e[i]=null,e[s]=null,t(h(r,!1)))}}function b(e){n.nextTick(p,e)}var $=Object.getPrototypeOf((function(){})),g=Object.setPrototypeOf((a(r={get stream(){return this[d]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[l])return Promise.resolve(h(void 0,!0));if(this[d].destroyed)return new Promise((function(t,r){n.nextTick((function(){e[c]?r(e[c]):t(h(void 0,!0))}))}));var r,a=this[u];if(a)r=new Promise(function(e,t){return function(r,n){e.then((function(){t[l]?r(h(void 0,!0)):t[f](r,n)}),n)}}(a,this));else{var o=this[d].read();if(null!==o)return Promise.resolve(h(o,!1));r=new Promise(this[f])}return this[u]=r,r}},Symbol.asyncIterator,(function(){return this})),a(r,"return",(function(){var e=this;return new Promise((function(t,r){e[d].destroy(null,(function(e){e?r(e):t(h(void 0,!0))}))}))})),r),$);e.exports=function(e){var t,r=Object.create(g,(a(t={},d,{value:e,writable:!0}),a(t,i,{value:null,writable:!0}),a(t,s,{value:null,writable:!0}),a(t,c,{value:null,writable:!0}),a(t,l,{value:e._readableState.endEmitted,writable:!0}),a(t,f,{value:function(e,t){var n=r[d].read();n?(r[u]=null,r[i]=null,r[s]=null,e(h(n,!1))):(r[i]=e,r[s]=t)},writable:!0}),t));return r[u]=null,o(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[s];return null!==t&&(r[u]=null,r[i]=null,r[s]=null,t(e)),void(r[c]=e)}var n=r[i];null!==n&&(r[u]=null,r[i]=null,r[s]=null,n(h(void 0,!0))),r[l]=!0})),e.on("readable",b.bind(null,r)),r}})),parcelRequire.register("2nD8J",(function(e,t){"use strict";var r=parcelRequire("52KXJ").codes.ERR_STREAM_PREMATURE_CLOSE;function n(){}e.exports=function e(t,a,o){if("function"==typeof a)return e(t,null,a);a||(a={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),a=0;a0,(function(e){n||(n=e),e&&i.forEach(c),a||(i.forEach(c),o(n))}))}));return t.reduce(l)}})),parcelRequire.register("6YHqQ",(function(e,t){e.exports=function(){for(var e={},t=0;t",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),f=["%","/","?",";","#"].concat(u),d=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,"javascript:":!0},$={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},m=parcelRequire("3UIT5");function y(e,t,r){if(e&&a.isObject(e)&&e instanceof o)return e;var n=new o;return n.parse(e,t,r),n}o.prototype.parse=function(e,t,r){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o127?N+="x":N+=I[L];if(!N.match(h)){var O=T.slice(0,A),P=T.slice(A+1),D=I.match(p);D&&(O.push(D[1]),P.unshift(D[2])),P.length&&(y="/"+P.join(".")+y),this.hostname=O.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=n.toASCII(this.hostname));var B=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+B,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!b[x])for(A=0,C=u.length;A0)&&r.host.split("@"))&&(r.auth=R.shift(),r.host=r.hostname=R.shift());return r.search=e.search,r.query=e.query,a.isNull(r.pathname)&&a.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!_.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var S=_.slice(-1)[0],E=(r.host||e.host||_.length>1)&&("."===S||".."===S)||""===S,A=0,M=_.length;M>=0;M--)"."===(S=_[M])?_.splice(M,1):".."===S?(_.splice(M,1),A++):A&&(_.splice(M,1),A--);if(!w&&!x)for(;A--;A)_.unshift("..");!w||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),E&&"/"!==_.join("/").substr(-1)&&_.push("");var R,T=""===_[0]||_[0]&&"/"===_[0].charAt(0);k&&(r.hostname=r.host=T?"":_.length?_.shift():"",(R=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=R.shift(),r.host=r.hostname=R.shift()));return(w=w||r.host&&_.length)&&!T&&_.unshift(""),_.length?r.pathname=_.join("/"):(r.pathname=null,r.path=null),a.isNull(r.pathname)&&a.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}})),parcelRequire.register("jGEAL",(function(e,t){!function(r){var n=t&&!t.nodeType&&t,a=e&&!e.nodeType&&e,o="object"==typeof $parcel$global&&$parcel$global;o.global!==o&&o.window!==o&&o.self!==o||(r=o);var i,s,c=2147483647,l=36,u=/^xn--/,f=/[^\x20-\x7E]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,h={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=Math.floor,b=String.fromCharCode;function $(e){throw RangeError(h[e])}function g(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function m(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+g((e=e.replace(d,".")).split("."),t).join(".")}function y(e){for(var t,r,n=[],a=0,o=e.length;a=55296&&t<=56319&&a65535&&(t+=b((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=b(e)})).join("")}function w(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function x(e,t,r){var n=0;for(e=r?p(e/700):e>>1,e+=p(e/t);e>455;n+=l)e=p(e/35);return p(n+36*e/(e+38))}function _(e){var t,r,n,a,o,i,s,u,f,d,h,b=[],g=e.length,m=0,y=128,w=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&$("not-basic"),b.push(e.charCodeAt(n));for(a=r>0?r+1:0;a=g&&$("invalid-input"),((u=(h=e.charCodeAt(a++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:l)>=l||u>p((c-m)/i))&&$("overflow"),m+=u*i,!(u<(f=s<=w?1:s>=w+26?26:s-w));s+=l)i>p(c/(d=l-f))&&$("overflow"),i*=d;w=x(m-o,t=b.length+1,0==o),p(m/t)>c-y&&$("overflow"),y+=p(m/t),m%=t,b.splice(m++,0,y)}return v(b)}function k(e){var t,r,n,a,o,i,s,u,f,d,h,g,m,v,_,k=[];for(g=(e=y(e)).length,t=128,r=0,o=72,i=0;i=t&&hp((c-r)/(m=n+1))&&$("overflow"),r+=(s-t)*m,t=s,i=0;ic&&$("overflow"),h==t){for(u=r,f=l;!(u<(d=f<=o?1:f>=o+26?26:f-o));f+=l)_=u-d,v=l-d,k.push(b(w(d+_%v,0))),u=p(_/v);k.push(b(w(u,0))),o=x(r,m,n==a),r=0,++n}++r,++t}return k.join("")}if(i={version:"1.3.2",ucs2:{decode:y,encode:v},decode:_,encode:k,toASCII:function(e){return m(e,(function(e){return f.test(e)?"xn--"+k(e):e}))},toUnicode:function(e){return m(e,(function(e){return u.test(e)?_(e.slice(4).toLowerCase()):e}))}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",(function(){return i}));else if(n&&a)if(e.exports==n)a.exports=i;else for(s in i)i.hasOwnProperty(s)&&(n[s]=i[s]);else r.punycode=i}(this)})),parcelRequire.register("hcQEm",(function(e,t){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}})),parcelRequire.register("3UIT5",(function(e,t){var r,n;$parcel$export(e.exports,"parse",(function(){return r}),(function(e){return r=e})),$parcel$export(e.exports,"stringify",(function(){return n}),(function(e){return n=e})),r=parcelRequire("1v1rx"),n=parcelRequire("9hUPv")})),parcelRequire.register("1v1rx",(function(e,t){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,a,o){t=t||"&",a=a||"=";var i={};if("string"!=typeof e||0===e.length)return i;var s=/\+/g;e=e.split(t);var c=1e3;o&&"number"==typeof o.maxKeys&&(c=o.maxKeys);var l=e.length;c>0&&l>c&&(l=c);for(var u=0;u=0?(f=b.substr(0,$),d=b.substr($+1)):(f=b,d=""),h=decodeURIComponent(f),p=decodeURIComponent(d),r(i,h)?n(i[h])?i[h].push(p):i[h]=[i[h],p]:i[h]=p}return i};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}})),parcelRequire.register("9hUPv",(function(e,t){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,i,s){return t=t||"&",i=i||"=",null===e&&(e=void 0),"object"==typeof e?a(o(e),(function(o){var s=encodeURIComponent(r(o))+i;return n(e[o])?a(e[o],(function(e){return s+encodeURIComponent(r(e))})).join(t):s+encodeURIComponent(r(e[o]))})).join(t):s?encodeURIComponent(r(s))+i+encodeURIComponent(r(e)):""};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function a(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n":">",'"':""","'":"'","/":"/","`":"`","=":"="};function d(e){return String(e).replace(/[&<>"'`=\/]/g,(function(e){return f[e]}))}var h=/\s*/,p=/\s+/,b=/\s*=/,$=/\s*\}/,g=/#|\^|\/|>|\{|&|=|!/;function m(e,r){if(!e)return[];var n,o,i,s=!1,c=[],l=[],f=[],d=!1,m=!1,x="",_=0;function S(){if(d&&!m)for(;f.length;)delete l[f.pop()];else f=[];d=!1,m=!1}function E(e){if("string"==typeof e&&(e=e.split(p,2)),!t(e)||2!==e.length)throw new Error("Invalid tags: "+e);n=new RegExp(a(e[0])+"\\s*"),o=new RegExp("\\s*"+a(e[1])),i=new RegExp("\\s*"+a("}"+e[1]))}E(r||k.tags);for(var A,M,R,T,C,I,N=new w(e);!N.eos();){if(A=N.pos,R=N.scanUntil(n))for(var L=0,q=R.length;L0?a[a.length-1][4]:r;break;default:n.push(t)}return r}function w(e){this.string=e,this.tail=e,this.pos=0}function x(e,t){this.view=e,this.cache={".":this.view},this.parent=t}function _(){this.templateCache={_cache:{},set:function(e,t){this._cache[e]=t},get:function(e){return this._cache[e]},clear:function(){this._cache={}}}}w.prototype.eos=function(){return""===this.tail},w.prototype.scan=function(e){var t=this.tail.match(e);if(!t||0!==t.index)return"";var r=t[0];return this.tail=this.tail.substring(r.length),this.pos+=r.length,r},w.prototype.scanUntil=function(e){var t,r=this.tail.search(e);switch(r){case-1:t=this.tail,this.tail="";break;case 0:t="";break;default:t=this.tail.substring(0,r),this.tail=this.tail.substring(r)}return this.pos+=t.length,t},x.prototype.push=function(e){return new x(e,this)},x.prototype.lookup=function(e){var t,n=this.cache;if(n.hasOwnProperty(e))t=n[e];else{for(var a,s,c,l=this,u=!1;l;){if(e.indexOf(".")>0)for(a=l.view,s=e.split("."),c=0;null!=a&&c"===i?s=this.renderPartial(o,t,r,a):"&"===i?s=this.unescapedValue(o,t):"name"===i?s=this.escapedValue(o,t,a):"text"===i&&(s=this.rawValue(o)),void 0!==s&&(c+=s);return c},_.prototype.renderSection=function(e,n,a,o,i){var s=this,c="",l=n.lookup(e[1]);function u(e){return s.render(e,n,a,i)}if(l){if(t(l))for(var f=0,d=l.length;f0||!r)&&(a[o]=n+a[o]);return a.join("\n")},_.prototype.renderPartial=function(e,t,n,a){if(n){var o=this.getConfigTags(a),i=r(n)?n(e[1]):n[e[1]];if(null!=i){var s=e[6],c=e[5],l=e[4],u=i;0==c&&l&&(u=this.indentPartial(i,l,s));var f=this.parse(u,o);return this.renderTokens(f,t,n,u,a)}}},_.prototype.unescapedValue=function(e,t){var r=t.lookup(e[1]);if(null!=r)return r},_.prototype.escapedValue=function(e,t,r){var n=this.getConfigEscape(r)||k.escape,a=t.lookup(e[1]);if(null!=a)return"number"==typeof a&&n===k.escape?String(a):n(a)},_.prototype.rawValue=function(e){return e[1]},_.prototype.getConfigTags=function(e){return t(e)?e:e&&"object"==typeof e?e.tags:void 0},_.prototype.getConfigEscape=function(e){return e&&"object"==typeof e&&!t(e)?e.escape:void 0};var k={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(e){S.templateCache=e},get templateCache(){return S.templateCache}},S=new _;return k.clearCache=function(){return S.clearCache()},k.parse=function(e,t){return S.parse(e,t)},k.render=function(e,t,r,a){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+n(e)+'" was given as the first argument for mustache#render(template, view, partials)');return S.render(e,t,r,a)},k.escape=d,k.Scanner=w,k.Context=x,k.Writer=_,k}()})),parcelRequire.register("k98kz",(function(e,t){e.exports=JSON.parse('{"schema":{"BadUTF16":{"name":"BadUTF16","subtypes":[],"props":{}},"BadUTF8":{"name":"BadUTF8","subtypes":[],"props":{}},"BalanceExceeded":{"name":"BalanceExceeded","subtypes":[],"props":{}},"BreakpointTrap":{"name":"BreakpointTrap","subtypes":[],"props":{}},"CacheError":{"name":"CacheError","subtypes":["ReadError","WriteError","DeserializationError","SerializationError"],"props":{}},"CallIndirectOOB":{"name":"CallIndirectOOB","subtypes":[],"props":{}},"CannotAppendActionToJointPromise":{"name":"CannotAppendActionToJointPromise","subtypes":[],"props":{}},"CannotReturnJointPromise":{"name":"CannotReturnJointPromise","subtypes":[],"props":{}},"CodeDoesNotExist":{"name":"CodeDoesNotExist","subtypes":[],"props":{"account_id":""}},"CompilationError":{"name":"CompilationError","subtypes":["CodeDoesNotExist","PrepareError","WasmerCompileError"],"props":{}},"ContractSizeExceeded":{"name":"ContractSizeExceeded","subtypes":[],"props":{"limit":"","size":""}},"Deprecated":{"name":"Deprecated","subtypes":[],"props":{"method_name":""}},"Deserialization":{"name":"Deserialization","subtypes":[],"props":{}},"DeserializationError":{"name":"DeserializationError","subtypes":[],"props":{}},"EmptyMethodName":{"name":"EmptyMethodName","subtypes":[],"props":{}},"FunctionCallError":{"name":"FunctionCallError","subtypes":["CompilationError","LinkError","MethodResolveError","WasmTrap","WasmUnknownError","HostError","EvmError"],"props":{}},"GasExceeded":{"name":"GasExceeded","subtypes":[],"props":{}},"GasInstrumentation":{"name":"GasInstrumentation","subtypes":[],"props":{}},"GasLimitExceeded":{"name":"GasLimitExceeded","subtypes":[],"props":{}},"GenericTrap":{"name":"GenericTrap","subtypes":[],"props":{}},"GuestPanic":{"name":"GuestPanic","subtypes":[],"props":{"panic_msg":""}},"HostError":{"name":"HostError","subtypes":["BadUTF16","BadUTF8","GasExceeded","GasLimitExceeded","BalanceExceeded","EmptyMethodName","GuestPanic","IntegerOverflow","InvalidPromiseIndex","CannotAppendActionToJointPromise","CannotReturnJointPromise","InvalidPromiseResultIndex","InvalidRegisterId","IteratorWasInvalidated","MemoryAccessViolation","InvalidReceiptIndex","InvalidIteratorIndex","InvalidAccountId","InvalidMethodName","InvalidPublicKey","ProhibitedInView","NumberOfLogsExceeded","KeyLengthExceeded","ValueLengthExceeded","TotalLogLengthExceeded","NumberPromisesExceeded","NumberInputDataDependenciesExceeded","ReturnedValueLengthExceeded","ContractSizeExceeded","Deprecated"],"props":{}},"IllegalArithmetic":{"name":"IllegalArithmetic","subtypes":[],"props":{}},"IncorrectCallIndirectSignature":{"name":"IncorrectCallIndirectSignature","subtypes":[],"props":{}},"Instantiate":{"name":"Instantiate","subtypes":[],"props":{}},"IntegerOverflow":{"name":"IntegerOverflow","subtypes":[],"props":{}},"InternalMemoryDeclared":{"name":"InternalMemoryDeclared","subtypes":[],"props":{}},"InvalidAccountId":{"name":"InvalidAccountId","subtypes":[],"props":{"account_id":""}},"InvalidIteratorIndex":{"name":"InvalidIteratorIndex","subtypes":[],"props":{"iterator_index":""}},"InvalidMethodName":{"name":"InvalidMethodName","subtypes":[],"props":{}},"InvalidPromiseIndex":{"name":"InvalidPromiseIndex","subtypes":[],"props":{"promise_idx":""}},"InvalidPromiseResultIndex":{"name":"InvalidPromiseResultIndex","subtypes":[],"props":{"result_idx":""}},"InvalidPublicKey":{"name":"InvalidPublicKey","subtypes":[],"props":{}},"InvalidReceiptIndex":{"name":"InvalidReceiptIndex","subtypes":[],"props":{"receipt_index":""}},"InvalidRegisterId":{"name":"InvalidRegisterId","subtypes":[],"props":{"register_id":""}},"IteratorWasInvalidated":{"name":"IteratorWasInvalidated","subtypes":[],"props":{"iterator_index":""}},"KeyLengthExceeded":{"name":"KeyLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"LinkError":{"name":"LinkError","subtypes":[],"props":{"msg":""}},"Memory":{"name":"Memory","subtypes":[],"props":{}},"MemoryAccessViolation":{"name":"MemoryAccessViolation","subtypes":[],"props":{}},"MemoryOutOfBounds":{"name":"MemoryOutOfBounds","subtypes":[],"props":{}},"MethodEmptyName":{"name":"MethodEmptyName","subtypes":[],"props":{}},"MethodInvalidSignature":{"name":"MethodInvalidSignature","subtypes":[],"props":{}},"MethodNotFound":{"name":"MethodNotFound","subtypes":[],"props":{}},"MethodResolveError":{"name":"MethodResolveError","subtypes":["MethodEmptyName","MethodUTF8Error","MethodNotFound","MethodInvalidSignature"],"props":{}},"MethodUTF8Error":{"name":"MethodUTF8Error","subtypes":[],"props":{}},"MisalignedAtomicAccess":{"name":"MisalignedAtomicAccess","subtypes":[],"props":{}},"NumberInputDataDependenciesExceeded":{"name":"NumberInputDataDependenciesExceeded","subtypes":[],"props":{"limit":"","number_of_input_data_dependencies":""}},"NumberOfLogsExceeded":{"name":"NumberOfLogsExceeded","subtypes":[],"props":{"limit":""}},"NumberPromisesExceeded":{"name":"NumberPromisesExceeded","subtypes":[],"props":{"limit":"","number_of_promises":""}},"PrepareError":{"name":"PrepareError","subtypes":["Serialization","Deserialization","InternalMemoryDeclared","GasInstrumentation","StackHeightInstrumentation","Instantiate","Memory"],"props":{}},"ProhibitedInView":{"name":"ProhibitedInView","subtypes":[],"props":{"method_name":""}},"ReadError":{"name":"ReadError","subtypes":[],"props":{}},"ReturnedValueLengthExceeded":{"name":"ReturnedValueLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"Serialization":{"name":"Serialization","subtypes":[],"props":{}},"SerializationError":{"name":"SerializationError","subtypes":[],"props":{"hash":""}},"StackHeightInstrumentation":{"name":"StackHeightInstrumentation","subtypes":[],"props":{}},"StackOverflow":{"name":"StackOverflow","subtypes":[],"props":{}},"TotalLogLengthExceeded":{"name":"TotalLogLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"Unreachable":{"name":"Unreachable","subtypes":[],"props":{}},"ValueLengthExceeded":{"name":"ValueLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"WasmTrap":{"name":"WasmTrap","subtypes":["Unreachable","IncorrectCallIndirectSignature","MemoryOutOfBounds","CallIndirectOOB","IllegalArithmetic","MisalignedAtomicAccess","BreakpointTrap","StackOverflow","GenericTrap"],"props":{}},"WasmUnknownError":{"name":"WasmUnknownError","subtypes":[],"props":{}},"WasmerCompileError":{"name":"WasmerCompileError","subtypes":[],"props":{"msg":""}},"WriteError":{"name":"WriteError","subtypes":[],"props":{}},"AccessKeyNotFound":{"name":"AccessKeyNotFound","subtypes":[],"props":{"account_id":"","public_key":""}},"AccountAlreadyExists":{"name":"AccountAlreadyExists","subtypes":[],"props":{"account_id":""}},"AccountDoesNotExist":{"name":"AccountDoesNotExist","subtypes":[],"props":{"account_id":""}},"ActionError":{"name":"ActionError","subtypes":["AccountAlreadyExists","AccountDoesNotExist","CreateAccountOnlyByRegistrar","CreateAccountNotAllowed","ActorNoPermission","DeleteKeyDoesNotExist","AddKeyAlreadyExists","DeleteAccountStaking","LackBalanceForState","TriesToUnstake","TriesToStake","InsufficientStake","FunctionCallError","NewReceiptValidationError","OnlyImplicitAccountCreationAllowed"],"props":{"index":""}},"ActionsValidationError":{"name":"ActionsValidationError","subtypes":["DeleteActionMustBeFinal","TotalPrepaidGasExceeded","TotalNumberOfActionsExceeded","AddKeyMethodNamesNumberOfBytesExceeded","AddKeyMethodNameLengthExceeded","IntegerOverflow","InvalidAccountId","ContractSizeExceeded","FunctionCallMethodNameLengthExceeded","FunctionCallArgumentsLengthExceeded","UnsuitableStakingKey","FunctionCallZeroAttachedGas"],"props":{}},"ActorNoPermission":{"name":"ActorNoPermission","subtypes":[],"props":{"account_id":"","actor_id":""}},"AddKeyAlreadyExists":{"name":"AddKeyAlreadyExists","subtypes":[],"props":{"account_id":"","public_key":""}},"AddKeyMethodNameLengthExceeded":{"name":"AddKeyMethodNameLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"AddKeyMethodNamesNumberOfBytesExceeded":{"name":"AddKeyMethodNamesNumberOfBytesExceeded","subtypes":[],"props":{"limit":"","total_number_of_bytes":""}},"BalanceMismatchError":{"name":"BalanceMismatchError","subtypes":[],"props":{"final_accounts_balance":"","final_postponed_receipts_balance":"","incoming_receipts_balance":"","incoming_validator_rewards":"","initial_accounts_balance":"","initial_postponed_receipts_balance":"","new_delayed_receipts_balance":"","other_burnt_amount":"","outgoing_receipts_balance":"","processed_delayed_receipts_balance":"","slashed_burnt_amount":"","tx_burnt_amount":""}},"CostOverflow":{"name":"CostOverflow","subtypes":[],"props":{}},"CreateAccountNotAllowed":{"name":"CreateAccountNotAllowed","subtypes":[],"props":{"account_id":"","predecessor_id":""}},"CreateAccountOnlyByRegistrar":{"name":"CreateAccountOnlyByRegistrar","subtypes":[],"props":{"account_id":"","predecessor_id":"","registrar_account_id":""}},"DeleteAccountStaking":{"name":"DeleteAccountStaking","subtypes":[],"props":{"account_id":""}},"DeleteActionMustBeFinal":{"name":"DeleteActionMustBeFinal","subtypes":[],"props":{}},"DeleteKeyDoesNotExist":{"name":"DeleteKeyDoesNotExist","subtypes":[],"props":{"account_id":"","public_key":""}},"DepositWithFunctionCall":{"name":"DepositWithFunctionCall","subtypes":[],"props":{}},"Expired":{"name":"Expired","subtypes":[],"props":{}},"FunctionCallArgumentsLengthExceeded":{"name":"FunctionCallArgumentsLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"FunctionCallMethodNameLengthExceeded":{"name":"FunctionCallMethodNameLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"FunctionCallZeroAttachedGas":{"name":"FunctionCallZeroAttachedGas","subtypes":[],"props":{}},"InsufficientStake":{"name":"InsufficientStake","subtypes":[],"props":{"account_id":"","minimum_stake":"","stake":""}},"InvalidAccessKeyError":{"name":"InvalidAccessKeyError","subtypes":["AccessKeyNotFound","ReceiverMismatch","MethodNameMismatch","RequiresFullAccess","NotEnoughAllowance","DepositWithFunctionCall"],"props":{}},"InvalidChain":{"name":"InvalidChain","subtypes":[],"props":{}},"InvalidDataReceiverId":{"name":"InvalidDataReceiverId","subtypes":[],"props":{"account_id":""}},"InvalidNonce":{"name":"InvalidNonce","subtypes":[],"props":{"ak_nonce":"","tx_nonce":""}},"InvalidPredecessorId":{"name":"InvalidPredecessorId","subtypes":[],"props":{"account_id":""}},"InvalidReceiverId":{"name":"InvalidReceiverId","subtypes":[],"props":{"account_id":""}},"InvalidSignature":{"name":"InvalidSignature","subtypes":[],"props":{}},"InvalidSignerId":{"name":"InvalidSignerId","subtypes":[],"props":{"account_id":""}},"InvalidTxError":{"name":"InvalidTxError","subtypes":["InvalidAccessKeyError","InvalidSignerId","SignerDoesNotExist","InvalidNonce","InvalidReceiverId","InvalidSignature","NotEnoughBalance","LackBalanceForState","CostOverflow","InvalidChain","Expired","ActionsValidation"],"props":{}},"LackBalanceForState":{"name":"LackBalanceForState","subtypes":[],"props":{"account_id":"","amount":""}},"MethodNameMismatch":{"name":"MethodNameMismatch","subtypes":[],"props":{"method_name":""}},"NotEnoughAllowance":{"name":"NotEnoughAllowance","subtypes":[],"props":{"account_id":"","allowance":"","cost":"","public_key":""}},"NotEnoughBalance":{"name":"NotEnoughBalance","subtypes":[],"props":{"balance":"","cost":"","signer_id":""}},"OnlyImplicitAccountCreationAllowed":{"name":"OnlyImplicitAccountCreationAllowed","subtypes":[],"props":{"account_id":""}},"ReceiptValidationError":{"name":"ReceiptValidationError","subtypes":["InvalidPredecessorId","InvalidReceiverId","InvalidSignerId","InvalidDataReceiverId","ReturnedValueLengthExceeded","NumberInputDataDependenciesExceeded","ActionsValidation"],"props":{}},"ReceiverMismatch":{"name":"ReceiverMismatch","subtypes":[],"props":{"ak_receiver":"","tx_receiver":""}},"RequiresFullAccess":{"name":"RequiresFullAccess","subtypes":[],"props":{}},"SignerDoesNotExist":{"name":"SignerDoesNotExist","subtypes":[],"props":{"signer_id":""}},"TotalNumberOfActionsExceeded":{"name":"TotalNumberOfActionsExceeded","subtypes":[],"props":{"limit":"","total_number_of_actions":""}},"TotalPrepaidGasExceeded":{"name":"TotalPrepaidGasExceeded","subtypes":[],"props":{"limit":"","total_prepaid_gas":""}},"TriesToStake":{"name":"TriesToStake","subtypes":[],"props":{"account_id":"","balance":"","locked":"","stake":""}},"TriesToUnstake":{"name":"TriesToUnstake","subtypes":[],"props":{"account_id":""}},"TxExecutionError":{"name":"TxExecutionError","subtypes":["ActionError","InvalidTxError"],"props":{}},"UnsuitableStakingKey":{"name":"UnsuitableStakingKey","subtypes":[],"props":{"public_key":""}},"Closed":{"name":"Closed","subtypes":[],"props":{}},"InternalError":{"name":"InternalError","subtypes":[],"props":{}},"ServerError":{"name":"ServerError","subtypes":["TxExecutionError","Timeout","Closed","InternalError"],"props":{}},"Timeout":{"name":"Timeout","subtypes":[],"props":{}}}}')})),parcelRequire.register("l5WTH",(function(e,t){e.exports=JSON.parse('{"GasLimitExceeded":"Exceeded the maximum amount of gas allowed to burn per contract","MethodEmptyName":"Method name is empty","WasmerCompileError":"Wasmer compilation error: {{msg}}","GuestPanic":"Smart contract panicked: {{panic_msg}}","Memory":"Error creating Wasm memory","GasExceeded":"Exceeded the prepaid gas","MethodUTF8Error":"Method name is not valid UTF8 string","BadUTF16":"String encoding is bad UTF-16 sequence","WasmTrap":"WebAssembly trap: {{msg}}","GasInstrumentation":"Gas instrumentation failed or contract has denied instructions.","InvalidPromiseIndex":"{{promise_idx}} does not correspond to existing promises","InvalidPromiseResultIndex":"Accessed invalid promise result index: {{result_idx}}","Deserialization":"Error happened while deserializing the module","MethodNotFound":"Contract method is not found","InvalidRegisterId":"Accessed invalid register id: {{register_id}}","InvalidReceiptIndex":"VM Logic returned an invalid receipt index: {{receipt_index}}","EmptyMethodName":"Method name is empty in contract call","CannotReturnJointPromise":"Returning joint promise is currently prohibited","StackHeightInstrumentation":"Stack instrumentation failed","CodeDoesNotExist":"Cannot find contract code for account {{account_id}}","MethodInvalidSignature":"Invalid method signature","IntegerOverflow":"Integer overflow happened during contract execution","MemoryAccessViolation":"MemoryAccessViolation","InvalidIteratorIndex":"Iterator index {{iterator_index}} does not exist","IteratorWasInvalidated":"Iterator {{iterator_index}} was invalidated after its creation by performing a mutable operation on trie","InvalidAccountId":"VM Logic returned an invalid account id","Serialization":"Error happened while serializing the module","CannotAppendActionToJointPromise":"Actions can only be appended to non-joint promise.","InternalMemoryDeclared":"Internal memory declaration has been found in the module","Instantiate":"Error happened during instantiation","ProhibitedInView":"{{method_name}} is not allowed in view calls","InvalidMethodName":"VM Logic returned an invalid method name","BadUTF8":"String encoding is bad UTF-8 sequence","BalanceExceeded":"Exceeded the account balance","LinkError":"Wasm contract link error: {{msg}}","InvalidPublicKey":"VM Logic provided an invalid public key","ActorNoPermission":"Actor {{actor_id}} doesn\'t have permission to account {{account_id}} to complete the action","LackBalanceForState":"The account {{account_id}} wouldn\'t have enough balance to cover storage, required to have {{amount}} yoctoNEAR more","ReceiverMismatch":"Wrong AccessKey used for transaction: transaction is sent to receiver_id={{tx_receiver}}, but is signed with function call access key that restricted to only use with receiver_id={{ak_receiver}}. Either change receiver_id in your transaction or switch to use a FullAccessKey.","CostOverflow":"Transaction gas or balance cost is too high","InvalidSignature":"Transaction is not signed with the given public key","AccessKeyNotFound":"Signer \\"{{account_id}}\\" doesn\'t have access key with the given public_key {{public_key}}","NotEnoughBalance":"Sender {{signer_id}} does not have enough balance {{balance}} for operation costing {{cost}}","NotEnoughAllowance":"Access Key {account_id}:{public_key} does not have enough balance {{allowance}} for transaction costing {{cost}}","Expired":"Transaction has expired","DeleteAccountStaking":"Account {{account_id}} is staking and can not be deleted","SignerDoesNotExist":"Signer {{signer_id}} does not exist","TriesToStake":"Account {{account_id}} tries to stake {{stake}}, but has staked {{locked}} and only has {{balance}}","AddKeyAlreadyExists":"The public key {{public_key}} is already used for an existing access key","InvalidSigner":"Invalid signer account ID {{signer_id}} according to requirements","CreateAccountNotAllowed":"The new account_id {{account_id}} can\'t be created by {{predecessor_id}}","RequiresFullAccess":"The transaction contains more then one action, but it was signed with an access key which allows transaction to apply only one specific action. To apply more then one actions TX must be signed with a full access key","TriesToUnstake":"Account {{account_id}} is not yet staked, but tries to unstake","InvalidNonce":"Transaction nonce {{tx_nonce}} must be larger than nonce of the used access key {{ak_nonce}}","AccountAlreadyExists":"Can\'t create a new account {{account_id}}, because it already exists","InvalidChain":"Transaction parent block hash doesn\'t belong to the current chain","AccountDoesNotExist":"Can\'t complete the action because account {{account_id}} doesn\'t exist","MethodNameMismatch":"Transaction method name {{method_name}} isn\'t allowed by the access key","DeleteAccountHasRent":"Account {{account_id}} can\'t be deleted. It has {{balance}}, which is enough to cover the rent","DeleteAccountHasEnoughBalance":"Account {{account_id}} can\'t be deleted. It has {{balance}}, which is enough to cover it\'s storage","InvalidReceiver":"Invalid receiver account ID {{receiver_id}} according to requirements","DeleteKeyDoesNotExist":"Account {{account_id}} tries to remove an access key that doesn\'t exist","Timeout":"Timeout exceeded","Closed":"Connection closed"}')})),parcelRequire.register("aelMj",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Timeout=e.exports.InternalError=e.exports.Closed=e.exports.UnsuitableStakingKey=e.exports.TriesToUnstake=e.exports.TriesToStake=e.exports.TotalPrepaidGasExceeded=e.exports.TotalNumberOfActionsExceeded=e.exports.SignerDoesNotExist=e.exports.RequiresFullAccess=e.exports.ReceiverMismatch=e.exports.OnlyImplicitAccountCreationAllowed=e.exports.NotEnoughBalance=e.exports.NotEnoughAllowance=e.exports.MethodNameMismatch=e.exports.LackBalanceForState=e.exports.InvalidSignerId=e.exports.InvalidSignature=e.exports.InvalidReceiverId=e.exports.InvalidPredecessorId=e.exports.InvalidNonce=e.exports.InvalidDataReceiverId=e.exports.ReceiptValidationError=e.exports.InvalidChain=e.exports.InsufficientStake=e.exports.FunctionCallZeroAttachedGas=e.exports.FunctionCallMethodNameLengthExceeded=e.exports.FunctionCallArgumentsLengthExceeded=e.exports.Expired=e.exports.DepositWithFunctionCall=e.exports.DeleteKeyDoesNotExist=e.exports.DeleteActionMustBeFinal=e.exports.DeleteAccountStaking=e.exports.CreateAccountOnlyByRegistrar=e.exports.CreateAccountNotAllowed=e.exports.CostOverflow=e.exports.BalanceMismatchError=e.exports.AddKeyMethodNamesNumberOfBytesExceeded=e.exports.AddKeyMethodNameLengthExceeded=e.exports.AddKeyAlreadyExists=e.exports.ActorNoPermission=e.exports.ActionsValidationError=e.exports.AccountDoesNotExist=e.exports.AccountAlreadyExists=e.exports.AccessKeyNotFound=e.exports.InvalidAccessKeyError=e.exports.InvalidTxError=e.exports.WriteError=e.exports.WasmerCompileError=e.exports.WasmUnknownError=e.exports.ValueLengthExceeded=e.exports.Unreachable=e.exports.TotalLogLengthExceeded=e.exports.StackOverflow=e.exports.StackHeightInstrumentation=e.exports.SerializationError=e.exports.Serialization=e.exports.ReturnedValueLengthExceeded=e.exports.ReadError=e.exports.ProhibitedInView=e.exports.NumberPromisesExceeded=e.exports.NumberOfLogsExceeded=e.exports.NumberInputDataDependenciesExceeded=e.exports.MisalignedAtomicAccess=e.exports.MethodUTF8Error=e.exports.MethodNotFound=e.exports.MethodInvalidSignature=e.exports.MethodEmptyName=e.exports.MethodResolveError=e.exports.MemoryOutOfBounds=e.exports.MemoryAccessViolation=e.exports.Memory=e.exports.LinkError=e.exports.KeyLengthExceeded=e.exports.IteratorWasInvalidated=e.exports.InvalidRegisterId=e.exports.InvalidReceiptIndex=e.exports.InvalidPublicKey=e.exports.InvalidPromiseResultIndex=e.exports.InvalidPromiseIndex=e.exports.InvalidMethodName=e.exports.InvalidIteratorIndex=e.exports.InvalidAccountId=e.exports.InternalMemoryDeclared=e.exports.IntegerOverflow=e.exports.Instantiate=e.exports.IncorrectCallIndirectSignature=e.exports.IllegalArithmetic=e.exports.GuestPanic=e.exports.GenericTrap=e.exports.GasLimitExceeded=e.exports.GasInstrumentation=e.exports.GasExceeded=e.exports.EmptyMethodName=e.exports.DeserializationError=e.exports.Deserialization=e.exports.PrepareError=e.exports.Deprecated=e.exports.ContractSizeExceeded=e.exports.CodeDoesNotExist=e.exports.CompilationError=e.exports.CannotReturnJointPromise=e.exports.CannotAppendActionToJointPromise=e.exports.CallIndirectOOB=e.exports.CacheError=e.exports.BreakpointTrap=e.exports.WasmTrap=e.exports.BalanceExceeded=e.exports.BadUTF8=e.exports.BadUTF16=e.exports.HostError=e.exports.FunctionCallError=e.exports.ActionError=e.exports.TxExecutionError=e.exports.ServerError=void 0;var r=parcelRequire("cEknr");class n extends r.TypedError{}e.exports.ServerError=n;class a extends n{}e.exports.TxExecutionError=a;class o extends a{}e.exports.ActionError=o;class i extends o{}e.exports.FunctionCallError=i;class s extends i{}e.exports.HostError=s;e.exports.BadUTF16=class extends s{};e.exports.BadUTF8=class extends s{};e.exports.BalanceExceeded=class extends s{};class c extends i{}e.exports.WasmTrap=c;e.exports.BreakpointTrap=class extends c{};class l extends r.TypedError{}e.exports.CacheError=l;e.exports.CallIndirectOOB=class extends c{};e.exports.CannotAppendActionToJointPromise=class extends s{};e.exports.CannotReturnJointPromise=class extends s{};class u extends i{}e.exports.CompilationError=u;e.exports.CodeDoesNotExist=class extends u{};e.exports.ContractSizeExceeded=class extends s{};e.exports.Deprecated=class extends s{};class f extends u{}e.exports.PrepareError=f;e.exports.Deserialization=class extends f{};e.exports.DeserializationError=class extends l{};e.exports.EmptyMethodName=class extends s{};e.exports.GasExceeded=class extends s{};e.exports.GasInstrumentation=class extends f{};e.exports.GasLimitExceeded=class extends s{};e.exports.GenericTrap=class extends c{};e.exports.GuestPanic=class extends s{};e.exports.IllegalArithmetic=class extends c{};e.exports.IncorrectCallIndirectSignature=class extends c{};e.exports.Instantiate=class extends f{};e.exports.IntegerOverflow=class extends s{};e.exports.InternalMemoryDeclared=class extends f{};e.exports.InvalidAccountId=class extends s{};e.exports.InvalidIteratorIndex=class extends s{};e.exports.InvalidMethodName=class extends s{};e.exports.InvalidPromiseIndex=class extends s{};e.exports.InvalidPromiseResultIndex=class extends s{};e.exports.InvalidPublicKey=class extends s{};e.exports.InvalidReceiptIndex=class extends s{};e.exports.InvalidRegisterId=class extends s{};e.exports.IteratorWasInvalidated=class extends s{};e.exports.KeyLengthExceeded=class extends s{};e.exports.LinkError=class extends i{};e.exports.Memory=class extends f{};e.exports.MemoryAccessViolation=class extends s{};e.exports.MemoryOutOfBounds=class extends c{};class d extends i{}e.exports.MethodResolveError=d;e.exports.MethodEmptyName=class extends d{};e.exports.MethodInvalidSignature=class extends d{};e.exports.MethodNotFound=class extends d{};e.exports.MethodUTF8Error=class extends d{};e.exports.MisalignedAtomicAccess=class extends c{};e.exports.NumberInputDataDependenciesExceeded=class extends s{};e.exports.NumberOfLogsExceeded=class extends s{};e.exports.NumberPromisesExceeded=class extends s{};e.exports.ProhibitedInView=class extends s{};e.exports.ReadError=class extends l{};e.exports.ReturnedValueLengthExceeded=class extends s{};e.exports.Serialization=class extends f{};e.exports.SerializationError=class extends l{};e.exports.StackHeightInstrumentation=class extends f{};e.exports.StackOverflow=class extends c{};e.exports.TotalLogLengthExceeded=class extends s{};e.exports.Unreachable=class extends c{};e.exports.ValueLengthExceeded=class extends s{};e.exports.WasmUnknownError=class extends i{};e.exports.WasmerCompileError=class extends u{};e.exports.WriteError=class extends l{};class h extends a{}e.exports.InvalidTxError=h;class p extends h{}e.exports.InvalidAccessKeyError=p;e.exports.AccessKeyNotFound=class extends p{};e.exports.AccountAlreadyExists=class extends o{};e.exports.AccountDoesNotExist=class extends o{};class b extends r.TypedError{}e.exports.ActionsValidationError=b;e.exports.ActorNoPermission=class extends o{};e.exports.AddKeyAlreadyExists=class extends o{};e.exports.AddKeyMethodNameLengthExceeded=class extends b{};e.exports.AddKeyMethodNamesNumberOfBytesExceeded=class extends b{};class $ extends r.TypedError{}e.exports.BalanceMismatchError=$;e.exports.CostOverflow=class extends h{};e.exports.CreateAccountNotAllowed=class extends o{};e.exports.CreateAccountOnlyByRegistrar=class extends o{};e.exports.DeleteAccountStaking=class extends o{};e.exports.DeleteActionMustBeFinal=class extends b{};e.exports.DeleteKeyDoesNotExist=class extends o{};e.exports.DepositWithFunctionCall=class extends p{};e.exports.Expired=class extends h{};e.exports.FunctionCallArgumentsLengthExceeded=class extends b{};e.exports.FunctionCallMethodNameLengthExceeded=class extends b{};e.exports.FunctionCallZeroAttachedGas=class extends b{};e.exports.InsufficientStake=class extends o{};e.exports.InvalidChain=class extends h{};class g extends r.TypedError{}e.exports.ReceiptValidationError=g;e.exports.InvalidDataReceiverId=class extends g{};e.exports.InvalidNonce=class extends h{};e.exports.InvalidPredecessorId=class extends g{};e.exports.InvalidReceiverId=class extends h{};e.exports.InvalidSignature=class extends h{};e.exports.InvalidSignerId=class extends h{};e.exports.LackBalanceForState=class extends o{};e.exports.MethodNameMismatch=class extends p{};e.exports.NotEnoughAllowance=class extends p{};e.exports.NotEnoughBalance=class extends h{};e.exports.OnlyImplicitAccountCreationAllowed=class extends o{};e.exports.ReceiverMismatch=class extends p{};e.exports.RequiresFullAccess=class extends p{};e.exports.SignerDoesNotExist=class extends h{};e.exports.TotalNumberOfActionsExceeded=class extends b{};e.exports.TotalPrepaidGasExceeded=class extends b{};e.exports.TriesToStake=class extends o{};e.exports.TriesToUnstake=class extends o{};e.exports.UnsuitableStakingKey=class extends b{};e.exports.Closed=class extends n{};e.exports.InternalError=class extends n{};e.exports.Timeout=class extends n{}})),parcelRequire.register("fiTeP",(function(e,t){"use strict";var r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.hasOwnProperty.call(e,a)&&r(t,e,a);return n(t,e),t};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.rpc_errors=e.exports.KeyPairEd25519=e.exports.KeyPair=e.exports.PublicKey=e.exports.format=e.exports.enums=e.exports.web=e.exports.serialize=e.exports.network=e.exports.key_pair=void 0;const o=a(parcelRequire("7v7or"));e.exports.key_pair=o;const i=a(parcelRequire("hDsHx"));e.exports.network=i;const s=a(parcelRequire("lKyV1"));e.exports.serialize=s;const c=a(parcelRequire("jxZzD"));e.exports.web=c;const l=a(parcelRequire("35nut"));e.exports.enums=l;const u=a(parcelRequire("bgjGX"));e.exports.format=u;const f=a(parcelRequire("bu7tF"));e.exports.rpc_errors=f,Object.defineProperty(e.exports,"PublicKey",{enumerable:!0,get:function(){return parcelRequire("7v7or").PublicKey}}),Object.defineProperty(e.exports,"KeyPair",{enumerable:!0,get:function(){return parcelRequire("7v7or").KeyPair}}),Object.defineProperty(e.exports,"KeyPairEd25519",{enumerable:!0,get:function(){return parcelRequire("7v7or").KeyPairEd25519}})})),parcelRequire.register("hDsHx",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0})})),parcelRequire.register("bgjGX",(function(e,t){"use strict";var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.parseNearAmount=e.exports.formatNearAmount=e.exports.NEAR_NOMINATION=e.exports.NEAR_NOMINATION_EXP=void 0;const n=r(parcelRequire("lq4RO"));e.exports.NEAR_NOMINATION_EXP=24,e.exports.NEAR_NOMINATION=new n.default("10",10).pow(new n.default(e.exports.NEAR_NOMINATION_EXP,10));const a=[],o=new n.default(10);for(let t=0,r=new n.default(5);t0&&o.iadd(a[t])}const i=(t=o.toString()).substring(0,t.length-e.exports.NEAR_NOMINATION_EXP)||"0",s=t.substring(t.length-e.exports.NEAR_NOMINATION_EXP).padStart(e.exports.NEAR_NOMINATION_EXP,"0").substring(0,r);return`${function(e){const t=/(-?\d+)(\d{3})/;for(;t.test(e);)e=e.replace(t,"$1,$2");return e}(i)}.${s}`.replace(/\.?0*$/,"")},e.exports.parseNearAmount=function(t){if(!t)return null;const r=(t=t.replace(/,/g,"").trim()).split("."),n=r[0],a=r[1]||"";if(r.length>2||a.length>e.exports.NEAR_NOMINATION_EXP)throw new Error(`Cannot parse '${t}' as NEAR amount`);return""===(o=(o=n+a.padEnd(e.exports.NEAR_NOMINATION_EXP,"0")).replace(/^0+/,""))?"0":o;var o}})),parcelRequire.register("2NIxe",(function(e,t){"use strict";var r=parcelRequire("rEmZP").Buffer,n=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.signTransaction=e.exports.createTransaction=e.exports.SCHEMA=e.exports.Action=e.exports.SignedTransaction=e.exports.Transaction=e.exports.Signature=e.exports.deleteAccount=e.exports.deleteKey=e.exports.addKey=e.exports.stake=e.exports.transfer=e.exports.functionCall=e.exports.deployContract=e.exports.createAccount=e.exports.DeleteAccount=e.exports.DeleteKey=e.exports.AddKey=e.exports.Stake=e.exports.Transfer=e.exports.FunctionCall=e.exports.DeployContract=e.exports.CreateAccount=e.exports.IAction=e.exports.functionCallAccessKey=e.exports.fullAccessKey=e.exports.AccessKey=e.exports.AccessKeyPermission=e.exports.FullAccessPermission=e.exports.FunctionCallPermission=void 0;const a=n(parcelRequire("iWMDq"));var o=parcelRequire("35nut"),i=parcelRequire("l1dTs"),s=parcelRequire("7v7or");class c extends o.Assignable{}e.exports.FunctionCallPermission=c;class l extends o.Assignable{}e.exports.FullAccessPermission=l;class u extends o.Enum{}e.exports.AccessKeyPermission=u;class f extends o.Assignable{}e.exports.AccessKey=f,e.exports.fullAccessKey=function(){return new f({nonce:0,permission:new u({fullAccess:new l({})})})},e.exports.functionCallAccessKey=function(e,t,r){return new f({nonce:0,permission:new u({functionCall:new c({receiverId:e,allowance:r,methodNames:t})})})};class d extends o.Assignable{}e.exports.IAction=d;class h extends d{}e.exports.CreateAccount=h;class p extends d{}e.exports.DeployContract=p;class b extends d{}e.exports.FunctionCall=b;class $ extends d{}e.exports.Transfer=$;class g extends d{}e.exports.Stake=g;class m extends d{}e.exports.AddKey=m;class y extends d{}e.exports.DeleteKey=y;class v extends d{}e.exports.DeleteAccount=v,e.exports.createAccount=function(){return new k({createAccount:new h({})})},e.exports.deployContract=function(e){return new k({deployContract:new p({code:e})})},e.exports.functionCall=function(e,t,n,a){const o=t,i=void 0!==o.byteLength&&o.byteLength===o.length?t:r.from(JSON.stringify(t));return new k({functionCall:new b({methodName:e,args:i,gas:n,deposit:a})})},e.exports.transfer=function(e){return new k({transfer:new $({deposit:e})})},e.exports.stake=function(e,t){return new k({stake:new g({stake:e,publicKey:t})})},e.exports.addKey=function(e,t){return new k({addKey:new m({publicKey:e,accessKey:t})})},e.exports.deleteKey=function(e){return new k({deleteKey:new y({publicKey:e})})},e.exports.deleteAccount=function(e){return new k({deleteAccount:new v({beneficiaryId:e})})};class w extends o.Assignable{}e.exports.Signature=w;class x extends o.Assignable{encode(){return i.serialize(e.exports.SCHEMA,this)}static decode(t){return i.deserialize(e.exports.SCHEMA,x,t)}}e.exports.Transaction=x;class _ extends o.Assignable{encode(){return i.serialize(e.exports.SCHEMA,this)}static decode(t){return i.deserialize(e.exports.SCHEMA,_,t)}}e.exports.SignedTransaction=_;class k extends o.Enum{}function S(e,t,r,n,a,o){return new x({signerId:e,publicKey:t,nonce:n,receiverId:r,actions:a,blockHash:o})}async function E(t,r,n,o){const s=i.serialize(e.exports.SCHEMA,t),c=new Uint8Array(a.default.sha256.array(s)),l=await r.signMessage(s,n,o);return[c,new _({transaction:t,signature:new w({keyType:t.publicKey.keyType,data:l.signature})})]}e.exports.Action=k,e.exports.SCHEMA=new Map([[w,{kind:"struct",fields:[["keyType","u8"],["data",[64]]]}],[_,{kind:"struct",fields:[["transaction",x],["signature",w]]}],[x,{kind:"struct",fields:[["signerId","string"],["publicKey",s.PublicKey],["nonce","u64"],["receiverId","string"],["blockHash",[32]],["actions",[k]]]}],[s.PublicKey,{kind:"struct",fields:[["keyType","u8"],["data",[32]]]}],[f,{kind:"struct",fields:[["nonce","u64"],["permission",u]]}],[u,{kind:"enum",field:"enum",values:[["functionCall",c],["fullAccess",l]]}],[c,{kind:"struct",fields:[["allowance",{kind:"option",type:"u128"}],["receiverId","string"],["methodNames",["string"]]]}],[l,{kind:"struct",fields:[]}],[k,{kind:"enum",field:"enum",values:[["createAccount",h],["deployContract",p],["functionCall",b],["transfer",$],["stake",g],["addKey",m],["deleteKey",y],["deleteAccount",v]]}],[h,{kind:"struct",fields:[]}],[p,{kind:"struct",fields:[["code",["u8"]]]}],[b,{kind:"struct",fields:[["methodName","string"],["args",["u8"]],["gas","u64"],["deposit","u128"]]}],[$,{kind:"struct",fields:[["deposit","u128"]]}],[g,{kind:"struct",fields:[["stake","u128"],["publicKey",s.PublicKey]]}],[m,{kind:"struct",fields:[["publicKey",s.PublicKey],["accessKey",f]]}],[y,{kind:"struct",fields:[["publicKey",s.PublicKey]]}],[v,{kind:"struct",fields:[["beneficiaryId","string"]]}]]),e.exports.createTransaction=S,e.exports.signTransaction=async function(...e){if(e[0].constructor===x){const[t,r,n,a]=e;return E(t,r,n,a)}{const[t,r,n,a,o,i,s]=e;return E(S(i,await o.getPublicKey(i,s),t,r,n,a),o,i,s)}}})),parcelRequire.register("iWMDq",(function(module,exports){var $foczT=parcelRequire("foczT"); +/** + * [js-sha256]{@link https://github.com/emn178/js-sha256} + * + * @version 0.9.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2017 + * @license MIT + */(function(){"use strict";var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_SHA256_NO_NODE_JS&&"object"==typeof $foczT&&$foczT.versions&&$foczT.versions.node;NODE_JS?root=$parcel$global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&module.exports,AMD="function"==typeof define&&define.amd,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks1=[];!root.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!ARRAY_BUFFER||!root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e,t){return function(r){return new Sha256(t,!0).update(r)[e]()}},createMethod=function(e){var t=createOutputMethod("hex",e);NODE_JS&&(t=nodeWrap(t,e)),t.create=function(){return new Sha256(e)},t.update=function(e){return t.create().update(e)};for(var r=0;r>6,i[c++]=128|63&o):o<55296||o>=57344?(i[c++]=224|o>>12,i[c++]=128|o>>6&63,i[c++]=128|63&o):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++n)),i[c++]=240|o>>18,i[c++]=128|o>>12&63,i[c++]=128|o>>6&63,i[c++]=128|63&o);e=i}else{if("object"!==a)throw new Error(ERROR);if(null===e)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||ARRAY_BUFFER&&ArrayBuffer.isView(e)))throw new Error(ERROR)}e.length>64&&(e=new Sha256(t,!0).update(e).array());var l=[],u=[];for(n=0;n<64;++n){var f=e[n]||0;l[n]=92^f,u[n]=54^f}Sha256.call(this,t,r),this.update(u),this.oKeyPad=l,this.inner=!0,this.sharedMemory=r}Sha256.prototype.update=function(e){if(!this.finalized){var t,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(ERROR);if(null===e)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||ARRAY_BUFFER&&ArrayBuffer.isView(e)))throw new Error(ERROR);t=!0}for(var n,a,o=0,i=e.length,s=this.blocks;o>2]|=e[o]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(s[a>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=64?(this.block=s[16],this.start=a-64,this.hash(),this.hashed=!0):this.start=a}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=EXTRA[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var e,t,r,n,a,o,i,s,c,l=this.h0,u=this.h1,f=this.h2,d=this.h3,h=this.h4,p=this.h5,b=this.h6,$=this.h7,g=this.blocks;for(e=16;e<64;++e)t=((a=g[e-15])>>>7|a<<25)^(a>>>18|a<<14)^a>>>3,r=((a=g[e-2])>>>17|a<<15)^(a>>>19|a<<13)^a>>>10,g[e]=g[e-16]+t+g[e-7]+r<<0;for(c=u&f,e=0;e<64;e+=4)this.first?(this.is224?(o=300032,$=(a=g[0]-1413257819)-150054599<<0,d=a+24177077<<0):(o=704751109,$=(a=g[0]-210244248)-1521486534<<0,d=a+143694565<<0),this.first=!1):(t=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),n=(o=l&u)^l&f^c,$=d+(a=$+(r=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+(h&p^~h&b)+K[e]+g[e])<<0,d=a+(t+n)<<0),t=(d>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),n=(i=d&l)^d&u^o,b=f+(a=b+(r=($>>>6|$<<26)^($>>>11|$<<21)^($>>>25|$<<7))+($&h^~$&p)+K[e+1]+g[e+1])<<0,t=((f=a+(t+n)<<0)>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),n=(s=f&d)^f&l^i,p=u+(a=p+(r=(b>>>6|b<<26)^(b>>>11|b<<21)^(b>>>25|b<<7))+(b&$^~b&h)+K[e+2]+g[e+2])<<0,t=((u=a+(t+n)<<0)>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),n=(c=u&f)^u&d^s,h=l+(a=h+(r=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&b^~p&$)+K[e+3]+g[e+3])<<0,l=a+(t+n)<<0;this.h0=this.h0+l<<0,this.h1=this.h1+u<<0,this.h2=this.h2+f<<0,this.h3=this.h3+d<<0,this.h4=this.h4+h<<0,this.h5=this.h5+p<<0,this.h6=this.h6+b<<0,this.h7=this.h7+$<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,a=this.h4,o=this.h5,i=this.h6,s=this.h7,c=HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[15&e]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[15&r]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[15&n]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[15&a]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[15&o]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[15&i];return this.is224||(c+=HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[15&s]),c},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,n=this.h3,a=this.h4,o=this.h5,i=this.h6,s=this.h7,c=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24&255,r>>16&255,r>>8&255,255&r,n>>24&255,n>>16&255,n>>8&255,255&n,a>>24&255,a>>16&255,a>>8&255,255&a,o>>24&255,o>>16&255,o>>8&255,255&o,i>>24&255,i>>16&255,i>>8&255,255&i];return this.is224||c.push(s>>24&255,s>>16&255,s>>8&255,255&s),c},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e},HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224,AMD&&define((function(){return exports})))})()})),parcelRequire.register("bqvmg",(function(e,t){"use strict";var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.diffEpochValidators=e.exports.findSeatPrice=void 0;const n=r(parcelRequire("lq4RO"));e.exports.findSeatPrice=function(e,t){const r=e.map((e=>new n.default(e.stake,10))).sort(((e,t)=>e.cmp(t))),a=new n.default(t),o=r.reduce(((e,t)=>e.add(t)));if(o.lt(a))throw new Error("Stakes are below seats");let i=new n.default(1),s=o.add(new n.default(1));for(;!i.eq(s.sub(new n.default(1)));){const e=i.add(s).div(new n.default(2));let t=!1,o=new n.default(0);for(let n=0;nr.set(e.account_id,e)));const n=new Set(t.map((e=>e.account_id)));return{newValidators:t.filter((e=>!r.has(e.account_id))),removedValidators:e.filter((e=>!n.has(e.account_id))),changedValidators:t.filter((e=>r.has(e.account_id)&&r.get(e.account_id).stake!=e.stake)).map((e=>({current:r.get(e.account_id),next:e})))}}})),parcelRequire.register("21va5",(function(e,t){"use strict";var r=parcelRequire("rEmZP").Buffer,n=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Account=void 0;const a=n(parcelRequire("lq4RO")),o=n(parcelRequire("hIrXm"));var i=parcelRequire("2NIxe"),s=parcelRequire("8O0X7"),c=parcelRequire("l1dTs"),l=parcelRequire("7v7or"),u=parcelRequire("cEknr"),f=parcelRequire("bu7tF");const d=n(parcelRequire("5d0mB")),h=new a.default("30000000000000");function p(e){return JSON.parse(r.from(e).toString())}class b{get ready(){return o.default("Account.ready()")("not needed anymore, always ready"),Promise.resolve()}async fetchState(){o.default("Account.fetchState()")("use `Account.state()` instead")}async state(){return await this.connection.provider.query(`account/${this.accountId}`,"")}printLogsAndFailures(e,t){for(const r of t)console.log(`Receipt${r.receiptIds.length>1?"s":""}: ${r.receiptIds.join(", ")}`),this.printLogs(e,r.logs,"\t"),r.failure&&console.warn(`\tFailure [${e}]: ${r.failure}`)}printLogs(e,t,r=""){for(const n of t)console.log(`${r}Log [${e}]: ${n}`)}async signTransaction(e,t){const r=await this.findAccessKey(e,t);if(!r)throw new s.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair found in ${this.connection.signer}.`,"KeyNotFound");const{accessKey:n}=r,a=(await this.connection.provider.block({finality:"final"})).header.hash,o=++n.nonce;return await i.signTransaction(e,o,t,c.baseDecode(a),this.connection.signer,this.accountId,this.connection.networkId)}async signAndSendTransaction(e,t){let r,n;const a=await d.default(500,12,1.5,(async()=>{[r,n]=await this.signTransaction(e,t);const a=n.transaction.publicKey;try{return await this.connection.provider.sendTransaction(n)}catch(t){if("InvalidNonce"===t.type)return console.warn(`Retrying transaction ${e}:${c.baseEncode(r)} with new nonce.`),delete this.accessKeyByPublicKeyCache[a.toString()],null;throw t.context=new s.ErrorContext(c.baseEncode(r)),t}}));if(!a)throw new s.TypedError("nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.","RetriesExceeded");const o=[a.transaction_outcome,...a.receipts_outcome].reduce(((e,t)=>t.outcome.logs.length||"object"==typeof t.outcome.status&&"object"==typeof t.outcome.status.Failure?e.concat({receiptIds:t.outcome.receipt_ids,logs:t.outcome.logs,failure:void 0!==t.outcome.status.Failure?f.parseRpcError(t.outcome.status.Failure):null}):e),[]);if(this.printLogsAndFailures(n.transaction.receiverId,o),"object"==typeof a.status&&"object"==typeof a.status.Failure)throw a.status.Failure.error_message&&a.status.Failure.error_type?new s.TypedError(`Transaction ${a.transaction_outcome.id} failed. ${a.status.Failure.error_message}`,a.status.Failure.error_type):f.parseResultError(a);return a}async findAccessKey(e,t){const r=await this.connection.signer.getPublicKey(this.accountId,this.connection.networkId);if(!r)return null;const n=this.accessKeyByPublicKeyCache[r.toString()];if(void 0!==n)return{publicKey:r,accessKey:n};try{const e=await this.connection.provider.query(`access_key/${this.accountId}/${r.toString()}`,"");return this.accessKeyByPublicKeyCache[r.toString()]=e,{publicKey:r,accessKey:e}}catch(e){if("AccessKeyDoesNotExist"==e.type)return null;throw e}}async createAndDeployContract(e,t,r,n){const a=i.fullAccessKey();await this.signAndSendTransaction(e,[i.createAccount(),i.transfer(n),i.addKey(l.PublicKey.from(t),a),i.deployContract(r)]);return new b(this.connection,e)}async sendMoney(e,t){return this.signAndSendTransaction(e,[i.transfer(t)])}async createAccount(e,t,r){const n=i.fullAccessKey();return this.signAndSendTransaction(e,[i.createAccount(),i.transfer(r),i.addKey(l.PublicKey.from(t),n)])}async deleteAccount(e){return this.signAndSendTransaction(this.accountId,[i.deleteAccount(e)])}async deployContract(e){return this.signAndSendTransaction(this.accountId,[i.deployContract(e)])}async functionCall(e,t,r,n,a){return r=r||{},this.validateArgs(r),this.signAndSendTransaction(e,[i.functionCall(t,r,n||h,a)])}async addKey(e,t,r,n){let a;return r||(r=[]),Array.isArray(r)||(r=[r]),a=t?i.functionCallAccessKey(t,r,n):i.fullAccessKey(),this.signAndSendTransaction(this.accountId,[i.addKey(l.PublicKey.from(e),a)])}async deleteKey(e){return this.signAndSendTransaction(this.accountId,[i.deleteKey(l.PublicKey.from(e))])}async stake(e,t){return this.signAndSendTransaction(this.accountId,[i.stake(t,l.PublicKey.from(e))])}validateArgs(e){if(!(void 0!==e.byteLength&&e.byteLength===e.length)&&(Array.isArray(e)||"object"!=typeof e))throw new u.PositionalArgsError}async viewFunction(e,t,n,{parse:a=p}={}){n=n||{},this.validateArgs(n);const o=await this.connection.provider.query(`call/${e}/${t}`,c.baseEncode(JSON.stringify(n)));return o.logs&&this.printLogs(e,o.logs),o.result&&o.result.length>0&&a(r.from(o.result))}async viewState(e,t){const{blockId:n,finality:a}=t||{},{values:o}=await this.connection.provider.query({request_type:"view_state",block_id:n,finality:n?void 0:a||"optimistic",account_id:this.accountId,prefix_base64:r.from(e).toString("base64")});return o.map((({key:e,value:t})=>({key:r.from(e,"base64"),value:r.from(t,"base64")})))}async getAccessKeys(){const e=await this.connection.provider.query(`access_key/${this.accountId}`,"");return Array.isArray(e)?e:e.keys}async getAccountDetails(){const e=await this.getAccessKeys(),t={authorizedApps:[],transactions:[]};return e.map((e=>{if(void 0!==e.access_key.permission.FunctionCall){const r=e.access_key.permission.FunctionCall;t.authorizedApps.push({contractId:r.receiver_id,amount:r.allowance,publicKey:e.public_key})}})),t}async getAccountBalance(){const e=await this.connection.provider.experimental_protocolConfig({finality:"final"}),t=await this.state(),r=new a.default(e.runtime_config.storage_amount_per_byte),n=new a.default(t.storage_usage).mul(r),o=new a.default(t.locked),i=new a.default(t.amount).add(o),s=i.sub(a.default.max(o,n));return{total:i.toString(),stateStaked:n.toString(),staked:o.toString(),available:s.toString()}}constructor(e,t){this.accessKeyByPublicKeyCache={},this.connection=e,this.accountId=t}}e.exports.Account=b})),parcelRequire.register("kc0lE",(function(e,t){var r=parcelRequire("idIiZ"),n=parcelRequire("rEmZP").Buffer,a=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Account2FA=e.exports.AccountMultisig=e.exports.MULTISIG_CONFIRM_METHODS=e.exports.MULTISIG_VIEW_METHODS=e.exports.MULTISIG_CHANGE_METHODS=e.exports.MULTISIG_DEPOSIT=e.exports.MULTISIG_GAS=e.exports.MULTISIG_ALLOWANCE=e.exports.MULTISIG_STORAGE_KEY=void 0;const o=a(parcelRequire("lq4RO"));var i=parcelRequire("21va5"),s=parcelRequire("i5vpj"),c=parcelRequire("bgjGX"),l=parcelRequire("7v7or"),u=parcelRequire("2NIxe"),f=parcelRequire("jxZzD");e.exports.MULTISIG_STORAGE_KEY="__multisigRequest",e.exports.MULTISIG_ALLOWANCE=new o.default(c.parseNearAmount("1")),e.exports.MULTISIG_GAS=new o.default("100000000000000"),e.exports.MULTISIG_DEPOSIT=new o.default("0"),e.exports.MULTISIG_CHANGE_METHODS=["add_request","add_request_and_confirm","delete_request","confirm"],e.exports.MULTISIG_VIEW_METHODS=["get_request_nonce","list_request_ids"],e.exports.MULTISIG_CONFIRM_METHODS=["confirm"];let d={[e.exports.MULTISIG_STORAGE_KEY]:null};class h extends i.Account{async signAndSendTransactionWithAccount(e,t){return super.signAndSendTransaction(e,t)}async signAndSendTransaction(t,r){const{accountId:a}=this;if(this.isDeleteAction(r))return await super.signAndSendTransaction(a,r);await this.deleteUnconfirmedRequests();const o=await this.getRequestNonce();this.setRequest({accountId:a,requestId:o,actions:r});const i=n.from(JSON.stringify({request:{receiver_id:t,actions:$(r,a,t)}})),s=await super.signAndSendTransaction(a,[u.functionCall("add_request_and_confirm",i,e.exports.MULTISIG_GAS,e.exports.MULTISIG_DEPOSIT)]);return this.onAddRequestResult&&await this.onAddRequestResult(s),s}async deleteUnconfirmedRequests(){const{contract:e}=this,t=await this.getRequestIds();for(const r of t)try{await e.delete_request({request_id:r})}catch(e){console.warn("Attempt to delete an earlier request before 15 minutes failed. Will try again.")}}async getRequestNonce(){return this.contract.get_request_nonce()}async getRequestIds(){return this.contract.list_request_ids()}isDeleteAction(e){return e&&e[0]&&e[0].functionCall&&"delete_request"===e[0].functionCall.methodName}getRequest(){return this.storage?JSON.parse(this.storage.getItem(e.exports.MULTISIG_STORAGE_KEY)||"{}"):d[e.exports.MULTISIG_STORAGE_KEY]}setRequest(t){if(this.storage)return this.storage.setItem(e.exports.MULTISIG_STORAGE_KEY,JSON.stringify(t));d[e.exports.MULTISIG_STORAGE_KEY]=t}constructor(e,t,r){super(e,t),this.storage=r.storage,this.onAddRequestResult=r.onAddRequestResult,this.contract=b(this)}}e.exports.AccountMultisig=h;e.exports.Account2FA=class extends h{async signAndSendTransaction(e,t){await super.signAndSendTransaction(e,t),await this.sendCode();const r=await this.promptAndVerify();return this.onConfirmResult&&await this.onConfirmResult(r),r}async deployMultisig(t){const{accountId:r}=this,a=(await this.getRecoveryMethods()).data.filter((({kind:e,publicKey:t})=>("phrase"===e||"ledger"===e)&&null!==t)).map((e=>e.publicKey)),o=(await this.getAccessKeys()).filter((({public_key:e,access_key:{permission:t}})=>"FullAccess"===t&&!a.includes(e))).map((e=>e.public_key)).map(p),i=p((await this.postSignedJson("/2fa/getAccessKey",{accountId:r})).publicKey),s=n.from(JSON.stringify({num_confirmations:2})),c=[...o.map((e=>u.deleteKey(e))),...o.map((t=>u.addKey(t,u.functionCallAccessKey(r,e.exports.MULTISIG_CHANGE_METHODS,null)))),u.addKey(i,u.functionCallAccessKey(r,e.exports.MULTISIG_CONFIRM_METHODS,null)),u.deployContract(t)];return"11111111111111111111111111111111"===(await this.state()).code_hash&&c.push(u.functionCall("new",s,e.exports.MULTISIG_GAS,e.exports.MULTISIG_DEPOSIT)),console.log("deploying multisig contract for",r),await super.signAndSendTransactionWithAccount(r,c)}async disable(e){const{accountId:t}=this,r=(await this.getAccessKeys()).filter((({access_key:e})=>e&&e.permission&&e.permission.FunctionCall&&e.permission.FunctionCall.receiver_id===t&&e.permission.FunctionCall.method_names&&4===e.permission.FunctionCall.method_names.length&&e.permission.FunctionCall.method_names.includes("add_request_and_confirm"))),n=l.PublicKey.from((await this.postSignedJson("/2fa/getAccessKey",{accountId:t})).publicKey),a=[u.deleteKey(n),...r.map((({public_key:e})=>u.deleteKey(e))),...r.map((({public_key:e})=>u.addKey(e,null))),u.deployContract(e)];return console.log("disabling 2fa for",t),await this.signAndSendTransaction(t,a)}async sendCodeDefault(){const{accountId:e}=this,{requestId:t,actions:r}=this.getRequest();if(this.isDeleteAction(r))return;const n=await this.get2faMethod();return await this.postSignedJson("/2fa/send",{accountId:e,method:n,requestId:t}),t}async getCodeDefault(e){throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is "email" or "phone".')}async promptAndVerify(){const e=await this.get2faMethod(),t=await this.getCode(e);try{return await this.verifyCode(t)}catch(e){if(console.warn("Error validating security code:",e),e.toString().includes("invalid 2fa code provided")||e.toString().includes("2fa code not valid"))return await this.promptAndVerify();throw e}}async verifyCodeDefault(e){const{accountId:t}=this,r=this.getRequest();if(!r)throw new Error("no request pending");const{requestId:n}=r;return await this.postSignedJson("/2fa/verify",{accountId:t,securityCode:e,requestId:n})}async getRecoveryMethods(){const{accountId:e}=this;return{accountId:e,data:await this.postSignedJson("/account/recoveryMethods",{accountId:e})}}async get2faMethod(){let{data:e}=await this.getRecoveryMethods();if(e&&e.length&&(e=e.find((e=>0===e.kind.indexOf("2fa-")))),!e)return null;const{kind:t,detail:r}=e;return{kind:t,detail:r}}async signatureFor(){const{accountId:e}=this,t=(await this.connection.provider.block({finality:"final"})).header.height.toString(),r=await this.connection.signer.signMessage(n.from(t),e,this.connection.networkId);return{blockNumber:t,blockNumberSignature:n.from(r.signature).toString("base64")}}async postSignedJson(e,t){return await f.fetchJson(this.helperUrl+e,JSON.stringify((0,r.default)({},t,await this.signatureFor())))}constructor(e,t,r){super(e,t,r),this.helperUrl="https://helper.testnet.near.org",this.helperUrl=r.helperUrl||this.helperUrl,this.storage=r.storage,this.sendCode=r.sendCode||this.sendCodeDefault,this.getCode=r.getCode||this.getCodeDefault,this.verifyCode=r.verifyCode||this.verifyCodeDefault,this.onConfirmResult=r.onConfirmResult,this.contract=b(this)}};const p=e=>l.PublicKey.from(e),b=t=>new s.Contract(t,t.accountId,{viewMethods:e.exports.MULTISIG_VIEW_METHODS,changeMethods:e.exports.MULTISIG_CHANGE_METHODS}),$=(t,r,a)=>t.map((t=>{const o=t.enum,{gas:i,publicKey:s,methodName:c,args:l,deposit:u,accessKey:f,code:d}=t[o],h={type:o[0].toUpperCase()+o.substr(1),gas:i&&i.toString()||void 0,public_key:s&&(p=s,p.toString().replace("ed25519:",""))||void 0,method_name:c,args:l&&n.from(l).toString("base64")||void 0,code:d&&n.from(d).toString("base64")||void 0,amount:u&&u.toString()||void 0,deposit:u&&u.toString()||"0",permission:void 0};var p;if(f&&(a===r&&"fullAccess"!==f.permission.enum&&(h.permission={receiver_id:r,allowance:e.exports.MULTISIG_ALLOWANCE.toString(),method_names:e.exports.MULTISIG_CHANGE_METHODS}),"functionCall"===f.permission.enum)){const{receiverId:e,methodNames:t,allowance:r}=f.permission.functionCall;h.permission={receiver_id:e,allowance:r&&r.toString()||void 0,method_names:t}}return h}))})),parcelRequire.register("i5vpj",(function(e,t){"use strict";var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Contract=void 0;const n=r(parcelRequire("lq4RO"));var a=parcelRequire("8O0X7"),o=parcelRequire("cEknr");function i(e,t){return{[e]:(...e)=>t(...e)}[e]}const s=e=>e&&void 0!==e.byteLength&&e.byteLength===e.length,c=e=>"[object Object]"===Object.prototype.toString.call(e);e.exports.Contract=class{constructor(e,t,r){this.account=e,this.contractId=t;const{viewMethods:l=[],changeMethods:u=[]}=r;l.forEach((e=>{Object.defineProperty(this,e,{writable:!1,enumerable:!0,value:i(e,(async(t={},r={},...n)=>{if(n.length||!c(t)&&!s(t)||!c(r))throw new o.PositionalArgsError;return this.account.viewFunction(this.contractId,e,t,r)}))})})),u.forEach((e=>{Object.defineProperty(this,e,{writable:!1,enumerable:!0,value:i(e,(async(t={},r,i,...l)=>{if(l.length||!c(t)&&!s(t))throw new o.PositionalArgsError;!function(e){const t="number, decimal string or BN";for(const r of Object.keys(e)){const a=e[r];if(a&&!n.default.isBN(a)&&isNaN(a))throw new o.ArgumentTypeError(r,t,a)}}({gas:r,amount:i});const u=await this.account.functionCall(this.contractId,e,t,r,i);return a.getTransactionLastResult(u)}))})}))}}})),parcelRequire.register("3iDel",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.UrlAccountCreator=e.exports.LocalAccountCreator=e.exports.AccountCreator=void 0;var r=parcelRequire("jxZzD");class n{}e.exports.AccountCreator=n;e.exports.LocalAccountCreator=class extends n{async createAccount(e,t){await this.masterAccount.createAccount(e,t,this.initialBalance)}constructor(e,t){super(),this.masterAccount=e,this.initialBalance=t}};e.exports.UrlAccountCreator=class extends n{async createAccount(e,t){await r.fetchJson(`${this.helperUrl}/account`,JSON.stringify({newAccountId:e,newAccountPublicKey:t.toString()}))}constructor(e,t){super(),this.connection=e,this.helperUrl=t}}})),parcelRequire.register("bCS0o",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Connection=void 0;var r=parcelRequire("8O0X7"),n=parcelRequire("aPc4D");class a{static fromConfig(e){const t=function(e){switch(e.type){case void 0:return e;case"JsonRpcProvider":return new r.JsonRpcProvider(e.args.url);default:throw new Error(`Unknown provider type ${e.type}`)}}(e.provider),o=function(e){switch(e.type){case void 0:return e;case"InMemorySigner":return new n.InMemorySigner(e.keyStore);default:throw new Error(`Unknown signer type ${e.type}`)}}(e.signer);return new a(e.networkId,t,o)}constructor(e,t,r){this.networkId=e,this.provider=t,this.signer=r}}e.exports.Connection=a})),parcelRequire.register("aPc4D",(function(e,t){"use strict";var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.InMemorySigner=e.exports.Signer=void 0;const n=r(parcelRequire("iWMDq"));var a=parcelRequire("7v7or"),o=parcelRequire("a2Tq3");class i{}e.exports.Signer=i;class s extends i{static async fromKeyPair(e,t,r){const n=new o.InMemoryKeyStore;return await n.setKey(e,t,r),new s(n)}async createKey(e,t){const r=a.KeyPair.fromRandom("ed25519");return await this.keyStore.setKey(t,e,r),r.getPublicKey()}async getPublicKey(e,t){const r=await this.keyStore.getKey(t,e);return null===r?null:r.getPublicKey()}async signMessage(e,t,r){const a=new Uint8Array(n.default.sha256.array(e));if(!t)throw new Error("InMemorySigner requires provided account id");const o=await this.keyStore.getKey(r,t);if(null===o)throw new Error(`Key for ${t} not found in ${r}`);return o.sign(a)}toString(){return`InMemorySigner(${this.keyStore})`}constructor(e){super(),this.keyStore=e}}e.exports.InMemorySigner=s})),parcelRequire.register("hAuyz",(function(e,t){"use strict";var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Near=void 0;const n=r(parcelRequire("lq4RO"));var a=parcelRequire("21va5"),o=parcelRequire("bCS0o"),i=parcelRequire("i5vpj"),s=parcelRequire("3iDel");e.exports.Near=class{async account(e){return new a.Account(this.connection,e)}async createAccount(e,t){if(!this.accountCreator)throw new Error("Must specify account creator, either via masterAccount or helperUrl configuration settings.");return await this.accountCreator.createAccount(e,t),new a.Account(this.connection,e)}async loadContract(e,t){const r=new a.Account(this.connection,t.sender);return new i.Contract(r,e,t)}async sendTokens(e,t,r){console.warn("near.sendTokens is deprecated. Use `yourAccount.sendMoney` instead.");const n=new a.Account(this.connection,t);return(await n.sendMoney(r,e)).transaction_outcome.id}constructor(e){if(this.config=e,this.connection=o.Connection.fromConfig({networkId:e.networkId,provider:{type:"JsonRpcProvider",args:{url:e.nodeUrl}},signer:e.signer||{type:"InMemorySigner",keyStore:e.keyStore||e.deps.keyStore}}),e.masterAccount){const t=e.initialBalance?new n.default(e.initialBalance):new n.default("500000000000000000000000000");this.accountCreator=new s.LocalAccountCreator(new a.Account(this.connection,e.masterAccount),t)}else e.helperUrl?this.accountCreator=new s.UrlAccountCreator(this.connection,e.helperUrl):this.accountCreator=null}}})),parcelRequire.register("4cExR",(function(e,t){"use strict";var r=parcelRequire("rEmZP").Buffer,n=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.ConnectedWalletAccount=e.exports.WalletAccount=e.exports.WalletConnection=void 0;const a=n(parcelRequire("hIrXm"));var o=parcelRequire("21va5"),i=parcelRequire("2NIxe"),s=parcelRequire("fiTeP"),c=parcelRequire("l1dTs");c=parcelRequire("l1dTs");const l="pending_key";class u{isSignedIn(){return!!this._authData.accountId}getAccountId(){return this._authData.accountId||""}async requestSignIn(e={},t,r,n){let o;if("string"==typeof e){a.default("requestSignIn(contractId, title)")("`title` ignored; use `requestSignIn({ contractId, successUrl, failureUrl })` instead"),o={contractId:e,successUrl:r,failureUrl:n}}else o=e;const i=new URL(window.location.href),c=new URL(this._walletBaseUrl+"/login/");if(c.searchParams.set("success_url",o.successUrl||i.href),c.searchParams.set("failure_url",o.failureUrl||i.href),o.contractId){c.searchParams.set("contract_id",o.contractId);const e=s.KeyPair.fromRandom("ed25519");c.searchParams.set("public_key",e.getPublicKey().toString()),await this._keyStore.setKey(this._networkId,l+e.getPublicKey(),e)}window.location.assign(c.toString())}async requestSignTransactions(e,t){const n=new URL(window.location.href),a=new URL("sign",this._walletBaseUrl);a.searchParams.set("transactions",e.map((e=>c.serialize(i.SCHEMA,e))).map((e=>r.from(e).toString("base64"))).join(",")),a.searchParams.set("callbackUrl",t||n.href),window.location.assign(a.toString())}async _completeSignInWithAccessKey(){const e=new URL(window.location.href),t=e.searchParams.get("public_key")||"",r=(e.searchParams.get("all_keys")||"").split(","),n=e.searchParams.get("account_id")||"";n&&(this._authData={accountId:n,allKeys:r},window.localStorage.setItem(this._authDataKey,JSON.stringify(this._authData)),t&&await this._moveKeyFromTempToPermanent(n,t)),e.searchParams.delete("public_key"),e.searchParams.delete("all_keys"),e.searchParams.delete("account_id"),window.history.replaceState({},document.title,e.toString())}async _moveKeyFromTempToPermanent(e,t){const r=await this._keyStore.getKey(this._networkId,l+t);await this._keyStore.setKey(this._networkId,e,r),await this._keyStore.removeKey(this._networkId,l+t)}signOut(){this._authData={},window.localStorage.removeItem(this._authDataKey)}account(){return this._connectedAccount||(this._connectedAccount=new f(this,this._near.connection,this._authData.accountId)),this._connectedAccount}constructor(e,t){this._near=e;const r=t+"_wallet_auth_key",n=JSON.parse(window.localStorage.getItem(r));this._networkId=e.config.networkId,this._walletBaseUrl=e.config.walletUrl,t=t||e.config.contractName||"default",this._keyStore=e.connection.signer.keyStore,this._authData=n||{allKeys:[]},this._authDataKey=r,this.isSignedIn()||this._completeSignInWithAccessKey()}}e.exports.WalletConnection=u,e.exports.WalletAccount=u;class f extends o.Account{async signAndSendTransaction(e,t){const r=await this.connection.signer.getPublicKey(this.accountId,this.connection.networkId);let n=await this.accessKeyForTransaction(e,t,r);if(!n)throw new Error(`Cannot find matching key for transaction sent to ${e}`);if(r&&r.toString()===n.public_key)try{return await super.signAndSendTransaction(e,t)}catch(r){if("NotEnoughBalance"!==r.type)throw r;n=await this.accessKeyForTransaction(e,t)}const a=await this.connection.provider.block({finality:"final"}),o=c.baseDecode(a.header.hash),l=s.PublicKey.from(n.public_key),u=n.access_key.nonce+1,f=i.createTransaction(this.accountId,l,e,u,t,o);return await this.walletConnection.requestSignTransactions([f],window.location.href),new Promise(((e,t)=>{setTimeout((()=>{t(new Error("Failed to redirect to sign transaction"))}),1e3)}))}async accessKeyMatchesTransaction(e,t,r){const{access_key:{permission:n}}=e;if("FullAccess"===n)return!0;if(n.FunctionCall){const{receiver_id:e,method_names:a}=n.FunctionCall;if(e===this.accountId&&a.includes("add_request_and_confirm"))return!0;if(e===t){if(1!==r.length)return!1;const[{functionCall:e}]=r;return e&&(!e.deposit||"0"===e.deposit.toString())&&(0===a.length||a.includes(e.methodName))}}return!1}async accessKeyForTransaction(e,t,r){const n=await this.getAccessKeys();if(r){const a=n.find((e=>e.public_key===r.toString()));if(a&&await this.accessKeyMatchesTransaction(a,e,t))return a}const a=this.walletConnection._authData.allKeys;for(const r of n)if(-1!==a.indexOf(r.public_key)&&await this.accessKeyMatchesTransaction(r,e,t))return r;return null}constructor(e,t,r){super(t,r),this.walletConnection=e}}e.exports.ConnectedWalletAccount=f})),parcelRequire.register("fF7yh",(function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.connect=void 0;var r=parcelRequire("hAuyz");e.exports.connect=async function(e){return new r.Near(e)}})),parcelRequire.register("c6TJ9",(function(e,t){parcelRequire("84Vfh");var r,n=parcelRequire("9n4Si");r=n("Error.captureStackTrace")?parcelRequire("dJE86"):n("Error.prototype.stack")?parcelRequire("2GAOS"):parcelRequire("f62rg"),e.exports=r()})),parcelRequire.register("84Vfh",(function(e,t){parcelRequire("9n4Si").check("es5")})),parcelRequire.register("9n4Si",(function(e,t){parcelRequire("3PXan"),e.exports=parcelRequire("3i4pm")})),parcelRequire.register("3PXan",(function(e,t){var r=parcelRequire("3i4pm"),n=r.define,a=r.test;n("strict mode",(function(){return void 0===this})),n("arguments.callee.caller",(function(){try{return function(){return arguments.callee.caller}()===arguments.callee}catch(e){return!1}})),n("es5",(function(){return a("Array.prototype.forEach")&&a("Array.prototype.map")&&a("Function.prototype.bind")&&a("Object.create")&&a("Object.defineProperties")&&a("Object.defineProperty")&&a("Object.prototype.hasOwnProperty")})),n("Array.prototype.forEach",(function(){return Array.prototype.forEach})),n("Array.prototype.map",(function(){return Array.prototype.map})),n("Function.prototype.bind",(function(){return Function.prototype.bind})),n("Object.create",(function(){return Object.create})),n("Object.defineProperties",(function(){return Object.defineProperties})),n("Object.defineProperty",(function(){return Object.defineProperty})),n("Object.prototype.hasOwnProperty",(function(){return Object.prototype.hasOwnProperty})),n("Error.captureStackTrace",(function(){return Error.captureStackTrace})),n("Error.prototype.stack",(function(){try{throw new Error}catch(e){return e.stack||e.stacktrace}}))})),parcelRequire.register("3i4pm",(function(e,t){var r=new(parcelRequire("cOyZT")),n=function(e){return r.test(e)};n.define=function(e,t){r.define(e,t)},n.check=function(e){r.check(e)},n.test=n,e.exports=n})),parcelRequire.register("cOyZT",(function(e,t){var r=function(){this.tests={},this.cache={}};r.prototype={constructor:r,define:function(e,t){if("string"!=typeof e||!(t instanceof Function))throw new Error("Invalid capability definition.");if(this.tests[e])throw new Error('Duplicated capability definition by "'+e+'".');this.tests[e]=t},check:function(e){if(!this.test(e))throw new Error('The current environment does not support "'+e+'", therefore we cannot continue.')},test:function(e){if(void 0!==this.cache[e])return this.cache[e];if(!this.tests[e])throw new Error('Unknown capability with name "'+e+'".');var t=this.tests[e];return this.cache[e]=!!t(),this.cache[e]}},e.exports=r})),parcelRequire.register("dJE86",(function(e,t){var r=parcelRequire("4ixBt");e.exports=function(){return Error.getStackTrace=function(e){return e.stack},{prepareStackTrace:r}}})),parcelRequire.register("4ixBt",(function(e,t){e.exports=function(e,t,r){var n="";if(n+=e.name||"Error",n+=": "+(e.message||""),r instanceof Array)for(var a in r){n+="\n # "+r[a]}for(var o in t){n+="\n at "+t[o].toString()}return n}})),parcelRequire.register("2GAOS",(function(e,t){var r=parcelRequire("6c3vh"),n=parcelRequire("7fLwx"),a=parcelRequire("5FojW").cache,o=parcelRequire("4ixBt");e.exports=function(){return Error.captureStackTrace=function e(t,i){var s=[e];i&&s.push(i);var c=r.getInstance().captureFrameStrings(s);Object.defineProperties(t,{stack:{configurable:!0,get:a((function(){var e=n.getInstance().getFrames(c.frameStrings,c.functionValues);return(Error.prepareStackTrace||o)(t,e,undefined)}))},cachedStack:{configurable:!0,writable:!0,enumerable:!1,value:!0}})},Error.getStackTrace=function(e){if(e.cachedStack)return e.stack;var t,a=r.getInstance().getFrameStrings(e),i=[];a?i=n.getInstance().getFrames(a,[]):t=["The stack is not readable by unthrown errors in this environment."];var s=(Error.prepareStackTrace||o)(e,i,t);if(a)try{Object.defineProperties(e,{stack:{configurable:!0,writable:!0,enumerable:!1,value:s},cachedStack:{configurable:!0,writable:!0,enumerable:!1,value:!0}})}catch(e){}return s},{prepareStackTrace:o}}})),parcelRequire.register("6c3vh",(function(e,t){var r=parcelRequire("hagsH").Class,n=parcelRequire("hagsH").abstractMethod,a=parcelRequire("5FojW").eachCombination,o=parcelRequire("5FojW").cache,i=parcelRequire("9n4Si"),s=r(Object,{prototype:{captureFrameStrings:function(e){var t=this.createError();e.unshift(this.captureFrameStrings),e.unshift(this.createError);var r=this.getFrameStrings(t),n=r.slice(e.length),a=[];if(i("arguments.callee.caller")){var o=[this.createError,this.captureFrameStrings];try{for(var s=arguments.callee;s=s.caller;)o.push(s)}catch(e){}a=o.slice(e.length)}return{frameStrings:n,functionValues:a}},getFrameStrings:function(e){var t=e.message||"",r=e.name||"",n=this.getStackString(e);if(void 0!==n){var a=n.split("\n"),o=0,i=a.length;return this.hasHeader&&(o+=r.split("\n").length+t.split("\n").length-1),this.hasFooter&&(i-=1),a.slice(o,i)}},createError:n,getStackString:n,hasHeader:void 0,hasFooter:void 0}}),c=r(Object,{prototype:{calibrateClass:function(e){return this.calibrateMethods(e)&&this.calibrateEnvelope(e)},calibrateMethods:function(e){try{a([[function(e){return new Error(e)},function(e){try{throw new Error(e)}catch(e){return e}}],[function(e){return e.stack},function(e){return e.stacktrace}]],(function(e,t){if(t(e()))throw{getStackString:t,createError:e}}))}catch(t){return r.merge.call(e,{prototype:t}),!0}return!1},calibrateEnvelope:function(e){var t=(0,e.prototype.getStackString)((0,e.prototype.createError)("marker")).split("\n");return r.merge.call(e,{prototype:{hasHeader:/marker/.test(t[0]),hasFooter:""===t[t.length-1]}}),!0}}});e.exports={getClass:o((function(){var e;if(e)return e;if(e=r(s,{}),!(new c).calibrateClass(e))throw new Error("Cannot read Error.prototype.stack in this environment.");return e})),getInstance:o((function(){return new(this.getClass())}))}})),parcelRequire.register("hagsH",(function(e,t){parcelRequire("84Vfh"),e.exports=parcelRequire("elByG")})),parcelRequire.register("elByG",(function(e,t){e.exports={Class:parcelRequire("atLYN"),abstractMethod:parcelRequire("l5qdD")}})),parcelRequire.register("atLYN",(function(e,t){var r=function(){var e=Object.create({Source:Object,config:{},buildArgs:[]});function t(t){var r="config";if(t instanceof Function)r="Source";else if(t instanceof Array)r="buildArgs";else{if(!(t instanceof Object))throw new Error("Invalid configuration option.");r="config"}if(e.hasOwnProperty(r))throw new Error("Duplicated configuration option: "+r+".");e[r]=t}for(var n=0,a=arguments.length;n22?e.slice(0,10)+".."+e.slice(-10):e}async getAccountBalance(e){return(await this.walletConnection.account().getAccountBalance()).total}getNetwork(){return this.walletConnection._near.connection.networkId}setNetwork(e){throw Error("can't change networkId")}isConnected(){return this.walletConnection.isSignedIn()}disconnect(){this.walletConnection.signOut()}connectionHelp(){window.open("https://wallet.near.org/")}checkConnected(){if(!this.walletConnection.isSignedIn())throw Error("Wallet is not connected")}async view(e,t,r){return this.walletConnection.account().viewFunction(e,t,r)}async call(e,t,r,n,a){window.history.replaceState({},"",location.pathname);const o=await this.walletConnection.account().functionCall(e,t,r,new($parcel$interopDefault($lq4RO))(n||$941a3c37ec1f0e54$export$88307f756ae70797),new($parcel$interopDefault($lq4RO))(a||"0"));return(0,$8O0X7.getTransactionLastResult)(o)}async apply(e){throw Error("Not implemented")}async queryChain(e,t){return this.walletConnection._connectedAccount.connection.provider.sendJsonRpc(e,t)}constructor(e){this.walletConnection=e}}var $9BvVM=parcelRequire("9BvVM");class $7a7a312dee5fffed$export$20c1ad7ba414407{addItem(e){this.items.push(e)}constructor(e){this.receiver=e,this.items=[]}}class $7a7a312dee5fffed$export$f8167a095360b19f{constructor(e,t="0"){this.action=e,this.attached=t}}class $7a7a312dee5fffed$export$9a1bafc170b69ba1 extends $7a7a312dee5fffed$export$f8167a095360b19f{constructor(e,t,r,n){super("call",n),this.method=e,this.args=t,this.gas=r||$941a3c37ec1f0e54$export$88307f756ae70797}}class $7a7a312dee5fffed$export$cec4f96e18e205ef extends $7a7a312dee5fffed$export$f8167a095360b19f{constructor(e){super("transfer",e)}}class $665a63eaa3473810$export$81d11c1527f62419{getAccountId(){return this._accountId}getDisplayableAccountId(){const e=this.getAccountId();return e.length>22?e.slice(0,10)+".."+e.slice(-10):e}async getAccountBalance(e){return $665a63eaa3473810$export$4dcfb26e67b1d7a6({dest:"ext",code:"get-account-balance",accountId:e||this._accountId})}getNetwork(){return this._network}setNetwork(e){this._network=e}setRequiredVersion(e){this._requiredVersion=e}isConnected(){return this._isConnected}disconnect(){document.dispatchEvent(new CustomEvent("wallet-disconnected")),this._isConnected&&window.postMessage({dest:"ext",code:"disconnect"},"*"),this._isConnected=!1,this._accountId="",this.version=new $941a3c37ec1f0e54$export$4fc881fbd1f93166(0,0,0)}connectionHelp(){window.open("http://www.narwallets.com/help/connect-to-web-app")}checkConnected(){if(!this._isConnected)throw Error("Wallet is not connected. Open the wallet extension and click 'Connect to Web Page'")}async view(e,t,r){return $665a63eaa3473810$export$4dcfb26e67b1d7a6({dest:"ext",code:"view",contract:e,method:t,args:r})}async call(e,t,r,n,a){const o=new $7a7a312dee5fffed$export$20c1ad7ba414407(e);return o.addItem(new $7a7a312dee5fffed$export$9a1bafc170b69ba1(t,r,n,a)),this.apply(o)}async apply(e){return $665a63eaa3473810$export$4dcfb26e67b1d7a6({dest:"ext",code:"apply",tx:e})}async queryChain(e,t){return $665a63eaa3473810$export$4dcfb26e67b1d7a6({dest:"ext",code:"json-rpc",method:e,args:t})}constructor(){(0,$9BvVM.default)(this,"_isConnected",!1),(0,$9BvVM.default)(this,"_accountId",""),(0,$9BvVM.default)(this,"_network","mainnet"),(0,$9BvVM.default)(this,"_requiredVersion",new $941a3c37ec1f0e54$export$4fc881fbd1f93166(2,0,0)),(0,$9BvVM.default)(this,"version",new $941a3c37ec1f0e54$export$4fc881fbd1f93166(0,0,0))}}let $665a63eaa3473810$export$63d3d30f802e1ca1=new $665a63eaa3473810$export$81d11c1527f62419;function $665a63eaa3473810$export$288f2dab8842dc1f(e,t){$665a63eaa3473810$export$3e2987166bf8263(),$665a63eaa3473810$export$f31d877c85ff1bef(e),$665a63eaa3473810$export$92eed6c623a0a902(t)}function $665a63eaa3473810$export$3e2987166bf8263(){window.addEventListener("message",(function(e){e.source==window&&"page"==e.data.dest&&$665a63eaa3473810$var$msgReceivedFromContentScript(e.data)}),!1)}function $665a63eaa3473810$export$f31d877c85ff1bef(e){document.addEventListener("wallet-connected",e)}function $665a63eaa3473810$export$92eed6c623a0a902(e){document.addEventListener("wallet-disconnected",e)}function $665a63eaa3473810$var$msgReceivedFromContentScript(e){if("connect"==e.code){var t,r;const n=$665a63eaa3473810$export$63d3d30f802e1ca1.getNetwork(),a={dest:"ext",code:"connected",relayer:"wallet-api",version:"0.1",network:n,err:""};if((null===(t=e.data)||void 0===t?void 0:t.version)?$665a63eaa3473810$export$63d3d30f802e1ca1.version=$941a3c37ec1f0e54$export$4fc881fbd1f93166.fromNumber(null===(r=e.data)||void 0===r?void 0:r.version):$665a63eaa3473810$export$63d3d30f802e1ca1.version=new $941a3c37ec1f0e54$export$4fc881fbd1f93166(1,0,2),$665a63eaa3473810$export$63d3d30f802e1ca1.version.toNumber()<$665a63eaa3473810$export$63d3d30f802e1ca1._requiredVersion.toNumber())return a.err="The web page requires Narwallets v"+$665a63eaa3473810$export$63d3d30f802e1ca1._requiredVersion.toString(),void window.postMessage(a,"*");if(n&&(!e.data||e.data.network!=n))return a.err="The web page requires a "+n+" account",void window.postMessage(a,"*");$665a63eaa3473810$export$63d3d30f802e1ca1._isConnected=!0,$665a63eaa3473810$export$63d3d30f802e1ca1._accountId=e.data.accountId,window.postMessage(a,"*")}else{if("disconnect"==e.code)return void($665a63eaa3473810$export$63d3d30f802e1ca1.isConnected()&&$665a63eaa3473810$export$63d3d30f802e1ca1.disconnect());"request-resolved"==e.code&&$665a63eaa3473810$var$processRequestResolved(e)}let n=$665a63eaa3473810$var$eventFromCode(e.code);const a=new CustomEvent(n,{detail:{source:"ext",code:e.code,err:e.err,data:e.data}});document.dispatchEvent(a)}function $665a63eaa3473810$var$eventFromCode(e){switch(e){case"connect":return"wallet-connected";case"disconnect":return"wallet-disconnected";default:return"wallet-event"}}function $665a63eaa3473810$var$processRequestResolved(e){let t=$665a63eaa3473810$var$requests.findIndex((t=>t.requestId==e.requestId));if(t>=0){let r=$665a63eaa3473810$var$requests.splice(t,1)[0];return e.err?r.reject(Error(e.err)):r.resolve(e.data)}console.error("requestId NOT FOUND ",e)}const $665a63eaa3473810$var$requests=[];let $665a63eaa3473810$var$requestId=0;function $665a63eaa3473810$export$4dcfb26e67b1d7a6(e){return new Promise(((t,r)=>{const n={requestId:++$665a63eaa3473810$var$requestId,payload:e,reject:r,resolve:t};$665a63eaa3473810$var$requests.push(n),e.requestId=$665a63eaa3473810$var$requestId,e.dest||(e.dest="ext"),window.postMessage(e,"*")}))}const $6a82c7dd9e823656$var$base1e=BigInt(10);function $6a82c7dd9e823656$var$b1e(e){return $6a82c7dd9e823656$var$base1e**BigInt(e)}const $6a82c7dd9e823656$var$b1e12=$6a82c7dd9e823656$var$b1e(12),$6a82c7dd9e823656$var$b1e24=$6a82c7dd9e823656$var$b1e(24),$6a82c7dd9e823656$var$b1e18=$6a82c7dd9e823656$var$b1e(18);function $6a82c7dd9e823656$export$1e6601f564a1737(e){return(BigInt(e)*$6a82c7dd9e823656$var$b1e12).toString()}function $6a82c7dd9e823656$export$a386db35d45c2362(e){return(BigInt(Math.round(1e6*e))*$6a82c7dd9e823656$var$b1e18).toString()}function $6a82c7dd9e823656$export$7b927db028bec867(e){try{if(null==(e=e.toString()))return 0;const t=5,r=$6a82c7dd9e823656$export$1da76a640d7f960f((BigInt(e)+BigInt(.5*10**(24-t))).toString()).slice(0,t-24);return Number(r)}catch(t){return console.log("ERR: yton(",e,")",t),NaN}}function $6a82c7dd9e823656$export$f9906266a26d8d29(e){try{if(null==e)return 0;const t=8,r=$6a82c7dd9e823656$export$1da76a640d7f960f((BigInt(e)+BigInt(.5*10**(24-t))).toString()).slice(0,t-24);return Number(r)}catch(t){return console.log("ERR: yton(",e,")",t),NaN}}function $6a82c7dd9e823656$export$1da76a640d7f960f(e){let t=(e+"").padStart(25,"0");return t=t.slice(0,-24)+"."+t.slice(-24),t}function $6a82c7dd9e823656$export$db8ae05e40dfea01(e,t,r){e=e.toString();let n=0;for(;n0?a+"."+o.substring(0,r):a}function $6a82c7dd9e823656$export$b0ebaadef1c606a9(e,t){let r=Number(t),n=0;for(;n4;)e=e.slice(0,-1);return e.endsWith("00")&&(e=e.slice(0,-2)),e.endsWith(".00")&&(e=e.slice(0,-3)),e}function $6a82c7dd9e823656$export$22adc86566c697a9(e){return $6a82c7dd9e823656$export$b6fe44657ce35c42($6a82c7dd9e823656$export$806e5ea7df183088($6a82c7dd9e823656$export$328b775d6414ebd9(e)))}function $6a82c7dd9e823656$export$b6fe44657ce35c42(e){let t=e.indexOf(".");for(-1==t&&(t=e.length),t-=4;t>=0;)e=e.slice(0,t+1)+","+e.slice(t+1),t-=3;return e}function $12ea74ff3a8a3e3a$export$836aee6bce45247(e){return document.querySelector(e)}function $12ea74ff3a8a3e3a$export$fc7d7d4be9a81733(e){return document.querySelector(e)}function $12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(e){return document.querySelectorAll(e)}function $12ea74ff3a8a3e3a$export$9eb2db9699667c2d(e,t){document.querySelectorAll(e).forEach((e=>{e instanceof HTMLElement&&(e.innerText=t)}))}function $12ea74ff3a8a3e3a$export$dd7fd6fec96e1ca2(e,t,r){document.querySelectorAll(e).forEach((e=>{e instanceof HTMLElement&&e.setAttribute(t,r)}))}function $12ea74ff3a8a3e3a$export$1d4df0cf03e6e33(e,t){document.querySelector(e).innerHTML=t}function $12ea74ff3a8a3e3a$export$57bf213be019eeb0(e,t=!0){e.style.display=t?"":"none"}function $12ea74ff3a8a3e3a$export$fe8985bb6374093c(e){e.style.display="none"}function $12ea74ff3a8a3e3a$export$348d584e223bdf1b(e,t,r){$12ea74ff3a8a3e3a$var$cancelWait=!0;const n=$12ea74ff3a8a3e3a$export$836aee6bce45247(e),a=$12ea74ff3a8a3e3a$export$836aee6bce45247("#overlay1");a.querySelectorAll(".box.popup").forEach($12ea74ff3a8a3e3a$export$fe8985bb6374093c);const o=n.querySelector("#title"),i=n.querySelector("#msg");i&&t&&(i.innerHTML=t),o&&r&&(o.innerText=r),$12ea74ff3a8a3e3a$export$57bf213be019eeb0(n),$12ea74ff3a8a3e3a$export$57bf213be019eeb0(a)}function $12ea74ff3a8a3e3a$export$bba5038aab73375b(e){$12ea74ff3a8a3e3a$export$fe8985bb6374093c($12ea74ff3a8a3e3a$export$836aee6bce45247(e))}function $12ea74ff3a8a3e3a$export$e7f12c9836083937(){$12ea74ff3a8a3e3a$var$cancelWait=!0,$12ea74ff3a8a3e3a$export$fe8985bb6374093c($12ea74ff3a8a3e3a$export$836aee6bce45247("#overlay1"))}let $12ea74ff3a8a3e3a$var$waitStartTimer,$12ea74ff3a8a3e3a$var$cancelWait=!1;function $12ea74ff3a8a3e3a$export$11aadaec4fc63f87(e,t){$12ea74ff3a8a3e3a$var$cancelWait=!1,$12ea74ff3a8a3e3a$var$waitStartTimer=setTimeout((()=>{$12ea74ff3a8a3e3a$var$cancelWait||$12ea74ff3a8a3e3a$export$348d584e223bdf1b("#wait-box",e,t)}),500)}function $12ea74ff3a8a3e3a$export$fd427ccb0ab5463c(){$12ea74ff3a8a3e3a$var$cancelWait=!0,$12ea74ff3a8a3e3a$var$waitStartTimer&&(clearTimeout($12ea74ff3a8a3e3a$var$waitStartTimer),$12ea74ff3a8a3e3a$var$waitStartTimer=void 0),$12ea74ff3a8a3e3a$export$bba5038aab73375b("#wait-box")}function $12ea74ff3a8a3e3a$export$787f5d117f138d13(e,t){$12ea74ff3a8a3e3a$export$348d584e223bdf1b("#message-box",e,t)}function $12ea74ff3a8a3e3a$export$d841eba85c078f0b(e,t){console.log(e+" "+t),$12ea74ff3a8a3e3a$export$348d584e223bdf1b("#success-box",e,t)}function $12ea74ff3a8a3e3a$export$3879b24e8245693d(e,t){$12ea74ff3a8a3e3a$export$348d584e223bdf1b("#error-box",e,t="Error from wallet: userRejected"==e?"Transaction Rejected":t)}function $12ea74ff3a8a3e3a$export$dfd8f75b38935068(e){console.log(e),$12ea74ff3a8a3e3a$export$3879b24e8245693d(e.message)}var $8O0X7=parcelRequire("8O0X7"),$bu7tF=parcelRequire("bu7tF");function $4b95b700567c2b2d$var$removeQueryString(){var e=window.location.toString();if(e.indexOf("?")>0){var t=e.substring(0,e.indexOf("?"));window.history.replaceState({},document.title,t)}}async function $4b95b700567c2b2d$export$889ec11431078ec6(e,t){try{var r,n;const a=new URLSearchParams(window.location.search);$4b95b700567c2b2d$var$removeQueryString();const o=a.get("transactionHashes"),i=a.get("errorCode");if(i){const e="Error from wallet: "+i;return console.error(e),{err:e}}if(!o)return{};if(o.includes(",")){const e="Expected single txHash, got: "+o;return console.error(e),{err:e}}const s=$bc68e45de6fece0b$exports.utils.serialize.base_decode(o),c=await e.account().connection.provider.txStatus(s,e.getAccountId());let l;if(null===(r=c.transaction)||void 0===r||null===(n=r.actions)||void 0===n?void 0:n.length){const e=c.transaction.actions;for(let t=0;t${c.transaction.hash} failed`,method:l}}return{data:(0,$8O0X7.getTransactionLastResult)(c),method:l,finalExecutionOutcome:c}}catch(e){return console.error(e.message),{err:e.message}}}async function $4b95b700567c2b2d$export$3a28093ab7225491(e,t){try{const a=new URLSearchParams(window.location.search);$4b95b700567c2b2d$var$removeQueryString();const o=a.get("transactionHashes"),i=a.get("errorCode");if(i){const e="Error from wallet: "+i;return console.error(e),[{err:e}]}if(!o)return[];let s;s=o.includes(",")?o.split(","):[o];const c=s.map((e=>$bc68e45de6fece0b$exports.utils.serialize.base_decode(e))),l=await Promise.all(c.map((async t=>await e.account().connection.provider.txStatus(t,e.getAccountId()))));let u=[];for(let e=0;e${o.transaction.hash} failed`;u.push({err:e,method:a})}else u.push({data:(0,$8O0X7.getTransactionLastResult)(o),method:a,finalExecutionOutcome:o})}return u}catch(e){return console.error(e.message),[{err:e.message}]}}var $8O0X7=parcelRequire("8O0X7"),$rEmZP=parcelRequire("rEmZP"),$a09e8bad8a81c5e0$require$Buffer=$rEmZP.Buffer;class $a09e8bad8a81c5e0$export$fc1ba6948f99dde{async viewWithoutAccount(e,t={}){try{const r=JSON.stringify(t);let n=$a09e8bad8a81c5e0$require$Buffer.from(r).toString("base64");const a=await this.provider.query({request_type:"call_function",account_id:this.contractId,method_name:e,args_base64:n,finality:"optimistic"});return JSON.parse($a09e8bad8a81c5e0$require$Buffer.from(a.result).toString())}catch(r){console.error(`Error calling function ${e} from contract ${this.contractId} with params ${JSON.stringify(t)}`,r)}}view(e,t){if(!this.wallet)throw Error(`contract-proxy not connected ${this.contractId} trying to view ${e}`);return this.wallet.view(this.contractId,e,t)}call(e,t,r,n){if(!this.wallet)throw Error(`contract-proxy not connected ${this.contractId} trying to call ${e}`);return this.wallet.call(this.contractId,e,t,r,n)}callWithoutSend(e,t,r,n){if(!this.nearWallet)throw Error(`contract-proxy not connected ${this.contractId} trying to call ${e}`);return this.nearWallet.call(this.contractId,e,t,r,n)}disconnect(){this.wallet=$31107577f4adfbcd$export$bb2eafcb55f553b2}constructor(e){this.contractId=e,this.wallet=$31107577f4adfbcd$export$bb2eafcb55f553b2,this.nearWallet=new $bc68e45de6fece0b$exports.WalletAccount($0f9cb702b616ea20$export$d71917a79103c107,null),this.account=this.nearWallet.account(),this.provider=new(0,$8O0X7.JsonRpcProvider)($0f9cb702b616ea20$export$fa494f8daebcc431.nodeUrl)}}var $lq4RO=parcelRequire("lq4RO");class $00f2fa17081b426f$export$bbe373bfa0af92e4 extends $a09e8bad8a81c5e0$export$fc1ba6948f99dde{async ft_transfer(e,t,r){return this.call("ft_transfer",{receiver_id:e,amount:t,memo:r},$6a82c7dd9e823656$export$1e6601f564a1737(200),"1")}async ft_transfer_call(e,t,r,n){return this.call("ft_transfer_call",{receiver_id:e,amount:t,memo:n,msg:r},$6a82c7dd9e823656$export$1e6601f564a1737(200),"1")}async ft_transfer_call_without_send(e,t,r="to farm"){return $bc68e45de6fece0b$exports.transactions.functionCall("ft_transfer_call",{receiver_id:e,amount:t,msg:r},new(0,$lq4RO.BN)("200000000000000"),new(0,$lq4RO.BN)(1))}async unstake_without_send(e,t){return $bc68e45de6fece0b$exports.transactions.functionCall("unstake",{token:e,amount:t},new(0,$lq4RO.BN)("200000000000000"),new(0,$lq4RO.BN)(1))}async ft_total_supply(){return this.viewWithoutAccount("ft_total_supply")}async ft_balance_of(e){return this.viewWithoutAccount("ft_balance_of",{account_id:e})}async ft_metadata(){return this.viewWithoutAccount("ft_metadata")}async new(e,t){return this.call("new",{owner_id:e,owner_supply:t})}storageBalance(e){return this.viewWithoutAccount("storage_balance_of",{account_id:e||this.wallet.getAccountId()})}storageDeposit(){return this.call("storage_deposit",{},$6a82c7dd9e823656$export$1e6601f564a1737(25),"3000000000000000000000")}async storageDepositWithoutSend(){return $bc68e45de6fece0b$exports.transactions.functionCall("storage_deposit",{},new(0,$lq4RO.BN)("200000000000000"),new(0,$lq4RO.BN)("3000000000000000000000"))}}var $9BvVM=parcelRequire("9BvVM"),$9BvVM=parcelRequire("9BvVM");function $e929ea7e6e659d4a$export$7e73baf1cf92be47(e){return{spec:"",name:"Near",symbol:e,symbolForHtml:e,icon:'',reference:"",reference_hash:"",decimals:24}}var $lq4RO=parcelRequire("lq4RO");class $76e2e1563c0eee80$export$dc767fa29fe54e3e extends $a09e8bad8a81c5e0$export$fc1ba6948f99dde{get_contract_params(){return this.viewWithoutAccount("get_contract_params",{})}status(e){return this.wallet===$31107577f4adfbcd$export$bb2eafcb55f553b2?Promise.resolve(["-","-","-"]):this.viewWithoutAccount("status",{account_id:e||this.wallet.getAccountId()})}storageBalance(e){return this.viewWithoutAccount("storage_balance_of",{account_id:e||this.wallet.getAccountId()})}storageDeposit(){return this.call("storage_deposit",{},$6a82c7dd9e823656$export$1e6601f564a1737(25),"60000000000000000000000")}async storageDepositWithoutSend(){return $bc68e45de6fece0b$exports.transactions.functionCall("storage_deposit",{},new(0,$lq4RO.BN)("200000000000000"),new(0,$lq4RO.BN)("60000000000000000000000"))}stake(e){return this.call("stake",{},$6a82c7dd9e823656$export$1e6601f564a1737(25),e.toString())}unstake(e){return this.call("unstake",{amount:e},$6a82c7dd9e823656$export$1e6601f564a1737(125),"1")}close(){return this.call("close",{},$6a82c7dd9e823656$export$1e6601f564a1737(75),"1")}withdraw_crop(){return this.call("withdraw_crop",{},$6a82c7dd9e823656$export$1e6601f564a1737(125))}}var $lq4RO=parcelRequire("lq4RO");class $7ebfa24a5674779a$export$e108c1b39d7e0fac extends $a09e8bad8a81c5e0$export$fc1ba6948f99dde{get_contract_params(){return this.viewWithoutAccount("get_contract_params")}status(e){return this.viewWithoutAccount("status",{account_id:e||this.wallet.getAccountId()})}storageBalance(e){return this.viewWithoutAccount("storage_balance_of",{account_id:e||this.wallet.getAccountId()})}storageDeposit(){return this.call("storage_deposit",{},$6a82c7dd9e823656$export$1e6601f564a1737(25),"60000000000000000000000")}async storageDepositWithoutSend(){return $bc68e45de6fece0b$exports.transactions.functionCall("storage_deposit",{},new(0,$lq4RO.BN)("200000000000000"),new(0,$lq4RO.BN)("60000000000000000000000"))}ft_transfer_call(e){return this.call("ft_transfer_call",{},$6a82c7dd9e823656$export$1e6601f564a1737(25),e)}withdraw_nft(e){return this.call("withdraw_nft",{receiver_id:e},$6a82c7dd9e823656$export$1e6601f564a1737(200),"1")}unstake(e,t){return this.call("unstake",{token:e,amount:t},$6a82c7dd9e823656$export$1e6601f564a1737(125),"1")}close(){return this.call("close",{},$6a82c7dd9e823656$export$1e6601f564a1737(75),"1")}withdraw_crop(){return this.call("withdraw_crop",{},$6a82c7dd9e823656$export$1e6601f564a1737(125))}}var $9BvVM=parcelRequire("9BvVM");class $a387e1e09650fdc9$export$63440f1175eeef41{constructor(){(0,$9BvVM.default)(this,"owner_id",""),(0,$9BvVM.default)(this,"stake_tokens",[]),(0,$9BvVM.default)(this,"stake_rates",[]),(0,$9BvVM.default)(this,"farm_unit_emission",""),(0,$9BvVM.default)(this,"farm_tokens",[]),(0,$9BvVM.default)(this,"farm_token_rates",[]),(0,$9BvVM.default)(this,"is_active",!1),(0,$9BvVM.default)(this,"farming_start",0),(0,$9BvVM.default)(this,"farming_end",0),(0,$9BvVM.default)(this,"total_staked",[]),(0,$9BvVM.default)(this,"total_farmed",[]),(0,$9BvVM.default)(this,"fee_rate",0),(0,$9BvVM.default)(this,"accounts_registered",0)}}class $a387e1e09650fdc9$export$73a2e73f570f907e{constructor(e=0,t=0){(0,$9BvVM.default)(this,"stake_tokens",[]),(0,$9BvVM.default)(this,"stake",""),(0,$9BvVM.default)(this,"farmed_units",""),(0,$9BvVM.default)(this,"farmed_tokens",[]),(0,$9BvVM.default)(this,"cheddy_nft",""),(0,$9BvVM.default)(this,"timestamp",0),this.stake_tokens=new Array(e).fill("0"),this.farmed_tokens=new Array(t).fill("0")}}class $a387e1e09650fdc9$export$7005356a305e265f{constructor(e=0,t=0){(0,$9BvVM.default)(this,"stake_tokens",[]),(0,$9BvVM.default)(this,"stake",""),(0,$9BvVM.default)(this,"farmed_units",""),(0,$9BvVM.default)(this,"farmed_tokens",[]),(0,$9BvVM.default)(this,"boost_nfts",""),(0,$9BvVM.default)(this,"timestamp",0),this.stake_tokens=new Array(e).fill([]),this.farmed_tokens=new Array(t).fill("0")}}class $a387e1e09650fdc9$export$6875f93d4a1de0a9{constructor(){(0,$9BvVM.default)(this,"decimals","24"),(0,$9BvVM.default)(this,"icon",""),(0,$9BvVM.default)(this,"name",""),(0,$9BvVM.default)(this,"reference",""),(0,$9BvVM.default)(this,"reference_hash",""),(0,$9BvVM.default)(this,"spec",""),(0,$9BvVM.default)(this,"symbol","")}}class $a387e1e09650fdc9$export$8daa4e1bda236b7a{constructor(e,t){this.contractName=e,this.amount=t}}async function $b325431aefeb130a$export$80040c3fb8bb2354(e,t){let r=[];for(let n=0;n0n}getDisplayableComputed(){return $6a82c7dd9e823656$export$db8ae05e40dfea01(this.computed.toString(),24,7)}getCurrentCheddarRewards(){return $6a82c7dd9e823656$export$db8ae05e40dfea01(this.real.toString(),24,7)}getCurrentDisplayableCheddarRewards(){return $6a82c7dd9e823656$export$db8ae05e40dfea01(this.computed.toString(),24,7)}getDisplayableAccountName(){return this.accName.length>22?this.accName.slice(0,10)+".."+this.accName.slice(-10):this.accName}addStaked(e){this.staked=this.staked+BigInt(e)}constructor(e){(0,$9BvVM.default)(this,"real_rewards_per_day",0n),(0,$9BvVM.default)(this,"skip",0),(0,$9BvVM.default)(this,"staked",0n),(0,$9BvVM.default)(this,"real",0n),(0,$9BvVM.default)(this,"computed",0n),(0,$9BvVM.default)(this,"previous_real",0n),(0,$9BvVM.default)(this,"previousTimestamp",0),(0,$9BvVM.default)(this,"tokenDecimals",0),(0,$9BvVM.default)(this,"accName",""),e&&(this.staked=BigInt(e[0]),this.real=BigInt(e[1]),this.previousTimestamp=Number(e[2]))}}class $617ed70881cfef50$export$5fdb16077e6436d1{async userHasStakedTokens(){const e=await this.stakingContractData.getUserStatus();return Number(e.staked)>0}async getTokenContractList(e){return[new $b325431aefeb130a$export$596742cc9b3ae571(this.wallet,e,this.poolName)]}async getPoolName(){if("_"===this.poolName[0])return this.poolName.substring(1);return(await this.stakeTokenContractList[0].getMetadata()).symbol}async setStakeTokenContractList(){this.stakeTokenContractList=[await this.getStakeTokenContractData()]}async setFarmTokenContractList(){this.farmTokenContractList=await this.getTokenContractList(this.cheddarContract.contractId)}async setAllExtraData(){await this.setStakeTokenContractList(),await this.setFarmTokenContractList()}async refreshAllExtraData(){}async getRewardTokenIconData(){const e=await this.cheddarContract.ft_metadata(),t=e.icon?e.icon:e.name;return[{isSvg:t.includes("e.length>0)));return t}async getPoolName(){return this.html.formId}async setAllExtraData(){}async refreshAllExtraData(){}async withdrawBoost(){const e=(await this.stakingContractData.getUserStatus()).boost_nfts.split("@")[1];return this.stakingContractData.contract.unstake(this.nftContractForBoosting.contractId,e)}async transferCheddar(){const e=await this.stakingContractData.getContractParams(),t=(await this.stakingContractData.getStakeTokenContractList())[0].contract,r=e.cheddar_rate;return{promise:t.ft_transfer_call_without_send(this.stakingContractData.contract.contractId,r,"cheddar stake"),contractName:t.contractId}}transferNFT(e,t,r){return{promise:e.contract.nft_transfer_call_without_send(this.stakingContractData.contract.contractId,r),contractName:t}}async stakeUnstakeNFTs(e){let t=[];for(let[r,n]of e){const e=(await this.stakingContractData.getStakeNFTContractList()).find((e=>e.contract.contractId==r));for(let a=0;a0&&await $7f7629fa1e11a8df$export$12131bc15911221e(t,this.stakingContractData.contract)}async getStakeTokensDetail(){let e=[];const t=await this.stakingContractData.getContractParams(),r=await this.stakingContractData.getStakeTokenContractList();for(let n=0;n22?this.accName.slice(0,10)+".."+this.accName.slice(-10):this.accName}addStaked(e){for(let t=0;t0n);return t}async getPoolName(){let e=[];const t=await this.stakingContractData.getStakeTokenContractList();let r,n=!1;for(let a=0;a20?a.substring(0,7)+"..."+a.substring(a.length-7):a}async setAllExtraData(){}async refreshAllExtraData(){}async stake(e){let t=[];const r=await this.stakingContractData.getStakeTokenContractList();for(let n=0;nt.stakingContractData.getContractParamsNotAsync().farming_end-e.stakingContractData.getContractParamsNotAsync().farming_end))),$e35c076bc1fed0bf$var$poolList}let $c17abf7ffd777163$var$testTokensSymbols=["afi-tt","gua"];async function $c17abf7ffd777163$var$setAllTokensData(){const e=await fetch("https://api.stats.ref.finance/api/top-tokens"),t=await e.json();$c17abf7ffd777163$var$tokenDataArray=t}async function $c17abf7ffd777163$export$91b8816a124ef494(e,t=!1){return $c17abf7ffd777163$var$tokenDataArray&&!t||await $c17abf7ffd777163$var$setAllTokensData(),$c17abf7ffd777163$var$getPriceWithData(e)}function $c17abf7ffd777163$var$getPriceWithData(e){let t;if(e=e.toLowerCase(),"testnet"==$5e9f401e0f95c2cd$export$83401e34d5e11bf4&&$c17abf7ffd777163$var$testTokensSymbols.includes(e)&&(e="pem".toLowerCase()),"near"!=e&&"nearcon"!=e||(e="wnear"),$c17abf7ffd777163$var$tokenDataArray.forEach((r=>{r.symbol.toLowerCase()===e&&(t=r)})),void 0!==t)return t;throw Error(`Token with symbol ${e} not found`)}async function $c17abf7ffd777163$export$2e042ee8088ce7ba(e,t=!1){$c17abf7ffd777163$var$tokenDataArray&&!t||await $c17abf7ffd777163$var$setAllTokensData();let r=new Map;return e.forEach((e=>{e=e.toLowerCase(),r.set(e,$c17abf7ffd777163$var$getPriceWithData(e))})),r}function $9f5944e742fddc25$export$df86ca1385cfe2b(e,t,r){return{contract_id:r,base_url:t,token_id:e,owner_id:"",metadata:{title:"",description:"",media:e+".png",media_hash:"",copies:null,issued_at:"",expires_at:"",starts_at:"",updated_at:"",extra:"",reference:"",reference_hash:""},approved_account_ids:{}}}var $lq4RO=parcelRequire("lq4RO"),$fd83ee9de3b997ff$var$pointsA=[],$fd83ee9de3b997ff$var$pointsB=[],$fd83ee9de3b997ff$var$$canvas=null,$fd83ee9de3b997ff$var$canvas=null,$fd83ee9de3b997ff$var$context=null,$fd83ee9de3b997ff$var$vars=null,$fd83ee9de3b997ff$var$points=8,$fd83ee9de3b997ff$var$viscosity=20,$fd83ee9de3b997ff$var$mouseDist=70,$fd83ee9de3b997ff$var$damping=.05,$fd83ee9de3b997ff$var$showIndicators=!1,$fd83ee9de3b997ff$var$mouseX=0,$fd83ee9de3b997ff$var$mouseY=0,$fd83ee9de3b997ff$var$relMouseX=0,$fd83ee9de3b997ff$var$relMouseY=0,$fd83ee9de3b997ff$var$mouseLastX=0,$fd83ee9de3b997ff$var$mouseLastY=0,$fd83ee9de3b997ff$var$mouseDirectionX=0,$fd83ee9de3b997ff$var$mouseDirectionY=0,$fd83ee9de3b997ff$var$mouseSpeedX=0,$fd83ee9de3b997ff$var$mouseSpeedY=0;function $fd83ee9de3b997ff$var$mouseDirection(e){$fd83ee9de3b997ff$var$mouseDirectionX=$fd83ee9de3b997ff$var$mouseXe.pageX?-1:0,$fd83ee9de3b997ff$var$mouseDirectionY=$fd83ee9de3b997ff$var$mouseYe.pageY?-1:0,$fd83ee9de3b997ff$var$mouseX=e.pageX,$fd83ee9de3b997ff$var$mouseY=e.pageY,$fd83ee9de3b997ff$var$relMouseX=$fd83ee9de3b997ff$var$mouseX-(null==$fd83ee9de3b997ff$var$$canvas?void 0:$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().left),$fd83ee9de3b997ff$var$relMouseY=$fd83ee9de3b997ff$var$mouseY-(null==$fd83ee9de3b997ff$var$$canvas?void 0:$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().top)}function $fd83ee9de3b997ff$var$mouseSpeed(){$fd83ee9de3b997ff$var$mouseSpeedX=$fd83ee9de3b997ff$var$mouseX-$fd83ee9de3b997ff$var$mouseLastX,$fd83ee9de3b997ff$var$mouseSpeedY=$fd83ee9de3b997ff$var$mouseY-$fd83ee9de3b997ff$var$mouseLastY,$fd83ee9de3b997ff$var$mouseLastX=$fd83ee9de3b997ff$var$mouseX,$fd83ee9de3b997ff$var$mouseLastY=$fd83ee9de3b997ff$var$mouseY,setTimeout($fd83ee9de3b997ff$var$mouseSpeed,50)}function $fd83ee9de3b997ff$export$40f8640a65e1db50(){$fd83ee9de3b997ff$var$mouseSpeed();var e=$12ea74ff3a8a3e3a$export$836aee6bce45247(".btn-liquid"),t=e.getBoundingClientRect().width+22,r=e.getBoundingClientRect().height;$fd83ee9de3b997ff$var$$canvas=document.createElement("canvas"),e.append($fd83ee9de3b997ff$var$$canvas),$fd83ee9de3b997ff$var$$canvas.width=t+30,$fd83ee9de3b997ff$var$$canvas.height=r+50,$fd83ee9de3b997ff$var$context=$fd83ee9de3b997ff$var$$canvas.getContext("2d");for(var n=r/2,a=1;a<$fd83ee9de3b997ff$var$points;a++)$fd83ee9de3b997ff$var$addPoints(n+(t-r)/$fd83ee9de3b997ff$var$points*a,0);$fd83ee9de3b997ff$var$addPoints(t-r/5,0),$fd83ee9de3b997ff$var$addPoints(t+r/10,r/2),$fd83ee9de3b997ff$var$addPoints(t-r/5,r);for(a=$fd83ee9de3b997ff$var$points-1;a>0;a--)$fd83ee9de3b997ff$var$addPoints(n+(t-r)/$fd83ee9de3b997ff$var$points*a,r);$fd83ee9de3b997ff$var$addPoints(r/5,r),$fd83ee9de3b997ff$var$addPoints(-r/10,r/2),$fd83ee9de3b997ff$var$addPoints(r/5,0),$fd83ee9de3b997ff$var$renderCanvas()}function $fd83ee9de3b997ff$var$addPoints(e,t){$fd83ee9de3b997ff$var$pointsA.push(new $fd83ee9de3b997ff$var$Point(e,t,1)),$fd83ee9de3b997ff$var$pointsB.push(new $fd83ee9de3b997ff$var$Point(e,t,2))}document.addEventListener("mousemove",$fd83ee9de3b997ff$var$mouseDirection);class $fd83ee9de3b997ff$var$Point{move(){this.vx+=(this.ix-this.x)/($fd83ee9de3b997ff$var$viscosity*this.level),this.vy+=(this.iy-this.y)/($fd83ee9de3b997ff$var$viscosity*this.level);var e=this.ix-$fd83ee9de3b997ff$var$relMouseX,t=this.iy-$fd83ee9de3b997ff$var$relMouseY,r=1-Math.sqrt(e*e+t*t)/$fd83ee9de3b997ff$var$mouseDist;($fd83ee9de3b997ff$var$mouseDirectionX>0&&$fd83ee9de3b997ff$var$relMouseX>this.x||$fd83ee9de3b997ff$var$mouseDirectionX<0&&$fd83ee9de3b997ff$var$relMouseX0&&r<1&&(this.vx=$fd83ee9de3b997ff$var$mouseSpeedX/4*r),this.vx*=1-$fd83ee9de3b997ff$var$damping,this.x+=this.vx,($fd83ee9de3b997ff$var$mouseDirectionY>0&&$fd83ee9de3b997ff$var$relMouseY>this.y||$fd83ee9de3b997ff$var$mouseDirectionY<0&&$fd83ee9de3b997ff$var$relMouseY0&&r<1&&(this.vy=$fd83ee9de3b997ff$var$mouseSpeedY/4*r),this.vy*=1-$fd83ee9de3b997ff$var$damping,this.y+=this.vy}constructor(e,t,r){this.x=this.ix=25+e,this.y=this.iy=25+t,this.vx=0,this.vy=0,this.cx1=0,this.cy1=0,this.cx2=0,this.cy2=0,this.level=r}}function $fd83ee9de3b997ff$var$renderCanvas(){requestAnimationFrame($fd83ee9de3b997ff$var$renderCanvas);$fd83ee9de3b997ff$var$context.clearRect(0,0,$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().width,$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().height),$fd83ee9de3b997ff$var$context.fillStyle="transparent",$fd83ee9de3b997ff$var$context.fillRect(0,0,$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().width,$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().height);for(var e=0;e<=$fd83ee9de3b997ff$var$pointsA.length-1;e++)$fd83ee9de3b997ff$var$pointsA[e].move(),$fd83ee9de3b997ff$var$pointsB[e].move();var t=$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect(),r=t.top+window.scrollY,n=t.left+window.scrollX,a=Math.min(Math.max($fd83ee9de3b997ff$var$mouseX-n,0),$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().width),o=Math.min(Math.max($fd83ee9de3b997ff$var$mouseY-r,0),$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().height),i=Math.sqrt(Math.pow(a-$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().width/2,2)+Math.pow(o-$fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().height/2,2))/Math.sqrt(Math.pow($fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().width/2,2)+Math.pow($fd83ee9de3b997ff$var$$canvas.getBoundingClientRect().height/2,2)),s=$fd83ee9de3b997ff$var$context.createRadialGradient(a,o,300+300*i,a,o,0);s.addColorStop(0,"#F9BA37"),s.addColorStop(1,"#FFD262");for(var c=[$fd83ee9de3b997ff$var$pointsA,$fd83ee9de3b997ff$var$pointsB],l=0;l<=1;l++){var u=c[l];$fd83ee9de3b997ff$var$context.fillStyle=0==l?"#8542EB":s,$fd83ee9de3b997ff$var$context.beginPath(),$fd83ee9de3b997ff$var$context.moveTo(u[0].x,u[0].y);for(e=0;eMath.random()*(t-e)+e,$6cdb5b2e15100587$var$initConfettoVelocity=(e,t)=>{const r=$6cdb5b2e15100587$var$randomRange(e[0],e[1]),n=t[1]-t[0]+1;let a=t[1]-Math.abs($6cdb5b2e15100587$var$randomRange(0,n)+$6cdb5b2e15100587$var$randomRange(0,n)-n);return a>=t[1]-1&&(a+=Math.random()<.25?$6cdb5b2e15100587$var$randomRange(1,3):0),{x:r,y:-a}};class $6cdb5b2e15100587$export$dd5caf7f88107e2f{initBurst(){for(let e=0;e<$6cdb5b2e15100587$var$confettiCount;e++)this.confetti.push(new $6cdb5b2e15100587$var$Confetto(this.confettiButton,this.canvas));for(let e=0;e<$6cdb5b2e15100587$var$sequinCount;e++)this.sequins.push(new $6cdb5b2e15100587$var$Sequin(this.confettiButton,this.canvas))}render(e,t,r,n,a){const o=t.getContext("2d");o.clearRect(0,0,t.width,t.height),r.forEach(((r,n)=>{let a=r.dimensions.x*r.scale.x,i=r.dimensions.y*r.scale.y;o.translate(r.position.x,r.position.y),o.rotate(r.rotation),r.update(),o.fillStyle=r.scale.y>0?r.color.front:r.color.back,o.fillRect(-a/2,-i/2,a,i),o.setTransform(1,0,0,1,0,0),r.velocity.y<0&&o.clearRect(t.width/2-e.offsetWidth/2,t.height/2+e.offsetHeight/2,e.offsetWidth,e.offsetHeight)})),n.forEach(((r,n)=>{o.translate(r.position.x,r.position.y),r.update(),o.fillStyle=r.color,o.beginPath(),o.arc(0,0,r.radius,0,2*Math.PI),o.fill(),o.setTransform(1,0,0,1,0,0),r.velocity.y<0&&o.clearRect(t.width/2-e.offsetWidth/2,t.height/2+e.offsetHeight/2,e.offsetWidth,e.offsetHeight)})),r.forEach(((e,n)=>{e.position.y>=t.height&&r.splice(n,1)})),n.forEach(((e,r)=>{e.position.y>=t.height&&n.splice(r,1)}));let i=a||this.render;window.requestAnimationFrame(i.bind(null,e,t,r,n,i))}clickButtonWithRedirection(e){$6cdb5b2e15100587$var$disabled||(sessionStorage.setItem("cheddarFarmJustHarvested",e),this.confettiButton.classList.add("loading"),this.confettiButton.classList.remove("ready"))}successAnimation(){$6cdb5b2e15100587$var$disabled=!0,this.confettiButton.classList.add("loading"),this.confettiButton.classList.remove("ready"),setTimeout((()=>{this.confettiButton.classList.add("complete"),this.confettiButton.classList.remove("loading"),setTimeout((()=>{this.initBurst(),setTimeout((()=>{$6cdb5b2e15100587$var$disabled=!1,this.confettiButton.classList.add("ready"),this.confettiButton.classList.remove("complete")}),4e3)}),320)}),1800)}clickButtonWithoutRedirection(){$6cdb5b2e15100587$var$disabled||($6cdb5b2e15100587$var$disabled=!0,this.confettiButton.classList.add("loading"),this.confettiButton.classList.remove("ready"),setTimeout((()=>{this.confettiButton.classList.add("complete"),this.confettiButton.classList.remove("loading"),setTimeout((()=>{this.initBurst(),setTimeout((()=>{$6cdb5b2e15100587$var$disabled=!1,this.confettiButton.classList.add("ready"),this.confettiButton.classList.remove("complete")}),4e3)}),320)}),1800))}resizeCanvas(){$6cdb5b2e15100587$var$canvas.width=window.innerWidth,$6cdb5b2e15100587$var$canvas.height=window.innerHeight}constructor(e){(0,$9BvVM.default)(this,"confetti",[]),(0,$9BvVM.default)(this,"sequins",[]),this.confettiButton=e.querySelector(".confetti-button"),this.canvas=e.querySelector("#new-confetti-button_canvas"),window.addEventListener("resize",(()=>{this.resizeCanvas()}))}}class $6cdb5b2e15100587$var$Confetto{update(){this.velocity.x-=this.velocity.x*$6cdb5b2e15100587$var$dragConfetti,this.velocity.y=Math.min(this.velocity.y+$6cdb5b2e15100587$var$gravityConfetti,$6cdb5b2e15100587$var$terminalVelocity),this.velocity.x+=Math.random()>.5?Math.random():-Math.random(),this.position.x+=this.velocity.x,this.position.y+=this.velocity.y,this.scale.y=Math.cos(.09*(this.position.y+this.randomModifier))}constructor(e,t){this.randomModifier=$6cdb5b2e15100587$var$randomRange(0,99),this.color=$6cdb5b2e15100587$var$colors[Math.floor($6cdb5b2e15100587$var$randomRange(0,$6cdb5b2e15100587$var$colors.length))],this.dimensions={x:$6cdb5b2e15100587$var$randomRange(5,9),y:$6cdb5b2e15100587$var$randomRange(8,15)},this.position={x:$6cdb5b2e15100587$var$randomRange(t.width/2-e.offsetWidth/4,t.width/2+e.offsetWidth/4),y:$6cdb5b2e15100587$var$randomRange(t.height/2+e.offsetHeight/2+8,t.height/2+1.5*e.offsetHeight-8)},this.rotation=$6cdb5b2e15100587$var$randomRange(0,2*Math.PI),this.scale={x:1,y:1},this.velocity=$6cdb5b2e15100587$var$initConfettoVelocity([-9,9],[6,11])}}class $6cdb5b2e15100587$var$Sequin{update(){this.velocity.x-=this.velocity.x*$6cdb5b2e15100587$var$dragSequins,this.velocity.y=this.velocity.y+$6cdb5b2e15100587$var$gravitySequins,this.position.x+=this.velocity.x,this.position.y+=this.velocity.y}constructor(e,t){this.color=$6cdb5b2e15100587$var$colors[Math.floor($6cdb5b2e15100587$var$randomRange(0,$6cdb5b2e15100587$var$colors.length))].back,this.radius=$6cdb5b2e15100587$var$randomRange(1,2),this.position={x:$6cdb5b2e15100587$var$randomRange(t.width/2-e.offsetWidth/3,t.width/2+e.offsetWidth/3),y:$6cdb5b2e15100587$var$randomRange(t.height/2+e.offsetHeight/2+8,t.height/2+1.5*e.offsetHeight-8)},this.velocity={x:$6cdb5b2e15100587$var$randomRange(-6,6),y:$6cdb5b2e15100587$var$randomRange(-8,-12)}}}let $0f9cb702b616ea20$export$fa494f8daebcc431=$5e9f401e0f95c2cd$export$44487a86467333c3($5e9f401e0f95c2cd$export$83401e34d5e11bf4),$0f9cb702b616ea20$export$d71917a79103c107,$0f9cb702b616ea20$export$4b6dd4ac026934d2=$31107577f4adfbcd$export$bb2eafcb55f553b2,$0f9cb702b616ea20$var$nearWebWalletConnection,$0f9cb702b616ea20$var$nearConnectedWalletAccount,$0f9cb702b616ea20$var$accountName,$0f9cb702b616ea20$var$isPaused=!1,$0f9cb702b616ea20$var$loggedWithNarwallets=!1;const $0f9cb702b616ea20$var$SECONDS=1e3,$0f9cb702b616ea20$var$MINUTES=60*$0f9cb702b616ea20$var$SECONDS,$0f9cb702b616ea20$var$HOURS=60*$0f9cb702b616ea20$var$MINUTES;let $0f9cb702b616ea20$var$countDownIntervalId;const $0f9cb702b616ea20$var$refreshTime=60*$0f9cb702b616ea20$var$SECONDS,$0f9cb702b616ea20$var$ONE_NEAR=BigInt(10)**BigInt(24);$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(".popup button#cancel").forEach((e=>e.onclick=e=>{e.preventDefault(),$12ea74ff3a8a3e3a$export$e7f12c9836083937()})),$12ea74ff3a8a3e3a$export$836aee6bce45247("nav #home").onclick=async function(e){e.preventDefault(),$0f9cb702b616ea20$export$4b6dd4ac026934d2.isConnected()?($0f9cb702b616ea20$var$showSection("#home-connected"),$0f9cb702b616ea20$var$selectNav("#home")):$0f9cb702b616ea20$var$signedOutFlow()},$12ea74ff3a8a3e3a$export$836aee6bce45247("#logo").onclick=async function(e){e.preventDefault(),$0f9cb702b616ea20$export$4b6dd4ac026934d2.isConnected()?$0f9cb702b616ea20$var$signedInFlow($0f9cb702b616ea20$export$4b6dd4ac026934d2):$0f9cb702b616ea20$var$signedOutFlow()},$12ea74ff3a8a3e3a$export$836aee6bce45247("#my-account").onclick=async function(e){e.preventDefault(),$0f9cb702b616ea20$export$4b6dd4ac026934d2.isConnected()?(console.log("Connected"),$0f9cb702b616ea20$var$signedInFlow($0f9cb702b616ea20$export$4b6dd4ac026934d2)):(console.log("Disconnected"),$0f9cb702b616ea20$var$loginNearWebWallet())};let $0f9cb702b616ea20$var$moreGamesButton=$12ea74ff3a8a3e3a$export$836aee6bce45247(".games-dropdown");$0f9cb702b616ea20$var$moreGamesButton.addEventListener("click",$0f9cb702b616ea20$var$gamesDropdownHandler());let $0f9cb702b616ea20$var$noLivePoolsMsg=$12ea74ff3a8a3e3a$export$836aee6bce45247(".no-live-pools-msg");function $0f9cb702b616ea20$var$gamesDropdownHandler(){return function(){$12ea74ff3a8a3e3a$export$836aee6bce45247(".games-dropdown-items").classList.toggle("down"),$12ea74ff3a8a3e3a$export$836aee6bce45247(".games-links-container").classList.toggle("games-dropdown-hidden-position"),$0f9cb702b616ea20$var$moreGamesButton.querySelector("svg").classList.toggle("flipped")}}function $0f9cb702b616ea20$var$navClickHandler_ConnectFirst(e){var t;e.preventDefault(),$0f9cb702b616ea20$export$4b6dd4ac026934d2.isConnected()?$0f9cb702b616ea20$var$showSection("#"+(null===(t=e.target.closest("a"))||void 0===t?void 0:t.id)):($0f9cb702b616ea20$var$showSection("#home"),$0f9cb702b616ea20$var$loginNearWebWallet())}function $0f9cb702b616ea20$var$sayChoose(){$12ea74ff3a8a3e3a$export$787f5d117f138d13("Please choose a wallet to connect","Connect first")}function $0f9cb702b616ea20$var$filterPools(e){return function(t){$0f9cb702b616ea20$var$filterButtonClicked(t),$0f9cb702b616ea20$var$hideAllPools(),$0f9cb702b616ea20$var$showSelectedPools($12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(`.${e}`),e)}}function $0f9cb702b616ea20$var$filterButtonClicked(e){$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(".activeFilterButton").forEach((e=>{e.classList.remove("activeFilterButton")})),e.target.classList.add("activeFilterButton")}function $0f9cb702b616ea20$var$hideAllPools(){document.querySelectorAll(".pool-container").forEach((e=>{e.classList.add("hidden")}))}function $0f9cb702b616ea20$var$showSelectedPools(e,t){e.length>0?($12ea74ff3a8a3e3a$export$836aee6bce45247(".no-live-pools-msg").classList.add("hidden"),e.forEach((e=>{e.classList.remove("hidden")}))):"active-pool"==t&&$12ea74ff3a8a3e3a$export$836aee6bce45247(".no-live-pools-msg").classList.remove("hidden")}function $0f9cb702b616ea20$var$activateClicked(e,t){return async function(r){r.preventDefault();let n=[];const a=await e.stakingContractData.getStakeTokenContractList();for(let e=0;ee.getMetadata())));const r=e.map((e=>e.getMetadataSync().symbol)),n=await $c17abf7ffd777163$export$2e042ee8088ce7ba(r);let a=0;return e.forEach(((e,r)=>{const o=e.getMetadataSync(),i=o.symbol,s=$6a82c7dd9e823656$export$db8ae05e40dfea01(t[r],o.decimals,5),c=n.get(i.toLowerCase());a+=parseFloat(c.price)*parseFloat(s)})),a.toFixed(5)}function $0f9cb702b616ea20$var$stakeMultiple(e,t){return async function(r){null==r||r.preventDefault(),$12ea74ff3a8a3e3a$export$11aadaec4fc63f87("Staking...");let n=[];try{let r=(new Date).getTime()/1e3;const a=await e.stakingContractData.getContractParams();if(!(r{e.removeAttribute("disabled")}))}}function $0f9cb702b616ea20$var$unstakeMultiple(e,t){return async function(r){null==r||r.preventDefault(),$12ea74ff3a8a3e3a$export$11aadaec4fc63f87("Unstaking...");let n=[];try{(new Date).getTime();await e.stakingContractData.getContractParams();const{htmlInputArray:r,amountValuesArray:a,transferedAmountWithSymbolArray:o}=await $0f9cb702b616ea20$var$getInputDataMultiple(e,t,"unstake");n=r,$12ea74ff3a8a3e3a$export$dd7fd6fec96e1ca2("input","disabled","disabled");if(await e.unstake(a),$0f9cb702b616ea20$var$loggedWithNarwallets){for(let e=0;e{e.removeAttribute("disabled")}))}}async function $0f9cb702b616ea20$var$getInputDataMultiple(e,t,r){let n=[],a=[],o=[],i=t.querySelectorAll(`.main-${r} .input-container`);const s=await e.stakingContractData.getStakeTokenContractList();let c;if("stake"==r)c=await e.getWalletAvailable();else{if("unstake"!=r)throw Error(`Action ${r} not available`);c=(await e.stakingContractData.getUserStatus()).stake_tokens}for(let e=0;eparseFloat(r))throw Error(`Only ${r} ${e.stakeTokenMetaData.symbol} Available to Stake.`);const a=(await e.stakingContractData.getStakeTokenContractList())[0],o=await a.getMetadata();await e.stakeTokenContract.ft_transfer_call(e.stakingContractData.contract.contractId,$6a82c7dd9e823656$export$b0ebaadef1c606a9(t.toString(),o.decimals.toString()),"to farm")}catch(e){$12ea74ff3a8a3e3a$export$dfd8f75b38935068(e)}n.removeAttribute("disabled")}}function $0f9cb702b616ea20$var$harvestMultipleOrNFT(e,t){return async function(t){var r;null==t||t.preventDefault();let n=e.html.id;null===(r=e.confettiButton)||void 0===r||r.clickButtonWithRedirection(n),$12ea74ff3a8a3e3a$export$11aadaec4fc63f87("Harvesting..."),await e.stakingContractData.contract.withdraw_crop(),$12ea74ff3a8a3e3a$export$d841eba85c078f0b("Harvested successfully")}}function $0f9cb702b616ea20$var$harvestSingle(e,t){return async function(t){var r;null==t||t.preventDefault(),$12ea74ff3a8a3e3a$export$11aadaec4fc63f87("Harvesting...");let n=e.html.id;null===(r=e.confettiButton)||void 0===r||r.clickButtonWithRedirection(n);const a=await e.stakingContractData.getUserStatus();let o=a.getCurrentCheddarRewards();await e.stakingContractData.contract.withdraw_crop(),a.computed=0n,a.real=0n,$12ea74ff3a8a3e3a$export$d841eba85c078f0b("Harvested"+$6a82c7dd9e823656$export$22adc86566c697a9(parseFloat(o))+" CHEDDAR")}}function $0f9cb702b616ea20$var$unstakeSingle(e,t){return async function(r){null==r||r.preventDefault(),$12ea74ff3a8a3e3a$export$11aadaec4fc63f87("Unstaking...");const n=await e.stakingContractData.getUserStatus(),a=(await e.stakingContractData.getStakeTokenContractList())[0],o=await a.getMetadata();let i=t.querySelector(".main-unstake input");try{i.setAttribute("disabled","disabled");let t=parseFloat(i.value);const r=n.staked,a=Number($6a82c7dd9e823656$export$db8ae05e40dfea01(r.toString(),o.decimals,5));if(isNaN(t))throw Error("Please Input a Number.");if(t>a)throw Error(`Only ${a} ${o.symbol} Available to Unstake.`);await e.stakingContractData.contract.unstake($6a82c7dd9e823656$export$b0ebaadef1c606a9(t.toString(),o.decimals.toString()))}catch(e){$12ea74ff3a8a3e3a$export$dfd8f75b38935068(e)}i.removeAttribute("disabled")}}function $0f9cb702b616ea20$var$termsOfUseListener(){return async function(e){e.preventDefault(),$12ea74ff3a8a3e3a$export$348d584e223bdf1b("#terms.popup")}}function $0f9cb702b616ea20$var$showUnstakeResult(e){$12ea74ff3a8a3e3a$export$d841eba85c078f0b(`

Unstaked
${$6a82c7dd9e823656$export$4ff57fb4047274ad(e)}
`,"Unstake")}function $0f9cb702b616ea20$var$showRemoveLiquidityResult(e){$12ea74ff3a8a3e3a$export$d841eba85c078f0b(`
cheddar received
${$6a82c7dd9e823656$export$4ff57fb4047274ad($6a82c7dd9e823656$export$7b927db028bec867(e))}
`,"Withdraw crop")}async function $0f9cb702b616ea20$var$autoRefresh(){$0f9cb702b616ea20$export$4b6dd4ac026934d2&&$0f9cb702b616ea20$export$4b6dd4ac026934d2.isConnected()}function $0f9cb702b616ea20$var$showSection(e){$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2("main section").forEach($12ea74ff3a8a3e3a$export$fe8985bb6374093c);const t=$12ea74ff3a8a3e3a$export$836aee6bce45247("main").querySelector(e);t&&($12ea74ff3a8a3e3a$export$57bf213be019eeb0(t),$0f9cb702b616ea20$var$selectNav(e)),$12ea74ff3a8a3e3a$export$836aee6bce45247(".burger-button").classList.remove("burger-button--toggle"),$12ea74ff3a8a3e3a$export$836aee6bce45247(".navbar-links").classList.remove("show-right__nav")}function $0f9cb702b616ea20$var$selectNav(e){var t;$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2("nav a").forEach((e=>e.classList.remove("selected"))),null===(t=$12ea74ff3a8a3e3a$export$836aee6bce45247("nav").querySelector(e))||void 0===t||t.classList.add("selected")}function $0f9cb702b616ea20$var$takeUserAmountFromHome(){let e="";try{const t=$12ea74ff3a8a3e3a$export$fc7d7d4be9a81733("#stake-form-not-connected input.near");e=t.value,e||(e=localStorage.getItem("amount")||""),e&&($12ea74ff3a8a3e3a$export$fc7d7d4be9a81733("#stake input.near").value=e,t.value="",localStorage.removeItem("amount"))}catch(e){}return e}async function $0f9cb702b616ea20$var$signedOutFlow(){$0f9cb702b616ea20$var$signedInFlow($31107577f4adfbcd$export$bb2eafcb55f553b2)}async function $0f9cb702b616ea20$var$signedInFlow(e){if($0f9cb702b616ea20$var$showSection("#home-connected"),$0f9cb702b616ea20$var$selectNav("#home"),$0f9cb702b616ea20$var$takeUserAmountFromHome(),e.isConnected()){let t,r=e.getDisplayableAccountId();t=r.length<15?r:r.slice(0,12)+"...";let n=$12ea74ff3a8a3e3a$export$836aee6bce45247(".user-info #account-id");n.innerText=t,n.title=r}else $12ea74ff3a8a3e3a$export$836aee6bce45247(".not-connected-msg").classList.remove("hidden"),$12ea74ff3a8a3e3a$export$836aee6bce45247(".user-info #account-id").innerText=e.getAccountId()}function $0f9cb702b616ea20$var$setDefaultFilter(e=!1){let t=$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(".your-farms"),r=$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(".active-pool");const n=new Event("click");e?$12ea74ff3a8a3e3a$export$836aee6bce45247("#live-filter").dispatchEvent(n):t.length>0?$12ea74ff3a8a3e3a$export$836aee6bce45247("#your-farms-filter").dispatchEvent(n):r.length>0?$12ea74ff3a8a3e3a$export$836aee6bce45247("#live-filter").dispatchEvent(n):$12ea74ff3a8a3e3a$export$836aee6bce45247("#ended-filter").dispatchEvent(n)}async function $0f9cb702b616ea20$var$initNearWebWalletConnection(){const e=await(0,$bc68e45de6fece0b$exports.connect)(Object.assign({deps:{keyStore:new $bc68e45de6fece0b$exports.keyStores.BrowserLocalStorageKeyStore}},$0f9cb702b616ea20$export$fa494f8daebcc431));$0f9cb702b616ea20$var$nearWebWalletConnection=new(0,$bc68e45de6fece0b$exports.WalletConnection)(e,null),$0f9cb702b616ea20$var$nearConnectedWalletAccount=new(0,$bc68e45de6fece0b$exports.ConnectedWalletAccount)($0f9cb702b616ea20$var$nearWebWalletConnection,e.connection,$0f9cb702b616ea20$var$nearWebWalletConnection.getAccountId())}function $0f9cb702b616ea20$var$logoutNearWebWallet(){$0f9cb702b616ea20$var$nearWebWalletConnection.signOut(),$0f9cb702b616ea20$export$4b6dd4ac026934d2=$31107577f4adfbcd$export$bb2eafcb55f553b2,window.location.replace(window.location.origin+window.location.pathname)}function $0f9cb702b616ea20$var$loginNearWebWallet(){$0f9cb702b616ea20$var$nearWebWalletConnection.requestSignIn($0f9cb702b616ea20$export$fa494f8daebcc431.farms[0].contractName)}function $0f9cb702b616ea20$var$loginNarwallets(){window.open("http://www.narwallets.com/help/connect-to-web-app")}function $0f9cb702b616ea20$var$showOrHideMaxButton(e,t){e>0?t.classList.remove("hidden"):t.classList.add("hidden")}function $0f9cb702b616ea20$var$setDateInRangeVisualIndication(e,t,r){let n=t.querySelector(".date-in-range-indicator circle");r?(n.classList.remove("offDate"),n.classList.add("onDate")):(n.classList.remove("onDate"),n.classList.add("offDate"));let a=0,o=t.querySelectorAll(".unclaimed-rewards-info-container .detail-row");o.forEach((e=>{let t=e.querySelector(".content"),r=Number(t.innerHTML);a+=r}));let i=t.querySelector(".unclaimed-rewards"),s=t.querySelector(".unclaimed-rewards-value-usd");0==a?(i.classList.remove("no-opacity"),s.classList.remove("no-opacity"),o.forEach((e=>{e.classList.remove("no-opacity")}))):(i.classList.add("no-opacity"),s.classList.add("no-opacity"),o.forEach((e=>{e.classList.add("no-opacity")})))}async function $0f9cb702b616ea20$var$refreshPoolInfoSingle(e,t){await e.refreshAllExtraData();const r=await e.stakingContractData.getContractParams(),n=await e.stakingContractData.getUserStatus();await $0f9cb702b616ea20$var$updateDetail(t,e.stakeTokenContractList,[r.total_staked],"total-staked"),await $0f9cb702b616ea20$var$updateDetail(t,e.farmTokenContractList,$0f9cb702b616ea20$var$convertRewardsRates([r.farming_rate.toString()]),"rewards-per-day"),await $0f9cb702b616ea20$var$uptadeDetailIfNecesary(e,t,[await e.getFarmTokenContractData()],[n.real.toString()],"unclaimed-rewards");const a=await Promise.all(e.stakeTokenContractList.map((e=>e.getBalance())));if(await $0f9cb702b616ea20$var$refreshInputAmounts(e,t,"main-stake",a),await $0f9cb702b616ea20$var$refreshInputAmounts(e,t,"main-unstake",[n.staked.toString()]),0n==n.staked){var o,i;t.classList.remove("your-farms");let r=await $0f9cb702b616ea20$var$needsStorageDeposit(e.stakeTokenContract);const n=e.stakeTokenContractList;for(let e=0;ee.rewardsPerDayBN.toString()));await $0f9cb702b616ea20$var$updateDetail(t,o,i,"rewards-per-day"),await $0f9cb702b616ea20$var$updateDetail(t,o,n.farmed_tokens,"unclaimed-rewards");const s=Date.now()/1e3,c=r.farming_starte.getBalance())));await $0f9cb702b616ea20$var$refreshInputAmounts(e,t,"main-stake",r),await $0f9cb702b616ea20$var$refreshInputAmounts(e,t,"main-unstake",n.stake_tokens),c||$0f9cb702b616ea20$var$resetMultiplePoolListener(e,t,$0f9cb702b616ea20$var$refreshNFTOrMultiplePoolInfo,-1)}else e instanceof $184235b9724bcd2f$export$c5b7d705df392988&&(c||$0f9cb702b616ea20$var$resetNFTPoolListener(e,t,$0f9cb702b616ea20$var$refreshNFTOrMultiplePoolInfo,-1));$0f9cb702b616ea20$var$setBoostDisplay(e,t),$0f9cb702b616ea20$var$setDateInRangeVisualIndication(e,t,c)}async function $0f9cb702b616ea20$var$refreshInputAmounts(e,t,r,n){const a=t.querySelectorAll(`.${r} .token-input-container`),o=await e.stakingContractData.getStakeTokenContractList();for(let e=0;e(60n*BigInt(e)*24n).toString()))}async function $0f9cb702b616ea20$var$updateDetail(e,t,r,n){const a=await $0f9cb702b616ea20$var$convertToUSDMultiple(t,r);e.querySelector(`.${n}-row .${n}-value-usd`).innerHTML=`$ ${a}`;const o=e.querySelectorAll(`.${n}-info-container .detail-row`);for(let e=0;e{}))}function $0f9cb702b616ea20$var$narwalletConnected(e){$0f9cb702b616ea20$export$4b6dd4ac026934d2=$665a63eaa3473810$export$63d3d30f802e1ca1,$0f9cb702b616ea20$var$loggedWithNarwallets=!0,$0f9cb702b616ea20$var$signedInFlow($0f9cb702b616ea20$export$4b6dd4ac026934d2)}function $0f9cb702b616ea20$var$narwalletDisconnected(e){$0f9cb702b616ea20$var$loggedWithNarwallets=!1,$0f9cb702b616ea20$export$4b6dd4ac026934d2=$31107577f4adfbcd$export$bb2eafcb55f553b2,$0f9cb702b616ea20$var$signedOutFlow()}function $0f9cb702b616ea20$var$calculateAmountHaveStaked(e,t,r,n){return t*e[n]/e[r]}function $0f9cb702b616ea20$var$calculateAmountToStake(e,t,r,n,a){const o=(t[n]+r)*e[n]/e[a]-t[a];return o>0n?o:0n}function $0f9cb702b616ea20$var$calculateAmountToUnstake(e,t,r,n,a){const o=t[n]-r,i=t[a]-o*e[n]/e[a];return i>0n?i:0n}function $0f9cb702b616ea20$var$autoFillStakeAmount(e,t,r,n){return async function(a){a.preventDefault();const o=a.target.value,i=await e.stakingContractData.getStakeTokenContractList(),s=await i[n].getMetadata(),c=BigInt($6a82c7dd9e823656$export$b0ebaadef1c606a9(o,s.decimals.toString())),l=await e.stakingContractData.getContractParams(),u=await e.stakingContractData.getUserStatus();let f=t.querySelectorAll(`${r} input`);const d=l.stake_rates.map((e=>BigInt(e))),h=u.stake_tokens.map((e=>BigInt(e)));for(let e=0;e{e.setAttribute("src",i.icon||"")})),await $0f9cb702b616ea20$var$addInput(t,a,"stake"),await $0f9cb702b616ea20$var$addInput(t,a,"unstake",n.staked.toString()),await $0f9cb702b616ea20$var$addHeader(e,t);let s=await $0f9cb702b616ea20$var$getUnclaimedRewardsInUSDSingle(e);const c=Date.now()/1e3 here.
`),r.innerHTML+=n[e],r.classList.remove("hidden")}}async function $0f9cb702b616ea20$var$addNFTPool(e,t){const r=await e.stakingContractData.getFarmTokenContractList();let n=await e.stakingContractData.getContractParams();await $0f9cb702b616ea20$var$addHeader(e,t);const a=(await e.getRewardsTokenDetail()).map((e=>e.rewardsPerDayBN.toString())),o=await $0f9cb702b616ea20$var$convertToUSDMultiple(r,a);if(t.querySelector(".rewards-per-day-value-usd").innerHTML=`$ ${o}`,e.config.noBoost){t.querySelector(".equal-width-than-boost-button").classList.add("hidden"),t.querySelector(".harvest-section").style.justifyContent="center"}else t.querySelector(".boost-button").classList.remove("hidden");t.querySelector(".structural-in-simple-pools").classList.add("hidden");const i=Date.now()/1e3 here.`),u.innerHTML+=f[t]+"
",u.classList.remove("hidden")}const d=(await e.getRewardsTokenDetail()).map((e=>e.rewardsPerDayBN.toString())),h=await $0f9cb702b616ea20$var$convertToUSDMultiple(o,d);t.querySelector(".total-staked-row .total-staked-value-usd").innerHTML=`$ ${l}`,t.querySelector(".rewards-per-day-value-usd").innerHTML=`$ ${h}`;const p=$0f9cb702b616ea20$var$calculateAPR(l,h,c);t.querySelector(".apr-value").innerHTML=`${p}%`,$0f9cb702b616ea20$var$setBoostDisplay(e,t),$0f9cb702b616ea20$var$addMultiplePoolListeners(e,t)}async function $0f9cb702b616ea20$var$setBoostDisplay(e,t){const r=await e.stakingContractData.getUserStatus();let n;n="boost_nfts"in r?""!=r.boost_nfts:""!=r.cheddy_nft,n?(t.querySelector(".boost-button svg").setAttribute("class","full"),t.querySelector(".boost-button span").innerHTML="BOOSTED"):(t.querySelector(".boost-button svg").setAttribute("class","empty"),t.querySelector(".boost-button span").innerHTML="BOOST")}function $0f9cb702b616ea20$var$addFocusClass(e){return function(t){null==t||t.preventDefault,e.classList.toggle("focused")}}async function $0f9cb702b616ea20$var$addInput(e,t,r,n){var a;var o=$12ea74ff3a8a3e3a$export$836aee6bce45247(".generic-token-input-container").cloneNode(!0);let i=o.querySelector(".input-container"),s=o.querySelector(".available-info"),c=o.querySelector("input");const l=await t.getMetadata();o.classList.remove("generic-token-input-container"),o.classList.add("token-input-container"),o.classList.add(`${l.symbolForHtml.toLowerCase()}-input`),o.classList.remove("hidden"),o.querySelector(".available-info span").innerHTML=`Available to ${r}`,null===(a=o.querySelector(".amount-available"))||void 0===a||a.classList.add(r),c.addEventListener("focus",$0f9cb702b616ea20$var$addFocusClass(i)),c.addEventListener("blur",$0f9cb702b616ea20$var$addFocusClass(i));let u=o.querySelector(".input-container .token-logo"),f=o.querySelector(".amount-available .value"),d=s.querySelector(".max-button");if(null!=l.icon){if(l.icon.startsWith("data:image")){let e=o.querySelector("img.token-logo");null==e||e.setAttribute("src",l.icon),null==u||u.classList.remove("hidden")}else if(l.icon.startsWith("{e.classList.add("hidden")}))}async function $0f9cb702b616ea20$var$addAllCommonListeners(e,t){let r,n=t.querySelector(".new-pool-header .information-icon-container"),a=t.querySelector("#token-pool-stats");if(n.addEventListener("mouseover",$0f9cb702b616ea20$var$showElement(a)),a.addEventListener("mouseover",$0f9cb702b616ea20$var$showElement(a)),a.addEventListener("mouseout",$0f9cb702b616ea20$var$hideElement(a)),r=!(e instanceof $617ed70881cfef50$export$5fdb16077e6436d1)&&await $0f9cb702b616ea20$var$needsStorageDeposit(e.stakingContractData.contract),!(e instanceof $184235b9724bcd2f$export$c5b7d705df392988||r||t.classList.contains("inactive-pool"))){let e=t.querySelector("#vanishing-indicator");null==e||e.classList.remove("transparent"),null==e||e.classList.add("visual-tool-expanding-indication-hidden"),t.addEventListener("mouseover",$0f9cb702b616ea20$var$paintOrUnPaintElement("visual-tool-expanding-indication-hidden",e)),t.addEventListener("mouseout",$0f9cb702b616ea20$var$paintOrUnPaintElement("visual-tool-expanding-indication-hidden",e));let r=t.querySelector(".expand-button");t.addEventListener("mouseover",$0f9cb702b616ea20$var$makeBlinkElement(r)),t.addEventListener("mouseout",$0f9cb702b616ea20$var$makeBlinkElement(r))}}async function $0f9cb702b616ea20$var$addSinglePoolListeners(e,t){var r,n,a,o;$0f9cb702b616ea20$var$addAllCommonListeners(e,t);const i=await e.getStakeTokenContractData(),s=await i.getMetadata();null===(r=t.querySelector(".confetti-button"))||void 0===r||r.addEventListener("click",$0f9cb702b616ea20$var$harvestSingle(e,t));[].push(`${s.symbol.toLowerCase()}`),null===(n=t.querySelector(".confetti-button"))||void 0===n||n.addEventListener("click",$0f9cb702b616ea20$var$harvestSingle(e,t)),null===(a=t.querySelector("#stake-button"))||void 0===a||a.addEventListener("click",$0f9cb702b616ea20$var$stakeSingle(e,t)),null===(o=t.querySelector("#unstake-button"))||void 0===o||o.addEventListener("click",$0f9cb702b616ea20$var$unstakeSingle(e,t)),$0f9cb702b616ea20$var$setAllInputMaxButtonListeners(t);const c=Date.now()/1e3,l=await e.stakingContractData.getContractParams();let u=-1;l.farming_startt.classList.remove(e)));const r=Date.now()/1e3<(await e.stakingContractData.getContractParams()).farming_end;await e.userHasStakedTokens()&&t.classList.add("your-farms"),r?t.classList.add("active-pool"):t.classList.add("inactive-pool")}async function $0f9cb702b616ea20$var$addPool(e){let t,r;var n=$12ea74ff3a8a3e3a$export$836aee6bce45247("#generic-pool-container").cloneNode(!0);n.setAttribute("id",e.html.id.toLowerCase().replace(" ","_")),n.classList.remove("hidden"),n.classList.add("pool-container"),$0f9cb702b616ea20$var$addFilterClasses(e,n),await $0f9cb702b616ea20$var$addRewardTokenIcons(e,n),await $0f9cb702b616ea20$var$addTotalStakedDetail(e,n),await $0f9cb702b616ea20$var$addRewardsPerDayDetail(e,n),await $0f9cb702b616ea20$var$addRewardsTokenDetail(e,n),await $0f9cb702b616ea20$var$addUnclaimedRewardsDetail(e,n),e instanceof $617ed70881cfef50$export$5fdb16077e6436d1&&"single"==e.type?(t=e,await $0f9cb702b616ea20$var$addPoolSingle(t,n)):e instanceof $64d5e78a8367bd77$export$856d9c4c9c7b8da0&&"multiple"==e.type?(r=e,await $0f9cb702b616ea20$var$addPoolMultiple(r,n)):e instanceof $184235b9724bcd2f$export$c5b7d705df392988&&"nft"==e.type&&await $0f9cb702b616ea20$var$addNFTPool(e,n),$0f9cb702b616ea20$var$addPoolTokensDescription(n,e);let a=n.querySelector("#contract-start"),o=n.querySelector("#contract-end");const i=await e.stakingContractData.getContractParams(),s=i.accounts_registered;n.querySelector(".accounts-registered-value-usd").innerHTML=`${s} accounts`,a.innerHTML=new Date(1e3*i.farming_start).toLocaleString(),o.innerHTML=new Date(1e3*i.farming_end).toLocaleString();const c=await e.getPoolName();n.querySelectorAll(".token-name").forEach((e=>{e.innerHTML=c})),n.classList.contains("inactive-pool")?$0f9cb702b616ea20$var$displayInactiveP2P3Pool(n):await $0f9cb702b616ea20$var$displayActivePool(e,n);if($0f9cb702b616ea20$var$setDateInRangeVisualIndication(e,n,(new Date).getTime()/1e3{}),1e3);null===(r=t.confettiButton)||void 0===r||r.successAnimation(),sessionStorage.removeItem("cheddarFarmJustHarvested"),sessionStorage.removeItem("cheddarFarmHarvestedSuccesfully")}}function $0f9cb702b616ea20$var$displayInactiveP2P3Pool(e){if(e.classList.contains("your-farms")){$0f9cb702b616ea20$var$toggleStakeUnstakeSection(e),$0f9cb702b616ea20$var$setUnstakeTabListeners(e),e.querySelector(".harvest-section").classList.remove("hidden"),e.querySelector("#staking-unstaking-container .staking").setAttribute("disabled","disabled");const t=new Event("click");e.querySelector("#staking-unstaking-container .unstaking").dispatchEvent(t)}}function $0f9cb702b616ea20$var$displayInactiveNFTPool(e,t){t.classList.contains("your-farms")&&(e.querySelector("#stake-unstake-nft").classList.remove("hidden"),e.querySelector(".harvest-section").classList.remove("hidden"))}function $0f9cb702b616ea20$var$toggleStakeUnstakeSection(e){let t=e.querySelector(".expand-button"),r=e.querySelector("#pool-container");t.classList.remove("hidden"),$0f9cb702b616ea20$var$toggleExpandStakeUnstakeSection(e,r),$0f9cb702b616ea20$var$toggleExpandStakeUnstakeSection(e,t)}function $0f9cb702b616ea20$var$setUnstakeTabListeners(e){let t=e.querySelector(".staking"),r=e.querySelector(".unstaking"),n=e.querySelector(".main-stake"),a=e.querySelector(".main-unstake"),o=e.querySelector("#stake-button"),i=e.querySelector("#unstake-button");r.addEventListener("click",$0f9cb702b616ea20$var$showElementHideAnother(a,n)),r.addEventListener("click",$0f9cb702b616ea20$var$showElementHideAnother(i,o)),r.addEventListener("click",$0f9cb702b616ea20$var$setActiveColor),r.addEventListener("click",$0f9cb702b616ea20$var$cancelActiveColor(t))}function $0f9cb702b616ea20$var$displayIfNftPool(e,t,r){if(t){if(e.classList.contains("inactive-pool")&&!r)return;e.querySelector("#stake-unstake-nft").classList.remove("hidden")}}function $0f9cb702b616ea20$var$displayIfTokenPool(e,t){if(t){$0f9cb702b616ea20$var$toggleStakeUnstakeSection(e);let t=e.querySelector(".staking"),r=e.querySelector(".unstaking"),n=e.querySelector(".main-stake"),a=e.querySelector(".main-unstake"),o=e.querySelector("#stake-button"),i=e.querySelector("#unstake-button");$0f9cb702b616ea20$var$setUnstakeTabListeners(e),t.addEventListener("click",$0f9cb702b616ea20$var$showElementHideAnother(n,a)),t.addEventListener("click",$0f9cb702b616ea20$var$showElementHideAnother(o,i)),t.addEventListener("click",$0f9cb702b616ea20$var$setActiveColor),t.addEventListener("click",$0f9cb702b616ea20$var$cancelActiveColor(r))}}async function $0f9cb702b616ea20$var$displayActivePool(e,t){let r=t.querySelector("#activate"),n=t.querySelector(".activate"),a=t.querySelector(".harvest-section");if($0f9cb702b616ea20$export$4b6dd4ac026934d2!=$31107577f4adfbcd$export$bb2eafcb55f553b2){let a=null!=await e.stakingContractData.contract.storageBalance();if(!a&&(r.classList.remove("hidden"),n.addEventListener("click",$0f9cb702b616ea20$var$activateClicked(e,t)),"nearcon"==e.html.formId||"cheddar"==e.html.formId)){let e="ONLY ACTIVATE IF PREVIOUSLY STAKED
0.06 NEAR storage deposit, gets refunded.";t.querySelector("#depositWarning").innerHTML=e}if(e instanceof $617ed70881cfef50$export$5fdb16077e6436d1||e instanceof $64d5e78a8367bd77$export$856d9c4c9c7b8da0)$0f9cb702b616ea20$var$displayIfTokenPool(t,a);else if(e instanceof $184235b9724bcd2f$export$c5b7d705df392988){const r=await e.stakingContractData.getUserStatus();$0f9cb702b616ea20$var$displayIfNftPool(t,a,r.stake_tokens.some((e=>e.length>0))&&"0"!=r.stake)}}t.classList.contains("your-farms")&&(r.classList.add("hidden"),n.setAttribute("disabled","disabled"),a.classList.remove("hidden"))}function $0f9cb702b616ea20$var$addLogo(e,t,r=0){let n;if(null!=e.icon&&""!=e.icon)if(e.icon.startsWith("data:image")){n=$12ea74ff3a8a3e3a$export$836aee6bce45247(".generic-token-logo-img").cloneNode(!0),null==n||n.setAttribute("src",e.icon)}else if(e.icon.startsWith("New Pools SoonTM...⚙️ Try our games!🕹️'),$0f9cb702b616ea20$var$isPaused=!1}$0f9cb702b616ea20$var$noLivePoolsMsg.addEventListener("click",$0f9cb702b616ea20$var$gamesDropdownHandler()),$12ea74ff3a8a3e3a$export$836aee6bce45247("nav #unstake-m").onclick=$0f9cb702b616ea20$var$navClickHandler_ConnectFirst,$12ea74ff3a8a3e3a$export$836aee6bce45247("nav #liquidity").onclick=$0f9cb702b616ea20$var$navClickHandler_ConnectFirst,$12ea74ff3a8a3e3a$export$836aee6bce45247("nav #my-account").onclick=$0f9cb702b616ea20$var$navClickHandler_ConnectFirst,$12ea74ff3a8a3e3a$export$836aee6bce45247("nav #faq").onclick=()=>{$0f9cb702b616ea20$var$showSection("#faq")},$12ea74ff3a8a3e3a$export$836aee6bce45247("#sign-out").onclick=async function(e){e.preventDefault(),$0f9cb702b616ea20$export$4b6dd4ac026934d2.disconnect(),$0f9cb702b616ea20$export$4b6dd4ac026934d2=$31107577f4adfbcd$export$bb2eafcb55f553b2,$0f9cb702b616ea20$var$signedOutFlow()},$12ea74ff3a8a3e3a$export$836aee6bce45247("#live-filter").onclick=$0f9cb702b616ea20$var$filterPools("active-pool"),$12ea74ff3a8a3e3a$export$836aee6bce45247("#ended-filter").onclick=$0f9cb702b616ea20$var$filterPools("inactive-pool"),$12ea74ff3a8a3e3a$export$836aee6bce45247("#your-farms-filter").onclick=$0f9cb702b616ea20$var$filterPools("your-farms");let $0f9cb702b616ea20$var$closePublicityButton=$12ea74ff3a8a3e3a$export$836aee6bce45247(".close-publicity");function $0f9cb702b616ea20$var$closePublicityButtonHandler(){return function(){$0f9cb702b616ea20$var$closePublicityButton.classList.add("hidden"),$12ea74ff3a8a3e3a$export$836aee6bce45247(".publicity-container").classList.add("hidden"),$12ea74ff3a8a3e3a$export$836aee6bce45247(".publicity-decoration").classList.add("no-publicity-position"),$12ea74ff3a8a3e3a$export$836aee6bce45247("header").classList.add("no-publicity-position"),$12ea74ff3a8a3e3a$export$836aee6bce45247("#burguer").classList.add("no-publicity-position")}}function $0f9cb702b616ea20$var$setCountdown(){var e=new Date("Aug 22, 2022 12:00:00 UTC"),t=(e=new Date(e.getTime()-6e4*e.getTimezoneOffset()),new Date),r=(t=new Date(t.getTime()-6e4*t.getTimezoneOffset()),e.getTime()-t.getTime());r<0&&(clearInterval($0f9cb702b616ea20$var$countDownIntervalId),document.getElementById("timer").innerHTML="");var n=Math.floor(r/864e5),a=Math.floor(r%864e5/36e5),o=Math.floor(r%36e5/6e4),i=Math.floor(r%6e4/1e3);document.getElementById("timer").innerHTML=`

New Pools Start In: ${n} d : ${a} h : \n ${o} m : ${i} s

`}async function $0f9cb702b616ea20$var$stakeResult(e){let t="Staked: ",r=[];const n=await $e35c076bc1fed0bf$export$f08cc331730b6f90($0f9cb702b616ea20$export$4b6dd4ac026934d2);let a;for(let t=0;t{let n;if(a instanceof $617ed70881cfef50$export$5fdb16077e6436d1)n=await a.stakeTokenContract.ft_metadata();else if(a instanceof $64d5e78a8367bd77$export$856d9c4c9c7b8da0){const e=await a.stakingContractData.getStakeTokenContractList();n=await e[t].contract.ft_metadata()}if(!n)throw new Error("Error obtaining metadata on stake result");const o=$6a82c7dd9e823656$export$db8ae05e40dfea01(e.amount,n.decimals,5);r.push(`${o} ${n.symbol}`)}))),t+=r.join(" - "),$12ea74ff3a8a3e3a$export$d841eba85c078f0b(t,"Stake")}async function $0f9cb702b616ea20$var$unstakeResult(e){let t="Unstaked: ";if("nft_contract_id"in e[0])t+=`deposited cheddar and ${e.length} NFTs have been refunded`;else if("token"in e[0]){let r=[];for(let t=0;t{e.classList.remove("selected")}));let a;r.target.classList.add("selected"),a="stake"==e?n.querySelectorAll(".nft-card.unstaked"):n.querySelectorAll(".nft-card.staked"),a.forEach((e=>{e.classList.add("selected")})),$0f9cb702b616ea20$var$displayCheddarNeededToStakeNFTs(t)}}async function $0f9cb702b616ea20$var$showStakeUnstakeNFTGrid(e,t){const r=$6a82c7dd9e823656$export$7b927db028bec867((await e.stakingContractData.getContractParams()).cheddar_rate);$12ea74ff3a8a3e3a$export$836aee6bce45247(".needed-to-stake-each-nft .amount").innerHTML=r.toString();$12ea74ff3a8a3e3a$export$836aee6bce45247(".multiple-nft-selection").classList.remove("hidden");$12ea74ff3a8a3e3a$export$836aee6bce45247("#confirm-stake-unstake").classList.remove("hidden");$12ea74ff3a8a3e3a$export$836aee6bce45247("#cancel-stake-unstake").classList.remove("hidden");$12ea74ff3a8a3e3a$export$836aee6bce45247(".unstake-all-nft-button").addEventListener("click",$0f9cb702b616ea20$var$selectAllActionNftButtons("unstake",r));$12ea74ff3a8a3e3a$export$836aee6bce45247(".stake-all-nft-button").addEventListener("click",$0f9cb702b616ea20$var$selectAllActionNftButtons("stake",r)),$0f9cb702b616ea20$var$displayCheddarNeededToStakeNFTs(r),await $0f9cb702b616ea20$var$loadAndShowNfts(e,t)}function $0f9cb702b616ea20$var$showNFTGrid(e,t){return async function(){$0f9cb702b616ea20$var$loadAndShowNfts(e,t)}}async function $0f9cb702b616ea20$var$loadNFTs(e,t){const r=$12ea74ff3a8a3e3a$export$836aee6bce45247(".nft-flex");r.innerHTML="";const n=e.wallet.getAccountId();let a,o=[],i=[],s=await e.stakingContractData.getUserStatus(),c=!1;if("boost-button"===t){a=e.nftContractForBoosting;const t=(await a.nft_tokens_for_owner(n)).map((e=>$72643f103f4db7f2$export$2e2bcd8739ae039((0,$idIiZ.default)({},e),{contract_id:a.contractId,base_url:a.baseUrl})));let r;console.log(1,t.length),i=i.concat(t),"boost_nfts"in s?(c=""!=s.boost_nfts,r=s.boost_nfts):(c=""!=s.cheddy_nft,r=s.cheddy_nft),c&&o.push($9f5944e742fddc25$export$df86ca1385cfe2b(r,a.baseUrl,a.contractId))}else{if(!("stake-unstake-nft"===t&&e instanceof $184235b9724bcd2f$export$c5b7d705df392988))throw new Error(`Object ${typeof e} is not implemented for loading NFT's`);{const t=await e.stakingContractData.getStakeNFTContractList();for(let e=0;e$72643f103f4db7f2$export$2e2bcd8739ae039((0,$idIiZ.default)({},e),{contract_id:r.contractId,base_url:s}))))}c=s.stake_tokens.some((e=>e.length>0));for(let e=0;e{o.push($72643f103f4db7f2$export$2e2bcd8739ae039((0,$idIiZ.default)({},e),{contract_id:r.contractId,base_url:r.baseUrl}))}))}}}if(0!=i.length||c)o.length>0&&o.forEach((n=>{$0f9cb702b616ea20$var$addNFT(e,r,n,c,"",t,"",!0)})),i.forEach((n=>{console.log(4,n),$0f9cb702b616ea20$var$addNFT(e,r,n,c,"",t,"",!1)}));else{let t="";if(e instanceof $64d5e78a8367bd77$export$856d9c4c9c7b8da0)t="cheddar";else{const r=await e.stakingContractData.getStakeNFTContractList();t=(await r[0].getMetadata()).name.toLowerCase()}r.innerHTML=`You don't have any ${t} NFT`}}function $0f9cb702b616ea20$var$checkIfMultipleSelectionButtonsMustBeSelected(){const e=document.querySelector("#nft-pools-section");let t=e.querySelectorAll(".unstaked").length,r=e.querySelectorAll(".staked").length,n=e.querySelectorAll(".unstaked.selected").length,a=e.querySelectorAll(".staked.selected").length,o=$12ea74ff3a8a3e3a$export$836aee6bce45247(".stake-all-nft-button");t==n&&0!=t?o.classList.add("selected"):o.classList.remove("selected");let i=$12ea74ff3a8a3e3a$export$836aee6bce45247(".unstake-all-nft-button");r==a&&0!=r?i.classList.add("selected"):i.classList.remove("selected")}function $0f9cb702b616ea20$var$stakeAndUstakeNFTButtonHandler(e,t){return function(){e.classList.toggle("selected"),$0f9cb702b616ea20$var$checkIfMultipleSelectionButtonsMustBeSelected(),$0f9cb702b616ea20$var$displayCheddarNeededToStakeNFTs(t)}}function $0f9cb702b616ea20$var$confirmStakeUnstakeNFTButtonHandler(e){return async function(t){if(t.preventDefault(),$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(".nft-flex .selected").length>0)try{const t=await e.stakingContractData.getContractParams();let r=document.querySelector(".cheddar-balance"),n=parseInt(r.innerHTML),a=document.querySelector(".cheddar-needed-to-stake-all-nfts");ne.nftsToStake.length>0));let s=(new Date).getTime()/1e3;if(!(s{const t=e.contract.contractId;r.set(t,{nftsToStake:[],nftsToUnstake:[]})})),$0f9cb702b616ea20$var$NFTPoolSection.querySelectorAll(".nft-card.selected").forEach((e=>{let t=e.querySelector(".nft-name").innerHTML,n=e.querySelector(".stake-nft-button"),a=e.getAttribute("contract_id"),o=r.get(a);o&&((null==n?void 0:n.classList.contains("hidden"))?o.nftsToUnstake.push(t):o.nftsToStake.push(t))})),r}function $0f9cb702b616ea20$var$displayNFTPoolSectionForStakeUnstakeNFT(e,t,r,n){const a=$0f9cb702b616ea20$var$NFTPoolSection.querySelector(".stake-nfts-title"),o=$0f9cb702b616ea20$var$NFTPoolSection.querySelector(".cheddar-balance-container");a.classList.remove("hidden"),o.classList.remove("hidden"),t.addEventListener("click",$0f9cb702b616ea20$var$stakeAndUstakeNFTButtonHandler(e,n)),r.addEventListener("click",$0f9cb702b616ea20$var$stakeAndUstakeNFTButtonHandler(e,n))}function $0f9cb702b616ea20$var$displayNFTPoolSectionForNFTBoost(e,t,r,n,a,o,i){const s=$0f9cb702b616ea20$var$NFTPoolSection.querySelector(".nft-farm-info");a>1&&s.classList.remove("hidden"),null==o||o.addEventListener("click",$0f9cb702b616ea20$var$stakeNFT(e,n)),r&&i.addEventListener("click",$0f9cb702b616ea20$var$unstakeNFT(e,n)),t?o.setAttribute("disabled","disabled"):o.removeAttribute("disabled")}async function $0f9cb702b616ea20$var$addNFT(e,t,r,n,a,o,i,s=!1){const c=$12ea74ff3a8a3e3a$export$836aee6bce45247(".generic-nft-card").cloneNode(!0);c.setAttribute("contract_id",r.contract_id);let l=0;const u=-1!=r.token_id.indexOf("@")?r.token_id.split("@")[1]:r.token_id;for(;l{e.querySelector(".stake-nft-button").setAttribute("disabled","disabled")})),t.querySelector(".stake-nft-button").classList.add("hidden");let a=t.querySelector(".unstake-nft-button");a.removeAttribute("disabled"),a.addEventListener("click",$0f9cb702b616ea20$var$unstakeNFT(e,t))}catch(e){$12ea74ff3a8a3e3a$export$dfd8f75b38935068(e)}}}function $0f9cb702b616ea20$var$unstakeNFT(e,t){return async function(r){try{r.preventDefault(),$12ea74ff3a8a3e3a$export$11aadaec4fc63f87("Unstaking NFT..."),e instanceof $64d5e78a8367bd77$export$856d9c4c9c7b8da0?await e.stakingContractData.contract.withdraw_nft(e.wallet.getAccountId()):e instanceof $184235b9724bcd2f$export$c5b7d705df392988&&await e.withdrawBoost(),$12ea74ff3a8a3e3a$export$d841eba85c078f0b("NFT unstaked successfully"),t.querySelector(".unstake-nft-button").classList.add("hidden"),$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(".stake-nft-button").forEach((e=>{e.removeAttribute("disabled"),e.classList.remove("hidden")}))}catch(e){$12ea74ff3a8a3e3a$export$dfd8f75b38935068(e)}}}function $0f9cb702b616ea20$var$hideNFTFlexComponents(){const e=$0f9cb702b616ea20$var$NFTPoolSection.querySelectorAll(".hiddenByDefault");for(let t=0;t{const{err:t,data:r,method:n,finalExecutionOutcome:s}=e;if(t)a=t;else if(n&&(o=n),s){let e=JSON.parse(atob(s.transaction.actions[0].FunctionCall.args));if(null==e.token){const t=s.transaction.receiver_id;for(let r=0;r<$0f9cb702b616ea20$export$fa494f8daebcc431.farms.length;r++){const n=$0f9cb702b616ea20$export$fa494f8daebcc431.farms[r];if(n.contractName==t){e.token=n.tokenContractName;break}}}i.push(e)}})),a?$12ea74ff3a8a3e3a$export$3879b24e8245693d(a,"Transaction - "+o):"ft_transfer_call"==o?await $0f9cb702b616ea20$var$stakeResult(i):"unstake"==o?await $0f9cb702b616ea20$var$unstakeResult(i):"nft_transfer_call"==o?$12ea74ff3a8a3e3a$export$d841eba85c078f0b("NFT staked successfully","Stake NFT"):"storage_deposit"==o?(r=!0,$12ea74ff3a8a3e3a$export$d841eba85c078f0b("Successfully activated","Activate")):"withdraw_crop"==o?(window.sessionStorage.setItem("cheddarFarmHarvestedSuccesfully","yes"),$12ea74ff3a8a3e3a$export$d841eba85c078f0b("Tokens harvested successfully")):(console.log("Method",o),console.log("Args",i.join("\n")))}else await $0f9cb702b616ea20$var$signedOutFlow();const o=await $e35c076bc1fed0bf$export$f08cc331730b6f90($0f9cb702b616ea20$export$4b6dd4ac026934d2);await $0f9cb702b616ea20$var$addPoolList(o),$0f9cb702b616ea20$var$setDefaultFilter(r)}catch(e){$12ea74ff3a8a3e3a$export$dfd8f75b38935068(e)}finally{$12ea74ff3a8a3e3a$export$836aee6bce45247(".loader").style.display="none"}};const $0f9cb702b616ea20$var$NFTPoolSection=$12ea74ff3a8a3e3a$export$836aee6bce45247("#nft-pools-section");$0f9cb702b616ea20$var$NFTPoolSection.addEventListener("click",$0f9cb702b616ea20$var$quitNFTFlex());const $0f9cb702b616ea20$var$burgerTogglers=$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2(".toggleBurguer");$0f9cb702b616ea20$var$burgerTogglers.forEach((e=>{e.addEventListener("click",(()=>{$0f9cb702b616ea20$var$toggleBurgerNav()}))}));const $0f9cb702b616ea20$var$toggleBurgerNav=()=>{const e=$12ea74ff3a8a3e3a$export$836aee6bce45247(".burger-button");$12ea74ff3a8a3e3a$export$836aee6bce45247(".burguer-content").classList.toggle("show-right__nav"),e.classList.toggle("burger-button--toggle")}})(); +//# sourceMappingURL=index.9b0516fd.js.map diff --git a/index.9b0516fd.js.map b/index.9b0516fd.js.map new file mode 100644 index 0000000..091a680 --- /dev/null +++ b/index.9b0516fd.js.map @@ -0,0 +1 @@ +{"mappings":"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","sources":["node_modules/near-api-js/lib/key_stores/browser-index.js","node_modules/near-api-js/lib/key_stores/keystore.js","node_modules/near-api-js/lib/key_stores/in_memory_key_store.js","node_modules/near-api-js/lib/utils/key_pair.js","node_modules/tweetnacl/nacl-fast.js","node_modules/near-api-js/lib/utils/serialize.js","node_modules/borsh/lib/index.js","node_modules/buffer/index.js","node_modules/base64-js/index.js","node_modules/ieee754/index.js","node_modules/bn.js/lib/bn.js","node_modules/bs58/index.js","node_modules/base-x/src/index.js","node_modules/safe-buffer/index.js","node_modules/text-encoding-utf-8/lib/encoding.lib.js","node_modules/near-api-js/lib/utils/enums.js","node_modules/near-api-js/lib/key_stores/browser_local_storage_key_store.js","node_modules/near-api-js/lib/key_stores/merge_key_store.js","node_modules/near-api-js/lib/common-index.js","node_modules/near-api-js/lib/providers/index.js","node_modules/near-api-js/lib/providers/provider.js","node_modules/near-api-js/lib/providers/json-rpc-provider.js","node_modules/depd/lib/browser/index.js","node_modules/near-api-js/lib/utils/web.js","node_modules/@swc/helpers/src/_object_spread.mjs","node_modules/@swc/helpers/src/_define_property.mjs","node_modules/http-errors/index.js","node_modules/http-errors/node_modules/depd/lib/browser/index.js","node_modules/setprototypeof/index.js","node_modules/statuses/index.js","node_modules/statuses/codes.json","node_modules/inherits/inherits_browser.js","node_modules/toidentifier/index.js","node_modules/near-api-js/lib/utils/exponential-backoff.js","node_modules/node-fetch/browser.js","node_modules/stream-http/index.js","node_modules/stream-http/lib/request.js","node_modules/process/browser.js","node_modules/stream-http/lib/capability.js","node_modules/stream-http/lib/response.js","node_modules/readable-stream/readable-browser.js","node_modules/readable-stream/lib/_stream_readable.js","node_modules/events/events.js","node_modules/readable-stream/lib/internal/streams/stream-browser.js","node_modules/readable-stream/lib/internal/streams/buffer_list.js","node_modules/readable-stream/lib/internal/streams/destroy.js","node_modules/readable-stream/lib/internal/streams/state.js","node_modules/readable-stream/errors-browser.js","node_modules/readable-stream/lib/_stream_duplex.js","node_modules/readable-stream/lib/_stream_writable.js","node_modules/util-deprecate/browser.js","node_modules/string_decoder/lib/string_decoder.js","node_modules/readable-stream/lib/internal/streams/async_iterator.js","node_modules/readable-stream/lib/internal/streams/end-of-stream.js","node_modules/readable-stream/lib/internal/streams/from-browser.js","node_modules/readable-stream/lib/_stream_transform.js","node_modules/readable-stream/lib/_stream_passthrough.js","node_modules/readable-stream/lib/internal/streams/pipeline.js","node_modules/xtend/immutable.js","node_modules/builtin-status-codes/browser.js","node_modules/url/url.js","node_modules/punycode/punycode.js","node_modules/url/util.js","node_modules/querystring-es3/index.js","node_modules/querystring-es3/decode.js","node_modules/querystring-es3/encode.js","node_modules/https-browserify/index.js","node_modules/near-api-js/lib/utils/errors.js","node_modules/near-api-js/lib/utils/rpc_errors.js","node_modules/mustache/mustache.js","node_modules/near-api-js/lib/generated/rpc_error_schema.json","node_modules/near-api-js/lib/res/error_messages.json","node_modules/near-api-js/lib/generated/rpc_error_types.js","node_modules/near-api-js/lib/utils/index.js","node_modules/near-api-js/lib/utils/network.js","node_modules/near-api-js/lib/utils/format.js","node_modules/near-api-js/lib/transaction.js","node_modules/js-sha256/src/sha256.js","node_modules/near-api-js/lib/validators.js","node_modules/near-api-js/lib/account.js","node_modules/near-api-js/lib/account_multisig.js","node_modules/near-api-js/lib/contract.js","node_modules/near-api-js/lib/account_creator.js","node_modules/near-api-js/lib/connection.js","node_modules/near-api-js/lib/signer.js","node_modules/near-api-js/lib/near.js","node_modules/near-api-js/lib/wallet-account.js","node_modules/near-api-js/lib/browser-connect.js","node_modules/error-polyfill/lib/index.js","node_modules/capability/es5.js","node_modules/capability/index.js","node_modules/capability/lib/definitions.js","node_modules/capability/lib/index.js","node_modules/capability/lib/CapabilityDetector.js","node_modules/error-polyfill/lib/v8.js","node_modules/error-polyfill/lib/prepareStackTrace.js","node_modules/error-polyfill/lib/non-v8/index.js","node_modules/error-polyfill/lib/non-v8/FrameStringSource.js","node_modules/o3/index.js","node_modules/o3/lib/index.js","node_modules/o3/lib/Class.js","node_modules/o3/lib/abstractMethod.js","node_modules/u3/index.js","node_modules/u3/lib/index.js","node_modules/u3/lib/cache.js","node_modules/u3/lib/eachCombination.js","node_modules/error-polyfill/lib/non-v8/FrameStringParser.js","node_modules/error-polyfill/lib/non-v8/Frame.js","node_modules/error-polyfill/lib/unsupported.js","src/index.ts","node_modules/@swc/helpers/src/_object_spread_props.mjs","node_modules/near-api-js/lib/browser-index.js","node_modules/error-polyfill/index.js","src/config.ts","src/wallet-api/disconnected-wallet.ts","src/wallet-api/util.ts","src/wallet-api/near-web-wallet/near-web-wallet.ts","src/wallet-api/narwallets/narwallets.ts","src/wallet-api/batch-transaction.ts","src/util/conversions.ts","src/util/document.ts","src/wallet-api/near-web-wallet/checkRedirectSearchParams.ts","src/wallet-api/base-smart-contract.ts","src/contracts/NEP141.ts","src/entities/poolParams.ts","src/entities/PoolEntities.ts","src/contracts/nearHardcodedObjects.ts","src/contracts/p2-staking.ts","src/contracts/p3-staking.ts","src/contracts/p3-structures.ts","src/entities/poolParamsNFT.ts","src/contracts/multipleCall.ts","src/contracts/NFTContract.ts","src/entities/PoolEntitiesNFT.ts","src/contracts/nft-staking.ts","src/entities/poolParamsP3.ts","src/entities/poolList.ts","src/util/oracle.ts","src/contracts/nft-structs.ts","src/util/animations/liquidityButton.ts","src/util/animations/new-confetti-button.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.BrowserLocalStorageKeyStore = exports.InMemoryKeyStore = exports.KeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nconst in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nconst browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\nconst merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\n/**\n * Key store interface for `InMemorySigner`.\n */\nclass KeyStore {\n}\nexports.KeyStore = KeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nconst key_pair_1 = require(\"../utils/key_pair\");\n/**\n * Simple in-memory keystore for testing purposes.\n */\nclass InMemoryKeyStore extends keystore_1.KeyStore {\n constructor() {\n super();\n this.keys = {};\n }\n /**\n * Sets an in-memory storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n this.keys[`${accountId}:${networkId}`] = keyPair.toString();\n }\n /**\n * Gets a key from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n async getKey(networkId, accountId) {\n const value = this.keys[`${accountId}:${networkId}`];\n if (!value) {\n return null;\n }\n return key_pair_1.KeyPair.fromString(value);\n }\n /**\n * Removes a key from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n delete this.keys[`${accountId}:${networkId}`];\n }\n /**\n * Sets all in-memory keys to empty objects\n */\n async clear() {\n this.keys = {};\n }\n /**\n * Get the network(s) from in-memory storage\n * @returns {Promise}\n */\n async getNetworks() {\n const result = new Set();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n result.add(parts[1]);\n });\n return Array.from(result.values());\n }\n /**\n * Gets the account(s) from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise}\n */\n async getAccounts(networkId) {\n const result = new Array();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n if (parts[parts.length - 1] === networkId) {\n result.push(parts.slice(0, parts.length - 1).join(':'));\n }\n });\n return result;\n }\n toString() {\n return 'InMemoryKeyStore';\n }\n}\nexports.InMemoryKeyStore = InMemoryKeyStore;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.KeyType = void 0;\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nconst serialize_1 = require(\"./serialize\");\nconst enums_1 = require(\"./enums\");\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends enums_1.Assignable {\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new PublicKey({ keyType: KeyType.ED25519, data: serialize_1.base_decode(parts[0]) });\n }\n else if (parts.length === 2) {\n return new PublicKey({ keyType: str_to_key_type(parts[0]), data: serialize_1.base_decode(parts[1]) });\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n toString() {\n return `${key_type_to_str(this.keyType)}:${serialize_1.base_encode(this.data)}`;\n }\n}\nexports.PublicKey = PublicKey;\nclass KeyPair {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n}\nexports.KeyPair = KeyPair;\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends KeyPair {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param {string} secretKey\n */\n constructor(secretKey) {\n super();\n const keyPair = tweetnacl_1.default.sign.keyPair.fromSecretKey(serialize_1.base_decode(secretKey));\n this.publicKey = new PublicKey({ keyType: KeyType.ED25519, data: keyPair.publicKey });\n this.secretKey = secretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const newKeyPair = tweetnacl_1.default.sign.keyPair();\n return new KeyPairEd25519(serialize_1.base_encode(newKeyPair.secretKey));\n }\n sign(message) {\n const signature = tweetnacl_1.default.sign.detached(message, serialize_1.base_decode(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n verify(message, signature) {\n return tweetnacl_1.default.sign.detached.verify(message, signature, this.publicKey.data);\n }\n toString() {\n return `ed25519:${this.secretKey}`;\n }\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar borsh_1 = require(\"borsh\");\nObject.defineProperty(exports, \"base_encode\", { enumerable: true, get: function () { return borsh_1.baseEncode; } });\nObject.defineProperty(exports, \"base_decode\", { enumerable: true, get: function () { return borsh_1.baseDecode; } });\nObject.defineProperty(exports, \"serialize\", { enumerable: true, get: function () { return borsh_1.serialize; } });\nObject.defineProperty(exports, \"deserialize\", { enumerable: true, get: function () { return borsh_1.deserialize; } });\nObject.defineProperty(exports, \"BorshError\", { enumerable: true, get: function () { return borsh_1.BorshError; } });\nObject.defineProperty(exports, \"BinaryWriter\", { enumerable: true, get: function () { return borsh_1.BinaryWriter; } });\nObject.defineProperty(exports, \"BinaryReader\", { enumerable: true, get: function () { return borsh_1.BinaryReader; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst TextDecoder = (typeof global.TextDecoder !== 'function') ? encoding.TextDecoder : global.TextDecoder;\nconst textDecoder = new TextDecoder('utf-8', { fatal: true });\nfunction baseEncode(value) {\n if (typeof (value) === 'string') {\n value = Buffer.from(value, 'utf8');\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + ': ' + this.fieldPath.join('.');\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 16)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([Buffer.from(this.buf.subarray(0, this.length)), buffer, Buffer.alloc(INITIAL_LENGTH)]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, 'utf8');\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if (['ERR_BUFFER_OUT_OF_BOUNDS', 'ERR_OUT_OF_RANGE'].indexOf(code) >= 0) {\n throw new BorshError('Reached the end of buffer when deserializing');\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, 'le');\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, 'le');\n }\n readBuffer(len) {\n if ((this.offset + len) > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === 'string') {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === 'number') {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else {\n writer.writeArray(value, (item) => { serializeField(schema, fieldName, item, fieldType[0], writer); });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case 'option': {\n if (value === null) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n default: throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === 'struct') {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === 'enum') {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj) {\n const writer = new BinaryWriter();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === 'string') {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === 'number') {\n return reader.readFixedArray(fieldType[0]);\n }\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === 'struct') {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === 'enum') {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer) {\n const reader = new BinaryReader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexports.TextEncoder = TextEncoder;\nexports.TextDecoder = TextDecoder;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = exports.Enum = void 0;\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nexports.Enum = Enum;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nconst key_pair_1 = require(\"../utils/key_pair\");\nconst LOCAL_STORAGE_KEY_PREFIX = 'near-api-js:keystore:';\nclass BrowserLocalStorageKeyStore extends keystore_1.KeyStore {\n constructor(localStorage = window.localStorage, prefix = LOCAL_STORAGE_KEY_PREFIX) {\n super();\n this.localStorage = localStorage;\n this.prefix = prefix;\n }\n /**\n * Sets a local storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n this.localStorage.setItem(this.storageKeyForSecretKey(networkId, accountId), keyPair.toString());\n }\n /**\n * Gets a key from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n async getKey(networkId, accountId) {\n const value = this.localStorage.getItem(this.storageKeyForSecretKey(networkId, accountId));\n if (!value) {\n return null;\n }\n return key_pair_1.KeyPair.fromString(value);\n }\n /**\n * Removes a key from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n this.localStorage.removeItem(this.storageKeyForSecretKey(networkId, accountId));\n }\n /**\n * Removes all items from local storage\n */\n async clear() {\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n this.localStorage.removeItem(key);\n }\n }\n }\n /**\n * Get the network(s) from local storage\n * @returns {Promise}\n */\n async getNetworks() {\n const result = new Set();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n result.add(parts[1]);\n }\n }\n return Array.from(result.values());\n }\n /**\n * Gets the account(s) from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise}\n */\n async getAccounts(networkId) {\n const result = new Array();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n if (parts[1] === networkId) {\n result.push(parts[0]);\n }\n }\n }\n return result;\n }\n /**\n * Helper function to retrieve a local storage key\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the storage keythat's sought\n * @returns {string} An example might be: `near-api-js:keystore:near-friend:default`\n */\n storageKeyForSecretKey(networkId, accountId) {\n return `${this.prefix}${accountId}:${networkId}`;\n }\n *storageKeys() {\n for (let i = 0; i < this.localStorage.length; i++) {\n yield this.localStorage.key(i);\n }\n }\n}\nexports.BrowserLocalStorageKeyStore = BrowserLocalStorageKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\n/**\n * Keystore which can be used to merge multiple key stores into one virtual key store.\n */\nclass MergeKeyStore extends keystore_1.KeyStore {\n /**\n * @param keyStores first keystore gets all write calls, read calls are attempted from start to end of array\n */\n constructor(keyStores) {\n super();\n this.keyStores = keyStores;\n }\n /**\n * Sets a storage item to the first index of a key store array\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n await this.keyStores[0].setKey(networkId, accountId, keyPair);\n }\n /**\n * Gets a key from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n async getKey(networkId, accountId) {\n for (const keyStore of this.keyStores) {\n const keyPair = await keyStore.getKey(networkId, accountId);\n if (keyPair) {\n return keyPair;\n }\n }\n return null;\n }\n /**\n * Removes a key from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n for (const keyStore of this.keyStores) {\n await keyStore.removeKey(networkId, accountId);\n }\n }\n /**\n * Removes all items from each key store\n */\n async clear() {\n for (const keyStore of this.keyStores) {\n await keyStore.clear();\n }\n }\n /**\n * Get the network(s) from the array of key stores\n * @returns {Promise}\n */\n async getNetworks() {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const network of await keyStore.getNetworks()) {\n result.add(network);\n }\n }\n return Array.from(result);\n }\n /**\n * Gets the account(s) from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise}\n */\n async getAccounts(networkId) {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const account of await keyStore.getAccounts(networkId)) {\n result.add(account);\n }\n }\n return Array.from(result);\n }\n toString() {\n return `MergeKeyStore(${this.keyStores.join(', ')})`;\n }\n}\nexports.MergeKeyStore = MergeKeyStore;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.WalletAccount = exports.ConnectedWalletAccount = exports.Near = exports.KeyPair = exports.Signer = exports.InMemorySigner = exports.Contract = exports.Connection = exports.Account = exports.multisig = exports.validators = exports.transactions = exports.utils = exports.providers = exports.accountCreator = void 0;\nconst providers = __importStar(require(\"./providers\"));\nexports.providers = providers;\nconst utils = __importStar(require(\"./utils\"));\nexports.utils = utils;\nconst transactions = __importStar(require(\"./transaction\"));\nexports.transactions = transactions;\nconst validators = __importStar(require(\"./validators\"));\nexports.validators = validators;\nconst account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nconst multisig = __importStar(require(\"./account_multisig\"));\nexports.multisig = multisig;\nconst accountCreator = __importStar(require(\"./account_creator\"));\nexports.accountCreator = accountCreator;\nconst connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nconst signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signer_1.InMemorySigner; } });\nconst contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nconst key_pair_1 = require(\"./utils/key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nconst near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\n// TODO: Deprecate and remove WalletAccount\nconst wallet_account_1 = require(\"./wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletAccount\", { enumerable: true, get: function () { return wallet_account_1.WalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.getTransactionLastResult = exports.FinalExecutionStatusBasic = exports.JsonRpcProvider = exports.Provider = void 0;\nconst provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return provider_1.getTransactionLastResult; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return provider_1.FinalExecutionStatusBasic; } });\nconst json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return json_rpc_provider_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return json_rpc_provider_1.ErrorContext; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = exports.Provider = exports.IdType = exports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\nclass Provider {\n}\nexports.Provider = Provider;\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = exports.ErrorContext = exports.TypedError = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst provider_1 = require(\"./provider\");\nconst web_1 = require(\"../utils/web\");\nconst errors_1 = require(\"../utils/errors\");\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return errors_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return errors_1.ErrorContext; } });\nconst borsh_1 = require(\"borsh\");\nconst exponential_backoff_1 = __importDefault(require(\"../utils/exponential-backoff\"));\nconst rpc_errors_1 = require(\"../utils/rpc_errors\");\n// Default number of retries before giving up on a request.\nconst REQUEST_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst REQUEST_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst REQUEST_RETRY_WAIT_BACKOFF = 1.5;\n/// Keep ids unique across all connections.\nlet _nextId = 123;\nclass JsonRpcProvider extends provider_1.Provider {\n constructor(url) {\n super();\n this.connection = { url };\n }\n /**\n * Get the current network (ex. test, beta, etc…)\n * @returns {Promise}\n */\n async getNetwork() {\n return {\n name: 'test',\n chainId: 'test'\n };\n }\n /**\n * Gets the RPC's status\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n * @returns {Promise}\n */\n async status() {\n return this.sendJsonRpc('status', []);\n }\n /**\n * Sends a signed transaction to the RPC\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n async sendTransaction(signedTransaction) {\n const bytes = signedTransaction.encode();\n return this.sendJsonRpc('broadcast_tx_commit', [Buffer.from(bytes).toString('base64')]);\n }\n /**\n * Gets a transaction's status from the RPC\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @returns {Promise}\n */\n async txStatus(txHash, accountId) {\n return this.sendJsonRpc('tx', [borsh_1.baseEncode(txHash), accountId]);\n }\n /**\n * Query the RPC as [shown in the docs](https://docs.near.org/docs/develop/front-end/rpc#accounts--contracts)\n */\n async query(...args) {\n let result;\n if (args.length === 1) {\n result = await this.sendJsonRpc('query', args[0]);\n }\n else {\n const [path, data] = args;\n result = await this.sendJsonRpc('query', [path, data]);\n }\n if (result && result.error) {\n throw new errors_1.TypedError(`Querying ${args} failed: ${result.error}.\\n${JSON.stringify(result, null, 2)}`, rpc_errors_1.getErrorTypeFromErrorMessage(result.error));\n }\n return result;\n }\n /**\n * Query for block info from the RPC\n * See [docs for more info](https://docs.near.org/docs/interaction/rpc#block)\n */\n async block(blockQuery) {\n const { finality } = blockQuery;\n let { blockId } = blockQuery;\n if (typeof blockQuery !== 'object') {\n const deprecate = depd_1.default('JsonRpcProvider.block(blockId)');\n deprecate('use `block({ blockId })` or `block({ finality })` instead');\n blockId = blockQuery;\n }\n return this.sendJsonRpc('block', { block_id: blockId, finality });\n }\n /**\n * Queries for details of a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * See [docs for more info](https://docs.near.org/docs/interaction/rpc#chunk)\n * @param chunkId Hash of a chunk ID or shard ID\n * @returns {Promise}\n */\n async chunk(chunkId) {\n return this.sendJsonRpc('chunk', [chunkId]);\n }\n /**\n * Query validators of the epoch defined by given block id.\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#detailed-validator-status)\n * @param blockId Block hash or height, or null for latest.\n */\n async validators(blockId) {\n return this.sendJsonRpc('validators', [blockId]);\n }\n /**\n * Gets EXPERIMENTAL_genesis_config from RPC\n * @returns {Promise}\n */\n async experimental_genesisConfig() {\n const deprecate = depd_1.default('JsonRpcProvider.experimental_protocolConfig({ sync_checkpoint: \\'genesis\\' })');\n deprecate('use `experimental_protocolConfig` to fetch the up-to-date or genesis protocol config explicitly');\n return await this.sendJsonRpc('EXPERIMENTAL_protocol_config', { sync_checkpoint: 'genesis' });\n }\n /**\n * Gets EXPERIMENTAL_protocol_config from RPC\n * @returns {Promise}\n */\n async experimental_protocolConfig(blockReference) {\n return await this.sendJsonRpc('EXPERIMENTAL_protocol_config', blockReference);\n }\n /**\n * Gets light_client_proof from RPC (https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n * @returns {Promise}\n * @deprecated Use `lightClientProof` instead\n */\n async experimental_lightClientProof(request) {\n const deprecate = depd_1.default('JsonRpcProvider.experimental_lightClientProof(request)');\n deprecate('use `lightClientProof` instead');\n return await this.lightClientProof(request);\n }\n /**\n * Gets light_client_proof from RPC (https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n * @returns {Promise}\n */\n async lightClientProof(request) {\n return await this.sendJsonRpc('EXPERIMENTAL_light_client_proof', request);\n }\n /**\n * Directly call the RPC specifying the method and params\n * @param method RPC method\n * @param params Parameters to the method\n */\n async sendJsonRpc(method, params) {\n const result = await exponential_backoff_1.default(REQUEST_RETRY_WAIT, REQUEST_RETRY_NUMBER, REQUEST_RETRY_WAIT_BACKOFF, async () => {\n try {\n const request = {\n method,\n params,\n id: (_nextId++),\n jsonrpc: '2.0'\n };\n const response = await web_1.fetchJson(this.connection, JSON.stringify(request));\n if (response.error) {\n if (typeof response.error.data === 'object') {\n if (typeof response.error.data.error_message === 'string' && typeof response.error.data.error_type === 'string') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n throw new errors_1.TypedError(response.error.data.error_message, response.error.data.error_type);\n }\n throw rpc_errors_1.parseRpcError(response.error.data);\n }\n else {\n const errorMessage = `[${response.error.code}] ${response.error.message}: ${response.error.data}`;\n // NOTE: All this hackery is happening because structured errors not implemented\n // TODO: Fix when https://github.com/nearprotocol/nearcore/issues/1839 gets resolved\n if (response.error.data === 'Timeout' || errorMessage.includes('Timeout error')\n || errorMessage.includes('query has timed out')) {\n throw new errors_1.TypedError(errorMessage, 'TimeoutError');\n }\n throw new errors_1.TypedError(errorMessage, rpc_errors_1.getErrorTypeFromErrorMessage(response.error.data));\n }\n }\n return response.result;\n }\n catch (error) {\n if (error.type === 'TimeoutError') {\n console.warn(`Retrying request to ${method} as it has timed out`, params);\n return null;\n }\n throw error;\n }\n });\n if (!result) {\n throw new errors_1.TypedError(`Exceeded ${REQUEST_RETRY_NUMBER} attempts for request to ${method}.`, 'RetriesExceeded');\n }\n return result;\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#gas-price)\n * @param blockId Block hash or height, or null for latest.\n */\n async gasPrice(blockId) {\n return await this.sendJsonRpc('gas_price', [blockId]);\n }\n}\nexports.JsonRpcProvider = JsonRpcProvider;\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nconst http_errors_1 = __importDefault(require(\"http-errors\"));\nconst exponential_backoff_1 = __importDefault(require(\"./exponential-backoff\"));\nconst providers_1 = require(\"../providers\");\nconst START_WAIT_TIME_MS = 1000;\nconst BACKOFF_MULTIPLIER = 1.5;\nconst RETRY_NUMBER = 10;\n// TODO: Move into separate module and exclude node-fetch kludge from browser build\nlet fetch;\nif (typeof window === 'undefined' || window.name === 'nodejs') {\n /* eslint-disable @typescript-eslint/no-var-requires */\n const nodeFetch = require('node-fetch');\n const http = require('http');\n const https = require('https');\n /* eslint-enable @typescript-eslint/no-var-requires */\n const httpAgent = new http.Agent({ keepAlive: true });\n const httpsAgent = new https.Agent({ keepAlive: true });\n function agent(_parsedURL) {\n if (_parsedURL.protocol === 'http:') {\n return httpAgent;\n }\n else {\n return httpsAgent;\n }\n }\n fetch = function (resource, init) {\n return nodeFetch(resource, { agent: agent(new URL(resource)), ...init });\n };\n}\nelse {\n fetch = window.fetch;\n}\nasync function fetchJson(connection, json) {\n let url = null;\n if (typeof (connection) === 'string') {\n url = connection;\n }\n else {\n url = connection.url;\n }\n const response = await exponential_backoff_1.default(START_WAIT_TIME_MS, RETRY_NUMBER, BACKOFF_MULTIPLIER, async () => {\n try {\n const response = await fetch(url, {\n method: json ? 'POST' : 'GET',\n body: json ? json : undefined,\n headers: { 'Content-Type': 'application/json; charset=utf-8' }\n });\n if (!response.ok) {\n if (response.status === 503) {\n console.warn(`Retrying HTTP request for ${url} as it's not available now`);\n return null;\n }\n throw http_errors_1.default(response.status, await response.text());\n }\n return response;\n }\n catch (error) {\n if (error.toString().includes('FetchError') || error.toString().includes('Failed to fetch')) {\n console.warn(`Retrying HTTP request for ${url} because of error: ${error}`);\n return null;\n }\n throw error;\n }\n });\n if (!response) {\n throw new providers_1.TypedError(`Exceeded ${RETRY_NUMBER} attempts for ${url}.`, 'RetriesExceeded');\n }\n return await response.json();\n}\nexports.fetchJson = fetchJson;\n","import defineProperty from './_define_property.mjs';\n\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","/*!\n * http-errors\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar deprecate = require('depd')('http-errors')\nvar setPrototypeOf = require('setprototypeof')\nvar statuses = require('statuses')\nvar inherits = require('inherits')\nvar toIdentifier = require('toidentifier')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = createError\nmodule.exports.HttpError = createHttpErrorConstructor()\nmodule.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError)\n\n// Populate exports for all constructors\npopulateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)\n\n/**\n * Get the code class of a status code.\n * @private\n */\n\nfunction codeClass (status) {\n return Number(String(status).charAt(0) + '00')\n}\n\n/**\n * Create a new HTTP Error.\n *\n * @returns {Error}\n * @public\n */\n\nfunction createError () {\n // so much arity going on ~_~\n var err\n var msg\n var status = 500\n var props = {}\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n if (arg instanceof Error) {\n err = arg\n status = err.status || err.statusCode || status\n continue\n }\n switch (typeof arg) {\n case 'string':\n msg = arg\n break\n case 'number':\n status = arg\n if (i !== 0) {\n deprecate('non-first-argument status code; replace with createError(' + arg + ', ...)')\n }\n break\n case 'object':\n props = arg\n break\n }\n }\n\n if (typeof status === 'number' && (status < 400 || status >= 600)) {\n deprecate('non-error status code; use only 4xx or 5xx status codes')\n }\n\n if (typeof status !== 'number' ||\n (!statuses[status] && (status < 400 || status >= 600))) {\n status = 500\n }\n\n // constructor\n var HttpError = createError[status] || createError[codeClass(status)]\n\n if (!err) {\n // create error\n err = HttpError\n ? new HttpError(msg)\n : new Error(msg || statuses[status])\n Error.captureStackTrace(err, createError)\n }\n\n if (!HttpError || !(err instanceof HttpError) || err.status !== status) {\n // add properties to generic error\n err.expose = status < 500\n err.status = err.statusCode = status\n }\n\n for (var key in props) {\n if (key !== 'status' && key !== 'statusCode') {\n err[key] = props[key]\n }\n }\n\n return err\n}\n\n/**\n * Create HTTP error abstract base class.\n * @private\n */\n\nfunction createHttpErrorConstructor () {\n function HttpError () {\n throw new TypeError('cannot construct abstract class')\n }\n\n inherits(HttpError, Error)\n\n return HttpError\n}\n\n/**\n * Create a constructor for a client error.\n * @private\n */\n\nfunction createClientErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ClientError (message) {\n // create the error object\n var msg = message != null ? message : statuses[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ClientError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ClientError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ClientError, HttpError)\n nameFunc(ClientError, className)\n\n ClientError.prototype.status = code\n ClientError.prototype.statusCode = code\n ClientError.prototype.expose = true\n\n return ClientError\n}\n\n/**\n * Create function to test is a value is a HttpError.\n * @private\n */\n\nfunction createIsHttpErrorFunction (HttpError) {\n return function isHttpError (val) {\n if (!val || typeof val !== 'object') {\n return false\n }\n\n if (val instanceof HttpError) {\n return true\n }\n\n return val instanceof Error &&\n typeof val.expose === 'boolean' &&\n typeof val.statusCode === 'number' && val.status === val.statusCode\n }\n}\n\n/**\n * Create a constructor for a server error.\n * @private\n */\n\nfunction createServerErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ServerError (message) {\n // create the error object\n var msg = message != null ? message : statuses[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ServerError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ServerError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ServerError, HttpError)\n nameFunc(ServerError, className)\n\n ServerError.prototype.status = code\n ServerError.prototype.statusCode = code\n ServerError.prototype.expose = false\n\n return ServerError\n}\n\n/**\n * Set the name of a function, if possible.\n * @private\n */\n\nfunction nameFunc (func, name) {\n var desc = Object.getOwnPropertyDescriptor(func, 'name')\n\n if (desc && desc.configurable) {\n desc.value = name\n Object.defineProperty(func, 'name', desc)\n }\n}\n\n/**\n * Populate the exports object with constructors for every error class.\n * @private\n */\n\nfunction populateConstructorExports (exports, codes, HttpError) {\n codes.forEach(function forEachCode (code) {\n var CodeError\n var name = toIdentifier(statuses[code])\n\n switch (codeClass(code)) {\n case 400:\n CodeError = createClientErrorConstructor(HttpError, name, code)\n break\n case 500:\n CodeError = createServerErrorConstructor(HttpError, name, code)\n break\n }\n\n if (CodeError) {\n // export the constructor\n exports[code] = CodeError\n exports[name] = CodeError\n }\n })\n\n // backwards-compatibility\n exports[\"I'mateapot\"] = deprecate.function(exports.ImATeapot,\n '\"I\\'mateapot\"; use \"ImATeapot\" instead')\n}\n\n/**\n * Get a class name from a name identifier.\n * @private\n */\n\nfunction toClassName (name) {\n return name.substr(-5) !== 'Error'\n ? name + 'Error'\n : name\n}\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","'use strict'\n/* eslint no-proto: 0 */\nmodule.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)\n\nfunction setProtoOf (obj, proto) {\n obj.__proto__ = proto\n return obj\n}\n\nfunction mixinProperties (obj, proto) {\n for (var prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n obj[prop] = proto[prop]\n }\n }\n return obj\n}\n","/*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar codes = require('./codes.json')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = status\n\n// status code to message map\nstatus.STATUS_CODES = codes\n\n// array of status codes\nstatus.codes = populateStatusesMap(status, codes)\n\n// status codes for redirects\nstatus.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n}\n\n// status codes for empty bodies\nstatus.empty = {\n 204: true,\n 205: true,\n 304: true\n}\n\n// status codes for when you should retry the request\nstatus.retry = {\n 502: true,\n 503: true,\n 504: true\n}\n\n/**\n * Populate the statuses map for given codes.\n * @private\n */\n\nfunction populateStatusesMap (statuses, codes) {\n var arr = []\n\n Object.keys(codes).forEach(function forEachCode (code) {\n var message = codes[code]\n var status = Number(code)\n\n // Populate properties\n statuses[status] = message\n statuses[message] = status\n statuses[message.toLowerCase()] = status\n\n // Add to array\n arr.push(status)\n })\n\n return arr\n}\n\n/**\n * Get the status code.\n *\n * Given a number, this will throw if it is not a known status\n * code, otherwise the code will be returned. Given a string,\n * the string will be parsed for a number and return the code\n * if valid, otherwise will lookup the code assuming this is\n * the status message.\n *\n * @param {string|number} code\n * @returns {number}\n * @public\n */\n\nfunction status (code) {\n if (typeof code === 'number') {\n if (!status[code]) throw new Error('invalid status code: ' + code)\n return code\n }\n\n if (typeof code !== 'string') {\n throw new TypeError('code must be a number or string')\n }\n\n // '403'\n var n = parseInt(code, 10)\n if (!isNaN(n)) {\n if (!status[n]) throw new Error('invalid status code: ' + n)\n return n\n }\n\n n = status[code.toLowerCase()]\n if (!n) throw new Error('invalid status message: \"' + code + '\"')\n return n\n}\n","{\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"103\": \"Early Hints\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"306\": \"(Unused)\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * toidentifier\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = toIdentifier\n\n/**\n * Trasform the given string into a JavaScript identifier\n *\n * @param {string} str\n * @returns {string}\n * @public\n */\n\nfunction toIdentifier (str) {\n return str\n .split(' ')\n .map(function (token) {\n return token.slice(0, 1).toUpperCase() + token.slice(1)\n })\n .join('')\n .replace(/[^ _0-9a-z]/gi, '')\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nasync function exponentialBackoff(startWaitTime, retryNumber, waitBackoff, getResult) {\n // TODO: jitter?\n let waitTime = startWaitTime;\n for (let i = 0; i < retryNumber; i++) {\n const result = await getResult();\n if (result) {\n return result;\n }\n await sleep(waitTime);\n waitTime *= waitBackoff;\n i++;\n }\n return null;\n}\nexports.default = exponentialBackoff;\n// Sleep given number of millis.\nfunction sleep(millis) {\n return new Promise(resolve => setTimeout(resolve, millis));\n}\n","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar global = getGlobal();\n\nmodule.exports = exports = global.fetch;\n\n// Needed for TypeScript and Webpack.\nif (global.fetch) {\n\texports.default = global.fetch.bind(global);\n}\n\nexports.Headers = global.Headers;\nexports.Request = global.Request;\nexports.Response = global.Response;","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n body = new Blob(self._body, {\n type: (headersObj['content-type'] || {}).value || ''\n });\n }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = void 0;\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"../generated/rpc_error_schema.json\"));\nconst error_messages_json_1 = __importDefault(require(\"../res/error_messages.json\"));\nconst CLASSMAP = __importStar(require(\"../generated/rpc_error_types\"));\nconst rpc_error_types_1 = require(\"../generated/rpc_error_types\");\n__exportStar(require(\"../generated/rpc_error_types\"), exports);\nclass ServerTransactionError extends rpc_error_types_1.ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new CLASSMAP[errorClassName](formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], errorData);\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return 'UntypedError';\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Mustache = factory());\n}(this, (function () { 'use strict';\n\n /*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\n var objectToString = Object.prototype.toString;\n var isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n };\n\n function isFunction (object) {\n return typeof object === 'function';\n }\n\n /**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\n function typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n }\n\n function escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n /**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\n function hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n }\n\n /**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\n function primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n }\n\n // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n // See https://github.com/janl/mustache.js/issues/189\n var regExpTest = RegExp.prototype.test;\n function testRegExp (re, string) {\n return regExpTest.call(re, string);\n }\n\n var nonSpaceRe = /\\S/;\n function isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n }\n\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n function escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n }\n\n var whiteRe = /\\s*/;\n var spaceRe = /\\s+/;\n var equalsRe = /\\s*=/;\n var curlyRe = /\\s*\\}/;\n var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n /**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\n function parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n }\n\n /**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\n function squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n }\n\n /**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\n function nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n }\n\n /**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\n function Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n }\n\n /**\n * Returns `true` if the tail is empty (end of string).\n */\n Scanner.prototype.eos = function eos () {\n return this.tail === '';\n };\n\n /**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\n Scanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n };\n\n /**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\n Scanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n };\n\n /**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\n function Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n }\n\n /**\n * Creates a new context using the given view with this context\n * as the parent.\n */\n Context.prototype.push = function push (view) {\n return new Context(view, this);\n };\n\n /**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\n Context.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n };\n\n /**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\n function Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n }\n\n /**\n * Clears all cached templates in this writer.\n */\n Writer.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n };\n\n /**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\n Writer.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n };\n\n /**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `config` argument is given here, then it should be an\n * object with a `tags` attribute or an `escape` attribute or both.\n * If an array is passed, then it will be interpreted the same way as\n * a `tags` attribute on a `config` object.\n *\n * The `tags` attribute of a `config` object must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n *\n * The `escape` attribute of a `config` object must be a function which\n * accepts a string as input and outputs a safely escaped string.\n * If an `escape` function is not provided, then an HTML-safe string\n * escaping function is used as the default.\n */\n Writer.prototype.render = function render (template, view, partials, config) {\n var tags = this.getConfigTags(config);\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, config);\n };\n\n /**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\n Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, config) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, config);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context, config);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n };\n\n Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate, config) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials, config);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);\n }\n return buffer;\n };\n\n Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate, config) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate, config);\n };\n\n Writer.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n };\n\n Writer.prototype.renderPartial = function renderPartial (token, context, partials, config) {\n if (!partials) return;\n var tags = this.getConfigTags(config);\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n var tokens = this.parse(indentedValue, tags);\n return this.renderTokens(tokens, context, partials, indentedValue, config);\n }\n };\n\n Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n };\n\n Writer.prototype.escapedValue = function escapedValue (token, context, config) {\n var escape = this.getConfigEscape(config) || mustache.escape;\n var value = context.lookup(token[1]);\n if (value != null)\n return (typeof value === 'number' && escape === mustache.escape) ? String(value) : escape(value);\n };\n\n Writer.prototype.rawValue = function rawValue (token) {\n return token[1];\n };\n\n Writer.prototype.getConfigTags = function getConfigTags (config) {\n if (isArray(config)) {\n return config;\n }\n else if (config && typeof config === 'object') {\n return config.tags;\n }\n else {\n return undefined;\n }\n };\n\n Writer.prototype.getConfigEscape = function getConfigEscape (config) {\n if (config && typeof config === 'object' && !isArray(config)) {\n return config.escape;\n }\n else {\n return undefined;\n }\n };\n\n var mustache = {\n name: 'mustache.js',\n version: '4.2.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n };\n\n // All high-level mustache.* functions use this writer.\n var defaultWriter = new Writer();\n\n /**\n * Clears all cached templates in the default writer.\n */\n mustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n };\n\n /**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\n mustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n };\n\n /**\n * Renders the `template` with the given `view`, `partials`, and `config`\n * using the default writer.\n */\n mustache.render = function render (template, view, partials, config) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, config);\n };\n\n // Export the escaping function so that the user may override it.\n // See https://github.com/janl/mustache.js/issues/244\n mustache.escape = escapeHtml;\n\n // Export these mainly for testing, but also for advanced usage.\n mustache.Scanner = Scanner;\n mustache.Context = Context;\n mustache.Writer = Writer;\n\n return mustache;\n\n})));\n","{\n \"schema\": {\n \"BadUTF16\": {\n \"name\": \"BadUTF16\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"BadUTF8\": {\n \"name\": \"BadUTF8\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"BalanceExceeded\": {\n \"name\": \"BalanceExceeded\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"BreakpointTrap\": {\n \"name\": \"BreakpointTrap\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CacheError\": {\n \"name\": \"CacheError\",\n \"subtypes\": [\n \"ReadError\",\n \"WriteError\",\n \"DeserializationError\",\n \"SerializationError\"\n ],\n \"props\": {}\n },\n \"CallIndirectOOB\": {\n \"name\": \"CallIndirectOOB\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CannotAppendActionToJointPromise\": {\n \"name\": \"CannotAppendActionToJointPromise\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CannotReturnJointPromise\": {\n \"name\": \"CannotReturnJointPromise\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CodeDoesNotExist\": {\n \"name\": \"CodeDoesNotExist\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"CompilationError\": {\n \"name\": \"CompilationError\",\n \"subtypes\": [\n \"CodeDoesNotExist\",\n \"PrepareError\",\n \"WasmerCompileError\"\n ],\n \"props\": {}\n },\n \"ContractSizeExceeded\": {\n \"name\": \"ContractSizeExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"size\": \"\"\n }\n },\n \"Deprecated\": {\n \"name\": \"Deprecated\",\n \"subtypes\": [],\n \"props\": {\n \"method_name\": \"\"\n }\n },\n \"Deserialization\": {\n \"name\": \"Deserialization\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"DeserializationError\": {\n \"name\": \"DeserializationError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"EmptyMethodName\": {\n \"name\": \"EmptyMethodName\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"FunctionCallError\": {\n \"name\": \"FunctionCallError\",\n \"subtypes\": [\n \"CompilationError\",\n \"LinkError\",\n \"MethodResolveError\",\n \"WasmTrap\",\n \"WasmUnknownError\",\n \"HostError\",\n \"EvmError\"\n ],\n \"props\": {}\n },\n \"GasExceeded\": {\n \"name\": \"GasExceeded\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"GasInstrumentation\": {\n \"name\": \"GasInstrumentation\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"GasLimitExceeded\": {\n \"name\": \"GasLimitExceeded\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"GenericTrap\": {\n \"name\": \"GenericTrap\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"GuestPanic\": {\n \"name\": \"GuestPanic\",\n \"subtypes\": [],\n \"props\": {\n \"panic_msg\": \"\"\n }\n },\n \"HostError\": {\n \"name\": \"HostError\",\n \"subtypes\": [\n \"BadUTF16\",\n \"BadUTF8\",\n \"GasExceeded\",\n \"GasLimitExceeded\",\n \"BalanceExceeded\",\n \"EmptyMethodName\",\n \"GuestPanic\",\n \"IntegerOverflow\",\n \"InvalidPromiseIndex\",\n \"CannotAppendActionToJointPromise\",\n \"CannotReturnJointPromise\",\n \"InvalidPromiseResultIndex\",\n \"InvalidRegisterId\",\n \"IteratorWasInvalidated\",\n \"MemoryAccessViolation\",\n \"InvalidReceiptIndex\",\n \"InvalidIteratorIndex\",\n \"InvalidAccountId\",\n \"InvalidMethodName\",\n \"InvalidPublicKey\",\n \"ProhibitedInView\",\n \"NumberOfLogsExceeded\",\n \"KeyLengthExceeded\",\n \"ValueLengthExceeded\",\n \"TotalLogLengthExceeded\",\n \"NumberPromisesExceeded\",\n \"NumberInputDataDependenciesExceeded\",\n \"ReturnedValueLengthExceeded\",\n \"ContractSizeExceeded\",\n \"Deprecated\"\n ],\n \"props\": {}\n },\n \"IllegalArithmetic\": {\n \"name\": \"IllegalArithmetic\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"IncorrectCallIndirectSignature\": {\n \"name\": \"IncorrectCallIndirectSignature\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"Instantiate\": {\n \"name\": \"Instantiate\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"IntegerOverflow\": {\n \"name\": \"IntegerOverflow\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InternalMemoryDeclared\": {\n \"name\": \"InternalMemoryDeclared\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidAccountId\": {\n \"name\": \"InvalidAccountId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidIteratorIndex\": {\n \"name\": \"InvalidIteratorIndex\",\n \"subtypes\": [],\n \"props\": {\n \"iterator_index\": \"\"\n }\n },\n \"InvalidMethodName\": {\n \"name\": \"InvalidMethodName\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidPromiseIndex\": {\n \"name\": \"InvalidPromiseIndex\",\n \"subtypes\": [],\n \"props\": {\n \"promise_idx\": \"\"\n }\n },\n \"InvalidPromiseResultIndex\": {\n \"name\": \"InvalidPromiseResultIndex\",\n \"subtypes\": [],\n \"props\": {\n \"result_idx\": \"\"\n }\n },\n \"InvalidPublicKey\": {\n \"name\": \"InvalidPublicKey\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidReceiptIndex\": {\n \"name\": \"InvalidReceiptIndex\",\n \"subtypes\": [],\n \"props\": {\n \"receipt_index\": \"\"\n }\n },\n \"InvalidRegisterId\": {\n \"name\": \"InvalidRegisterId\",\n \"subtypes\": [],\n \"props\": {\n \"register_id\": \"\"\n }\n },\n \"IteratorWasInvalidated\": {\n \"name\": \"IteratorWasInvalidated\",\n \"subtypes\": [],\n \"props\": {\n \"iterator_index\": \"\"\n }\n },\n \"KeyLengthExceeded\": {\n \"name\": \"KeyLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"LinkError\": {\n \"name\": \"LinkError\",\n \"subtypes\": [],\n \"props\": {\n \"msg\": \"\"\n }\n },\n \"Memory\": {\n \"name\": \"Memory\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MemoryAccessViolation\": {\n \"name\": \"MemoryAccessViolation\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MemoryOutOfBounds\": {\n \"name\": \"MemoryOutOfBounds\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MethodEmptyName\": {\n \"name\": \"MethodEmptyName\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MethodInvalidSignature\": {\n \"name\": \"MethodInvalidSignature\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MethodNotFound\": {\n \"name\": \"MethodNotFound\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MethodResolveError\": {\n \"name\": \"MethodResolveError\",\n \"subtypes\": [\n \"MethodEmptyName\",\n \"MethodUTF8Error\",\n \"MethodNotFound\",\n \"MethodInvalidSignature\"\n ],\n \"props\": {}\n },\n \"MethodUTF8Error\": {\n \"name\": \"MethodUTF8Error\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MisalignedAtomicAccess\": {\n \"name\": \"MisalignedAtomicAccess\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"NumberInputDataDependenciesExceeded\": {\n \"name\": \"NumberInputDataDependenciesExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"number_of_input_data_dependencies\": \"\"\n }\n },\n \"NumberOfLogsExceeded\": {\n \"name\": \"NumberOfLogsExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\"\n }\n },\n \"NumberPromisesExceeded\": {\n \"name\": \"NumberPromisesExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"number_of_promises\": \"\"\n }\n },\n \"PrepareError\": {\n \"name\": \"PrepareError\",\n \"subtypes\": [\n \"Serialization\",\n \"Deserialization\",\n \"InternalMemoryDeclared\",\n \"GasInstrumentation\",\n \"StackHeightInstrumentation\",\n \"Instantiate\",\n \"Memory\"\n ],\n \"props\": {}\n },\n \"ProhibitedInView\": {\n \"name\": \"ProhibitedInView\",\n \"subtypes\": [],\n \"props\": {\n \"method_name\": \"\"\n }\n },\n \"ReadError\": {\n \"name\": \"ReadError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"ReturnedValueLengthExceeded\": {\n \"name\": \"ReturnedValueLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"Serialization\": {\n \"name\": \"Serialization\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"SerializationError\": {\n \"name\": \"SerializationError\",\n \"subtypes\": [],\n \"props\": {\n \"hash\": \"\"\n }\n },\n \"StackHeightInstrumentation\": {\n \"name\": \"StackHeightInstrumentation\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"StackOverflow\": {\n \"name\": \"StackOverflow\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"TotalLogLengthExceeded\": {\n \"name\": \"TotalLogLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"Unreachable\": {\n \"name\": \"Unreachable\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"ValueLengthExceeded\": {\n \"name\": \"ValueLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"WasmTrap\": {\n \"name\": \"WasmTrap\",\n \"subtypes\": [\n \"Unreachable\",\n \"IncorrectCallIndirectSignature\",\n \"MemoryOutOfBounds\",\n \"CallIndirectOOB\",\n \"IllegalArithmetic\",\n \"MisalignedAtomicAccess\",\n \"BreakpointTrap\",\n \"StackOverflow\",\n \"GenericTrap\"\n ],\n \"props\": {}\n },\n \"WasmUnknownError\": {\n \"name\": \"WasmUnknownError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"WasmerCompileError\": {\n \"name\": \"WasmerCompileError\",\n \"subtypes\": [],\n \"props\": {\n \"msg\": \"\"\n }\n },\n \"WriteError\": {\n \"name\": \"WriteError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"AccessKeyNotFound\": {\n \"name\": \"AccessKeyNotFound\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"public_key\": \"\"\n }\n },\n \"AccountAlreadyExists\": {\n \"name\": \"AccountAlreadyExists\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"AccountDoesNotExist\": {\n \"name\": \"AccountDoesNotExist\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"ActionError\": {\n \"name\": \"ActionError\",\n \"subtypes\": [\n \"AccountAlreadyExists\",\n \"AccountDoesNotExist\",\n \"CreateAccountOnlyByRegistrar\",\n \"CreateAccountNotAllowed\",\n \"ActorNoPermission\",\n \"DeleteKeyDoesNotExist\",\n \"AddKeyAlreadyExists\",\n \"DeleteAccountStaking\",\n \"LackBalanceForState\",\n \"TriesToUnstake\",\n \"TriesToStake\",\n \"InsufficientStake\",\n \"FunctionCallError\",\n \"NewReceiptValidationError\",\n \"OnlyImplicitAccountCreationAllowed\"\n ],\n \"props\": {\n \"index\": \"\"\n }\n },\n \"ActionsValidationError\": {\n \"name\": \"ActionsValidationError\",\n \"subtypes\": [\n \"DeleteActionMustBeFinal\",\n \"TotalPrepaidGasExceeded\",\n \"TotalNumberOfActionsExceeded\",\n \"AddKeyMethodNamesNumberOfBytesExceeded\",\n \"AddKeyMethodNameLengthExceeded\",\n \"IntegerOverflow\",\n \"InvalidAccountId\",\n \"ContractSizeExceeded\",\n \"FunctionCallMethodNameLengthExceeded\",\n \"FunctionCallArgumentsLengthExceeded\",\n \"UnsuitableStakingKey\",\n \"FunctionCallZeroAttachedGas\"\n ],\n \"props\": {}\n },\n \"ActorNoPermission\": {\n \"name\": \"ActorNoPermission\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"actor_id\": \"\"\n }\n },\n \"AddKeyAlreadyExists\": {\n \"name\": \"AddKeyAlreadyExists\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"public_key\": \"\"\n }\n },\n \"AddKeyMethodNameLengthExceeded\": {\n \"name\": \"AddKeyMethodNameLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"AddKeyMethodNamesNumberOfBytesExceeded\": {\n \"name\": \"AddKeyMethodNamesNumberOfBytesExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"total_number_of_bytes\": \"\"\n }\n },\n \"BalanceMismatchError\": {\n \"name\": \"BalanceMismatchError\",\n \"subtypes\": [],\n \"props\": {\n \"final_accounts_balance\": \"\",\n \"final_postponed_receipts_balance\": \"\",\n \"incoming_receipts_balance\": \"\",\n \"incoming_validator_rewards\": \"\",\n \"initial_accounts_balance\": \"\",\n \"initial_postponed_receipts_balance\": \"\",\n \"new_delayed_receipts_balance\": \"\",\n \"other_burnt_amount\": \"\",\n \"outgoing_receipts_balance\": \"\",\n \"processed_delayed_receipts_balance\": \"\",\n \"slashed_burnt_amount\": \"\",\n \"tx_burnt_amount\": \"\"\n }\n },\n \"CostOverflow\": {\n \"name\": \"CostOverflow\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CreateAccountNotAllowed\": {\n \"name\": \"CreateAccountNotAllowed\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"predecessor_id\": \"\"\n }\n },\n \"CreateAccountOnlyByRegistrar\": {\n \"name\": \"CreateAccountOnlyByRegistrar\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"predecessor_id\": \"\",\n \"registrar_account_id\": \"\"\n }\n },\n \"DeleteAccountStaking\": {\n \"name\": \"DeleteAccountStaking\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"DeleteActionMustBeFinal\": {\n \"name\": \"DeleteActionMustBeFinal\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"DeleteKeyDoesNotExist\": {\n \"name\": \"DeleteKeyDoesNotExist\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"public_key\": \"\"\n }\n },\n \"DepositWithFunctionCall\": {\n \"name\": \"DepositWithFunctionCall\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"Expired\": {\n \"name\": \"Expired\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"FunctionCallArgumentsLengthExceeded\": {\n \"name\": \"FunctionCallArgumentsLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"FunctionCallMethodNameLengthExceeded\": {\n \"name\": \"FunctionCallMethodNameLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"FunctionCallZeroAttachedGas\": {\n \"name\": \"FunctionCallZeroAttachedGas\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InsufficientStake\": {\n \"name\": \"InsufficientStake\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"minimum_stake\": \"\",\n \"stake\": \"\"\n }\n },\n \"InvalidAccessKeyError\": {\n \"name\": \"InvalidAccessKeyError\",\n \"subtypes\": [\n \"AccessKeyNotFound\",\n \"ReceiverMismatch\",\n \"MethodNameMismatch\",\n \"RequiresFullAccess\",\n \"NotEnoughAllowance\",\n \"DepositWithFunctionCall\"\n ],\n \"props\": {}\n },\n \"InvalidChain\": {\n \"name\": \"InvalidChain\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidDataReceiverId\": {\n \"name\": \"InvalidDataReceiverId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidNonce\": {\n \"name\": \"InvalidNonce\",\n \"subtypes\": [],\n \"props\": {\n \"ak_nonce\": \"\",\n \"tx_nonce\": \"\"\n }\n },\n \"InvalidPredecessorId\": {\n \"name\": \"InvalidPredecessorId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidReceiverId\": {\n \"name\": \"InvalidReceiverId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidSignature\": {\n \"name\": \"InvalidSignature\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidSignerId\": {\n \"name\": \"InvalidSignerId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidTxError\": {\n \"name\": \"InvalidTxError\",\n \"subtypes\": [\n \"InvalidAccessKeyError\",\n \"InvalidSignerId\",\n \"SignerDoesNotExist\",\n \"InvalidNonce\",\n \"InvalidReceiverId\",\n \"InvalidSignature\",\n \"NotEnoughBalance\",\n \"LackBalanceForState\",\n \"CostOverflow\",\n \"InvalidChain\",\n \"Expired\",\n \"ActionsValidation\"\n ],\n \"props\": {}\n },\n \"LackBalanceForState\": {\n \"name\": \"LackBalanceForState\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"amount\": \"\"\n }\n },\n \"MethodNameMismatch\": {\n \"name\": \"MethodNameMismatch\",\n \"subtypes\": [],\n \"props\": {\n \"method_name\": \"\"\n }\n },\n \"NotEnoughAllowance\": {\n \"name\": \"NotEnoughAllowance\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"allowance\": \"\",\n \"cost\": \"\",\n \"public_key\": \"\"\n }\n },\n \"NotEnoughBalance\": {\n \"name\": \"NotEnoughBalance\",\n \"subtypes\": [],\n \"props\": {\n \"balance\": \"\",\n \"cost\": \"\",\n \"signer_id\": \"\"\n }\n },\n \"OnlyImplicitAccountCreationAllowed\": {\n \"name\": \"OnlyImplicitAccountCreationAllowed\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"ReceiptValidationError\": {\n \"name\": \"ReceiptValidationError\",\n \"subtypes\": [\n \"InvalidPredecessorId\",\n \"InvalidReceiverId\",\n \"InvalidSignerId\",\n \"InvalidDataReceiverId\",\n \"ReturnedValueLengthExceeded\",\n \"NumberInputDataDependenciesExceeded\",\n \"ActionsValidation\"\n ],\n \"props\": {}\n },\n \"ReceiverMismatch\": {\n \"name\": \"ReceiverMismatch\",\n \"subtypes\": [],\n \"props\": {\n \"ak_receiver\": \"\",\n \"tx_receiver\": \"\"\n }\n },\n \"RequiresFullAccess\": {\n \"name\": \"RequiresFullAccess\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"SignerDoesNotExist\": {\n \"name\": \"SignerDoesNotExist\",\n \"subtypes\": [],\n \"props\": {\n \"signer_id\": \"\"\n }\n },\n \"TotalNumberOfActionsExceeded\": {\n \"name\": \"TotalNumberOfActionsExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"total_number_of_actions\": \"\"\n }\n },\n \"TotalPrepaidGasExceeded\": {\n \"name\": \"TotalPrepaidGasExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"total_prepaid_gas\": \"\"\n }\n },\n \"TriesToStake\": {\n \"name\": \"TriesToStake\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"balance\": \"\",\n \"locked\": \"\",\n \"stake\": \"\"\n }\n },\n \"TriesToUnstake\": {\n \"name\": \"TriesToUnstake\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"TxExecutionError\": {\n \"name\": \"TxExecutionError\",\n \"subtypes\": [\n \"ActionError\",\n \"InvalidTxError\"\n ],\n \"props\": {}\n },\n \"UnsuitableStakingKey\": {\n \"name\": \"UnsuitableStakingKey\",\n \"subtypes\": [],\n \"props\": {\n \"public_key\": \"\"\n }\n },\n \"Closed\": {\n \"name\": \"Closed\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InternalError\": {\n \"name\": \"InternalError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"ServerError\": {\n \"name\": \"ServerError\",\n \"subtypes\": [\n \"TxExecutionError\",\n \"Timeout\",\n \"Closed\",\n \"InternalError\"\n ],\n \"props\": {}\n },\n \"Timeout\": {\n \"name\": \"Timeout\",\n \"subtypes\": [],\n \"props\": {}\n }\n }\n}\n","{\n \"GasLimitExceeded\": \"Exceeded the maximum amount of gas allowed to burn per contract\",\n \"MethodEmptyName\": \"Method name is empty\",\n \"WasmerCompileError\": \"Wasmer compilation error: {{msg}}\",\n \"GuestPanic\": \"Smart contract panicked: {{panic_msg}}\",\n \"Memory\": \"Error creating Wasm memory\",\n \"GasExceeded\": \"Exceeded the prepaid gas\",\n \"MethodUTF8Error\": \"Method name is not valid UTF8 string\",\n \"BadUTF16\": \"String encoding is bad UTF-16 sequence\",\n \"WasmTrap\": \"WebAssembly trap: {{msg}}\",\n \"GasInstrumentation\": \"Gas instrumentation failed or contract has denied instructions.\",\n \"InvalidPromiseIndex\": \"{{promise_idx}} does not correspond to existing promises\",\n \"InvalidPromiseResultIndex\": \"Accessed invalid promise result index: {{result_idx}}\",\n \"Deserialization\": \"Error happened while deserializing the module\",\n \"MethodNotFound\": \"Contract method is not found\",\n \"InvalidRegisterId\": \"Accessed invalid register id: {{register_id}}\",\n \"InvalidReceiptIndex\": \"VM Logic returned an invalid receipt index: {{receipt_index}}\",\n \"EmptyMethodName\": \"Method name is empty in contract call\",\n \"CannotReturnJointPromise\": \"Returning joint promise is currently prohibited\",\n \"StackHeightInstrumentation\": \"Stack instrumentation failed\",\n \"CodeDoesNotExist\": \"Cannot find contract code for account {{account_id}}\",\n \"MethodInvalidSignature\": \"Invalid method signature\",\n \"IntegerOverflow\": \"Integer overflow happened during contract execution\",\n \"MemoryAccessViolation\": \"MemoryAccessViolation\",\n \"InvalidIteratorIndex\": \"Iterator index {{iterator_index}} does not exist\",\n \"IteratorWasInvalidated\": \"Iterator {{iterator_index}} was invalidated after its creation by performing a mutable operation on trie\",\n \"InvalidAccountId\": \"VM Logic returned an invalid account id\",\n \"Serialization\": \"Error happened while serializing the module\",\n \"CannotAppendActionToJointPromise\": \"Actions can only be appended to non-joint promise.\",\n \"InternalMemoryDeclared\": \"Internal memory declaration has been found in the module\",\n \"Instantiate\": \"Error happened during instantiation\",\n \"ProhibitedInView\": \"{{method_name}} is not allowed in view calls\",\n \"InvalidMethodName\": \"VM Logic returned an invalid method name\",\n \"BadUTF8\": \"String encoding is bad UTF-8 sequence\",\n \"BalanceExceeded\": \"Exceeded the account balance\",\n \"LinkError\": \"Wasm contract link error: {{msg}}\",\n \"InvalidPublicKey\": \"VM Logic provided an invalid public key\",\n \"ActorNoPermission\": \"Actor {{actor_id}} doesn't have permission to account {{account_id}} to complete the action\",\n \"LackBalanceForState\": \"The account {{account_id}} wouldn't have enough balance to cover storage, required to have {{amount}} yoctoNEAR more\",\n \"ReceiverMismatch\": \"Wrong AccessKey used for transaction: transaction is sent to receiver_id={{tx_receiver}}, but is signed with function call access key that restricted to only use with receiver_id={{ak_receiver}}. Either change receiver_id in your transaction or switch to use a FullAccessKey.\",\n \"CostOverflow\": \"Transaction gas or balance cost is too high\",\n \"InvalidSignature\": \"Transaction is not signed with the given public key\",\n \"AccessKeyNotFound\": \"Signer \\\"{{account_id}}\\\" doesn't have access key with the given public_key {{public_key}}\",\n \"NotEnoughBalance\": \"Sender {{signer_id}} does not have enough balance {{balance}} for operation costing {{cost}}\",\n \"NotEnoughAllowance\": \"Access Key {account_id}:{public_key} does not have enough balance {{allowance}} for transaction costing {{cost}}\",\n \"Expired\": \"Transaction has expired\",\n \"DeleteAccountStaking\": \"Account {{account_id}} is staking and can not be deleted\",\n \"SignerDoesNotExist\": \"Signer {{signer_id}} does not exist\",\n \"TriesToStake\": \"Account {{account_id}} tries to stake {{stake}}, but has staked {{locked}} and only has {{balance}}\",\n \"AddKeyAlreadyExists\": \"The public key {{public_key}} is already used for an existing access key\",\n \"InvalidSigner\": \"Invalid signer account ID {{signer_id}} according to requirements\",\n \"CreateAccountNotAllowed\": \"The new account_id {{account_id}} can't be created by {{predecessor_id}}\",\n \"RequiresFullAccess\": \"The transaction contains more then one action, but it was signed with an access key which allows transaction to apply only one specific action. To apply more then one actions TX must be signed with a full access key\",\n \"TriesToUnstake\": \"Account {{account_id}} is not yet staked, but tries to unstake\",\n \"InvalidNonce\": \"Transaction nonce {{tx_nonce}} must be larger than nonce of the used access key {{ak_nonce}}\",\n \"AccountAlreadyExists\": \"Can't create a new account {{account_id}}, because it already exists\",\n \"InvalidChain\": \"Transaction parent block hash doesn't belong to the current chain\",\n \"AccountDoesNotExist\": \"Can't complete the action because account {{account_id}} doesn't exist\",\n \"MethodNameMismatch\": \"Transaction method name {{method_name}} isn't allowed by the access key\",\n \"DeleteAccountHasRent\": \"Account {{account_id}} can't be deleted. It has {{balance}}, which is enough to cover the rent\",\n \"DeleteAccountHasEnoughBalance\": \"Account {{account_id}} can't be deleted. It has {{balance}}, which is enough to cover it's storage\",\n \"InvalidReceiver\": \"Invalid receiver account ID {{receiver_id}} according to requirements\",\n \"DeleteKeyDoesNotExist\": \"Account {{account_id}} tries to remove an access key that doesn't exist\",\n \"Timeout\": \"Timeout exceeded\",\n \"Closed\": \"Connection closed\"\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Timeout = exports.InternalError = exports.Closed = exports.UnsuitableStakingKey = exports.TriesToUnstake = exports.TriesToStake = exports.TotalPrepaidGasExceeded = exports.TotalNumberOfActionsExceeded = exports.SignerDoesNotExist = exports.RequiresFullAccess = exports.ReceiverMismatch = exports.OnlyImplicitAccountCreationAllowed = exports.NotEnoughBalance = exports.NotEnoughAllowance = exports.MethodNameMismatch = exports.LackBalanceForState = exports.InvalidSignerId = exports.InvalidSignature = exports.InvalidReceiverId = exports.InvalidPredecessorId = exports.InvalidNonce = exports.InvalidDataReceiverId = exports.ReceiptValidationError = exports.InvalidChain = exports.InsufficientStake = exports.FunctionCallZeroAttachedGas = exports.FunctionCallMethodNameLengthExceeded = exports.FunctionCallArgumentsLengthExceeded = exports.Expired = exports.DepositWithFunctionCall = exports.DeleteKeyDoesNotExist = exports.DeleteActionMustBeFinal = exports.DeleteAccountStaking = exports.CreateAccountOnlyByRegistrar = exports.CreateAccountNotAllowed = exports.CostOverflow = exports.BalanceMismatchError = exports.AddKeyMethodNamesNumberOfBytesExceeded = exports.AddKeyMethodNameLengthExceeded = exports.AddKeyAlreadyExists = exports.ActorNoPermission = exports.ActionsValidationError = exports.AccountDoesNotExist = exports.AccountAlreadyExists = exports.AccessKeyNotFound = exports.InvalidAccessKeyError = exports.InvalidTxError = exports.WriteError = exports.WasmerCompileError = exports.WasmUnknownError = exports.ValueLengthExceeded = exports.Unreachable = exports.TotalLogLengthExceeded = exports.StackOverflow = exports.StackHeightInstrumentation = exports.SerializationError = exports.Serialization = exports.ReturnedValueLengthExceeded = exports.ReadError = exports.ProhibitedInView = exports.NumberPromisesExceeded = exports.NumberOfLogsExceeded = exports.NumberInputDataDependenciesExceeded = exports.MisalignedAtomicAccess = exports.MethodUTF8Error = exports.MethodNotFound = exports.MethodInvalidSignature = exports.MethodEmptyName = exports.MethodResolveError = exports.MemoryOutOfBounds = exports.MemoryAccessViolation = exports.Memory = exports.LinkError = exports.KeyLengthExceeded = exports.IteratorWasInvalidated = exports.InvalidRegisterId = exports.InvalidReceiptIndex = exports.InvalidPublicKey = exports.InvalidPromiseResultIndex = exports.InvalidPromiseIndex = exports.InvalidMethodName = exports.InvalidIteratorIndex = exports.InvalidAccountId = exports.InternalMemoryDeclared = exports.IntegerOverflow = exports.Instantiate = exports.IncorrectCallIndirectSignature = exports.IllegalArithmetic = exports.GuestPanic = exports.GenericTrap = exports.GasLimitExceeded = exports.GasInstrumentation = exports.GasExceeded = exports.EmptyMethodName = exports.DeserializationError = exports.Deserialization = exports.PrepareError = exports.Deprecated = exports.ContractSizeExceeded = exports.CodeDoesNotExist = exports.CompilationError = exports.CannotReturnJointPromise = exports.CannotAppendActionToJointPromise = exports.CallIndirectOOB = exports.CacheError = exports.BreakpointTrap = exports.WasmTrap = exports.BalanceExceeded = exports.BadUTF8 = exports.BadUTF16 = exports.HostError = exports.FunctionCallError = exports.ActionError = exports.TxExecutionError = exports.ServerError = void 0;\nconst errors_1 = require(\"../utils/errors\");\nclass ServerError extends errors_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass TxExecutionError extends ServerError {\n}\nexports.TxExecutionError = TxExecutionError;\nclass ActionError extends TxExecutionError {\n}\nexports.ActionError = ActionError;\nclass FunctionCallError extends ActionError {\n}\nexports.FunctionCallError = FunctionCallError;\nclass HostError extends FunctionCallError {\n}\nexports.HostError = HostError;\nclass BadUTF16 extends HostError {\n}\nexports.BadUTF16 = BadUTF16;\nclass BadUTF8 extends HostError {\n}\nexports.BadUTF8 = BadUTF8;\nclass BalanceExceeded extends HostError {\n}\nexports.BalanceExceeded = BalanceExceeded;\nclass WasmTrap extends FunctionCallError {\n}\nexports.WasmTrap = WasmTrap;\nclass BreakpointTrap extends WasmTrap {\n}\nexports.BreakpointTrap = BreakpointTrap;\nclass CacheError extends errors_1.TypedError {\n}\nexports.CacheError = CacheError;\nclass CallIndirectOOB extends WasmTrap {\n}\nexports.CallIndirectOOB = CallIndirectOOB;\nclass CannotAppendActionToJointPromise extends HostError {\n}\nexports.CannotAppendActionToJointPromise = CannotAppendActionToJointPromise;\nclass CannotReturnJointPromise extends HostError {\n}\nexports.CannotReturnJointPromise = CannotReturnJointPromise;\nclass CompilationError extends FunctionCallError {\n}\nexports.CompilationError = CompilationError;\nclass CodeDoesNotExist extends CompilationError {\n}\nexports.CodeDoesNotExist = CodeDoesNotExist;\nclass ContractSizeExceeded extends HostError {\n}\nexports.ContractSizeExceeded = ContractSizeExceeded;\nclass Deprecated extends HostError {\n}\nexports.Deprecated = Deprecated;\nclass PrepareError extends CompilationError {\n}\nexports.PrepareError = PrepareError;\nclass Deserialization extends PrepareError {\n}\nexports.Deserialization = Deserialization;\nclass DeserializationError extends CacheError {\n}\nexports.DeserializationError = DeserializationError;\nclass EmptyMethodName extends HostError {\n}\nexports.EmptyMethodName = EmptyMethodName;\nclass GasExceeded extends HostError {\n}\nexports.GasExceeded = GasExceeded;\nclass GasInstrumentation extends PrepareError {\n}\nexports.GasInstrumentation = GasInstrumentation;\nclass GasLimitExceeded extends HostError {\n}\nexports.GasLimitExceeded = GasLimitExceeded;\nclass GenericTrap extends WasmTrap {\n}\nexports.GenericTrap = GenericTrap;\nclass GuestPanic extends HostError {\n}\nexports.GuestPanic = GuestPanic;\nclass IllegalArithmetic extends WasmTrap {\n}\nexports.IllegalArithmetic = IllegalArithmetic;\nclass IncorrectCallIndirectSignature extends WasmTrap {\n}\nexports.IncorrectCallIndirectSignature = IncorrectCallIndirectSignature;\nclass Instantiate extends PrepareError {\n}\nexports.Instantiate = Instantiate;\nclass IntegerOverflow extends HostError {\n}\nexports.IntegerOverflow = IntegerOverflow;\nclass InternalMemoryDeclared extends PrepareError {\n}\nexports.InternalMemoryDeclared = InternalMemoryDeclared;\nclass InvalidAccountId extends HostError {\n}\nexports.InvalidAccountId = InvalidAccountId;\nclass InvalidIteratorIndex extends HostError {\n}\nexports.InvalidIteratorIndex = InvalidIteratorIndex;\nclass InvalidMethodName extends HostError {\n}\nexports.InvalidMethodName = InvalidMethodName;\nclass InvalidPromiseIndex extends HostError {\n}\nexports.InvalidPromiseIndex = InvalidPromiseIndex;\nclass InvalidPromiseResultIndex extends HostError {\n}\nexports.InvalidPromiseResultIndex = InvalidPromiseResultIndex;\nclass InvalidPublicKey extends HostError {\n}\nexports.InvalidPublicKey = InvalidPublicKey;\nclass InvalidReceiptIndex extends HostError {\n}\nexports.InvalidReceiptIndex = InvalidReceiptIndex;\nclass InvalidRegisterId extends HostError {\n}\nexports.InvalidRegisterId = InvalidRegisterId;\nclass IteratorWasInvalidated extends HostError {\n}\nexports.IteratorWasInvalidated = IteratorWasInvalidated;\nclass KeyLengthExceeded extends HostError {\n}\nexports.KeyLengthExceeded = KeyLengthExceeded;\nclass LinkError extends FunctionCallError {\n}\nexports.LinkError = LinkError;\nclass Memory extends PrepareError {\n}\nexports.Memory = Memory;\nclass MemoryAccessViolation extends HostError {\n}\nexports.MemoryAccessViolation = MemoryAccessViolation;\nclass MemoryOutOfBounds extends WasmTrap {\n}\nexports.MemoryOutOfBounds = MemoryOutOfBounds;\nclass MethodResolveError extends FunctionCallError {\n}\nexports.MethodResolveError = MethodResolveError;\nclass MethodEmptyName extends MethodResolveError {\n}\nexports.MethodEmptyName = MethodEmptyName;\nclass MethodInvalidSignature extends MethodResolveError {\n}\nexports.MethodInvalidSignature = MethodInvalidSignature;\nclass MethodNotFound extends MethodResolveError {\n}\nexports.MethodNotFound = MethodNotFound;\nclass MethodUTF8Error extends MethodResolveError {\n}\nexports.MethodUTF8Error = MethodUTF8Error;\nclass MisalignedAtomicAccess extends WasmTrap {\n}\nexports.MisalignedAtomicAccess = MisalignedAtomicAccess;\nclass NumberInputDataDependenciesExceeded extends HostError {\n}\nexports.NumberInputDataDependenciesExceeded = NumberInputDataDependenciesExceeded;\nclass NumberOfLogsExceeded extends HostError {\n}\nexports.NumberOfLogsExceeded = NumberOfLogsExceeded;\nclass NumberPromisesExceeded extends HostError {\n}\nexports.NumberPromisesExceeded = NumberPromisesExceeded;\nclass ProhibitedInView extends HostError {\n}\nexports.ProhibitedInView = ProhibitedInView;\nclass ReadError extends CacheError {\n}\nexports.ReadError = ReadError;\nclass ReturnedValueLengthExceeded extends HostError {\n}\nexports.ReturnedValueLengthExceeded = ReturnedValueLengthExceeded;\nclass Serialization extends PrepareError {\n}\nexports.Serialization = Serialization;\nclass SerializationError extends CacheError {\n}\nexports.SerializationError = SerializationError;\nclass StackHeightInstrumentation extends PrepareError {\n}\nexports.StackHeightInstrumentation = StackHeightInstrumentation;\nclass StackOverflow extends WasmTrap {\n}\nexports.StackOverflow = StackOverflow;\nclass TotalLogLengthExceeded extends HostError {\n}\nexports.TotalLogLengthExceeded = TotalLogLengthExceeded;\nclass Unreachable extends WasmTrap {\n}\nexports.Unreachable = Unreachable;\nclass ValueLengthExceeded extends HostError {\n}\nexports.ValueLengthExceeded = ValueLengthExceeded;\nclass WasmUnknownError extends FunctionCallError {\n}\nexports.WasmUnknownError = WasmUnknownError;\nclass WasmerCompileError extends CompilationError {\n}\nexports.WasmerCompileError = WasmerCompileError;\nclass WriteError extends CacheError {\n}\nexports.WriteError = WriteError;\nclass InvalidTxError extends TxExecutionError {\n}\nexports.InvalidTxError = InvalidTxError;\nclass InvalidAccessKeyError extends InvalidTxError {\n}\nexports.InvalidAccessKeyError = InvalidAccessKeyError;\nclass AccessKeyNotFound extends InvalidAccessKeyError {\n}\nexports.AccessKeyNotFound = AccessKeyNotFound;\nclass AccountAlreadyExists extends ActionError {\n}\nexports.AccountAlreadyExists = AccountAlreadyExists;\nclass AccountDoesNotExist extends ActionError {\n}\nexports.AccountDoesNotExist = AccountDoesNotExist;\nclass ActionsValidationError extends errors_1.TypedError {\n}\nexports.ActionsValidationError = ActionsValidationError;\nclass ActorNoPermission extends ActionError {\n}\nexports.ActorNoPermission = ActorNoPermission;\nclass AddKeyAlreadyExists extends ActionError {\n}\nexports.AddKeyAlreadyExists = AddKeyAlreadyExists;\nclass AddKeyMethodNameLengthExceeded extends ActionsValidationError {\n}\nexports.AddKeyMethodNameLengthExceeded = AddKeyMethodNameLengthExceeded;\nclass AddKeyMethodNamesNumberOfBytesExceeded extends ActionsValidationError {\n}\nexports.AddKeyMethodNamesNumberOfBytesExceeded = AddKeyMethodNamesNumberOfBytesExceeded;\nclass BalanceMismatchError extends errors_1.TypedError {\n}\nexports.BalanceMismatchError = BalanceMismatchError;\nclass CostOverflow extends InvalidTxError {\n}\nexports.CostOverflow = CostOverflow;\nclass CreateAccountNotAllowed extends ActionError {\n}\nexports.CreateAccountNotAllowed = CreateAccountNotAllowed;\nclass CreateAccountOnlyByRegistrar extends ActionError {\n}\nexports.CreateAccountOnlyByRegistrar = CreateAccountOnlyByRegistrar;\nclass DeleteAccountStaking extends ActionError {\n}\nexports.DeleteAccountStaking = DeleteAccountStaking;\nclass DeleteActionMustBeFinal extends ActionsValidationError {\n}\nexports.DeleteActionMustBeFinal = DeleteActionMustBeFinal;\nclass DeleteKeyDoesNotExist extends ActionError {\n}\nexports.DeleteKeyDoesNotExist = DeleteKeyDoesNotExist;\nclass DepositWithFunctionCall extends InvalidAccessKeyError {\n}\nexports.DepositWithFunctionCall = DepositWithFunctionCall;\nclass Expired extends InvalidTxError {\n}\nexports.Expired = Expired;\nclass FunctionCallArgumentsLengthExceeded extends ActionsValidationError {\n}\nexports.FunctionCallArgumentsLengthExceeded = FunctionCallArgumentsLengthExceeded;\nclass FunctionCallMethodNameLengthExceeded extends ActionsValidationError {\n}\nexports.FunctionCallMethodNameLengthExceeded = FunctionCallMethodNameLengthExceeded;\nclass FunctionCallZeroAttachedGas extends ActionsValidationError {\n}\nexports.FunctionCallZeroAttachedGas = FunctionCallZeroAttachedGas;\nclass InsufficientStake extends ActionError {\n}\nexports.InsufficientStake = InsufficientStake;\nclass InvalidChain extends InvalidTxError {\n}\nexports.InvalidChain = InvalidChain;\nclass ReceiptValidationError extends errors_1.TypedError {\n}\nexports.ReceiptValidationError = ReceiptValidationError;\nclass InvalidDataReceiverId extends ReceiptValidationError {\n}\nexports.InvalidDataReceiverId = InvalidDataReceiverId;\nclass InvalidNonce extends InvalidTxError {\n}\nexports.InvalidNonce = InvalidNonce;\nclass InvalidPredecessorId extends ReceiptValidationError {\n}\nexports.InvalidPredecessorId = InvalidPredecessorId;\nclass InvalidReceiverId extends InvalidTxError {\n}\nexports.InvalidReceiverId = InvalidReceiverId;\nclass InvalidSignature extends InvalidTxError {\n}\nexports.InvalidSignature = InvalidSignature;\nclass InvalidSignerId extends InvalidTxError {\n}\nexports.InvalidSignerId = InvalidSignerId;\nclass LackBalanceForState extends ActionError {\n}\nexports.LackBalanceForState = LackBalanceForState;\nclass MethodNameMismatch extends InvalidAccessKeyError {\n}\nexports.MethodNameMismatch = MethodNameMismatch;\nclass NotEnoughAllowance extends InvalidAccessKeyError {\n}\nexports.NotEnoughAllowance = NotEnoughAllowance;\nclass NotEnoughBalance extends InvalidTxError {\n}\nexports.NotEnoughBalance = NotEnoughBalance;\nclass OnlyImplicitAccountCreationAllowed extends ActionError {\n}\nexports.OnlyImplicitAccountCreationAllowed = OnlyImplicitAccountCreationAllowed;\nclass ReceiverMismatch extends InvalidAccessKeyError {\n}\nexports.ReceiverMismatch = ReceiverMismatch;\nclass RequiresFullAccess extends InvalidAccessKeyError {\n}\nexports.RequiresFullAccess = RequiresFullAccess;\nclass SignerDoesNotExist extends InvalidTxError {\n}\nexports.SignerDoesNotExist = SignerDoesNotExist;\nclass TotalNumberOfActionsExceeded extends ActionsValidationError {\n}\nexports.TotalNumberOfActionsExceeded = TotalNumberOfActionsExceeded;\nclass TotalPrepaidGasExceeded extends ActionsValidationError {\n}\nexports.TotalPrepaidGasExceeded = TotalPrepaidGasExceeded;\nclass TriesToStake extends ActionError {\n}\nexports.TriesToStake = TriesToStake;\nclass TriesToUnstake extends ActionError {\n}\nexports.TriesToUnstake = TriesToUnstake;\nclass UnsuitableStakingKey extends ActionsValidationError {\n}\nexports.UnsuitableStakingKey = UnsuitableStakingKey;\nclass Closed extends ServerError {\n}\nexports.Closed = Closed;\nclass InternalError extends ServerError {\n}\nexports.InternalError = InternalError;\nclass Timeout extends ServerError {\n}\nexports.Timeout = Timeout;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rpc_errors = exports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.format = exports.enums = exports.web = exports.serialize = exports.network = exports.key_pair = void 0;\nconst key_pair = __importStar(require(\"./key_pair\"));\nexports.key_pair = key_pair;\nconst network = __importStar(require(\"./network\"));\nexports.network = network;\nconst serialize = __importStar(require(\"./serialize\"));\nexports.serialize = serialize;\nconst web = __importStar(require(\"./web\"));\nexports.web = web;\nconst enums = __importStar(require(\"./enums\"));\nexports.enums = enums;\nconst format = __importStar(require(\"./format\"));\nexports.format = format;\nconst rpc_errors = __importStar(require(\"./rpc_errors\"));\nexports.rpc_errors = rpc_errors;\nconst key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return key_pair_1.PublicKey; } });\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_1.KeyPairEd25519; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = new bn_js_1.default('10', 10).pow(new bn_js_1.default(exports.NEAR_NOMINATION_EXP, 10));\n// Pre-calculate offests used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = new bn_js_1.default(10);\nfor (let i = 0, offset = new bn_js_1.default(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset.mul(BN10)) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n const balanceBN = new bn_js_1.default(balance, 10);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN.iadd(ROUNDING_OFFSETS[roundingExp]);\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || '0';\n const fractionStr = balance.substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, '0').substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split('.');\n const wholePart = split[0];\n const fracPart = split[1] || '';\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, '0'));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, '').trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, '');\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, '');\n if (value === '') {\n return '0';\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, '$1,$2');\n }\n return value;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signTransaction = exports.createTransaction = exports.SCHEMA = exports.Action = exports.SignedTransaction = exports.Transaction = exports.Signature = exports.deleteAccount = exports.deleteKey = exports.addKey = exports.stake = exports.transfer = exports.functionCall = exports.deployContract = exports.createAccount = exports.DeleteAccount = exports.DeleteKey = exports.AddKey = exports.Stake = exports.Transfer = exports.FunctionCall = exports.DeployContract = exports.CreateAccount = exports.IAction = exports.functionCallAccessKey = exports.fullAccessKey = exports.AccessKey = exports.AccessKeyPermission = exports.FullAccessPermission = exports.FunctionCallPermission = void 0;\nconst js_sha256_1 = __importDefault(require(\"js-sha256\"));\nconst enums_1 = require(\"./utils/enums\");\nconst borsh_1 = require(\"borsh\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nclass FunctionCallPermission extends enums_1.Assignable {\n}\nexports.FunctionCallPermission = FunctionCallPermission;\nclass FullAccessPermission extends enums_1.Assignable {\n}\nexports.FullAccessPermission = FullAccessPermission;\nclass AccessKeyPermission extends enums_1.Enum {\n}\nexports.AccessKeyPermission = AccessKeyPermission;\nclass AccessKey extends enums_1.Assignable {\n}\nexports.AccessKey = AccessKey;\nfunction fullAccessKey() {\n return new AccessKey({ nonce: 0, permission: new AccessKeyPermission({ fullAccess: new FullAccessPermission({}) }) });\n}\nexports.fullAccessKey = fullAccessKey;\nfunction functionCallAccessKey(receiverId, methodNames, allowance) {\n return new AccessKey({ nonce: 0, permission: new AccessKeyPermission({ functionCall: new FunctionCallPermission({ receiverId, allowance, methodNames }) }) });\n}\nexports.functionCallAccessKey = functionCallAccessKey;\nclass IAction extends enums_1.Assignable {\n}\nexports.IAction = IAction;\nclass CreateAccount extends IAction {\n}\nexports.CreateAccount = CreateAccount;\nclass DeployContract extends IAction {\n}\nexports.DeployContract = DeployContract;\nclass FunctionCall extends IAction {\n}\nexports.FunctionCall = FunctionCall;\nclass Transfer extends IAction {\n}\nexports.Transfer = Transfer;\nclass Stake extends IAction {\n}\nexports.Stake = Stake;\nclass AddKey extends IAction {\n}\nexports.AddKey = AddKey;\nclass DeleteKey extends IAction {\n}\nexports.DeleteKey = DeleteKey;\nclass DeleteAccount extends IAction {\n}\nexports.DeleteAccount = DeleteAccount;\nfunction createAccount() {\n return new Action({ createAccount: new CreateAccount({}) });\n}\nexports.createAccount = createAccount;\nfunction deployContract(code) {\n return new Action({ deployContract: new DeployContract({ code }) });\n}\nexports.deployContract = deployContract;\n/**\n * Constructs {@link Action} instance representing contract method call.\n *\n * @param methodName the name of the method to call\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n */\nfunction functionCall(methodName, args, gas, deposit) {\n const anyArgs = args;\n const isUint8Array = anyArgs.byteLength !== undefined && anyArgs.byteLength === anyArgs.length;\n const serializedArgs = isUint8Array ? args : Buffer.from(JSON.stringify(args));\n return new Action({ functionCall: new FunctionCall({ methodName, args: serializedArgs, gas, deposit }) });\n}\nexports.functionCall = functionCall;\nfunction transfer(deposit) {\n return new Action({ transfer: new Transfer({ deposit }) });\n}\nexports.transfer = transfer;\nfunction stake(stake, publicKey) {\n return new Action({ stake: new Stake({ stake, publicKey }) });\n}\nexports.stake = stake;\nfunction addKey(publicKey, accessKey) {\n return new Action({ addKey: new AddKey({ publicKey, accessKey }) });\n}\nexports.addKey = addKey;\nfunction deleteKey(publicKey) {\n return new Action({ deleteKey: new DeleteKey({ publicKey }) });\n}\nexports.deleteKey = deleteKey;\nfunction deleteAccount(beneficiaryId) {\n return new Action({ deleteAccount: new DeleteAccount({ beneficiaryId }) });\n}\nexports.deleteAccount = deleteAccount;\nclass Signature extends enums_1.Assignable {\n}\nexports.Signature = Signature;\nclass Transaction extends enums_1.Assignable {\n encode() {\n return borsh_1.serialize(exports.SCHEMA, this);\n }\n static decode(bytes) {\n return borsh_1.deserialize(exports.SCHEMA, Transaction, bytes);\n }\n}\nexports.Transaction = Transaction;\nclass SignedTransaction extends enums_1.Assignable {\n encode() {\n return borsh_1.serialize(exports.SCHEMA, this);\n }\n static decode(bytes) {\n return borsh_1.deserialize(exports.SCHEMA, SignedTransaction, bytes);\n }\n}\nexports.SignedTransaction = SignedTransaction;\n/**\n * Contains a list of the valid transaction Actions available with this API\n */\nclass Action extends enums_1.Enum {\n}\nexports.Action = Action;\nexports.SCHEMA = new Map([\n [Signature, { kind: 'struct', fields: [\n ['keyType', 'u8'],\n ['data', [64]]\n ] }],\n [SignedTransaction, { kind: 'struct', fields: [\n ['transaction', Transaction],\n ['signature', Signature]\n ] }],\n [Transaction, { kind: 'struct', fields: [\n ['signerId', 'string'],\n ['publicKey', key_pair_1.PublicKey],\n ['nonce', 'u64'],\n ['receiverId', 'string'],\n ['blockHash', [32]],\n ['actions', [Action]]\n ] }],\n [key_pair_1.PublicKey, { kind: 'struct', fields: [\n ['keyType', 'u8'],\n ['data', [32]]\n ] }],\n [AccessKey, { kind: 'struct', fields: [\n ['nonce', 'u64'],\n ['permission', AccessKeyPermission],\n ] }],\n [AccessKeyPermission, { kind: 'enum', field: 'enum', values: [\n ['functionCall', FunctionCallPermission],\n ['fullAccess', FullAccessPermission],\n ] }],\n [FunctionCallPermission, { kind: 'struct', fields: [\n ['allowance', { kind: 'option', type: 'u128' }],\n ['receiverId', 'string'],\n ['methodNames', ['string']],\n ] }],\n [FullAccessPermission, { kind: 'struct', fields: [] }],\n [Action, { kind: 'enum', field: 'enum', values: [\n ['createAccount', CreateAccount],\n ['deployContract', DeployContract],\n ['functionCall', FunctionCall],\n ['transfer', Transfer],\n ['stake', Stake],\n ['addKey', AddKey],\n ['deleteKey', DeleteKey],\n ['deleteAccount', DeleteAccount],\n ] }],\n [CreateAccount, { kind: 'struct', fields: [] }],\n [DeployContract, { kind: 'struct', fields: [\n ['code', ['u8']]\n ] }],\n [FunctionCall, { kind: 'struct', fields: [\n ['methodName', 'string'],\n ['args', ['u8']],\n ['gas', 'u64'],\n ['deposit', 'u128']\n ] }],\n [Transfer, { kind: 'struct', fields: [\n ['deposit', 'u128']\n ] }],\n [Stake, { kind: 'struct', fields: [\n ['stake', 'u128'],\n ['publicKey', key_pair_1.PublicKey]\n ] }],\n [AddKey, { kind: 'struct', fields: [\n ['publicKey', key_pair_1.PublicKey],\n ['accessKey', AccessKey]\n ] }],\n [DeleteKey, { kind: 'struct', fields: [\n ['publicKey', key_pair_1.PublicKey]\n ] }],\n [DeleteAccount, { kind: 'struct', fields: [\n ['beneficiaryId', 'string']\n ] }],\n]);\nfunction createTransaction(signerId, publicKey, receiverId, nonce, actions, blockHash) {\n return new Transaction({ signerId, publicKey, nonce, receiverId, actions, blockHash });\n}\nexports.createTransaction = createTransaction;\n/**\n * Signs a given transaction from an account with given keys, applied to the given network\n * @param transaction The Transaction object to sign\n * @param signer The {Signer} object that assists with signing keys\n * @param accountId The human-readable NEAR account name\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\nasync function signTransactionObject(transaction, signer, accountId, networkId) {\n const message = borsh_1.serialize(exports.SCHEMA, transaction);\n const hash = new Uint8Array(js_sha256_1.default.sha256.array(message));\n const signature = await signer.signMessage(message, accountId, networkId);\n const signedTx = new SignedTransaction({\n transaction,\n signature: new Signature({ keyType: transaction.publicKey.keyType, data: signature.signature })\n });\n return [hash, signedTx];\n}\nasync function signTransaction(...args) {\n if (args[0].constructor === Transaction) {\n const [transaction, signer, accountId, networkId] = args;\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n else {\n const [receiverId, nonce, actions, blockHash, signer, accountId, networkId] = args;\n const publicKey = await signer.getPublicKey(accountId, networkId);\n const transaction = createTransaction(accountId, publicKey, receiverId, nonce, actions, blockHash);\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n}\nexports.signTransaction = signTransaction;\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","'use strict';\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diffEpochValidators = exports.findSeatPrice = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @params validators: current or next epoch validators.\n * @params numSeats: number of seats.\n */\nfunction findSeatPrice(validators, numSeats) {\n const stakes = validators.map(v => new bn_js_1.default(v.stake, 10)).sort((a, b) => a.cmp(b));\n const num = new bn_js_1.default(numSeats);\n const stakesSum = stakes.reduce((a, b) => a.add(b));\n if (stakesSum.lt(num)) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = new bn_js_1.default(1), right = stakesSum.add(new bn_js_1.default(1));\n while (!left.eq(right.sub(new bn_js_1.default(1)))) {\n const mid = left.add(right).div(new bn_js_1.default(2));\n let found = false;\n let currentSum = new bn_js_1.default(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum.add(stakes[i].div(mid));\n if (currentSum.gte(num)) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\nexports.findSeatPrice = findSeatPrice;\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @params currentValidators: list of current validators.\n * @params nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","'use strict';\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst transaction_1 = require(\"./transaction\");\nconst providers_1 = require(\"./providers\");\nconst borsh_1 = require(\"borsh\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst errors_1 = require(\"./utils/errors\");\nconst rpc_errors_1 = require(\"./utils/rpc_errors\");\nconst exponential_backoff_1 = __importDefault(require(\"./utils/exponential-backoff\"));\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nconst DEFAULT_FUNC_CALL_GAS = new bn_js_1.default('30000000000000');\n// Default number of retries with different nonce before giving up on a transaction.\nconst TX_NONCE_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst TX_NONCE_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst TX_NONCE_RETRY_WAIT_BACKOFF = 1.5;\nfunction parseJsonFromRawResponse(response) {\n return JSON.parse(Buffer.from(response).toString());\n}\n/**\n * More information on [the Account spec](https://nomicon.io/DataStructures/Account.html)\n */\nclass Account {\n constructor(connection, accountId) {\n this.accessKeyByPublicKeyCache = {};\n this.connection = connection;\n this.accountId = accountId;\n }\n get ready() {\n const deprecate = depd_1.default('Account.ready()');\n deprecate('not needed anymore, always ready');\n return Promise.resolve();\n }\n async fetchState() {\n const deprecate = depd_1.default('Account.fetchState()');\n deprecate('use `Account.state()` instead');\n }\n /**\n * Returns the state of a NEAR account\n * @returns {Promise}\n */\n async state() {\n return await this.connection.provider.query(`account/${this.accountId}`, '');\n }\n printLogsAndFailures(contractId, results) {\n for (const result of results) {\n console.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n this.printLogs(contractId, result.logs, '\\t');\n if (result.failure) {\n console.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n }\n printLogs(contractId, logs, prefix = '') {\n for (const log of logs) {\n console.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n }\n async signTransaction(receiverId, actions) {\n const accessKeyInfo = await this.findAccessKey(receiverId, actions);\n if (!accessKeyInfo) {\n throw new providers_1.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair found in ${this.connection.signer}.`, 'KeyNotFound');\n }\n const { accessKey } = accessKeyInfo;\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const nonce = ++accessKey.nonce;\n return await transaction_1.signTransaction(receiverId, nonce, actions, borsh_1.baseDecode(blockHash), this.connection.signer, this.accountId, this.connection.networkId);\n }\n /**\n * @param receiverId NEAR account receiving the transaction\n * @param actions The transaction [Action as described in the spec](https://nomicon.io/RuntimeSpec/Actions.html).\n * @returns {Promise}\n */\n async signAndSendTransaction(receiverId, actions) {\n let txHash, signedTx;\n // TODO: TX_NONCE (different constants for different uses of exponentialBackoff?)\n const result = await exponential_backoff_1.default(TX_NONCE_RETRY_WAIT, TX_NONCE_RETRY_NUMBER, TX_NONCE_RETRY_WAIT_BACKOFF, async () => {\n [txHash, signedTx] = await this.signTransaction(receiverId, actions);\n const publicKey = signedTx.transaction.publicKey;\n try {\n return await this.connection.provider.sendTransaction(signedTx);\n }\n catch (error) {\n if (error.type === 'InvalidNonce') {\n console.warn(`Retrying transaction ${receiverId}:${borsh_1.baseEncode(txHash)} with new nonce.`);\n delete this.accessKeyByPublicKeyCache[publicKey.toString()];\n return null;\n }\n error.context = new providers_1.ErrorContext(borsh_1.baseEncode(txHash));\n throw error;\n }\n });\n if (!result) {\n // TODO: This should have different code actually, as means \"transaction not submitted for sure\"\n throw new providers_1.TypedError('nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.', 'RetriesExceeded');\n }\n const flatLogs = [result.transaction_outcome, ...result.receipts_outcome].reduce((acc, it) => {\n if (it.outcome.logs.length ||\n (typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object')) {\n return acc.concat({\n 'receiptIds': it.outcome.receipt_ids,\n 'logs': it.outcome.logs,\n 'failure': typeof it.outcome.status.Failure != 'undefined' ? rpc_errors_1.parseRpcError(it.outcome.status.Failure) : null\n });\n }\n else\n return acc;\n }, []);\n this.printLogsAndFailures(signedTx.transaction.receiverId, flatLogs);\n if (typeof result.status === 'object' && typeof result.status.Failure === 'object') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n if (result.status.Failure.error_message && result.status.Failure.error_type) {\n throw new providers_1.TypedError(`Transaction ${result.transaction_outcome.id} failed. ${result.status.Failure.error_message}`, result.status.Failure.error_type);\n }\n else {\n throw rpc_errors_1.parseResultError(result);\n }\n }\n // TODO: if Tx is Unknown or Started.\n return result;\n }\n async findAccessKey(receiverId, actions) {\n // TODO: Find matching access key based on transaction (i.e. receiverId and actions)\n const publicKey = await this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n if (!publicKey) {\n return null;\n }\n const cachedAccessKey = this.accessKeyByPublicKeyCache[publicKey.toString()];\n if (cachedAccessKey !== undefined) {\n return { publicKey, accessKey: cachedAccessKey };\n }\n try {\n const accessKey = await this.connection.provider.query(`access_key/${this.accountId}/${publicKey.toString()}`, '');\n this.accessKeyByPublicKeyCache[publicKey.toString()] = accessKey;\n return { publicKey, accessKey };\n }\n catch (e) {\n if (e.type == 'AccessKeyDoesNotExist') {\n return null;\n }\n throw e;\n }\n }\n /**\n * @param contractId NEAR account where the contract is deployed\n * @param publicKey The public key to add while signing and sending the transaction\n * @param data The compiled contract code\n * @returns {Promise}\n */\n async createAndDeployContract(contractId, publicKey, data, amount) {\n const accessKey = transaction_1.fullAccessKey();\n await this.signAndSendTransaction(contractId, [transaction_1.createAccount(), transaction_1.transfer(amount), transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey), transaction_1.deployContract(data)]);\n const contractAccount = new Account(this.connection, contractId);\n return contractAccount;\n }\n /**\n * @param receiverId NEAR account receiving Ⓝ\n * @param amount Amount to send in yoctoⓃ\n * @returns {Promise}\n */\n async sendMoney(receiverId, amount) {\n return this.signAndSendTransaction(receiverId, [transaction_1.transfer(amount)]);\n }\n /**\n * @param newAccountId NEAR account name to be created\n * @param publicKey A public key created from the masterAccount\n * @returns {Promise}\n */\n async createAccount(newAccountId, publicKey, amount) {\n const accessKey = transaction_1.fullAccessKey();\n return this.signAndSendTransaction(newAccountId, [transaction_1.createAccount(), transaction_1.transfer(amount), transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey)]);\n }\n /**\n * @param beneficiaryId The NEAR account that will receive the remaining Ⓝ balance from the account being deleted\n * @returns void\n */\n async deleteAccount(beneficiaryId) {\n return this.signAndSendTransaction(this.accountId, [transaction_1.deleteAccount(beneficiaryId)]);\n }\n /**\n * @param data The compiled contract code\n * @returns {Promise}\n */\n async deployContract(data) {\n return this.signAndSendTransaction(this.accountId, [transaction_1.deployContract(data)]);\n }\n /**\n * @param contractId NEAR account where the contract is deployed\n * @param methodName The method name on the contract as it is written in the contract code\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n * @returns {Promise}\n */\n async functionCall(contractId, methodName, args, gas, amount) {\n args = args || {};\n this.validateArgs(args);\n return this.signAndSendTransaction(contractId, [transaction_1.functionCall(methodName, args, gas || DEFAULT_FUNC_CALL_GAS, amount)]);\n }\n /**\n * @param publicKey A public key to be associated with the contract\n * @param contractId NEAR account where the contract is deployed\n * @param methodNames The method names on the contract that should be allowed to be called. Pass null for no method names and '' or [] for any method names.\n * @param amount Payment in yoctoⓃ that is sent to the contract during this function call\n * @returns {Promise}\n * TODO: expand this API to support more options.\n */\n async addKey(publicKey, contractId, methodNames, amount) {\n if (!methodNames) {\n methodNames = [];\n }\n if (!Array.isArray(methodNames)) {\n methodNames = [methodNames];\n }\n let accessKey;\n if (!contractId) {\n accessKey = transaction_1.fullAccessKey();\n }\n else {\n accessKey = transaction_1.functionCallAccessKey(contractId, methodNames, amount);\n }\n return this.signAndSendTransaction(this.accountId, [transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey)]);\n }\n /**\n * @param publicKey The public key to be deleted\n * @returns {Promise}\n */\n async deleteKey(publicKey) {\n return this.signAndSendTransaction(this.accountId, [transaction_1.deleteKey(key_pair_1.PublicKey.from(publicKey))]);\n }\n /**\n * @param publicKey The public key for the account that's staking\n * @param amount The account to stake in yoctoⓃ\n * @returns {Promise}\n */\n async stake(publicKey, amount) {\n return this.signAndSendTransaction(this.accountId, [transaction_1.stake(amount, key_pair_1.PublicKey.from(publicKey))]);\n }\n validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new errors_1.PositionalArgsError();\n }\n }\n /**\n * @param contractId NEAR account where the contract is deployed\n * @param methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param args Any arguments to the view contract method, wrapped in JSON\n * @returns {Promise}\n */\n async viewFunction(contractId, methodName, args, { parse = parseJsonFromRawResponse } = {}) {\n args = args || {};\n this.validateArgs(args);\n const result = await this.connection.provider.query(`call/${contractId}/${methodName}`, borsh_1.baseEncode(JSON.stringify(args)));\n if (result.logs) {\n this.printLogs(contractId, result.logs);\n }\n return result.result && result.result.length > 0 && parse(Buffer.from(result.result));\n }\n /**\n * See https://docs.near.org/docs/develop/front-end/rpc#view-contract-state\n *\n * Returns the state (key value pairs) of this account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n *\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\n async viewState(prefix, blockQuery) {\n const { blockId, finality } = blockQuery || {};\n const { values } = await this.connection.provider.query({\n request_type: 'view_state',\n block_id: blockId,\n finality: blockId ? undefined : finality || 'optimistic',\n account_id: this.accountId,\n prefix_base64: Buffer.from(prefix).toString('base64')\n });\n return values.map(({ key, value }) => ({\n key: Buffer.from(key, 'base64'),\n value: Buffer.from(value, 'base64')\n }));\n }\n /**\n * @returns array of {access_key: AccessKey, public_key: PublicKey} items.\n */\n async getAccessKeys() {\n const response = await this.connection.provider.query(`access_key/${this.accountId}`, '');\n // A breaking API change introduced extra information into the\n // response, so it now returns an object with a `keys` field instead\n // of an array: https://github.com/nearprotocol/nearcore/pull/1789\n if (Array.isArray(response)) {\n return response;\n }\n return response.keys;\n }\n /**\n * Returns account details in terms of authorized apps and transactions\n * @returns {Promise}\n */\n async getAccountDetails() {\n // TODO: update the response value to return all the different keys, not just app keys.\n // Also if we need this function, or getAccessKeys is good enough.\n const accessKeys = await this.getAccessKeys();\n const result = { authorizedApps: [], transactions: [] };\n accessKeys.map((item) => {\n if (item.access_key.permission.FunctionCall !== undefined) {\n const perm = item.access_key.permission.FunctionCall;\n result.authorizedApps.push({\n contractId: perm.receiver_id,\n amount: perm.allowance,\n publicKey: item.public_key,\n });\n }\n });\n return result;\n }\n /**\n * Returns calculated account balance\n * @returns {Promise}\n */\n async getAccountBalance() {\n const protocolConfig = await this.connection.provider.experimental_protocolConfig({ finality: 'final' });\n const state = await this.state();\n const costPerByte = new bn_js_1.default(protocolConfig.runtime_config.storage_amount_per_byte);\n const stateStaked = new bn_js_1.default(state.storage_usage).mul(costPerByte);\n const staked = new bn_js_1.default(state.locked);\n const totalBalance = new bn_js_1.default(state.amount).add(staked);\n const availableBalance = totalBalance.sub(bn_js_1.default.max(staked, stateStaked));\n return {\n total: totalBalance.toString(),\n stateStaked: stateStaked.toString(),\n staked: staked.toString(),\n available: availableBalance.toString()\n };\n }\n}\nexports.Account = Account;\n","'use strict';\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account2FA = exports.AccountMultisig = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_VIEW_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst account_1 = require(\"./account\");\nconst contract_1 = require(\"./contract\");\nconst format_1 = require(\"./utils/format\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst transaction_1 = require(\"./transaction\");\nconst web_1 = require(\"./utils/web\");\nexports.MULTISIG_STORAGE_KEY = '__multisigRequest';\nexports.MULTISIG_ALLOWANCE = new bn_js_1.default(format_1.parseNearAmount('1'));\nexports.MULTISIG_GAS = new bn_js_1.default('100000000000000');\nexports.MULTISIG_DEPOSIT = new bn_js_1.default('0');\nexports.MULTISIG_CHANGE_METHODS = ['add_request', 'add_request_and_confirm', 'delete_request', 'confirm'];\nexports.MULTISIG_VIEW_METHODS = ['get_request_nonce', 'list_request_ids'];\nexports.MULTISIG_CONFIRM_METHODS = ['confirm'];\n;\n// in memory request cache for node w/o localStorage\nlet storageFallback = {\n [exports.MULTISIG_STORAGE_KEY]: null\n};\nclass AccountMultisig extends account_1.Account {\n constructor(connection, accountId, options) {\n super(connection, accountId);\n this.storage = options.storage;\n this.onAddRequestResult = options.onAddRequestResult;\n this.contract = getContract(this);\n }\n async signAndSendTransactionWithAccount(receiverId, actions) {\n return super.signAndSendTransaction(receiverId, actions);\n }\n async signAndSendTransaction(receiverId, actions) {\n const { accountId } = this;\n if (this.isDeleteAction(actions)) {\n return await super.signAndSendTransaction(accountId, actions);\n }\n await this.deleteUnconfirmedRequests();\n const requestId = await this.getRequestNonce();\n this.setRequest({ accountId, requestId, actions });\n const args = Buffer.from(JSON.stringify({\n request: {\n receiver_id: receiverId,\n actions: convertActions(actions, accountId, receiverId)\n }\n }));\n const result = await super.signAndSendTransaction(accountId, [\n transaction_1.functionCall('add_request_and_confirm', args, exports.MULTISIG_GAS, exports.MULTISIG_DEPOSIT)\n ]);\n if (this.onAddRequestResult) {\n await this.onAddRequestResult(result);\n }\n return result;\n }\n async deleteUnconfirmedRequests() {\n const { contract } = this;\n const request_ids = await this.getRequestIds();\n for (const request_id of request_ids) {\n try {\n await contract.delete_request({ request_id });\n }\n catch (e) {\n console.warn(\"Attempt to delete an earlier request before 15 minutes failed. Will try again.\");\n }\n }\n }\n // helpers\n async getRequestNonce() {\n return this.contract.get_request_nonce();\n }\n async getRequestIds() {\n return this.contract.list_request_ids();\n }\n isDeleteAction(actions) {\n return actions && actions[0] && actions[0].functionCall && actions[0].functionCall.methodName === 'delete_request';\n }\n getRequest() {\n if (this.storage) {\n return JSON.parse(this.storage.getItem(exports.MULTISIG_STORAGE_KEY) || `{}`);\n }\n return storageFallback[exports.MULTISIG_STORAGE_KEY];\n }\n setRequest(data) {\n if (this.storage) {\n return this.storage.setItem(exports.MULTISIG_STORAGE_KEY, JSON.stringify(data));\n }\n storageFallback[exports.MULTISIG_STORAGE_KEY] = data;\n }\n}\nexports.AccountMultisig = AccountMultisig;\nclass Account2FA extends AccountMultisig {\n constructor(connection, accountId, options) {\n super(connection, accountId, options);\n this.helperUrl = 'https://helper.testnet.near.org';\n this.helperUrl = options.helperUrl || this.helperUrl;\n this.storage = options.storage;\n this.sendCode = options.sendCode || this.sendCodeDefault;\n this.getCode = options.getCode || this.getCodeDefault;\n this.verifyCode = options.verifyCode || this.verifyCodeDefault;\n this.onConfirmResult = options.onConfirmResult;\n this.contract = getContract(this);\n }\n async signAndSendTransaction(receiverId, actions) {\n await super.signAndSendTransaction(receiverId, actions);\n // TODO: Should following override onRequestResult in superclass instead of doing custom signAndSendTransaction?\n await this.sendCode();\n const result = await this.promptAndVerify();\n if (this.onConfirmResult) {\n await this.onConfirmResult(result);\n }\n return result;\n }\n // default helpers for CH deployments of multisig\n async deployMultisig(contractBytes) {\n const { accountId } = this;\n const seedOrLedgerKey = (await this.getRecoveryMethods()).data\n .filter(({ kind, publicKey }) => (kind === 'phrase' || kind === 'ledger') && publicKey !== null)\n .map((rm) => rm.publicKey);\n const fak2lak = (await this.getAccessKeys())\n .filter(({ public_key, access_key: { permission } }) => permission === 'FullAccess' && !seedOrLedgerKey.includes(public_key))\n .map((ak) => ak.public_key)\n .map(toPK);\n const confirmOnlyKey = toPK((await this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const newArgs = Buffer.from(JSON.stringify({ 'num_confirmations': 2 }));\n const actions = [\n ...fak2lak.map((pk) => transaction_1.deleteKey(pk)),\n ...fak2lak.map((pk) => transaction_1.addKey(pk, transaction_1.functionCallAccessKey(accountId, exports.MULTISIG_CHANGE_METHODS, null))),\n transaction_1.addKey(confirmOnlyKey, transaction_1.functionCallAccessKey(accountId, exports.MULTISIG_CONFIRM_METHODS, null)),\n transaction_1.deployContract(contractBytes),\n ];\n if ((await this.state()).code_hash === '11111111111111111111111111111111') {\n actions.push(transaction_1.functionCall('new', newArgs, exports.MULTISIG_GAS, exports.MULTISIG_DEPOSIT));\n }\n console.log('deploying multisig contract for', accountId);\n return await super.signAndSendTransactionWithAccount(accountId, actions);\n }\n async disable(contractBytes) {\n const { accountId } = this;\n const accessKeys = await this.getAccessKeys();\n const lak2fak = accessKeys.filter(({ access_key }) => access_key && access_key.permission && access_key.permission.FunctionCall &&\n access_key.permission.FunctionCall.receiver_id === accountId &&\n access_key.permission.FunctionCall.method_names &&\n access_key.permission.FunctionCall.method_names.length === 4 &&\n access_key.permission.FunctionCall.method_names.includes('add_request_and_confirm'));\n const confirmOnlyKey = key_pair_1.PublicKey.from((await this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const actions = [\n transaction_1.deleteKey(confirmOnlyKey),\n ...lak2fak.map(({ public_key }) => transaction_1.deleteKey(public_key)),\n ...lak2fak.map(({ public_key }) => transaction_1.addKey(public_key, null)),\n transaction_1.deployContract(contractBytes),\n ];\n console.log('disabling 2fa for', accountId);\n return await this.signAndSendTransaction(accountId, actions);\n }\n async sendCodeDefault() {\n const { accountId } = this;\n const { requestId, actions } = this.getRequest();\n if (this.isDeleteAction(actions)) {\n return;\n }\n const method = await this.get2faMethod();\n await this.postSignedJson('/2fa/send', {\n accountId,\n method,\n requestId,\n });\n return requestId;\n }\n async getCodeDefault(method) {\n throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is \"email\" or \"phone\".');\n }\n async promptAndVerify() {\n const method = await this.get2faMethod();\n const securityCode = await this.getCode(method);\n try {\n const result = await this.verifyCode(securityCode);\n // TODO: Parse error from result for real (like in normal account.signAndSendTransaction)\n return result;\n }\n catch (e) {\n console.warn('Error validating security code:', e);\n if (e.toString().includes('invalid 2fa code provided') || e.toString().includes('2fa code not valid')) {\n return await this.promptAndVerify();\n }\n throw e;\n }\n }\n async verifyCodeDefault(securityCode) {\n const { accountId } = this;\n const request = this.getRequest();\n if (!request) {\n throw new Error('no request pending');\n }\n const { requestId } = request;\n return await this.postSignedJson('/2fa/verify', {\n accountId,\n securityCode,\n requestId\n });\n }\n async getRecoveryMethods() {\n const { accountId } = this;\n return {\n accountId,\n data: await this.postSignedJson('/account/recoveryMethods', { accountId })\n };\n }\n async get2faMethod() {\n let { data } = await this.getRecoveryMethods();\n if (data && data.length) {\n data = data.find((m) => m.kind.indexOf('2fa-') === 0);\n }\n if (!data)\n return null;\n const { kind, detail } = data;\n return { kind, detail };\n }\n async signatureFor() {\n const { accountId } = this;\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockNumber = block.header.height.toString();\n const signed = await this.connection.signer.signMessage(Buffer.from(blockNumber), accountId, this.connection.networkId);\n const blockNumberSignature = Buffer.from(signed.signature).toString('base64');\n return { blockNumber, blockNumberSignature };\n }\n async postSignedJson(path, body) {\n return await web_1.fetchJson(this.helperUrl + path, JSON.stringify({\n ...body,\n ...(await this.signatureFor())\n }));\n }\n}\nexports.Account2FA = Account2FA;\n// helpers\nconst toPK = (pk) => key_pair_1.PublicKey.from(pk);\nconst convertPKForContract = (pk) => pk.toString().replace('ed25519:', '');\nconst getContract = (account) => {\n return new contract_1.Contract(account, account.accountId, {\n viewMethods: exports.MULTISIG_VIEW_METHODS,\n changeMethods: exports.MULTISIG_CHANGE_METHODS,\n });\n};\nconst convertActions = (actions, accountId, receiverId) => actions.map((a) => {\n const type = a.enum;\n const { gas, publicKey, methodName, args, deposit, accessKey, code } = a[type];\n const action = {\n type: type[0].toUpperCase() + type.substr(1),\n gas: (gas && gas.toString()) || undefined,\n public_key: (publicKey && convertPKForContract(publicKey)) || undefined,\n method_name: methodName,\n args: (args && Buffer.from(args).toString('base64')) || undefined,\n code: (code && Buffer.from(code).toString('base64')) || undefined,\n amount: (deposit && deposit.toString()) || undefined,\n deposit: (deposit && deposit.toString()) || '0',\n permission: undefined,\n };\n if (accessKey) {\n if (receiverId === accountId && accessKey.permission.enum !== 'fullAccess') {\n action.permission = {\n receiver_id: accountId,\n allowance: exports.MULTISIG_ALLOWANCE.toString(),\n method_names: exports.MULTISIG_CHANGE_METHODS,\n };\n }\n if (accessKey.permission.enum === 'functionCall') {\n const { receiverId: receiver_id, methodNames: method_names, allowance } = accessKey.permission.functionCall;\n action.permission = {\n receiver_id,\n allowance: (allowance && allowance.toString()) || undefined,\n method_names\n };\n }\n }\n return action;\n});\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst providers_1 = require(\"./providers\");\nconst errors_1 = require(\"./utils/errors\");\n// Makes `function.name` return given name\nfunction nameFunction(name, body) {\n return {\n [name](...args) {\n return body(...args);\n }\n }[name];\n}\nconst isUint8Array = (x) => x && x.byteLength !== undefined && x.byteLength === x.length;\nconst isObject = (x) => Object.prototype.toString.call(x) === '[object Object]';\n/**\n * Defines a smart contract on NEAR including the mutable and non-mutable methods\n */\nclass Contract {\n constructor(account, contractId, options) {\n this.account = account;\n this.contractId = contractId;\n const { viewMethods = [], changeMethods = [] } = options;\n viewMethods.forEach((methodName) => {\n Object.defineProperty(this, methodName, {\n writable: false,\n enumerable: true,\n value: nameFunction(methodName, async (args = {}, options = {}, ...ignored) => {\n if (ignored.length || !(isObject(args) || isUint8Array(args)) || !isObject(options)) {\n throw new errors_1.PositionalArgsError();\n }\n return this.account.viewFunction(this.contractId, methodName, args, options);\n })\n });\n });\n changeMethods.forEach((methodName) => {\n Object.defineProperty(this, methodName, {\n writable: false,\n enumerable: true,\n value: nameFunction(methodName, async (args = {}, gas, amount, ...ignored) => {\n if (ignored.length || !(isObject(args) || isUint8Array(args))) {\n throw new errors_1.PositionalArgsError();\n }\n validateBNLike({ gas, amount });\n const rawResult = await this.account.functionCall(this.contractId, methodName, args, gas, amount);\n return providers_1.getTransactionLastResult(rawResult);\n })\n });\n });\n }\n}\nexports.Contract = Contract;\n/**\n * Validation on arguments being a big number from bn.js\n * Throws if an argument is not in BN format or otherwise invalid\n * @param argMap\n */\nfunction validateBNLike(argMap) {\n const bnLike = 'number, decimal string or BN';\n for (const argName of Object.keys(argMap)) {\n const argValue = argMap[argName];\n if (argValue && !bn_js_1.default.isBN(argValue) && isNaN(argValue)) {\n throw new errors_1.ArgumentTypeError(argName, bnLike, argValue);\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nconst web_1 = require(\"./utils/web\");\n/**\n * Account creator provides an interface for implementations to actually create accounts\n */\nclass AccountCreator {\n}\nexports.AccountCreator = AccountCreator;\nclass LocalAccountCreator extends AccountCreator {\n constructor(masterAccount, initialBalance) {\n super();\n this.masterAccount = masterAccount;\n this.initialBalance = initialBalance;\n }\n /**\n * Creates an account using a masterAccount, meaning the new account is created from an existing account\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n async createAccount(newAccountId, publicKey) {\n await this.masterAccount.createAccount(newAccountId, publicKey, this.initialBalance);\n }\n}\nexports.LocalAccountCreator = LocalAccountCreator;\nclass UrlAccountCreator extends AccountCreator {\n constructor(connection, helperUrl) {\n super();\n this.connection = connection;\n this.helperUrl = helperUrl;\n }\n /**\n * Creates an account using a helperUrl\n * This is [hosted here](https://helper.nearprotocol.com) or set up locally with the [near-contract-helper](https://github.com/nearprotocol/near-contract-helper) repository\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n async createAccount(newAccountId, publicKey) {\n await web_1.fetchJson(`${this.helperUrl}/account`, JSON.stringify({ newAccountId, newAccountPublicKey: publicKey.toString() }));\n }\n}\nexports.UrlAccountCreator = UrlAccountCreator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nconst providers_1 = require(\"./providers\");\nconst signer_1 = require(\"./signer\");\n/**\n * @param config Contains connection info details\n * @returns {Provider}\n */\nfunction getProvider(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'JsonRpcProvider': return new providers_1.JsonRpcProvider(config.args.url);\n default: throw new Error(`Unknown provider type ${config.type}`);\n }\n}\n/**\n * @param config Contains connection info details\n * @returns {Signer}\n */\nfunction getSigner(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'InMemorySigner': {\n return new signer_1.InMemorySigner(config.keyStore);\n }\n default: throw new Error(`Unknown signer type ${config.type}`);\n }\n}\n/**\n * Connects an account to a given network via a given provider\n */\nclass Connection {\n constructor(networkId, provider, signer) {\n this.networkId = networkId;\n this.provider = provider;\n this.signer = signer;\n }\n /**\n * @param config Contains connection info details\n */\n static fromConfig(config) {\n const provider = getProvider(config.provider);\n const signer = getSigner(config.signer);\n return new Connection(config.networkId, provider, signer);\n }\n}\nexports.Connection = Connection;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemorySigner = exports.Signer = void 0;\nconst js_sha256_1 = __importDefault(require(\"js-sha256\"));\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst in_memory_key_store_1 = require(\"./key_stores/in_memory_key_store\");\n/**\n * General signing interface, can be used for in memory signing, RPC singing, external wallet, HSM, etc.\n */\nclass Signer {\n}\nexports.Signer = Signer;\n/**\n * Signs using in memory key store.\n */\nclass InMemorySigner extends Signer {\n constructor(keyStore) {\n super();\n this.keyStore = keyStore;\n }\n /**\n * Creates a single account Signer instance with account, network and keyPair provided.\n *\n * Intended to be useful for temporary keys (e.g. claiming a Linkdrop).\n *\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account to assign the key pair to\n * @param keyPair The keyPair to use for signing\n */\n static async fromKeyPair(networkId, accountId, keyPair) {\n const keyStore = new in_memory_key_store_1.InMemoryKeyStore();\n await keyStore.setKey(networkId, accountId, keyPair);\n return new InMemorySigner(keyStore);\n }\n /**\n * Creates a public key for the account given\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n async createKey(accountId, networkId) {\n const keyPair = key_pair_1.KeyPair.fromRandom('ed25519');\n await this.keyStore.setKey(networkId, accountId, keyPair);\n return keyPair.getPublicKey();\n }\n /**\n * Gets the existing public key for a given account\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise} Returns the public key or null if not found\n */\n async getPublicKey(accountId, networkId) {\n const keyPair = await this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n return null;\n }\n return keyPair.getPublicKey();\n }\n /**\n * @param message A message to be signed, typically a serialized transaction\n * @param accountId the NEAR account signing the message\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n async signMessage(message, accountId, networkId) {\n const hash = new Uint8Array(js_sha256_1.default.sha256.array(message));\n if (!accountId) {\n throw new Error('InMemorySigner requires provided account id');\n }\n const keyPair = await this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n throw new Error(`Key for ${accountId} not found in ${networkId}`);\n }\n return keyPair.sign(hash);\n }\n toString() {\n return `InMemorySigner(${this.keyStore})`;\n }\n}\nexports.InMemorySigner = InMemorySigner;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst account_1 = require(\"./account\");\nconst connection_1 = require(\"./connection\");\nconst contract_1 = require(\"./contract\");\nconst account_creator_1 = require(\"./account_creator\");\nclass Near {\n constructor(config) {\n this.config = config;\n this.connection = connection_1.Connection.fromConfig({\n networkId: config.networkId,\n provider: { type: 'JsonRpcProvider', args: { url: config.nodeUrl } },\n signer: config.signer || { type: 'InMemorySigner', keyStore: config.keyStore || config.deps.keyStore }\n });\n if (config.masterAccount) {\n // TODO: figure out better way of specifiying initial balance.\n // Hardcoded number below must be enough to pay the gas cost to dev-deploy with near-shell for multiple times\n const initialBalance = config.initialBalance ? new bn_js_1.default(config.initialBalance) : new bn_js_1.default('500000000000000000000000000');\n this.accountCreator = new account_creator_1.LocalAccountCreator(new account_1.Account(this.connection, config.masterAccount), initialBalance);\n }\n else if (config.helperUrl) {\n this.accountCreator = new account_creator_1.UrlAccountCreator(this.connection, config.helperUrl);\n }\n else {\n this.accountCreator = null;\n }\n }\n /**\n *\n * @param accountId near accountId used to interact with the network.\n */\n async account(accountId) {\n const account = new account_1.Account(this.connection, accountId);\n return account;\n }\n /**\n *\n * @param accountId\n * @param publicKey\n */\n async createAccount(accountId, publicKey) {\n if (!this.accountCreator) {\n throw new Error('Must specify account creator, either via masterAccount or helperUrl configuration settings.');\n }\n await this.accountCreator.createAccount(accountId, publicKey);\n return new account_1.Account(this.connection, accountId);\n }\n /**\n * @deprecated Use `new nearApi.Contract(yourAccount, contractId, { viewMethods, changeMethods })` instead.\n * @param contractId\n * @param options\n */\n async loadContract(contractId, options) {\n const account = new account_1.Account(this.connection, options.sender);\n return new contract_1.Contract(account, contractId, options);\n }\n /**\n * @deprecated Use `yourAccount.sendMoney` instead.\n * @param amount\n * @param originator\n * @param receiver\n */\n async sendTokens(amount, originator, receiver) {\n console.warn('near.sendTokens is deprecated. Use `yourAccount.sendMoney` instead.');\n const account = new account_1.Account(this.connection, originator);\n const result = await account.sendMoney(receiver, amount);\n return result.transaction_outcome.id;\n }\n}\nexports.Near = Near;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectedWalletAccount = exports.WalletAccount = exports.WalletConnection = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst account_1 = require(\"./account\");\nconst transaction_1 = require(\"./transaction\");\nconst utils_1 = require(\"./utils\");\nconst borsh_1 = require(\"borsh\");\nconst borsh_2 = require(\"borsh\");\nconst LOGIN_WALLET_URL_SUFFIX = '/login/';\nconst MULTISIG_HAS_METHOD = 'add_request_and_confirm';\nconst LOCAL_STORAGE_KEY_SUFFIX = '_wallet_auth_key';\nconst PENDING_ACCESS_KEY_PREFIX = 'pending_key'; // browser storage key for a pending access key (i.e. key has been generated but we are not sure it was added yet)\nclass WalletConnection {\n constructor(near, appKeyPrefix) {\n this._near = near;\n const authDataKey = appKeyPrefix + LOCAL_STORAGE_KEY_SUFFIX;\n const authData = JSON.parse(window.localStorage.getItem(authDataKey));\n this._networkId = near.config.networkId;\n this._walletBaseUrl = near.config.walletUrl;\n appKeyPrefix = appKeyPrefix || near.config.contractName || 'default';\n this._keyStore = near.connection.signer.keyStore;\n this._authData = authData || { allKeys: [] };\n this._authDataKey = authDataKey;\n if (!this.isSignedIn()) {\n this._completeSignInWithAccessKey();\n }\n }\n /**\n * Returns true, if this WalletAccount is authorized with the wallet.\n * @example\n * walletAccount.isSignedIn();\n */\n isSignedIn() {\n return !!this._authData.accountId;\n }\n /**\n * Returns authorized Account ID.\n * @example\n * walletAccount.getAccountId();\n */\n getAccountId() {\n return this._authData.accountId || '';\n }\n /**\n * Redirects current page to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * walletAccount.requestSignIn('account-with-deploy-contract.near', {\n * successUrl: \"https://example.com/success.html\",\n * failureUrl: \"https://example.com/error.html\"\n * });\n */\n async requestSignIn(contractIdOrOptions = {}, title, successUrl, failureUrl) {\n let options;\n if (typeof contractIdOrOptions === 'string') {\n const deprecate = depd_1.default('requestSignIn(contractId, title)');\n deprecate('`title` ignored; use `requestSignIn({ contractId, successUrl, failureUrl })` instead');\n options = { contractId: contractIdOrOptions, successUrl, failureUrl };\n }\n else {\n options = contractIdOrOptions;\n }\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL(this._walletBaseUrl + LOGIN_WALLET_URL_SUFFIX);\n newUrl.searchParams.set('success_url', options.successUrl || currentUrl.href);\n newUrl.searchParams.set('failure_url', options.failureUrl || currentUrl.href);\n if (options.contractId) {\n newUrl.searchParams.set('contract_id', options.contractId);\n const accessKey = utils_1.KeyPair.fromRandom('ed25519');\n newUrl.searchParams.set('public_key', accessKey.getPublicKey().toString());\n await this._keyStore.setKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + accessKey.getPublicKey(), accessKey);\n }\n window.location.assign(newUrl.toString());\n }\n /**\n * Requests the user to quickly sign for a transaction or batch of transactions\n * @param transactions Array of Transaction objects that will be requested to sign\n * @param callbackUrl The url to navigate to after the user is prompted to sign\n */\n async requestSignTransactions(transactions, callbackUrl) {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL('sign', this._walletBaseUrl);\n newUrl.searchParams.set('transactions', transactions\n .map(transaction => borsh_2.serialize(transaction_1.SCHEMA, transaction))\n .map(serialized => Buffer.from(serialized).toString('base64'))\n .join(','));\n newUrl.searchParams.set('callbackUrl', callbackUrl || currentUrl.href);\n window.location.assign(newUrl.toString());\n }\n /**\n * Complete sign in for a given account id and public key. To be invoked by the app when getting a callback from the wallet.\n */\n async _completeSignInWithAccessKey() {\n const currentUrl = new URL(window.location.href);\n const publicKey = currentUrl.searchParams.get('public_key') || '';\n const allKeys = (currentUrl.searchParams.get('all_keys') || '').split(',');\n const accountId = currentUrl.searchParams.get('account_id') || '';\n // TODO: Handle errors during login\n if (accountId) {\n this._authData = {\n accountId,\n allKeys\n };\n window.localStorage.setItem(this._authDataKey, JSON.stringify(this._authData));\n if (publicKey) {\n await this._moveKeyFromTempToPermanent(accountId, publicKey);\n }\n }\n currentUrl.searchParams.delete('public_key');\n currentUrl.searchParams.delete('all_keys');\n currentUrl.searchParams.delete('account_id');\n window.history.replaceState({}, document.title, currentUrl.toString());\n }\n /**\n *\n * @param accountId The NEAR account owning the given public key\n * @param publicKey The public key being set to the key store\n */\n async _moveKeyFromTempToPermanent(accountId, publicKey) {\n const keyPair = await this._keyStore.getKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n await this._keyStore.setKey(this._networkId, accountId, keyPair);\n await this._keyStore.removeKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n }\n /**\n * Sign out from the current account\n * @example\n * walletAccount.signOut();\n */\n signOut() {\n this._authData = {};\n window.localStorage.removeItem(this._authDataKey);\n }\n /**\n * Returns the current connected wallet account\n */\n account() {\n if (!this._connectedAccount) {\n this._connectedAccount = new ConnectedWalletAccount(this, this._near.connection, this._authData.accountId);\n }\n return this._connectedAccount;\n }\n}\nexports.WalletConnection = WalletConnection;\nexports.WalletAccount = WalletConnection;\n/**\n * {@link Account} implementation which redirects to wallet using (@link WalletConnection) when no local key is available.\n */\nclass ConnectedWalletAccount extends account_1.Account {\n constructor(walletConnection, connection, accountId) {\n super(connection, accountId);\n this.walletConnection = walletConnection;\n }\n // Overriding Account methods\n async signAndSendTransaction(receiverId, actions) {\n const localKey = await this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n let accessKey = await this.accessKeyForTransaction(receiverId, actions, localKey);\n if (!accessKey) {\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`);\n }\n if (localKey && localKey.toString() === accessKey.public_key) {\n try {\n return await super.signAndSendTransaction(receiverId, actions);\n }\n catch (e) {\n if (e.type === 'NotEnoughBalance') {\n accessKey = await this.accessKeyForTransaction(receiverId, actions);\n }\n else {\n throw e;\n }\n }\n }\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockHash = borsh_1.baseDecode(block.header.hash);\n const publicKey = utils_1.PublicKey.from(accessKey.public_key);\n // TODO: Cache & listen for nonce updates for given access key\n const nonce = accessKey.access_key.nonce + 1;\n const transaction = transaction_1.createTransaction(this.accountId, publicKey, receiverId, nonce, actions, blockHash);\n await this.walletConnection.requestSignTransactions([transaction], window.location.href);\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new Error('Failed to redirect to sign transaction'));\n }, 1000);\n });\n // TODO: Aggregate multiple transaction request with \"debounce\".\n // TODO: Introduce TrasactionQueue which also can be used to watch for status?\n }\n /**\n * Check if given access key allows the function call or method attempted in transaction\n * @param accessKey Array of {access_key: AccessKey, public_key: PublicKey} items\n * @param receiverId The NEAR account attempting to have access\n * @param actions The action(s) needed to be checked for access\n */\n async accessKeyMatchesTransaction(accessKey, receiverId, actions) {\n const { access_key: { permission } } = accessKey;\n if (permission === 'FullAccess') {\n return true;\n }\n if (permission.FunctionCall) {\n const { receiver_id: allowedReceiverId, method_names: allowedMethods } = permission.FunctionCall;\n /********************************\n Accept multisig access keys and let wallets attempt to signAndSendTransaction\n If an access key has itself as receiverId and method permission add_request_and_confirm, then it is being used in a wallet with multisig contract: https://github.com/near/core-contracts/blob/671c05f09abecabe7a7e58efe942550a35fc3292/multisig/src/lib.rs#L149-L153\n ********************************/\n if (allowedReceiverId === this.accountId && allowedMethods.includes(MULTISIG_HAS_METHOD)) {\n return true;\n }\n if (allowedReceiverId === receiverId) {\n if (actions.length !== 1) {\n return false;\n }\n const [{ functionCall }] = actions;\n return functionCall &&\n (!functionCall.deposit || functionCall.deposit.toString() === '0') && // TODO: Should support charging amount smaller than allowance?\n (allowedMethods.length === 0 || allowedMethods.includes(functionCall.methodName));\n // TODO: Handle cases when allowance doesn't have enough to pay for gas\n }\n }\n // TODO: Support other permissions than FunctionCall\n return false;\n }\n /**\n * Helper function returning the access key (if it exists) to the receiver that grants the designated permission\n * @param receiverId The NEAR account seeking the access key for a transaction\n * @param actions The action(s) sought to gain access to\n * @param localKey A local public key provided to check for access\n * @returns Promise\n */\n async accessKeyForTransaction(receiverId, actions, localKey) {\n const accessKeys = await this.getAccessKeys();\n if (localKey) {\n const accessKey = accessKeys.find(key => key.public_key === localKey.toString());\n if (accessKey && await this.accessKeyMatchesTransaction(accessKey, receiverId, actions)) {\n return accessKey;\n }\n }\n const walletKeys = this.walletConnection._authData.allKeys;\n for (const accessKey of accessKeys) {\n if (walletKeys.indexOf(accessKey.public_key) !== -1 && await this.accessKeyMatchesTransaction(accessKey, receiverId, actions)) {\n return accessKey;\n }\n }\n return null;\n }\n}\nexports.ConnectedWalletAccount = ConnectedWalletAccount;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connect = void 0;\nconst near_1 = require(\"./near\");\n/**\n * Initialize connection to Near network.\n */\nasync function connect(config) {\n return new near_1.Near(config);\n}\nexports.connect = connect;\n","require(\"capability/es5\");\r\n\r\nvar capability = require(\"capability\");\r\n\r\nvar polyfill;\r\nif (capability(\"Error.captureStackTrace\"))\r\n polyfill = require(\"./v8\");\r\nelse if (capability(\"Error.prototype.stack\"))\r\n polyfill = require(\"./non-v8/index\");\r\nelse\r\n polyfill = require(\"./unsupported\");\r\n\r\nmodule.exports = polyfill();","require(\".\").check(\"es5\");","require(\"./lib/definitions\");\r\nmodule.exports = require(\"./lib\");\r\n","var capability = require(\".\"),\r\n define = capability.define,\r\n test = capability.test;\r\n\r\ndefine(\"strict mode\", function () {\r\n return (this === undefined);\r\n});\r\n\r\ndefine(\"arguments.callee.caller\", function () {\r\n try {\r\n return (function () {\r\n return arguments.callee.caller;\r\n })() === arguments.callee;\r\n } catch (strictModeIsEnforced) {\r\n return false;\r\n }\r\n});\r\n\r\ndefine(\"es5\", function () {\r\n return test(\"Array.prototype.forEach\") &&\r\n test(\"Array.prototype.map\") &&\r\n test(\"Function.prototype.bind\") &&\r\n test(\"Object.create\") &&\r\n test(\"Object.defineProperties\") &&\r\n test(\"Object.defineProperty\") &&\r\n test(\"Object.prototype.hasOwnProperty\");\r\n});\r\n\r\ndefine(\"Array.prototype.forEach\", function () {\r\n return Array.prototype.forEach;\r\n});\r\n\r\ndefine(\"Array.prototype.map\", function () {\r\n return Array.prototype.map;\r\n});\r\n\r\ndefine(\"Function.prototype.bind\", function () {\r\n return Function.prototype.bind;\r\n});\r\n\r\ndefine(\"Object.create\", function () {\r\n return Object.create;\r\n});\r\n\r\ndefine(\"Object.defineProperties\", function () {\r\n return Object.defineProperties;\r\n});\r\n\r\ndefine(\"Object.defineProperty\", function () {\r\n return Object.defineProperty;\r\n});\r\n\r\ndefine(\"Object.prototype.hasOwnProperty\", function () {\r\n return Object.prototype.hasOwnProperty;\r\n});\r\n\r\ndefine(\"Error.captureStackTrace\", function () {\r\n return Error.captureStackTrace;\r\n});\r\n\r\ndefine(\"Error.prototype.stack\", function () {\r\n try {\r\n throw new Error();\r\n }\r\n catch (e) {\r\n return e.stack || e.stacktrace;\r\n }\r\n});","var CapabilityDetector = require(\"./CapabilityDetector\");\r\n\r\nvar detector = new CapabilityDetector();\r\n\r\nvar capability = function (name) {\r\n return detector.test(name);\r\n};\r\ncapability.define = function (name, test) {\r\n detector.define(name, test);\r\n};\r\ncapability.check = function (name) {\r\n detector.check(name);\r\n};\r\ncapability.test = capability;\r\n\r\nmodule.exports = capability;","var CapabilityDetector = function () {\r\n this.tests = {};\r\n this.cache = {};\r\n};\r\nCapabilityDetector.prototype = {\r\n constructor: CapabilityDetector,\r\n define: function (name, test) {\r\n if (typeof (name) != \"string\" || !(test instanceof Function))\r\n throw new Error(\"Invalid capability definition.\");\r\n if (this.tests[name])\r\n throw new Error('Duplicated capability definition by \"' + name + '\".');\r\n this.tests[name] = test;\r\n },\r\n check: function (name) {\r\n if (!this.test(name))\r\n throw new Error('The current environment does not support \"' + name + '\", therefore we cannot continue.');\r\n },\r\n test: function (name) {\r\n if (this.cache[name] !== undefined)\r\n return this.cache[name];\r\n if (!this.tests[name])\r\n throw new Error('Unknown capability with name \"' + name + '\".');\r\n var test = this.tests[name];\r\n this.cache[name] = !!test();\r\n return this.cache[name];\r\n }\r\n};\r\n\r\nmodule.exports = CapabilityDetector;","var prepareStackTrace = require(\"./prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n Error.getStackTrace = function (throwable) {\r\n return throwable.stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","var prepareStackTrace = function (throwable, frames, warnings) {\r\n var string = \"\";\r\n string += throwable.name || \"Error\";\r\n string += \": \" + (throwable.message || \"\");\r\n if (warnings instanceof Array)\r\n for (var warningIndex in warnings) {\r\n var warning = warnings[warningIndex];\r\n string += \"\\n # \" + warning;\r\n }\r\n for (var frameIndex in frames) {\r\n var frame = frames[frameIndex];\r\n string += \"\\n at \" + frame.toString();\r\n }\r\n return string;\r\n};\r\n\r\nmodule.exports = prepareStackTrace;","var FrameStringSource = require(\"./FrameStringSource\"),\r\n FrameStringParser = require(\"./FrameStringParser\"),\r\n cache = require(\"u3\").cache,\r\n prepareStackTrace = require(\"../prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n\r\n Error.captureStackTrace = function captureStackTrace(throwable, terminator) {\r\n var warnings;\r\n var frameShifts = [\r\n captureStackTrace\r\n ];\r\n if (terminator) {\r\n // additional frames can come here if arguments.callee.caller is supported\r\n // otherwise it is hard to identify the terminator\r\n frameShifts.push(terminator);\r\n }\r\n var captured = FrameStringSource.getInstance().captureFrameStrings(frameShifts);\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n get: cache(function () {\r\n var frames = FrameStringParser.getInstance().getFrames(captured.frameStrings, captured.functionValues);\r\n return (Error.prepareStackTrace || prepareStackTrace)(throwable, frames, warnings);\r\n })\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n };\r\n\r\n Error.getStackTrace = function (throwable) {\r\n if (throwable.cachedStack)\r\n return throwable.stack;\r\n var frameStrings = FrameStringSource.getInstance().getFrameStrings(throwable),\r\n frames = [],\r\n warnings;\r\n if (frameStrings)\r\n frames = FrameStringParser.getInstance().getFrames(frameStrings, []);\r\n else\r\n warnings = [\r\n \"The stack is not readable by unthrown errors in this environment.\"\r\n ];\r\n var stack = (Error.prepareStackTrace || prepareStackTrace)(throwable, frames, warnings);\r\n if (frameStrings)\r\n try {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: stack\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n } catch (nonConfigurableError) {\r\n }\r\n return stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","var Class = require(\"o3\").Class,\r\n abstractMethod = require(\"o3\").abstractMethod,\r\n eachCombination = require(\"u3\").eachCombination,\r\n cache = require(\"u3\").cache,\r\n capability = require(\"capability\");\r\n\r\nvar AbstractFrameStringSource = Class(Object, {\r\n prototype: {\r\n captureFrameStrings: function (frameShifts) {\r\n var error = this.createError();\r\n frameShifts.unshift(this.captureFrameStrings);\r\n frameShifts.unshift(this.createError);\r\n var capturedFrameStrings = this.getFrameStrings(error);\r\n\r\n var frameStrings = capturedFrameStrings.slice(frameShifts.length),\r\n functionValues = [];\r\n\r\n if (capability(\"arguments.callee.caller\")) {\r\n var capturedFunctionValues = [\r\n this.createError,\r\n this.captureFrameStrings\r\n ];\r\n try {\r\n var aCaller = arguments.callee;\r\n while (aCaller = aCaller.caller)\r\n capturedFunctionValues.push(aCaller);\r\n }\r\n catch (useStrictError) {\r\n }\r\n functionValues = capturedFunctionValues.slice(frameShifts.length);\r\n }\r\n return {\r\n frameStrings: frameStrings,\r\n functionValues: functionValues\r\n };\r\n },\r\n getFrameStrings: function (error) {\r\n var message = error.message || \"\";\r\n var name = error.name || \"\";\r\n var stackString = this.getStackString(error);\r\n if (stackString === undefined)\r\n return;\r\n var stackStringChunks = stackString.split(\"\\n\");\r\n var fromPosition = 0;\r\n var toPosition = stackStringChunks.length;\r\n if (this.hasHeader)\r\n fromPosition += name.split(\"\\n\").length + message.split(\"\\n\").length - 1;\r\n if (this.hasFooter)\r\n toPosition -= 1;\r\n return stackStringChunks.slice(fromPosition, toPosition);\r\n },\r\n createError: abstractMethod,\r\n getStackString: abstractMethod,\r\n hasHeader: undefined,\r\n hasFooter: undefined\r\n }\r\n});\r\n\r\nvar FrameStringSourceCalibrator = Class(Object, {\r\n prototype: {\r\n calibrateClass: function (FrameStringSource) {\r\n return this.calibrateMethods(FrameStringSource) && this.calibrateEnvelope(FrameStringSource);\r\n },\r\n calibrateMethods: function (FrameStringSource) {\r\n try {\r\n eachCombination([[\r\n function (message) {\r\n return new Error(message);\r\n },\r\n function (message) {\r\n try {\r\n throw new Error(message);\r\n }\r\n catch (error) {\r\n return error;\r\n }\r\n }\r\n ], [\r\n function (error) {\r\n return error.stack;\r\n },\r\n function (error) {\r\n return error.stacktrace;\r\n }\r\n ]], function (createError, getStackString) {\r\n if (getStackString(createError()))\r\n throw {\r\n getStackString: getStackString,\r\n createError: createError\r\n };\r\n });\r\n } catch (workingImplementation) {\r\n Class.merge.call(FrameStringSource, {\r\n prototype: workingImplementation\r\n });\r\n return true;\r\n }\r\n return false;\r\n },\r\n calibrateEnvelope: function (FrameStringSource) {\r\n var getStackString = FrameStringSource.prototype.getStackString;\r\n var createError = FrameStringSource.prototype.createError;\r\n var calibratorStackString = getStackString(createError(\"marker\"));\r\n var calibratorFrameStrings = calibratorStackString.split(\"\\n\");\r\n Class.merge.call(FrameStringSource, {\r\n prototype: {\r\n hasHeader: /marker/.test(calibratorFrameStrings[0]),\r\n hasFooter: calibratorFrameStrings[calibratorFrameStrings.length - 1] === \"\"\r\n }\r\n });\r\n return true;\r\n }\r\n }\r\n});\r\n\r\n\r\nmodule.exports = {\r\n getClass: cache(function () {\r\n var FrameStringSource;\r\n if (FrameStringSource)\r\n return FrameStringSource;\r\n FrameStringSource = Class(AbstractFrameStringSource, {});\r\n var calibrator = new FrameStringSourceCalibrator();\r\n if (!calibrator.calibrateClass(FrameStringSource))\r\n throw new Error(\"Cannot read Error.prototype.stack in this environment.\");\r\n return FrameStringSource;\r\n }),\r\n getInstance: cache(function () {\r\n var FrameStringSource = this.getClass();\r\n var instance = new FrameStringSource();\r\n return instance;\r\n })\r\n};","require(\"capability/es5\");\r\n\r\nmodule.exports = require(\"./lib\");","module.exports = {\r\n Class: require(\"./Class\"),\r\n abstractMethod: require(\"./abstractMethod\")\r\n};","var Class = function () {\r\n var options = Object.create({\r\n Source: Object,\r\n config: {},\r\n buildArgs: []\r\n });\r\n\r\n function checkOption(option) {\r\n var key = \"config\";\r\n if (option instanceof Function)\r\n key = \"Source\";\r\n else if (option instanceof Array)\r\n key = \"buildArgs\";\r\n else if (option instanceof Object)\r\n key = \"config\";\r\n else\r\n throw new Error(\"Invalid configuration option.\");\r\n if (options.hasOwnProperty(key))\r\n throw new Error(\"Duplicated configuration option: \" + key + \".\");\r\n options[key] = option;\r\n }\r\n\r\n for (var index = 0, length = arguments.length; index < length; ++index)\r\n checkOption(arguments[index]);\r\n\r\n var Source = options.Source,\r\n config = options.config,\r\n buildArgs = options.buildArgs;\r\n\r\n return (Source.extend || Class.extend).call(Source, config, buildArgs);\r\n};\r\n\r\nClass.factory = function () {\r\n var Source = this;\r\n return function () {\r\n var instance = this;\r\n if (instance.build instanceof Function)\r\n instance.build.apply(instance, arguments);\r\n if (instance.init instanceof Function)\r\n instance.init.apply(instance, arguments);\r\n };\r\n};\r\n\r\nClass.extend = function (config, buildArgs) {\r\n var Source = this;\r\n if (!config)\r\n config = {};\r\n var Subject;\r\n if ((config.prototype instanceof Object) && config.prototype.constructor !== Object)\r\n Subject = config.prototype.constructor;\r\n else if (config.factory instanceof Function)\r\n Subject = config.factory.call(Source);\r\n Subject = (Source.clone || Class.clone).call(Source, Subject, buildArgs);\r\n (Subject.merge || Class.merge).call(Subject, config);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.extend = function (config, buildArgs) {\r\n var subject = this;\r\n var instance = (subject.clone || Class.prototype.clone).apply(subject, buildArgs);\r\n (instance.merge || Class.prototype.merge).call(instance, config);\r\n return instance;\r\n};\r\n\r\nClass.clone = function (Subject, buildArgs) {\r\n var Source = this;\r\n if (!(Subject instanceof Function))\r\n Subject = (Source.factory || Class.factory).call(Source);\r\n Subject.prototype = (Source.prototype.clone || Class.prototype.clone).apply(Source.prototype, buildArgs || []);\r\n Subject.prototype.constructor = Subject;\r\n for (var staticProperty in Source)\r\n if (staticProperty !== \"prototype\")\r\n Subject[staticProperty] = Source[staticProperty];\r\n return Subject;\r\n};\r\n\r\nClass.prototype.clone = function () {\r\n var subject = this;\r\n var instance = Object.create(subject);\r\n if (instance.build instanceof Function)\r\n instance.build.apply(instance, arguments);\r\n return instance;\r\n};\r\n\r\nClass.merge = function (config) {\r\n var Subject = this;\r\n for (var staticProperty in config)\r\n if (staticProperty !== \"prototype\")\r\n Subject[staticProperty] = config[staticProperty];\r\n if (config.prototype instanceof Object)\r\n (Subject.prototype.merge || Class.prototype.merge).call(Subject.prototype, config.prototype);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.merge = function (config) {\r\n var subject = this;\r\n for (var property in config)\r\n if (property !== \"constructor\")\r\n subject[property] = config[property];\r\n return subject;\r\n};\r\n\r\nClass.absorb = function (config) {\r\n var Subject = this;\r\n for (var staticProperty in config)\r\n if (staticProperty !== \"prototype\" && (Subject[staticProperty] === undefined || Subject[staticProperty] === Function.prototype[staticProperty]))\r\n Subject[staticProperty] = config[staticProperty];\r\n if (config.prototype instanceof Object)\r\n (Subject.prototype.absorb || Class.prototype.absorb).call(Subject.prototype, config.prototype);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.absorb = function (config) {\r\n var subject = this;\r\n for (var property in config)\r\n if (property !== \"constructor\" && (subject[property] === undefined || subject[property] === Object.prototype[property]))\r\n subject[property] = config[property];\r\n return subject;\r\n};\r\n\r\nClass.getAncestor = function () {\r\n var Source = this;\r\n if (Source !== Source.prototype.constructor)\r\n return Source.prototype.constructor;\r\n};\r\n\r\nClass.newInstance = function () {\r\n var Subject = this;\r\n var instance = Object.create(this.prototype);\r\n Subject.apply(instance, arguments);\r\n return instance;\r\n};\r\n\r\nmodule.exports = Class;","module.exports = function () {\r\n throw new Error(\"Not implemented.\");\r\n};","module.exports = require(\"./lib\");","module.exports = {\r\n cache: require(\"./cache\"),\r\n eachCombination: require(\"./eachCombination\")\r\n};","var cache = function (fn) {\r\n var called = false,\r\n store;\r\n\r\n if (!(fn instanceof Function)) {\r\n called = true;\r\n store = fn;\r\n fn = null;\r\n }\r\n\r\n return function () {\r\n if (!called) {\r\n called = true;\r\n store = fn.apply(this, arguments);\r\n fn = null;\r\n }\r\n return store;\r\n };\r\n};\r\n\r\nmodule.exports = cache;","module.exports = function eachCombination(alternativesByDimension, callback, combination) {\r\n if (!combination)\r\n combination = [];\r\n if (combination.length < alternativesByDimension.length) {\r\n var alternatives = alternativesByDimension[combination.length];\r\n for (var index in alternatives) {\r\n combination[combination.length] = alternatives[index];\r\n eachCombination(alternativesByDimension, callback, combination);\r\n --combination.length;\r\n }\r\n }\r\n else\r\n callback.apply(null, combination);\r\n};","var Class = require(\"o3\").Class,\r\n Frame = require(\"./Frame\"),\r\n cache = require(\"u3\").cache;\r\n\r\nvar FrameStringParser = Class(Object, {\r\n prototype: {\r\n stackParser: null,\r\n frameParser: null,\r\n locationParsers: null,\r\n constructor: function (options) {\r\n Class.prototype.merge.call(this, options);\r\n },\r\n getFrames: function (frameStrings, functionValues) {\r\n var frames = [];\r\n for (var index = 0, length = frameStrings.length; index < length; ++index)\r\n frames[index] = this.getFrame(frameStrings[index], functionValues[index]);\r\n return frames;\r\n },\r\n getFrame: function (frameString, functionValue) {\r\n var config = {\r\n frameString: frameString,\r\n functionValue: functionValue\r\n };\r\n return new Frame(config);\r\n }\r\n }\r\n});\r\n\r\nmodule.exports = {\r\n getClass: cache(function () {\r\n return FrameStringParser;\r\n }),\r\n getInstance: cache(function () {\r\n var FrameStringParser = this.getClass();\r\n var instance = new FrameStringParser();\r\n return instance;\r\n })\r\n};","var Class = require(\"o3\").Class,\r\n abstractMethod = require(\"o3\").abstractMethod;\r\n\r\nvar Frame = Class(Object, {\r\n prototype: {\r\n init: Class.prototype.merge,\r\n frameString: undefined,\r\n toString: function () {\r\n return this.frameString;\r\n },\r\n functionValue: undefined,\r\n getThis: abstractMethod,\r\n getTypeName: abstractMethod,\r\n getFunction: function () {\r\n return this.functionValue;\r\n },\r\n getFunctionName: abstractMethod,\r\n getMethodName: abstractMethod,\r\n getFileName: abstractMethod,\r\n getLineNumber: abstractMethod,\r\n getColumnNumber: abstractMethod,\r\n getEvalOrigin: abstractMethod,\r\n isTopLevel: abstractMethod,\r\n isEval: abstractMethod,\r\n isNative: abstractMethod,\r\n isConstructor: abstractMethod\r\n }\r\n});\r\n\r\nmodule.exports = Frame;","var cache = require(\"u3\").cache,\r\n prepareStackTrace = require(\"./prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n\r\n Error.captureStackTrace = function (throwable, terminator) {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n get: cache(function () {\r\n return (Error.prepareStackTrace || prepareStackTrace)(throwable, []);\r\n })\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n };\r\n\r\n Error.getStackTrace = function (throwable) {\r\n if (throwable.cachedStack)\r\n return throwable.stack;\r\n var stack = (Error.prepareStackTrace || prepareStackTrace)(throwable, []);\r\n try {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: stack\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n } catch (nonConfigurableError) {\r\n }\r\n return stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","import { connect, keyStores, WalletConnection, ConnectedWalletAccount } from 'near-api-js'\r\n\r\nimport { ENV, CHEDDAR_CONTRACT_NAME, TESTNET_CHEDDAR_CONTRACT_NAME, getConfig } from './config'\r\n\r\nimport { WalletInterface } from './wallet-api/wallet-interface';\r\nimport { disconnectedWallet } from './wallet-api/disconnected-wallet';\r\nimport { NearWebWallet } from './wallet-api/near-web-wallet/near-web-wallet';\r\nimport { narwallets, addNarwalletsListeners } from './wallet-api/narwallets/narwallets';\r\nimport { yton, toStringDec, toStringDecMin, convertToDecimals, convertToBase } from './util/conversions';\r\n\r\n//qs/qsa are shortcut for document.querySelector/All\r\nimport { qs, qsa, qsi, showWait, showErr, showSuccess, showMessage, show, hide, hideOverlay, showError, showPopup, qsInnerText, qsaAttribute } from './util/document';\r\nimport { checkRedirectSearchParamsMultiple } from './wallet-api/near-web-wallet/checkRedirectSearchParams';\r\nimport { FungibleTokenMetadata, NEP141Trait } from './contracts/NEP141';\r\nimport { PoolParams, UserStatusP2 } from './entities/poolParams';\r\nimport { getPoolList } from './entities/poolList';\r\nimport { PoolParamsP3 } from './entities/poolParamsP3';\r\nimport { U128String } from './wallet-api/util';\r\nimport {DetailRowElements, HTMLTokenInputData, TokenIconData, UnclaimedRewardsData, RewardsTokenData} from './entities/genericData';\r\n\r\nimport * as nearAPI from \"near-api-js\"\r\nimport { getTokenData, getTokenDataArray } from './util/oracle';\r\nimport { RefTokenData } from './entities/refResponse';\r\nimport { ContractParams, TransactionData } from './contracts/contract-structs';\r\nimport { P3ContractParams, PoolUserStatusP3, PoolUserStatusP3NFT } from './contracts/p3-structures';\r\nimport { NFTContract } from './contracts/NFTContract';\r\nimport { newNFT, NFT, NFTMetadata, NFTWithMetadata } from './contracts/nft-structs';\r\nimport { BN } from 'bn.js';\r\nimport { StakingPoolP3 } from './contracts/p3-staking';\r\nimport { StakingPoolP1 } from './contracts/p2-staking';\r\nimport { callMulipleTransactions } from './contracts/multipleCall';\r\nimport { TokenContractData } from './entities/PoolEntities';\r\nimport { PoolParamsNFT } from './entities/poolParamsNFT';\r\nimport { NFTContractData, StakingContractDataNFT } from './entities/PoolEntitiesNFT';\r\nimport { NFTStakingContractParams } from './contracts/nft-structures';\r\nimport { StakingPoolNFT } from './contracts/nft-staking';\r\nimport { initButton as initLiquidButton } from './util/animations/liquidityButton';\r\nimport { ConfettiButton } from './util/animations/new-confetti-button';\r\n\r\n//get global config\r\n//const nearConfig = getConfig(process.env.NODE_ENV || 'testnet')\r\nexport let nearConfig = getConfig(ENV); //default testnet, can change according to URL on window.onload\r\nexport let near: nearAPI.Near\r\n// global variables used throughout\r\nexport let wallet: WalletInterface = disconnectedWallet;\r\n\r\nlet nearWebWalletConnection: WalletConnection;\r\nlet nearConnectedWalletAccount: ConnectedWalletAccount;\r\nlet accountName;\r\nlet isPaused = false;\r\nlet loggedWithNarwallets = false\r\n\r\n//time in ms\r\nconst SECONDS = 1000\r\nconst MINUTES = 60 * SECONDS\r\nconst HOURS = 60 * MINUTES\r\n\r\nlet countDownIntervalId: number\r\nconst refreshTime = 60 * SECONDS\r\n\r\nconst ONE_NEAR = BigInt(10) ** BigInt(24);\r\n//------------------------------\r\n//--- connect buttons->code ----\r\n//------------------------------\r\n\r\n//all popup \"cancel\" buttons\r\nqsa('.popup button#cancel').forEach(f => (f as HTMLButtonElement).onclick = (event) => { event.preventDefault(); hideOverlay() })\r\n\r\n//connect wallet selection boxes\r\n// qs('#near-web-wallet-box').onclick = loginNearWebWallet\r\n// qs('#narwallets-wallet-box').onclick = loginNarwallets\r\n\r\n//nav my-account \"home\"\r\nqs('nav #home').onclick =\r\n async function (event) {\r\n event.preventDefault()\r\n if (wallet.isConnected()) {\r\n showSection(\"#home-connected\")\r\n selectNav(\"#home\")\r\n }\r\n else {\r\n signedOutFlow();\r\n }\r\n }\r\n\r\nqs('#logo').onclick =\r\n async function (event) {\r\n event.preventDefault()\r\n if (wallet.isConnected()) {\r\n signedInFlow(wallet)\r\n }\r\n else {\r\n signedOutFlow();\r\n }\r\n }\r\n\r\nqs('#my-account').onclick =\r\n async function (event) {\r\n event.preventDefault()\r\n if (wallet.isConnected()) {\r\n console.log(\"Connected\")\r\n signedInFlow(wallet)\r\n } else {\r\n console.log(\"Disconnected\")\r\n loginNearWebWallet();\r\n }\r\n }\r\n\r\n\r\nlet moreGamesButton = qs(\".games-dropdown\") as HTMLElement\r\nmoreGamesButton.addEventListener(\"click\", gamesDropdownHandler())\r\n\r\nlet noLivePoolsMsg = qs(\".no-live-pools-msg\") as HTMLElement\r\nnoLivePoolsMsg.addEventListener(\"click\", gamesDropdownHandler())\r\n\r\nfunction gamesDropdownHandler() {\r\n return function(){\r\n let gamesDropdownContainer = qs(\".games-dropdown-items\") as HTMLElement\r\n gamesDropdownContainer.classList.toggle(\"down\")\r\n\r\n let gamesLinksContainer = qs(\".games-links-container\") as HTMLElement\r\n \r\n gamesLinksContainer.classList.toggle(\"games-dropdown-hidden-position\")\r\n moreGamesButton.querySelector(\"svg\")!.classList.toggle(\"flipped\") \r\n }\r\n}\r\n\r\n//generic nav handler\r\nfunction navClickHandler_ConnectFirst(event: Event) {\r\n event.preventDefault()\r\n if (wallet.isConnected()) {\r\n //show section with same id as the link\r\n showSection(\"#\" + (event.target as HTMLElement).closest(\"a\")?.id)\r\n }\r\n else {\r\n showSection(\"#home\")\r\n loginNearWebWallet()\r\n // sayChoose()\r\n }\r\n}\r\n\r\nqs('nav #unstake-m').onclick = navClickHandler_ConnectFirst\r\nqs('nav #liquidity').onclick = navClickHandler_ConnectFirst\r\nqs('nav #my-account').onclick = navClickHandler_ConnectFirst\r\n\r\nqs('nav #faq').onclick = () => { showSection(\"#faq\") }\r\n\r\nfunction sayChoose() {\r\n showMessage(\"Please choose a wallet to connect\", \"Connect first\");\r\n}\r\n\r\n\r\n//button sign-out\r\nqs('#sign-out').onclick =\r\n async function (event) {\r\n event.preventDefault();\r\n \r\n wallet.disconnect();\r\n wallet = disconnectedWallet;\r\n\r\n signedOutFlow();\r\n }\r\n\r\n\r\n//New filters\r\nfunction filterPools(className: string){\r\n return function (event: Event){\r\n filterButtonClicked(event)\r\n hideAllPools()\r\n let livePools = qsa(`.${className}`)\r\n // let livePools = qsa(\"test-no-live-pools-msg\")\r\n showSelectedPools(livePools, className)\r\n }\r\n}\r\n\r\nfunction filterButtonClicked (event: Event){\r\n let previousFilterClicked= qsa(\".activeFilterButton\")\r\n previousFilterClicked.forEach(button => {\r\n button.classList.remove(\"activeFilterButton\")\r\n })\r\n let buttonClicked = event.target as HTMLElement\r\n buttonClicked.classList.add(\"activeFilterButton\")\r\n}\r\n\r\nfunction hideAllPools() {\r\n let allPools = document.querySelectorAll(\".pool-container\")\r\n allPools.forEach(pool => {\r\n pool.classList.add(\"hidden\")\r\n });\r\n}\r\n\r\nfunction showSelectedPools(selectedPools: NodeListOf, className: string) {\r\n if(selectedPools.length > 0){\r\n qs(\".no-live-pools-msg\").classList.add(\"hidden\")\r\n\r\n selectedPools.forEach(pool => {\r\n pool.classList.remove(\"hidden\")\r\n });\r\n\r\n } else if (className == \"active-pool\") {\r\n qs(\".no-live-pools-msg\").classList.remove(\"hidden\")\r\n }\r\n}\r\n\r\n\r\n//Events on filter buttons\r\nqs(\"#live-filter\").onclick=filterPools(\"active-pool\")\r\nqs(\"#ended-filter\").onclick=filterPools(\"inactive-pool\")\r\nqs('#your-farms-filter').onclick= filterPools(\"your-farms\")\r\n\r\n\r\nfunction activateClicked(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, pool: HTMLElement) {\r\n return async function (event: Event) {\r\n event.preventDefault()\r\n let TXs: TransactionData[] = []\r\n\r\n const stakeTokenList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenList.length; i++) {\r\n const tokenContract = stakeTokenList[i].contract!\r\n const doesNeedStorageDeposit = await needsStorageDeposit(tokenContract)\r\n if (doesNeedStorageDeposit) {\r\n TXs.push({\r\n promise: tokenContract.storageDepositWithoutSend(),\r\n contractName: tokenContract.contractId\r\n })\r\n }\r\n }\r\n\r\n const doesNeedStorageDeposit = await needsStorageDeposit(poolParams.stakingContractData.contract)\r\n if (doesNeedStorageDeposit) {\r\n TXs.push({\r\n promise: poolParams.stakingContractData.contract.storageDepositWithoutSend(),\r\n contractName: poolParams.stakingContractData.contract.contractId\r\n })\r\n }\r\n await callMulipleTransactions(TXs, poolParams.stakingContractData.contract)\r\n\r\n pool.querySelector(\"#deposit\")!.classList.remove(\"hidden\")\r\n pool.querySelector(\"#activated\")!.classList.add(\"hidden\")\r\n }\r\n}\r\n\r\nasync function needsStorageDeposit(contract: NEP141Trait|StakingPoolP1|StakingPoolP3|StakingPoolNFT): Promise {\r\n if(!wallet.isConnected()) return false\r\n const contractStorageBalanceData = await contract.storageBalance()\r\n if(contractStorageBalanceData == null) return true\r\n const contractStorageBalanceBN = new BN(contractStorageBalanceData.total)\r\n return !contractStorageBalanceBN.gten(0)\r\n}\r\n\r\nasync function getUnclaimedRewardsInUSDSingle(poolParams: PoolParams): Promise {\r\n const rewardToken = \"cheddar\"\r\n const rewardTokenData: RefTokenData = await getTokenData(rewardToken)\r\n const metaData = await poolParams.cheddarContract.ft_metadata()\r\n const userPoolParams = await poolParams.stakingContractData.getUserStatus()\r\n const currentRewards: bigint = userPoolParams.real\r\n const currentRewardsDisplayable = convertToDecimals(currentRewards, metaData.decimals, 5)\r\n return parseFloat(rewardTokenData.price) * parseFloat(currentRewardsDisplayable)\r\n}\r\n\r\n/**\r\n * \r\n * @param tokenContractList \r\n * @param amountList array containing the amounts to be converted with the metadata decimals included\r\n * @returns \r\n */\r\nasync function convertToUSDMultiple(tokenContractList: TokenContractData[], amountList: U128String[]): Promise {\r\n // const stakeTokenContractList = poolParams.stakeTokenContractList\r\n //TODO DANI make better. Avoid calling the promise\r\n await Promise.all(\r\n tokenContractList.map(\r\n (tokenContract: TokenContractData) => tokenContract.getMetadata()\r\n )\r\n )\r\n const rewardTokenArray = tokenContractList.map(tokenContract => tokenContract.getMetadataSync().symbol)\r\n const rewardTokenDataMap: Map = await getTokenDataArray(rewardTokenArray)\r\n let amountInUsd: number = 0\r\n tokenContractList.forEach((tokenContract: TokenContractData, index: number) => {\r\n const metaData = tokenContract.getMetadataSync()\r\n const symbol = metaData.symbol\r\n const amount = amountList[index]\r\n \r\n // console.log(unclaimedRewards)\r\n const currentRewardsDisplayable = convertToDecimals(amount, metaData.decimals, 5)\r\n const tokenData = rewardTokenDataMap.get(symbol.toLowerCase())\r\n amountInUsd += parseFloat(tokenData!.price) * parseFloat(currentRewardsDisplayable)\r\n })\r\n\r\n return amountInUsd.toFixed(5)\r\n}\r\n\r\n\r\nfunction stakeMultiple(poolParams: PoolParamsP3, newPool: HTMLElement) {\r\n return async function (event: Event){\r\n event?.preventDefault()\r\n showWait(\"Staking...\")\r\n \r\n // let stakeContainerList = newPool.querySelectorAll(\".main-stake .input-container\") \r\n let inputArray: HTMLInputElement[] = []\r\n\r\n try {\r\n let unixTimestamp = new Date().getTime() / 1000; //unix timestamp (seconds)\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n // const contractParams = poolParams.contractParams\r\n // const isDateInRange = contractParams.farming_start < unixTimestamp && unixTimestamp < contractParams.farming_end\r\n const isDateInRange = unixTimestamp < contractParams.farming_end\r\n if (!isDateInRange) throw Error(\"Pools is Closed.\")\r\n \r\n const { htmlInputArray, amountValuesArray: amountValues, transferedAmountWithSymbolArray: stakedAmountWithSymbol } = await getInputDataMultiple(poolParams, newPool, \"stake\")\r\n inputArray = htmlInputArray\r\n \r\n qsaAttribute(\"input\", \"disabled\", \"disabled\")\r\n\r\n //get amount\r\n const min_deposit_amount = 1;\r\n \r\n await poolParams.stake(amountValues)\r\n if (loggedWithNarwallets) {\r\n //clear form\r\n for(let i = 0; i < inputArray.length; i++) {\r\n inputArray[i].value = \"\" \r\n }\r\n \r\n // const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n // poolUserStatus.addStaked(amountValues)\r\n poolParams.stakingContractData.refreshData()\r\n\r\n showSuccess(`Staked ${stakedAmountWithSymbol.join(\" - \")}`)\r\n }\r\n\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n }\r\n // re-enable the form, whether the call succeeded or failed\r\n inputArray.forEach(input => {\r\n input.removeAttribute(\"disabled\")\r\n });\r\n }\r\n}\r\n\r\nfunction unstakeMultiple(poolParams: PoolParamsP3, newPool: HTMLElement) {\r\n return async function (event: Event){\r\n event?.preventDefault()\r\n showWait(\"Unstaking...\")\r\n \r\n // let stakeContainerList = newPool.querySelectorAll(\".main-stake .input-container\") \r\n let inputArray: HTMLInputElement[] = []\r\n\r\n try {\r\n let unixTimestamp = new Date().getTime() / 1000; //unix timestamp (seconds)\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n // const contractParams = poolParams.contractParams\r\n // const isDateInRange = contractParams.farming_start < unixTimestamp && unixTimestamp < contractParams.farming_end\r\n // const isDateInRange = unixTimestamp > contractParams.farming_start\r\n // if (!isDateInRange) throw Error(\"Pools is not open yet.\")\r\n \r\n const { htmlInputArray, amountValuesArray: amountValues, transferedAmountWithSymbolArray: unstakedAmountWithSymbol } = await getInputDataMultiple(poolParams, newPool, \"unstake\")\r\n inputArray = htmlInputArray\r\n \r\n qsaAttribute(\"input\", \"disabled\", \"disabled\")\r\n\r\n //get amount\r\n const min_deposit_amount = 1;\r\n \r\n await poolParams.unstake(amountValues)\r\n if (loggedWithNarwallets) {\r\n //clear form\r\n for(let i = 0; i < inputArray.length; i++) {\r\n inputArray[i].value = \"\" \r\n }\r\n \r\n // poolParams.poolUserStatus.addStaked(amountValues.map(value => -value))\r\n poolParams.stakingContractData.refreshData()\r\n \r\n showSuccess(`Staked ${unstakedAmountWithSymbol.join(\" - \")}`)\r\n }\r\n\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n }\r\n // re-enable the form, whether the call succeeded or failed\r\n inputArray.forEach(input => {\r\n input.removeAttribute(\"disabled\")\r\n });\r\n }\r\n}\r\n\r\nasync function getInputDataMultiple(poolParams: PoolParamsP3, newPool: HTMLElement, action: string): Promise {\r\n let htmlInputArray: HTMLInputElement[] = []\r\n let amountValuesArray: bigint[] = []\r\n let stakedAmountWithSymbolArray: string[] = []\r\n\r\n let inputContainerList = newPool.querySelectorAll(`.main-${action} .input-container`) \r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n let boundary: string[]\r\n if(action == \"stake\") {\r\n boundary = await poolParams.getWalletAvailable()\r\n } else if(action == \"unstake\") {\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n boundary = poolUserStatus.stake_tokens\r\n } else {\r\n throw Error(`Action ${action} not available`)\r\n }\r\n \r\n for(let i = 0; i < inputContainerList.length; i++) {\r\n let stakeContainer = inputContainerList[i]\r\n let input = stakeContainer.querySelector(\".amount\") as HTMLInputElement\r\n htmlInputArray.push(input)\r\n let amount = parseFloat(input.value)\r\n \r\n if (isNaN(amount)) {\r\n throw Error(\"Please Input a Number.\")\r\n }\r\n // const metaData = stakeTokenContractList[i].metaData\r\n const currentStakeTokenMetadata = await stakeTokenContractList[i].getMetadata()\r\n\r\n const stakeAmountBN: bigint = BigInt(convertToBase(amount.toString(), currentStakeTokenMetadata.decimals.toString()))\r\n console.log(i, boundary[i])\r\n if(BigInt(boundary[i]) < stakeAmountBN) {\r\n const balanceDisplayable = convertToDecimals(boundary[i], currentStakeTokenMetadata.decimals, 5)\r\n throw Error(`Only ${balanceDisplayable} ${currentStakeTokenMetadata.symbol} Available to ${action}.`)\r\n }\r\n \r\n amountValuesArray.push(stakeAmountBN)\r\n stakedAmountWithSymbolArray.push(`${amount} ${currentStakeTokenMetadata.symbol}`)\r\n }\r\n return {\r\n htmlInputArray,\r\n amountValuesArray,\r\n transferedAmountWithSymbolArray: stakedAmountWithSymbolArray,\r\n }\r\n}\r\n\r\nfunction stakeSingle(poolParams: PoolParams, newPool: HTMLElement) {\r\n return async function (event: Event){\r\n event?.preventDefault()\r\n showWait(\"Staking...\")\r\n \r\n let stakeInput = newPool.querySelector(\".main-stake input\") as HTMLInputElement\r\n \r\n\r\n try {\r\n // let unixTimestamp = new Date().getTime() / 1000; //unix timestamp (seconds)\r\n // const contractParams = await poolParams.stakingContractData.getContractParams()\r\n // const isDateInRange = contractParams.farming_start < unixTimestamp && unixTimestamp < contractParams.farming_end\r\n // if (!isDateInRange) throw Error(\"Pools is Closed.\")\r\n \r\n stakeInput.setAttribute(\"disabled\", \"disabled\")\r\n let stakeAmount = parseFloat(stakeInput.value)\r\n //get amount\r\n const min_deposit_amount = 1;\r\n if (isNaN(stakeAmount)) {\r\n throw Error(\"Please Input a Number.\")\r\n }\r\n\r\n const walletAvailable = await poolParams.getWalletAvailable()\r\n if (stakeAmount > parseFloat(walletAvailable)) throw Error(`Only ${walletAvailable} ${poolParams.stakeTokenMetaData.symbol} Available to Stake.`);\r\n const stakeTokenContract = (await poolParams.stakingContractData.getStakeTokenContractList())[0]\r\n const stakeTokenMetadata = await stakeTokenContract.getMetadata()\r\n await poolParams.stakeTokenContract.ft_transfer_call(\r\n poolParams.stakingContractData.contract.contractId, \r\n convertToBase(\r\n stakeAmount.toString(), \r\n stakeTokenMetadata.decimals.toString()\r\n ), \r\n \"to farm\"\r\n )\r\n\r\n // if (loggedWithNarwallets) {\r\n // //clear form\r\n // stakeInput.value = \"\"\r\n // poolParams.resultParams.addStaked(ntoy(stakeAmount))\r\n // refreshPoolInfo(poolParams, newPool)//Question: shouldnt this be in refreshPoolInfo?\r\n \r\n // showSuccess(\"Staked \" + toStringDecMin(stakeAmount) + poolParams.stakeTokenMetaData.symbol)\r\n // }\r\n\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n }\r\n\r\n // re-enable the form, whether the call succeeded or failed\r\n stakeInput.removeAttribute(\"disabled\")\r\n }\r\n}\r\n\r\n// TODO DANI - implement\r\nfunction harvestMultipleOrNFT(poolParams: PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n return async function (event: Event) {\r\n event?.preventDefault()\r\n\r\n let poolID = poolParams.html.id\r\n poolParams.confettiButton?.clickButtonWithRedirection(poolID)\r\n\r\n showWait(\"Harvesting...\")\r\n await poolParams.stakingContractData.contract.withdraw_crop()\r\n\r\n showSuccess(\"Harvested successfully\")\r\n }\r\n}\r\n\r\nfunction harvestSingle(poolParams: PoolParams, newPool: HTMLElement){\r\n return async function (event: Event) {\r\n event?.preventDefault() \r\n showWait(\"Harvesting...\")\r\n let poolID = poolParams.html.id\r\n poolParams.confettiButton?.clickButtonWithRedirection(poolID)\r\n\r\n const poolUserStatus: UserStatusP2 = await poolParams.stakingContractData.getUserStatus()\r\n \r\n let amount = poolUserStatus.getCurrentCheddarRewards()\r\n\r\n await poolParams.stakingContractData.contract.withdraw_crop()\r\n\r\n poolUserStatus.computed = 0n\r\n poolUserStatus.real = 0n\r\n // newPool.querySelector(\".unclaimed-rewards-value\")!.innerHTML = \"0\"\r\n\r\n showSuccess(\"Harvested\" + toStringDecMin(parseFloat(amount)) + \" CHEDDAR\")\r\n }\r\n}\r\n\r\nfunction unstakeSingle(poolParams: PoolParams, newPool: HTMLElement){\r\n return async function (event: Event){\r\n event?.preventDefault()\r\n showWait(\"Unstaking...\")\r\n\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n const stakeTokenContract = (await poolParams.stakingContractData.getStakeTokenContractList())[0]\r\n const stakeTokenMetadata = await stakeTokenContract.getMetadata()\r\n\r\n let unstakeInput = newPool.querySelector(\".main-unstake input\") as HTMLInputElement\r\n\r\n try { \r\n unstakeInput.setAttribute(\"disabled\", \"disabled\")\r\n let unstakeAmount = parseFloat(unstakeInput.value)\r\n const staked = poolUserStatus.staked\r\n const stakedDisplayable = Number(convertToDecimals(staked.toString(), stakeTokenMetadata.decimals, 5))\r\n if (isNaN(unstakeAmount)) {\r\n throw Error(\"Please Input a Number.\")\r\n }\r\n \r\n \r\n if (unstakeAmount > stakedDisplayable) throw Error(`Only ${stakedDisplayable} ${stakeTokenMetadata.symbol} Available to Unstake.`);\r\n await poolParams.stakingContractData.contract.unstake(\r\n convertToBase(\r\n unstakeAmount.toString(), \r\n stakeTokenMetadata.decimals.toString()\r\n )\r\n )\r\n \r\n // if (loggedWithNarwallets) {\r\n // //clear form\r\n // unstakeInput.value = \"\"\r\n \r\n // //refresh acc info\r\n // refreshPoolInfo(poolParams, newPool)\r\n\r\n // poolUserStatus.addStaked(ntoy(unstakeAmount))\r\n // // refreshPoolInfoSingle(poolParams, newPool) //Esta línea la agregué porque pensé que corresponde pero realmente estoy confundido.\r\n // showSuccess(\"Unstaked \" + toStringDecMin(unstakeAmount) + poolParams.stakeTokenMetaData.symbol)\r\n // }\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n }\r\n\r\n // re-enable the form, whether the call succeeded or failed\r\n unstakeInput.removeAttribute(\"disabled\")\r\n }\r\n}\r\n\r\nfunction termsOfUseListener() {\r\n return async function (event: Event) {\r\n event.preventDefault()\r\n showPopup(\"#terms.popup\")\r\n }\r\n}\r\n\r\nfunction showUnstakeResult(unstaked: number) {\r\n showSuccess(\r\n `
Unstaked
${toStringDec(unstaked)}
`\r\n , \"Unstake\"\r\n )\r\n}\r\n\r\nfunction showRemoveLiquidityResult(yoctoCheddar: string) {\r\n showSuccess(\r\n `
cheddar received
${toStringDec(yton(yoctoCheddar))}
`\r\n , \"Withdraw crop\"\r\n )\r\n}\r\n//--------------------------------------\r\n// AutoRefresh\r\nasync function autoRefresh() {\r\n if (wallet && wallet.isConnected()) {\r\n try {\r\n //await refreshPoolInfo()\r\n }\r\n catch (ex) {\r\n //console.log(\"auto-refresh: \" + ex.message)\r\n }\r\n }\r\n}\r\n\r\n//--------------------------------------\r\nfunction showSection(selector: string) {\r\n //hide all sections\r\n qsa(\"main section\").forEach(hide);\r\n \r\n //show section\r\n const section = qs(\"main\").querySelector(selector)\r\n if (section) {\r\n show(section)\r\n selectNav(selector);\r\n }\r\n\r\n //hide burger button\r\n qs(\".burger-button\").classList.remove(\"burger-button--toggle\")\r\n qs(\".navbar-links\").classList.remove(\"show-right__nav\")\r\n}\r\n\r\nfunction selectNav(selector: string) {\r\n //nav\r\n const allNav = qsa(\"nav a\");\r\n allNav.forEach(e => (e as HTMLElement).classList.remove(\"selected\"))\r\n qs(\"nav\").querySelector(selector)?.classList.add(\"selected\")\r\n}\r\n\r\n//after connecting, preserve the amount the user typed on home screen\r\nfunction takeUserAmountFromHome(): string {\r\n let result = \"\";\r\n try {\r\n //move amount typed while not-connected\r\n const notConnectedStakeInput = qsi(\"#stake-form-not-connected input.near\")\r\n result = notConnectedStakeInput.value;\r\n //check also local storage\r\n if (!result) result = localStorage.getItem(\"amount\") || \"\"\r\n if (result) {\r\n qsi(\"#stake input.near\").value = result\r\n notConnectedStakeInput.value = \"\" //clear.- move only once\r\n localStorage.removeItem(\"amount\")\r\n }\r\n }\r\n catch (ex) {\r\n //ignore\r\n }\r\n return result;\r\n}\r\n\r\n// Display the signed-out-flow container\r\nasync function signedOutFlow() {\r\n signedInFlow(disconnectedWallet)\r\n // showSection(\"#home\")\r\n // await refreshAccountInfo();\r\n}\r\n\r\n// Displaying the signed in flow container and fill in account-specific data\r\nasync function signedInFlow(wallet: WalletInterface) {\r\n showSection(\"#home-connected\")\r\n selectNav(\"#home\")\r\n takeUserAmountFromHome()\r\n // await refreshAccountInfoGeneric(poolList)\r\n if(wallet.isConnected()) {\r\n // const poolList = await getPoolList(wallet); \r\n // qs(\".user-info #account-id\").innerText = poolList[0].wallet.getAccountId()\r\n let walletID = wallet.getDisplayableAccountId();\r\n let walletDisplayableID: string\r\n if(walletID.length < 15){\r\n walletDisplayableID = walletID\r\n } else {\r\n walletDisplayableID = walletID.slice(0, 12) + \"...\"\r\n }\r\n\r\n let accountIdElement = qs(\".user-info #account-id\") as HTMLSpanElement\r\n accountIdElement.innerText = walletDisplayableID\r\n\r\n accountIdElement.title = walletID\r\n\r\n // qs(\".not-connected-msg\").classList.add(\"hidden\")\r\n\r\n } else {\r\n qs(\".not-connected-msg\").classList.remove(\"hidden\")\r\n // initButton()\r\n // If user is disconnected it, account Id is the default disconnected message\r\n qs(\".user-info #account-id\").innerText = wallet.getAccountId()\r\n\r\n }\r\n}\r\n\r\nfunction setDefaultFilter (didJustActivate: boolean = false){\r\n let allYourFarmsPools = qsa(\".your-farms\")\r\n let allLivePools = qsa(\".active-pool\")\r\n\r\n const event= new Event (\"click\")\r\n\r\n //If you don´t have farms show live pools as default. If you just activate a pool show live pools as default.\r\n if(didJustActivate){\r\n qs(\"#live-filter\")!.dispatchEvent(event)\r\n\r\n } else if (allYourFarmsPools.length > 0){ /*console.log(\"Your farms\")*/\r\n qs(\"#your-farms-filter\").dispatchEvent(event)\r\n\r\n } else if (allLivePools.length > 0){\r\n // console.log(\"Live\")\r\n qs(\"#live-filter\")!.dispatchEvent(event)\r\n\r\n } else {\r\n // console.log(\"Ended\")\r\n qs(\"#ended-filter\")!.dispatchEvent(event)\r\n }\r\n}\r\n\r\n// Initialize contract & set global variables\r\nasync function initNearWebWalletConnection() {\r\n\r\n // Initialize connection to the NEAR network\r\n const near = await connect(Object.assign({ deps: { keyStore: new keyStores.BrowserLocalStorageKeyStore() } }, nearConfig))\r\n // Initializing Wallet based Account.\r\n nearWebWalletConnection = new WalletConnection(near, null)\r\n nearConnectedWalletAccount = new ConnectedWalletAccount(nearWebWalletConnection, near.connection, nearWebWalletConnection.getAccountId())\r\n //console.log(nearConnectedWalletAccount)\r\n}\r\n\r\nfunction logoutNearWebWallet() {\r\n\r\n nearWebWalletConnection.signOut()\r\n wallet = disconnectedWallet\r\n\r\n // reload page\r\n window.location.replace(window.location.origin + window.location.pathname)\r\n}\r\n\r\nfunction loginNearWebWallet() {\r\n // Allow the current app to make calls to the specified contract on the user's behalf.\r\n // This works by creating a new access key for the user's account and storing\r\n // the private key in localStorage.\r\n //save what the user typed before navigating out\r\n // localStorage.setItem(\"amount\", qsi(\"#stake-form-not-connected input.near\").value)\r\n nearWebWalletConnection.requestSignIn(nearConfig.farms[0].contractName)\r\n}\r\n\r\nfunction loginNarwallets() {\r\n //login is initiated from the chrome-extension\r\n //show step-by-step instructions\r\n window.open(\"http://www.narwallets.com/help/connect-to-web-app\")\r\n}\r\n\r\nfunction showOrHideMaxButton(walletBalance: number, elem: HTMLElement) {\r\n if (walletBalance > 0) {\r\n elem.classList.remove(\"hidden\")\r\n }\r\n else {\r\n elem.classList.add(\"hidden\")\r\n }\r\n}\r\n\r\nfunction setDateInRangeVisualIndication(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT,newPool: HTMLElement, isDateInRange: boolean) {\r\n let dateInRangeIndicator = newPool.querySelector(\".date-in-range-indicator circle\") as HTMLElement\r\n\r\n if(isDateInRange) {\r\n dateInRangeIndicator.classList.remove(\"offDate\")\r\n dateInRangeIndicator.classList.add(\"onDate\")\r\n } else {\r\n dateInRangeIndicator.classList.remove(\"onDate\")\r\n dateInRangeIndicator.classList.add(\"offDate\")\r\n }\r\n \r\n let allUnclaimedRewardsTotalAmount = 0\r\n let allUnclaimedRewardsDetails = newPool.querySelectorAll(\".unclaimed-rewards-info-container .detail-row\") as NodeListOf\r\n allUnclaimedRewardsDetails.forEach(unclaimedRewardDetail => {\r\n let amountContainer = unclaimedRewardDetail.querySelector(\".content\")! as HTMLElement\r\n let amount = Number(amountContainer.innerHTML)\r\n allUnclaimedRewardsTotalAmount += amount\r\n });\r\n\r\n \r\n let unclaimedRewards = newPool.querySelector(\".unclaimed-rewards\")\r\n let unclaimedRewardsValue = newPool.querySelector(\".unclaimed-rewards-value-usd\")\r\n if(allUnclaimedRewardsTotalAmount == 0){\r\n unclaimedRewards!.classList.remove(\"no-opacity\")\r\n unclaimedRewardsValue!.classList.remove(\"no-opacity\")\r\n allUnclaimedRewardsDetails.forEach(unclaimedRewardDetail => {\r\n unclaimedRewardDetail.classList.remove(\"no-opacity\")\r\n });\r\n } else {\r\n unclaimedRewards!.classList.add(\"no-opacity\")\r\n unclaimedRewardsValue!.classList.add(\"no-opacity\")\r\n allUnclaimedRewardsDetails.forEach(unclaimedRewardDetail => {\r\n unclaimedRewardDetail.classList.add(\"no-opacity\")\r\n });\r\n }\r\n}\r\n\r\nasync function refreshPoolInfoSingle(poolParams: PoolParams, newPool: HTMLElement){\r\n await poolParams.refreshAllExtraData()\r\n\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const userPoolParams = await poolParams.stakingContractData.getUserStatus()\r\n await updateDetail(newPool, poolParams.stakeTokenContractList, [contractParams.total_staked], \"total-staked\")\r\n // updateDetail(newPool, poolParams.farmTokenContractList, [poolParams.contractParams.total_farmed], \"apr\")\r\n await updateDetail(newPool, poolParams.farmTokenContractList, convertRewardsRates([contractParams.farming_rate.toString()]), \"rewards-per-day\")\r\n await uptadeDetailIfNecesary(poolParams, newPool, [await poolParams.getFarmTokenContractData()], [userPoolParams.real.toString()], \"unclaimed-rewards\")\r\n\r\n const stakeBalances = await Promise.all(poolParams.stakeTokenContractList.map(stakeCD => stakeCD.getBalance()))\r\n // const stakeBalances = poolParams.stakeTokenContractList.map(stakeCD => stakeCD.getBalanceSync())\r\n await refreshInputAmounts(poolParams, newPool, \"main-stake\", stakeBalances)\r\n await refreshInputAmounts(poolParams, newPool, \"main-unstake\", [userPoolParams.staked.toString()])\r\n\r\n if(userPoolParams.staked == 0n) {\r\n newPool.classList.remove(\"your-farms\")\r\n let doesPoolNeedDeposit = await needsStorageDeposit(poolParams.stakeTokenContract)\r\n \r\n const stakeTokenList = poolParams.stakeTokenContractList\r\n for(let i = 0; i < stakeTokenList.length && !doesPoolNeedDeposit; i++) {\r\n const tokenContract = stakeTokenList[i].contract!\r\n const doesTokenNeedStorageDeposit = await needsStorageDeposit(tokenContract)\r\n if (doesTokenNeedStorageDeposit) {\r\n doesPoolNeedDeposit = true\r\n }\r\n }\r\n\r\n if(!doesPoolNeedDeposit && newPool.classList.contains(\"inactive-pool\")) {\r\n newPool.querySelector(\"#activate\")?.classList.add(\"hidden\")\r\n } else {\r\n newPool.querySelector(\"#activate\")?.classList.remove(\"hidden\")\r\n }\r\n }\r\n\r\n const now = Date.now() / 1000\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n if(!isDateInRange) { \r\n resetSinglePoolListener(poolParams, newPool, refreshPoolInfoSingle, -1)\r\n }\r\n\r\n setDateInRangeVisualIndication(poolParams, newPool, isDateInRange)\r\n}\r\n\r\nasync function refreshNFTOrMultiplePoolInfo(poolParams: PoolParamsP3|PoolParamsNFT, newPool: HTMLElement){\r\n await poolParams.refreshAllExtraData()\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n const farmTokenContractList = await poolParams.stakingContractData.getFarmTokenContractList()\r\n\r\n if(poolParams instanceof PoolParamsP3) {\r\n await updateDetail(newPool, await stakeTokenContractList, contractParams.total_staked, \"total-staked\")\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n newPool.querySelector(\".total-staked-value-usd\")!.innerHTML = `${contractParams.total_staked} NFT's`\r\n }\r\n // updateDetail(newPool, poolParams.farmTokenContractList, poolParams.contractParams.total_farmed, \"apr\")\r\n const rewardsTokenDataArray = await poolParams.getRewardsTokenDetail()\r\n const rewardsPerDay = rewardsTokenDataArray.map(data => data.rewardsPerDayBN!.toString())\r\n await updateDetail(newPool, farmTokenContractList, rewardsPerDay, \"rewards-per-day\")\r\n await updateDetail(newPool, farmTokenContractList, poolUserStatus.farmed_tokens, \"unclaimed-rewards\")\r\n\r\n const now = Date.now() / 1000\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n\r\n if(poolParams instanceof PoolParamsP3) {\r\n const stakeBalances = await Promise.all(stakeTokenContractList.map(stakeCD => stakeCD.getBalance()))\r\n await refreshInputAmounts(poolParams, newPool, \"main-stake\", stakeBalances)\r\n // On PoolParamsP3 the poolUserStatus.stake_tokens is always a string[]\r\n await refreshInputAmounts(poolParams, newPool, \"main-unstake\", poolUserStatus.stake_tokens as string[])\r\n\r\n if(!isDateInRange) {\r\n resetMultiplePoolListener(poolParams, newPool, refreshNFTOrMultiplePoolInfo, -1)\r\n }\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n if(!isDateInRange) {\r\n resetNFTPoolListener(poolParams, newPool, refreshNFTOrMultiplePoolInfo, -1)\r\n }\r\n }\r\n\r\n setBoostDisplay(poolParams, newPool)\r\n\r\n setDateInRangeVisualIndication(poolParams, newPool, isDateInRange)\r\n}\r\n\r\nasync function refreshInputAmounts(poolParams: PoolParams|PoolParamsP3, newPool: HTMLElement, className: string, amounts: U128String[]) {\r\n const inputArray = newPool.querySelectorAll(`.${className} .token-input-container`)\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < inputArray.length; i++) {\r\n const input = inputArray[i]\r\n const tokenContractData: TokenContractData = stakeTokenContractList[i]\r\n const balance = amounts[i]\r\n const metadata = await tokenContractData.getMetadata()\r\n const balanceDisplayable = convertToDecimals(balance, metadata.decimals, 5)\r\n input.querySelector(\".value\")!.innerHTML = balanceDisplayable\r\n\r\n const maxButton = input.querySelector(\".max-button\") as HTMLElement\r\n showOrHideMaxButton(Number(balanceDisplayable), maxButton)\r\n }\r\n}\r\n\r\nfunction convertRewardsRates(rates: string[]) {\r\n return rates.map(rate => (BigInt(rate) * 60n * 24n).toString())\r\n}\r\n\r\nasync function updateDetail(newPool: HTMLElement, contractList: TokenContractData[], totals: string[], baseClass: string) {\r\n // CHECK 2\r\n const totalInUsd: string = await convertToUSDMultiple(contractList, totals)\r\n newPool.querySelector(`.${baseClass}-row .${baseClass}-value-usd`)!.innerHTML = `$ ${totalInUsd}`\r\n const totalDetailsElements: NodeListOf = newPool.querySelectorAll(`.${baseClass}-info-container .detail-row`)\r\n for(let i = 0; i < totalDetailsElements.length; i++) {\r\n const row = totalDetailsElements[i]\r\n const tokenMetadata = await contractList[i].getMetadata()\r\n const content = convertToDecimals(totals[i], tokenMetadata.decimals, 5)\r\n row.querySelector(\".content\")!.innerHTML = content\r\n }\r\n}\r\n\r\nasync function uptadeDetailIfNecesary(poolParams: PoolParams|PoolParamsP3, newPool: HTMLElement, contractList: TokenContractData[], totals: string[], baseClass: string) {\r\n let doesPoolNeedDeposit = await needsStorageDeposit(poolParams.stakingContractData.contract)\r\n \r\n const stakeTokenList = poolParams.stakeTokenContractList\r\n for(let i = 0; i < stakeTokenList.length && !doesPoolNeedDeposit; i++) {\r\n const tokenContract = stakeTokenList[i].contract!\r\n const doesTokenNeedStorageDeposit = await needsStorageDeposit(tokenContract)\r\n if (doesTokenNeedStorageDeposit) {\r\n doesPoolNeedDeposit = true\r\n }\r\n }\r\n\r\n if (!doesPoolNeedDeposit) {\r\n await updateDetail(newPool, contractList, totals, baseClass)\r\n }\r\n}\r\n\r\n\r\nasync function refreshAccountInfoGeneric(poolList: Array) {\r\n poolList.forEach(poolParams => {\r\n //refreshPoolInfo(poolParams)\r\n });\r\n}\r\n\r\n/// when the user chooses \"connect to web-page\" in the narwallets-chrome-extension\r\nfunction narwalletConnected(ev: CustomEvent) {\r\n wallet = narwallets;\r\n loggedWithNarwallets = true\r\n signedInFlow(wallet)\r\n}\r\n\r\n/// when the user chooses \"disconnect from web-page\" in the narwallets-chrome-extension\r\nfunction narwalletDisconnected(ev: CustomEvent) {\r\n loggedWithNarwallets = false\r\n wallet = disconnectedWallet;\r\n\r\n signedOutFlow()\r\n}\r\n\r\nfunction calculateAmountHaveStaked(stakeRates: bigint[], amount: bigint, amountIndex: number, newAmountIndex: number) {\r\n\tconst amountToStake = amount * stakeRates[newAmountIndex] / stakeRates[amountIndex]\r\n\treturn amountToStake\r\n}\r\n\r\nfunction calculateAmountToStake(stakeRates: bigint[], totalStaked: bigint[], amount: bigint, inputIndex: number, outputIndex: number): bigint {\r\n\tconst totalAmountStakedWithThisStake = totalStaked[inputIndex] + amount\r\n const amountToStake: bigint = totalAmountStakedWithThisStake * stakeRates[inputIndex] / stakeRates[outputIndex] - totalStaked[outputIndex]\r\n return amountToStake > 0n ? amountToStake : 0n\r\n}\r\n\r\n\r\nfunction calculateAmountToUnstake(stakeRates: bigint[], totalStaked: bigint[], amount: bigint, alreadySetIndex: number, newIndex: number) {\r\n\tconst totalAmountStakedWithThisUnstake = totalStaked[alreadySetIndex] - amount\r\n const output = totalStaked[newIndex] - totalAmountStakedWithThisUnstake * stakeRates[alreadySetIndex] / stakeRates[newIndex]\r\n return output > 0n ? output : 0n\r\n}\r\n\r\nfunction autoFillStakeAmount(poolParams: PoolParamsP3, pool: HTMLElement, inputRoute: string, indexInputToken: number) {\r\n return async function (event: Event) {\r\n event.preventDefault()\r\n const value1 = (event.target as HTMLInputElement).value\r\n // const amountToStake = BigInt(value1)\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n const inputTokenMetadata = await stakeTokenContractList[indexInputToken].getMetadata()\r\n const amountToStakingOrUnstaking = BigInt(convertToBase(value1, inputTokenMetadata.decimals.toString()))\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n\r\n let inputs: NodeListOf = pool.querySelectorAll(`${inputRoute} input`)! as NodeListOf\r\n const stakeRates = contractParams.stake_rates.map((rate: U128String) => BigInt(rate)) \r\n const totalStakedByUser = poolUserStatus.stake_tokens.map(total => BigInt(total))\r\n for(let indexOutputToken = 0; indexOutputToken < inputs.length; indexOutputToken++) {\r\n if(indexOutputToken != indexInputToken) {\r\n let amountToTransferSecondaryBN\r\n if(inputRoute.includes(\"unstake\")) {\r\n amountToTransferSecondaryBN = calculateAmountToUnstake(stakeRates, totalStakedByUser, amountToStakingOrUnstaking, indexInputToken, indexOutputToken)\r\n } else {\r\n amountToTransferSecondaryBN = calculateAmountToStake(stakeRates, totalStakedByUser, amountToStakingOrUnstaking, indexInputToken, indexOutputToken)\r\n \r\n }\r\n const currentStakeTokenMetadata = await stakeTokenContractList[indexOutputToken].getMetadata()\r\n const amountToStakeSecondary = convertToDecimals(amountToTransferSecondaryBN, currentStakeTokenMetadata.decimals, 5)\r\n // const amountToStakeSecondary\r\n inputs.item(indexOutputToken).value = amountToStakeSecondary\r\n }\r\n }\r\n }\r\n}\r\n\r\nasync function addPoolSingle(poolParams: PoolParams, newPool: HTMLElement): Promise {\r\n const contractParams: ContractParams = await poolParams.stakingContractData.getContractParams()\r\n const userStatus = await poolParams.stakingContractData.getUserStatus()\r\n const stakeTokenContractData: TokenContractData = await poolParams.getStakeTokenContractData();\r\n const farmTokenContractData: TokenContractData = await poolParams.getFarmTokenContractData();\r\n\r\n\r\n var metaData = await poolParams.stakeTokenContractList[0].getMetadata()\r\n let iconElem = newPool.querySelectorAll(\"#token-logo-container img\")\r\n iconElem.forEach(icon => {\r\n icon!.setAttribute(\"src\", metaData.icon || \"\");\r\n });\r\n \r\n await addInput(newPool, stakeTokenContractData, \"stake\")\r\n await addInput(newPool, stakeTokenContractData, \"unstake\", userStatus.staked.toString())\r\n\r\n await addHeader(poolParams, newPool)\r\n \r\n let unclaimedRewards = await getUnclaimedRewardsInUSDSingle(poolParams)\r\n\r\n const now = Date.now() / 1000\r\n const isDateInRange = now < contractParams.farming_end\r\n\r\n if (Number(unclaimedRewards.toFixed(7)) != 0) {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ ${unclaimedRewards.toFixed(7).toString()}`\r\n } else if ((Number(unclaimedRewards.toFixed(7)) != 0) && isDateInRange) {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ 0`\r\n } else {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ -`\r\n }\r\n\r\n\r\n const totalStakedInUsd = await convertToUSDMultiple([stakeTokenContractData], [contractParams.total_staked])\r\n const rewardsPerDayInUsd = await convertToUSDMultiple([farmTokenContractData], [(BigInt(contractParams.farming_rate) * 60n * 24n).toString()])\r\n\r\n newPool.querySelector(\".total-staked-value-usd\")!.innerHTML = `$ ${totalStakedInUsd}`\r\n newPool.querySelector(\".rewards-per-day-value-usd\")!.innerHTML = `$ ${rewardsPerDayInUsd}`\r\n \r\n const apr = calculateAPR(totalStakedInUsd, rewardsPerDayInUsd, isDateInRange)\r\n newPool.querySelector(\".apr-value\")!.innerHTML = `${apr}%`\r\n\r\n addSinglePoolListeners(poolParams, newPool)\r\n}\r\n\r\nfunction calculateAPR(totalStakedInUsd: string, rewardsPerDayInUsd: string, isDateInRange: boolean): string {\r\n if(!isDateInRange) {\r\n return \"-\"\r\n } else {\r\n return (365 * Number(rewardsPerDayInUsd) / Number(totalStakedInUsd) * 100).toFixed(2)\r\n }\r\n\r\n}\r\n\r\nasync function addTokenFarmLogos(poolParams: PoolParams|PoolParamsP3, header: HTMLElement) {\r\n let tokenContractDataArray: TokenContractData[]\r\n if(poolParams instanceof PoolParams) {\r\n tokenContractDataArray = poolParams.stakeTokenContractList\r\n } else {\r\n tokenContractDataArray = await poolParams.stakingContractData.getStakeTokenContractList()\r\n } \r\n // tokenContractDataArray: TokenContractData[] = poolParams.stakingContractData\r\n const logoContainer = header.querySelector(\".token-logo-container\")! as HTMLElement\r\n logoContainer.innerHTML = \"\"\r\n\r\n let i = 0\r\n for(; i < tokenContractDataArray.length; i++) {\r\n const tokenIconData = tokenContractDataArray[i]\r\n let metaData \r\n metaData = await tokenIconData.getMetadata()\r\n \r\n addLogo(metaData, logoContainer, i)\r\n }\r\n logoContainer.classList.add(`have-${tokenContractDataArray.length}-elements`)\r\n}\r\n\r\nasync function addNFTFarmLogo(poolParams: PoolParamsNFT, header: HTMLElement) { \r\n // NFTContractData: TokenContractData[] = poolParams.stakingContractData\r\n const logoContainer = header.querySelector(\".token-logo-container\")! as HTMLElement\r\n logoContainer.innerHTML = \"\"\r\n\r\n const tokenLogoElement = qs(\".generic-token-logo-img\")\r\n let newTokenLogoElement = tokenLogoElement.cloneNode(true) as HTMLElement\r\n\r\n // For the time being there is only one token\r\n // const baseUrl = poolParams.stakingContractData.nftBaseUrl[0]\r\n const stakeNFTContractList = await poolParams.stakingContractData.getStakeNFTContractList()\r\n const metadata: NFTMetadata = await stakeNFTContractList[0].getMetadata()\r\n \r\n let imgUrl = metadata.icon\r\n if(!imgUrl) {\r\n imgUrl = poolParams.config.logo\r\n }\r\n newTokenLogoElement?.setAttribute(\"src\", imgUrl)\r\n newTokenLogoElement?.setAttribute(\"alt\", metadata.name)\r\n\r\n toggleGenericClass(newTokenLogoElement)\r\n newTokenLogoElement.classList.add(`farmed-token-logo`)\r\n logoContainer.append(newTokenLogoElement)\r\n \r\n logoContainer.classList.add(`have-1-elements`)\r\n}\r\n\r\nasync function addAllLogos(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, header: HTMLElement) {\r\n if(poolParams instanceof PoolParams || poolParams instanceof PoolParamsP3) {\r\n addTokenFarmLogos(poolParams, header)\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n addNFTFarmLogo(poolParams, header)\r\n }\r\n}\r\n\r\nasync function addHeader(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n const genericHeader = qs(\".generic-new-pool-header\")\r\n const newHeader = genericHeader.cloneNode(true) as HTMLElement\r\n\r\n await addAllLogos(poolParams, newHeader)\r\n\r\n const poolContainer = newPool.querySelector(\"#pool-container\") as HTMLElement\r\n const tokenPoolStatsContainer = newPool.querySelector(\"#token-pool-stats\") as HTMLElement\r\n\r\n \r\n poolContainer.prepend(newHeader)\r\n \r\n toggleGenericClass(newHeader)\r\n const newTokenPoolStats = newHeader.cloneNode(true) as HTMLElement\r\n tokenPoolStatsContainer.prepend(newTokenPoolStats)\r\n}\r\n\r\nasync function addMultiplePoolListeners(poolParams: PoolParamsP3, newPool: HTMLElement) {\r\n addAllCommonListeners(poolParams, newPool)\r\n let tokenSymbols = []\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n for(let i=0; i < stakeTokenContractList.length; i++){ // Harvest button listener\r\n const contractData = stakeTokenContractList[i]\r\n const currentStakeTokenMetadata = await contractData.getMetadata()\r\n tokenSymbols.push(`${currentStakeTokenMetadata.symbolForHtml.toLowerCase()}`)\r\n }\r\n\r\n newPool.querySelector(\".confetti-button\")?.addEventListener(\"click\", harvestMultipleOrNFT(poolParams, newPool))\r\n\r\n\r\n for (let i=0; i < tokenSymbols.length; i++){ // Autofill inputs with correct rates\r\n newPool.querySelector(`.main-stake .${tokenSymbols[i]}-input input`)!.addEventListener(\"input\", autoFillStakeAmount(poolParams, newPool, `.main-stake`, i))\r\n newPool.querySelector(`.main-unstake .${tokenSymbols[i]}-input input`)!.addEventListener(\"input\", autoFillStakeAmount(poolParams, newPool, `.main-unstake`, i))\r\n }\r\n\r\n // Stake/unstake buttons\r\n newPool.querySelector(\"#stake-button\")?.addEventListener(\"click\", stakeMultiple(poolParams, newPool))\r\n newPool.querySelector(\"#unstake-button\")?.addEventListener(\"click\", unstakeMultiple(poolParams, newPool))\r\n \r\n setAllInputMaxButtonListeners(newPool)\r\n // Refresh every 5 seconds if it's live\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n let refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshNFTOrMultiplePoolInfo.bind(null, poolParams, newPool), refreshTime)\r\n } \r\n \r\n //Info to transfer so we can check what pool is loading the NFTs\r\n let boostButton = newPool.querySelector(\".boost-button\")! as HTMLElement;\r\n let boostButtonId = boostButton.id\r\n boostButton.addEventListener(\"click\", showNFTGrid(poolParams, boostButtonId))\r\n\r\n // Hover events\r\n standardHoverToDisplayExtraInfo(newPool, \"total-staked\")\r\n // standardHoverToDisplayExtraInfo(newPool, \"apr\")\r\n standardHoverToDisplayExtraInfo(newPool, \"rewards-per-day\")\r\n standardHoverToDisplayExtraInfo(newPool, \"reward-tokens\")\r\n standardHoverToDisplayExtraInfo(newPool, \"unclaimed-rewards\")\r\n}\r\n\r\nasync function addNFTPoolListeners(poolParams: PoolParamsNFT, newPool: HTMLElement) {\r\n addAllCommonListeners(poolParams, newPool)\r\n let tokenSymbols = []\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n for(let i=0; i < stakeTokenContractList.length; i++){ // Harvest button listener\r\n const contractData = stakeTokenContractList[i]\r\n const currentStakeTokenMetadata = await contractData.getMetadata()\r\n tokenSymbols.push(`${currentStakeTokenMetadata.symbolForHtml.toLowerCase()}`)\r\n }\r\n newPool.querySelector(\".confetti-button\")?.addEventListener(\"click\", harvestMultipleOrNFT(poolParams, newPool))\r\n\r\n let stakeUnstakeNftButton = newPool.querySelector(\"#stake-unstake-nft\")! as HTMLButtonElement\r\n let stakeUnstakeNftButtonId = stakeUnstakeNftButton.id\r\n stakeUnstakeNftButton.addEventListener(\"click\", async function() {\r\n stakeUnstakeNftButton.disabled = true;\r\n stakeUnstakeNftButton.innerHTML = \"Loading...\";\r\n await showStakeUnstakeNFTGrid(poolParams, stakeUnstakeNftButtonId);\r\n stakeUnstakeNftButton.disabled = false;\r\n stakeUnstakeNftButton.innerHTML = \"STAKE/UNSTAKE\";\r\n });\r\n\r\n // Refresh every 60 seconds if it's live\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n let refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshNFTOrMultiplePoolInfo.bind(null, poolParams, newPool), refreshTime)\r\n } \r\n \r\n //Info to transfer so we can check what pool is loading the NFTs\r\n let boostButton = newPool.querySelector(\".boost-button\")! as HTMLElement;\r\n let boostButtonId = boostButton.id\r\n boostButton.addEventListener(\"click\", showNFTGrid(poolParams, boostButtonId))\r\n\r\n // Hover events\r\n standardHoverToDisplayExtraInfo(newPool, \"total-staked\")\r\n // standardHoverToDisplayExtraInfo(newPool, \"apr\")\r\n standardHoverToDisplayExtraInfo(newPool, \"rewards-per-day\")\r\n standardHoverToDisplayExtraInfo(newPool, \"reward-tokens\")\r\n standardHoverToDisplayExtraInfo(newPool, \"unclaimed-rewards\")\r\n}\r\n\r\nfunction addPoolTokensDescription (newPool: HTMLElement, poolParams: PoolParams|PoolParamsP3|PoolParamsNFT) {\r\n const legendContainer = newPool.querySelector(\".pool-legend\") as HTMLElement\r\n let poolLegends = poolParams.poolDescription;\r\n if(poolLegends != undefined){\r\n for(let i=0; i < poolLegends.length; i++){\r\n const descriptionLinks = poolParams.descriptionLink;\r\n \r\n if(descriptionLinks != undefined){\r\n poolLegends[i] += ` here.
`\r\n }\r\n\r\n legendContainer.innerHTML += poolLegends[i]\r\n legendContainer.classList.remove(\"hidden\")\r\n }\r\n }\r\n}\r\n\r\nasync function addNFTPool(poolParams: PoolParamsNFT, newPool: HTMLElement): Promise {\r\n const farmTokenContractList: TokenContractData[] = await poolParams.stakingContractData.getFarmTokenContractList()\r\n let contractParams: NFTStakingContractParams = await poolParams.stakingContractData.getContractParams()\r\n\r\n await addHeader(poolParams, newPool)\r\n\r\n const rewardsTokenDataArray = await poolParams.getRewardsTokenDetail()\r\n const rewardsPerDay = rewardsTokenDataArray.map(data => data.rewardsPerDayBN!.toString())\r\n const rewardsPerDayInUsd = await convertToUSDMultiple(farmTokenContractList, rewardsPerDay)\r\n newPool.querySelector(\".rewards-per-day-value-usd\")!.innerHTML = `$ ${rewardsPerDayInUsd}`\r\n\r\n if(!poolParams.config.noBoost) {\r\n newPool.querySelector(\".boost-button\")!.classList.remove(\"hidden\")\r\n } else {\r\n newPool.querySelector(\".equal-width-than-boost-button\")!.classList.add(\"hidden\")\r\n let harvestSection: HTMLElement = newPool.querySelector(\".harvest-section\")!\r\n harvestSection.style.justifyContent = \"center\"\r\n }\r\n newPool.querySelector(\".structural-in-simple-pools\")!.classList.add(\"hidden\")\r\n\r\n //TODO DANI check apr and staked value\r\n // let farmTokenContractList = await poolParams.stakingContractData.getFarmTokenContractList()\r\n \r\n const now = Date.now() / 1000\r\n const isDateInRange = now < contractParams.farming_end\r\n \r\n let farmTokenRateInUSD = await convertToUSDMultiple(farmTokenContractList, contractParams.farm_token_rates)\r\n let NFTDepositedx100 = Number(contractParams.total_staked[0]) * 100\r\n // const apr = rewards. emission_rate * minutes * hours * 365 / * 100\r\n let apr = calculateAPR(farmTokenRateInUSD, NFTDepositedx100.toString(), isDateInRange)\r\n newPool.querySelector(\".apr-value\")!.innerHTML = `${apr}%`\r\n\r\n setBoostDisplay(poolParams, newPool)\r\n\r\n addNFTPoolListeners(poolParams, newPool) \r\n\r\n refreshNFTOrMultiplePoolInfo(poolParams, newPool)\r\n}\r\n\r\nasync function addPoolMultiple(poolParams: PoolParamsP3, newPool: HTMLElement): Promise {\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n const farmTokenContractList = await poolParams.stakingContractData.getFarmTokenContractList()\r\n await addHeader(poolParams, newPool)\r\n let tokenSymbols = []\r\n await poolParams.getWalletAvailable()\r\n for(let i=0; i < stakeTokenContractList.length; i++){\r\n const contractData = stakeTokenContractList[i]\r\n const metaData = await contractData.getMetadata()\r\n\r\n await addInput(newPool, contractData, \"stake\")\r\n await addInput(newPool, contractData, \"unstake\", poolUserStatus.stake_tokens[i])\r\n \r\n tokenSymbols.push(`${metaData.symbolForHtml.toLowerCase()}`)\r\n }\r\n\r\n //Show boost button patch (since simple pools will disapear and they have problems with the boost button)\r\n newPool.querySelector(\".boost-button\")!.classList.remove(\"hidden\")\r\n newPool.querySelector(\".structural-in-simple-pools\")!.classList.add(\"hidden\")\r\n\r\n \r\n const unclaimedRewards = Number(await convertToUSDMultiple(farmTokenContractList, poolUserStatus.farmed_tokens))\r\n // const unclaimedRewards = Number(await convertToUSDMultiple(poolParams.farmTokenContractList, poolParams.resultParams.farmed))\r\n\r\n const now = Date.now() / 1000\r\n const isDateInRange = now < contractParams.farming_end\r\n\r\n if (Number(unclaimedRewards.toFixed(7)) != 0) {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ ${unclaimedRewards.toFixed(7).toString()}`\r\n } else if ((Number(unclaimedRewards.toFixed(7)) != 0) && isDateInRange) {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ 0`\r\n } else {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ -`\r\n }\r\n \r\n const totalStakedInUsd: string = await convertToUSDMultiple(stakeTokenContractList, contractParams.total_staked)\r\n \r\n // CHECK!\r\n const legendContainer = newPool.querySelector(\".pool-legend\") as HTMLElement\r\n let poolLegends = poolParams.poolDescription;\r\n if(poolLegends != undefined){\r\n for(let i=0; i < poolLegends.length; i++){\r\n const descriptionLinks = poolParams.descriptionLink;\r\n \r\n if(descriptionLinks != undefined){\r\n poolLegends[i] += ` here.`\r\n }\r\n\r\n legendContainer.innerHTML += poolLegends[i] + \"
\"\r\n legendContainer.classList.remove(\"hidden\")\r\n }\r\n }\r\n\r\n\r\n const rewardsTokenDataArray = await poolParams.getRewardsTokenDetail()\r\n const rewardsPerDay = rewardsTokenDataArray.map(data => data.rewardsPerDayBN!.toString())\r\n const rewardsPerDayInUsd = await convertToUSDMultiple(farmTokenContractList, rewardsPerDay)\r\n newPool.querySelector(\".total-staked-row .total-staked-value-usd\")!.innerHTML = `$ ${totalStakedInUsd}`\r\n // newPool.querySelector(\".apr-row .apr-value\")!.innerHTML = `$ ${totalFarmedInUsd}`\r\n newPool.querySelector(\".rewards-per-day-value-usd\")!.innerHTML = `$ ${rewardsPerDayInUsd}`\r\n\r\n const apr = calculateAPR(totalStakedInUsd, rewardsPerDayInUsd, isDateInRange)\r\n newPool.querySelector(\".apr-value\")!.innerHTML = `${apr}%`\r\n\r\n setBoostDisplay(poolParams, newPool)\r\n\r\n addMultiplePoolListeners(poolParams, newPool)\r\n}\r\n\r\nasync function setBoostDisplay(poolParams: PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n const poolUserStatus: PoolUserStatusP3|PoolUserStatusP3NFT = await poolParams.stakingContractData.getUserStatus()\r\n let hasNFTStaked\r\n if(\"boost_nfts\" in poolUserStatus) {\r\n hasNFTStaked = poolUserStatus.boost_nfts != ''\r\n } else {\r\n hasNFTStaked = poolUserStatus.cheddy_nft != ''\r\n }\r\n // hasNFTStaked = poolUserStatus.cheddy_nft != ''\r\n if(hasNFTStaked) {\r\n newPool.querySelector(\".boost-button svg\")!.setAttribute(\"class\", \"full\")\r\n newPool.querySelector(\".boost-button span\")!.innerHTML = \"BOOSTED\"\r\n } else {\r\n newPool.querySelector(\".boost-button svg\")!.setAttribute(\"class\", \"empty\")\r\n newPool.querySelector(\".boost-button span\")!.innerHTML = \"BOOST\"\r\n }\r\n}\r\n\r\nfunction addFocusClass(input:HTMLElement) {\r\n return function (event:Event) {\r\n event?.preventDefault\r\n input.classList.toggle(\"focused\")\r\n }\r\n}\r\n\r\nasync function addInput(newPool: HTMLElement, contractData: TokenContractData, action: string, stakedAmount?: U128String) {\r\n let inputContainer = qs(\".generic-token-input-container\")\r\n var newInputContainer = inputContainer.cloneNode(true) as HTMLElement\r\n let inputRowContainer = newInputContainer.querySelector(\".input-container\") as HTMLElement\r\n let infoRowContainer = newInputContainer.querySelector(\".available-info\") as HTMLElement\r\n let input = newInputContainer.querySelector(\"input\") as HTMLElement\r\n \r\n const metaData = await contractData.getMetadata()\r\n newInputContainer.classList.remove(\"generic-token-input-container\")\r\n newInputContainer.classList.add(\"token-input-container\")\r\n newInputContainer.classList.add(`${metaData.symbolForHtml.toLowerCase()}-input`)\r\n newInputContainer.classList.remove(`hidden`)\r\n\r\n newInputContainer.querySelector(\".available-info span\")!.innerHTML = `Available to ${action}`\r\n newInputContainer.querySelector(\".amount-available\")?.classList.add(action)\r\n\r\n input!.addEventListener(\"focus\", addFocusClass(inputRowContainer!))\r\n input!.addEventListener(\"blur\", addFocusClass(inputRowContainer!))\r\n \r\n let inputLogoContainer = newInputContainer.querySelector(\".input-container .token-logo\") as HTMLElement\r\n let amountAvailableValue = newInputContainer.querySelector(\".amount-available .value\")\r\n let maxButton = infoRowContainer.querySelector(\".max-button\") as HTMLElement\r\n\r\n if (metaData.icon != null){\r\n if(metaData.icon.startsWith(\"data:image\")) {\r\n let tokenLogoElement = newInputContainer.querySelector(\"img.token-logo\")\r\n tokenLogoElement?.setAttribute(\"src\", metaData.icon)\r\n inputLogoContainer?.classList.remove(\"hidden\")\r\n } else if(metaData.icon.startsWith(\" {\r\n elem.classList.add(\"hidden\")\r\n })\r\n}\r\n\r\nasync function addAllCommonListeners(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n let infoIcon = newPool.querySelector(\".new-pool-header .information-icon-container\")! as HTMLElement;\r\n let poolStats = newPool.querySelector(\"#token-pool-stats\")! as HTMLElement;\r\n \r\n infoIcon.addEventListener(\"mouseover\", showElement(poolStats));\r\n poolStats.addEventListener(\"mouseover\", showElement(poolStats));\r\n poolStats.addEventListener(\"mouseout\", hideElement(poolStats));\r\n\r\n // let harvestButton = newPool.querySelector(\".confetti-button\") as HTMLButtonElement\r\n\r\n // //You can check how to configure it in https://party.js.org/\r\n // let confettiConfiguration = {\r\n // count: party.variation.range(25,30),\r\n // spread: party.variation.range(20,25)\r\n // }\r\n\r\n // harvestButton.addEventListener(\"click\", function () {\r\n // party.confetti(harvestButton, confettiConfiguration);\r\n // });\r\n\r\n let doesNeedStorageDeposit : boolean\r\n if(poolParams instanceof PoolParams) {\r\n doesNeedStorageDeposit = false\r\n } else {\r\n doesNeedStorageDeposit = await needsStorageDeposit(poolParams.stakingContractData.contract)\r\n }\r\n // Displays staking/unstaking when hovering on the pool(only in Live and Your Farms)\r\n \r\n if(!(poolParams instanceof PoolParamsNFT) && !doesNeedStorageDeposit && !newPool.classList.contains(\"inactive-pool\")) {\r\n let vanishingIndicator = newPool.querySelector(\"#vanishing-indicator\") as HTMLElement\r\n vanishingIndicator?.classList.remove(\"transparent\")\r\n vanishingIndicator?.classList.add(\"visual-tool-expanding-indication-hidden\")\r\n newPool.addEventListener(\"mouseover\", paintOrUnPaintElement(\"visual-tool-expanding-indication-hidden\", vanishingIndicator));\r\n newPool.addEventListener(\"mouseout\", paintOrUnPaintElement(\"visual-tool-expanding-indication-hidden\",vanishingIndicator)); \r\n\r\n let expandButtonStakingUnstaking = newPool.querySelector(\".expand-button\") as HTMLElement\r\n newPool.addEventListener(\"mouseover\", makeBlinkElement(expandButtonStakingUnstaking));\r\n newPool.addEventListener(\"mouseout\", makeBlinkElement(expandButtonStakingUnstaking));\r\n }\r\n}\r\n\r\nasync function addSinglePoolListeners(poolParams: PoolParams, newPool: HTMLElement) {\r\n addAllCommonListeners(poolParams, newPool)\r\n // Harvest button listener\r\n const contractData = await poolParams.getStakeTokenContractData()\r\n const metaData = await contractData.getMetadata()\r\n newPool.querySelector(\".confetti-button\")?.addEventListener(\"click\", harvestSingle(poolParams, newPool))\r\n // Token symbols is done this way to emulate multiple case. Single case will be removed shortly\r\n let tokenSymbols = []\r\n tokenSymbols.push(`${metaData.symbol.toLowerCase()}`)\r\n newPool.querySelector(\".confetti-button\")?.addEventListener(\"click\", harvestSingle(poolParams, newPool))\r\n\r\n // Stake/unstake buttons\r\n newPool.querySelector(\"#stake-button\")?.addEventListener(\"click\", stakeSingle(poolParams, newPool))\r\n newPool.querySelector(\"#unstake-button\")?.addEventListener(\"click\", unstakeSingle(poolParams, newPool))\r\n \r\n setAllInputMaxButtonListeners(newPool)\r\n // Refresh every 5 seconds if it's live\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n let refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshPoolInfoSingle.bind(null, poolParams, newPool), refreshTime)\r\n }\r\n \r\n\r\n // Hover events\r\n standardHoverToDisplayExtraInfo(newPool, \"total-staked\")\r\n // standardHoverToDisplayExtraInfo(newPool, \"apr\")\r\n standardHoverToDisplayExtraInfo(newPool, \"rewards-per-day\")\r\n standardHoverToDisplayExtraInfo(newPool, \"reward-tokens\")\r\n standardHoverToDisplayExtraInfo(newPool, \"unclaimed-rewards\")\r\n}\r\n\r\nasync function resetSinglePoolListener(poolParams: PoolParams, pool: HTMLElement, refreshFunction: (pp: PoolParams, np: HTMLElement) => void, refreshIntervalId: number) {\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n let newPool = pool.cloneNode(true) as HTMLElement\r\n hideAllDynamicElements(newPool)\r\n addFilterClasses(poolParams, newPool)\r\n \r\n addSinglePoolListeners(poolParams, newPool)\r\n if(newPool.classList.contains(\"inactive-pool\")) {\r\n displayInactiveP2P3Pool(newPool)\r\n } else {\r\n displayActivePool(poolParams, newPool)\r\n }\r\n if(refreshIntervalId != -1) {\r\n clearInterval(refreshIntervalId)\r\n const now = Date.now() / 1000\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshFunction.bind(null, poolParams, newPool), 5000)\r\n }\r\n \r\n }\r\n\r\n pool.replaceWith(newPool)\r\n\r\n const event = new Event('click')\r\n qs(\".activeFilterButton\").dispatchEvent(event)\r\n}\r\n\r\nasync function resetMultiplePoolListener(poolParams: PoolParamsP3, pool: HTMLElement, refreshFunction: (pp: PoolParamsP3, np: HTMLElement) => void, refreshIntervalId: number) {\r\n let newPool = pool.cloneNode(true) as HTMLElement\r\n hideAllDynamicElements(newPool)\r\n addFilterClasses(poolParams, newPool)\r\n addMultiplePoolListeners(poolParams, newPool)\r\n \r\n if(newPool.classList.contains(\"inactive-pool\")) {\r\n displayInactiveP2P3Pool(newPool)\r\n } else {\r\n displayActivePool(poolParams, newPool)\r\n }\r\n if(refreshIntervalId != -1) {\r\n clearInterval(refreshIntervalId)\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshFunction.bind(null, poolParams, newPool), 5000)\r\n }\r\n \r\n }\r\n\r\n pool.replaceWith(newPool)\r\n\r\n const event = new Event('click')\r\n qs(\".activeFilterButton\").dispatchEvent(event)\r\n}\r\n\r\nasync function resetNFTPoolListener(poolParams: PoolParamsNFT, pool: HTMLElement, refreshFunction: (pp: PoolParamsNFT, np: HTMLElement) => void, refreshIntervalId: number) {\r\n let newPool = pool.cloneNode(true) as HTMLElement\r\n hideAllDynamicElements(newPool)\r\n addFilterClasses(poolParams, newPool)\r\n addNFTPoolListeners(poolParams, newPool)\r\n \r\n // For some reason, newPool.classList.contains(\"inactive-pool\") returns false when it has that class from time to time\r\n // So we're putting just pool. This should make the refresh to be bad on a first scenario, but good on a second one.\r\n if(pool.classList.contains(\"inactive-pool\")) {\r\n displayInactiveNFTPool(newPool, pool)\r\n } else {\r\n displayActivePool(poolParams, newPool)\r\n }\r\n if(refreshIntervalId != -1) {\r\n clearInterval(refreshIntervalId)\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshFunction.bind(null, poolParams, newPool), 5000)\r\n }\r\n \r\n }\r\n\r\n pool.replaceWith(newPool)\r\n\r\n // const event = new Event('click')\r\n // qs(\".activeFilterButton\").dispatchEvent(event)\r\n}\r\n\r\nasync function addFilterClasses(poolParams: PoolParams | PoolParamsP3 | PoolParamsNFT, newPool: HTMLElement) {\r\n // Cleaning classes in case of reset\r\n const classes = [\"your-farms\", \"active-pool\", \"inactive-pool\"]\r\n classes.forEach(className => newPool.classList.remove(className))\r\n \r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n // const isDateInRange = poolParams.contractParams.farming_start < now && now < poolParams.contractParams.farming_end\r\n const isDateInRange = now < contractParams.farming_end\r\n \r\n // const poolUserStatus: PoolUserStatus|[string, string, string] = await poolParams.stakingContractData.getUserStatus()\r\n if(await poolParams.userHasStakedTokens()){\r\n newPool.classList.add(\"your-farms\")\r\n }\r\n if(isDateInRange) {\r\n newPool.classList.add(\"active-pool\")\r\n } else {\r\n newPool.classList.add(\"inactive-pool\")\r\n }\r\n}\r\n\r\nasync function addPool(poolParams: PoolParams | PoolParamsP3 | PoolParamsNFT): Promise {\r\n var genericPoolElement = qs(\"#generic-pool-container\") as HTMLElement;\r\n let singlePoolParams: PoolParams\r\n let multiplePoolParams: PoolParamsP3\r\n \r\n var newPool = genericPoolElement.cloneNode(true) as HTMLElement;\r\n \r\n newPool.setAttribute(\"id\", poolParams.html.id.toLowerCase().replace(\" \", \"_\"))\r\n newPool.classList.remove(\"hidden\")\r\n newPool.classList.add(\"pool-container\")\r\n\r\n addFilterClasses(poolParams, newPool)\r\n await addRewardTokenIcons(poolParams, newPool)\r\n await addTotalStakedDetail(poolParams, newPool)\r\n await addRewardsPerDayDetail(poolParams, newPool)\r\n await addRewardsTokenDetail(poolParams, newPool)\r\n await addUnclaimedRewardsDetail(poolParams, newPool)\r\n if (poolParams instanceof PoolParams && poolParams.type == \"single\") {\r\n singlePoolParams = poolParams\r\n await addPoolSingle(singlePoolParams, newPool)\r\n } else if (poolParams instanceof PoolParamsP3 && poolParams.type == \"multiple\"){\r\n multiplePoolParams = poolParams\r\n await addPoolMultiple(multiplePoolParams, newPool)\r\n } else if(poolParams instanceof PoolParamsNFT && poolParams.type == \"nft\") {\r\n await addNFTPool(poolParams, newPool)\r\n }\r\n\r\n addPoolTokensDescription(newPool, poolParams)\r\n \r\n \r\n // New code\r\n let showContractStart = newPool.querySelector(\"#contract-start\")\r\n let showContractEnd = newPool.querySelector(\"#contract-end\")\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n\r\n const accountRegistered = contractParams.accounts_registered\r\n newPool.querySelector(\".accounts-registered-value-usd\")!.innerHTML = `${accountRegistered} accounts`\r\n \r\n showContractStart!.innerHTML = new Date(contractParams.farming_start * 1000).toLocaleString()\r\n showContractEnd!.innerHTML = new Date(contractParams.farming_end * 1000).toLocaleString()\r\n\r\n const poolName = await poolParams.getPoolName()\r\n newPool.querySelectorAll(\".token-name\").forEach(element => {\r\n element.innerHTML = poolName\r\n })\r\n\r\n if(newPool.classList.contains(\"inactive-pool\")) {\r\n displayInactiveP2P3Pool(newPool)\r\n } else {\r\n await displayActivePool(poolParams, newPool)\r\n }\r\n \r\n \r\n // await addTotalFarmedDetail(poolParams, newPool)\r\n \r\n let unixTimestamp = new Date().getTime() / 1000;\r\n // const isDateInRange = contractParams.farming_start < unixTimestamp && unixTimestamp < contractParams.farming_end\r\n const isDateInRange = unixTimestamp < contractParams.farming_end\r\n setDateInRangeVisualIndication(poolParams, newPool, isDateInRange)\r\n \r\n qs(\"#pool_list\").append(newPool)\r\n\r\n newPool.querySelector(\".deposit-fee-value\")!.innerHTML = (contractParams.fee_rate) ? contractParams.fee_rate / 100 + \"%\" : \"0%\"\r\n\r\n poolParams.confettiButton = new ConfettiButton(newPool)\r\n poolParams.confettiButton.render(\r\n poolParams.confettiButton.confettiButton,\r\n poolParams.confettiButton.canvas,\r\n poolParams.confettiButton.confetti,\r\n poolParams.confettiButton.sequins\r\n )\r\n\r\n let harvestedSuccesfully = sessionStorage.getItem(\"cheddarFarmHarvestedSuccesfully\")\r\n \r\n if(harvestedSuccesfully != null){\r\n let isUserFarming = newPool.classList.contains(\"your-farms\")\r\n // console.log(\"isUserFarming\", isUserFarming)\r\n isUserFarming && showSuccessOnHarvestAnimation(newPool, poolParams)\r\n }\r\n}\r\n\r\nfunction showSuccessOnHarvestAnimation(newPool: HTMLElement, poolParams: PoolParams|PoolParamsP3|PoolParamsNFT) {\r\n let poolID = newPool.id\r\n let harvestedPoolID = sessionStorage.getItem(\"cheddarFarmJustHarvested\")\r\n // console.log(\"poolID\", poolID)\r\n // console.log(\"harvestedPoolID\", harvestedPoolID)\r\n \r\n if(poolID == harvestedPoolID) {\r\n while(document.readyState != \"complete\"){\r\n setTimeout(() => {\r\n }, 1000);\r\n }\r\n poolParams.confettiButton?.successAnimation()\r\n sessionStorage.removeItem(\"cheddarFarmJustHarvested\")\r\n sessionStorage.removeItem(\"cheddarFarmHarvestedSuccesfully\") \r\n }\r\n}\r\n\r\nfunction displayInactiveP2P3Pool(newPool: HTMLElement) {\r\n const isUserFarming = newPool.classList.contains(\"your-farms\")\r\n if(isUserFarming) {\r\n toggleStakeUnstakeSection(newPool)\r\n setUnstakeTabListeners(newPool)\r\n\r\n newPool.querySelector(\".harvest-section\")!.classList.remove(\"hidden\")\r\n newPool.querySelector(\"#staking-unstaking-container .staking\")!.setAttribute(\"disabled\", \"disabled\")\r\n const event= new Event (\"click\")\r\n newPool.querySelector(\"#staking-unstaking-container .unstaking\")!.dispatchEvent(event)\r\n }\r\n}\r\n\r\nfunction displayInactiveNFTPool(newPool: HTMLElement, pool: HTMLElement) {\r\n const isUserFarming = pool.classList.contains(`your-farms`)\r\n if(isUserFarming) {\r\n newPool.querySelector(\"#stake-unstake-nft\")!.classList.remove(\"hidden\")\r\n newPool.querySelector(\".harvest-section\")!.classList.remove(\"hidden\")\r\n }\r\n}\r\n\r\nfunction toggleStakeUnstakeSection(newPool: HTMLElement) {\r\n let expandPoolButton = newPool.querySelector(\".expand-button\")! as HTMLElement;\r\n let poolContainer = newPool.querySelector(\"#pool-container\")! as HTMLElement\r\n expandPoolButton.classList.remove(\"hidden\")\r\n toggleExpandStakeUnstakeSection(newPool, poolContainer)\r\n toggleExpandStakeUnstakeSection(newPool, expandPoolButton)\r\n}\r\n\r\nfunction setUnstakeTabListeners(newPool: HTMLElement) {\r\n let stakeTabButton = newPool.querySelector(\".staking\")! as HTMLElement;\r\n let unstakeTabButton = newPool.querySelector(\".unstaking\")! as HTMLElement;\r\n let staking = newPool.querySelector(\".main-stake\")! as HTMLElement;\r\n let unstaking = newPool.querySelector(\".main-unstake\")! as HTMLElement;\r\n let stakeButton = newPool.querySelector(\"#stake-button\")! as HTMLElement;\r\n let unstakeButton = newPool.querySelector(\"#unstake-button\")! as HTMLElement;\r\n\r\n unstakeTabButton.addEventListener(\"click\", showElementHideAnother(unstaking, staking));\r\n unstakeTabButton.addEventListener(\"click\", showElementHideAnother(unstakeButton, stakeButton));\r\n unstakeTabButton.addEventListener(\"click\", setActiveColor);\r\n unstakeTabButton.addEventListener(\"click\", cancelActiveColor(stakeTabButton));\r\n}\r\n\r\nfunction displayIfNftPool(newPool: HTMLElement, isAccountRegistered: boolean,hasUserStaked:boolean) {\r\n if(isAccountRegistered) {\r\n // if the pool has ended and user doesn't has any NFT staked don't show the stake/unstake btn\r\n if(newPool.classList.contains(\"inactive-pool\") && !hasUserStaked){\r\n return;\r\n } \r\n let stakeUnstakeNftButton = newPool.querySelector(\"#stake-unstake-nft\")! as HTMLButtonElement;\r\n stakeUnstakeNftButton.classList.remove(\"hidden\")\r\n }\r\n}\r\n\r\nfunction displayIfTokenPool(newPool: HTMLElement, isAccountRegistered: boolean){\r\n\r\n if(isAccountRegistered) {\r\n toggleStakeUnstakeSection(newPool)\r\n \r\n let stakeTabButton = newPool.querySelector(\".staking\")! as HTMLElement;\r\n let unstakeTabButton = newPool.querySelector(\".unstaking\")! as HTMLElement;\r\n let staking = newPool.querySelector(\".main-stake\")! as HTMLElement;\r\n let unstaking = newPool.querySelector(\".main-unstake\")! as HTMLElement;\r\n let stakeButton = newPool.querySelector(\"#stake-button\")! as HTMLElement;\r\n let unstakeButton = newPool.querySelector(\"#unstake-button\")! as HTMLElement;\r\n \r\n setUnstakeTabListeners(newPool)\r\n \r\n stakeTabButton.addEventListener(\"click\", showElementHideAnother(staking, unstaking));\r\n stakeTabButton.addEventListener(\"click\", showElementHideAnother(stakeButton, unstakeButton));\r\n stakeTabButton.addEventListener(\"click\", setActiveColor);\r\n stakeTabButton.addEventListener(\"click\", cancelActiveColor(unstakeTabButton));\r\n }\r\n}\r\n\r\nasync function displayActivePool(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n let activateButtonContainer = newPool.querySelector(\"#activate\") as HTMLElement\r\n let activateButton = newPool.querySelector(\".activate\") as HTMLElement\r\n let harvestSection = newPool.querySelector(\".harvest-section\") as HTMLElement\r\n\r\n if(wallet != disconnectedWallet) {\r\n let isAccountRegistered = (await poolParams.stakingContractData.contract.storageBalance()) != null;\r\n\r\n if(!isAccountRegistered) {\r\n activateButtonContainer.classList.remove(\"hidden\")\r\n activateButton.addEventListener(\"click\", activateClicked(poolParams, newPool))\r\n\r\n if (poolParams.html.formId == \"nearcon\" || poolParams.html.formId == \"cheddar\") {\r\n let warningText = \"ONLY ACTIVATE IF PREVIOUSLY STAKED
0.06 NEAR storage deposit, gets refunded.\"\r\n newPool.querySelector(\"#depositWarning\")!.innerHTML = warningText \r\n }\r\n }\r\n \r\n if(poolParams instanceof PoolParams || poolParams instanceof PoolParamsP3){\r\n\r\n displayIfTokenPool(newPool, isAccountRegistered)\r\n\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n // check for user stake \r\n const hasUserStakedNFT = poolUserStatus.stake_tokens.some(total => total.length > 0) && poolUserStatus.stake != \"0\"\r\n displayIfNftPool(newPool, isAccountRegistered,hasUserStakedNFT)\r\n\r\n }\r\n }\r\n\r\n const isUserFarming = newPool.classList.contains(\"your-farms\")\r\n if(isUserFarming) {\r\n activateButtonContainer.classList.add(\"hidden\")\r\n activateButton.setAttribute(\"disabled\", \"disabled\")\r\n harvestSection.classList.remove(\"hidden\")\r\n }\r\n}\r\n\r\nfunction addLogo(metaData: FungibleTokenMetadata, container: HTMLElement, index: number = 0) {\r\n let newTokenLogoElement: HTMLElement\r\n\r\n if (metaData.icon != null && metaData.icon != ''){\r\n // inputLogoContainer.innerHTML= `${metaData.icon}`\r\n if(metaData.icon.startsWith(\"data:image\")) { // icon is img\r\n const tokenLogoElement = qs(\".generic-token-logo-img\")\r\n newTokenLogoElement = tokenLogoElement.cloneNode(true) as HTMLElement\r\n newTokenLogoElement?.setAttribute(\"src\", metaData.icon)\r\n } else if(metaData.icon.startsWith(\") {\r\n qs(\"#pool_list\").innerHTML = \"\"\r\n for (let i = 0; i < poolList.length; i++) {\r\n await addPool(poolList[i]);\r\n }\r\n\r\n qs(\"#pool_list\").style.display = \"grid\"\r\n\r\n if (qs(\"#pool_list\").childElementCount == 0) {\r\n qs(\"#pool_list\").innerHTML = `

New Pools SoonTM...⚙️ Try our games!🕹️

`\r\n }\r\n\r\n // qs(\".loader\").style.display = \"none\"\r\n\r\n isPaused = false;\r\n}\r\n\r\nlet closePublicityButton = qs(\".close-publicity\") as HTMLElement\r\n\r\nfunction closePublicityButtonHandler() {\r\n return function () {\r\n closePublicityButton.classList.add(\"hidden\")\r\n\r\n let publicityContainer = qs(\".publicity-container\") as HTMLElement\r\n publicityContainer.classList.add(\"hidden\")\r\n\r\n let publicityDecoration = qs(\".publicity-decoration\") as HTMLElement\r\n publicityDecoration.classList.add(\"no-publicity-position\")\r\n\r\n let header = qs(\"header\") as HTMLElement\r\n header.classList.add(\"no-publicity-position\")\r\n\r\n let burguer = qs(\"#burguer\") as HTMLElement\r\n burguer.classList.add(\"no-publicity-position\")\r\n }\r\n}\r\n\r\nfunction setCountdown() {\r\n var countDownDate = new Date(\"Aug 22, 2022 12:00:00 UTC\");\r\n var countDownDate = new Date(countDownDate.getTime() - countDownDate.getTimezoneOffset() * 60000)\r\n // Time calculations for days, hours, minutes and seconds\r\n var d = new Date();\r\n var d = new Date(d.getTime() - d.getTimezoneOffset() * 60000)\r\n var distance = countDownDate.getTime() - d.getTime();\r\n\r\n if(distance < 0) {\r\n clearInterval(countDownIntervalId)\r\n document.getElementById(\"timer\")!.innerHTML = \"\";\r\n }\r\n var days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n document.getElementById(\"timer\")!.innerHTML = `

New Pools Start In: ${days} d : ${hours} h : \r\n ${minutes} m : ${seconds} s

`;\r\n}\r\n\r\nwindow.onload = async function () {\r\n try {\r\n let env = ENV //default\r\n\r\n if (env != nearConfig.networkId)\r\n nearConfig = getConfig(ENV);\r\n\r\n near = await nearAPI.connect(\r\n Object.assign(\r\n {\r\n deps: {\r\n keyStore: new nearAPI.keyStores.BrowserLocalStorageKeyStore()\r\n }\r\n },\r\n nearConfig\r\n )\r\n )\r\n\r\n \r\n closePublicityButton.addEventListener(\"click\", closePublicityButtonHandler())\r\n //Path tag is part of the svg tag and also need the event\r\n closePublicityButton.querySelector(\"path\")!.addEventListener(\"click\", closePublicityButtonHandler())\r\n\r\n let headerCheddarValueDisplayerContainer = qs(\".header-extension_cheddar-value\") as HTMLElement\r\n let cheddarValue = Number((await getTokenData(\"cheddar\")).price).toFixed(7)\r\n headerCheddarValueDisplayerContainer.innerHTML = `$ ${cheddarValue}`\r\n\r\n\r\n // initButton()\r\n // countDownIntervalId = window.setInterval(function(){\r\n // setCountdown()\r\n // }, 1000);\r\n \r\n\r\n\r\n //init narwallets listeners\r\n narwallets.setNetwork(nearConfig.networkId); //tell the wallet which network we want to operate on\r\n addNarwalletsListeners(narwalletConnected, narwalletDisconnected) //listen to narwallets events\r\n\r\n //set-up auto-refresh loop (10 min)\r\n setInterval(autoRefresh, 10 * MINUTES)\r\n\r\n //check if signed-in with NEAR Web Wallet\r\n await initNearWebWalletConnection()\r\n let didJustActivate = false\r\n initLiquidButton()\r\n\r\n const cheddarContractName = (ENV == 'mainnet') ? CHEDDAR_CONTRACT_NAME : TESTNET_CHEDDAR_CONTRACT_NAME\r\n const cheddarContract = new NEP141Trait(cheddarContractName);\r\n\r\n let circulatingSupply = await cheddarContract.ft_total_supply()\r\n let allSuplyTextContainersToFill = document.querySelector(\".circulatingSupply.supply\") as HTMLElement\r\n\r\n allSuplyTextContainersToFill.innerHTML = toStringDec(yton(circulatingSupply)).split('.')[0];\r\n\r\n if (nearWebWalletConnection.isSignedIn()) {\r\n //already signed-in with NEAR Web Wallet\r\n //make the contract use NEAR Web Wallet\r\n wallet = new NearWebWallet(nearWebWalletConnection);\r\n \r\n // const poolList = await getPoolList(wallet)\r\n // await addPoolList(poolList)\r\n\r\n accountName = wallet.getAccountId()\r\n qsInnerText(\"#account-id\", accountName) \r\n \r\n await signedInFlow(wallet)\r\n cheddarContract.wallet = wallet;\r\n const cheddarBalance = await cheddarContract.ft_balance_of(accountName)\r\n const amountAvailable = toStringDec(yton(await wallet.getAccountBalance()))\r\n qsInnerText(\"#my-account #wallet-available\", amountAvailable)\r\n qsInnerText(\"#my-account #cheddar-balance\", convertToDecimals(cheddarBalance, 24, 5))\r\n qsInnerText(\"#nft-pools-section .cheddar-balance-container .cheddar-balance\", convertToDecimals(cheddarBalance, 24, 5))\r\n\r\n\r\n //check if we're re-spawning after a wallet-redirect\r\n //show transaction result depending on method called\r\n const searchParamsResultArray = await checkRedirectSearchParamsMultiple(nearWebWalletConnection, nearConfig.explorerUrl || \"explorer\");\r\n let method: string = \"\"\r\n let err\r\n let args = []\r\n searchParamsResultArray.forEach(searchParamsResult => {\r\n const { err: errResult, data, method: methodResult, finalExecutionOutcome } = searchParamsResult\r\n if(errResult) {\r\n err = errResult\r\n return\r\n }\r\n if(methodResult) {\r\n method = methodResult \r\n }\r\n \r\n if (finalExecutionOutcome) {\r\n let arg = JSON.parse(atob(finalExecutionOutcome.transaction.actions[0].FunctionCall.args))\r\n if(arg.token == undefined) {\r\n const stakeContract = finalExecutionOutcome.transaction.receiver_id\r\n for(let i = 0; i < nearConfig.farms.length; i++) {\r\n const farmData = nearConfig.farms[i]\r\n if(farmData.contractName == stakeContract) {\r\n arg.token = farmData.tokenContractName\r\n break\r\n }\r\n }\r\n }\r\n args.push(arg)\r\n }\r\n \r\n });\r\n\r\n if (err) {\r\n showError(err, \"Transaction - \" + method || \"\");\r\n } else if(method == \"ft_transfer_call\") {\r\n // @ts-ignore\r\n await stakeResult(args)\r\n } else if(method == \"unstake\"){\r\n // @ts-ignore\r\n await unstakeResult(args)\r\n } else if(method == \"nft_transfer_call\"){\r\n showSuccess(\"NFT staked successfully\", \"Stake NFT\")\r\n // @ts-ignore\r\n // await nftStakeResult(args)\r\n } else if(method == \"storage_deposit\"){\r\n didJustActivate = true\r\n showSuccess(\"Successfully activated\", \"Activate\")\r\n } else if(method == \"withdraw_crop\") {\r\n window.sessionStorage.setItem(\"cheddarFarmHarvestedSuccesfully\", \"yes\")\r\n showSuccess(\"Tokens harvested successfully\")\r\n } else {\r\n console.log(\"Method\", method)\r\n console.log(\"Args\", args.join(\"\\n\"))\r\n }\r\n \r\n }\r\n else {\r\n //not signed-in \r\n await signedOutFlow() //show home-not-connected -> select wallet page\r\n }\r\n const poolList = await getPoolList(wallet)\r\n await addPoolList(poolList)\r\n setDefaultFilter(didJustActivate)\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n } finally {\r\n qs(\".loader\").style.display = \"none\"\r\n }\r\n}\r\n\r\nasync function stakeResult(argsArray: [{amount: string, msg: string, receiver_id: string}]) {\r\n let message = \"Staked: \"\r\n let tokensStakedMessage: string[] = []\r\n const poolList = await getPoolList(wallet)\r\n let pool: PoolParams | PoolParamsP3 | undefined\r\n for(let i = 0; i < poolList.length; i++) {\r\n if(argsArray[0].receiver_id == poolList[i].stakingContractData.contract.contractId) {\r\n pool = poolList[i]\r\n break\r\n }\r\n }\r\n if(!pool) {\r\n throw new Error(`No pool found with contract id ${argsArray[0].receiver_id}`)\r\n }\r\n\r\n await Promise.all(argsArray.map(async (args, index) => {\r\n // const args = JSON.parse(atob(finalExecutionOutcome.transaction.actions[0].FunctionCall.args))\r\n let metadata\r\n if(pool instanceof PoolParams) {\r\n metadata = await pool.stakeTokenContract.ft_metadata()\r\n } else if(pool instanceof PoolParamsP3) {\r\n const stakeTokenContractList = await pool.stakingContractData.getStakeTokenContractList()\r\n metadata = await stakeTokenContractList[index].contract!.ft_metadata()\r\n }\r\n if(!metadata) {\r\n // This if should never be true\r\n throw new Error(\"Error obtaining metadata on stake result\")\r\n }\r\n const amount = convertToDecimals(args.amount, metadata.decimals, 5)\r\n tokensStakedMessage.push(\r\n `${amount} ${metadata.symbol}`\r\n )\r\n }))\r\n message += tokensStakedMessage.join(\" - \")\r\n showSuccess(message, \"Stake\")\r\n}\r\n\r\ninterface NFTUnstakeResult {\r\n nft_contract_id: string\r\n token: string\r\n token_id: string\r\n}\r\n\r\nasync function unstakeResult(argsArray: [{amount: string, token: string}] | NFTUnstakeResult[]) {\r\n let message = \"Unstaked: \"\r\n if(\"nft_contract_id\" in argsArray[0]) {\r\n message += `deposited cheddar and ${argsArray.length} NFTs have been refunded`\r\n } else if(\"token\" in argsArray[0]){\r\n let tokensUnstakedMessage: string[] = []\r\n \r\n for(let i = 0; i < argsArray.length; i++) {\r\n const args = argsArray[i]\r\n let contract = new NEP141Trait(args.token)\r\n contract.wallet = wallet\r\n\r\n const metaData = await contract.ft_metadata()\r\n // @ts-ignore\r\n const amount = convertToDecimals(args.amount, metaData.decimals, 5)\r\n tokensUnstakedMessage.push(\r\n `${amount} ${metaData.symbol}`\r\n )\r\n }\r\n message += tokensUnstakedMessage.join(\" - \")\r\n }\r\n showSuccess(message, \"Unstake\")\r\n}\r\n\r\n// NEW CODE\r\nfunction toggleActions(elementToShow: HTMLElement) {\r\n return function (event: Event) {\r\n let element = event.target as HTMLElement\r\n\r\n element.tagName.toLowerCase() != \"a\" && event.preventDefault();\r\n \r\n const tagName = element.tagName.toLowerCase()\r\n const tagsToIgnore = [\"button\", \"input\", \"span\", \"img\", \"svg\", \"path\", \"a\"]\r\n\r\n if (!tagsToIgnore.includes(tagName) || element.classList.contains(\"toggle-display\")) {\r\n elementToShow.classList.toggle(\"hidden\")\r\n } \r\n }\r\n}\r\n\r\nfunction flipElement(elementToFlip: HTMLElement) {\r\n return function (event: Event){\r\n let element = event.target as HTMLElement\r\n\r\n element.tagName.toLowerCase() != \"a\" && event.preventDefault();\r\n \r\n const tagName = element.tagName.toLowerCase()\r\n const tagsToIgnore = [\"button\", \"input\", \"span\", \"img\", \"svg\", \"path\", \"polygon\", \"a\"]\r\n\r\n if (!tagsToIgnore.includes(tagName) || element.classList.contains(\"toggle-display\")) {\r\n elementToFlip.classList.toggle(\"flipped\")\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction toggleElement(elementToShow: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToShow.classList.toggle(\"hidden\");\r\n }\r\n}\r\n\r\nfunction paintOrUnPaintElement(previousColoringClass: string, elementToPaint: HTMLElement){\r\n return function (event: Event){\r\n event.preventDefault()\r\n elementToPaint.classList.toggle(\"transparent\")\r\n elementToPaint.classList.toggle(previousColoringClass)\r\n }\r\n}\r\n\r\nfunction makeBlinkElement(elementToMakeBlink: HTMLElement){\r\n return function (event: Event){\r\n event.preventDefault()\r\n elementToMakeBlink.classList.toggle(\"blink\")\r\n }\r\n}\r\n\r\nfunction showElement(elementToShow: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToShow.classList.remove(\"hidden\");\r\n }\r\n}\r\n\r\nfunction hideElement(elementToHide: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToHide.classList.add(\"hidden\");\r\n }\r\n}\r\n\r\nfunction showElementHideAnother(elementToShow: HTMLElement, elementToHide: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToShow.classList.remove(\"hidden\");\r\n elementToHide.classList.add(\"hidden\");\r\n }\r\n}\r\n\r\nfunction setActiveColor(event: Event) {\r\n let element = event.target as HTMLElement\r\n element.classList.add(\"active\");\r\n}\r\n\r\nfunction cancelActiveColor(elementToDisplayAsNotActive: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToDisplayAsNotActive.classList.remove(\"active\");\r\n }\r\n}\r\n\r\nasync function loadAndShowNfts(poolParams: PoolParamsP3|PoolParamsNFT, buttonId: string) {\r\n await loadNFTs(poolParams, buttonId)\r\n qs(\"#nft-pools-section\").classList.remove(\"hidden\")\r\n\r\n if(poolParams instanceof PoolParamsNFT) {\r\n let confirmStakeUnstakeNFTButton = NFTPoolSection.querySelector(\"#confirm-stake-unstake\")\r\n let cancelStakeUnstakeNFTButton = NFTPoolSection.querySelector(\"#cancel-stake-unstake\")\r\n\r\n confirmStakeUnstakeNFTButton!.addEventListener(\"click\", confirmStakeUnstakeNFTButtonHandler(poolParams))\r\n cancelStakeUnstakeNFTButton!.addEventListener(\"click\", quitNFTFlex())\r\n }\r\n\r\n \r\n}\r\n\r\n\r\nfunction displayCheddarNeededToStakeNFTs(stakeRate: number) {\r\n const nftPoolSection = qs(\"#nft-pools-section\") as HTMLElement\r\n\r\n let countSelectedToStakeNfts = (nftPoolSection.querySelectorAll(\".nft-card.selected.unstaked\")).length as number\r\n\r\n const amountNeededToStakeAllNfts = nftPoolSection.querySelector(\".cheddar-needed-to-stake-all-nfts\") as HTMLElement\r\n amountNeededToStakeAllNfts.innerHTML = (countSelectedToStakeNfts * stakeRate).toString()\r\n}\r\n\r\nfunction selectAllActionNftButtons(action: string, stakeRate: number){\r\n return function(event: Event) {\r\n event.preventDefault()\r\n\r\n const nftPoolsSection = qs(\"#nft-pools-section\")\r\n const allSelectedPreviously = nftPoolsSection.querySelectorAll(\".selected\")\r\n\r\n allSelectedPreviously.forEach(element => {\r\n element.classList.remove(\"selected\")\r\n });\r\n\r\n const clickedElement = event.target! as HTMLElement\r\n clickedElement.classList.add(\"selected\")\r\n\r\n let allNFTCardsByAction: NodeListOf\r\n\r\n if(action == \"stake\"){\r\n\r\n allNFTCardsByAction = nftPoolsSection.querySelectorAll(\".nft-card.unstaked\")\r\n\r\n } else {\r\n\r\n allNFTCardsByAction = nftPoolsSection.querySelectorAll(\".nft-card.staked\")\r\n }\r\n\r\n allNFTCardsByAction.forEach(card => {\r\n card.classList.add(\"selected\") \r\n })\r\n\r\n displayCheddarNeededToStakeNFTs(stakeRate)\r\n }\r\n}\r\n\r\nasync function showStakeUnstakeNFTGrid(poolParams: PoolParamsNFT, buttonId: string) {\r\n const contractParams: NFTStakingContractParams = await poolParams.stakingContractData.getContractParams()\r\n // const stakeRateStr: string = contractParams.stake_rates[0] \r\n const stakeRate: number = yton(contractParams.cheddar_rate)\r\n\r\n qs(\".needed-to-stake-each-nft .amount\")!.innerHTML = stakeRate.toString()\r\n\r\n const multipleNftSelectionButtons = qs(\".multiple-nft-selection\") as HTMLElement\r\n multipleNftSelectionButtons.classList.remove(\"hidden\")\r\n\r\n const confirmButton = qs(\"#confirm-stake-unstake\") as HTMLButtonElement\r\n confirmButton.classList.remove(\"hidden\")\r\n\r\n const cancelButton = qs(\"#cancel-stake-unstake\") as HTMLButtonElement\r\n cancelButton.classList.remove(\"hidden\")\r\n\r\n const unstakeAllNftsButton = qs(\".unstake-all-nft-button\") as HTMLButtonElement\r\n unstakeAllNftsButton.addEventListener(\"click\", selectAllActionNftButtons(\"unstake\", stakeRate))\r\n\r\n const stakeAllNftsButton = qs(\".stake-all-nft-button\") as HTMLButtonElement\r\n stakeAllNftsButton.addEventListener(\"click\", selectAllActionNftButtons(\"stake\", stakeRate))\r\n\r\n displayCheddarNeededToStakeNFTs(stakeRate)\r\n\r\n await loadAndShowNfts(poolParams, buttonId)\r\n}\r\n\r\nfunction showNFTGrid(poolParams: PoolParamsP3|PoolParamsNFT, buttonId: string) {\r\n return async function () {\r\n loadAndShowNfts(poolParams,buttonId)\r\n }\r\n}\r\n\r\nasync function loadNFTs(poolParams: PoolParamsP3|PoolParamsNFT, buttonId: string) {\r\n const NFTContainer = qs(\".nft-flex\") as HTMLElement\r\n NFTContainer.innerHTML = \"\"\r\n \r\n const accountId = poolParams.wallet.getAccountId()\r\n let nftContract: NFTContract\r\n let stakedOrBoostingNFTsToAdd: NFTWithMetadata[] = []\r\n //Use conditional to check if the pressed button was boost or stake/unstake so the correct nft are loaded\r\n let userUnstakedNFTsWithMetadata: NFTWithMetadata[] = []\r\n let userStatus: PoolUserStatusP3|PoolUserStatusP3NFT = await poolParams.stakingContractData.getUserStatus()\r\n let poolHasStaked: boolean = false\r\n if(buttonId === \"boost-button\"){\r\n nftContract = poolParams.nftContractForBoosting\r\n const userUnstakedNFTs: NFT[] = await nftContract.nft_tokens_for_owner(accountId)\r\n const mapped: NFTWithMetadata[] = userUnstakedNFTs.map((nft: NFT) => {\r\n return {\r\n ...nft,\r\n contract_id: nftContract.contractId,\r\n base_url: nftContract.baseUrl\r\n }\r\n })\r\n console.log(1, mapped.length)\r\n userUnstakedNFTsWithMetadata = userUnstakedNFTsWithMetadata.concat(mapped)\r\n let tokenId: string\r\n if(\"boost_nfts\" in userStatus) {\r\n poolHasStaked = userStatus.boost_nfts != ''\r\n tokenId = userStatus.boost_nfts\r\n } else {\r\n poolHasStaked = userStatus.cheddy_nft != ''\r\n tokenId = userStatus.cheddy_nft\r\n }\r\n // poolHasStaked = userStatus.cheddy_nft != '' || userStatus.boost_nfts != ''\r\n if(poolHasStaked) stakedOrBoostingNFTsToAdd.push(newNFT(tokenId, nftContract.baseUrl, nftContract.contractId))\r\n \r\n } else if (buttonId === \"stake-unstake-nft\" && poolParams instanceof PoolParamsNFT) {\r\n const nftContractList = await poolParams.stakingContractData.getStakeNFTContractList()\r\n for(let i = 0; i < nftContractList.length; i++) {\r\n const contract = nftContractList[i].contract\r\n const nftMetadata: Promise = contract.nft_metadata()\r\n const userUnstakedNFTs: NFT[] = await contract.nft_tokens_for_owner(accountId)\r\n let baseUrl = (await nftMetadata).base_uri\r\n if(!baseUrl) baseUrl = contract.baseUrl\r\n userUnstakedNFTsWithMetadata = userUnstakedNFTsWithMetadata.concat(userUnstakedNFTs.map((nft: NFT) => {\r\n return {\r\n ...nft,\r\n contract_id: contract.contractId,\r\n base_url: baseUrl\r\n }\r\n }))\r\n \r\n }\r\n poolHasStaked = userStatus.stake_tokens.some(a => a.length > 0)\r\n for(let index = 0; index < userStatus.stake_tokens.length; index++) {\r\n const contract: NFTContract = nftContractList[index].contract\r\n let contractTokens = userStatus.stake_tokens[index]\r\n\r\n let thisUserStakedNFTsPromises: Promise[] = []\r\n for(let tokenId of contractTokens) {\r\n thisUserStakedNFTsPromises.push(contract.nft_token(tokenId))\r\n }\r\n const thisUserStakedNFTs: NFT[] = await Promise.all(thisUserStakedNFTsPromises)\r\n thisUserStakedNFTs.forEach(nft => {\r\n stakedOrBoostingNFTsToAdd.push({\r\n ...nft,\r\n contract_id: contract.contractId,\r\n base_url: contract.baseUrl\r\n })\r\n })\r\n\r\n }\r\n } else {\r\n throw new Error(`Object ${typeof poolParams} is not implemented for loading NFT's`)\r\n }\r\n \r\n if(userUnstakedNFTsWithMetadata.length == 0 && !poolHasStaked) {\r\n let tokenName = \"\"\r\n if(poolParams instanceof PoolParamsP3) {\r\n tokenName = \"cheddar\"\r\n } else {\r\n const nftContractList = await poolParams.stakingContractData.getStakeNFTContractList()\r\n // It will be assumed there is only one NFT for staking\r\n const nftContractMetadata = await nftContractList[0].getMetadata()\r\n tokenName = nftContractMetadata.name.toLowerCase()\r\n } \r\n NFTContainer.innerHTML = `You don't have any ${tokenName} NFT`\r\n return\r\n }\r\n if(stakedOrBoostingNFTsToAdd.length > 0) {\r\n stakedOrBoostingNFTsToAdd.forEach((nft: NFTWithMetadata) => {\r\n addNFT(poolParams, NFTContainer, nft, poolHasStaked, \"\", buttonId, \"\", true)\r\n })\r\n \r\n }\r\n userUnstakedNFTsWithMetadata.forEach(nft => {\r\n console.log(4, nft)\r\n addNFT(poolParams, NFTContainer, nft, poolHasStaked, \"\", buttonId, \"\", false)\r\n });\r\n}\r\n\r\n\r\nfunction checkIfMultipleSelectionButtonsMustBeSelected() {\r\n const nftPoolsSection = document.querySelector(\"#nft-pools-section\") as HTMLElement\r\n\r\n let unstakedAmount = nftPoolsSection.querySelectorAll(\".unstaked\").length\r\n let stakedAmount = nftPoolsSection.querySelectorAll(\".staked\").length\r\n\r\n let unstakedSelectedAmount = nftPoolsSection.querySelectorAll(\".unstaked.selected\").length\r\n let stakedSelectedAmount = nftPoolsSection.querySelectorAll(\".staked.selected\").length\r\n \r\n let stakeAllButton = qs(\".stake-all-nft-button\") as HTMLElement\r\n \r\n if(unstakedAmount == unstakedSelectedAmount && unstakedAmount != 0) {\r\n stakeAllButton.classList.add(\"selected\")\r\n } else {\r\n stakeAllButton.classList.remove(\"selected\")\r\n }\r\n\r\n let unstakeAllButton = qs(\".unstake-all-nft-button\") as HTMLElement\r\n\r\n if(stakedAmount == stakedSelectedAmount && stakedAmount != 0) {\r\n unstakeAllButton.classList.add(\"selected\")\r\n } else {\r\n unstakeAllButton.classList.remove(\"selected\")\r\n }\r\n}\r\n\r\nfunction stakeAndUstakeNFTButtonHandler (newNFTCard: HTMLElement, stakeRate: number) {\r\n return function () { \r\n newNFTCard.classList.toggle(\"selected\")\r\n\r\n checkIfMultipleSelectionButtonsMustBeSelected()\r\n\r\n displayCheddarNeededToStakeNFTs(stakeRate)\r\n }\r\n}\r\n\r\nfunction confirmStakeUnstakeNFTButtonHandler(poolParams: PoolParamsNFT) {\r\n return async function (event: Event) {\r\n event.preventDefault()\r\n let isAnyNFTSelected = qsa(\".nft-flex .selected\").length > 0\r\n if(!isAnyNFTSelected) {\r\n showError(\"Select NFT's to stake or unstake\")\r\n return\r\n }\r\n try {\r\n\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n //If used don´t have enough cheddar to stake all the selected NFTs show error msg and return\r\n let cheddarBalanceContainer = document.querySelector(\".cheddar-balance\") as HTMLElement\r\n let cheddarBalance = parseInt(cheddarBalanceContainer.innerHTML) as number\r\n\r\n let cheddarNeededToStakeNFTsContainer = document.querySelector(\".cheddar-needed-to-stake-all-nfts\") as HTMLElement\r\n let cheddarNeededToStakeNFTs = parseInt(cheddarNeededToStakeNFTsContainer.innerHTML) as number\r\n\r\n if(cheddarBalance < cheddarNeededToStakeNFTs) {\r\n showError(\"Not enough cheddar to stake selected NFTs\")\r\n }\r\n\r\n const stakeUnstakeNFTsMap = await getNFTsToStakeAndUnstake(poolParams)\r\n const haveNftsToStake = Array.from(stakeUnstakeNFTsMap.values()).some((entry: NFTStakeUnstakeData) => entry.nftsToStake.length > 0)\r\n \r\n let unixTimestamp = new Date().getTime() / 1000; \r\n const isDateInRange = unixTimestamp < contractParams.farming_end\r\n if (!isDateInRange && haveNftsToStake) throw Error(\"Pools is Closed.\")\r\n\r\n poolParams.stakeUnstakeNFTs(stakeUnstakeNFTsMap)\r\n \r\n } catch(err) {\r\n showErr(err as Error)\r\n }\r\n \r\n }\r\n}\r\n\r\nexport interface NFTStakeUnstakeData {\r\n nftsToStake: string[]\r\n nftsToUnstake: string[]\r\n}\r\n\r\nasync function getNFTsToStakeAndUnstake(poolParams: PoolParamsNFT): Promise> {\r\n // let nftsToStake = [] as string[]\r\n // let nftsToUnstake = [] as string[]\r\n const stakeNFTContractList: NFTContractData[] = await poolParams.stakingContractData.getStakeNFTContractList()\r\n let output: Map = new Map()\r\n stakeNFTContractList.forEach((nftContractData: NFTContractData) => {\r\n const contractId: string = nftContractData.contract.contractId\r\n output.set(contractId, {\r\n nftsToStake: [],\r\n nftsToUnstake: []\r\n }\r\n )\r\n })\r\n\r\n let allSelectedNfts = NFTPoolSection.querySelectorAll(\".nft-card.selected\")\r\n allSelectedNfts.forEach(nft => {\r\n let nftNameContainer = nft.querySelector(\".nft-name\") as HTMLElement\r\n let nftName = nftNameContainer!.innerHTML\r\n\r\n let thisNFTStakeButton = nft.querySelector(\".stake-nft-button\")\r\n let contractId: string = nft.getAttribute(\"contract_id\")!\r\n let contractStakeUnstakeData: NFTStakeUnstakeData = output.get(contractId)!\r\n\r\n // TODO: For some reason, this function is being called multiple times on confirm, and on some run this object is undefined\r\n // The next line is set to avoid an error message, but it should be reviewed why this is happening.\r\n // There is also some react involved for some reason. It is uncertained wheter it is called from NEAR, since this project\r\n // doesn't have any react code involved, and it doesn't seem to be malicious\r\n if(!contractStakeUnstakeData) return\r\n //If the stake button is hidden the pool needs to be unstaked\r\n //If not it needs to be staked\r\n if(thisNFTStakeButton?.classList.contains(\"hidden\")) {\r\n contractStakeUnstakeData.nftsToUnstake.push(nftName)\r\n } else {\r\n contractStakeUnstakeData.nftsToStake.push(nftName)\r\n }\r\n });\r\n return output\r\n}\r\n\r\nfunction displayNFTPoolSectionForStakeUnstakeNFT(newNFTCard: HTMLElement, stakeButton: HTMLElement, unstakeButton: HTMLElement, stakeRate: number) {\r\n\r\n const NFTStakeTitle = NFTPoolSection.querySelector(\".stake-nfts-title\") as HTMLElement\r\n const cheddarBalanceContainer = NFTPoolSection.querySelector(\".cheddar-balance-container\") as HTMLElement\r\n\r\n NFTStakeTitle.classList.remove(\"hidden\")\r\n cheddarBalanceContainer.classList.remove(\"hidden\")\r\n\r\n stakeButton.addEventListener(\"click\", stakeAndUstakeNFTButtonHandler(newNFTCard, stakeRate))\r\n unstakeButton.addEventListener(\"click\", stakeAndUstakeNFTButtonHandler(newNFTCard, stakeRate))\r\n}\r\n\r\nfunction displayNFTPoolSectionForNFTBoost(poolParams: PoolParamsP3|PoolParamsNFT, poolHasStaked: boolean, staked:boolean, newNFTCard: HTMLElement,i: number, stakeButton: HTMLElement, unstakeButton: HTMLElement) {\r\n\r\n const NFTPoolSectionInfoRow = NFTPoolSection.querySelector(\".nft-farm-info\") as HTMLElement\r\n\r\n //Only if user have more than 1 NFT the legend \"You can only boost one NFT is shown\"\r\n if (i > 1) {\r\n NFTPoolSectionInfoRow.classList.remove(\"hidden\")\r\n }\r\n\r\n stakeButton?.addEventListener(\"click\", stakeNFT(poolParams, newNFTCard))\r\n if(staked){\r\n unstakeButton!.addEventListener(\"click\", unstakeNFT(poolParams, newNFTCard))\r\n }\r\n\r\n if(poolHasStaked) {\r\n stakeButton!.setAttribute(\"disabled\", \"disabled\")\r\n } else {\r\n stakeButton!.removeAttribute(\"disabled\")\r\n }\r\n}\r\n\r\nasync function addNFT(poolParams: PoolParamsP3|PoolParamsNFT, container: HTMLElement, nft: NFTWithMetadata, poolHasStaked: boolean, nftBaseUrl: string, buttonId: string, contractId: string, staked: boolean = false) {\r\n const genericNFTCard = qs(\".generic-nft-card\")\r\n const newNFTCard = genericNFTCard.cloneNode(true) as HTMLElement\r\n \r\n newNFTCard.setAttribute(\"contract_id\", nft.contract_id)\r\n\r\n let i = 0\r\n const nftName: string = nft.token_id.indexOf(\"@\") != -1 ? nft.token_id.split(\"@\")[1] : nft.token_id\r\n for (; i < newNFTCard.querySelectorAll(\".nft-name\").length; i++){\r\n newNFTCard.querySelectorAll(\".nft-name\")[i].innerHTML = nftName\r\n }\r\n\r\n const NFTPoolSectionInfoRow = NFTPoolSection.querySelector(\".nft-farm-info\") as HTMLElement\r\n\r\n NFTPoolSectionInfoRow.classList.add(\"hidden\")\r\n\r\n let imgElement = newNFTCard.querySelector(\".nft-img-container img\")\r\n // imgElement?.setAttribute(\"src\", new URL(nft.metadata.media, nftBaseUrl).href)\r\n \r\n const nftMedia: string = nft.metadata.media.indexOf(\"@\") != -1 ? nft.metadata.media.split(\"@\")[1] : nft.metadata.media\r\n let src\r\n console.log(3, nftMedia, nft.base_url)\r\n if(nftMedia.startsWith(\"https://\")) {\r\n src = nftMedia\r\n } else {\r\n src = nft.base_url + \"/\" + nftMedia\r\n }\r\n imgElement?.setAttribute(\"src\", src)\r\n imgElement!.setAttribute(\"alt\", nft.metadata.media)\r\n\r\n \r\n let stakeButton = newNFTCard.querySelector(\".stake-nft-button\") as HTMLElement\r\n let unstakeButton = newNFTCard.querySelector(\".unstake-nft-button\") as HTMLElement\r\n if(staked) {\r\n unstakeButton!.classList.remove(\"hidden\") \r\n stakeButton!.classList.add(\"hidden\")\r\n\r\n if(buttonId == \"stake-unstake-nft\"){\r\n newNFTCard.classList.add(\"staked\") \r\n newNFTCard.classList.remove(\"unstaked\")\r\n }\r\n \r\n } else {\r\n unstakeButton!.classList.add(\"hidden\") \r\n stakeButton!.classList.remove(\"hidden\")\r\n\r\n if(buttonId == \"stake-unstake-nft\"){\r\n newNFTCard.classList.add(\"unstaked\")\r\n newNFTCard.classList.remove(\"staked\")\r\n }\r\n }\r\n \r\n \r\n if(buttonId === \"boost-button\") {\r\n displayNFTPoolSectionForNFTBoost(poolParams, poolHasStaked, staked, newNFTCard, i, stakeButton, unstakeButton)\r\n } else if(buttonId === \"stake-unstake-nft\" && poolParams instanceof PoolParamsNFT){\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const stakeRate = yton(contractParams.cheddar_rate)\r\n displayNFTPoolSectionForStakeUnstakeNFT(newNFTCard, stakeButton, unstakeButton, stakeRate)\r\n }\r\n\r\n container.append(newNFTCard) \r\n toggleGenericClass(newNFTCard)\r\n}\r\n\r\nfunction stakeNFT(poolParams: PoolParamsP3|PoolParamsNFT, card: HTMLElement){\r\n return async function(event: Event) {\r\n try {\r\n event.preventDefault()\r\n showWait(\"Staking NFT...\")\r\n \r\n const tokenId = card.querySelector(\".nft-name\")!.innerHTML\r\n await poolParams.nftContractForBoosting.nft_transfer_call(poolParams.stakingContractData.contract.contractId, tokenId)\r\n showSuccess(\"NFT staked successfully\")\r\n \r\n let allNFTCards = qsa(\".nft-card\")\r\n allNFTCards.forEach(NFTCard => {\r\n NFTCard.querySelector(\".stake-nft-button\")!.setAttribute(\"disabled\", \"disabled\")\r\n });\r\n\r\n card.querySelector(\".stake-nft-button\")!.classList.add(\"hidden\")\r\n\r\n let unstakeButton = card.querySelector(\".unstake-nft-button\")!\r\n unstakeButton.removeAttribute(\"disabled\")\r\n unstakeButton.addEventListener(\"click\", unstakeNFT(poolParams, card))\r\n } catch(err) {\r\n showErr(err as Error)\r\n }\r\n }\r\n}\r\n\r\nfunction unstakeNFT(poolParams: PoolParamsP3|PoolParamsNFT, card: HTMLElement) {\r\n return async function (event: Event) {\r\n try {\r\n event.preventDefault()\r\n showWait(\"Unstaking NFT...\")\r\n\r\n if(poolParams instanceof PoolParamsP3) {\r\n await poolParams.stakingContractData.contract.withdraw_nft(poolParams.wallet.getAccountId())\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n await poolParams.withdrawBoost()\r\n }\r\n showSuccess(\"NFT unstaked successfully\")\r\n card.querySelector(\".unstake-nft-button\")!.classList.add(\"hidden\")\r\n\r\n qsa(\".stake-nft-button\").forEach(elem => {\r\n elem.removeAttribute(\"disabled\")\r\n elem.classList.remove(\"hidden\")\r\n })\r\n // let stakeButton = card.querySelector(\".stake-nft-button\")!\r\n // stakeButton.removeAttribute(\"disabled\")\r\n // stakeButton.addEventListener(\"click\", stakeNFT(poolParams, card))\r\n } catch(err) {\r\n showErr(err as Error)\r\n }\r\n \r\n\r\n }\r\n}\r\n\r\nfunction hideNFTFlexComponents() {\r\n const hideNFTFlexComponents = NFTPoolSection.querySelectorAll(\".hiddenByDefault\") as NodeListOf\r\n\r\n for(let i = 0; i < hideNFTFlexComponents.length; i++){\r\n hideNFTFlexComponents[i].classList.add(\"hidden\")\r\n }\r\n}\r\n\r\nfunction showNFTFlexComponents() {\r\n const showNFTFlexComponents = NFTPoolSection.querySelectorAll(\".shownUnselectedByDefault\") as NodeListOf\r\n \r\n for(let i = 0; i < showNFTFlexComponents.length; i++){\r\n showNFTFlexComponents[i].classList.remove(\"selected\")\r\n }\r\n}\r\n\r\nfunction quitNFTFlex() { \r\n return function (event: Event){\r\n event.preventDefault();\r\n \r\n let element = event.target as HTMLElement\r\n \r\n if (element.getAttribute(\"id\") == \"nft-pools-section\" || element.getAttribute(\"id\") == \"cancel-stake-unstake\") {\r\n qs(\".nft-flex\").innerHTML = \"\"\r\n qs(\"#nft-pools-section\").classList.add(\"hidden\")\r\n\r\n hideNFTFlexComponents()\r\n showNFTFlexComponents()\r\n }\r\n }\r\n}\r\n\r\nconst NFTPoolSection = qs(\"#nft-pools-section\") as HTMLElement \r\nNFTPoolSection.addEventListener(\"click\", quitNFTFlex())\r\n\r\n//Burger button\r\nconst burgerTogglers = qsa(\".toggleBurguer\") as NodeListOf\r\nburgerTogglers.forEach(toggler => {\r\n toggler.addEventListener('click', () => {\r\n toggleBurgerNav();\r\n });\r\n});\r\n\r\nconst toggleBurgerNav = () => {\r\n const burgerButton = qs(\".burger-button\") as HTMLElement\r\n const rightNav = qs('.burguer-content') as HTMLElement\r\n\r\n rightNav.classList.toggle('show-right__nav')\r\n burgerButton.classList.toggle('burger-button--toggle')\r\n};\r\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\n\nexport default function _objectSpreadProps(target, source) {\n source = source != null ? source : {}\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(\n target,\n key,\n Object.getOwnPropertyDescriptor(source, key)\n );\n });\n }\n\n return target;\n}","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keyStores = __importStar(require(\"./key_stores/browser-index\"));\n__exportStar(require(\"./common-index\"), exports);\n__exportStar(require(\"./browser-connect\"), exports);\nrequire(\"error-polyfill\");\n","module.exports = require(\"./lib\");","export const CHEDDAR_CONTRACT_NAME = 'token.cheddar.near'\r\nexport const CHEDDAR_NFT_CONTRACT_NAME = 'nft.cheddar.near'\r\nexport const TESTNET_CHEDDAR_CONTRACT_NAME = 'token-v3.cheddar.testnet'\r\nexport const TESTNET_CHEDDAR_NFT_CONTRACT_NAME = 'nft.cheddar.testnet'\r\nexport const NO_CONTRACT_DEPOSIT_NEAR = \"no-contract-deposit-near\"\r\n\r\nconst MAINNET_NETWORKID = 'mainnet'\r\nconst MAINNET_NODEURL = 'https://rpc.mainnet.near.org'\r\nconst MAINNET_WALLETURL = 'https://wallet.near.org'\r\nconst MAINNET_HELPERURL = 'https://helper.mainnet.near.org'\r\nconst MAINNET_EXPLORERURL = 'https://explorer.mainnet.near.org'\r\n\r\nconst TESTNET_NETWORKID = 'testnet'\r\nconst TESTNET_NODEURL = 'https://rpc.testnet.near.org'\r\nconst TESTNET_WALLETURL = 'https://wallet.testnet.near.org'\r\nconst TESTNET_HELPERURL = 'https://helper.testnet.near.org'\r\nconst TESTNET_EXPLORERURL = 'https://explorer.testnet.near.org'\r\n\r\nexport const ENV = MAINNET_NETWORKID\r\n\r\nexport type FarmData = {\r\n index?: number;\r\n poolType: string;\r\n poolName:string;\r\n contractName:string;\r\n tokenContractName:string;\r\n nftBaseUrl?: string[];\r\n description?: string[];\r\n descriptionLink?: string[];\r\n config?: {[key: string]: any};\r\n}\r\n\r\ntype GetConfigResults = {\r\n nftContractAddress: string\r\n cheddarNFTBaseUrl: string\r\n networkId:string;\r\n nodeUrl:string;\r\n keyPath?:string;\r\n cheddarContractName:string;\r\n cheddarNFTContractName: string\r\n walletUrl:string;\r\n helperUrl?:string;\r\n explorerUrl?:string;\r\n masterAccount?:string;\r\n farms: Array;\r\n \r\n}\r\n\r\nexport function getConfig(env:string):GetConfigResults {\r\n switch (env) {\r\n\r\n case 'production':\r\n case 'mainnet':\r\n return {\r\n nftContractAddress: \"nft.cheddar.near\",\r\n cheddarNFTBaseUrl: \"https://bafybeicoln5rvccttgypzo26irjlskslnfynkzig6bowpsj6ay45geeice.ipfs.nftstorage.link/\",\r\n networkId: MAINNET_NETWORKID,\r\n nodeUrl: MAINNET_NODEURL,\r\n cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n cheddarNFTContractName: CHEDDAR_NFT_CONTRACT_NAME,\r\n walletUrl: MAINNET_WALLETURL,\r\n helperUrl: MAINNET_HELPERURL,\r\n explorerUrl: MAINNET_EXPLORERURL,\r\n keyPath: undefined,\r\n masterAccount:undefined,\r\n \"farms\": [\r\n {\r\n index: 0,\r\n poolType: 'single',\r\n poolName : 'pulse',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-pulse.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: '52a047ee205701895ee06a375492490ec9c597ce.factory.bridge.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 1,\r\n poolType: 'single',\r\n poolName : 'nUSDO',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-nusd.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: 'v3.oin_finance.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 2,\r\n poolType: 'single',\r\n poolName : 'ref',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-ref.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: 'token.v2.ref-finance.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 3 ,\r\n poolType: 'single',\r\n poolName : 'stNEAR',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-meta.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: 'meta-pool.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 4,\r\n poolType: 'single',\r\n poolName : 'banana',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-bananas.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: 'berryclub.ek.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 5,\r\n poolType: 'single',\r\n poolName : 'Near',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p1-farm.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: NO_CONTRACT_DEPOSIT_NEAR,\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 6,\r\n poolType: 'single',\r\n poolName : 'cheddar',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-cheddar.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined,\r\n },\r\n {\r\n index: 7,\r\n poolType: 'single',\r\n poolName : 'Nearcon',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'farm-nearcon.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: NO_CONTRACT_DEPOSIT_NEAR,\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined,\r\n },\r\n {\r\n index: 8,\r\n poolType: 'multiple',\r\n poolName : 'cheddar-ref-burrow',\r\n contractName: 'p3-ref-bbr.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n {\r\n index: 9,\r\n poolType: 'multiple',\r\n poolName : 'cheddar-meta',\r\n contractName: 'p3-meta.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n {\r\n index: 10,\r\n poolType: 'multiple',\r\n poolName : 'cheddar-neko',\r\n contractName: 'p3-neko1.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n {\r\n index: 11,\r\n poolType: 'multiple',\r\n poolName : 'cheddar-neko',\r\n contractName: 'p3-meta1.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n {\r\n index: 12,\r\n poolType: 'single',\r\n poolName: '_Cheddar B-Day! 🎉',\r\n contractName: 'p2-birthday1.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 13,\r\n poolType: 'multiple',\r\n poolName: 'REF+Cheddar',\r\n contractName: 'p3-ref.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 14,\r\n poolType: 'multiple',\r\n poolName: 'MarmaJ+Cheddar',\r\n contractName: 'p3-marmaj.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 15,\r\n poolType: 'nft',\r\n poolName: 'Holistic',\r\n nftBaseUrl: ['https://cloudflare-ipfs.com/ipfs/bafybeicx2okilwtljyac2b5prutqodxkouyvfgysuav6pspoznn2n2qs2i'],\r\n contractName: 'p4-holistic.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 15,\r\n poolType: 'nft',\r\n poolName: 'Near Nauts',\r\n nftBaseUrl: ['https://nearnaut.mypinata.cloud/ipfs'],\r\n contractName: 'p4-nearnauts.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 16,\r\n poolType: 'nft',\r\n poolName: 'Near Nauts Mutants',\r\n nftBaseUrl: ['https://nearnaut.mypinata.cloud/ipfs'],\r\n contractName: 'p4-nautmutants.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n config: { logo: \"https://media.discordapp.net/attachments/955124480043262012/1045098073929551952/IMG_2695.jpg\" }\r\n },\r\n {\r\n index: 17,\r\n poolType: 'nft',\r\n poolName: 'Cheddy',\r\n nftBaseUrl: ['https://bafybeicoln5rvccttgypzo26irjlskslnfynkzig6bowpsj6ay45geeice.ipfs.nftstorage.link'],\r\n contractName: 'p4-cheddy.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n config: { noBoost: true }\r\n },\r\n {\r\n index: 18,\r\n poolType: 'nft',\r\n poolName: 'Astropups',\r\n nftBaseUrl: ['https://nearnaut.mypinata.cloud/ipfs'],\r\n contractName: 'p4-astropups.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n config: { noBoost: false }\r\n },\r\n {\r\n index: 19,\r\n poolType: 'nft',\r\n poolName: 'Cheddy',\r\n nftBaseUrl: ['https://bafybeicoln5rvccttgypzo26irjlskslnfynkzig6bowpsj6ay45geeice.ipfs.nftstorage.link'],\r\n contractName: 'p4-cheddy1.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n config: { noBoost: true }\r\n },\r\n {\r\n index: 20,\r\n poolType: 'nft',\r\n poolName : 'Cheddar-Cafe',\r\n nftBaseUrl: ['https://nearnaut.mypinata.cloud/ipfs'],\r\n contractName: 'p4-citizencafe.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n // {\r\n // index: 21,\r\n // poolType: 'nft',\r\n // poolName : 'Cheddar-Rogues',\r\n // nftBaseUrl: ['https://cloudflare-ipfs.com/ipfs/'],\r\n // contractName: 'p4-rogues.cheddar.near',\r\n // tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n // },\r\n \r\n ]\r\n }\r\n case 'development':\r\n case 'testnet':\r\n return {\r\n nftContractAddress: \"nft.cheddar.testnet\",\r\n cheddarNFTBaseUrl: \"https://bafybeibghcllcmurku7lxyg4wgxn2zsu5qqk7h4r6bmyhpztmyd564cx54.ipfs.nftstorage.link/\",\r\n networkId: TESTNET_NETWORKID,\r\n nodeUrl: TESTNET_NODEURL,\r\n cheddarContractName: TESTNET_CHEDDAR_CONTRACT_NAME,\r\n cheddarNFTContractName: TESTNET_CHEDDAR_NFT_CONTRACT_NAME,\r\n walletUrl: TESTNET_WALLETURL,\r\n helperUrl: TESTNET_HELPERURL,\r\n explorerUrl: TESTNET_EXPLORERURL,\r\n keyPath: undefined,\r\n masterAccount:undefined,\r\n \"farms\": [\r\n {\r\n index: 0,\r\n poolType: 'multiple',\r\n poolName : 'tt',\r\n contractName: 'p3-tt.cheddar.testnet',\r\n tokenContractName: 'test-token.cheddar.testnet',\r\n },\r\n {\r\n index: 1,\r\n poolType: 'single',\r\n poolName : 'stNear',\r\n contractName: 'p2-meta.cheddar.testnet',\r\n tokenContractName: 'meta-v2.pool.testnet',\r\n },\r\n {\r\n index: 2,\r\n poolType: 'single',\r\n poolName : 'banana',\r\n contractName: 'p2-bananas.cheddar.testnet',\r\n tokenContractName: 'berryclub.testnet',\r\n },\r\n {\r\n index: 3,\r\n poolType: 'single',\r\n poolName : 'ref',\r\n contractName: 'p2-ref.cheddar.testnet',\r\n tokenContractName: 'ref.fakes.testnet',\r\n },\r\n {\r\n index: 4,\r\n poolType: 'nft',\r\n poolName : 'Holistic Pilgrims',\r\n contractName: 'cheddy-nft.cheddar.testnet',\r\n tokenContractName: 'token-v3.cheddar.testnet',\r\n nftBaseUrl: [\r\n 'https://cloudflare-ipfs.com/ipfs/bafybeicx2okilwtljyac2b5prutqodxkouyvfgysuav6pspoznn2n2qs2i'\r\n ]\r\n\r\n },\r\n ]\r\n }\r\n default:\r\n throw Error(`Unknown environment '${env}'. Can be configured in src/config.js.`)\r\n }\r\n}\r\n","import {WalletInterface} from \"./wallet-interface\"\r\nimport {U64String,U128String} from \"./util\"\r\nimport {BatchTransaction} from \"./batch-transaction\"\r\nimport { Transaction } from \"near-api-js/lib/transaction\";\r\n\r\nconst NOT_CONNECTED=\"Connect to NEAR\";\r\n\r\n// -----------------------------\r\n// Default disconnected wallet\r\n// SmartContract proxies start with this dummy wallet until the user chooses a wallet\r\n// -----------------------------\r\nexport class DisconnectedWallet implements WalletInterface {\r\n\r\n requestSignTransactions(transactions: Transaction[], callbackUrl?: string, meta?: string): Promise;\r\n requestSignTransactions(options: RequestSignTransactionsOptions): Promise;\r\n requestSignTransactions(transactions: any, callbackUrl?: any, meta?: any): Promise {\r\n return Promise.resolve()\r\n }\r\n \r\n getAccountId():string{ return NOT_CONNECTED }\r\n getDisplayableAccountId(): string {\r\n return this.getAccountId()\r\n }\r\n\r\n async getAccountBalance(accountId?:string):Promise{ return \"0\"};\r\n\r\n getNetwork(){ return NOT_CONNECTED }\r\n\r\n setNetwork(value:string){ throw Error(\"can't change network\")}\r\n\r\n // Note: Connection is started from the chrome-extension, so web pages don't get any info before the user decides to \"connect\"\r\n // Also pages don't need to create buttons/options to connect to different wallets, as long all wallets connect with Dapp-pages by using this API\r\n // potentially, a single DApp can be used to operate on multiple chains, since all requests are high-level and go thru the chrome-extension\r\n\r\n isConnected() { return false}\r\n \r\n disconnect(){ };\r\n\r\n connectionHelp(){ window.open(\"https://wallet.near.org/\") }\r\n\r\n /**\r\n * isConnected or throws \"wallet not connected\"\r\n */\r\n checkConnected() { throw Error(NOT_CONNECTED) }\r\n\r\n /**\r\n * Just a single contract \"view\" call\r\n */\r\n async view (contract:string, method:string, args:Record):Promise{\r\n throw Error(NOT_CONNECTED) \r\n }\r\n\r\n /**\r\n * A single contract \"payable\" fn call\r\n */\r\n async call(contract:string, method:string, args:Record, gas?:U64String, attachedYoctos?:U128String):Promise{\r\n throw Error(NOT_CONNECTED) \r\n }\r\n\r\n /**\r\n * ASYNC. sends a BatchTransaction to the blockchain\r\n */\r\n async apply (bt:BatchTransaction):Promise{\r\n throw Error(NOT_CONNECTED) \r\n }\r\n\r\n /**\r\n * ASYNC, low level generic access\r\n */\r\n queryChain(method: string, args: object): Promise {\r\n throw Error(NOT_CONNECTED) \r\n }\r\n\r\n}\r\n\r\n//export singleton\r\nexport const disconnectedWallet = new DisconnectedWallet();\r\n","\r\nexport const DEFAULT_GAS=\"200\"+\"0\".repeat(12);\r\n\r\nexport type U64String = string;\r\nexport type U128String = string;\r\n\r\n\r\n//helper to check wallet version\r\nexport class SemVer {\r\n \r\n constructor (public major:number, public minor:number, public version:number){};\r\n\r\n static fromNumber(num:number):SemVer{ \r\n const str=num.toString().padStart(9,\"0\");\r\n return new SemVer(Number(str.slice(0,3)), Number(str.slice(3,3)), Number(str.slice(6,3)))\r\n }\r\n\r\n toNumber():number{return this.major*1e6 + this.minor*1e3 + this.version}\r\n\r\n toString(){return `${this.major}.${this.minor}.${this.version}`}\r\n}\r\n","import {WalletInterface, EventHandler} from \"../wallet-interface\"\r\nimport {BatchTransaction} from \"../batch-transaction\"\r\nimport {U64String,U128String, DEFAULT_GAS} from \"../util\"\r\n\r\nimport { WalletConnection } from \"near-api-js\";\r\nimport { getTransactionLastResult, JsonRpcProvider } from \"near-api-js/lib/providers\";\r\nimport BN from 'bn.js'; //WARN: It has to be the same bn.js version as near-api-js\r\n\r\n//-----------------------------\r\n// WalletInterface implementation\r\n// for the NEAR Web Wallet\r\n//-----------------------------\r\nexport class NearWebWallet implements WalletInterface {\r\n \r\n constructor (\r\n public walletConnection: WalletConnection,\r\n )\r\n {}\r\n\r\n getAccountId():string{\r\n return this.walletConnection.getAccountId();\r\n }\r\n\r\n getDisplayableAccountId(): string {\r\n const accName = this.getAccountId()\r\n return accName.length > 22 ? accName.slice(0, 10) + \"..\" + accName.slice(-10) : accName\r\n }\r\n\r\n async getAccountBalance(accountId?:string):Promise {\r\n const data = await this.walletConnection.account().getAccountBalance();\r\n return data.total;\r\n }\r\n\r\n getNetwork(){ return this.walletConnection._near.connection.networkId}\r\n\r\n setNetwork(value:string){ throw Error(\"can't change networkId\")}\r\n\r\n isConnected() {\r\n return this.walletConnection.isSignedIn()\r\n }\r\n \r\n disconnect(){\r\n this.walletConnection.signOut(); \r\n }\r\n\r\n connectionHelp(){\r\n window.open(\"https://wallet.near.org/\")\r\n }\r\n\r\n /**\r\n * isConnected or throws \"wallet not connected\"\r\n */\r\n checkConnected() {\r\n if (!this.walletConnection.isSignedIn()) {\r\n throw Error(\"Wallet is not connected\")\r\n }\r\n }\r\n\r\n /**\r\n * Just a single contract \"view\" call\r\n */\r\n async view (contract:string, method:string, args:Record):Promise{\r\n return this.walletConnection.account().viewFunction(contract, method, args);\r\n }\r\n\r\n /**\r\n * A single contract \"payable\" fn call\r\n */\r\n async call(contract:string, method:string, args:Record, gas?:U64String, attachedYoctos?:U128String):Promise{\r\n //clear SearchURL before calling to not mix old results with new ones\r\n window.history.replaceState({}, '', location.pathname)\r\n const finalExecOutcome = await this.walletConnection.account().functionCall(contract, method, args, new BN(gas||DEFAULT_GAS), new BN(attachedYoctos||\"0\"));\r\n return getTransactionLastResult(finalExecOutcome);\r\n }\r\n\r\n /**\r\n * ASYNC. sends a BatchTransaction to the blockchain\r\n */\r\n async apply (bt:BatchTransaction):Promise{\r\n //TODO - implement BatchTransactions\r\n throw Error(\"Not implemented\");\r\n }\r\n\r\n /**\r\n * ASYNC, low level generic access\r\n */\r\n async queryChain(method: string, args: object): Promise {\r\n const provider = this.walletConnection._connectedAccount.connection.provider as JsonRpcProvider \r\n return provider.sendJsonRpc(method,args);\r\n }\r\n\r\n}\r\n","import {WalletInterface, EventHandler} from \"../wallet-interface\"\r\nimport {BatchTransaction, FunctionCall, Transfer} from \"../batch-transaction\"\r\nimport {U64String,U128String,SemVer} from \"../util\"\r\n\r\n//-------------------------------\r\n// WalletInterface implementation\r\n// for Narwallet-chrome-extension\r\n//-------------------------------\r\n\r\n//-----------------------------\r\n//-- SINGLETON WALLET class --\r\n//-----------------------------\r\nexport class Narwallet implements WalletInterface {\r\n \r\n _isConnected: boolean =false;\r\n _accountId: string=\"\";\r\n _network=\"mainnet\"; //default required network. Users will be required to connect accounts from mainnet\r\n _requiredVersion = new SemVer(2,0,0); //what wallet version this webapp requires (depends on the wallet-interface and be changed by the DApp)\r\n version = new SemVer(0,0,0); //chrome-extension wallet version, 0 until wallet connects\r\n\r\n getAccountId():string{\r\n return this._accountId;\r\n }\r\n\r\n getDisplayableAccountId(): string {\r\n const accName = this.getAccountId()\r\n return accName.length > 22 ? accName.slice(0, 10) + \"..\" + accName.slice(-10) : accName\r\n }\r\n\r\n async getAccountBalance(accountId?:string):Promise {\r\n const requestPayload={dest:\"ext\", code:\"get-account-balance\", accountId:accountId||this._accountId}\r\n return backgroundRequest(requestPayload);\r\n }\r\n\r\n getNetwork(){ return this._network }\r\n setNetwork(value:string){ this._network = value;}\r\n\r\n setRequiredVersion(semver:SemVer){ this._requiredVersion = semver}\r\n\r\n // Note: Connection is started from the chrome-extension, so web pages don't get any info before the user decides to \"connect\"\r\n // Also pages don't need to create buttons/options to connect to different wallets, as long all wallets connect with Dapp-pages by using this API\r\n // potentially, a single DApp can be used to operate on multiple chains, since all requests are high-level and go thru the chrome-extension\r\n isConnected() {return this._isConnected}\r\n \r\n disconnect(){\r\n //console.log(\"wallet.disconnect\") \r\n document.dispatchEvent(new CustomEvent(\"wallet-disconnected\"));\r\n if (this._isConnected) window.postMessage({dest:\"ext\",code:\"disconnect\"},\"*\"); //inform the extension\r\n this._isConnected = false;\r\n this._accountId = \"\";\r\n this.version = new SemVer(0,0,0)\r\n }\r\n\r\n connectionHelp(){\r\n window.open(\"http://www.narwallets.com/help/connect-to-web-app\")\r\n }\r\n\r\n /**\r\n * isConnected or throws \"wallet not connected\"\r\n */\r\n checkConnected() {\r\n if (!this._isConnected) {\r\n throw Error(\"Wallet is not connected. Open the wallet extension and click 'Connect to Web Page'\")\r\n }\r\n }\r\n\r\n /**\r\n * Just a single contract \"view\" call\r\n */\r\n async view (contract:string, method:string, args:Record):Promise{\r\n\r\n //ask the extension to make the view-call\r\n const requestPayload={dest:\"ext\", code:\"view\", contract:contract, method:method, args:args}\r\n return backgroundRequest(requestPayload);\r\n }\r\n\r\n /**\r\n * A single contract \"payable\" fn call\r\n */\r\n async call(contract:string, method:string, args:Record, gas?:U64String, attachedYoctos?:U128String):Promise{\r\n const bt=new BatchTransaction(contract)\r\n bt.addItem(new FunctionCall(method,args,gas,attachedYoctos))\r\n return this.apply(bt)\r\n }\r\n\r\n /**\r\n * ASYNC. sends a BatchTransaction to the blockchain\r\n */\r\n async apply (bt:BatchTransaction):Promise{\r\n\r\n //ask the extension to broadcast the transaction\r\n //register request. Promise will be resolved when the response arrives\r\n const requestPayload={dest:\"ext\", code:\"apply\", tx:bt}\r\n return backgroundRequest(requestPayload);\r\n }\r\n\r\n /**\r\n * ASYNC, low level generic access\r\n */\r\n async queryChain(method: string, args: object): Promise {\r\n const requestPayload={dest:\"ext\", code:\"json-rpc\", method:method, args:args}\r\n return backgroundRequest(requestPayload);\r\n }\r\n\r\n}\r\n//-----------------\r\n// SINGLETON EXPORT\r\n//-----------------\r\nexport let narwallets = new Narwallet();\r\n\r\n//----------------------------------------\r\n//-- Init, add all listeners\r\n//----------------------------------------\r\nexport function addNarwalletsListeners(onConnect:EventHandler,OnDisconnect:EventHandler){\r\n addGeneralListener()\r\n addOnConnectListener(onConnect)\r\n addOnDisconnectListener(OnDisconnect)\r\n}\r\n//----------------------------------------------------\r\n//-- LISTEN to \"message\" from injected content script\r\n//-- msg path is ext-> content-script-> here-> dispatchEvent(\"wallet-connected\"|\"wallet-disconnected\"|\"wallet-event\")\r\n//-- process by raising 'wallet-event' \r\n//----------------------------------------------------\r\nexport function addGeneralListener(){\r\n window.addEventListener(\"message\", \r\n function(event) {\r\n //console.log(\"wallet-ts message-listener\",event.data.dest, event.data);\r\n if (event.source != window) return; //only internal messages (from the injected content script)\r\n if (event.data.dest!=\"page\") return; //only messages destined to this web page (DApp) \r\n msgReceivedFromContentScript(event.data)\r\n }\r\n , false)\r\n ;\r\n}\r\n//to add connect event listener\r\nexport function addOnConnectListener(handler:EventHandler){\r\n document.addEventListener(\"wallet-connected\",handler)\r\n}\r\n//to add disconnect event listener\r\nexport function addOnDisconnectListener(handler:EventHandler){\r\n document.addEventListener(\"wallet-disconnected\",handler)\r\n}\r\n\r\n//process message from ext/page\r\nfunction msgReceivedFromContentScript(msg:Record){\r\n \r\n //console.log(\"msg ext->page: \" + JSON.stringify(msg));\r\n\r\n //handle connect and disconnect\r\n if (msg.code==\"connect\"){\r\n //prepare response\r\n const walletNetwork = narwallets.getNetwork();\r\n const response={dest:\"ext\", code:\"connected\", relayer:\"wallet-api\", version:\"0.1\", network:walletNetwork, err:\"\"}\r\n //capture wallet version, default 1.0.2\r\n if (msg.data?.version){\r\n narwallets.version=SemVer.fromNumber(msg.data?.version)\r\n }\r\n else {\r\n narwallets.version= new SemVer(1,0,2);\r\n }\r\n //check required version\r\n if (narwallets.version.toNumber() req.requestId==msg.requestId);\r\n if (inx>=0){\r\n //remove it from the array\r\n let r=requests.splice(inx,1)[0];\r\n //reject or resolve promise\r\n if (msg.err){\r\n return r.reject(Error(msg.err));\r\n }\r\n else {\r\n return r.resolve(msg.data);\r\n }\r\n }\r\n else {\r\n console.error(\"requestId NOT FOUND \",msg) \r\n }\r\n \r\n}\r\n\r\n/* ----------------\r\nexample event data:\r\n connected = {\r\n code: 'connected',\r\n source:'ext',\r\n dest:'page',\r\n err: undefined,\r\n data: {\r\n accountId: \"${user_account_id}\"\r\n },\r\n }\r\n*/\r\n\r\n//requests made to the extension's background.js\r\ntype requestInfo = {\r\n requestId:number,\r\n payload: any,\r\n resolve: Function,\r\n reject: Function,\r\n}\r\nconst requests:requestInfo[]=[];\r\nlet requestId=0; //incremental request-id\r\n\r\n//result from the extension\r\nexport type RequestResult = {\r\n requestId:number,\r\n err?:string,\r\n data?:any,\r\n}\r\n\r\n//queue a request, send to the extension via window.postMessage, return a Promise\r\nexport function backgroundRequest(requestPayload:any):Promise{\r\n return new Promise((resolve,reject)=>{\r\n const request:requestInfo = {requestId:++requestId, payload: requestPayload, reject:reject, resolve:resolve}\r\n requests.push(request)\r\n requestPayload.requestId=requestId; //add requestId to payload\r\n if (!requestPayload.dest) requestPayload.dest=\"ext\";\r\n //broadcast (injected content script will process it and forward to the chrome-extension)\r\n window.postMessage(requestPayload, \"*\")\r\n })\r\n}\r\n","import {U64String, U128String, DEFAULT_GAS} from './util'\r\n\r\n//----------------------\r\n//-- BatchTransaction --\r\n//----------------------\r\n// this classes exists to facilitate the creation of BatchTransactions\r\n// a BatchTransaction is a series of actions *to be executed on a fixed receiver*\r\n// by having this classes we can make typescript help with type-checking and code suggestions\r\n//\r\nexport class BatchTransaction {\r\n items: BatchAction[] = []\r\n constructor(\r\n public receiver:string,\r\n ){}\r\n\r\n addItem(item:BatchAction){\r\n this.items.push(item)\r\n }\r\n\r\n}\r\n\r\n//generic batch-action\r\nexport class BatchAction {\r\n constructor(\r\n public action: string,\r\n public attached: U128String = \"0\",\r\n ){}\r\n}\r\n\r\nexport class FunctionCall extends BatchAction{\r\n public gas:U64String;\r\n constructor(\r\n public method:string,\r\n public args: Record,\r\n gas?: U64String,\r\n attached?: U128String\r\n ){\r\n super(\"call\",attached)\r\n this.gas = gas||DEFAULT_GAS;\r\n }\r\n\r\n}\r\n\r\nexport class Transfer extends BatchAction{\r\n constructor(\r\n attached:U128String\r\n ){\r\n super(\"transfer\",attached)\r\n }\r\n}\r\n\r\n//TODO\r\n//add create-account, delete-account, etc\r\n","//----------------------------------\r\n//------ conversions YoctoNEAR <-> Near\r\n//----------------------------------\r\n\r\n//BigInt scientific notation\r\nconst base1e = BigInt(10);\r\nfunction b1e(n: number) { return base1e ** BigInt(n) };\r\nconst b1e12 = b1e(12);\r\nconst b1e24 = b1e(24);\r\nconst b1e18 = b1e(18);\r\n\r\n//TGas number -> U64String\r\nexport function TGas(tgas: number): string {\r\n return (BigInt(tgas) * b1e12).toString(); // tgas*1e12 // Note: gas is u64\r\n}\r\n//NEAR amount (up-to 6 dec points) -> U128String yoctoNEAR\r\nexport function ntoy(near: number): string {\r\n return (BigInt(Math.round(near * 1e6)) * b1e18).toString(); // near*1e24 // Note: YoctoNear is u128\r\n}\r\n\r\n//yoctoNEAR amount -> number, rounded\r\n/**\r\n * returns Near number with 5 decimal digits\r\n * @param {string} yoctoNEAR amount \r\n */\r\nexport function yton(yoctos: string|BigInt): number {\r\n try {\r\n yoctos = yoctos.toString()\r\n if (yoctos == undefined) return 0;\r\n const decimals = 5\r\n const bn = BigInt(yoctos) + BigInt(0.5 * 10 ** (24 - decimals)); //round 6th decimal\r\n const truncated = ytonFull(bn.toString()).slice(0, (decimals - 24))\r\n return Number(truncated)\r\n }\r\n catch (ex) {\r\n console.log(\"ERR: yton(\", yoctos, \")\", ex)\r\n return NaN;\r\n }\r\n}\r\n\r\n//yoctoNEAR amount -> number, rounded\r\n/**\r\n * returns Near number with 5 decimal digits\r\n * @param {string} yoctoNEAR amount \r\n */\r\n export function ytonLong(yoctos: string): number {\r\n try {\r\n if (yoctos == undefined) return 0;\r\n const decimals = 8\r\n const bn = BigInt(yoctos) + BigInt(0.5 * 10 ** (24 - decimals)); //round 6th decimal\r\n const truncated = ytonFull(bn.toString()).slice(0, (decimals - 24))\r\n return Number(truncated)\r\n }\r\n catch (ex) {\r\n console.log(\"ERR: yton(\", yoctos, \")\", ex)\r\n return NaN;\r\n }\r\n}\r\n/**\r\n * returns string with a decimal point and 24 decimal places\r\n * @param {string} yoctoString amount in yoctos\r\n */\r\nexport function ytonFull(yoctoString: string): string {\r\n let result = (yoctoString + \"\").padStart(25, \"0\")\r\n result = result.slice(0, -24) + \".\" + result.slice(-24)\r\n return result\r\n}\r\n\r\n//-------------------------------------\r\n//--- conversions User-input <-> Number\r\n//-------------------------------------\r\n\r\n/** rebase a number based on decimal. Examples\r\n* convertToDecimals(\"1\",3) = 0.001\r\n* convertToDecimals(\"0\",3) = 0.0\r\n* convertToDecimals(\"1000\",3) = 1.0\r\n* convertToDecimals(\"1000\",3) = 1.0\r\n* convertToDecimals(\"12345678\",3) = 123.45678\r\n* If truncate is provided, then the fractional part of the number is truncated to the\r\n* `truncate` decimal digits. If `truncate == 0` then the fractional part is ommited.\r\n* Example:\r\n* convertToDecimals(\"12345678\", 1, 1) = 123.4\r\n*/ \r\nexport function convertToDecimals(str:string|BigInt, decimals: number, truncate:number) {\r\n str = str.toString() // convert numbers and bigint\r\n // clear leading zeros\r\n let i = 0\r\n for(; i 0) {\r\n return integer + \".\" + fractional.substring(0, truncate);\r\n }\r\n return integer;\r\n}\r\n\r\n/** Takes a decimal number in string and returns\r\n* a number as a string rebased to given decimal base.\r\n* Examples\r\n* convertToBase(\"1\", 3) = \"1000\"\r\n* convertToBase(\"1234\", 3) = \"1234000\"\r\n* convertToBase(\"1.234\", 3) = \"1234\"\r\n* convertToBase(\"1.2345\", 3) = \"1234\"\r\n* convertToBase(\"0.12345\", 3) = \"123\"\r\n*/ \r\nexport function convertToBase(n:string, decimals:string) {\r\n let decimals_n = Number(decimals);\r\n // clear leading zeros\r\n let i = 0\r\n for(; i4,2, or none (never 3 to not confuse the international user)\r\n* @param {number} n \r\n*/\r\nexport function removeDecZeroes(withDecPoint: string): string {\r\n let decPointPos = withDecPoint.indexOf('.')\r\n if (decPointPos <= 0) return withDecPoint;\r\n let decimals = withDecPoint.length - decPointPos - 1;\r\n while (withDecPoint.endsWith(\"0\") && decimals-- > 4) withDecPoint = withDecPoint.slice(0, -1);\r\n if (withDecPoint.endsWith(\"00\")) withDecPoint = withDecPoint.slice(0, -2)\r\n if (withDecPoint.endsWith(\".00\")) withDecPoint = withDecPoint.slice(0, -3)\r\n return withDecPoint;\r\n}\r\n/**\r\n* Formats a number in NEAR to a string with commas and 5,2, or 0 decimal places\r\n* @param {number} n \r\n*/\r\nexport function toStringDecMin(n: number) {\r\n return addCommas(removeDecZeroes(toStringDecSimple(n)));\r\n}\r\n/**\r\n * adds commas to a string number \r\n * @param {string} str \r\n */\r\nexport function addCommas(str: string) {\r\n let n = str.indexOf(\".\")\r\n if (n == -1) n = str.length\r\n n -= 4\r\n while (n >= 0) {\r\n str = str.slice(0, n + 1) + \",\" + str.slice(n + 1)\r\n n = n - 3\r\n }\r\n return str;\r\n}\r\n\r\n","// document.querySelector shortcuts\r\n// qs => document.querySelector -> HTMLElement\r\nexport function qs(selector:string){ return document.querySelector(selector) as HTMLElement}\r\n// qsi => document.querySelector -> HTMLInputElement\r\nexport function qsi(selector:string){ return document.querySelector(selector) as HTMLInputElement}\r\n// qsa => document.querySelectorAll -> NodeListOf\r\nexport function qsa(selector:string){ return document.querySelectorAll(selector)}\r\n\r\n///set innerText for all matching HTMLElements\r\nexport function qsaInnerText(selector:string, innerText:string){ \r\n document.querySelectorAll(selector).forEach(e=> {\r\n if (e instanceof HTMLElement) e.innerText = innerText;\r\n });\r\n}\r\n\r\n///set innerText for all matching HTMLElements\r\nexport function qsaAttribute(selector:string, attributeKey: string, attributeValue:string){ \r\n document.querySelectorAll(selector).forEach(e=> {\r\n if (e instanceof HTMLElement) e.setAttribute(attributeKey, attributeValue)\r\n });\r\n}\r\n\r\n///set innerText for first matching HTMLElement\r\nexport function qsInnerText(selector:string, innerText:string){ \r\n document.querySelector(selector)!.innerHTML = innerText\r\n}\r\n\r\n\r\nexport function show(el:Element, onOff:boolean=true){\r\n (el as HTMLElement).style.display= (onOff?\"\":\"none\");\r\n}\r\nexport function hide(el:Element){\r\n (el as HTMLElement).style.display=\"none\";\r\n}\r\n\r\nexport function showPopup(selector:string, msg?:string, title?:string){\r\n cancelWait=true;\r\n const el = qs(selector);\r\n const overlay:HTMLElement = qs(\"#overlay1\");\r\n //hide all\r\n overlay.querySelectorAll(\".box.popup\").forEach( hide )\r\n //show required\r\n //get children by id\r\n const titleElem = el.querySelector(\"#title\") as HTMLElement\r\n const msgElem= el.querySelector(\"#msg\") as HTMLElement\r\n if (msgElem && msg) msgElem.innerHTML=msg;\r\n if (titleElem && title) titleElem.innerText=title;\r\n show(el);\r\n //show overlay\r\n show(overlay);\r\n}\r\nexport function hidePopup(selector:string){\r\n hide(qs(selector));\r\n}\r\nexport function hideOverlay(){\r\n cancelWait=true;\r\n hide(qs(\"#overlay1\"));\r\n}\r\n\r\nlet waitStartTimer:any;\r\nlet cancelWait:boolean=false;\r\nexport function showWait(msg?:string, title?:string){\r\n cancelWait=false;\r\n waitStartTimer = setTimeout(() => {\r\n if (!cancelWait) showPopup(\"#wait-box\",msg,title);\r\n }, 500);\r\n}\r\nexport function hideWaitKeepOverlay(){\r\n cancelWait=true;\r\n if (waitStartTimer){\r\n clearTimeout(waitStartTimer);\r\n waitStartTimer=undefined;\r\n }\r\n hidePopup(\"#wait-box\");\r\n}\r\n\r\nexport function showMessage(msg:string,title?:string){\r\n showPopup(\"#message-box\",msg,title);\r\n}\r\nexport function showSuccess(msg:string,title?:string){\r\n console.log(msg + \" \" + title)\r\n showPopup(\"#success-box\",msg,title);\r\n}\r\n\r\nexport function showError(msg:string,title?:string){\r\n title = (msg == \"Error from wallet: userRejected\") ? \"Transaction Rejected\" : title\r\n showPopup(\"#error-box\",msg,title);\r\n}\r\nexport function showErr(ex:Error){\r\n console.log(ex)\r\n showError(ex.message);\r\n}\r\n\r\n","\r\n// Calling contract methods with attachedDeposit causes a redirect to NEAR Wallet.\r\n// later the wallet redirects the browser back to this app, adding 2 params in URLSearchParams\r\n// ?transactionHashes=xxxxx & errorCode=eeeee\r\n// this fn must be called to check if we're re-spawning from a wallet redirect\r\n// to obtain transaction result information\r\n// check if (`err`) and if not you can get function call result with `data`, and full-tx-result with `finalExecutionOutcome`\r\n\r\nimport { utils, WalletConnection } from 'near-api-js'\r\nimport { FinalExecutionOutcome, getTransactionLastResult } from \"near-api-js/lib/providers\"\r\nimport { FunctionCall } from 'near-api-js/lib/transaction'\r\nimport { parseRpcError } from 'near-api-js/lib/utils/rpc_errors'\r\n\r\nfunction removeQueryString(){\r\n var uri = window.location.toString();\r\n if (uri.indexOf(\"?\") > 0) {\r\n var clean_uri = uri.substring(0, uri.indexOf(\"?\"));\r\n window.history.replaceState({}, document.title, clean_uri);\r\n } \r\n}\r\n\r\nexport async function checkRedirectSearchParams( walletConnection:WalletConnection, nearExplorerUrl:string ): \r\n Promise<{err?:string, data?:any, method?:string, finalExecutionOutcome?:FinalExecutionOutcome }> {\r\n\r\n try {\r\n const urlParams = new URLSearchParams(window.location.search)\r\n removeQueryString()\r\n const txHash = urlParams.get('transactionHashes')\r\n const errorCode = urlParams.get('errorCode')\r\n\r\n if (errorCode) {\r\n // If errorCode, then the redirect succeeded but the tx was rejected/failed\r\n const newError = 'Error from wallet: ' + errorCode\r\n console.error(newError)\r\n return {\r\n err: newError\r\n }\r\n }\r\n\r\n if (!txHash) return {};\r\n\r\n if (txHash.includes(',')) {\r\n // NOTE: when a single tx is executed, transactionHashes is equal to that hash\r\n const newError = 'Expected single txHash, got: ' + txHash\r\n console.error(newError)\r\n return {\r\n err: newError\r\n }\r\n }\r\n\r\n const decodedTxHash = utils.serialize.base_decode(txHash)\r\n const finalExecOutcome = await walletConnection.account().connection.provider.txStatus( decodedTxHash, walletConnection.getAccountId());\r\n\r\n let method:string|undefined = undefined;\r\n if (finalExecOutcome.transaction?.actions?.length){\r\n const actions=finalExecOutcome.transaction.actions\r\n //recover methodName of first FunctionCall action\r\n for(let n=0;n${finalExecOutcome.transaction.hash} failed`\r\n\r\n return {\r\n err: errorMessage,\r\n method:method,\r\n }\r\n }\r\n\r\n return {\r\n data: getTransactionLastResult(finalExecOutcome),\r\n method:method,\r\n finalExecutionOutcome: finalExecOutcome \r\n }\r\n\r\n }\r\n catch(ex){\r\n console.error(ex.message);\r\n return { err: ex.message};\r\n }\r\n}\r\n\r\n export async function checkRedirectSearchParamsMultiple( walletConnection:WalletConnection, nearExplorerUrl:string ): \r\n Promise<{err?:string, data?:any, method?:string, finalExecutionOutcome?:FinalExecutionOutcome }[]> {\r\n\r\n try {\r\n const urlParams = new URLSearchParams(window.location.search)\r\n removeQueryString()\r\n const txHash: string|null = urlParams.get('transactionHashes')\r\n const errorCode = urlParams.get('errorCode')\r\n\r\n if (errorCode) {\r\n // If errorCode, then the redirect succeeded but the tx was rejected/failed\r\n const newError = 'Error from wallet: ' + errorCode\r\n console.error(newError)\r\n return [{\r\n err: newError\r\n }]\r\n }\r\n\r\n if (!txHash) return [];\r\n\r\n let transactionArray: string[]\r\n\r\n if (txHash.includes(',')) {\r\n // NOTE: when a single tx is executed, transactionHashes is equal to that hash\r\n transactionArray = txHash.split(\",\")\r\n // const newError = 'Expected single txHash, got: ' + txHash\r\n // console.error(newError)\r\n // return {\r\n // err: newError\r\n // }\r\n } else {\r\n transactionArray = [ txHash ]\r\n }\r\n // [1, 3, 6].map(i => i + 3) --> [4, 6, 9]\r\n const decodedTxHashArray = transactionArray.map(hash => utils.serialize.base_decode(hash)) \r\n const finalExecOutcomeArray = await Promise.all(decodedTxHashArray.map(async (decodedTxHash) => {\r\n return await walletConnection.account().connection.provider.txStatus( decodedTxHash, walletConnection.getAccountId());\r\n }))\r\n\r\n let output = []\r\n\r\n for(let i = 0; i < finalExecOutcomeArray.length; i++) {\r\n let method:string|undefined = undefined;\r\n const finalExecOutcome = finalExecOutcomeArray[i]\r\n if (finalExecOutcome.transaction?.actions?.length){\r\n const actions=finalExecOutcome.transaction.actions\r\n //recover methodName of first FunctionCall action\r\n for(let n=0;n${finalExecOutcome.transaction.hash} failed`\r\n output.push(\r\n {\r\n err: errorMessage,\r\n method:method,\r\n }\r\n )\r\n } else {\r\n output.push(\r\n {\r\n data: getTransactionLastResult(finalExecOutcome),\r\n method:method,\r\n finalExecutionOutcome: finalExecOutcome \r\n }\r\n )\r\n }\r\n }\r\n \r\n return output\r\n }\r\n catch(ex){\r\n console.error(ex.message);\r\n return [{ err: ex.message}];\r\n }\r\n\r\n}\r\n","import {WalletInterface} from \"./wallet-interface\"\r\nimport {U64String,U128String} from \"./util\"\r\nimport {disconnectedWallet} from \"./disconnected-wallet\";\r\nimport * as nearAPI from \"near-api-js\"\r\nimport { near, nearConfig } from \"..\";\r\nimport { JsonRpcProvider } from \"near-api-js/lib/providers\";\r\n\r\n//-----------------------------\r\n// Base smart-contract proxy class\r\n// provides constructor, view & call methods\r\n// derive your specific contract proxy from this class\r\n//-----------------------------\r\nexport class SmartContract {\r\n \r\n public wallet:WalletInterface;\r\n public nearWallet: nearAPI.WalletConnection;\r\n public account: nearAPI.ConnectedWalletAccount\r\n public provider: JsonRpcProvider\r\n\r\n constructor( \r\n public contractId:string, \r\n )\r\n {\r\n this.wallet = disconnectedWallet; //default wallet is DisconnectedWallet\r\n this.nearWallet = new nearAPI.WalletAccount(near, null)\r\n this.account = this.nearWallet.account()\r\n this.provider = new JsonRpcProvider(nearConfig.nodeUrl)\r\n }\r\n\r\n async viewWithoutAccount(method: string, args: any = {}): Promise {\r\n try {\r\n const argsAsString = JSON.stringify(args)\r\n let argsBase64 = Buffer.from(argsAsString).toString(\"base64\")\r\n const rawResult = await this.provider.query({\r\n request_type: \"call_function\",\r\n account_id: this.contractId,\r\n method_name: method,\r\n args_base64: argsBase64,\r\n finality: \"optimistic\",\r\n });\r\n \r\n // format result\r\n const res = JSON.parse(Buffer.from(rawResult.result).toString());\r\n return res\r\n } catch(err) {\r\n console.error(`Error calling function ${method} from contract ${this.contractId} with params ${JSON.stringify(args)}`, err)\r\n }\r\n \r\n }\r\n\r\n view(method:string, args?:any) : Promise {\r\n if (!this.wallet) throw Error(`contract-proxy not connected ${this.contractId} trying to view ${method}`)\r\n return this.wallet.view(this.contractId,method,args)\r\n }\r\n\r\n call(method:string, args:any, gas?:U64String, attachedYoctos?:U128String) : Promise {\r\n //console.log(this.contractId, method, args, gas, attachedYoctos)\r\n if (!this.wallet) throw Error(`contract-proxy not connected ${this.contractId} trying to call ${method}`)\r\n return this.wallet.call(this.contractId, method, args, gas, attachedYoctos)\r\n }\r\n\r\n callWithoutSend(method:string, args:any, gas?:U64String, attachedYoctos?:U128String) : Promise {\r\n //console.log(this.contractId, method, args, gas, attachedYoctos)\r\n if (!this.nearWallet) throw Error(`contract-proxy not connected ${this.contractId} trying to call ${method}`)\r\n return this.nearWallet.call(this.contractId, method, args, gas, attachedYoctos)\r\n }\r\n\r\n disconnect(){\r\n this.wallet = disconnectedWallet; //set to DisconnectedWallet\r\n }\r\n}\r\n\r\n","//JSON compatible struct ft_metadata\r\nimport {SmartContract} from \"../wallet-api/base-smart-contract\"\r\nimport * as nearAPI from \"near-api-js\"\r\n\r\nimport {ntoy, TGas} from \"../util/conversions\"\r\nimport { BN } from \"bn.js\";\r\nimport { StorageBalance } from \"./contract-structs\";\r\nimport { Action } from \"near-api-js/lib/transaction\";\r\nimport { transactions } from \"near-api-js\";\r\n\r\nexport type FungibleTokenMetadata = {\r\n spec: string;\r\n name: string;\r\n symbol: string;\r\n symbolForHtml: string;\r\n icon: string|null;\r\n reference: string|null;\r\n reference_hash: string|null;\r\n decimals: number;\r\n}\r\n\r\ntype U128String = string;\r\ntype U64String = string;\r\n\r\nexport class NEP141Trait extends SmartContract {\r\n\r\n async ft_transfer(receiver_id:string, amount:U128String, memo?:string):Promise{\r\n return this.call(\"ft_transfer\",{receiver_id:receiver_id, amount:amount, memo:memo},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n async ft_transfer_call(receiver_id:string, amount:U128String, msg:string, memo?:string):Promise{\r\n return this.call(\"ft_transfer_call\",{receiver_id:receiver_id, amount:amount, memo:memo, msg:msg},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n async ft_transfer_call_without_send(receiver_id:string, amount:U128String, msg: string = \"to farm\"):Promise{\r\n return nearAPI.transactions.functionCall(\r\n \"ft_transfer_call\", \r\n {\r\n receiver_id: receiver_id,\r\n amount: amount,\r\n msg\r\n }, \r\n new BN(\"200000000000000\"), \r\n // new BN(gas), \r\n new BN(1)\r\n )\r\n }\r\n\r\n async unstake_without_send(token:string, amount:U128String):Promise{\r\n return nearAPI.transactions.functionCall(\r\n \"unstake\", \r\n {\r\n token,\r\n amount,\r\n }, \r\n new BN(\"200000000000000\"), \r\n // new BN(gas), \r\n new BN(1)\r\n )\r\n }\r\n\r\n async ft_total_supply() : Promise {\r\n return this.viewWithoutAccount(\"ft_total_supply\")\r\n }\r\n\r\n async ft_balance_of(accountId:string) : Promise {\r\n return this.viewWithoutAccount(\"ft_balance_of\", { account_id:accountId }) \r\n }\r\n\r\n async ft_metadata() :Promise{\r\n return this.viewWithoutAccount(\"ft_metadata\");\r\n }\r\n\r\n async new(owner_id: string, owner_supply: U128String):Promise{\r\n return this.call(\"new\",{owner_id:owner_id, owner_supply:owner_supply});\r\n }\r\n\r\n /// Checks to see if an account is registered.\r\n storageBalance(accountId?: string): Promise {\r\n return this.viewWithoutAccount(\"storage_balance_of\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Registers a user with the farm.\r\n storageDeposit(): Promise<[U128String, U128String]> {\r\n return this.call(\"storage_deposit\", {}, TGas(25), \"3000000000000000000000\")\r\n }\r\n\r\n async storageDepositWithoutSend():Promise{\r\n return transactions.functionCall(\r\n \"storage_deposit\", \r\n {}, \r\n new BN(\"200000000000000\"), \r\n new BN(\"3000000000000000000000\")\r\n )\r\n }\r\n\r\n}","import { FarmData, NO_CONTRACT_DEPOSIT_NEAR } from \"../config\";\r\nimport { FungibleTokenMetadata, NEP141Trait } from \"../contracts/NEP141\";\r\nimport { convertToDecimals } from \"../util/conversions\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { DetailRow, RewardsTokenData, TokenIconData } from \"./genericData\";\r\nimport { StakingContractDataP2, TokenContractData } from \"./PoolEntities\";\r\nimport {ConfettiButton} from '../util/animations/new-confetti-button';\r\n\r\n//JSON compatible struct returned from get_contract_state\r\nexport class HtmlPoolParams {\r\n id: string;\r\n formId: string;\r\n\r\n constructor(id: string) {\r\n this.id = id+\"-container\";\r\n this.formId = id;\r\n }\r\n}\r\n\r\nexport class UserStatusP2 {\r\n // All the numbers that are bigint are expected to be without any decimal points, and are converted when needed\r\n real_rewards_per_day: bigint = 0n;\r\n skip: Number = 0;\r\n staked: bigint = 0n;\r\n real: bigint = 0n;\r\n // computed holds an integer number with no decimal places holding the info about the computed cheddar rewars calculated\r\n computed: bigint = 0n;\r\n previous_real: bigint = 0n;\r\n previousTimestamp: number = 0;\r\n tokenDecimals: Number = 0;\r\n accName: string = '';\r\n\r\n constructor(userStatus?: [string, string, string]) {\r\n if(userStatus) {\r\n this.staked = BigInt(userStatus[0])\r\n this.real = BigInt(userStatus[1])\r\n this.previousTimestamp = Number(userStatus[2])\r\n }\r\n }\r\n\r\n hasStakedTokens() {\r\n return this.staked > 0n\r\n }\r\n\r\n getDisplayableComputed() {\r\n return convertToDecimals(this.computed.toString(), 24, 7)\r\n }\r\n\r\n getCurrentCheddarRewards() {\r\n return convertToDecimals(this.real.toString(), 24, 7)\r\n }\r\n\r\n getCurrentDisplayableCheddarRewards() {\r\n return convertToDecimals(this.computed.toString(), 24, 7)\r\n }\r\n\r\n getDisplayableAccountName() {\r\n return this.accName.length > 22 ? this.accName.slice(0, 10) + \"..\" + this.accName.slice(-10) : this.accName\r\n }\r\n\r\n addStaked(amount: string) {\r\n this.staked = this.staked + BigInt(amount)\r\n }\r\n}\r\n\r\nexport class PoolParams {\r\n wallet: WalletInterface\r\n type: string\r\n html: HtmlPoolParams;\r\n config: { [key: string]: any }\r\n\r\n poolDescription: string[]|undefined;\r\n descriptionLink: string[]|undefined;\r\n \r\n stakingContractData: StakingContractDataP2\r\n poolName: string\r\n stakeTokenMetaData: FungibleTokenMetadata;\r\n // Cheddar contract\r\n cheddarContract: NEP141Trait;\r\n // Token to be staked contract\r\n stakeTokenContract: NEP141Trait;\r\n stakeTokenContractList: TokenContractData[] = [];\r\n farmTokenContractList: TokenContractData[] = [];\r\n\r\n confettiButton?: ConfettiButton\r\n\r\n constructor(wallet: WalletInterface, farmData: FarmData, cheddarContractId: string) {\r\n this.wallet = wallet\r\n this.type = farmData.poolType;\r\n this.html = new HtmlPoolParams(farmData.poolName)\r\n this.poolName = farmData.poolName\r\n this.config = farmData.config ? farmData.config : []\r\n\r\n this.poolDescription = farmData.description;\r\n this.descriptionLink = farmData.descriptionLink;\r\n \r\n this.stakingContractData = new StakingContractDataP2(wallet, farmData.contractName, farmData.tokenContractName, farmData.poolName);\r\n this.stakingContractData.contract\r\n \r\n this.cheddarContract= new NEP141Trait(cheddarContractId);\r\n this.stakeTokenContract = new NEP141Trait(farmData.tokenContractName)\r\n this.stakeTokenMetaData = {} as FungibleTokenMetadata;\r\n\r\n this.cheddarContract.wallet = wallet;\r\n this.stakeTokenContract.wallet = wallet;\r\n }\r\n\r\n async userHasStakedTokens() {\r\n const poolUserStatus: UserStatusP2 = await this.stakingContractData.getUserStatus()\r\n return Number(poolUserStatus.staked) > 0\r\n }\r\n\r\n async getTokenContractList(tokenContractName: string): Promise {\r\n return [new TokenContractData(this.wallet, tokenContractName, this.poolName)]\r\n }\r\n\r\n async getPoolName() {\r\n /* Normally, pool names come from metadata, but in case it is requested a particular poolname\r\n you have to set on config.ts the poolName param starting with _ */\r\n if(this.poolName[0] === \"_\") return this.poolName.substring(1)\r\n const metadata = await this.stakeTokenContractList[0].getMetadata()\r\n return metadata.symbol\r\n }\r\n\r\n async setStakeTokenContractList() {\r\n this.stakeTokenContractList = [await this.getStakeTokenContractData()]\r\n }\r\n\r\n async setFarmTokenContractList() {\r\n this.farmTokenContractList = await this.getTokenContractList(this.cheddarContract.contractId)\r\n }\r\n\r\n async setAllExtraData() {\r\n await this.setStakeTokenContractList()\r\n await this.setFarmTokenContractList()\r\n }\r\n\r\n async refreshAllExtraData() {\r\n \r\n }\r\n \r\n async getRewardTokenIconData(): Promise {\r\n const cheddarMetaData = await this.cheddarContract.ft_metadata()\r\n const src = cheddarMetaData.icon ? cheddarMetaData.icon : cheddarMetaData.name\r\n return [{\r\n isSvg: src.includes(\"{\r\n let dataArray: DetailRow[] = []\r\n \r\n const stakeTokenContractData: TokenContractData = (await this.stakingContractData.getStakeTokenContractList())[0]\r\n const iconData = await this.getIcon(stakeTokenContractData)\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const metadata = await stakeTokenContractData.getMetadata()\r\n const totalStaked = convertToDecimals(contractParams.total_staked, metadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n content: totalStaked\r\n })\r\n \r\n return dataArray\r\n }\r\n\r\n async getRewardsTokenDetail(): Promise {\r\n let dataArray: RewardsTokenData[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const poolUserStatus = await this.stakingContractData.getUserStatus()\r\n\r\n const farmTokenContract = this.farmTokenContractList[0]\r\n const iconData = await this.getIcon(farmTokenContract)\r\n const farmTokenMetadata: FungibleTokenMetadata = await farmTokenContract.getMetadata()\r\n const tokenName = farmTokenMetadata.name\r\n const rewardsPerDayBN = BigInt(contractParams.farming_rate) * 60n * 24n\r\n const rewardsPerDay = convertToDecimals(rewardsPerDayBN, farmTokenMetadata.decimals, 7)\r\n const totalRewards = convertToDecimals(contractParams.total_farmed, farmTokenMetadata.decimals, 7)\r\n const userUnclaimedRewards = convertToDecimals(poolUserStatus.real.toString(), farmTokenMetadata.decimals, 7)\r\n \r\n dataArray.push({\r\n iconData,\r\n tokenName,\r\n rewardsPerDay,\r\n totalRewards,\r\n userUnclaimedRewards,\r\n })\r\n \r\n return dataArray\r\n }\r\n\r\n async getIcon(contractData: TokenContractData): Promise {\r\n const metadata = await contractData.getMetadata()\r\n const src = metadata.icon ? metadata.icon : metadata.name\r\n return {\r\n isSvg: src.includes(\" {\r\n return new TokenContractData(this.wallet, this.stakeTokenContract.contractId, this.poolName)\r\n }\r\n\r\n async getFarmTokenContractData(): Promise {\r\n return new TokenContractData(this.wallet, this.cheddarContract.contractId)\r\n }\r\n\r\n async getWalletAvailable() {\r\n return await this.stakeTokenContract.ft_balance_of(this.wallet.getAccountId())\r\n }\r\n}","import { NO_CONTRACT_DEPOSIT_NEAR } from \"../config\";\r\nimport { ContractParams } from \"../contracts/contract-structs\";\r\nimport { getNearMetadata } from \"../contracts/nearHardcodedObjects\";\r\nimport { FungibleTokenMetadata, NEP141Trait } from \"../contracts/NEP141\";\r\nimport { StakingPoolNFT } from \"../contracts/nft-staking\";\r\nimport { NFTStakingContractParams } from \"../contracts/nft-structures\";\r\nimport { StakingPoolP1 } from \"../contracts/p2-staking\";\r\nimport { StakingPoolP3 } from \"../contracts/p3-staking\";\r\nimport { P3ContractParams, PoolUserStatusP3 as UserStatusP3 } from \"../contracts/p3-structures\";\r\nimport { disconnectedWallet } from \"../wallet-api/disconnected-wallet\";\r\nimport { U128String } from \"../wallet-api/util\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { UserStatusP2 } from \"./poolParams\";\r\n\r\nexport async function getTokenContractList(wallet:WalletInterface, contractNameArray: string[]): Promise {\r\n let tokenContractList = []\r\n for(let i = 0; i < contractNameArray.length; i++) {\r\n const tokenContractName = contractNameArray[i]\r\n tokenContractList.push(new TokenContractData(wallet, tokenContractName, \"\"))\r\n }\r\n return tokenContractList\r\n}\r\n\r\nexport class StakingContractDataP3 {\r\n // Contract to which one staked and unstakes\r\n contract: StakingPoolP3\r\n // Staking contract parameters\r\n // @ts-ignore\r\n private contractParamsPromise: Promise\r\n // User parameters of staking contract\r\n // @ts-ignore\r\n private userStatusPromise: Promise\r\n // List of tokens accepted by staking contract \r\n private stakeTokenContractListPromise: Promise\r\n private contractParams: P3ContractParams | undefined\r\n private userStatus: UserStatusP3 | undefined\r\n private stakeTokenContractList: TokenContractData[] = [];\r\n private farmTokenContractList: TokenContractData[] = [];\r\n\r\n constructor(wallet: WalletInterface, contractId: string) {\r\n this.contract = new StakingPoolP3(contractId)\r\n this.contract.wallet = wallet\r\n this.refreshData()\r\n this.stakeTokenContractListPromise = this.getStakeTokenContractListPromise()\r\n }\r\n\r\n refreshData() {\r\n this.contractParamsPromise = this.contract.get_contract_params()\r\n if(this.contract.wallet.isConnected()) {\r\n this.userStatusPromise = this.contract.status()\r\n }\r\n this.contractParams = undefined\r\n this.userStatus = undefined\r\n }\r\n\r\n async getContractParams(): Promise {\r\n if(this.contractParams === undefined) {\r\n this.contractParams = await this.contractParamsPromise\r\n }\r\n return this.contractParams\r\n }\r\n\r\n getContractParamsNotAsync(): P3ContractParams {\r\n return this.contractParams!\r\n }\r\n\r\n async getUserStatus(): Promise {\r\n if(this.userStatus === undefined) {\r\n this.userStatus = await this.userStatusPromise\r\n if(this.userStatus == null) { // When user is not registered, user status is null\r\n const contractParams = await this.getContractParams()\r\n this.userStatus = new UserStatusP3(contractParams.stake_tokens.length, contractParams.farm_tokens.length)\r\n }\r\n }\r\n return this.userStatus\r\n }\r\n\r\n private async getStakeTokenContractListPromise(): Promise {\r\n const contractParams = await this.getContractParams();\r\n return getTokenContractList(this.contract.wallet, contractParams.stake_tokens)\r\n }\r\n\r\n async getStakeTokenContractList(): Promise {\r\n if(this.stakeTokenContractList.length == 0) {\r\n this.stakeTokenContractList = await this.stakeTokenContractListPromise as TokenContractData[]\r\n // const contractParams = await this.getContractParams();\r\n // this.stakeTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.stake_tokens)\r\n }\r\n return this.stakeTokenContractList\r\n }\r\n\r\n async getFarmTokenContractList(): Promise {\r\n if(this.farmTokenContractList.length == 0) {\r\n const contractParams = await this.getContractParams();\r\n this.farmTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.farm_tokens)\r\n }\r\n return this.farmTokenContractList\r\n }\r\n}\r\n\r\nexport class StakingContractDataP2 {\r\n contract: StakingPoolP1\r\n // @ts-ignore\r\n private contractParamsPromise: Promise\r\n // @ts-ignore\r\n private userStatusPromise: Promise<[U128String, U128String, U128String]>\r\n private contractParams: ContractParams | undefined\r\n private userStatus: UserStatusP2 | undefined\r\n private stakeTokenContractList: TokenContractData[]\r\n\r\n constructor(wallet: WalletInterface, contractId: string, stakeTokenContractId: string, poolName: string) {\r\n this.contract = new StakingPoolP1(contractId)\r\n this.contract.wallet = wallet\r\n this.refreshData()\r\n\r\n this.stakeTokenContractList = [new TokenContractData(wallet, stakeTokenContractId, poolName)]\r\n }\r\n\r\n \r\n\r\n refreshData() {\r\n this.contractParamsPromise = this.contract.get_contract_params()\r\n this.userStatusPromise = this.contract.status()\r\n this.contractParams = undefined\r\n this.userStatus = undefined\r\n }\r\n\r\n async getContractParams(): Promise {\r\n if(this.contractParams === undefined) {\r\n this.contractParams = await this.contractParamsPromise\r\n }\r\n if(this.contractParams.total_staked === undefined) {\r\n // p1 contracts have the parameter total_stake, while p2 contracts have total_staked. So this is a patch for avoiding changing code\r\n this.contractParams.total_staked = this.contractParams.total_stake\r\n this.contractParams.farming_rate = this.contractParams.rewards_per_day\r\n this.contractParams.total_farmed = this.contractParams.total_rewards\r\n }\r\n return this.contractParams\r\n }\r\n\r\n getContractParamsNotAsync(): ContractParams {\r\n return this.contractParams!\r\n }\r\n\r\n async getUserStatus(): Promise {\r\n if(this.contract.wallet == disconnectedWallet) {\r\n this.userStatus = new UserStatusP2()\r\n } else if(this.userStatus === undefined) {\r\n const userStatus = await this.userStatusPromise\r\n this.userStatus = new UserStatusP2(userStatus)\r\n }\r\n return this.userStatus\r\n }\r\n\r\n // This method is async so it matches with P3, since in that case, the stake tokens come from contract\r\n async getStakeTokenContractList(): Promise {\r\n return this.stakeTokenContractList\r\n }\r\n}\r\n\r\nexport class TokenContractData {\r\n contract: NEP141Trait | undefined\r\n wallet: WalletInterface\r\n private metaDataPromise: Promise | undefined\r\n private balancePromise: Promise | undefined\r\n private metaData: FungibleTokenMetadata | undefined\r\n private balance: U128String | undefined\r\n\r\n constructor(wallet: WalletInterface, contractId: string, poolName: string = \"\") {\r\n this.wallet = wallet\r\n if(contractId !== NO_CONTRACT_DEPOSIT_NEAR) {\r\n this.contract = new NEP141Trait(contractId)\r\n this.contract.wallet = wallet\r\n\r\n this.metaDataPromise = this.contract.ft_metadata()\r\n // TODO Dani check if user is logged\r\n if(wallet.isConnected()) this.balancePromise = this.contract.ft_balance_of(wallet.getAccountId())\r\n } else {\r\n this.metaData = getNearMetadata(poolName)\r\n this.balancePromise = wallet.getAccountBalance()\r\n }\r\n }\r\n\r\n async getMetadata(): Promise {\r\n if(!this.metaData) {\r\n this.metaData = await this.metaDataPromise\r\n if(this.metaData!.symbol.includes(\"$\")) { // Meta symbol is $META, and this is bad for html selectors\r\n this.metaData!.symbolForHtml = this.metaData!.symbol.replace(\"$\", \"\")\r\n } else {\r\n this.metaData!.symbolForHtml = this.metaData!.symbol\r\n }\r\n }\r\n return this.metaData!\r\n }\r\n\r\n getMetadataSync(): FungibleTokenMetadata {\r\n return this.metaData!\r\n }\r\n\r\n async getBalance(): Promise {\r\n if(this.contract?.wallet == disconnectedWallet) {\r\n this.balance = \"0\"\r\n } else if(!this.balance) {\r\n this.balance = await this.balancePromise\r\n }\r\n return this.balance!\r\n }\r\n\r\n getBalanceSync(): U128String {\r\n // If you get an undefined error, then you either need to use await getBalance() or await Promise.all(list.map(elem => elem.getBalance()))\r\n return this.balance!\r\n }\r\n\r\n refreshData() {\r\n this.balance = undefined\r\n if(this.contract) {\r\n this.balancePromise = this.contract.ft_balance_of(this.wallet.getAccountId())\r\n } else {\r\n this.balancePromise = this.wallet.getAccountBalance()\r\n }\r\n }\r\n}","export function getNearMetadata(symbol: string) {\r\n return {\r\n spec: \"\",\r\n name: \"Near\",\r\n symbol,\r\n symbolForHtml: symbol,\r\n icon: ``,\r\n reference: \"\",\r\n reference_hash: \"\",\r\n decimals: 24,\r\n }\r\n}","//----------------------------------\r\n// stnear Token smart-contract proxy for\r\n// https://github.com/Narwallets/meta-pool\r\n//----------------------------------\r\n\r\nimport { ntoy, TGas } from \"../util/conversions\"\r\nimport { SmartContract } from \"../wallet-api/base-smart-contract\"\r\n\r\nimport { ContractParams, StorageBalance } from \"./contract-structs\"\r\nimport { U128String } from \"../wallet-api/util\"\r\nimport { Action } from \"near-api-js/lib/transaction\"\r\nimport { transactions } from \"near-api-js\"\r\nimport { BN } from \"bn.js\"\r\nimport { disconnectedWallet } from \"../wallet-api/disconnected-wallet\"\r\n\r\ntype AccountId = string;\r\n\r\n\r\n\r\n//singleton class\r\nexport class StakingPoolP1 extends SmartContract {\r\n\r\n /// Returns contract params\r\n get_contract_params(): Promise {\r\n return this.viewWithoutAccount(\"get_contract_params\", {})\r\n }\r\n\r\n /// Returns amount of staked NEAR and farmed CHEDDAR of given account.\r\n status(accountId?: AccountId): Promise<[U128String, U128String, U128String]> {\r\n if(this.wallet === disconnectedWallet) {\r\n return Promise.resolve([\"-\", \"-\", \"-\"])\r\n }\r\n return this.viewWithoutAccount(\"status\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Checks to see if an account is registered.\r\n storageBalance(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"storage_balance_of\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Registers a user with the farm.\r\n storageDeposit(): Promise<[U128String, U128String]> {\r\n return this.call(\"storage_deposit\", {}, TGas(25), \"60000000000000000000000\")\r\n }\r\n\r\n /// Registers a user with the farm.\r\n async storageDepositWithoutSend():Promise{\r\n return transactions.functionCall(\r\n \"storage_deposit\", \r\n {}, \r\n new BN(\"200000000000000\"), \r\n new BN(\"60000000000000000000000\")\r\n )\r\n }\r\n\r\n /// Stake attached &NEAR and returns total amount of stake.\r\n stake(amount: number): Promise {\r\n return this.call(\"stake\", {}, TGas(25), amount.toString())\r\n }\r\n\r\n /// Unstakes given amount of $NEAR and transfers it back to the user.\r\n /// Returns amount of staked tokens left after the call.\r\n /// Panics if the caller doesn't stake anything or if he doesn't have enough staked tokens.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n unstake(amount: string): Promise {\r\n return this.call(\"unstake\", { amount: amount }, TGas(125), \"1\")\r\n }\r\n\r\n // unstake(token: string, amount: string): Promise {\r\n // return this.call(\"unstake\", { token: token, amount: amount }, TGas(125), \"1\")\r\n // }\r\n\r\n /// Unstakes everything and close the account. Sends all farmed CHEDDAR using a ft_transfer\r\n /// and all NEAR to the caller.\r\n /// Returns amount of farmed CHEDDAR.\r\n /// Panics if the caller doesn't stake anything.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n close(): Promise {\r\n return this.call(\"close\", {}, TGas(75), \"1\")\r\n }\r\n\r\n withdraw_crop(): Promise {\r\n return this.call(\"withdraw_crop\", {}, TGas(125))\r\n }\r\n\r\n}\r\n\r\n","//----------------------------------\r\n// stnear Token smart-contract proxy for\r\n// https://github.com/Narwallets/meta-pool\r\n//----------------------------------\r\n\r\nimport { ntoy, TGas } from \"../util/conversions\"\r\nimport { SmartContract } from \"../wallet-api/base-smart-contract\"\r\n\r\nimport { P3ContractParams, PoolUserStatusP3 as PoolUserStatusP3, TransferTokenData } from \"./p3-structures\"\r\nimport { U128String } from \"../wallet-api/util\"\r\n\r\nimport * as nearAPI from \"near-api-js\"\r\nimport { BN } from \"bn.js\"\r\nimport { baseDecode } from \"borsh\"\r\nimport { near } from \"..\"\r\nimport { Action } from \"near-api-js/lib/transaction\"\r\nimport { StorageBalance } from \"./contract-structs\"\r\nimport { transactions } from \"near-api-js\"\r\nimport { disconnectedWallet } from \"../wallet-api/disconnected-wallet\"\r\n\r\ntype AccountId = string;\r\n\r\n//singleton class\r\nexport class StakingPoolP3 extends SmartContract {\r\n\r\n /// Returns contract params\r\n get_contract_params(): Promise {\r\n return this.viewWithoutAccount(\"get_contract_params\")\r\n }\r\n\r\n /// Returns amount of staked NEAR and farmed CHEDDAR of given account.\r\n status(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"status\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Checks to see if an account is registered.\r\n storageBalance(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"storage_balance_of\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Registers a user with the farm.\r\n storageDeposit(): Promise<[U128String, U128String]> {\r\n return this.call(\"storage_deposit\", {}, TGas(25), \"60000000000000000000000\")\r\n }\r\n\r\n /// Registers a user with the farm.\r\n async storageDepositWithoutSend():Promise{\r\n return transactions.functionCall(\r\n \"storage_deposit\", \r\n {}, \r\n new BN(\"200000000000000\"), \r\n new BN(\"60000000000000000000000\")\r\n )\r\n }\r\n\r\n /// Stake attached &NEAR and returns total amount of stake.\r\n ft_transfer_call(amount: U128String): Promise {\r\n return this.call(\"ft_transfer_call\", {}, TGas(25), amount)\r\n }\r\n\r\n withdraw_nft(receiver_id:string):Promise{\r\n return this.call(\"withdraw_nft\",{receiver_id:receiver_id},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n /// Unstakes given amount of $NEAR and transfers it back to the user.\r\n /// Returns amount of staked tokens left after the call.\r\n /// Panics if the caller doesn't stake anything or if he doesn't have enough staked tokens.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n unstake(token: string, amount: string): Promise {\r\n return this.call(\"unstake\", { token: token, amount: amount }, TGas(125), \"1\")\r\n }\r\n\r\n /// Unstakes everything and close the account. Sends all farmed CHEDDAR using a ft_transfer\r\n /// and all NEAR to the caller.\r\n /// Returns amount of farmed CHEDDAR.\r\n /// Panics if the caller doesn't stake anything.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n close(): Promise {\r\n return this.call(\"close\", {}, TGas(75), \"1\")\r\n }\r\n\r\n withdraw_crop(): Promise {\r\n return this.call(\"withdraw_crop\", {}, TGas(125))\r\n }\r\n\r\n}\r\n\r\n","import { ntoy } from \"../util/conversions\";\r\n\r\ntype U128String = string;\r\n\r\n\r\n//JSON compatible struct returned from get_contract_state\r\nexport class P3ContractParams {\r\n\r\n constructor() {\r\n // this.rewards_per_day = this.farming_rate * 60n * 24n\r\n }\r\n\r\n owner_id: string = \"\";\r\n stake_tokens: string[] = [];\r\n stake_rates: U128String[] = [];\r\n farm_unit_emission: U128String = \"\";\r\n farm_tokens: string[] = [];\r\n farm_token_rates: U128String[] = [];\r\n is_active: boolean = false;\r\n farming_start: number = 0;\r\n farming_end: number = 0;\r\n total_staked: U128String[] = [];\r\n total_farmed: U128String[] = [];\r\n fee_rate: number = 0;\r\n accounts_registered: number = 0;\r\n\r\n}\r\n\r\nexport class PoolUserStatusP3 {\r\n // Amount of each token staked by user\r\n stake_tokens: U128String[] = [];\r\n stake: U128String = \"\";\r\n farmed_units: U128String = \"\";\r\n // Amount of each token in farm, waiting to be harvested\r\n farmed_tokens: U128String[] = [];\r\n cheddy_nft: string = \"\";\r\n timestamp: number = 0;\r\n\r\n // This constructor should only be used when user is not registered, hence userStatus is null\r\n constructor(stakeTokensLength: number = 0, farmTokensLength: number = 0) {\r\n this.stake_tokens = new Array(stakeTokensLength).fill(\"0\")\r\n this.farmed_tokens = new Array(farmTokensLength).fill(\"0\")\r\n }\r\n}\r\n\r\nexport class PoolUserStatusP3NFT {\r\n // Amount of each token staked by user\r\n stake_tokens: string[][] = [];\r\n stake: U128String = \"\";\r\n farmed_units: U128String = \"\";\r\n // Amount of each token in farm, waiting to be harvested\r\n farmed_tokens: U128String[] = [];\r\n boost_nfts: string = \"\"\r\n timestamp: number = 0;\r\n\r\n // This constructor should only be used when user is not registered, hence userStatus is null\r\n constructor(stakeTokensLength: number = 0, farmTokensLength: number = 0) {\r\n this.stake_tokens = new Array(stakeTokensLength).fill([])\r\n this.farmed_tokens = new Array(farmTokensLength).fill(\"0\")\r\n }\r\n}\r\n\r\n\r\n\r\nexport class TokenParams {\r\n decimals: string = \"24\";\r\n icon: string = \"\";\r\n name: string = \"\";\r\n reference: string = \"\";\r\n reference_hash: string = \"\";\r\n spec: string = \"\";\r\n symbol: string = \"\";\r\n}\r\n\r\nexport class TransferTokenData {\r\n contractName: string;\r\n amount: bigint;\r\n\r\n constructor(contractName: string, amount: bigint) {\r\n this.contractName = contractName\r\n this.amount = amount\r\n }\r\n}","import { BN } from \"bn.js\";\r\nimport { NFTStakeUnstakeData } from \"..\";\r\nimport { FarmData } from \"../config\";\r\nimport { callMulipleTransactions } from \"../contracts/multipleCall\";\r\nimport { FungibleTokenMetadata } from \"../contracts/NEP141\";\r\nimport { NFTContract } from \"../contracts/NFTContract\";\r\nimport { PoolUserStatusP3NFT } from \"../contracts/p3-structures\";\r\nimport { convertToDecimals } from \"../util/conversions\";\r\nimport { U128String } from \"../wallet-api/util\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { DetailRow, RewardsTokenData, TokenIconData } from \"./genericData\";\r\nimport { TokenContractData } from \"./PoolEntities\";\r\nimport { NFTContractData, StakingContractDataNFT } from \"./PoolEntitiesNFT\";\r\nimport { HtmlPoolParams } from \"./poolParams\";\r\nimport {ConfettiButton} from '../util/animations/new-confetti-button';\r\n\r\nexport class PoolParamsNFT {\r\n wallet: WalletInterface\r\n type: string\r\n html: HtmlPoolParams;\r\n config: { [key: string]: any }\r\n\r\n poolDescription: string[]|undefined;\r\n descriptionLink: string[]|undefined;\r\n\r\n stakingContractData: StakingContractDataNFT\r\n // stakeTokenContractList: TokenContractData[] = [];\r\n // stakeNFTContractList: NFTContractData[] = [];\r\n farmTokenContractList: TokenContractData[] = [];\r\n\r\n nftContractForBoosting: NFTContract\r\n confettiButton?: ConfettiButton\r\n\r\n constructor(wallet: WalletInterface, farmData: FarmData, nftContract: string, nftBaseUrlForBoosting: string) {\r\n this.wallet = wallet\r\n this.type = farmData.poolType;\r\n\r\n this.poolDescription = farmData.description;\r\n this.descriptionLink = farmData.descriptionLink;\r\n this.config = farmData.config ? farmData.config : []\r\n\r\n this.html = new HtmlPoolParams(farmData.poolName);\r\n this.stakingContractData = new StakingContractDataNFT(wallet, farmData.contractName, farmData.nftBaseUrl!)\r\n\r\n // console.log(\"DContract\", nftContract)\r\n this.nftContractForBoosting = new NFTContract(nftContract, nftBaseUrlForBoosting)\r\n this.nftContractForBoosting.wallet = this.wallet\r\n }\r\n\r\n async userHasStakedTokens() {\r\n const poolUserStatus: PoolUserStatusP3NFT = await this.stakingContractData.getUserStatus()\r\n let hasStakedTokens = false\r\n for(let i = 0; i < poolUserStatus.stake_tokens.length; i++) {\r\n hasStakedTokens ||= poolUserStatus.stake_tokens[i].some(token => token.length > 0)\r\n }\r\n return hasStakedTokens\r\n }\r\n\r\n async getPoolName() {\r\n return this.html.formId\r\n }\r\n\r\n \r\n\r\n async setAllExtraData() {\r\n }\r\n\r\n async refreshAllExtraData() {\r\n }\r\n\r\n async withdrawBoost(): Promise {\r\n const poolUserStatus: PoolUserStatusP3NFT = await this.stakingContractData.getUserStatus()\r\n const tokenId: string = poolUserStatus.boost_nfts.split(\"@\")[1]\r\n return this.stakingContractData.contract.unstake(this.nftContractForBoosting.contractId, tokenId)\r\n }\r\n\r\n async transferCheddar() {\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const cheddarContract = (await this.stakingContractData.getStakeTokenContractList())[0].contract!\r\n const amount = contractParams.cheddar_rate\r\n const promise = cheddarContract.ft_transfer_call_without_send(\r\n this.stakingContractData.contract.contractId,\r\n amount,\r\n \"cheddar stake\" // required like this from staking contract\r\n )\r\n\r\n const promiseWithContract = {\r\n promise,\r\n contractName: cheddarContract.contractId\r\n }\r\n\r\n return promiseWithContract\r\n }\r\n\r\n transferNFT(stakeNFTContract: NFTContractData, contractId: string, tokenId: string) {\r\n const promise = stakeNFTContract.contract.nft_transfer_call_without_send(\r\n this.stakingContractData.contract.contractId,\r\n tokenId\r\n )\r\n\r\n const promiseWithContract = {\r\n promise,\r\n contractName: contractId\r\n }\r\n return promiseWithContract\r\n\r\n }\r\n\r\n async stakeUnstakeNFTs(stakeUnstakeNFTsMap: Map) {\r\n let TXs = []\r\n for(let [contractId, stakeUnstakeNFTs] of stakeUnstakeNFTsMap) {\r\n const stakeNFTContractList: NFTContractData[] = await this.stakingContractData.getStakeNFTContractList()\r\n // FIX This implementation is taking into consideration only one stake NFT by pool, but it should be done to consider many\r\n const stakeNFTContract: NFTContractData = stakeNFTContractList.find(a => a.contract.contractId == contractId)!\r\n\r\n for(let i = 0; i < stakeUnstakeNFTs.nftsToStake.length; i++) {\r\n TXs.push(await this.transferCheddar())\r\n\r\n const tokenId = stakeUnstakeNFTs.nftsToStake[i]\r\n\r\n TXs.push(this.transferNFT(stakeNFTContract, contractId, tokenId))\r\n }\r\n\r\n for(let i = 0; i < stakeUnstakeNFTs.nftsToUnstake.length; i++) {\r\n const tokenId = stakeUnstakeNFTs.nftsToUnstake[i]\r\n const promise = this.stakingContractData.contract.unstake_without_send(\r\n contractId,\r\n tokenId\r\n )\r\n\r\n const promiseWithContract = {\r\n promise,\r\n contractName: this.stakingContractData.contract.contractId\r\n }\r\n\r\n TXs.push(promiseWithContract)\r\n }\r\n }\r\n if(TXs.length > 0) await callMulipleTransactions(TXs, this.stakingContractData.contract) \r\n\r\n }\r\n\r\n async getStakeTokensDetail(): Promise{\r\n let dataArray: DetailRow[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const stakeTokenContract = stakeTokenContractList[i]\r\n const iconData = await this.getIcon(stakeTokenContract)\r\n const stakeTokenMetadata = await stakeTokenContract.getMetadata()\r\n const totalStaked = convertToDecimals(contractParams.total_staked[i], stakeTokenMetadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n content: totalStaked\r\n })\r\n }\r\n return dataArray\r\n }\r\n\r\n async getRewardsTokenDetail(): Promise {\r\n let dataArray: RewardsTokenData[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const poolUserStatus = await this.stakingContractData.getUserStatus()\r\n const farmTokenContractList = await this.stakingContractData.getFarmTokenContractList()\r\n\r\n for(let i = 0; i < farmTokenContractList.length; i++) {\r\n const farmTokenContract = farmTokenContractList[i]\r\n const iconData = await this.getIcon(farmTokenContract)\r\n const farmTokenMetadata: FungibleTokenMetadata = await farmTokenContract.getMetadata()\r\n const tokenName = farmTokenMetadata.name\r\n // const rewardsPerDayBN = BigInt(contractParams.farm_token_rates[i]) * 60n * 24n\r\n const rewardsPerDayBN = BigInt(contractParams.farm_unit_emission) * BigInt(contractParams.farm_token_rates[i]) * 60n * 24n / (BigInt(10) ** BigInt(24))\r\n const rewardsPerDay = convertToDecimals(rewardsPerDayBN, farmTokenMetadata.decimals, 5)\r\n const totalRewards = convertToDecimals(contractParams.total_farmed[i], farmTokenMetadata.decimals, 5)\r\n const userUnclaimedRewards = convertToDecimals(poolUserStatus.farmed_tokens[i], farmTokenMetadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n tokenName,\r\n rewardsPerDayBN,\r\n rewardsPerDay,\r\n totalRewards,\r\n userUnclaimedRewards,\r\n })\r\n }\r\n return dataArray\r\n }\r\n\r\n async getIcon(contractData: TokenContractData): Promise{\r\n const metadata = await contractData.getMetadata()\r\n const src = metadata.icon ? metadata.icon : metadata.name\r\n return {\r\n isSvg: src.includes(\" {\r\n let dataArray: TokenIconData[] = []\r\n const farmTokenContractList = await this.stakingContractData.getFarmTokenContractList()\r\n for(let i = 0; i < farmTokenContractList.length; i++) {\r\n const farmTokenContract = farmTokenContractList[i]\r\n const farmTokenMetadata = await farmTokenContract.getMetadata()\r\n const src = farmTokenMetadata.icon ? farmTokenMetadata.icon : farmTokenMetadata.name\r\n const data = {\r\n isSvg: src.includes(\" {\r\n let walletAvailable: U128String[] = []\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const contractData = stakeTokenContractList[i]\r\n const balance = await contractData.getBalance()\r\n walletAvailable.push(balance)\r\n }\r\n return walletAvailable\r\n }\r\n}","import { transactions, utils, WalletConnection } from \"near-api-js\"\r\nimport { TransactionData } from \"./contract-structs\"\r\nimport { baseDecode } from \"borsh\"\r\nimport { near } from \"..\"\r\nimport { SmartContract } from \"../wallet-api/base-smart-contract\"\r\n\r\nexport async function callMulipleTransactions(txPromiseArray: TransactionData[], contract: SmartContract): Promise {\r\n let promises = []\r\n for(let i = 0; i < txPromiseArray.length; i++) {\r\n promises.push(txPromiseArray[i].promise)\r\n }\r\n const resultPromises = await Promise.all(promises)\r\n let transactions: transactions.Transaction[] = []\r\n for(let i = 0; i < resultPromises.length; i++) {\r\n transactions.push(\r\n await makeTransaction(\r\n txPromiseArray[i].contractName,\r\n [resultPromises[i]],\r\n contract\r\n )\r\n )\r\n }\r\n \r\n await contract.nearWallet.requestSignTransactions(\r\n transactions,\r\n window.location.href\r\n )\r\n}\r\n\r\nasync function makeTransaction(\r\n receiverId: string,\r\n actions: transactions.Action[],\r\n contract: SmartContract,\r\n nonceOffset = 1,\r\n): Promise {\r\n const [accessKey, block] = await Promise.all([\r\n contract.account.accessKeyForTransaction(receiverId, actions),\r\n near.connection.provider.block({ finality: \"final\" })\r\n ])\r\n\r\n if (!accessKey) {\r\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`)\r\n }\r\n\r\n const blockHash = baseDecode(block.header.hash)\r\n\r\n const publicKey = utils.PublicKey.from(accessKey.public_key)\r\n const nonce = accessKey.access_key.nonce + nonceOffset\r\n\r\n return transactions.createTransaction(\r\n contract.wallet.getAccountId(),\r\n publicKey,\r\n receiverId,\r\n nonce,\r\n actions,\r\n blockHash\r\n )\r\n}","//JSON compatible struct ft_metadata\r\nimport {SmartContract} from \"../wallet-api/base-smart-contract\"\r\nimport * as nearAPI from \"near-api-js\"\r\n\r\nimport {ntoy, TGas} from \"../util/conversions\"\r\nimport { NFT, NFTMetadata, NFTWithMetadata } from \"./nft-structs\";\r\nimport { BN } from \"bn.js\";\r\n\r\ntype U128String = string;\r\ntype U64String = string;\r\n\r\n// export const nftBaseUrl = \"https://nftstorage.link/ipfs/bafybeicoln5rvccttgypzo26irjlskslnfynkzig6bowpsj6ay45geeice/\"\r\n\r\nexport class NFTContract extends SmartContract {\r\n \r\n constructor( \r\n public contractId:string,\r\n public baseUrl: string\r\n )\r\n {\r\n super(contractId)\r\n }\r\n\r\n async nft_transfer_call(receiver_id:string, token_id:U128String):Promise{\r\n return this.call(\"nft_transfer_call\",{receiver_id:receiver_id, token_id:token_id, msg:\"to boost\"},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n async nft_transfer_call_without_send(receiver_id:string, token_id:string):Promise{\r\n return nearAPI.transactions.functionCall(\r\n \"nft_transfer_call\", \r\n {\r\n receiver_id,\r\n token_id,\r\n msg: \"to farm\" \r\n },\r\n new BN(TGas(80)),\r\n new BN(1)\r\n )\r\n }\r\n\r\n async nft_tokens_for_owner(accountId:string) : Promise {\r\n return this.view(\"nft_tokens_for_owner\", {account_id: accountId, from_index: \"0\", \"limit\": 9999})\r\n }\r\n\r\n async nft_metadata(): Promise {\r\n return this.viewWithoutAccount(\"nft_metadata\")\r\n }\r\n\r\n async nft_token(tokenId: string): Promise {\r\n return this.viewWithoutAccount(\"nft_token\", {token_id: tokenId})\r\n }\r\n\r\n\r\n // async ft_balance_of(accountId:string) : Promise {\r\n // return this.view(\"ft_balance_of\",{account_id:accountId }) \r\n // }\r\n\r\n}","import { NFT, NFTMetadata } from '../contracts/nft-structs';\r\nimport { NFTContract } from '../contracts/NFTContract';\r\nimport {WalletInterface} from '../wallet-api/wallet-interface';\r\nimport {getTokenContractList, TokenContractData} from './PoolEntities';\r\nimport {StakingPoolNFT} from '../contracts/nft-staking';\r\nimport {NFTStakingContractParams} from '../contracts/nft-structures';\r\nimport {P3ContractParams, PoolUserStatusP3, PoolUserStatusP3NFT} from '../contracts/p3-structures';\r\n\r\n\r\nasync function getNFTContractList(wallet:WalletInterface, contractNameArray: string[], nftBaseUrl: string[]): Promise {\r\n let NFTContractList = []\r\n for(let i = 0; i < contractNameArray.length; i++) {\r\n const NFTContractName = contractNameArray[i]\r\n NFTContractList.push(new NFTContractData(wallet, NFTContractName, nftBaseUrl[i], \"\"))\r\n }\r\n return NFTContractList\r\n}\r\n\r\n\r\nexport class StakingContractDataNFT {\r\n // Contract to which one staked and unstakes\r\n contract: StakingPoolNFT\r\n\r\n nftBaseUrl: string[]\r\n // Staking contract parameters\r\n // @ts-ignore\r\n private contractParamsPromise: Promise\r\n // User parameters of staking contract\r\n // @ts-ignore\r\n private userStatusPromise: Promise\r\n // List of tokens accepted by staking contract \r\n private stakeTokenContractListPromise: Promise\r\n private stakeNFTContractListPromise: Promise\r\n private contractParams: NFTStakingContractParams | undefined\r\n private userStatus: PoolUserStatusP3NFT | undefined\r\n private stakeTokenContractList: TokenContractData[] = [];\r\n private stakeNFTContractList: NFTContractData[] = [];\r\n private farmTokenContractList: TokenContractData[] = [];\r\n\r\n constructor(wallet: WalletInterface, contractId: string, nftBaseUrl: string[]) {\r\n this.contract = new StakingPoolNFT(contractId)\r\n this.contract.wallet = wallet\r\n this.nftBaseUrl = nftBaseUrl\r\n this.refreshData()\r\n this.stakeTokenContractListPromise = this.getStakeTokenContractListPromise()\r\n this.stakeNFTContractListPromise = this.getStakeNFTContractListPromise(nftBaseUrl)\r\n }\r\n\r\n refreshData() {\r\n this.contractParamsPromise = this.contract.get_contract_params()\r\n if(this.contract.wallet.isConnected()) {\r\n this.userStatusPromise = this.contract.status()\r\n }\r\n this.contractParams = undefined\r\n this.userStatus = undefined\r\n }\r\n\r\n async getContractParams(): Promise {\r\n if(this.contractParams === undefined) {\r\n this.contractParams = await this.contractParamsPromise\r\n }\r\n return this.contractParams\r\n }\r\n\r\n getContractParamsNotAsync(): P3ContractParams {\r\n return this.contractParams!\r\n }\r\n\r\n async getUserStatus(): Promise {\r\n if(this.userStatus === undefined) {\r\n this.userStatus = await this.userStatusPromise\r\n if(this.userStatus == null) { // When user is not registered, user status is null\r\n const contractParams = await this.getContractParams()\r\n this.userStatus = new PoolUserStatusP3NFT(contractParams.stake_tokens.length, contractParams.farm_tokens.length)\r\n }\r\n }\r\n return this.userStatus\r\n }\r\n\r\n private async getStakeTokenContractListPromise(): Promise {\r\n const contractParams = await this.getContractParams();\r\n // On NFT staking contract, cheddar is always the staked token, besides the NFT's\r\n return getTokenContractList(this.contract.wallet, [contractParams.cheddar])\r\n }\r\n\r\n private async getStakeNFTContractListPromise(nftBaseUrl: string[]): Promise {\r\n const contractParams = await this.getContractParams();\r\n // On NFT staking contract, cheddar is always the staked token, besides the NFT's\r\n return getNFTContractList(this.contract.wallet, contractParams.stake_tokens, nftBaseUrl)\r\n }\r\n\r\n async getStakeTokenContractList(): Promise {\r\n if(this.stakeTokenContractList.length == 0) {\r\n this.stakeTokenContractList = await this.stakeTokenContractListPromise as TokenContractData[]\r\n // const contractParams = await this.getContractParams();\r\n // this.stakeTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.stake_tokens)\r\n }\r\n return this.stakeTokenContractList\r\n }\r\n\r\n async getFarmTokenContractList(): Promise {\r\n if(this.farmTokenContractList.length == 0) {\r\n const contractParams = await this.getContractParams();\r\n this.farmTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.farm_tokens)\r\n }\r\n return this.farmTokenContractList\r\n } \r\n\r\n async getStakeNFTContractList(): Promise {\r\n if(this.stakeNFTContractList.length == 0) {\r\n this.stakeNFTContractList = await this.stakeNFTContractListPromise as NFTContractData[]\r\n // const contractParams = await this.getContractParams();\r\n // this.stakeTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.stake_tokens)\r\n }\r\n return this.stakeNFTContractList\r\n }\r\n}\r\n\r\n\r\nexport class NFTContractData {\r\n contract: NFTContract\r\n wallet: WalletInterface\r\n private tokensForOwnerPromise: Promise | undefined\r\n // private balancePromise: Promise | undefined\r\n private tokensForOwner: NFT[] | undefined\r\n // private balance: U128String | undefined\r\n private metadata: Promise | undefined\r\n\r\n constructor(wallet: WalletInterface, contractId: string, nftBaseUrl: string, poolName: string = \"\") {\r\n this.wallet = wallet\r\n \r\n this.contract = new NFTContract(contractId, nftBaseUrl!)\r\n this.contract.wallet = wallet\r\n if(this.wallet.isConnected()) {\r\n this.tokensForOwnerPromise = this.contract.nft_tokens_for_owner(wallet.getAccountId())\r\n this.metadata = this.contract.nft_metadata()\r\n }\r\n // this.balancePromise = this.contract.ft_balance_of(wallet.getAccountId())\r\n \r\n }\r\n\r\n async getTokensForOwner(): Promise {\r\n if(!this.tokensForOwner) {\r\n this.tokensForOwner = await this.tokensForOwnerPromise \r\n }\r\n return this.tokensForOwner!\r\n }\r\n\r\n getTokensForOwnerSync(): NFT[] {\r\n return this.tokensForOwner!\r\n }\r\n\r\n refreshData() {\r\n this.tokensForOwner = undefined\r\n \r\n this.tokensForOwnerPromise = this.contract.nft_tokens_for_owner(this.wallet.getAccountId())\r\n }\r\n\r\n async getMetadata(): Promise {\r\n if(!this.metadata) {\r\n this.metadata = this.contract.nft_metadata()\r\n }\r\n return this.metadata\r\n }\r\n}","//----------------------------------\r\n// stnear Token smart-contract proxy for\r\n// https://github.com/Narwallets/meta-pool\r\n//----------------------------------\r\n\r\nimport { ntoy, TGas } from \"../util/conversions\"\r\nimport { SmartContract } from \"../wallet-api/base-smart-contract\"\r\n\r\nimport { P3ContractParams, PoolUserStatusP3 as PoolUserStatusP3, PoolUserStatusP3NFT, TransferTokenData } from \"./p3-structures\"\r\nimport { U128String } from \"../wallet-api/util\"\r\n\r\nimport * as nearAPI from \"near-api-js\"\r\nimport { BN } from \"bn.js\"\r\nimport { baseDecode } from \"borsh\"\r\nimport { near } from \"..\"\r\nimport { Action } from \"near-api-js/lib/transaction\"\r\nimport { StorageBalance } from \"./contract-structs\"\r\nimport { transactions } from \"near-api-js\"\r\nimport { disconnectedWallet } from \"../wallet-api/disconnected-wallet\"\r\nimport { NFTStakingContractParams } from \"./nft-structures\"\r\n\r\ntype AccountId = string;\r\n\r\n//singleton class\r\nexport class StakingPoolNFT extends SmartContract {\r\n\r\n /// Returns contract params\r\n get_contract_params(): Promise {\r\n return this.viewWithoutAccount(\"get_contract_params\")\r\n }\r\n\r\n /// Returns amount of staked NEAR and farmed CHEDDAR of given account.\r\n status(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"status\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Checks to see if an account is registered.\r\n storageBalance(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"storage_balance_of\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Registers a user with the farm.\r\n storageDeposit(): Promise<[U128String, U128String]> {\r\n return this.call(\"storage_deposit\", {}, TGas(25), \"60000000000000000000000\")\r\n }\r\n\r\n /// Registers a user with the farm.\r\n async storageDepositWithoutSend():Promise{\r\n return transactions.functionCall(\r\n \"storage_deposit\", \r\n {}, \r\n new BN(\"200000000000000\"), \r\n new BN(\"60000000000000000000000\")\r\n )\r\n }\r\n\r\n /// Stake attached &NEAR and returns total amount of stake.\r\n ft_transfer_call(amount: U128String): Promise {\r\n return this.call(\"ft_transfer_call\", {}, TGas(25), amount)\r\n }\r\n\r\n withdraw_nft(receiver_id:string):Promise{\r\n return this.call(\"withdraw_nft\",{receiver_id:receiver_id},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n async unstake_without_send(nft_contract_id:string, token_id: string):Promise{\r\n return nearAPI.transactions.functionCall(\r\n \"unstake\", \r\n {\r\n nft_contract_id,\r\n token_id\r\n },\r\n new BN(TGas(200)),\r\n new BN(1)\r\n )\r\n }\r\n\r\n /// Unstakes given amount of $NEAR and transfers it back to the user.\r\n /// Returns amount of staked tokens left after the call.\r\n /// Panics if the caller doesn't stake anything or if he doesn't have enough staked tokens.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n unstake(nft_contract_id: string, token_id: string): Promise {\r\n return this.call(\"withdraw_boost_nft\", { /*nft_contract_id, token_id*/ }, TGas(125), \"1\")\r\n }\r\n\r\n /// Unstakes everything and close the account. Sends all farmed CHEDDAR using a ft_transfer\r\n /// and all NEAR to the caller.\r\n /// Returns amount of farmed CHEDDAR.\r\n /// Panics if the caller doesn't stake anything.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n close(): Promise {\r\n return this.call(\"close\", {}, TGas(75), \"1\")\r\n }\r\n\r\n withdraw_crop(): Promise {\r\n return this.call(\"withdraw_crop\", {}, TGas(125))\r\n }\r\n\r\n}\r\n\r\n","import { FarmData } from \"../config\";\r\nimport { callMulipleTransactions } from \"../contracts/multipleCall\";\r\nimport { FungibleTokenMetadata, NEP141Trait } from \"../contracts/NEP141\";\r\nimport { NFTContract } from \"../contracts/NFTContract\";\r\nimport { convertToDecimals } from \"../util/conversions\";\r\nimport { U128String } from \"../wallet-api/util\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { DetailRow, RewardsTokenData, TokenIconData } from \"./genericData\";\r\nimport { StakingContractDataP3, TokenContractData } from \"./PoolEntities\";\r\nimport {ConfettiButton} from '../util/animations/new-confetti-button';\r\n\r\n//JSON compatible struct returned from get_contract_state\r\nexport class HtmlPoolParams {\r\n id: string;\r\n formId: string;\r\n\r\n constructor(id: string) {\r\n this.id = id+\"-container\";\r\n this.formId = id;\r\n }\r\n}\r\n\r\nexport class PoolUserStatus {\r\n // All the numbers that are bigint are expected to be without any decimal points, and are converted when needed\r\n staked: U128String[] = [];\r\n farmedUnits: U128String = \"0\";\r\n farmed: U128String[] = [];\r\n // computed holds an integer number with no decimal places holding the info about the computed cheddar rewars calculated\r\n previous_timestamp: number = 0;\r\n tokenDecimals: Number = 0;\r\n accName: string = '';\r\n cheddy_nft: string = '';\r\n\r\n constructor(stakedTokensLength: number, farmedTokensLength: number) {\r\n this.staked = new Array(stakedTokensLength).fill(\"0\")\r\n this.farmed = new Array(farmedTokensLength).fill(\"0\")\r\n }\r\n\r\n \r\n\r\n getDisplayableAccountName() {\r\n return this.accName.length > 22 ? this.accName.slice(0, 10) + \"..\" + this.accName.slice(-10) : this.accName\r\n }\r\n\r\n addStaked(amountArray: bigint[]) {\r\n for (let i = 0; i < amountArray.length; i++){\r\n this.staked[i] = (BigInt(this.staked[i]) + amountArray[i]).toString()\r\n }\r\n }\r\n}\r\n\r\nexport class PoolParamsP3 {\r\n wallet: WalletInterface\r\n type: string\r\n html: HtmlPoolParams;\r\n config: { [key: string]: any }\r\n\r\n poolDescription: string[]|undefined;\r\n descriptionLink: string[]|undefined;\r\n\r\n stakingContractData: StakingContractDataP3\r\n stakeTokenContractList: TokenContractData[] = [];\r\n farmTokenContractList: TokenContractData[] = [];\r\n\r\n nftContractForBoosting: NFTContract\r\n confettiButton?: ConfettiButton\r\n\r\n constructor(wallet: WalletInterface, farmData: FarmData, nftContract: string, nftBaseUrl: string) {\r\n this.wallet = wallet\r\n this.type = farmData.poolType;\r\n this.config = farmData.config ? farmData.config : []\r\n \r\n this.poolDescription = farmData.description;\r\n this.descriptionLink = farmData.descriptionLink;\r\n\r\n this.html = new HtmlPoolParams(farmData.poolName);\r\n this.stakingContractData = new StakingContractDataP3(wallet, farmData.contractName)\r\n\r\n this.nftContractForBoosting = new NFTContract(nftContract, nftBaseUrl)\r\n this.nftContractForBoosting.wallet = this.wallet\r\n }\r\n\r\n async userHasStakedTokens() {\r\n const poolUserStatus = await this.stakingContractData.getUserStatus()\r\n let hasStakedTokens = false\r\n for(let i = 0; i < poolUserStatus.stake_tokens.length; i++) {\r\n hasStakedTokens ||= BigInt(poolUserStatus.stake_tokens[i]) > 0n\r\n }\r\n return hasStakedTokens\r\n }\r\n\r\n async getPoolName() {\r\n let tokenNames: string[] = []\r\n const stakeTokenContractList: TokenContractData[] = await this.stakingContractData.getStakeTokenContractList()\r\n // It was requested that cheddar goes last\r\n let hasCheddar = false\r\n let cheddarSymbol: string|undefined\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const tokenContractData = stakeTokenContractList[i]\r\n const tokenMetadata = await tokenContractData.getMetadata()\r\n const isCheddar = tokenMetadata.symbol.toUpperCase() == \"CHEDDAR\"\r\n hasCheddar = hasCheddar || isCheddar\r\n if(!isCheddar) {\r\n tokenNames.push(tokenMetadata.symbol)\r\n } else {\r\n cheddarSymbol = tokenMetadata.symbol\r\n }\r\n }\r\n if(hasCheddar) {\r\n tokenNames.push(cheddarSymbol!)\r\n }\r\n \r\n const names = tokenNames.join(\" + \")\r\n if(names.length > 20) {\r\n return names.substring(0, 7) + \"...\" + names.substring(names.length - 7)\r\n } else {\r\n return names\r\n }\r\n }\r\n\r\n \r\n\r\n async setAllExtraData() {\r\n }\r\n\r\n async refreshAllExtraData() {\r\n }\r\n\r\n async stake(amounts: bigint[]) {\r\n let TXs = []\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const stakeTokenContract = stakeTokenContractList[i].contract!\r\n if(amounts[i] != 0n) {\r\n const promise = stakeTokenContract.ft_transfer_call_without_send(\r\n this.stakingContractData.contract.contractId, \r\n amounts[i].toString()\r\n )\r\n const promiseWithContract = {\r\n promise,\r\n contractName: stakeTokenContract.contractId\r\n }\r\n\r\n TXs.push(promiseWithContract)\r\n }\r\n }\r\n await callMulipleTransactions(TXs, this.stakingContractData.contract) \r\n }\r\n\r\n async unstake(amounts: bigint[]) {\r\n let TXs = []\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n if(amounts[i] != 0n) {\r\n const stakeContract = stakeTokenContractList[i].contract!\r\n const promise = stakeContract.unstake_without_send(\r\n stakeContract.contractId, \r\n amounts[i].toString()\r\n )\r\n const promiseWithContract = {\r\n promise,\r\n contractName: this.stakingContractData.contract.contractId\r\n }\r\n\r\n TXs.push(promiseWithContract)\r\n }\r\n }\r\n await callMulipleTransactions(TXs, this.stakingContractData.contract) \r\n }\r\n\r\n async getStakeTokensDetail(): Promise{\r\n let dataArray: DetailRow[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const stakeTokenContract = stakeTokenContractList[i]\r\n const iconData = await this.getIcon(stakeTokenContract)\r\n const stakeTokenMetadata = await stakeTokenContract.getMetadata()\r\n const totalStaked = convertToDecimals(contractParams.total_staked[i], stakeTokenMetadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n content: totalStaked\r\n })\r\n }\r\n return dataArray\r\n }\r\n\r\n async getRewardsTokenDetail(): Promise {\r\n let dataArray: RewardsTokenData[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const poolUserStatus = await this.stakingContractData.getUserStatus()\r\n const farmTokenContractList = await this.stakingContractData.getFarmTokenContractList()\r\n\r\n for(let i = 0; i < farmTokenContractList.length; i++) {\r\n const farmTokenContract = farmTokenContractList[i]\r\n const iconData = await this.getIcon(farmTokenContract)\r\n const farmTokenMetadata: FungibleTokenMetadata = await farmTokenContract.getMetadata()\r\n const tokenName = farmTokenMetadata.name\r\n // const rewardsPerDayBN = BigInt(contractParams.farm_token_rates[i]) * 60n * 24n\r\n const rewardsPerDayBN = BigInt(contractParams.farm_unit_emission) * BigInt(contractParams.farm_token_rates[i]) * 60n * 24n / (BigInt(10) ** BigInt(24))\r\n const rewardsPerDay = convertToDecimals(rewardsPerDayBN, farmTokenMetadata.decimals, 5)\r\n const totalRewards = convertToDecimals(contractParams.total_farmed[i], farmTokenMetadata.decimals, 5)\r\n const userUnclaimedRewards = convertToDecimals(poolUserStatus.farmed_tokens[i], farmTokenMetadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n tokenName,\r\n rewardsPerDayBN,\r\n rewardsPerDay,\r\n totalRewards,\r\n userUnclaimedRewards,\r\n })\r\n }\r\n return dataArray\r\n }\r\n\r\n async getIcon(contractData: TokenContractData): Promise{\r\n const metadata = await contractData.getMetadata()\r\n const src = metadata.icon ? metadata.icon : metadata.name\r\n return {\r\n isSvg: src.includes(\" {\r\n let dataArray: TokenIconData[] = []\r\n const farmTokenContractList = await this.stakingContractData.getFarmTokenContractList()\r\n for(let i = 0; i < farmTokenContractList.length; i++) {\r\n const farmTokenContract = farmTokenContractList[i]\r\n const farmTokenMetadata = await farmTokenContract.getMetadata()\r\n const src = farmTokenMetadata.icon ? farmTokenMetadata.icon : farmTokenMetadata.name\r\n const data = {\r\n isSvg: src.includes(\" {\r\n let walletAvailable: U128String[] = []\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const contractData = stakeTokenContractList[i]\r\n const balance = await contractData.getBalance()\r\n walletAvailable.push(balance)\r\n }\r\n return walletAvailable\r\n }\r\n}","import { nearConfig } from \"..\";\r\nimport { NEP141Trait } from \"../contracts/NEP141\";\r\nimport { StakingPoolP1 } from \"../contracts/p2-staking\";\r\nimport { StakingPoolP3 } from \"../contracts/p3-staking\";\r\nimport { HtmlPoolParams, PoolParams, UserStatusP2 } from \"../entities/poolParams\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { PoolParamsNFT } from \"./poolParamsNFT\";\r\nimport { PoolParamsP3 } from \"./poolParamsP3\";\r\n\r\n\r\nlet poolList: Array;\r\n\r\nasync function generatePoolList(wallet: WalletInterface) {\r\n poolList = [];\r\n let size = nearConfig.farms.length\r\n for(let i = 0; i < size; i++) {\r\n const index = nearConfig.farms[i].index as number;\r\n const type = nearConfig.farms[i].poolType as string;\r\n const poolHtml = new HtmlPoolParams(nearConfig.farms[i].poolName);\r\n const cheddarContractName = new NEP141Trait(nearConfig.cheddarContractName);\r\n const tokenContractName = new NEP141Trait(nearConfig.farms[i].tokenContractName);\r\n let contract\r\n let poolParams\r\n if(nearConfig.farms[i].poolType == \"multiple\") {\r\n // contract = new StakingPoolP3(nearConfig.farms[i].contractName);\r\n // poolParams = new PoolParamsP3(index, type, poolHtml, contract, cheddarContractName, nearConfig.nftContractAddress, wallet);\r\n poolParams = new PoolParamsP3(wallet, nearConfig.farms[i], nearConfig.nftContractAddress, nearConfig.cheddarNFTBaseUrl)\r\n } else if(nearConfig.farms[i].poolType == \"single\"){\r\n contract = new StakingPoolP1(nearConfig.farms[i].contractName);\r\n poolParams = new PoolParams(wallet, nearConfig.farms[i], nearConfig.cheddarContractName);\r\n // poolParams = new PoolParams(index, type, poolHtml, contract, cheddarContractName, tokenContractName, new PoolResultParams(), wallet, nearConfig.farms[i].poolName);\r\n\r\n } else if(nearConfig.farms[i].poolType == \"nft\") {\r\n contract = new StakingPoolP1(nearConfig.farms[i].contractName);\r\n poolParams = new PoolParamsNFT(wallet, nearConfig.farms[i], nearConfig.cheddarNFTContractName, nearConfig.cheddarNFTBaseUrl);\r\n } else {\r\n continue\r\n }\r\n await poolParams.setAllExtraData();\r\n\r\n poolList.push(poolParams);\r\n }\r\n}\r\n\r\nexport async function getPoolList(wallet: WalletInterface): Promise<(PoolParams | PoolParamsP3 | PoolParamsNFT)[]> {\r\n if(!poolList || poolList.length == 0) {\r\n await generatePoolList(wallet);\r\n await Promise.all(\r\n poolList.map(async function(pool) {\r\n return await pool.stakingContractData.getContractParams()\r\n })\r\n )\r\n poolList = poolList.sort((a, b) => b.stakingContractData.getContractParamsNotAsync().farming_end - a.stakingContractData.getContractParamsNotAsync().farming_end)\r\n\r\n }\r\n return poolList;\r\n}\r\n\r\n","import { ENV } from \"../config\";\r\nimport { RefTokenData } from \"../entities/refResponse\";\r\n\r\nlet tokenDataArray: RefTokenData[]\r\nlet testTokensSymbols = [\"afi-tt\", \"gua\"]\r\n\r\nasync function setAllTokensData(): Promise {\r\n const url = \"https://api.stats.ref.finance/api/top-tokens\"\r\n const response = await fetch(url)\r\n const errorMessage = \"We are experiencing issues with the Ref Price Oracle, please try again in a bit.\"\r\n const json = await response.json()\r\n tokenDataArray = json\r\n}\r\n\r\nexport async function getTokenData(token: string, reloadData: boolean = false): Promise {\r\n if(!tokenDataArray || reloadData) await setAllTokensData()\r\n return getPriceWithData(token)\r\n}\r\n\r\nfunction getPriceWithData(tokenSymbol: string): RefTokenData {\r\n tokenSymbol = tokenSymbol.toLowerCase()\r\n //@ts-ignore\r\n if(ENV == \"testnet\" && testTokensSymbols.includes(tokenSymbol)) {\r\n // AFI-TT doesn't exists in mainnet so this is a patch for testing purposes, selecting the token\r\n // PEM arbitrarily\r\n tokenSymbol = \"pem\".toLowerCase()\r\n }\r\n if(tokenSymbol == \"near\" || tokenSymbol == \"nearcon\") {\r\n tokenSymbol = \"wnear\"\r\n }\r\n let output: RefTokenData | undefined = undefined\r\n tokenDataArray.forEach(tokenData => {\r\n if(tokenData.symbol.toLowerCase() === tokenSymbol) {\r\n output = tokenData\r\n }\r\n });\r\n if(output !== undefined) {\r\n return output\r\n }\r\n throw Error(`Token with symbol ${tokenSymbol} not found`)\r\n}\r\n\r\nexport async function getTokenDataArray(tokenArray: string[], reloadData: boolean = false): Promise< Map > {\r\n if(!tokenDataArray || reloadData) await setAllTokensData()\r\n // const allTokenData = await setAllTokensData()\r\n let output: Map = new Map()\r\n tokenArray.forEach(tokenSymbol => {\r\n tokenSymbol = tokenSymbol.toLowerCase()\r\n output.set(tokenSymbol, getPriceWithData(tokenSymbol))\r\n })\r\n return output\r\n}","export interface NFT {\r\n token_id: string\r\n owner_id: string\r\n metadata: NFTMetadata\r\n approved_account_ids: object\r\n}\r\n\r\nexport interface NFTWithMetadata extends NFT {\r\n contract_id: string\r\n base_url: string\r\n}\r\n\r\nexport interface NFTMetadata {\r\n spec: string\r\n name: string\r\n symbol: string\r\n icon: string\r\n base_uri: string\r\n reference: string|null\r\n reference_hash: string|null\r\n}\r\n\r\nexport function newNFT(tokenId: string, baseUrl: string, contractId: string): NFTWithMetadata {\r\n return {\r\n contract_id: contractId,\r\n base_url: baseUrl,\r\n token_id: tokenId,\r\n owner_id: \"\",\r\n metadata: {\r\n title: \"\",\r\n description: \"\",\r\n media: tokenId + \".png\",\r\n media_hash: \"\",\r\n copies: null,\r\n issued_at: \"\",\r\n expires_at: \"\",\r\n starts_at: \"\",\r\n updated_at: \"\",\r\n extra: \"\",\r\n reference: \"\",\r\n reference_hash: \"\"\r\n },\r\n approved_account_ids: {}\r\n }\r\n}","import { qs } from \"../document\";\r\n\r\nvar pointsA: Point[] = [],\r\n pointsB: Point[] = [],\r\n $canvas: HTMLCanvasElement|null = null,\r\n canvas = null,\r\n context: CanvasRenderingContext2D | null = null,\r\n vars = null,\r\n points = 8,\r\n viscosity = 20,\r\n mouseDist = 70,\r\n damping = 0.05,\r\n showIndicators = false,\r\n mouseX = 0,\r\n mouseY = 0,\r\n relMouseX = 0,\r\n relMouseY = 0,\r\n mouseLastX = 0,\r\n mouseLastY = 0,\r\n mouseDirectionX = 0,\r\n mouseDirectionY = 0,\r\n mouseSpeedX = 0,\r\n mouseSpeedY = 0;\r\n\r\nfunction mouseDirection(e: MouseEvent) {\r\n if (mouseX < e.pageX)\r\n mouseDirectionX = 1;\r\n else if (mouseX > e.pageX)\r\n mouseDirectionX = -1;\r\n else\r\n mouseDirectionX = 0;\r\n\r\n if (mouseY < e.pageY)\r\n mouseDirectionY = 1;\r\n else if (mouseY > e.pageY)\r\n mouseDirectionY = -1;\r\n else\r\n mouseDirectionY = 0;\r\n\r\n mouseX = e.pageX;\r\n mouseY = e.pageY;\r\n\r\n relMouseX = (mouseX - $canvas?.getBoundingClientRect().left!);\r\n relMouseY = (mouseY - $canvas?.getBoundingClientRect().top!);\r\n}\r\n\r\ndocument.addEventListener('mousemove', mouseDirection);\r\n\r\nfunction mouseSpeed() {\r\n mouseSpeedX = mouseX - mouseLastX;\r\n mouseSpeedY = mouseY - mouseLastY;\r\n\r\n mouseLastX = mouseX;\r\n mouseLastY = mouseY;\r\n\r\n setTimeout(mouseSpeed, 50);\r\n}\r\n\r\nexport function initButton() {\r\n // Get button\r\n mouseSpeed();\r\n var button: HTMLElement = qs(\".btn-liquid\");\r\n //I use this number after getting the button with to make the canva content visually bigger and work properly. In CSS use transform: translateX(-number/2) to center the content\r\n var buttonWidth = button.getBoundingClientRect().width + 22;\r\n var buttonHeight = button.getBoundingClientRect().height;\r\n\r\n // Create canvas\r\n $canvas = document.createElement(\"canvas\")\r\n button.append($canvas);\r\n\r\n // canvas = $canvas.get(0);\r\n $canvas.width = buttonWidth+30;\r\n $canvas.height = buttonHeight+50;\r\n context = $canvas.getContext('2d');\r\n\r\n // Add points\r\n\r\n var x = buttonHeight/2;\r\n for(var j = 1; j < points; j++) {\r\n addPoints((x+((buttonWidth-buttonHeight)/points)*j), 0);\r\n }\r\n addPoints(buttonWidth-buttonHeight/5, 0);\r\n addPoints(buttonWidth+buttonHeight/10, buttonHeight/2);\r\n addPoints(buttonWidth-buttonHeight/5, buttonHeight);\r\n for(var j = points-1; j > 0; j--) {\r\n addPoints((x+((buttonWidth-buttonHeight)/points)*j), buttonHeight);\r\n }\r\n addPoints(buttonHeight/5, buttonHeight);\r\n\r\n addPoints(-buttonHeight/10, buttonHeight/2);\r\n addPoints(buttonHeight/5, 0);\r\n // addPoints(x, 0);\r\n // addPoints(0, buttonHeight/2);\r\n\r\n // addPoints(0, buttonHeight/2);\r\n // addPoints(buttonHeight/4, 0);\r\n\r\n // Start render\r\n renderCanvas();\r\n}\r\n\r\n/**\r\n\t * Add points\r\n\t */\r\n function addPoints(x: number, y: number) {\r\n pointsA.push(new Point(x, y, 1));\r\n pointsB.push(new Point(x, y, 2));\r\n}\r\n\r\nclass Point {\r\n\r\n x: number\r\n ix: number\r\n y: number\r\n iy: number\r\n vx: number\r\n vy: number\r\n cx1: number\r\n cy1: number\r\n cx2: number\r\n cy2: number\r\n level: number\r\n\r\n constructor(x: number, y: number, level: number) {\r\n this.x = this.ix = 25+x;\r\n this.y = this.iy = 25+y;\r\n this.vx = 0;\r\n this.vy = 0;\r\n this.cx1 = 0;\r\n this.cy1 = 0;\r\n this.cx2 = 0;\r\n this.cy2 = 0;\r\n this.level = level;\r\n }\r\n\r\n move() {\r\n this.vx += (this.ix - this.x) / (viscosity*this.level);\r\n this.vy += (this.iy - this.y) / (viscosity*this.level);\r\n\r\n var dx = this.ix - relMouseX,\r\n dy = this.iy - relMouseY;\r\n var relDist = (1-Math.sqrt((dx * dx) + (dy * dy))/mouseDist);\r\n\r\n // Move x\r\n if ((mouseDirectionX > 0 && relMouseX > this.x) || (mouseDirectionX < 0 && relMouseX < this.x)) {\r\n if (relDist > 0 && relDist < 1) {\r\n this.vx = (mouseSpeedX / 4) * relDist;\r\n }\r\n }\r\n this.vx *= (1 - damping);\r\n this.x += this.vx;\r\n\r\n // Move y\r\n if ((mouseDirectionY > 0 && relMouseY > this.y) || (mouseDirectionY < 0 && relMouseY < this.y)) {\r\n if (relDist > 0 && relDist < 1) {\r\n this.vy = (mouseSpeedY / 4) * relDist;\r\n }\r\n }\r\n this.vy *= (1 - damping);\r\n this.y += this.vy;\r\n }\r\n}\r\n// function Point(x: number, y: number, level: number) {\r\n// this.x = this.ix = 50+x;\r\n// this.y = this.iy = 50+y;\r\n// this.vx = 0;\r\n// this.vy = 0;\r\n// this.cx1 = 0;\r\n// this.cy1 = 0;\r\n// this.cx2 = 0;\r\n// this.cy2 = 0;\r\n// this.level = level;\r\n// }\r\n\r\n// Point.prototype.move = function() {\r\n// this.vx += (this.ix - this.x) / (viscosity*this.level);\r\n// this.vy += (this.iy - this.y) / (viscosity*this.level);\r\n\r\n// var dx = this.ix - relMouseX,\r\n// dy = this.iy - relMouseY;\r\n// var relDist = (1-Math.sqrt((dx * dx) + (dy * dy))/mouseDist);\r\n\r\n// // Move x\r\n// if ((mouseDirectionX > 0 && relMouseX > this.x) || (mouseDirectionX < 0 && relMouseX < this.x)) {\r\n// if (relDist > 0 && relDist < 1) {\r\n// this.vx = (mouseSpeedX / 4) * relDist;\r\n// }\r\n// }\r\n// this.vx *= (1 - damping);\r\n// this.x += this.vx;\r\n\r\n// // Move y\r\n// if ((mouseDirectionY > 0 && relMouseY > this.y) || (mouseDirectionY < 0 && relMouseY < this.y)) {\r\n// if (relDist > 0 && relDist < 1) {\r\n// this.vy = (mouseSpeedY / 4) * relDist;\r\n// }\r\n// }\r\n// this.vy *= (1 - damping);\r\n// this.y += this.vy;\r\n// };\r\n\r\n/**\r\n\t * Render canvas\r\n\t */\r\n function renderCanvas() {\r\n // rAF\r\n var rafID = requestAnimationFrame(renderCanvas);\r\n\r\n // Clear scene\r\n context!.clearRect(0, 0, $canvas!.getBoundingClientRect().width, $canvas!.getBoundingClientRect().height);\r\n context!.fillStyle = 'transparent';\r\n context!.fillRect(0, 0, $canvas!.getBoundingClientRect().width, $canvas!.getBoundingClientRect().height);\r\n\r\n // Move points\r\n for (var i = 0; i <= pointsA.length - 1; i++) {\r\n pointsA[i].move();\r\n pointsB[i].move();\r\n }\r\n\r\n var canvasRect: DOMRect = $canvas!.getBoundingClientRect();\r\n\r\n var canvasOffset = { \r\n top: canvasRect.top + window.scrollY, \r\n left: canvasRect.left + window.scrollX, \r\n };\r\n // Create dynamic gradient\r\n var gradientX = Math.min(Math.max(mouseX - canvasOffset.left, 0), $canvas!.getBoundingClientRect().width);\r\n var gradientY = Math.min(Math.max(mouseY - canvasOffset.top, 0), $canvas!.getBoundingClientRect().height);\r\n var distance = Math.sqrt(Math.pow(gradientX - $canvas!.getBoundingClientRect().width/2, 2) + Math.pow(gradientY - $canvas!.getBoundingClientRect().height/2, 2)) / Math.sqrt(Math.pow($canvas!.getBoundingClientRect().width/2, 2) + Math.pow($canvas!.getBoundingClientRect().height/2, 2));\r\n\r\n var gradient = context!.createRadialGradient(gradientX, gradientY, 300+(300*distance), gradientX, gradientY, 0);\r\n gradient.addColorStop(0, '#F9BA37');\r\n gradient.addColorStop(1, '#FFD262');\r\n\r\n // Draw shapes\r\n var groups = [pointsA, pointsB]\r\n\r\n for (var j = 0; j <= 1; j++) {\r\n var points = groups[j];\r\n\r\n if (j == 0) {\r\n // Background style\r\n context!.fillStyle = '#8542EB';\r\n } else {\r\n // Foreground style\r\n context!.fillStyle = gradient;\r\n }\r\n\r\n context!.beginPath();\r\n context!.moveTo(points[0].x, points[0].y);\r\n\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var nextP = points[i + 1];\r\n var val = 30*0.552284749831;\r\n\r\n if (nextP != undefined) {\r\n p.cx1 = (p.x+nextP.x)/2;\r\n p.cy1 = (p.y+nextP.y)/2;\r\n p.cx2 = (p.x+nextP.x)/2;\r\n p.cy2 = (p.y+nextP.y)/2;\r\n\r\n context!.bezierCurveTo(p.x, p.y, p.cx1, p.cy1, p.cx1, p.cy1);\r\n } else {\r\n nextP = points[0];\r\n p.cx1 = (p.x+nextP.x)/2;\r\n p.cy1 = (p.y+nextP.y)/2;\r\n\r\n context!.bezierCurveTo(p.x, p.y, p.cx1, p.cy1, p.cx1, p.cy1);\r\n }\r\n }\r\n context!.fill();\r\n }\r\n\r\n if (showIndicators) {\r\n // Draw points\r\n context!.fillStyle = '#000';\r\n context!.beginPath();\r\n for (var i = 0; i < pointsA.length; i++) {\r\n var p = pointsA[i];\r\n\r\n context!.rect(p.x - 1, p.y - 1, 2, 2);\r\n }\r\n context!.fill();\r\n\r\n // Draw controls\r\n context!.fillStyle = '#f00';\r\n context!.beginPath();\r\n for (var i = 0; i < pointsA.length; i++) {\r\n var p = pointsA[i];\r\n\r\n context!.rect(p.cx1 - 1, p.cy1 - 1, 2, 2);\r\n context!.rect(p.cx2 - 1, p.cy2 - 1, 2, 2);\r\n }\r\n context!.fill();\r\n }\r\n}\r\n\r\n// Init\r\n// initButton();\r\n","import { qsa } from \"../document\"\n\n// ammount to add on each button press\nconst confettiCount = 20 as number\nconst sequinCount = 10 as number\n\n// \"physics\" variables\nconst gravityConfetti = 0.3 as number\nconst gravitySequins = 0.55 as number\nconst dragConfetti = 0.075 as number\nconst dragSequins = 0.02 as number\nconst terminalVelocity = 3 as number\n\n// init other global elements\n// export function init() {\n// const harvestSection: Element[] = Array.from(qsa(\".harvest-section\"))\n// for(let elem of harvestSection) {\n// const confettiButton: Element = elem.querySelector(\".confetti-button\")!\n// const canvas: Element = elem.querySelector(\"#new-confetti-button_canvas\")!\n// }\n// button = document.querySelector('#tt-container .confetti-button') as HTMLButtonElement\n// disabled = false as boolean\n// canvas = document.querySelector('#tt-container #new-confetti-button_canvas') as HTMLCanvasElement\n// ctx = canvas.getContext('2d')\n// canvas.width = window.innerWidth\n// canvas.height = window.innerHeight\n\n// // Set up button text transition timings on page load\n// let textElements = button.querySelectorAll('.button-text') as NodeListOf\n// textElements.forEach((element) => {\n// let characters = element.innerText.split('')\n// let characterHTML = ''\n// characters.forEach((letter: string, index: number) => {\n// characterHTML += `${letter}`\n// })\n// element.innerHTML = characterHTML\n// })\n\n// // kick off the render loop\n// // initBurst()\n// render()\n// }\nlet button = document.querySelector('.confetti-button') as HTMLButtonElement\nvar disabled = false as boolean\nlet canvas: HTMLCanvasElement\nlet ctx: any\n// canvas.width = window.innerWidth\n// canvas.height = window.innerHeight\n// allCanvas.width = 405\n// allCanvas.height = 404\n// let cx = ctx!.canvas.width / 2\n// let cy = ctx!.canvas.height / 2\n\ninterface Color {\n front : string,\n back : string\n}\n\ninterface Point {\n x: number,\n y: number\n}\n\n\n// colors, back side is darker for confetti flipping\nconst colors = [\n { front : '#7b5cff', back: '#6245e0' }, // Purple\n { front : '#b3c7ff', back: '#8fa5e5' }, // Light Blue\n { front : '#5c86ff', back: '#345dd1' } // Darker Blue\n]\n\n// helper function to pick a random number within a range\nconst randomRange = (min: number, max: number) => Math.random() * (max - min) + min\n\n// helper function to get initial velocities for confetti\n// this weighted spread helps the confetti look more realistic\nconst initConfettoVelocity = (xRange: [number,number], yRange: [number,number]) => {\n const x = randomRange(xRange[0], xRange[1])\n const range = yRange[1] - yRange[0] + 1\n let y = yRange[1] - Math.abs(randomRange(0, range) + randomRange(0, range) - range)\n if (y >= yRange[1] - 1) {\n // Occasional confetto goes higher than the max\n y += (Math.random() < .25) ? randomRange(1, 3) : 0\n }\n return {x: x, y: -y}\n}\n\nexport class ConfettiButton {\n\n confettiButton: HTMLButtonElement\n canvas: HTMLCanvasElement\n // add Confetto/Sequin objects to arrays to draw them\n confetti: Confetto[]= []\n sequins: Sequin[] = []\n\n constructor(pool: HTMLElement) {\n this.confettiButton = pool.querySelector(\".confetti-button\")!\n this.canvas = pool.querySelector(\"#new-confetti-button_canvas\")!\n\n // resize listenter\n window.addEventListener('resize', () => {\n this.resizeCanvas()\n })\n }\n\n // add elements to arrays to be drawn\n initBurst() {\n for (let i = 0; i < confettiCount; i++) {\n this.confetti.push(new Confetto(this.confettiButton, this.canvas))\n }\n for (let i = 0; i < sequinCount; i++) {\n this.sequins.push(new Sequin(this.confettiButton, this.canvas))\n }\n }\n\n // draws the elements on the canvas\n render(confettiButton: HTMLButtonElement, canvas: HTMLCanvasElement, confetti: Confetto[], sequins: Sequin[], render?: Function) {\n const ctx = canvas.getContext(\"2d\")\n ctx!.clearRect(0, 0, canvas.width, canvas.height)\n \n confetti.forEach((confetto, index) => {\n let width = (confetto.dimensions.x * confetto.scale.x)\n let height = (confetto.dimensions.y * confetto.scale.y)\n \n // move canvas to position and rotate\n ctx!.translate(confetto.position.x, confetto.position.y)\n ctx!.rotate(confetto.rotation)\n\n // update confetto \"physics\" values\n confetto.update()\n \n // get front or back fill color\n ctx!.fillStyle = confetto.scale.y > 0 ? confetto.color.front : confetto.color.back\n \n // draw confetto\n ctx!.fillRect(-width / 2, -height / 2, width, height)\n \n // reset transform matrix\n ctx!.setTransform(1, 0, 0, 1, 0, 0)\n\n // clear rectangle where button cuts off\n if (confetto.velocity.y < 0) {\n ctx!.clearRect(canvas.width/2 - confettiButton.offsetWidth/2, canvas.height/2 + confettiButton.offsetHeight/2, confettiButton.offsetWidth, confettiButton.offsetHeight)\n }\n })\n\n sequins.forEach((sequin, index) => { \n // move canvas to position\n ctx!.translate(sequin.position.x, sequin.position.y)\n \n // update sequin \"physics\" values\n sequin.update()\n \n // set the color\n ctx!.fillStyle = sequin.color\n \n // draw sequin\n ctx!.beginPath()\n ctx!.arc(0, 0, sequin.radius, 0, 2 * Math.PI)\n ctx!.fill()\n\n // reset transform matrix\n ctx!.setTransform(1, 0, 0, 1, 0, 0)\n\n // clear rectangle where button cuts off\n if (sequin.velocity.y < 0) {\n ctx!.clearRect(canvas.width/2 - confettiButton.offsetWidth/2, canvas.height/2 + confettiButton.offsetHeight/2, confettiButton.offsetWidth, confettiButton.offsetHeight)\n }\n })\n\n // remove confetti and sequins that fall off the screen\n // must be done in seperate loops to avoid noticeable flickering\n confetti.forEach((confetto, index) => {\n if (confetto.position.y >= canvas.height) confetti.splice(index, 1)\n })\n sequins.forEach((sequin, index) => {\n if (sequin.position.y >= canvas.height) sequins.splice(index, 1)\n })\n\n let r = render ? render : this.render\n window.requestAnimationFrame(r.bind(null, confettiButton, canvas, confetti, sequins, r))\n }\n\n // cycle through button states when clicked\n clickButtonWithRedirection(poolID: string) {\n if (!disabled) {\n sessionStorage.setItem(\"cheddarFarmJustHarvested\", poolID)\n // disabled = true\n // Loading stage\n this.confettiButton.classList.add('loading')\n this.confettiButton.classList.remove('ready')\n // setTimeout(() => {\n // // Completed stage\n // this.confettiButton.classList.add('complete')\n // this.confettiButton.classList.remove('loading')\n // // setTimeout(() => {\n // // this.initBurst()\n // // setTimeout(() => {\n // // // Reset button so user can select it again\n // // disabled = false\n // // this.confettiButton.classList.add('ready')\n // // this.confettiButton.classList.remove('complete')\n // // }, 4000)\n // // }, 320)\n // }, 1800)\n }\n }\n\n successAnimation() {\n disabled = true\n // Loading stage\n this.confettiButton.classList.add('loading')\n this.confettiButton.classList.remove('ready')\n setTimeout(() => {\n // Completed stage\n this.confettiButton.classList.add('complete')\n this.confettiButton.classList.remove('loading')\n setTimeout(() => {\n this.initBurst()\n setTimeout(() => {\n // Reset button so user can select it again\n disabled = false\n this.confettiButton.classList.add('ready')\n this.confettiButton.classList.remove('complete')\n }, 4000)\n }, 320)\n }, 1800)\n }\n\n clickButtonWithoutRedirection() {\n if (!disabled) {\n disabled = true\n // Loading stage\n this.confettiButton.classList.add('loading')\n this.confettiButton.classList.remove('ready')\n setTimeout(() => {\n // Completed stage\n this.confettiButton.classList.add('complete')\n this.confettiButton.classList.remove('loading')\n setTimeout(() => {\n this.initBurst()\n setTimeout(() => {\n // Reset button so user can select it again\n disabled = false\n this.confettiButton.classList.add('ready')\n this.confettiButton.classList.remove('complete')\n }, 4000)\n }, 320)\n }, 1800)\n }\n }\n\n // re-init canvas if the window size changes\n resizeCanvas() {\n canvas.width = window.innerWidth\n canvas.height = window.innerHeight\n // cx = ctx!.canvas.width / 2\n // cy = ctx!.canvas.height / 2\n }\n\n \n}\n\n\n\n// Confetto Class\nclass Confetto {\n randomModifier : number\n color : Color\n dimensions : Point\n position : Point\n rotation : number\n scale : Point\n velocity : Point\n\n constructor(button: HTMLButtonElement, canvas: HTMLCanvasElement){\n this.randomModifier = randomRange(0, 99)\n this.color = colors[Math.floor(randomRange(0, colors.length))]\n this.dimensions = {\n x: randomRange(5, 9),\n y: randomRange(8, 15),\n }\n this.position = {\n x: randomRange(canvas.width/2 - button.offsetWidth/4, canvas.width/2 + button.offsetWidth/4),\n y: randomRange(canvas.height/2 + button.offsetHeight/2 + 8, canvas.height/2 + (1.5 * button.offsetHeight) - 8),\n }\n this.rotation = randomRange(0, 2 * Math.PI)\n this.scale = {\n x: 1,\n y: 1,\n }\n this.velocity = initConfettoVelocity([-9, 9], [6, 11])\n }\n update() {\n // apply forces to velocity\n this.velocity.x -= this.velocity.x * dragConfetti\n this.velocity.y = Math.min(this.velocity.y + gravityConfetti, terminalVelocity)\n this.velocity.x += Math.random() > 0.5 ? Math.random() : -Math.random()\n \n // set position\n this.position.x += this.velocity.x\n this.position.y += this.velocity.y\n \n // spin confetto by scaling y and set the color, .09 just slows cosine frequency\n this.scale.y = Math.cos((this.position.y + this.randomModifier) * 0.09) \n }\n\n \n}\n// Sequin Class\nclass Sequin {\n color: string\n radius: number\n position: Point\n velocity: Point\n\n constructor(button: HTMLButtonElement, canvas: HTMLCanvasElement){\n this.color = colors[Math.floor(randomRange(0, colors.length))].back,\n this.radius = randomRange(1, 2),\n this.position = {\n x: randomRange(canvas.width/2 - button.offsetWidth/3, canvas.width/2 + button.offsetWidth/3),\n y: randomRange(canvas.height/2 + button.offsetHeight/2 + 8, canvas.height/2 + (1.5 * button.offsetHeight) - 8),\n },\n this.velocity = {\n x: randomRange(-6, 6),\n y: randomRange(-8, -12)\n }\n }\n update() {\n // apply forces to velocity\n this.velocity.x -= this.velocity.x * dragSequins\n this.velocity.y = this.velocity.y + gravitySequins\n\n // set position\n this.position.x += this.velocity.x\n this.position.y += this.velocity.y \n }\n}\n\n\n\n\n\n\n\n\n\n// click button on spacebar or return keypress\n// document.body.onkeyup = (e) => {\n// if (e.keyCode == 13 || e.keyCode == 32) {\n// clickButton()\n// }\n// }\n\n"],"names":["Object","defineProperty","module","exports","value","MergeKeyStore","BrowserLocalStorageKeyStore","InMemoryKeyStore","KeyStore","enumerable","get","$5locV","$a2Tq3","$6fIhg","$jmjoH","$7505145e7cd5ec04$var$InMemoryKeyStore","async","networkId","accountId","keyPair","this","keys","toString","$7v7or","KeyPair","fromString","result","Set","forEach","key","parts","split","add","Array","from","values","length","push","slice","join","constructor","super","$576129c4a233950c$var$__importDefault","__importDefault","mod","__esModule","default","KeyPairEd25519","PublicKey","KeyType","$576129c4a233950c$var$tweetnacl_1","parcelRequire","$576129c4a233950c$var$KeyType","KeyType1","$576129c4a233950c$var$str_to_key_type","keyType","toLowerCase","ED25519","Error","$576129c4a233950c$var$PublicKey","$35nut","Assignable","static","encodedKey","data","$lKyV1","base_decode","$576129c4a233950c$var$key_type_to_str","base_encode","$576129c4a233950c$var$KeyPair","curve","toUpperCase","$576129c4a233950c$var$KeyPairEd25519","fromRandom","newKeyPair","sign","secretKey","message","detached","publicKey","verify","signature","getPublicKey","fromSecretKey","nacl","gf","init","i","r","Float64Array","randombytes","_0","Uint8Array","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","l","vn","xi","y","yi","n","d","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","out","inp","k","c","o","p","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","m","mpos","b","z","crypto_stream_salsa20","crypto_stream","s","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","buffer","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","a","car25519","v","Math","floor","sel25519","q","t","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","e","f","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","prototype","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","g","want","crypto_box_afternm","crypto_box_open_afternm","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","crypto_sign_open","chk","num","den","den2","den4","den6","unpackneg","crypto_secretbox_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","arguments","TypeError","cleanup","arr","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","before","checkBoxLengths","after","publicKeyLength","secretKeyLength","sharedKeyLength","signedMsg","tmp","mlen","sig","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","crypto","self","msCrypto","getRandomValues","min","$l1dTs","baseEncode","baseDecode","serialize","deserialize","BorshError","BinaryWriter","BinaryReader","$f4d477ecb5eadfcc$var$__createBinding","__createBinding","create","k2","undefined","$f4d477ecb5eadfcc$var$__setModuleDefault","__setModuleDefault","$f4d477ecb5eadfcc$var$__decorate","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","$f4d477ecb5eadfcc$var$__importStar","__importStar","hasOwnProperty","call","$f4d477ecb5eadfcc$var$__importDefault","$f4d477ecb5eadfcc$var$bn_js_1","$f4d477ecb5eadfcc$var$bs58_1","$f4d477ecb5eadfcc$var$encoding","$f4d477ecb5eadfcc$var$textDecoder","$parcel$global","TextDecoder","fatal","$f4d477ecb5eadfcc$require$Buffer","encode","decode","$f4d477ecb5eadfcc$var$INITIAL_LENGTH","$f4d477ecb5eadfcc$var$BorshError","addToFieldPath","fieldName","fieldPath","splice","originalMessage","$f4d477ecb5eadfcc$var$BinaryWriter","maybeResize","buf","concat","alloc","writeU8","writeUInt8","writeU32","writeUInt32LE","writeU64","writeBuffer","toArray","writeU128","writeString","str","writeFixedArray","array","writeArray","elem","$f4d477ecb5eadfcc$var$handlingRangeError","propertyKey","propertyDescriptor","originalMethod","args","apply","RangeError","code","indexOf","$f4d477ecb5eadfcc$var$BinaryReader","readU8","readUInt8","offset","readU32","readUInt32LE","readU64","readBuffer","readU128","len","readString","readFixedArray","readArray","$f4d477ecb5eadfcc$var$capitalizeFirstLetter","string","charAt","$f4d477ecb5eadfcc$var$serializeField","schema","fieldType","writer","item","kind","type","$f4d477ecb5eadfcc$var$serializeStruct","error","obj","structSchema","name","fields","map","field","idx","$f4d477ecb5eadfcc$var$deserializeField","reader","$f4d477ecb5eadfcc$var$deserializeStruct","classType","$0531d65a9e130533$export$a143d493d941bafc","$0531d65a9e130533$export$e4cf37d7f6fb9e0a","$0531d65a9e130533$export$f99ded8fe4b79145","$0531d65a9e130533$export$599f31c3813fae4d","$0531d65a9e130533$var$customInspectSymbol","Symbol","$0531d65a9e130533$var$Buffer","$0531d65a9e130533$var$K_MAX_LENGTH","$0531d65a9e130533$var$createBuffer","setPrototypeOf","arg","encodingOrOffset","$0531d65a9e130533$var$allocUnsafe","$0531d65a9e130533$var$from","encoding","isEncoding","$0531d65a9e130533$var$byteLength","actual","write","$0531d65a9e130533$var$fromString","ArrayBuffer","isView","arrayView","$0531d65a9e130533$var$isInstance","copy","$0531d65a9e130533$var$fromArrayBuffer","byteOffset","byteLength","$0531d65a9e130533$var$fromArrayLike","$0531d65a9e130533$var$fromArrayView","SharedArrayBuffer","valueOf","isBuffer","$0531d65a9e130533$var$checked","$0531d65a9e130533$var$numberIsNaN","isArray","$0531d65a9e130533$var$fromObject","toPrimitive","$0531d65a9e130533$var$assertSize","size","mustMatch","loweredCase","$0531d65a9e130533$var$utf8ToBytes","$0531d65a9e130533$var$base64ToBytes","$0531d65a9e130533$var$slowToString","start","end","$0531d65a9e130533$var$hexSlice","$0531d65a9e130533$var$utf8Slice","$0531d65a9e130533$var$asciiSlice","$0531d65a9e130533$var$latin1Slice","$0531d65a9e130533$var$base64Slice","$0531d65a9e130533$var$utf16leSlice","$0531d65a9e130533$var$swap","$0531d65a9e130533$var$bidirectionalIndexOf","val","dir","$0531d65a9e130533$var$arrayIndexOf","lastIndexOf","i1","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","$0531d65a9e130533$var$hexWrite","Number","remaining","strLen","parsed","parseInt","substr","$0531d65a9e130533$var$utf8Write","$0531d65a9e130533$var$blitBuffer","$0531d65a9e130533$var$asciiWrite","byteArray","charCodeAt","$0531d65a9e130533$var$asciiToBytes","$0531d65a9e130533$var$base64Write","$0531d65a9e130533$var$ucs2Write","units","hi","lo","$0531d65a9e130533$var$utf16leToBytes","$77LpT","fromByteArray","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","$0531d65a9e130533$var$MAX_ARGUMENTS_LENGTH","fromCharCode","$0531d65a9e130533$var$decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","$0531d65a9e130533$var$typedArraySupport","console","poolSize","fill","$0531d65a9e130533$var$alloc","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","list","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","$0531d65a9e130533$var$hexSliceLookupTable","$0531d65a9e130533$var$checkOffset","ext","$0531d65a9e130533$var$checkInt","$0531d65a9e130533$var$wrtBigUInt64LE","$0531d65a9e130533$var$checkIntBI","BigInt","$0531d65a9e130533$var$wrtBigUInt64BE","$0531d65a9e130533$var$checkIEEE754","$0531d65a9e130533$var$writeFloat","littleEndian","noAssert","$dbRZz","$0531d65a9e130533$var$writeDouble","newBuf","readUintLE","readUIntLE","byteLength1","mul","readUintBE","readUIntBE","byteLength2","readUint8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUint32BE","readUInt32BE","readBigUInt64LE","$0531d65a9e130533$var$defineBigIntMethod","$0531d65a9e130533$var$validateNumber","first","last","$0531d65a9e130533$var$boundsError","readBigUInt64BE","readIntLE","byteLength3","pow","readIntBE","byteLength4","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","byteLength5","writeUintBE","writeUIntBE","byteLength6","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","byteLength7","limit","sub","writeIntBE","byteLength8","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","$0531d65a9e130533$var$errors","$0531d65a9e130533$var$E","sym","getMessage","Base","configurable","writable","stack","$0531d65a9e130533$var$addNumericalSeparator","byteLength10","range","ERR_OUT_OF_RANGE","byteLength9","$0531d65a9e130533$var$checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","input","received","isInteger","abs","$0531d65a9e130533$var$INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","$0531d65a9e130533$var$base64clean","src","dst","alphabet","table","i16","$0531d65a9e130533$var$BufferBigIntNotDefined","$52fdf7cb07024765$export$d622b2ad8d90c771","$52fdf7cb07024765$export$6100ba28696e12de","b64","lens","$52fdf7cb07024765$var$getLens","validLen","placeHoldersLen","$52fdf7cb07024765$var$Arr","$52fdf7cb07024765$var$_byteLength","curByte","len2","$52fdf7cb07024765$var$revLookup","uint8","len3","extraBytes","maxChunkLength","i3","$52fdf7cb07024765$var$encodeChunk","$52fdf7cb07024765$var$lookup","$52fdf7cb07024765$var$code","$52fdf7cb07024765$var$i","$52fdf7cb07024765$var$len","len1","output","i2","$99a62f280d8f5b95$export$aafa59e2e03f2942","$99a62f280d8f5b95$export$68d8715fc104d294","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","isNaN","log","LN2","assert","inherits","ctor","superCtor","super_","TempCtor","BN","number","endian","isBN","negative","words","red","_init","Buffer","wordSize","window","parseHex4Bits","index","parseHexByte","lowerBound","parseBase","move","dest","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","ceil","w","off","_strip","limbLen","limbPow","total","word","imuln","_iaddn","_move","clone","_expand","_normSign","for","e1","zeros","groupSizes","groupBases","padding","groupSize","groupBase","isZero","modrn","idivn","toNumber","toBuffer","toArrayLike","smallMulTo","ncarry","rword","maxJ","ArrayType","reqLength","allocate","_toArrayLikeLE","position","shift","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","a1","a2","a3","a4","a5","a6","a7","a8","al8","ah8","a9","al9","ah9","bl8","bh8","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","mulp","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","andln","acc","modn","egcd","B","C","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","outLen","prev","next","mod3","one","nOne","lpow","inv","wnd","current","currentLen","mont","$2bXqi","ALPHABET","BASE_MAP","xc","BASE","LEADER","FACTOR","iFACTOR","decodeUnsafe","source","$198ab40c85b7e899$require$_Buffer","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","$rEmZP","$9853aa6a8f72c2b3$var$Buffer","$9853aa6a8f72c2b3$var$copyProps","$9853aa6a8f72c2b3$var$SafeBuffer","SlowBuffer","$5c98f4b09251f105$export$88fb0cfd153261a7","$5c98f4b09251f105$export$9c6b53e35bc51b5c","$5c98f4b09251f105$var$inRange","$5c98f4b09251f105$var$ToDictionary","$5c98f4b09251f105$var$Stream","tokens","endOfStream","prepend","token","unshift","pop","$5c98f4b09251f105$var$finished","$5c98f4b09251f105$var$decoderError","opt_code_point","$5c98f4b09251f105$var$DEFAULT_ENCODING","$5c98f4b09251f105$var$TextDecoder","options","_streaming","_BOMseen","_decoder","_fatal","Boolean","_ignoreBOM","$5c98f4b09251f105$var$TextEncoder","_encoder","_options","$5c98f4b09251f105$var$UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","handler","stream","bite","code_point","$5c98f4b09251f105$var$UTF8Encoder","count","temp","input_stream","code_points","cp","$5c98f4b09251f105$var$codePointsToString","opt_string","$5c98f4b09251f105$var$stringToCodePoints","Enum","properties","enum","$48d67d6287883d9f$var$BrowserLocalStorageKeyStore","localStorage","setItem","storageKeyForSecretKey","getItem","removeItem","storageKeys","startsWith","prefix","substring","$e17f1e496c070b87$var$MergeKeyStore","keyStores","setKey","keyStore","getKey","removeKey","clear","network","getNetworks","account","getAccounts","$86b2f829c476b451$var$__createBinding","$86b2f829c476b451$var$__setModuleDefault","$86b2f829c476b451$var$__importStar","WalletConnection","WalletAccount","ConnectedWalletAccount","Near","Signer","InMemorySigner","Contract","Connection","Account","multisig","validators","transactions","utils","providers","accountCreator","$86b2f829c476b451$var$providers","$86b2f829c476b451$var$utils","$86b2f829c476b451$var$transactions","$86b2f829c476b451$var$validators","$21va5","$86b2f829c476b451$var$multisig","$86b2f829c476b451$var$accountCreator","$bCS0o","$aPc4D","$i5vpj","$hAuyz","$4cExR","ErrorContext","TypedError","getTransactionLastResult","FinalExecutionStatusBasic","JsonRpcProvider","Provider","$ieQvg","$4oBvG","ExecutionStatusBasic1","FinalExecutionStatusBasic1","IdType1","IdType","ExecutionStatusBasic","txResult","status","SuccessValue","$036d32a052b209b6$require$Buffer","JSON","parse","$333680008ff949ed$var$__importDefault","$333680008ff949ed$var$depd_1","$cEknr","$333680008ff949ed$var$exponential_backoff_1","$333680008ff949ed$var$_nextId","$333680008ff949ed$var$JsonRpcProvider","chainId","sendJsonRpc","signedTransaction","$333680008ff949ed$require$Buffer","txHash","path","stringify","$bu7tF","getErrorTypeFromErrorMessage","blockQuery","finality","blockId","deprecate","block_id","chunkId","sync_checkpoint","blockReference","request","lightClientProof","method","params","id","jsonrpc","response","$jxZzD","fetchJson","connection","error_message","error_type","parseRpcError","errorMessage","warn","url","$ce5c3b4b69792c85$var$wrapfunction","$ce5c3b4b69792c85$var$wrapproperty","prop","descriptor","namespace","_file","_ignored","_namespace","_traced","_warned","function","property","$idIiZ","$e3b0dca7a50236d5$var$__importDefault","$e3b0dca7a50236d5$var$http_errors_1","$e3b0dca7a50236d5$var$exponential_backoff_1","$e3b0dca7a50236d5$var$fetch","nodeFetch","http","https","httpAgent","Agent","keepAlive","httpsAgent","resource","agent","_parsedURL","URL","protocol","fetch","json","response1","body","headers","ok","text","$8O0X7","$9BvVM","$cf43c842bba012bc$export$2e2bcd8739ae039","ownKeys","getOwnPropertySymbols","filter","$86b6457b4154f5c0$export$2e2bcd8739ae039","HttpError","$5b09a539b4702c11$var$deprecate","$5b09a539b4702c11$var$codeClass","$5b09a539b4702c11$var$nameFunc","func","$5b09a539b4702c11$var$toClassName","$5b09a539b4702c11$var$createError","err","props","statusCode","$5R7ii","captureStackTrace","expose","$aNbjQ","$5b09a539b4702c11$var$createHttpErrorConstructor","isHttpError","codes","CodeError","$fs0nk","className","ClientError","$6qO3b","$5b09a539b4702c11$var$createClientErrorConstructor","ServerError","$5b09a539b4702c11$var$createServerErrorConstructor","ImATeapot","$5b09a539b4702c11$var$populateConstructorExports","$5f4e176950382001$var$wrapfunction","$5f4e176950382001$var$wrapproperty","__proto__","statuses","codes1","$44378f748bf1e5f0$var$status","STATUS_CODES","$39O1L","status1","redirect","empty","retry","$3cae72da630c0c3b$var$sleep","millis","Promise","resolve","setTimeout","startWaitTime","retryNumber","waitBackoff","getResult","waitTime","global","getGlobal","bind","Headers","Request","Response","$31dqO","$2a3410cdeb01cf05$var$http","opts","cb","$3p8b3","$6YHqQ","defaultProtocol","location","search","host","hostname","port","req","on","ClientRequest","IncomingMessage","$5SfSX","defaultMaxSockets","globalAgent","$9VTNS","METHODS","$232be24918eb73bd$var$IncomingMessage","$232be24918eb73bd$var$rStates","readyStates","$232be24918eb73bd$var$ClientRequest","preferBinary","$gt7Vh","Writable","_opts","_body","_headers","auth","setHeader","$232be24918eb73bd$require$Buffer","useFetch","$c270T","abortController","overrideMimeType","_mode","mozchunkedarraybuffer","msstream","arraybuffer","$232be24918eb73bd$var$decideMode","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","lowerName","$232be24918eb73bd$var$unsafeHeaders","getHeader","header","removeHeader","_destroyed","timeout","headersObj","Blob","headersList","keyName","signal","controller","AbortController","_fetchAbortController","requestTimeout","emit","abort","credentials","withCredentials","then","_fetchResponse","_resetTimers","_connect","reason","xhr","_xhr","XMLHttpRequest","$foczT","nextTick","responseType","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","onerror","send","err1","$232be24918eb73bd$var$statusValid","_write","chunk","done","clearTimeout","destroy","once","flushHeaders","setNoDelay","setSocketKeepAlive","$b342da9e20ed189f$var$cachedSetTimeout","$b342da9e20ed189f$var$cachedClearTimeout","$b342da9e20ed189f$var$process","$b342da9e20ed189f$var$defaultSetTimout","$b342da9e20ed189f$var$defaultClearTimeout","$b342da9e20ed189f$var$runTimeout","fun","$b342da9e20ed189f$var$currentQueue","$b342da9e20ed189f$var$queue","$b342da9e20ed189f$var$draining","$b342da9e20ed189f$var$queueIndex","$b342da9e20ed189f$var$cleanUpNextTick","$b342da9e20ed189f$var$drainQueue","run","marker","$b342da9e20ed189f$var$runClearTimeout","$b342da9e20ed189f$var$Item","$b342da9e20ed189f$var$noop","title","browser","env","argv","version","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","$8c2b1ca7570a22af$export$e7aa7bc5c1b3cfb3","$8c2b1ca7570a22af$export$37489d82087dc5d1","$8c2b1ca7570a22af$export$f137bf8a46425a6f","$8c2b1ca7570a22af$export$724c4efdc2b90612","$8c2b1ca7570a22af$export$a9aa1e45c4448986","$8c2b1ca7570a22af$export$4c3c163e941f6ba3","$8c2b1ca7570a22af$export$8f1269d6d73f87ef","$8c2b1ca7570a22af$var$xhr","$8c2b1ca7570a22af$var$getXHR","XDomainRequest","$8c2b1ca7570a22af$var$checkTypeSupport","xhr1","$8c2b1ca7570a22af$var$isFunction","ReadableStream","WritableStream","$446e51690cb34b5a$export$8e4da25483e314e6","$446e51690cb34b5a$export$9d4333345ffa4fd6","$446e51690cb34b5a$var$rStates","UNSENT","OPENED","HEADERS_RECEIVED","$446e51690cb34b5a$var$IncomingMessage","resetTimers","Readable","rawHeaders","trailers","rawTrailers","statusMessage","statusText","writableStream","reject","$446e51690cb34b5a$require$Buffer","_resumeFetch","close","pipeTo","catch","getReader","_pos","responseURL","getAllResponseHeaders","matches","match","_charset","mimeType","charsetMatch","_read","responseText","newData","MSStreamReader","onload","readAsArrayBuffer","Stream","Duplex","Transform","PassThrough","finished","pipeline","$01d82a8e5c7e5942$var$Duplex","$01d82a8e5c7e5942$var$Readable","ReadableState","$01d82a8e5c7e5942$var$ReadableState","EventEmitter","$01d82a8e5c7e5942$var$EElistenerCount","emitter","$01d82a8e5c7e5942$var$OurUint8Array","$01d82a8e5c7e5942$var$debug","$jCjhT","debuglog","$01d82a8e5c7e5942$var$StringDecoder","$01d82a8e5c7e5942$var$createReadableStreamAsyncIterator","$01d82a8e5c7e5942$var$from","$01d82a8e5c7e5942$var$getHighWaterMark","getHighWaterMark","$01d82a8e5c7e5942$var$ERR_INVALID_ARG_TYPE","$01d82a8e5c7e5942$require$_require$codes","$01d82a8e5c7e5942$var$ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_PUSH_AFTER_EOF","$01d82a8e5c7e5942$var$ERR_METHOD_NOT_IMPLEMENTED","ERR_METHOD_NOT_IMPLEMENTED","$01d82a8e5c7e5942$var$ERR_STREAM_UNSHIFT_AFTER_END_EVENT","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","$60ubC","$01d82a8e5c7e5942$var$errorOrDestroy","$47wRh","errorOrDestroy","$01d82a8e5c7e5942$var$kProxyEvents","isDuplex","objectMode","readableObjectMode","highWaterMark","$aMJXl","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","destroyed","defaultEncoding","awaitDrain","readingMore","decoder","StringDecoder","_readableState","readable","_destroy","$01d82a8e5c7e5942$var$readableAddChunk","addToFront","skipChunkCheck","er","state","$01d82a8e5c7e5942$var$emitReadable","$01d82a8e5c7e5942$var$emitReadable_","$01d82a8e5c7e5942$var$onEofChunk","$01d82a8e5c7e5942$require$Buffer","$01d82a8e5c7e5942$var$chunkInvalid","getPrototypeOf","$01d82a8e5c7e5942$var$_uint8ArrayToBuffer","$01d82a8e5c7e5942$var$addChunk","$01d82a8e5c7e5942$var$maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","enc","head","content","$01d82a8e5c7e5942$var$MAX_HWM","$01d82a8e5c7e5942$var$howMuchToRead","$01d82a8e5c7e5942$var$computeNewHighWaterMark","$01d82a8e5c7e5942$var$flow","$01d82a8e5c7e5942$var$maybeReadMore_","$01d82a8e5c7e5942$var$updateReadableListening","listenerCount","resume","$01d82a8e5c7e5942$var$nReadingNextTick","$01d82a8e5c7e5942$var$resume_","$01d82a8e5c7e5942$var$fromList","consume","$01d82a8e5c7e5942$var$endReadable","$01d82a8e5c7e5942$var$endReadableNT","wState","_writableState","$01d82a8e5c7e5942$var$indexOf","xs","nOrig","doRead","pipe","pipeOpts","endFn","stdout","stderr","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","$01d82a8e5c7e5942$var$pipeOnDrain","pause","event","_events","$01d82a8e5c7e5942$var$prependListener","dests","ev","$01d82a8e5c7e5942$var$resume","wrap","_this","n1","asyncIterator","_fromList","iterable","$84c54728560d4aed$var$ReflectOwnKeys","$84c54728560d4aed$var$R","$84c54728560d4aed$var$ReflectApply","receiver","Function","getOwnPropertyNames","$84c54728560d4aed$var$NumberIsNaN","$84c54728560d4aed$var$EventEmitter","errorListener","resolver","$84c54728560d4aed$var$eventTargetAgnosticAddListener","flags","$84c54728560d4aed$var$addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","$84c54728560d4aed$var$defaultMaxListeners","$84c54728560d4aed$var$checkListener","listener","$84c54728560d4aed$var$_getMaxListeners","that","defaultMaxListeners","$84c54728560d4aed$var$_addListener","events","existing","warning","newListener","warned","$84c54728560d4aed$var$onceWrapper","fired","wrapFn","$84c54728560d4aed$var$_onceWrap","wrapped","$84c54728560d4aed$var$_listeners","unwrap","evlistener","$84c54728560d4aed$var$unwrapListeners","$84c54728560d4aed$var$arrayClone","$84c54728560d4aed$var$listenerCount","addEventListener","wrapListener","removeEventListener","setMaxListeners","getMaxListeners","doError","context","originalListener","$84c54728560d4aed$var$spliceOne","rawListeners","eventNames","$7da209060a2fa73f$var$ownKeys","object","enumerableOnly","symbols","$7da209060a2fa73f$var$_defineProperty","$7da209060a2fa73f$var$_defineProperties","$7da209060a2fa73f$var$Buffer","$7da209060a2fa73f$var$inspect","$7da209060a2fa73f$var$custom","custom","BufferList","instance","Constructor","$7da209060a2fa73f$var$_classCallCheck","tail","protoProps","staticProps","entry","hasStrings","_getString","_getBuffer","nb","getOwnPropertyDescriptors","defineProperties","$7da209060a2fa73f$var$_objectSpread","depth","customInspect","$30014dd4bbc443d8$var$emitErrorAndCloseNT","$30014dd4bbc443d8$var$emitErrorNT","$30014dd4bbc443d8$var$emitCloseNT","readableDestroyed","writableDestroyed","errorEmitted","ending","finalCalled","prefinished","rState","$dcfec8dee1f11752$var$ERR_INVALID_OPT_VALUE","ERR_INVALID_OPT_VALUE","duplexKey","hwm","$dcfec8dee1f11752$var$highWaterMarkFrom","$3ac191647afae32e$export$e45cb6485273080e","$3ac191647afae32e$var$codes","$3ac191647afae32e$var$createErrorType","NodeError1","_Base","subClass","superClass","NodeError","arg1","arg2","arg3","$3ac191647afae32e$var$oneOf","expected","thing","determiner","this_len","$3ac191647afae32e$var$endsWith","$3ac191647afae32e$var$includes","$6b685bcf33851cdf$var$objectKeys","keys1","$6b685bcf33851cdf$var$Duplex","$9OHdu","$6b685bcf33851cdf$var$keys","$h41tr","$6b685bcf33851cdf$var$v","$6b685bcf33851cdf$var$method","allowHalfOpen","$6b685bcf33851cdf$var$onend","$6b685bcf33851cdf$var$onEndNT","getBuffer","$c6c3f4147d47070c$var$Duplex","$c6c3f4147d47070c$var$CorkedRequest","corkReq","callback","pendingcb","corkedRequestsFree","$c6c3f4147d47070c$var$onCorkedFinish","$c6c3f4147d47070c$var$Writable","WritableState","$c6c3f4147d47070c$var$WritableState","$c6c3f4147d47070c$var$internalUtil","$c6c3f4147d47070c$var$OurUint8Array","$c6c3f4147d47070c$var$realHasInstance","$c6c3f4147d47070c$var$getHighWaterMark","$c6c3f4147d47070c$var$ERR_INVALID_ARG_TYPE","$c6c3f4147d47070c$require$_require$codes","$c6c3f4147d47070c$var$ERR_METHOD_NOT_IMPLEMENTED","$c6c3f4147d47070c$var$ERR_MULTIPLE_CALLBACK","ERR_MULTIPLE_CALLBACK","$c6c3f4147d47070c$var$ERR_STREAM_CANNOT_PIPE","ERR_STREAM_CANNOT_PIPE","$c6c3f4147d47070c$var$ERR_STREAM_DESTROYED","ERR_STREAM_DESTROYED","$c6c3f4147d47070c$var$ERR_STREAM_NULL_VALUES","ERR_STREAM_NULL_VALUES","$c6c3f4147d47070c$var$ERR_STREAM_WRITE_AFTER_END","ERR_STREAM_WRITE_AFTER_END","$c6c3f4147d47070c$var$ERR_UNKNOWN_ENCODING","ERR_UNKNOWN_ENCODING","$c6c3f4147d47070c$var$errorOrDestroy","$c6c3f4147d47070c$var$nop","writableObjectMode","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writecb","writelen","$c6c3f4147d47070c$var$onwriteStateUpdate","$c6c3f4147d47070c$var$finishMaybe","$c6c3f4147d47070c$var$onwriteError","$c6c3f4147d47070c$var$needFinish","bufferedRequest","$c6c3f4147d47070c$var$clearBuffer","$c6c3f4147d47070c$var$afterWrite","$c6c3f4147d47070c$var$onwrite","lastBufferedRequest","bufferedRequestCount","writev","_writev","final","_final","$c6c3f4147d47070c$var$doWrite","$c6c3f4147d47070c$var$onwriteDrain","holder","allBuffers","isBuf","$c6c3f4147d47070c$var$callFinal","need","$c6c3f4147d47070c$var$prefinish","hasInstance","$c6c3f4147d47070c$require$Buffer","$c6c3f4147d47070c$var$_uint8ArrayToBuffer","$c6c3f4147d47070c$var$writeAfterEnd","$c6c3f4147d47070c$var$validChunk","newChunk","$c6c3f4147d47070c$var$decodeChunk","$c6c3f4147d47070c$var$writeOrBuffer","cork","uncork","setDefaultEncoding","$c6c3f4147d47070c$var$endWritable","$9d166d4171700395$var$config","trace","$ad489ae4f570ec02$export$63a7aa211a91ed69","$ad489ae4f570ec02$var$isEncoding","$ad489ae4f570ec02$require$Buffer","$ad489ae4f570ec02$var$StringDecoder","nenc","retried","$ad489ae4f570ec02$var$_normalizeEncoding","$ad489ae4f570ec02$var$normalizeEncoding","$ad489ae4f570ec02$var$utf16Text","$ad489ae4f570ec02$var$utf16End","fillLast","$ad489ae4f570ec02$var$utf8FillLast","$ad489ae4f570ec02$var$base64Text","$ad489ae4f570ec02$var$base64End","$ad489ae4f570ec02$var$simpleWrite","$ad489ae4f570ec02$var$simpleEnd","lastNeed","lastTotal","lastChar","$ad489ae4f570ec02$var$utf8CheckByte","byte","$ad489ae4f570ec02$var$utf8CheckExtraBytes","$ad489ae4f570ec02$var$utf8CheckIncomplete","$7655fc07c4646007$var$_Object$setPrototypeO","$7655fc07c4646007$var$_defineProperty","$7655fc07c4646007$var$kLastResolve","$7655fc07c4646007$var$kLastReject","$7655fc07c4646007$var$kError","$7655fc07c4646007$var$kEnded","$7655fc07c4646007$var$kLastPromise","$7655fc07c4646007$var$kHandlePromise","$7655fc07c4646007$var$kStream","$7655fc07c4646007$var$createIterResult","$7655fc07c4646007$var$readAndResolve","iter","$7655fc07c4646007$var$onReadable","$7655fc07c4646007$var$AsyncIteratorPrototype","$7655fc07c4646007$var$ReadableStreamAsyncIteratorPrototype","promise","lastPromise","$7655fc07c4646007$var$wrapForNext","_this2","_Object$create","iterator","$2nD8J","$1bbc17182914040d$var$ERR_STREAM_PREMATURE_CLOSE","ERR_STREAM_PREMATURE_CLOSE","$1bbc17182914040d$var$noop","$1bbc17182914040d$var$eos","called","_len","_key","$1bbc17182914040d$var$once","onlegacyfinish","writableEnded","readableEnded","onrequest","$1bbc17182914040d$var$isRequest","$3f3f6b4f6c261fca$var$Transform","$3f3f6b4f6c261fca$var$ERR_METHOD_NOT_IMPLEMENTED","$3f3f6b4f6c261fca$require$_require$codes","$3f3f6b4f6c261fca$var$ERR_MULTIPLE_CALLBACK","$3f3f6b4f6c261fca$var$ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_ALREADY_TRANSFORMING","$3f3f6b4f6c261fca$var$ERR_TRANSFORM_WITH_LENGTH_0","ERR_TRANSFORM_WITH_LENGTH_0","$3f3f6b4f6c261fca$var$afterTransform","ts","_transformState","transforming","writechunk","rs","$9dJ9Z","afterTransform","needTransform","writeencoding","_transform","flush","_flush","$3f3f6b4f6c261fca$var$prefinish","$3f3f6b4f6c261fca$var$done","err2","$9ac13d159db61179$var$PassThrough","$5qFiP","$5f903552fa615534$var$eos","$5f903552fa615534$var$ERR_MISSING_ARGS","$5f903552fa615534$require$_require$codes","ERR_MISSING_ARGS","$5f903552fa615534$var$ERR_STREAM_DESTROYED","$5f903552fa615534$var$noop","$5f903552fa615534$var$destroyer","$5f903552fa615534$var$once","closed","$5f903552fa615534$var$isRequest","$5f903552fa615534$var$call","$5f903552fa615534$var$pipe","to","$5f903552fa615534$var$popCallback","streams","destroys","$514a095b5f75f590$var$hasOwnProperty","$27aa0cc12caecb18$export$98e6a39c04603d36","$27aa0cc12caecb18$var$Url","slashes","query","pathname","href","$27aa0cc12caecb18$var$urlParse","$27aa0cc12caecb18$var$protocolPattern","$27aa0cc12caecb18$var$portPattern","$27aa0cc12caecb18$var$simplePathPattern","$27aa0cc12caecb18$var$unwise","$27aa0cc12caecb18$var$autoEscape","$27aa0cc12caecb18$var$nonHostChars","$27aa0cc12caecb18$var$hostEndingChars","$27aa0cc12caecb18$var$hostnamePartPattern","$27aa0cc12caecb18$var$hostnamePartStart","$27aa0cc12caecb18$var$unsafeProtocol","javascript","$27aa0cc12caecb18$var$hostlessProtocol","$27aa0cc12caecb18$var$slashedProtocol","ftp","gopher","file","parseQueryString","slashesDenoteHost","$hcQEm","isObject","isString","queryIndex","splitter","uSplit","rest","simplePath","exec","$3UIT5","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","$jGEAL","toASCII","ae","esc","encodeURIComponent","escape","qm","format","relative","resolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","hasTrailingSlash","up","isAbsolute","root","freeExports","nodeType","freeModule","freeGlobal","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","overflow","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","ucs2","test","toUnicode","define","amd","$2d996bc9468127ff$export$98e6a39c04603d36","$2d996bc9468127ff$export$fac44ee5b035f737","$1179ce4a755223c4$var$hasOwnProperty","qs","sep","regexp","maxKeys","kstr","vstr","$1179ce4a755223c4$var$isArray","$6c31c8cc3fe7fb3e$var$stringifyPrimitive","$6c31c8cc3fe7fb3e$var$map","$6c31c8cc3fe7fb3e$var$objectKeys","ks","$6c31c8cc3fe7fb3e$var$isArray","$3CE9p","$008df0565105ae45$var$https","$008df0565105ae45$var$key","$008df0565105ae45$var$validateParams","ArgumentTypeError","PositionalArgsError","$935906e78e82c635$var$PositionalArgsError","$935906e78e82c635$var$ArgumentTypeError","argName","argType","argValue","$935906e78e82c635$var$TypedError","transactionHash","$85c84bf0711a1d05$var$__createBinding","$85c84bf0711a1d05$var$__setModuleDefault","$85c84bf0711a1d05$var$__importStar","$85c84bf0711a1d05$var$__exportStar","__exportStar","$85c84bf0711a1d05$var$__importDefault","formatError","parseResultError","$85c84bf0711a1d05$var$mustache_1","$85c84bf0711a1d05$var$rpc_error_schema_json_1","$85c84bf0711a1d05$var$error_messages_json_1","$85c84bf0711a1d05$var$CLASSMAP","$85c84bf0711a1d05$var$ServerTransactionError","$85c84bf0711a1d05$var$parseRpcError","errorObj","errorClassName","$85c84bf0711a1d05$var$walkSubtype","$85c84bf0711a1d05$var$formatError","assign","errorData","render","typeName","errorTypeName","errorName","$85c84bf0711a1d05$var$isObject","server_error","Failure","server_tx_error","transaction_outcome","objectToString","isFunction","typeStr","escapeRegExp","hasProperty","propName","primitiveHasOwnProperty","primitive","regExpTest","RegExp","testRegExp","nonSpaceRe","isWhitespace","entityMap","escapeHtml","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","parseTemplate","template","tags","openingTagRe","closingTagRe","closingCurlyRe","lineHasNonSpace","sections","spaces","hasTag","nonSpace","indentation","tagIndex","stripSpace","compileTags","tagsToCompile","mustache","chr","openSection","scanner","Scanner","eos","scanUntil","valueLength","scan","nestTokens","squashTokens","lastToken","squashedTokens","numTokens","nestedTokens","collector","Context","view","parentContext","cache","parent","Writer","templateCache","_cache","lookup","intermediateValue","names","lookupHit","clearCache","cacheKey","isCacheEnabled","partials","config","getConfigTags","renderTokens","originalTemplate","symbol","renderSection","renderInverted","renderPartial","unescapedValue","escapedValue","rawValue","subRender","indentPartial","partial","filteredIndentation","partialByNl","indentedValue","getConfigEscape","defaultWriter","factory","Timeout","InternalError","Closed","UnsuitableStakingKey","TriesToUnstake","TriesToStake","TotalPrepaidGasExceeded","TotalNumberOfActionsExceeded","SignerDoesNotExist","RequiresFullAccess","ReceiverMismatch","OnlyImplicitAccountCreationAllowed","NotEnoughBalance","NotEnoughAllowance","MethodNameMismatch","LackBalanceForState","InvalidSignerId","InvalidSignature","InvalidReceiverId","InvalidPredecessorId","InvalidNonce","InvalidDataReceiverId","ReceiptValidationError","InvalidChain","InsufficientStake","FunctionCallZeroAttachedGas","FunctionCallMethodNameLengthExceeded","FunctionCallArgumentsLengthExceeded","Expired","DepositWithFunctionCall","DeleteKeyDoesNotExist","DeleteActionMustBeFinal","DeleteAccountStaking","CreateAccountOnlyByRegistrar","CreateAccountNotAllowed","CostOverflow","BalanceMismatchError","AddKeyMethodNamesNumberOfBytesExceeded","AddKeyMethodNameLengthExceeded","AddKeyAlreadyExists","ActorNoPermission","ActionsValidationError","AccountDoesNotExist","AccountAlreadyExists","AccessKeyNotFound","InvalidAccessKeyError","InvalidTxError","WriteError","WasmerCompileError","WasmUnknownError","ValueLengthExceeded","Unreachable","TotalLogLengthExceeded","StackOverflow","StackHeightInstrumentation","SerializationError","Serialization","ReturnedValueLengthExceeded","ReadError","ProhibitedInView","NumberPromisesExceeded","NumberOfLogsExceeded","NumberInputDataDependenciesExceeded","MisalignedAtomicAccess","MethodUTF8Error","MethodNotFound","MethodInvalidSignature","MethodEmptyName","MethodResolveError","MemoryOutOfBounds","MemoryAccessViolation","Memory","LinkError","KeyLengthExceeded","IteratorWasInvalidated","InvalidRegisterId","InvalidReceiptIndex","InvalidPublicKey","InvalidPromiseResultIndex","InvalidPromiseIndex","InvalidMethodName","InvalidIteratorIndex","InvalidAccountId","InternalMemoryDeclared","IntegerOverflow","Instantiate","IncorrectCallIndirectSignature","IllegalArithmetic","GuestPanic","GenericTrap","GasLimitExceeded","GasInstrumentation","GasExceeded","EmptyMethodName","DeserializationError","Deserialization","PrepareError","Deprecated","ContractSizeExceeded","CodeDoesNotExist","CompilationError","CannotReturnJointPromise","CannotAppendActionToJointPromise","CallIndirectOOB","CacheError","BreakpointTrap","WasmTrap","BalanceExceeded","BadUTF8","BadUTF16","HostError","FunctionCallError","ActionError","TxExecutionError","$772c1ae2ce2a04a1$var$ServerError","$772c1ae2ce2a04a1$var$TxExecutionError","$772c1ae2ce2a04a1$var$ActionError","$772c1ae2ce2a04a1$var$FunctionCallError","$772c1ae2ce2a04a1$var$HostError","$772c1ae2ce2a04a1$var$WasmTrap","$772c1ae2ce2a04a1$var$CacheError","$772c1ae2ce2a04a1$var$CompilationError","$772c1ae2ce2a04a1$var$PrepareError","$772c1ae2ce2a04a1$var$MethodResolveError","$772c1ae2ce2a04a1$var$InvalidTxError","$772c1ae2ce2a04a1$var$InvalidAccessKeyError","$772c1ae2ce2a04a1$var$ActionsValidationError","$772c1ae2ce2a04a1$var$BalanceMismatchError","$772c1ae2ce2a04a1$var$ReceiptValidationError","$b243629778701142$var$__createBinding","$b243629778701142$var$__setModuleDefault","$b243629778701142$var$__importStar","rpc_errors","enums","web","key_pair","$b243629778701142$var$key_pair","$b243629778701142$var$network","$b243629778701142$var$serialize","$b243629778701142$var$web","$b243629778701142$var$enums","$b243629778701142$var$format","$b243629778701142$var$rpc_errors","$833076beb428369d$var$__importDefault","parseNearAmount","formatNearAmount","NEAR_NOMINATION","NEAR_NOMINATION_EXP","$833076beb428369d$var$bn_js_1","$833076beb428369d$var$ROUNDING_OFFSETS","$833076beb428369d$var$BN10","balance","fracDigits","balanceBN","roundingExp","wholeStr","fractionStr","padStart","pattern","$833076beb428369d$var$formatWithCommas","amt","wholePart","fracPart","padEnd","$20a2b41c2ef2868c$var$__importDefault","signTransaction","createTransaction","SCHEMA","Action","SignedTransaction","Transaction","Signature","deleteAccount","deleteKey","addKey","stake","transfer","functionCall","deployContract","createAccount","DeleteAccount","DeleteKey","AddKey","Stake","Transfer","FunctionCall","DeployContract","CreateAccount","IAction","functionCallAccessKey","fullAccessKey","AccessKey","AccessKeyPermission","FullAccessPermission","FunctionCallPermission","$20a2b41c2ef2868c$var$js_sha256_1","$20a2b41c2ef2868c$var$FunctionCallPermission","$20a2b41c2ef2868c$var$FullAccessPermission","$20a2b41c2ef2868c$var$AccessKeyPermission","$20a2b41c2ef2868c$var$AccessKey","permission","fullAccess","receiverId","methodNames","allowance","$20a2b41c2ef2868c$var$IAction","$20a2b41c2ef2868c$var$CreateAccount","$20a2b41c2ef2868c$var$DeployContract","$20a2b41c2ef2868c$var$FunctionCall","$20a2b41c2ef2868c$var$Transfer","$20a2b41c2ef2868c$var$Stake","$20a2b41c2ef2868c$var$AddKey","$20a2b41c2ef2868c$var$DeleteKey","$20a2b41c2ef2868c$var$DeleteAccount","$20a2b41c2ef2868c$var$Action","methodName","gas","deposit","anyArgs","serializedArgs","$20a2b41c2ef2868c$require$Buffer","stake1","accessKey","beneficiaryId","$20a2b41c2ef2868c$var$Signature","$20a2b41c2ef2868c$var$Transaction","$20a2b41c2ef2868c$var$SignedTransaction","$20a2b41c2ef2868c$var$createTransaction","signerId","actions","blockHash","$20a2b41c2ef2868c$var$signTransactionObject","transaction","signer","sha256","signMessage","Map","ERROR","WINDOW","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","node","COMMON_JS","JS_SHA256_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","blocks1","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","is224","Sha256","createMethod","nodeWrap","eval","algorithm","nodeMethod","createHash","digest","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","block","hBytes","finalized","hashed","oKeyPad","iKeyPad","inner","notString","lastByteIndex","finalize","s0","s1","maj","ab","da","cd","bc","hex","arrayBuffer","dataView","DataView","setUint32","innerHash","sha224","hmac","$851a727af8d3e7d4$var$__importDefault","diffEpochValidators","findSeatPrice","$851a727af8d3e7d4$var$bn_js_1","numSeats","stakes","sort","stakesSum","currentSum","currentValidators","nextValidators","validatorsMap","account_id","nextValidatorsSet","newValidators","has","removedValidators","changedValidators","$1793d8d883a3c75c$var$__importDefault","$1793d8d883a3c75c$var$bn_js_1","$1793d8d883a3c75c$var$depd_1","$1793d8d883a3c75c$var$exponential_backoff_1","$1793d8d883a3c75c$var$DEFAULT_FUNC_CALL_GAS","$1793d8d883a3c75c$var$parseJsonFromRawResponse","$1793d8d883a3c75c$require$Buffer","$1793d8d883a3c75c$var$Account","ready","provider","printLogsAndFailures","contractId","results","receiptIds","printLogs","logs","failure","accessKeyInfo","findAccessKey","$2NIxe","signedTx","sendTransaction","accessKeyByPublicKeyCache","flatLogs","receipts_outcome","it","outcome","receipt_ids","cachedAccessKey","amount","signAndSendTransaction","newAccountId","validateArgs","request_type","prefix_base64","accessKeys","getAccessKeys","authorizedApps","access_key","perm","receiver_id","public_key","protocolConfig","experimental_protocolConfig","costPerByte","runtime_config","storage_amount_per_byte","stateStaked","storage_usage","staked","locked","totalBalance","availableBalance","available","$eb3532c32de93c0b$var$__importDefault","Account2FA","AccountMultisig","MULTISIG_CONFIRM_METHODS","MULTISIG_VIEW_METHODS","MULTISIG_CHANGE_METHODS","MULTISIG_DEPOSIT","MULTISIG_GAS","MULTISIG_ALLOWANCE","MULTISIG_STORAGE_KEY","$eb3532c32de93c0b$var$bn_js_1","$bgjGX","$eb3532c32de93c0b$var$storageFallback","$eb3532c32de93c0b$var$AccountMultisig","isDeleteAction","deleteUnconfirmedRequests","requestId","getRequestNonce","setRequest","$eb3532c32de93c0b$require$Buffer","$eb3532c32de93c0b$var$convertActions","onAddRequestResult","contract","request_ids","getRequestIds","request_id","delete_request","get_request_nonce","list_request_ids","getRequest","storage","$eb3532c32de93c0b$var$getContract","sendCode","promptAndVerify","onConfirmResult","contractBytes","seedOrLedgerKey","getRecoveryMethods","rm","fak2lak","ak","$eb3532c32de93c0b$var$toPK","confirmOnlyKey","postSignedJson","newArgs","num_confirmations","code_hash","signAndSendTransactionWithAccount","lak2fak","method_names","get2faMethod","securityCode","getCode","verifyCode","find","detail","blockNumber","height","signed","helperUrl","signatureFor","sendCodeDefault","getCodeDefault","verifyCodeDefault","viewMethods","changeMethods","action","method_name","$d2b10e7722581dc5$var$__importDefault","$d2b10e7722581dc5$var$bn_js_1","$d2b10e7722581dc5$var$nameFunction","$d2b10e7722581dc5$var$isUint8Array","$d2b10e7722581dc5$var$isObject","options1","ignored","viewFunction","argMap","bnLike","$d2b10e7722581dc5$var$validateBNLike","rawResult","UrlAccountCreator","LocalAccountCreator","AccountCreator","$26717be230863636$var$AccountCreator","masterAccount","initialBalance","newAccountPublicKey","$876d22a19bd33e03$var$Connection","$876d22a19bd33e03$var$getProvider","$876d22a19bd33e03$var$getSigner","$7e18086140a4ca5b$var$__importDefault","$7e18086140a4ca5b$var$js_sha256_1","$7e18086140a4ca5b$var$Signer","$7e18086140a4ca5b$var$InMemorySigner","$ccdd805de9b506d1$var$__importDefault","$ccdd805de9b506d1$var$bn_js_1","sender","originator","sendMoney","fromConfig","nodeUrl","deps","$3iDel","$30f7bbd32dab8c42$var$__importDefault","$30f7bbd32dab8c42$var$depd_1","$30f7bbd32dab8c42$var$PENDING_ACCESS_KEY_PREFIX","$30f7bbd32dab8c42$var$WalletConnection","isSignedIn","_authData","getAccountId","contractIdOrOptions","successUrl","failureUrl","currentUrl","newUrl","_walletBaseUrl","searchParams","$fiTeP","_keyStore","_networkId","callbackUrl","serialized","$30f7bbd32dab8c42$require$Buffer","allKeys","_authDataKey","_moveKeyFromTempToPermanent","delete","history","replaceState","document","signOut","_connectedAccount","$30f7bbd32dab8c42$var$ConnectedWalletAccount","_near","near","appKeyPrefix","authDataKey","authData","walletUrl","contractName","_completeSignInWithAccessKey","localKey","accessKeyForTransaction","walletConnection","requestSignTransactions","allowedReceiverId","allowedMethods","accessKeyMatchesTransaction","walletKeys","connect","$8d1145dabb1addee$var$polyfill","$9n4Si","check","$3i4pm","$2cb407b7e9b75fa2$var$define","$2cb407b7e9b75fa2$var$test","callee","caller","strictModeIsEnforced","stacktrace","$265678e13d455ecd$var$detector","$265678e13d455ecd$var$capability","$95454d42313425cf$var$CapabilityDetector","tests","$4ixBt","getStackTrace","throwable","prepareStackTrace","frames","warnings","warningIndex","frameIndex","$6c3vh","terminator","frameShifts","captured","getInstance","captureFrameStrings","$1f4c109c743b9e6e$require$cache","$7fLwx","getFrames","frameStrings","functionValues","cachedStack","getFrameStrings","nonConfigurableError","Class","abstractMethod","eachCombination","$482694d05a37ce3b$var$AbstractFrameStringSource","$482694d05a37ce3b$require$Class","createError","capturedFrameStrings","capturedFunctionValues","aCaller","useStrictError","stackString","getStackString","stackStringChunks","fromPosition","toPosition","hasHeader","hasFooter","$482694d05a37ce3b$require$abstractMethod","$482694d05a37ce3b$var$FrameStringSourceCalibrator","calibrateClass","FrameStringSource","calibrateMethods","calibrateEnvelope","$482694d05a37ce3b$require$eachCombination","workingImplementation","merge","calibratorFrameStrings","getClass","$482694d05a37ce3b$require$cache","$7a11d4927242949a$var$Class","Source","buildArgs","checkOption","option","extend","build","Subject","staticProperty","subject","absorb","getAncestor","newInstance","store","alternativesByDimension","combination","alternatives","$547ecc563937a228$var$FrameStringParser","$547ecc563937a228$require$Class","stackParser","frameParser","locationParsers","getFrame","frameString","functionValue","$k6lk0","$547ecc563937a228$require$cache","$ea24e83ba50da9fc$var$Frame","$ea24e83ba50da9fc$require$Class","getThis","$ea24e83ba50da9fc$require$abstractMethod","getTypeName","getFunction","getFunctionName","getMethodName","getFileName","getLineNumber","getColumnNumber","getEvalOrigin","isTopLevel","isEval","isNative","isConstructor","$afd94ed51fe57caa$require$cache","$72643f103f4db7f2$var$ownKeys","$72643f103f4db7f2$export$2e2bcd8739ae039","$bc68e45de6fece0b$var$__createBinding","$bc68e45de6fece0b$exports","$bc68e45de6fece0b$var$__setModuleDefault","$bc68e45de6fece0b$var$__importStar","$bc68e45de6fece0b$var$__exportStar","$48b3127375046f44$exports","$5e9f401e0f95c2cd$export$938640191ef9bf82","$5e9f401e0f95c2cd$export$12b18eb18831125f","$5e9f401e0f95c2cd$export$bad63d8ae0c1300","$5e9f401e0f95c2cd$export$d48d4e443532a80b","$5e9f401e0f95c2cd$export$3f5b377486c92e81","$5e9f401e0f95c2cd$var$MAINNET_NETWORKID","$5e9f401e0f95c2cd$var$MAINNET_NODEURL","$5e9f401e0f95c2cd$var$MAINNET_WALLETURL","$5e9f401e0f95c2cd$var$MAINNET_HELPERURL","$5e9f401e0f95c2cd$var$MAINNET_EXPLORERURL","$5e9f401e0f95c2cd$var$TESTNET_NETWORKID","$5e9f401e0f95c2cd$var$TESTNET_NODEURL","$5e9f401e0f95c2cd$var$TESTNET_WALLETURL","$5e9f401e0f95c2cd$var$TESTNET_HELPERURL","$5e9f401e0f95c2cd$var$TESTNET_EXPLORERURL","$5e9f401e0f95c2cd$export$83401e34d5e11bf4","$5e9f401e0f95c2cd$export$44487a86467333c3","nftContractAddress","cheddarNFTBaseUrl","cheddarContractName","cheddarNFTContractName","explorerUrl","keyPath","farms","poolType","poolName","tokenContractName","nftBaseUrl","logo","noBoost","$31107577f4adfbcd$var$NOT_CONNECTED","$31107577f4adfbcd$export$1f0498598ce9a2d1","meta","getDisplayableAccountId","getNetwork","setNetwork","isConnected","disconnect","connectionHelp","checkConnected","attachedYoctos","$941a3c37ec1f0e54$export$88307f756ae70797","$941a3c37ec1f0e54$export$4fc881fbd1f93166","major","minor","$7d08c9d765b6f1c1$export$a23c9a0ed5b61ebb","accName","getAccountBalance","finalExecOutcome","$parcel$interopDefault","$lq4RO","bt","$7a7a312dee5fffed$export$20c1ad7ba414407","addItem","items","$7a7a312dee5fffed$export$f8167a095360b19f","attached","$7a7a312dee5fffed$export$9a1bafc170b69ba1","$7a7a312dee5fffed$export$cec4f96e18e205ef","$665a63eaa3473810$export$81d11c1527f62419","_accountId","$665a63eaa3473810$export$4dcfb26e67b1d7a6","_network","setRequiredVersion","semver","_requiredVersion","_isConnected","dispatchEvent","CustomEvent","postMessage","$665a63eaa3473810$export$288f2dab8842dc1f","onConnect","OnDisconnect","$665a63eaa3473810$export$f31d877c85ff1bef","$665a63eaa3473810$export$92eed6c623a0a902","$665a63eaa3473810$export$3e2987166bf8263","$665a63eaa3473810$var$msgReceivedFromContentScript","ref","ref1","walletNetwork","$665a63eaa3473810$export$63d3d30f802e1ca1","relayer","fromNumber","eventKey","$665a63eaa3473810$var$eventFromCode","eventInfo","$665a63eaa3473810$var$processRequestResolved","inx","$665a63eaa3473810$var$requests","findIndex","requestPayload","$665a63eaa3473810$var$requestId","payload","$6a82c7dd9e823656$var$base1e","$6a82c7dd9e823656$var$b1e","$6a82c7dd9e823656$var$b1e12","$6a82c7dd9e823656$var$b1e24","$6a82c7dd9e823656$var$b1e18","$6a82c7dd9e823656$export$1e6601f564a1737","tgas","$6a82c7dd9e823656$export$a386db35d45c2362","$6a82c7dd9e823656$export$7b927db028bec867","yoctos","decimals","truncated","$6a82c7dd9e823656$export$1da76a640d7f960f","ex","$6a82c7dd9e823656$export$f9906266a26d8d29","yoctoString","$6a82c7dd9e823656$export$db8ae05e40dfea01","truncate","integer","fractional","$6a82c7dd9e823656$export$b0ebaadef1c606a9","decimals_n","dotIdx","$6a82c7dd9e823656$export$a0a81dc3380ce7d3","$6a82c7dd9e823656$export$328b775d6414ebd9","textNoDec","$6a82c7dd9e823656$export$b1ab8e1b738f4390","$6a82c7dd9e823656$export$b6fe44657ce35c42","$6a82c7dd9e823656$export$ba2f53b14f87ad90","$6a82c7dd9e823656$export$4ff57fb4047274ad","$6a82c7dd9e823656$export$806e5ea7df183088","withDecPoint","decPointPos","endsWith","$6a82c7dd9e823656$export$22adc86566c697a9","$12ea74ff3a8a3e3a$export$836aee6bce45247","selector","querySelector","$12ea74ff3a8a3e3a$export$fc7d7d4be9a81733","$12ea74ff3a8a3e3a$export$9ca9051b92b5a6d2","querySelectorAll","$12ea74ff3a8a3e3a$export$9eb2db9699667c2d","innerText","HTMLElement","$12ea74ff3a8a3e3a$export$dd7fd6fec96e1ca2","attributeKey","attributeValue","setAttribute","$12ea74ff3a8a3e3a$export$1d4df0cf03e6e33","innerHTML","$12ea74ff3a8a3e3a$export$57bf213be019eeb0","el","onOff","style","display","$12ea74ff3a8a3e3a$export$fe8985bb6374093c","$12ea74ff3a8a3e3a$export$348d584e223bdf1b","$12ea74ff3a8a3e3a$var$cancelWait","overlay","titleElem","msgElem","$12ea74ff3a8a3e3a$export$bba5038aab73375b","$12ea74ff3a8a3e3a$export$e7f12c9836083937","$12ea74ff3a8a3e3a$var$waitStartTimer","$12ea74ff3a8a3e3a$export$11aadaec4fc63f87","$12ea74ff3a8a3e3a$export$fd427ccb0ab5463c","$12ea74ff3a8a3e3a$export$787f5d117f138d13","$12ea74ff3a8a3e3a$export$d841eba85c078f0b","$12ea74ff3a8a3e3a$export$3879b24e8245693d","$12ea74ff3a8a3e3a$export$dfd8f75b38935068","$4b95b700567c2b2d$var$removeQueryString","uri","clean_uri","$4b95b700567c2b2d$export$889ec11431078ec6","nearExplorerUrl","urlParams","URLSearchParams","errorCode","newError","decodedTxHash","txStatus","finalExecutionOutcome","$4b95b700567c2b2d$export$3a28093ab7225491","transactionArray","decodedTxHashArray","finalExecOutcomeArray","all","ref2","$a09e8bad8a81c5e0$export$fc1ba6948f99dde","argsAsString","argsBase64","$a09e8bad8a81c5e0$require$Buffer","args_base64","wallet","callWithoutSend","nearWallet","$31107577f4adfbcd$export$bb2eafcb55f553b2","$0f9cb702b616ea20$export$d71917a79103c107","$0f9cb702b616ea20$export$fa494f8daebcc431","$00f2fa17081b426f$export$bbe373bfa0af92e4","memo","viewWithoutAccount","owner_id","owner_supply","storageBalance","storageDeposit","$e929ea7e6e659d4a$export$7e73baf1cf92be47","spec","symbolForHtml","icon","reference","reference_hash","$76e2e1563c0eee80$export$dc767fa29fe54e3e","get_contract_params","unstake","withdraw_crop","$7ebfa24a5674779a$export$e108c1b39d7e0fac","ft_transfer_call","withdraw_nft","$a387e1e09650fdc9$export$63440f1175eeef41","$a387e1e09650fdc9$export$73a2e73f570f907e","stakeTokensLength","farmTokensLength","stake_tokens","farmed_tokens","$a387e1e09650fdc9$export$7005356a305e265f","$a387e1e09650fdc9$export$6875f93d4a1de0a9","$a387e1e09650fdc9$export$8daa4e1bda236b7a","$b325431aefeb130a$export$80040c3fb8bb2354","contractNameArray","tokenContractList","$b325431aefeb130a$export$596742cc9b3ae571","$b325431aefeb130a$export$9d77544a33e134de","refreshData","contractParamsPromise","userStatusPromise","contractParams","userStatus","getContractParamsNotAsync","getContractParams","farm_tokens","stakeTokenContractList","stakeTokenContractListPromise","farmTokenContractList","getStakeTokenContractListPromise","$b325431aefeb130a$export$d232c04878d54e59","total_staked","total_stake","farming_rate","rewards_per_day","total_farmed","total_rewards","$617ed70881cfef50$export$26f0531857244c80","stakeTokenContractId","metaData","metaDataPromise","getMetadataSync","balancePromise","getBalanceSync","ft_balance_of","ft_metadata","$617ed70881cfef50$export$1740a3f8db800117","formId","hasStakedTokens","getDisplayableComputed","computed","getCurrentCheddarRewards","real","getCurrentDisplayableCheddarRewards","getDisplayableAccountName","addStaked","previousTimestamp","$617ed70881cfef50$export$5fdb16077e6436d1","poolUserStatus","stakingContractData","getUserStatus","getMetadata","getStakeTokenContractData","getTokenContractList","cheddarContract","setStakeTokenContractList","setFarmTokenContractList","cheddarMetaData","isSvg","tokenName","dataArray","stakeTokenContractData","getStakeTokenContractList","iconData","getIcon","metadata","totalStaked","farmTokenContract","farmTokenMetadata","rewardsPerDay","totalRewards","userUnclaimedRewards","contractData","stakeTokenContract","farmData","cheddarContractId","html","poolDescription","description","descriptionLink","stakeTokenMetaData","$7f7629fa1e11a8df$export$12131bc15911221e","txPromiseArray","promises","resultPromises","transactions1","$7f7629fa1e11a8df$var$makeTransaction","nonceOffset","$506d231cd539cfa6$export$315a074d6b25bbf6","token_id","from_index","tokenId","baseUrl","$e13e3b9ce2efe87b$export$e92e348dc3f4e2ff","nft_contract_id","$5885700c78e0ebec$var$getNFTContractList","NFTContractList","NFTContractName","$5885700c78e0ebec$export$3ba1d02e9c140420","$5885700c78e0ebec$export$68352fe06acea8e8","cheddar","stakeNFTContractList","stakeNFTContractListPromise","getStakeNFTContractListPromise","tokensForOwner","tokensForOwnerPromise","getTokensForOwnerSync","nft_tokens_for_owner","nft_metadata","$184235b9724bcd2f$export$c5b7d705df392988","some","boost_nfts","nftContractForBoosting","cheddar_rate","ft_transfer_call_without_send","transferNFT","stakeNFTContract","nft_transfer_call_without_send","stakeUnstakeNFTsMap","TXs","stakeUnstakeNFTs","getStakeNFTContractList","nftsToStake","transferCheddar","nftsToUnstake","promiseWithContract","unstake_without_send","stakeTokenMetadata","getFarmTokenContractList","rewardsPerDayBN","farm_unit_emission","farm_token_rates","walletAvailable","getBalance","nftContract","nftBaseUrlForBoosting","$64d5e78a8367bd77$export$1740a3f8db800117","$64d5e78a8367bd77$export$ab1e7e935838883f","amountArray","stakedTokensLength","farmedTokensLength","farmed","$64d5e78a8367bd77$export$856d9c4c9c7b8da0","tokenNames","cheddarSymbol","hasCheddar","tokenContractData","tokenMetadata","isCheddar","amounts","stakeContract","$e35c076bc1fed0bf$var$poolList","$c17abf7ffd777163$var$tokenDataArray","$e35c076bc1fed0bf$var$generatePoolList","poolParams","setAllExtraData","$e35c076bc1fed0bf$export$f08cc331730b6f90","pool","farming_end","$c17abf7ffd777163$var$testTokensSymbols","$c17abf7ffd777163$var$setAllTokensData","$c17abf7ffd777163$export$91b8816a124ef494","reloadData","$c17abf7ffd777163$var$getPriceWithData","tokenSymbol","tokenData","$c17abf7ffd777163$export$2e042ee8088ce7ba","tokenArray","$9f5944e742fddc25$export$df86ca1385cfe2b","contract_id","base_url","media","media_hash","copies","issued_at","expires_at","starts_at","updated_at","approved_account_ids","$fd83ee9de3b997ff$var$pointsA","$fd83ee9de3b997ff$var$pointsB","$fd83ee9de3b997ff$var$$canvas","$fd83ee9de3b997ff$var$canvas","$fd83ee9de3b997ff$var$context","$fd83ee9de3b997ff$var$vars","$fd83ee9de3b997ff$var$points","$fd83ee9de3b997ff$var$viscosity","$fd83ee9de3b997ff$var$mouseDist","$fd83ee9de3b997ff$var$damping","$fd83ee9de3b997ff$var$showIndicators","$fd83ee9de3b997ff$var$mouseX","$fd83ee9de3b997ff$var$mouseY","$fd83ee9de3b997ff$var$relMouseX","$fd83ee9de3b997ff$var$relMouseY","$fd83ee9de3b997ff$var$mouseLastX","$fd83ee9de3b997ff$var$mouseLastY","$fd83ee9de3b997ff$var$mouseDirectionX","$fd83ee9de3b997ff$var$mouseDirectionY","$fd83ee9de3b997ff$var$mouseSpeedX","$fd83ee9de3b997ff$var$mouseSpeedY","$fd83ee9de3b997ff$var$mouseDirection","pageX","pageY","getBoundingClientRect","top","$fd83ee9de3b997ff$var$mouseSpeed","$fd83ee9de3b997ff$export$40f8640a65e1db50","button","buttonWidth","buttonHeight","createElement","append","getContext","$fd83ee9de3b997ff$var$addPoints","$fd83ee9de3b997ff$var$renderCanvas","$fd83ee9de3b997ff$var$Point","vx","ix","level","vy","iy","dx","dy","relDist","cx1","cy1","cx2","cy2","requestAnimationFrame","clearRect","fillStyle","fillRect","canvasRect","canvasOffset","scrollY","scrollX","gradientX","gradientY","distance","gradient","createRadialGradient","addColorStop","groups","points1","beginPath","moveTo","nextP","bezierCurveTo","rect","$6cdb5b2e15100587$var$confettiCount","$6cdb5b2e15100587$var$sequinCount","$6cdb5b2e15100587$var$gravityConfetti","$6cdb5b2e15100587$var$gravitySequins","$6cdb5b2e15100587$var$dragConfetti","$6cdb5b2e15100587$var$dragSequins","$6cdb5b2e15100587$var$terminalVelocity","$6cdb5b2e15100587$var$button","$6cdb5b2e15100587$var$disabled","$6cdb5b2e15100587$var$canvas","$6cdb5b2e15100587$var$ctx","$6cdb5b2e15100587$var$colors","front","back","$6cdb5b2e15100587$var$randomRange","random","$6cdb5b2e15100587$var$initConfettoVelocity","xRange","yRange","$6cdb5b2e15100587$export$dd5caf7f88107e2f","initBurst","confetti","$6cdb5b2e15100587$var$Confetto","confettiButton","canvas","sequins","$6cdb5b2e15100587$var$Sequin","canvas1","ctx1","confetto","dimensions","scale","translate","rotate","rotation","color","setTransform","velocity","offsetWidth","offsetHeight","sequin","arc","radius","clickButtonWithRedirection","poolID","sessionStorage","classList","remove","successAnimation","clickButtonWithoutRedirection","resizeCanvas","innerWidth","innerHeight","randomModifier","button1","canvas2","button2","canvas3","$0f9cb702b616ea20$export$4b6dd4ac026934d2","$0f9cb702b616ea20$var$nearWebWalletConnection","$0f9cb702b616ea20$var$nearConnectedWalletAccount","$0f9cb702b616ea20$var$accountName","$0f9cb702b616ea20$var$isPaused","$0f9cb702b616ea20$var$loggedWithNarwallets","$0f9cb702b616ea20$var$SECONDS","$0f9cb702b616ea20$var$MINUTES","$0f9cb702b616ea20$var$HOURS","$0f9cb702b616ea20$var$countDownIntervalId","$0f9cb702b616ea20$var$refreshTime","$0f9cb702b616ea20$var$ONE_NEAR","onclick","preventDefault","$0f9cb702b616ea20$var$showSection","$0f9cb702b616ea20$var$selectNav","$0f9cb702b616ea20$var$signedOutFlow","$0f9cb702b616ea20$var$signedInFlow","$0f9cb702b616ea20$var$loginNearWebWallet","$0f9cb702b616ea20$var$moreGamesButton","$0f9cb702b616ea20$var$gamesDropdownHandler","$0f9cb702b616ea20$var$noLivePoolsMsg","toggle","$0f9cb702b616ea20$var$navClickHandler_ConnectFirst","closest","$0f9cb702b616ea20$var$sayChoose","$0f9cb702b616ea20$var$filterPools","$0f9cb702b616ea20$var$filterButtonClicked","$0f9cb702b616ea20$var$hideAllPools","$0f9cb702b616ea20$var$showSelectedPools","selectedPools","$0f9cb702b616ea20$var$activateClicked","stakeTokenList","tokenContract","$0f9cb702b616ea20$var$needsStorageDeposit","storageDepositWithoutSend","contractStorageBalanceData","$0f9cb702b616ea20$var$getUnclaimedRewardsInUSDSingle","rewardTokenData","currentRewardsDisplayable","parseFloat","price","$0f9cb702b616ea20$var$convertToUSDMultiple","amountList","rewardTokenArray","rewardTokenDataMap","amountInUsd","toFixed","$0f9cb702b616ea20$var$stakeMultiple","newPool","inputArray","unixTimestamp","Date","getTime","htmlInputArray","amountValuesArray","amountValues","transferedAmountWithSymbolArray","stakedAmountWithSymbol","$0f9cb702b616ea20$var$getInputDataMultiple","removeAttribute","$0f9cb702b616ea20$var$unstakeMultiple","unstakedAmountWithSymbol","inputContainerList","boundary","getWalletAvailable","currentStakeTokenMetadata","stakeAmountBN","balanceDisplayable","stakedAmountWithSymbolArray","$0f9cb702b616ea20$var$stakeSingle","stakeInput","stakeAmount","$0f9cb702b616ea20$var$harvestMultipleOrNFT","$0f9cb702b616ea20$var$harvestSingle","$0f9cb702b616ea20$var$unstakeSingle","unstakeInput","unstakeAmount","stakedDisplayable","$0f9cb702b616ea20$var$termsOfUseListener","$0f9cb702b616ea20$var$showUnstakeResult","unstaked","$0f9cb702b616ea20$var$showRemoveLiquidityResult","yoctoCheddar","$0f9cb702b616ea20$var$autoRefresh","section","$0f9cb702b616ea20$var$takeUserAmountFromHome","notConnectedStakeInput","wallet1","walletDisplayableID","walletID","accountIdElement","$0f9cb702b616ea20$var$setDefaultFilter","didJustActivate","Event","allYourFarmsPools","allLivePools","$0f9cb702b616ea20$var$initNearWebWalletConnection","near1","$0f9cb702b616ea20$var$logoutNearWebWallet","origin","requestSignIn","$0f9cb702b616ea20$var$loginNarwallets","$0f9cb702b616ea20$var$showOrHideMaxButton","walletBalance","$0f9cb702b616ea20$var$setDateInRangeVisualIndication","isDateInRange","dateInRangeIndicator","allUnclaimedRewardsTotalAmount","allUnclaimedRewardsDetails","unclaimedRewardDetail","amountContainer","unclaimedRewards","unclaimedRewardsValue","$0f9cb702b616ea20$var$refreshPoolInfoSingle","refreshAllExtraData","userPoolParams","$0f9cb702b616ea20$var$updateDetail","$0f9cb702b616ea20$var$convertRewardsRates","$0f9cb702b616ea20$var$uptadeDetailIfNecesary","getFarmTokenContractData","stakeBalances","stakeCD","$0f9cb702b616ea20$var$refreshInputAmounts","doesPoolNeedDeposit","contains","now","farming_start","$0f9cb702b616ea20$var$resetSinglePoolListener","$0f9cb702b616ea20$var$refreshNFTOrMultiplePoolInfo","getRewardsTokenDetail","$0f9cb702b616ea20$var$resetMultiplePoolListener","$0f9cb702b616ea20$var$resetNFTPoolListener","$0f9cb702b616ea20$var$setBoostDisplay","maxButton","rates","rate","contractList","totals","baseClass","totalInUsd","totalDetailsElements","row","$0f9cb702b616ea20$var$refreshAccountInfoGeneric","poolList","$0f9cb702b616ea20$var$narwalletConnected","$0f9cb702b616ea20$var$narwalletDisconnected","$0f9cb702b616ea20$var$calculateAmountHaveStaked","stakeRates","amountIndex","newAmountIndex","$0f9cb702b616ea20$var$calculateAmountToStake","inputIndex","outputIndex","amountToStake","$0f9cb702b616ea20$var$calculateAmountToUnstake","alreadySetIndex","newIndex","totalAmountStakedWithThisUnstake","$0f9cb702b616ea20$var$autoFillStakeAmount","inputRoute","indexInputToken","value1","inputTokenMetadata","amountToStakingOrUnstaking","inputs","stake_rates","totalStakedByUser","indexOutputToken","amountToTransferSecondaryBN","amountToStakeSecondary","$0f9cb702b616ea20$var$addPoolSingle","farmTokenContractData","$0f9cb702b616ea20$var$addInput","$0f9cb702b616ea20$var$addHeader","totalStakedInUsd","rewardsPerDayInUsd","apr","$0f9cb702b616ea20$var$calculateAPR","$0f9cb702b616ea20$var$addSinglePoolListeners","$0f9cb702b616ea20$var$addTokenFarmLogos","tokenContractDataArray","logoContainer","tokenIconData","$0f9cb702b616ea20$var$addLogo","$0f9cb702b616ea20$var$addNFTFarmLogo","newTokenLogoElement","cloneNode","imgUrl","$0f9cb702b616ea20$var$toggleGenericClass","$0f9cb702b616ea20$var$addAllLogos","newHeader","poolContainer","tokenPoolStatsContainer","newTokenPoolStats","$0f9cb702b616ea20$var$addMultiplePoolListeners","ref3","tokenSymbols","$0f9cb702b616ea20$var$setAllInputMaxButtonListeners","refreshIntervalId","setInterval","boostButton","boostButtonId","$0f9cb702b616ea20$var$showNFTGrid","$0f9cb702b616ea20$var$standardHoverToDisplayExtraInfo","$0f9cb702b616ea20$var$addNFTPoolListeners","stakeUnstakeNftButton","stakeUnstakeNftButtonId","disabled","$0f9cb702b616ea20$var$showStakeUnstakeNFTGrid","$0f9cb702b616ea20$var$addPoolTokensDescription","legendContainer","poolLegends","descriptionLinks","$0f9cb702b616ea20$var$addNFTPool","justifyContent","$0f9cb702b616ea20$var$addPoolMultiple","hasNFTStaked","cheddy_nft","$0f9cb702b616ea20$var$addFocusClass","stakedAmount","newInputContainer","inputRowContainer","infoRowContainer","tokenLogoElement","inputLogoContainer","amountAvailableValue","$0f9cb702b616ea20$var$toggleExpandStakeUnstakeSection","elemWithListener","expandPoolButton","stakingUnstakingContainer","$0f9cb702b616ea20$var$flipElement","$0f9cb702b616ea20$var$toggleActions","elementWithListenner","elementShown","$0f9cb702b616ea20$var$toggleElement","$0f9cb702b616ea20$var$showElement","$0f9cb702b616ea20$var$hideElement","$0f9cb702b616ea20$var$hideAllDynamicElements","$0f9cb702b616ea20$var$addAllCommonListeners","doesNeedStorageDeposit","infoIcon","poolStats","vanishingIndicator","$0f9cb702b616ea20$var$paintOrUnPaintElement","expandButtonStakingUnstaking","$0f9cb702b616ea20$var$makeBlinkElement","ref4","ref5","ref6","refreshFunction","$0f9cb702b616ea20$var$displayInactiveP2P3Pool","$0f9cb702b616ea20$var$displayActivePool","clearInterval","replaceWith","$0f9cb702b616ea20$var$displayInactiveNFTPool","$0f9cb702b616ea20$var$addFilterClasses","userHasStakedTokens","$0f9cb702b616ea20$var$addPool","singlePoolParams","multiplePoolParams","$0f9cb702b616ea20$var$addRewardTokenIcons","$0f9cb702b616ea20$var$addTotalStakedDetail","$0f9cb702b616ea20$var$addRewardsPerDayDetail","$0f9cb702b616ea20$var$addRewardsTokenDetail","$0f9cb702b616ea20$var$addUnclaimedRewardsDetail","showContractStart","showContractEnd","accountRegistered","accounts_registered","getPoolName","element","fee_rate","$0f9cb702b616ea20$var$showSuccessOnHarvestAnimation","$0f9cb702b616ea20$var$toggleStakeUnstakeSection","$0f9cb702b616ea20$var$setUnstakeTabListeners","stakeTabButton","unstakeTabButton","staking","unstaking","stakeButton","unstakeButton","$0f9cb702b616ea20$var$showElementHideAnother","$0f9cb702b616ea20$var$setActiveColor","$0f9cb702b616ea20$var$cancelActiveColor","$0f9cb702b616ea20$var$displayIfNftPool","isAccountRegistered","hasUserStaked","$0f9cb702b616ea20$var$displayIfTokenPool","activateButtonContainer","activateButton","warningText","harvestSection","container","tokenIconDataArray","getRewardTokenIconData","newMiniIcon","$0f9cb702b616ea20$var$importMiniIcon","stakeTokenDataArray","getStakeTokensDetail","totalStakedRows","parentClass","stakeTokenData","rows","$0f9cb702b616ea20$var$addDetailRows","$0f9cb702b616ea20$var$convertAndAddRewardDataRows","rewardsTokenDataArray","rewardsPerDayRows","rewardsTokenData","rowsData","parentElement","genericRow","newRow","iconContainer","iconNode","parser","DOMParser","parseFromString","documentElement","newClass","inputContainerArray","inputContainer","$0f9cb702b616ea20$var$inputMaxButtonClicked","inputEvent","$0f9cb702b616ea20$var$addPoolList","childElementCount","$0f9cb702b616ea20$var$closePublicityButtonHandler","$0f9cb702b616ea20$var$closePublicityButton","$0f9cb702b616ea20$var$setCountdown","countDownDate","getTimezoneOffset","getElementById","days","hours","minutes","seconds","$0f9cb702b616ea20$var$stakeResult","argsArray","tokensStakedMessage","$0f9cb702b616ea20$var$unstakeResult","tokensUnstakedMessage","elementToShow","tagName","elementToFlip","previousColoringClass","elementToPaint","elementToMakeBlink","elementToHide","elementToDisplayAsNotActive","$0f9cb702b616ea20$var$loadAndShowNfts","buttonId","$0f9cb702b616ea20$var$loadNFTs","confirmStakeUnstakeNFTButton","$0f9cb702b616ea20$var$NFTPoolSection","cancelStakeUnstakeNFTButton","$0f9cb702b616ea20$var$confirmStakeUnstakeNFTButtonHandler","$0f9cb702b616ea20$var$quitNFTFlex","$0f9cb702b616ea20$var$displayCheddarNeededToStakeNFTs","stakeRate","nftPoolSection","countSelectedToStakeNfts","nftPoolsSection","allNFTCardsByAction","card","$0f9cb702b616ea20$var$selectAllActionNftButtons","NFTContainer","stakedOrBoostingNFTsToAdd","userUnstakedNFTsWithMetadata","mapped","nft","poolHasStaked","nftContractList","nftMetadata","base_uri","userUnstakedNFTs","contractTokens","thisUserStakedNFTsPromises","nft_token","$0f9cb702b616ea20$var$addNFT","$0f9cb702b616ea20$var$checkIfMultipleSelectionButtonsMustBeSelected","unstakedSelectedAmount","stakeAllButton","unstakedAmount","unstakeAllButton","stakedSelectedAmount","$0f9cb702b616ea20$var$stakeAndUstakeNFTButtonHandler","newNFTCard","cheddarBalanceContainer","cheddarBalance","cheddarNeededToStakeNFTsContainer","$0f9cb702b616ea20$var$getNFTsToStakeAndUnstake","haveNftsToStake","nftContractData","nftName","thisNFTStakeButton","getAttribute","contractStakeUnstakeData","$0f9cb702b616ea20$var$displayNFTPoolSectionForStakeUnstakeNFT","NFTStakeTitle","$0f9cb702b616ea20$var$displayNFTPoolSectionForNFTBoost","NFTPoolSectionInfoRow","$0f9cb702b616ea20$var$stakeNFT","$0f9cb702b616ea20$var$unstakeNFT","nftMedia","imgElement","nft_transfer_call","NFTCard","withdrawBoost","$0f9cb702b616ea20$var$hideNFTFlexComponents","hideNFTFlexComponents1","$0f9cb702b616ea20$var$showNFTFlexComponents","showNFTFlexComponents1","headerCheddarValueDisplayerContainer","cheddarValue","circulatingSupply","ft_total_supply","searchParamsResultArray","searchParamsResult","errResult","methodResult","atob","$0f9cb702b616ea20$var$burgerTogglers","toggler","$0f9cb702b616ea20$var$toggleBurgerNav"],"version":3,"file":"index.9b0516fd.js.map"} \ No newline at end of file diff --git a/index.9beecf59.js b/index.9beecf59.js new file mode 100644 index 0000000..c620d0b --- /dev/null +++ b/index.9beecf59.js @@ -0,0 +1,16 @@ +var $parcel$global="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function $parcel$export(e,t,r,a){Object.defineProperty(e,t,{get:r,set:a,enumerable:!0,configurable:!0})}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e}var $parcel$modules={},$parcel$inits={},parcelRequire=$parcel$global.parcelRequired7b7;null==parcelRequire&&(parcelRequire=function(e){if(e in $parcel$modules)return $parcel$modules[e].exports;if(e in $parcel$inits){var t=$parcel$inits[e];delete $parcel$inits[e];var r={id:e,exports:{}};return $parcel$modules[e]=r,t.call(r.exports,r,r.exports),r.exports}var a=new Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a},parcelRequire.register=function(e,t){$parcel$inits[e]=t},$parcel$global.parcelRequired7b7=parcelRequire),parcelRequire.register("3RPn8",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.MergeKeyStore=e.exports.BrowserLocalStorageKeyStore=e.exports.InMemoryKeyStore=e.exports.KeyStore=void 0;var r=parcelRequire("8bVp8");Object.defineProperty(e.exports,"KeyStore",{enumerable:!0,get:function(){return r.KeyStore}});var a=parcelRequire("fcf52");Object.defineProperty(e.exports,"InMemoryKeyStore",{enumerable:!0,get:function(){return a.InMemoryKeyStore}});var n=parcelRequire("k8rH8");Object.defineProperty(e.exports,"BrowserLocalStorageKeyStore",{enumerable:!0,get:function(){return n.BrowserLocalStorageKeyStore}});var o=parcelRequire("klUo1");Object.defineProperty(e.exports,"MergeKeyStore",{enumerable:!0,get:function(){return o.MergeKeyStore}})})),parcelRequire.register("8bVp8",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.KeyStore=void 0;e.exports.KeyStore=class{}})),parcelRequire.register("fcf52",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.InMemoryKeyStore=void 0;var r=parcelRequire("8bVp8"),a=parcelRequire("c6vjW");class n extends r.KeyStore{async setKey(e,t,r){this.keys[`${t}:${e}`]=r.toString()}async getKey(e,t){const r=this.keys[`${t}:${e}`];return r?a.KeyPair.fromString(r):null}async removeKey(e,t){delete this.keys[`${t}:${e}`]}async clear(){this.keys={}}async getNetworks(){const e=new Set;return Object.keys(this.keys).forEach((t=>{const r=t.split(":");e.add(r[1])})),Array.from(e.values())}async getAccounts(e){const t=new Array;return Object.keys(this.keys).forEach((r=>{const a=r.split(":");a[a.length-1]===e&&t.push(a.slice(0,a.length-1).join(":"))})),t}toString(){return"InMemoryKeyStore"}constructor(){super(),this.keys={}}}e.exports.InMemoryKeyStore=n})),parcelRequire.register("c6vjW",(function(e,t){var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.KeyPairEd25519=e.exports.KeyPair=e.exports.PublicKey=e.exports.KeyType=void 0;const a=r(parcelRequire("aSGdv"));var n,o,i=parcelRequire("kK9YP"),s=parcelRequire("hHMds");function c(e){if("ed25519"===e.toLowerCase())return n.ED25519;throw new Error(`Unknown key type ${e}`)}(o=n=e.exports.KeyType||(e.exports.KeyType={}))[o.ED25519=0]="ED25519";class l extends s.Assignable{static from(e){return"string"==typeof e?l.fromString(e):e}static fromString(e){const t=e.split(":");if(1===t.length)return new l({keyType:n.ED25519,data:i.base_decode(t[0])});if(2===t.length)return new l({keyType:c(t[0]),data:i.base_decode(t[1])});throw new Error("Invalid encoded key format, must be :")}toString(){return`${function(e){if(e===n.ED25519)return"ed25519";throw new Error(`Unknown key type ${e}`)}(this.keyType)}:${i.base_encode(this.data)}`}}e.exports.PublicKey=l;class d{static fromRandom(e){if("ED25519"===e.toUpperCase())return u.fromRandom();throw new Error(`Unknown curve ${e}`)}static fromString(e){const t=e.split(":");if(1===t.length)return new u(t[0]);if(2===t.length){if("ED25519"===t[0].toUpperCase())return new u(t[1]);throw new Error(`Unknown curve: ${t[0]}`)}throw new Error("Invalid encoded key format, must be :")}}e.exports.KeyPair=d;class u extends d{static fromRandom(){const e=a.default.sign.keyPair();return new u(i.base_encode(e.secretKey))}sign(e){return{signature:a.default.sign.detached(e,i.base_decode(this.secretKey)),publicKey:this.publicKey}}verify(e,t){return a.default.sign.detached.verify(e,t,this.publicKey.data)}toString(){return`ed25519:${this.secretKey}`}getPublicKey(){return this.publicKey}constructor(e){super();const t=a.default.sign.keyPair.fromSecretKey(i.base_decode(e));this.publicKey=new l({keyType:n.ED25519,data:t.publicKey}),this.secretKey=e}}e.exports.KeyPairEd25519=u})),parcelRequire.register("aSGdv",(function(e,t){!function(e){var t=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=a>>24&255,e[t+5]=a>>16&255,e[t+6]=a>>8&255,e[t+7]=255&a}function p(e,t,r,a,n){var o,i=0;for(o=0;o>>8)-1}function $(e,t,r,a){return p(e,t,r,a,16)}function b(e,t,r,a){return p(e,t,r,a,32)}function g(e,t,r,a){!function(e,t,r,a){for(var n,o=255&a[0]|(255&a[1])<<8|(255&a[2])<<16|(255&a[3])<<24,i=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,s=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,c=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,l=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,d=255&a[4]|(255&a[5])<<8|(255&a[6])<<16|(255&a[7])<<24,u=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,f=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,h=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,$=255&a[8]|(255&a[9])<<8|(255&a[10])<<16|(255&a[11])<<24,b=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,g=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,m=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,y=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,v=255&a[12]|(255&a[13])<<8|(255&a[14])<<16|(255&a[15])<<24,w=o,x=i,_=s,k=c,S=l,E=d,A=u,R=f,M=h,T=p,C=$,I=b,N=g,L=m,q=y,P=v,O=0;O<20;O+=2)w^=(n=(N^=(n=(M^=(n=(S^=(n=w+N|0)<<7|n>>>25)+w|0)<<9|n>>>23)+S|0)<<13|n>>>19)+M|0)<<18|n>>>14,E^=(n=(x^=(n=(L^=(n=(T^=(n=E+x|0)<<7|n>>>25)+E|0)<<9|n>>>23)+T|0)<<13|n>>>19)+L|0)<<18|n>>>14,C^=(n=(A^=(n=(_^=(n=(q^=(n=C+A|0)<<7|n>>>25)+C|0)<<9|n>>>23)+q|0)<<13|n>>>19)+_|0)<<18|n>>>14,P^=(n=(I^=(n=(R^=(n=(k^=(n=P+I|0)<<7|n>>>25)+P|0)<<9|n>>>23)+k|0)<<13|n>>>19)+R|0)<<18|n>>>14,w^=(n=(k^=(n=(_^=(n=(x^=(n=w+k|0)<<7|n>>>25)+w|0)<<9|n>>>23)+x|0)<<13|n>>>19)+_|0)<<18|n>>>14,E^=(n=(S^=(n=(R^=(n=(A^=(n=E+S|0)<<7|n>>>25)+E|0)<<9|n>>>23)+A|0)<<13|n>>>19)+R|0)<<18|n>>>14,C^=(n=(T^=(n=(M^=(n=(I^=(n=C+T|0)<<7|n>>>25)+C|0)<<9|n>>>23)+I|0)<<13|n>>>19)+M|0)<<18|n>>>14,P^=(n=(q^=(n=(L^=(n=(N^=(n=P+q|0)<<7|n>>>25)+P|0)<<9|n>>>23)+N|0)<<13|n>>>19)+L|0)<<18|n>>>14;w=w+o|0,x=x+i|0,_=_+s|0,k=k+c|0,S=S+l|0,E=E+d|0,A=A+u|0,R=R+f|0,M=M+h|0,T=T+p|0,C=C+$|0,I=I+b|0,N=N+g|0,L=L+m|0,q=q+y|0,P=P+v|0,e[0]=w>>>0&255,e[1]=w>>>8&255,e[2]=w>>>16&255,e[3]=w>>>24&255,e[4]=x>>>0&255,e[5]=x>>>8&255,e[6]=x>>>16&255,e[7]=x>>>24&255,e[8]=_>>>0&255,e[9]=_>>>8&255,e[10]=_>>>16&255,e[11]=_>>>24&255,e[12]=k>>>0&255,e[13]=k>>>8&255,e[14]=k>>>16&255,e[15]=k>>>24&255,e[16]=S>>>0&255,e[17]=S>>>8&255,e[18]=S>>>16&255,e[19]=S>>>24&255,e[20]=E>>>0&255,e[21]=E>>>8&255,e[22]=E>>>16&255,e[23]=E>>>24&255,e[24]=A>>>0&255,e[25]=A>>>8&255,e[26]=A>>>16&255,e[27]=A>>>24&255,e[28]=R>>>0&255,e[29]=R>>>8&255,e[30]=R>>>16&255,e[31]=R>>>24&255,e[32]=M>>>0&255,e[33]=M>>>8&255,e[34]=M>>>16&255,e[35]=M>>>24&255,e[36]=T>>>0&255,e[37]=T>>>8&255,e[38]=T>>>16&255,e[39]=T>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=I>>>0&255,e[45]=I>>>8&255,e[46]=I>>>16&255,e[47]=I>>>24&255,e[48]=N>>>0&255,e[49]=N>>>8&255,e[50]=N>>>16&255,e[51]=N>>>24&255,e[52]=L>>>0&255,e[53]=L>>>8&255,e[54]=L>>>16&255,e[55]=L>>>24&255,e[56]=q>>>0&255,e[57]=q>>>8&255,e[58]=q>>>16&255,e[59]=q>>>24&255,e[60]=P>>>0&255,e[61]=P>>>8&255,e[62]=P>>>16&255,e[63]=P>>>24&255}(e,t,r,a)}function m(e,t,r,a){!function(e,t,r,a){for(var n,o=255&a[0]|(255&a[1])<<8|(255&a[2])<<16|(255&a[3])<<24,i=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,s=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,c=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,l=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,d=255&a[4]|(255&a[5])<<8|(255&a[6])<<16|(255&a[7])<<24,u=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,f=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,h=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,$=255&a[8]|(255&a[9])<<8|(255&a[10])<<16|(255&a[11])<<24,b=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,g=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,m=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,y=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,v=255&a[12]|(255&a[13])<<8|(255&a[14])<<16|(255&a[15])<<24,w=0;w<20;w+=2)o^=(n=(g^=(n=(h^=(n=(l^=(n=o+g|0)<<7|n>>>25)+o|0)<<9|n>>>23)+l|0)<<13|n>>>19)+h|0)<<18|n>>>14,d^=(n=(i^=(n=(m^=(n=(p^=(n=d+i|0)<<7|n>>>25)+d|0)<<9|n>>>23)+p|0)<<13|n>>>19)+m|0)<<18|n>>>14,$^=(n=(u^=(n=(s^=(n=(y^=(n=$+u|0)<<7|n>>>25)+$|0)<<9|n>>>23)+y|0)<<13|n>>>19)+s|0)<<18|n>>>14,v^=(n=(b^=(n=(f^=(n=(c^=(n=v+b|0)<<7|n>>>25)+v|0)<<9|n>>>23)+c|0)<<13|n>>>19)+f|0)<<18|n>>>14,o^=(n=(c^=(n=(s^=(n=(i^=(n=o+c|0)<<7|n>>>25)+o|0)<<9|n>>>23)+i|0)<<13|n>>>19)+s|0)<<18|n>>>14,d^=(n=(l^=(n=(f^=(n=(u^=(n=d+l|0)<<7|n>>>25)+d|0)<<9|n>>>23)+u|0)<<13|n>>>19)+f|0)<<18|n>>>14,$^=(n=(p^=(n=(h^=(n=(b^=(n=$+p|0)<<7|n>>>25)+$|0)<<9|n>>>23)+b|0)<<13|n>>>19)+h|0)<<18|n>>>14,v^=(n=(y^=(n=(m^=(n=(g^=(n=v+y|0)<<7|n>>>25)+v|0)<<9|n>>>23)+g|0)<<13|n>>>19)+m|0)<<18|n>>>14;e[0]=o>>>0&255,e[1]=o>>>8&255,e[2]=o>>>16&255,e[3]=o>>>24&255,e[4]=d>>>0&255,e[5]=d>>>8&255,e[6]=d>>>16&255,e[7]=d>>>24&255,e[8]=$>>>0&255,e[9]=$>>>8&255,e[10]=$>>>16&255,e[11]=$>>>24&255,e[12]=v>>>0&255,e[13]=v>>>8&255,e[14]=v>>>16&255,e[15]=v>>>24&255,e[16]=u>>>0&255,e[17]=u>>>8&255,e[18]=u>>>16&255,e[19]=u>>>24&255,e[20]=f>>>0&255,e[21]=f>>>8&255,e[22]=f>>>16&255,e[23]=f>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,t,r,a)}var y=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function v(e,t,r,a,n,o,i){var s,c,l=new Uint8Array(16),d=new Uint8Array(64);for(c=0;c<16;c++)l[c]=0;for(c=0;c<8;c++)l[c]=o[c];for(;n>=64;){for(g(d,l,i,y),c=0;c<64;c++)e[t+c]=r[a+c]^d[c];for(s=1,c=8;c<16;c++)s=s+(255&l[c])|0,l[c]=255&s,s>>>=8;n-=64,t+=64,a+=64}if(n>0)for(g(d,l,i,y),c=0;c=64;){for(g(c,s,n,y),i=0;i<64;i++)e[t+i]=c[i];for(o=1,i=8;i<16;i++)o=o+(255&s[i])|0,s[i]=255&o,o>>>=8;r-=64,t+=64}if(r>0)for(g(c,s,n,y),i=0;i>>13|r<<3),a=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(r>>>10|a<<6),n=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(a>>>7|n<<9),o=255&e[8]|(255&e[9])<<8,this.r[4]=255&(n>>>4|o<<12),this.r[5]=o>>>1&8190,i=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(o>>>14|i<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(i>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function S(e,t,r,a,n,o){var i=new k(o);return i.update(r,a,n),i.finish(e,t),0}function E(e,t,r,a,n,o){var i=new Uint8Array(16);return S(i,0,r,a,n,o),$(e,t,i,0)}function A(e,t,r,a,n){var o;if(r<32)return-1;for(_(e,0,t,0,r,a,n),S(e,16,e,32,r-32,e),o=0;o<16;o++)e[o]=0;return 0}function R(e,t,r,a,n){var o,i=new Uint8Array(32);if(r<32)return-1;if(x(i,0,32,a,n),0!==E(t,16,t,32,r-32,i))return-1;for(_(e,0,t,0,r,a,n),o=0;o<32;o++)e[o]=0;return 0}function M(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function T(e){var t,r,a=1;for(t=0;t<16;t++)r=e[t]+a+65535,a=Math.floor(r/65536),e[t]=r-65536*a;e[0]+=a-1+37*(a-1)}function C(e,t,r){for(var a,n=~(r-1),o=0;o<16;o++)a=n&(e[o]^t[o]),e[o]^=a,t[o]^=a}function I(e,r){var a,n,o,i=t(),s=t();for(a=0;a<16;a++)s[a]=r[a];for(T(s),T(s),T(s),n=0;n<2;n++){for(i[0]=s[0]-65517,a=1;a<15;a++)i[a]=s[a]-65535-(i[a-1]>>16&1),i[a-1]&=65535;i[15]=s[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,C(s,i,1-o)}for(a=0;a<16;a++)e[2*a]=255&s[a],e[2*a+1]=s[a]>>8}function N(e,t){var r=new Uint8Array(32),a=new Uint8Array(32);return I(r,e),I(a,t),b(r,0,a,0)}function L(e){var t=new Uint8Array(32);return I(t,e),1&t[0]}function q(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function P(e,t,r){for(var a=0;a<16;a++)e[a]=t[a]+r[a]}function O(e,t,r){for(var a=0;a<16;a++)e[a]=t[a]-r[a]}function D(e,t,r){var a,n,o=0,i=0,s=0,c=0,l=0,d=0,u=0,f=0,h=0,p=0,$=0,b=0,g=0,m=0,y=0,v=0,w=0,x=0,_=0,k=0,S=0,E=0,A=0,R=0,M=0,T=0,C=0,I=0,N=0,L=0,q=0,P=r[0],O=r[1],D=r[2],B=r[3],U=r[4],F=r[5],H=r[6],j=r[7],K=r[8],W=r[9],G=r[10],z=r[11],V=r[12],X=r[13],Y=r[14],J=r[15];o+=(a=t[0])*P,i+=a*O,s+=a*D,c+=a*B,l+=a*U,d+=a*F,u+=a*H,f+=a*j,h+=a*K,p+=a*W,$+=a*G,b+=a*z,g+=a*V,m+=a*X,y+=a*Y,v+=a*J,i+=(a=t[1])*P,s+=a*O,c+=a*D,l+=a*B,d+=a*U,u+=a*F,f+=a*H,h+=a*j,p+=a*K,$+=a*W,b+=a*G,g+=a*z,m+=a*V,y+=a*X,v+=a*Y,w+=a*J,s+=(a=t[2])*P,c+=a*O,l+=a*D,d+=a*B,u+=a*U,f+=a*F,h+=a*H,p+=a*j,$+=a*K,b+=a*W,g+=a*G,m+=a*z,y+=a*V,v+=a*X,w+=a*Y,x+=a*J,c+=(a=t[3])*P,l+=a*O,d+=a*D,u+=a*B,f+=a*U,h+=a*F,p+=a*H,$+=a*j,b+=a*K,g+=a*W,m+=a*G,y+=a*z,v+=a*V,w+=a*X,x+=a*Y,_+=a*J,l+=(a=t[4])*P,d+=a*O,u+=a*D,f+=a*B,h+=a*U,p+=a*F,$+=a*H,b+=a*j,g+=a*K,m+=a*W,y+=a*G,v+=a*z,w+=a*V,x+=a*X,_+=a*Y,k+=a*J,d+=(a=t[5])*P,u+=a*O,f+=a*D,h+=a*B,p+=a*U,$+=a*F,b+=a*H,g+=a*j,m+=a*K,y+=a*W,v+=a*G,w+=a*z,x+=a*V,_+=a*X,k+=a*Y,S+=a*J,u+=(a=t[6])*P,f+=a*O,h+=a*D,p+=a*B,$+=a*U,b+=a*F,g+=a*H,m+=a*j,y+=a*K,v+=a*W,w+=a*G,x+=a*z,_+=a*V,k+=a*X,S+=a*Y,E+=a*J,f+=(a=t[7])*P,h+=a*O,p+=a*D,$+=a*B,b+=a*U,g+=a*F,m+=a*H,y+=a*j,v+=a*K,w+=a*W,x+=a*G,_+=a*z,k+=a*V,S+=a*X,E+=a*Y,A+=a*J,h+=(a=t[8])*P,p+=a*O,$+=a*D,b+=a*B,g+=a*U,m+=a*F,y+=a*H,v+=a*j,w+=a*K,x+=a*W,_+=a*G,k+=a*z,S+=a*V,E+=a*X,A+=a*Y,R+=a*J,p+=(a=t[9])*P,$+=a*O,b+=a*D,g+=a*B,m+=a*U,y+=a*F,v+=a*H,w+=a*j,x+=a*K,_+=a*W,k+=a*G,S+=a*z,E+=a*V,A+=a*X,R+=a*Y,M+=a*J,$+=(a=t[10])*P,b+=a*O,g+=a*D,m+=a*B,y+=a*U,v+=a*F,w+=a*H,x+=a*j,_+=a*K,k+=a*W,S+=a*G,E+=a*z,A+=a*V,R+=a*X,M+=a*Y,T+=a*J,b+=(a=t[11])*P,g+=a*O,m+=a*D,y+=a*B,v+=a*U,w+=a*F,x+=a*H,_+=a*j,k+=a*K,S+=a*W,E+=a*G,A+=a*z,R+=a*V,M+=a*X,T+=a*Y,C+=a*J,g+=(a=t[12])*P,m+=a*O,y+=a*D,v+=a*B,w+=a*U,x+=a*F,_+=a*H,k+=a*j,S+=a*K,E+=a*W,A+=a*G,R+=a*z,M+=a*V,T+=a*X,C+=a*Y,I+=a*J,m+=(a=t[13])*P,y+=a*O,v+=a*D,w+=a*B,x+=a*U,_+=a*F,k+=a*H,S+=a*j,E+=a*K,A+=a*W,R+=a*G,M+=a*z,T+=a*V,C+=a*X,I+=a*Y,N+=a*J,y+=(a=t[14])*P,v+=a*O,w+=a*D,x+=a*B,_+=a*U,k+=a*F,S+=a*H,E+=a*j,A+=a*K,R+=a*W,M+=a*G,T+=a*z,C+=a*V,I+=a*X,N+=a*Y,L+=a*J,v+=(a=t[15])*P,i+=38*(x+=a*D),s+=38*(_+=a*B),c+=38*(k+=a*U),l+=38*(S+=a*F),d+=38*(E+=a*H),u+=38*(A+=a*j),f+=38*(R+=a*K),h+=38*(M+=a*W),p+=38*(T+=a*G),$+=38*(C+=a*z),b+=38*(I+=a*V),g+=38*(N+=a*X),m+=38*(L+=a*Y),y+=38*(q+=a*J),o=(a=(o+=38*(w+=a*O))+(n=1)+65535)-65536*(n=Math.floor(a/65536)),i=(a=i+n+65535)-65536*(n=Math.floor(a/65536)),s=(a=s+n+65535)-65536*(n=Math.floor(a/65536)),c=(a=c+n+65535)-65536*(n=Math.floor(a/65536)),l=(a=l+n+65535)-65536*(n=Math.floor(a/65536)),d=(a=d+n+65535)-65536*(n=Math.floor(a/65536)),u=(a=u+n+65535)-65536*(n=Math.floor(a/65536)),f=(a=f+n+65535)-65536*(n=Math.floor(a/65536)),h=(a=h+n+65535)-65536*(n=Math.floor(a/65536)),p=(a=p+n+65535)-65536*(n=Math.floor(a/65536)),$=(a=$+n+65535)-65536*(n=Math.floor(a/65536)),b=(a=b+n+65535)-65536*(n=Math.floor(a/65536)),g=(a=g+n+65535)-65536*(n=Math.floor(a/65536)),m=(a=m+n+65535)-65536*(n=Math.floor(a/65536)),y=(a=y+n+65535)-65536*(n=Math.floor(a/65536)),v=(a=v+n+65535)-65536*(n=Math.floor(a/65536)),o=(a=(o+=n-1+37*(n-1))+(n=1)+65535)-65536*(n=Math.floor(a/65536)),i=(a=i+n+65535)-65536*(n=Math.floor(a/65536)),s=(a=s+n+65535)-65536*(n=Math.floor(a/65536)),c=(a=c+n+65535)-65536*(n=Math.floor(a/65536)),l=(a=l+n+65535)-65536*(n=Math.floor(a/65536)),d=(a=d+n+65535)-65536*(n=Math.floor(a/65536)),u=(a=u+n+65535)-65536*(n=Math.floor(a/65536)),f=(a=f+n+65535)-65536*(n=Math.floor(a/65536)),h=(a=h+n+65535)-65536*(n=Math.floor(a/65536)),p=(a=p+n+65535)-65536*(n=Math.floor(a/65536)),$=(a=$+n+65535)-65536*(n=Math.floor(a/65536)),b=(a=b+n+65535)-65536*(n=Math.floor(a/65536)),g=(a=g+n+65535)-65536*(n=Math.floor(a/65536)),m=(a=m+n+65535)-65536*(n=Math.floor(a/65536)),y=(a=y+n+65535)-65536*(n=Math.floor(a/65536)),v=(a=v+n+65535)-65536*(n=Math.floor(a/65536)),o+=n-1+37*(n-1),e[0]=o,e[1]=i,e[2]=s,e[3]=c,e[4]=l,e[5]=d,e[6]=u,e[7]=f,e[8]=h,e[9]=p,e[10]=$,e[11]=b,e[12]=g,e[13]=m,e[14]=y,e[15]=v}function B(e,t){D(e,t,t)}function U(e,r){var a,n=t();for(a=0;a<16;a++)n[a]=r[a];for(a=253;a>=0;a--)B(n,n),2!==a&&4!==a&&D(n,n,r);for(a=0;a<16;a++)e[a]=n[a]}function F(e,r){var a,n=t();for(a=0;a<16;a++)n[a]=r[a];for(a=250;a>=0;a--)B(n,n),1!==a&&D(n,n,r);for(a=0;a<16;a++)e[a]=n[a]}function H(e,r,a){var n,o,i=new Uint8Array(32),c=new Float64Array(80),l=t(),d=t(),u=t(),f=t(),h=t(),p=t();for(o=0;o<31;o++)i[o]=r[o];for(i[31]=127&r[31]|64,i[0]&=248,q(c,a),o=0;o<16;o++)d[o]=c[o],f[o]=l[o]=u[o]=0;for(l[0]=f[0]=1,o=254;o>=0;--o)C(l,d,n=i[o>>>3]>>>(7&o)&1),C(u,f,n),P(h,l,u),O(l,l,u),P(u,d,f),O(d,d,f),B(f,h),B(p,l),D(l,u,l),D(u,d,h),P(h,l,u),O(l,l,u),B(d,l),O(u,f,p),D(l,u,s),P(l,l,f),D(u,u,l),D(l,f,p),D(f,d,c),B(d,h),C(l,d,n),C(u,f,n);for(o=0;o<16;o++)c[o+16]=l[o],c[o+32]=u[o],c[o+48]=d[o],c[o+64]=f[o];var $=c.subarray(32),b=c.subarray(16);return U($,$),D(b,b,$),I(e,b),0}function j(e,t){return H(e,t,n)}function K(e,t){return r(t,32),j(e,t)}function W(e,t,r){var n=new Uint8Array(32);return H(n,r,t),m(e,a,n,y)}k.prototype.blocks=function(e,t,r){for(var a,n,o,i,s,c,l,d,u,f,h,p,$,b,g,m,y,v,w,x=this.fin?0:2048,_=this.h[0],k=this.h[1],S=this.h[2],E=this.h[3],A=this.h[4],R=this.h[5],M=this.h[6],T=this.h[7],C=this.h[8],I=this.h[9],N=this.r[0],L=this.r[1],q=this.r[2],P=this.r[3],O=this.r[4],D=this.r[5],B=this.r[6],U=this.r[7],F=this.r[8],H=this.r[9];r>=16;)f=u=0,f+=(_+=8191&(a=255&e[t+0]|(255&e[t+1])<<8))*N,f+=(k+=8191&(a>>>13|(n=255&e[t+2]|(255&e[t+3])<<8)<<3))*(5*H),f+=(S+=8191&(n>>>10|(o=255&e[t+4]|(255&e[t+5])<<8)<<6))*(5*F),f+=(E+=8191&(o>>>7|(i=255&e[t+6]|(255&e[t+7])<<8)<<9))*(5*U),u=(f+=(A+=8191&(i>>>4|(s=255&e[t+8]|(255&e[t+9])<<8)<<12))*(5*B))>>>13,f&=8191,f+=(R+=s>>>1&8191)*(5*D),f+=(M+=8191&(s>>>14|(c=255&e[t+10]|(255&e[t+11])<<8)<<2))*(5*O),f+=(T+=8191&(c>>>11|(l=255&e[t+12]|(255&e[t+13])<<8)<<5))*(5*P),f+=(C+=8191&(l>>>8|(d=255&e[t+14]|(255&e[t+15])<<8)<<8))*(5*q),h=u+=(f+=(I+=d>>>5|x)*(5*L))>>>13,h+=_*L,h+=k*N,h+=S*(5*H),h+=E*(5*F),u=(h+=A*(5*U))>>>13,h&=8191,h+=R*(5*B),h+=M*(5*D),h+=T*(5*O),h+=C*(5*P),u+=(h+=I*(5*q))>>>13,h&=8191,p=u,p+=_*q,p+=k*L,p+=S*N,p+=E*(5*H),u=(p+=A*(5*F))>>>13,p&=8191,p+=R*(5*U),p+=M*(5*B),p+=T*(5*D),p+=C*(5*O),$=u+=(p+=I*(5*P))>>>13,$+=_*P,$+=k*q,$+=S*L,$+=E*N,u=($+=A*(5*H))>>>13,$&=8191,$+=R*(5*F),$+=M*(5*U),$+=T*(5*B),$+=C*(5*D),b=u+=($+=I*(5*O))>>>13,b+=_*O,b+=k*P,b+=S*q,b+=E*L,u=(b+=A*N)>>>13,b&=8191,b+=R*(5*H),b+=M*(5*F),b+=T*(5*U),b+=C*(5*B),g=u+=(b+=I*(5*D))>>>13,g+=_*D,g+=k*O,g+=S*P,g+=E*q,u=(g+=A*L)>>>13,g&=8191,g+=R*N,g+=M*(5*H),g+=T*(5*F),g+=C*(5*U),m=u+=(g+=I*(5*B))>>>13,m+=_*B,m+=k*D,m+=S*O,m+=E*P,u=(m+=A*q)>>>13,m&=8191,m+=R*L,m+=M*N,m+=T*(5*H),m+=C*(5*F),y=u+=(m+=I*(5*U))>>>13,y+=_*U,y+=k*B,y+=S*D,y+=E*O,u=(y+=A*P)>>>13,y&=8191,y+=R*q,y+=M*L,y+=T*N,y+=C*(5*H),v=u+=(y+=I*(5*F))>>>13,v+=_*F,v+=k*U,v+=S*B,v+=E*D,u=(v+=A*O)>>>13,v&=8191,v+=R*P,v+=M*q,v+=T*L,v+=C*N,w=u+=(v+=I*(5*H))>>>13,w+=_*H,w+=k*F,w+=S*U,w+=E*B,u=(w+=A*D)>>>13,w&=8191,w+=R*O,w+=M*P,w+=T*q,w+=C*L,_=f=8191&(u=(u=((u+=(w+=I*N)>>>13)<<2)+u|0)+(f&=8191)|0),k=h+=u>>>=13,S=p&=8191,E=$&=8191,A=b&=8191,R=g&=8191,M=m&=8191,T=y&=8191,C=v&=8191,I=w&=8191,t+=16,r-=16;this.h[0]=_,this.h[1]=k,this.h[2]=S,this.h[3]=E,this.h[4]=A,this.h[5]=R,this.h[6]=M,this.h[7]=T,this.h[8]=C,this.h[9]=I},k.prototype.finish=function(e,t){var r,a,n,o,i=new Uint16Array(10);if(this.leftover){for(o=this.leftover,this.buffer[o++]=1;o<16;o++)this.buffer[o]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(r=this.h[1]>>>13,this.h[1]&=8191,o=2;o<10;o++)this.h[o]+=r,r=this.h[o]>>>13,this.h[o]&=8191;for(this.h[0]+=5*r,r=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=r,r=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=r,i[0]=this.h[0]+5,r=i[0]>>>13,i[0]&=8191,o=1;o<10;o++)i[o]=this.h[o]+r,r=i[o]>>>13,i[o]&=8191;for(i[9]-=8192,a=(1^r)-1,o=0;o<10;o++)i[o]&=a;for(a=~a,o=0;o<10;o++)this.h[o]=this.h[o]&a|i[o];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),n=this.h[0]+this.pad[0],this.h[0]=65535&n,o=1;o<8;o++)n=(this.h[o]+this.pad[o]|0)+(n>>>16)|0,this.h[o]=65535&n;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},k.prototype.update=function(e,t,r){var a,n;if(this.leftover){for((n=16-this.leftover)>r&&(n=r),a=0;a=16&&(n=r-r%16,this.blocks(e,t,n),t+=n,r-=n),r){for(a=0;a=128;){for(x=0;x<16;x++)_=8*x+X,T[x]=r[_+0]<<24|r[_+1]<<16|r[_+2]<<8|r[_+3],C[x]=r[_+4]<<24|r[_+5]<<16|r[_+6]<<8|r[_+7];for(x=0;x<80;x++)if(n=I,o=N,i=L,s=q,c=P,l=O,d=D,B,f=U,h=F,p=H,$=j,b=K,g=W,m=G,z,E=65535&(S=z),A=S>>>16,R=65535&(k=B),M=k>>>16,E+=65535&(S=(K>>>14|P<<18)^(K>>>18|P<<14)^(P>>>9|K<<23)),A+=S>>>16,R+=65535&(k=(P>>>14|K<<18)^(P>>>18|K<<14)^(K>>>9|P<<23)),M+=k>>>16,E+=65535&(S=K&W^~K&G),A+=S>>>16,R+=65535&(k=P&O^~P&D),M+=k>>>16,E+=65535&(S=V[2*x+1]),A+=S>>>16,R+=65535&(k=V[2*x]),M+=k>>>16,k=T[x%16],A+=(S=C[x%16])>>>16,R+=65535&k,M+=k>>>16,R+=(A+=(E+=65535&S)>>>16)>>>16,E=65535&(S=w=65535&E|A<<16),A=S>>>16,R=65535&(k=v=65535&R|(M+=R>>>16)<<16),M=k>>>16,E+=65535&(S=(U>>>28|I<<4)^(I>>>2|U<<30)^(I>>>7|U<<25)),A+=S>>>16,R+=65535&(k=(I>>>28|U<<4)^(U>>>2|I<<30)^(U>>>7|I<<25)),M+=k>>>16,A+=(S=U&F^U&H^F&H)>>>16,R+=65535&(k=I&N^I&L^N&L),M+=k>>>16,u=65535&(R+=(A+=(E+=65535&S)>>>16)>>>16)|(M+=R>>>16)<<16,y=65535&E|A<<16,E=65535&(S=$),A=S>>>16,R=65535&(k=s),M=k>>>16,A+=(S=w)>>>16,R+=65535&(k=v),M+=k>>>16,N=n,L=o,q=i,P=s=65535&(R+=(A+=(E+=65535&S)>>>16)>>>16)|(M+=R>>>16)<<16,O=c,D=l,B=d,I=u,F=f,H=h,j=p,K=$=65535&E|A<<16,W=b,G=g,z=m,U=y,x%16==15)for(_=0;_<16;_++)k=T[_],E=65535&(S=C[_]),A=S>>>16,R=65535&k,M=k>>>16,k=T[(_+9)%16],E+=65535&(S=C[(_+9)%16]),A+=S>>>16,R+=65535&k,M+=k>>>16,v=T[(_+1)%16],E+=65535&(S=((w=C[(_+1)%16])>>>1|v<<31)^(w>>>8|v<<24)^(w>>>7|v<<25)),A+=S>>>16,R+=65535&(k=(v>>>1|w<<31)^(v>>>8|w<<24)^v>>>7),M+=k>>>16,v=T[(_+14)%16],A+=(S=((w=C[(_+14)%16])>>>19|v<<13)^(v>>>29|w<<3)^(w>>>6|v<<26))>>>16,R+=65535&(k=(v>>>19|w<<13)^(w>>>29|v<<3)^v>>>6),M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,T[_]=65535&R|M<<16,C[_]=65535&E|A<<16;E=65535&(S=U),A=S>>>16,R=65535&(k=I),M=k>>>16,k=e[0],A+=(S=t[0])>>>16,R+=65535&k,M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[0]=I=65535&R|M<<16,t[0]=U=65535&E|A<<16,E=65535&(S=F),A=S>>>16,R=65535&(k=N),M=k>>>16,k=e[1],A+=(S=t[1])>>>16,R+=65535&k,M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[1]=N=65535&R|M<<16,t[1]=F=65535&E|A<<16,E=65535&(S=H),A=S>>>16,R=65535&(k=L),M=k>>>16,k=e[2],A+=(S=t[2])>>>16,R+=65535&k,M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[2]=L=65535&R|M<<16,t[2]=H=65535&E|A<<16,E=65535&(S=j),A=S>>>16,R=65535&(k=q),M=k>>>16,k=e[3],A+=(S=t[3])>>>16,R+=65535&k,M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[3]=q=65535&R|M<<16,t[3]=j=65535&E|A<<16,E=65535&(S=K),A=S>>>16,R=65535&(k=P),M=k>>>16,k=e[4],A+=(S=t[4])>>>16,R+=65535&k,M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[4]=P=65535&R|M<<16,t[4]=K=65535&E|A<<16,E=65535&(S=W),A=S>>>16,R=65535&(k=O),M=k>>>16,k=e[5],A+=(S=t[5])>>>16,R+=65535&k,M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[5]=O=65535&R|M<<16,t[5]=W=65535&E|A<<16,E=65535&(S=G),A=S>>>16,R=65535&(k=D),M=k>>>16,k=e[6],A+=(S=t[6])>>>16,R+=65535&k,M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[6]=D=65535&R|M<<16,t[6]=G=65535&E|A<<16,E=65535&(S=z),A=S>>>16,R=65535&(k=B),M=k>>>16,k=e[7],A+=(S=t[7])>>>16,R+=65535&k,M+=k>>>16,M+=(R+=(A+=(E+=65535&S)>>>16)>>>16)>>>16,e[7]=B=65535&R|M<<16,t[7]=z=65535&E|A<<16,X+=128,a-=128}return a}function Y(e,t,r){var a,n=new Int32Array(8),o=new Int32Array(8),i=new Uint8Array(256),s=r;for(n[0]=1779033703,n[1]=3144134277,n[2]=1013904242,n[3]=2773480762,n[4]=1359893119,n[5]=2600822924,n[6]=528734635,n[7]=1541459225,o[0]=4089235720,o[1]=2227873595,o[2]=4271175723,o[3]=1595750129,o[4]=2917565137,o[5]=725511199,o[6]=4215389547,o[7]=327033209,X(n,o,t,r),r%=128,a=0;a=0;--n)Z(e,t,a=r[n/8|0]>>(7&n)&1),J(t,e),J(e,e),Z(e,t,a)}function te(e,r){var a=[t(),t(),t(),t()];M(a[0],d),M(a[1],u),M(a[2],i),D(a[3],d,u),ee(e,a,r)}function re(e,a,n){var o,i=new Uint8Array(64),s=[t(),t(),t(),t()];for(n||r(a,32),Y(i,a,32),i[0]&=248,i[31]&=127,i[31]|=64,te(s,i),Q(e,s),o=0;o<32;o++)a[o+32]=e[o];return 0}var ae=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ne(e,t){var r,a,n,o;for(a=63;a>=32;--a){for(r=0,n=a-32,o=a-12;n>4)*ae[n],r=t[n]>>8,t[n]&=255;for(n=0;n<32;n++)t[n]-=r*ae[n];for(a=0;a<32;a++)t[a+1]+=t[a]>>8,e[a]=255&t[a]}function oe(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;ne(e,r)}function ie(e,r,a,n){var o,i,s=new Uint8Array(64),c=new Uint8Array(64),l=new Uint8Array(64),d=new Float64Array(64),u=[t(),t(),t(),t()];Y(s,n,32),s[0]&=248,s[31]&=127,s[31]|=64;var f=a+64;for(o=0;o>7&&O(e[0],o,e[0]),D(e[3],e[0],e[1]),0)}(h,n))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(de),t=new Uint8Array(ue);return re(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(he(e),e.length!==ue)throw new Error("bad secret key size");for(var t=new Uint8Array(de),r=0;r=0;s--)(n=e[s])&&(i=(o<3?n(i):o>3?n(t,r,i):n(t,r))||i);return o>3&&i&&Object.defineProperty(t,r,i),i},i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return n(t,e),t},s=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.deserialize=e.exports.serialize=e.exports.BinaryReader=e.exports.BinaryWriter=e.exports.BorshError=e.exports.baseDecode=e.exports.baseEncode=void 0;const c=s(parcelRequire("hi2iv")),l=s(parcelRequire("bPvLh")),d=i(parcelRequire("03Zh3")),u=new("function"!=typeof $parcel$global.TextDecoder?d.TextDecoder:$parcel$global.TextDecoder)("utf-8",{fatal:!0});e.exports.baseEncode=function(e){return"string"==typeof e&&(e=r.from(e,"utf8")),l.default.encode(r.from(e))},e.exports.baseDecode=function(e){return r.from(l.default.decode(e))};const f=1024;class h extends Error{addToFieldPath(e){this.fieldPath.splice(0,0,e),this.message=this.originalMessage+": "+this.fieldPath.join(".")}constructor(e){super(e),this.fieldPath=[],this.originalMessage=e}}e.exports.BorshError=h;class p{maybeResize(){this.buf.length<16+this.length&&(this.buf=r.concat([this.buf,r.alloc(f)]))}writeU8(e){this.maybeResize(),this.buf.writeUInt8(e,this.length),this.length+=1}writeU32(e){this.maybeResize(),this.buf.writeUInt32LE(e,this.length),this.length+=4}writeU64(e){this.maybeResize(),this.writeBuffer(r.from(new c.default(e).toArray("le",8)))}writeU128(e){this.maybeResize(),this.writeBuffer(r.from(new c.default(e).toArray("le",16)))}writeBuffer(e){this.buf=r.concat([r.from(this.buf.subarray(0,this.length)),e,r.alloc(f)]),this.length+=e.length}writeString(e){this.maybeResize();const t=r.from(e,"utf8");this.writeU32(t.length),this.writeBuffer(t)}writeFixedArray(e){this.writeBuffer(r.from(e))}writeArray(e,t){this.maybeResize(),this.writeU32(e.length);for(const r of e)this.maybeResize(),t(r)}toArray(){return this.buf.subarray(0,this.length)}constructor(){this.buf=r.alloc(f),this.length=0}}function $(e,t,r){const a=r.value;r.value=function(...e){try{return a.apply(this,e)}catch(e){if(e instanceof RangeError){const t=e.code;if(["ERR_BUFFER_OUT_OF_BOUNDS","ERR_OUT_OF_RANGE"].indexOf(t)>=0)throw new h("Reached the end of buffer when deserializing")}throw e}}}e.exports.BinaryWriter=p;class b{readU8(){const e=this.buf.readUInt8(this.offset);return this.offset+=1,e}readU32(){const e=this.buf.readUInt32LE(this.offset);return this.offset+=4,e}readU64(){const e=this.readBuffer(8);return new c.default(e,"le")}readU128(){const e=this.readBuffer(16);return new c.default(e,"le")}readBuffer(e){if(this.offset+e>this.buf.length)throw new h(`Expected buffer length ${e} isn't within bounds`);const t=this.buf.slice(this.offset,this.offset+e);return this.offset+=e,t}readString(){const e=this.readU32(),t=this.readBuffer(e);try{return u.decode(t)}catch(e){throw new h(`Error decoding UTF-8 string: ${e}`)}}readFixedArray(e){return new Uint8Array(this.readBuffer(e))}readArray(e){const t=this.readU32(),r=Array();for(let a=0;a{m(e,t,r,a[0],n)}));else if(void 0!==a.kind){if("option"!==a.kind)throw new h(`FieldType ${a} unrecognized`);null===r?n.writeU8(0):(n.writeU8(1),m(e,t,r,a.type,n))}else y(e,r,n)}catch(e){throw e instanceof h&&e.addToFieldPath(t),e}}function y(e,t,r){const a=e.get(t.constructor);if(!a)throw new h(`Class ${t.constructor.name} is missing in schema`);if("struct"===a.kind)a.fields.map((([a,n])=>{m(e,a,t[a],n,r)}));else{if("enum"!==a.kind)throw new h(`Unexpected schema kind: ${a.kind} for ${t.constructor.name}`);{const n=t[a.field];for(let o=0;ov(e,t,r[0],a))):w(e,r,a)}catch(e){throw e instanceof h&&e.addToFieldPath(t),e}}function w(e,t,r){const a=e.get(t);if(!a)throw new h(`Class ${t.name} is missing in schema`);if("struct"===a.kind){const a={};for(const[n,o]of e.get(t).fields)a[n]=v(e,n,o,r);return new t(a)}if("enum"===a.kind){const n=r.readU8();if(n>=a.values.length)throw new h(`Enum index: ${n} is out of range`);const[o,i]=a.values[n];return new t({[o]:v(e,o,i,r)})}throw new h(`Unexpected schema kind: ${a.kind} for ${t.constructor.name}`)}o([$],b.prototype,"readU8",null),o([$],b.prototype,"readU32",null),o([$],b.prototype,"readU64",null),o([$],b.prototype,"readU128",null),o([$],b.prototype,"readString",null),o([$],b.prototype,"readFixedArray",null),o([$],b.prototype,"readArray",null),e.exports.BinaryReader=b,e.exports.serialize=function(e,t){const r=new p;return y(e,t,r),r.toArray()},e.exports.deserialize=function(e,t,r){const a=new b(r),n=w(e,t,a);if(a.offsetl)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return p(e)}return f(e,t,r)}function f(e,t,r){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let a=d(r);const n=a.write(e,t);n!==r&&(a=a.slice(0,n));return a}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Z(e,Uint8Array)){const t=new Uint8Array(e);return b(t.buffer,t.byteOffset,t.byteLength)}return $(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Z(e,ArrayBuffer)||e&&Z(e.buffer,ArrayBuffer))return b(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(Z(e,SharedArrayBuffer)||e&&Z(e.buffer,SharedArrayBuffer)))return b(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const a=e.valueOf&&e.valueOf();if(null!=a&&a!==e)return u.from(a,t,r);const n=function(e){if(u.isBuffer(e)){const t=0|g(e.length),r=d(t);return 0===r.length||e.copy(r,0,0,t),r}if(void 0!==e.length)return"number"!=typeof e.length||Q(e.length)?d(0):$(e);if("Buffer"===e.type&&Array.isArray(e.data))return $(e.data)}(e);if(n)return n;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function h(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function p(e){return h(e),d(e<0?0:0|g(e))}function $(e){const t=e.length<0?0:0|g(e.length),r=d(t);for(let a=0;a=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return 0|e}function m(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Z(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,a=arguments.length>2&&!0===arguments[2];if(!a&&0===r)return 0;let n=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return X(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Y(e).length;default:if(n)return a?-1:X(e).length;t=(""+t).toLowerCase(),n=!0}}function y(e,t,r){let a=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,r);case"utf8":case"utf-8":return M(this,t,r);case"ascii":return C(this,t,r);case"latin1":case"binary":return I(this,t,r);case"base64":return R(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,r);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function v(e,t,r){const a=e[t];e[t]=e[r],e[r]=a}function w(e,t,r,a,n){if(0===e.length)return-1;if("string"==typeof r?(a=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Q(r=+r)&&(r=n?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(n)return-1;r=e.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof t&&(t=u.from(t,a)),u.isBuffer(t))return 0===t.length?-1:x(e,t,r,a,n);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):x(e,[t],r,a,n);throw new TypeError("val must be string, number or Buffer")}function x(e,t,r,a,n){let o,i=1,s=e.length,c=t.length;if(void 0!==a&&("ucs2"===(a=String(a).toLowerCase())||"ucs-2"===a||"utf16le"===a||"utf-16le"===a)){if(e.length<2||t.length<2)return-1;i=2,s/=2,c/=2,r/=2}function l(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(n){let a=-1;for(o=r;os&&(r=s-c),o=r;o>=0;o--){let r=!0;for(let a=0;an&&(a=n):a=n;const o=t.length;let i;for(a>o/2&&(a=o/2),i=0;i>8,n=r%256,o.push(n),o.push(a);return o}(t,e.length-r),e,r,a)}function R(e,t,r){return 0===t&&r===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,r))}function M(e,t,r){r=Math.min(e.length,r);const a=[];let n=t;for(;n239?4:t>223?3:t>191?2:1;if(n+i<=r){let r,a,s,c;switch(i){case 1:t<128&&(o=t);break;case 2:r=e[n+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(o=c));break;case 3:r=e[n+1],a=e[n+2],128==(192&r)&&128==(192&a)&&(c=(15&t)<<12|(63&r)<<6|63&a,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:r=e[n+1],a=e[n+2],s=e[n+3],128==(192&r)&&128==(192&a)&&128==(192&s)&&(c=(15&t)<<18|(63&r)<<12|(63&a)<<6|63&s,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,i=1):o>65535&&(o-=65536,a.push(o>>>10&1023|55296),o=56320|1023&o),a.push(o),n+=i}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let r="",a=0;for(;aa.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(a,n)):Uint8Array.prototype.set.call(a,t,n);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(a,n)}n+=t.length}return a},u.byteLength=m,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""},c&&(u.prototype[c]=u.prototype.inspect),u.prototype.compare=function(e,t,r,a,n){if(Z(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===a&&(a=0),void 0===n&&(n=this.length),t<0||r>e.length||a<0||n>this.length)throw new RangeError("out of range index");if(a>=n&&t>=r)return 0;if(a>=n)return-1;if(t>=r)return 1;if(this===e)return 0;let o=(n>>>=0)-(a>>>=0),i=(r>>>=0)-(t>>>=0);const s=Math.min(o,i),c=this.slice(a,n),l=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===a&&(a="utf8")):(a=r,r=void 0)}const n=this.length-t;if((void 0===r||r>n)&&(r=n),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");a||(a="utf8");let o=!1;for(;;)switch(a){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return k(this,e,t,r);case"ascii":case"latin1":case"binary":return S(this,e,t,r);case"base64":return E(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+a);a=(""+a).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function C(e,t,r){let a="";r=Math.min(e.length,r);for(let n=t;na)&&(r=a);let n="";for(let a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,r,a,n,o){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||te.length)throw new RangeError("Index out of range")}function O(e,t,r,a,n){W(t,a,n,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,r}function D(e,t,r,a,n){W(t,a,n,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o>>=8,e[r+6]=o,o>>=8,e[r+5]=o,o>>=8,e[r+4]=o;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=i,i>>=8,e[r+2]=i,i>>=8,e[r+1]=i,i>>=8,e[r]=i,r+8}function B(e,t,r,a,n,o){if(r+a>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(e,t,r,a,n){return t=+t,r>>>=0,n||B(e,0,r,4),s.write(e,t,r,a,23,4),r+4}function F(e,t,r,a,n){return t=+t,r>>>=0,n||B(e,0,r,8),s.write(e,t,r,a,52,8),r+8}u.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||q(e,t,this.length);let a=this[e],n=1,o=0;for(;++o>>=0,t>>>=0,r||q(e,t,this.length);let a=this[e+--t],n=1;for(;t>0&&(n*=256);)a+=this[e+--t]*n;return a},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||q(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||q(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||q(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||q(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||q(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=te((function(e){G(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const a=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,n=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(a)+(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const a=t*2**24+65536*this[++e]+256*this[++e]+this[++e],n=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(a)<>>=0,t>>>=0,r||q(e,t,this.length);let a=this[e],n=1,o=0;for(;++o=n&&(a-=Math.pow(2,8*t)),a},u.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||q(e,t,this.length);let a=t,n=1,o=this[e+--a];for(;a>0&&(n*=256);)o+=this[e+--a]*n;return n*=128,o>=n&&(o-=Math.pow(2,8*t)),o},u.prototype.readInt8=function(e,t){return e>>>=0,t||q(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||q(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){e>>>=0,t||q(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||q(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||q(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=te((function(e){G(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const a=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(a)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||z(e,this.length-8);const a=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(a)<>>=0,t||q(e,4,this.length),s.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||q(e,4,this.length),s.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||q(e,8,this.length),s.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||q(e,8,this.length),s.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,r,a){if(e=+e,t>>>=0,r>>>=0,!a){P(this,e,t,r,Math.pow(2,8*r)-1,0)}let n=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,!a){P(this,e,t,r,Math.pow(2,8*r)-1,0)}let n=r-1,o=1;for(this[t+n]=255&e;--n>=0&&(o*=256);)this[t+n]=e/o&255;return t+r},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigUInt64LE=te((function(e,t=0){return O(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=te((function(e,t=0){return D(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(e,t,r,a){if(e=+e,t>>>=0,!a){const a=Math.pow(2,8*r-1);P(this,e,t,r,a-1,-a)}let n=0,o=1,i=0;for(this[t]=255&e;++n>0)-i&255;return t+r},u.prototype.writeIntBE=function(e,t,r,a){if(e=+e,t>>>=0,!a){const a=Math.pow(2,8*r-1);P(this,e,t,r,a-1,-a)}let n=r-1,o=1,i=0;for(this[t+n]=255&e;--n>=0&&(o*=256);)e<0&&0===i&&0!==this[t+n+1]&&(i=1),this[t+n]=(e/o>>0)-i&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigInt64LE=te((function(e,t=0){return O(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=te((function(e,t=0){return D(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return F(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return F(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,a){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&a=this.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(n=t;n=a+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function W(e,t,r,a,n,o){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${a} and < 2${a} ** ${8*(o+1)}${a}`:`>= -(2${a} ** ${8*(o+1)-1}${a}) and < 2 ** ${8*(o+1)-1}${a}`:`>= ${t}${a} and <= ${r}${a}`,new H.ERR_OUT_OF_RANGE("value",n,e)}!function(e,t,r){G(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||z(t,e.length-(r+1))}(a,n,o)}function G(e,t){if("number"!=typeof e)throw new H.ERR_INVALID_ARG_TYPE(t,"number",e)}function z(e,t,r){if(Math.floor(e)!==e)throw G(e,r),new H.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new H.ERR_BUFFER_OUT_OF_BOUNDS;throw new H.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}j("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),j("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),j("ERR_OUT_OF_RANGE",(function(e,t,r){let a=`The value of "${e}" is out of range.`,n=r;return Number.isInteger(r)&&Math.abs(r)>2**32?n=K(String(r)):"bigint"==typeof r&&(n=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(n=K(n)),n+="n"),a+=` It must be ${t}. Received ${n}`,a}),RangeError);const V=/[^+/0-9A-Za-z-_]/g;function X(e,t){let r;t=t||1/0;const a=e.length;let n=null;const o=[];for(let i=0;i55295&&r<57344){if(!n){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(i+1===a){(t-=3)>-1&&o.push(239,191,189);continue}n=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&(t-=3)>-1&&o.push(239,191,189);if(n=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function Y(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(V,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function J(e,t,r,a){let n;for(n=0;n=t.length||n>=e.length);++n)t[n+r]=e[n];return n}function Z(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Q(e){return e!=e}const ee=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const a=16*r;for(let n=0;n<16;++n)t[a+n]=e[r]+e[n]}return t}();function te(e){return"undefined"==typeof BigInt?re:e}function re(){throw new Error("BigInt not supported")}})),parcelRequire.register("1XRzf",(function(e,t){var r,a;$parcel$export(e.exports,"toByteArray",(function(){return r}),(function(e){return r=e})),$parcel$export(e.exports,"fromByteArray",(function(){return a}),(function(e){return a=e})),r=function(e){var t,r,a=d(e),n=a[0],s=a[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,n,s)),l=0,u=s>0?n-4:n;for(r=0;r>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(r)]<<2|o[e.charCodeAt(r+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(r)]<<10|o[e.charCodeAt(r+1)]<<4|o[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},a=function(e){for(var t,r=e.length,a=r%3,o=[],i=16383,s=0,c=r-a;sc?c:s+i));1===a?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===a&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,l=s.length;c0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function u(e,t,r){for(var a,o,i=[],s=t;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return i.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63})),parcelRequire.register("5jxTr",(function(e,t){ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */var r,a;$parcel$export(e.exports,"read",(function(){return r}),(function(e){return r=e})),$parcel$export(e.exports,"write",(function(){return a}),(function(e){return a=e})),r=function(e,t,r,a,n){var o,i,s=8*n-a-1,c=(1<>1,d=-7,u=r?n-1:0,f=r?-1:1,h=e[t+u];for(u+=f,o=h&(1<<-d)-1,h>>=-d,d+=s;d>0;o=256*o+e[t+u],u+=f,d-=8);for(i=o&(1<<-d)-1,o>>=-d,d+=a;d>0;i=256*i+e[t+u],u+=f,d-=8);if(0===o)o=1-l;else{if(o===c)return i?NaN:1/0*(h?-1:1);i+=Math.pow(2,a),o-=l}return(h?-1:1)*i*Math.pow(2,o-a)},a=function(e,t,r,a,n,o){var i,s,c,l=8*o-n-1,d=(1<>1,f=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,h=a?0:o-1,p=a?1:-1,$=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=d):(i=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-i))<1&&(i--,c*=2),(t+=i+u>=1?f/c:f*Math.pow(2,1-u))*c>=2&&(i++,c/=2),i+u>=d?(s=0,i=d):i+u>=1?(s=(t*c-1)*Math.pow(2,n),i+=u):(s=t*Math.pow(2,u-1)*Math.pow(2,n),i=0));n>=8;e[r+h]=255&s,h+=p,s/=256,n-=8);for(i=i<0;e[r+h]=255&i,h+=p,i/=256,l-=8);e[r+h-p]|=128*$}})),parcelRequire.register("hi2iv",(function(e,t){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function a(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function n(e,t,r){if(n.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=n:t.BN=n,n.BN=n,n.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:parcelRequire("8UCNu").Buffer}catch(e){}function i(e,t){var a=e.charCodeAt(t);return a>=48&&a<=57?a-48:a>=65&&a<=70?a-55:a>=97&&a<=102?a-87:void r(!1,"Invalid character in "+e)}function s(e,t,r){var a=i(e,r);return r-1>=t&&(a|=i(e,r-1)<<4),a}function c(e,t,a,n){for(var o=0,i=0,s=Math.min(e.length,a),c=t;c=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&i0?e:t},n.min=function(e,t){return e.cmp(t)<0?e:t},n.prototype._init=function(e,t,a){if("number"==typeof e)return this._initNumber(e,t,a);if("object"==typeof e)return this._initArray(e,t,a);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var n=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n=0;n-=3)i=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[o]|=i<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===a)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this._strip()},n.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var a=0;a=t;a-=2)n=s(e,t,a)<=18?(o-=18,i+=1,this.words[i]|=n>>>26):o+=8;else for(a=(e.length-t)%2==0?t+1:t;a=18?(o-=18,i+=1,this.words[i]|=n>>>26):o+=8;this._strip()},n.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var a=0,n=1;n<=67108863;n*=t)a++;a--,n=n/t|0;for(var o=e.length-r,i=o%a,s=Math.min(o,o-i)+r,l=0,d=r;d1&&0===this.words[this.length-1];)this.length--;return this._normSign()},n.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{n.prototype[Symbol.for("nodejs.util.inspect.custom")]=d}catch(e){n.prototype.inspect=d}else n.prototype.inspect=d;function d(){return(this.red?""}var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];n.prototype.toString=function(e,t){var a;if(t=0|t||1,16===(e=e||10)||"hex"===e){a="";for(var n=0,o=0,i=0;i>>24-n&16777215)||i!==this.length-1?u[6-c.length]+c+a:c+a,(n+=2)>=26&&(n-=26,i--)}for(0!==o&&(a=o.toString(16)+a);a.length%t!=0;)a="0"+a;return 0!==this.negative&&(a="-"+a),a}if(e===(0|e)&&e>=2&&e<=36){var l=f[e],d=h[e];a="";var p=this.clone();for(p.negative=0;!p.isZero();){var $=p.modrn(d).toString(e);a=(p=p.idivn(d)).isZero()?$+a:u[l-$.length]+$+a}for(this.isZero()&&(a="0"+a);a.length%t!=0;)a="0"+a;return 0!==this.negative&&(a="-"+a),a}r(!1,"Base should be between 2 and 36")},n.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},n.prototype.toJSON=function(){return this.toString(16,2)},o&&(n.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),n.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function p(e,t,r){r.negative=t.negative^e.negative;var a=e.length+t.length|0;r.length=a,a=a-1|0;var n=0|e.words[0],o=0|t.words[0],i=n*o,s=67108863&i,c=i/67108864|0;r.words[0]=s;for(var l=1;l>>26,u=67108863&c,f=Math.min(l,t.length-1),h=Math.max(0,l-e.length+1);h<=f;h++){var p=l-h|0;d+=(i=(n=0|e.words[p])*(o=0|t.words[h])+u)/67108864|0,u=67108863&i}r.words[l]=0|u,c=0|d}return 0!==c?r.words[l]=0|c:r.length--,r._strip()}n.prototype.toArrayLike=function(e,t,a){this._strip();var n=this.byteLength(),o=a||Math.max(1,n);r(n<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var i=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](i,n),i},n.prototype._toArrayLikeLE=function(e,t){for(var r=0,a=0,n=0,o=0;n>8&255),r>16&255),6===o?(r>24&255),a=0,o=0):(a=i>>>24,o+=2)}if(r=0&&(e[r--]=i>>8&255),r>=0&&(e[r--]=i>>16&255),6===o?(r>=0&&(e[r--]=i>>24&255),a=0,o=0):(a=i>>>24,o+=2)}if(r>=0)for(e[r--]=a;r>=0;)e[r--]=0},Math.clz32?n.prototype._countBits=function(e){return 32-Math.clz32(e)}:n.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},n.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},n.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},n.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},n.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},n.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},n.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},n.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var a=0;ae.length?this.clone().ixor(e):e.clone().ixor(this)},n.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},n.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),a=e%26;this._expand(t),a>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-a),this._strip()},n.prototype.notn=function(e){return this.clone().inotn(e)},n.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var a=e/26|0,n=e%26;return this._expand(a+1),this.words[a]=t?this.words[a]|1<e.length?(r=this,a=e):(r=e,a=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},n.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,a,n=this.cmp(e);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,a=e):(r=e,a=this);for(var o=0,i=0;i>26,this.words[i]=67108863&t;for(;0!==o&&i>26,this.words[i]=67108863&t;if(0===o&&i>>13,h=0|i[1],p=8191&h,$=h>>>13,b=0|i[2],g=8191&b,m=b>>>13,y=0|i[3],v=8191&y,w=y>>>13,x=0|i[4],_=8191&x,k=x>>>13,S=0|i[5],E=8191&S,A=S>>>13,R=0|i[6],M=8191&R,T=R>>>13,C=0|i[7],I=8191&C,N=C>>>13,L=0|i[8],q=8191&L,P=L>>>13,O=0|i[9],D=8191&O,B=O>>>13,U=0|s[0],F=8191&U,H=U>>>13,j=0|s[1],K=8191&j,W=j>>>13,G=0|s[2],z=8191&G,V=G>>>13,X=0|s[3],Y=8191&X,J=X>>>13,Z=0|s[4],Q=8191&Z,ee=Z>>>13,te=0|s[5],re=8191&te,ae=te>>>13,ne=0|s[6],oe=8191&ne,ie=ne>>>13,se=0|s[7],ce=8191&se,le=se>>>13,de=0|s[8],ue=8191&de,fe=de>>>13,he=0|s[9],pe=8191&he,$e=he>>>13;r.negative=e.negative^t.negative,r.length=19;var be=(l+(a=Math.imul(u,F))|0)+((8191&(n=(n=Math.imul(u,H))+Math.imul(f,F)|0))<<13)|0;l=((o=Math.imul(f,H))+(n>>>13)|0)+(be>>>26)|0,be&=67108863,a=Math.imul(p,F),n=(n=Math.imul(p,H))+Math.imul($,F)|0,o=Math.imul($,H);var ge=(l+(a=a+Math.imul(u,K)|0)|0)+((8191&(n=(n=n+Math.imul(u,W)|0)+Math.imul(f,K)|0))<<13)|0;l=((o=o+Math.imul(f,W)|0)+(n>>>13)|0)+(ge>>>26)|0,ge&=67108863,a=Math.imul(g,F),n=(n=Math.imul(g,H))+Math.imul(m,F)|0,o=Math.imul(m,H),a=a+Math.imul(p,K)|0,n=(n=n+Math.imul(p,W)|0)+Math.imul($,K)|0,o=o+Math.imul($,W)|0;var me=(l+(a=a+Math.imul(u,z)|0)|0)+((8191&(n=(n=n+Math.imul(u,V)|0)+Math.imul(f,z)|0))<<13)|0;l=((o=o+Math.imul(f,V)|0)+(n>>>13)|0)+(me>>>26)|0,me&=67108863,a=Math.imul(v,F),n=(n=Math.imul(v,H))+Math.imul(w,F)|0,o=Math.imul(w,H),a=a+Math.imul(g,K)|0,n=(n=n+Math.imul(g,W)|0)+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,a=a+Math.imul(p,z)|0,n=(n=n+Math.imul(p,V)|0)+Math.imul($,z)|0,o=o+Math.imul($,V)|0;var ye=(l+(a=a+Math.imul(u,Y)|0)|0)+((8191&(n=(n=n+Math.imul(u,J)|0)+Math.imul(f,Y)|0))<<13)|0;l=((o=o+Math.imul(f,J)|0)+(n>>>13)|0)+(ye>>>26)|0,ye&=67108863,a=Math.imul(_,F),n=(n=Math.imul(_,H))+Math.imul(k,F)|0,o=Math.imul(k,H),a=a+Math.imul(v,K)|0,n=(n=n+Math.imul(v,W)|0)+Math.imul(w,K)|0,o=o+Math.imul(w,W)|0,a=a+Math.imul(g,z)|0,n=(n=n+Math.imul(g,V)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,V)|0,a=a+Math.imul(p,Y)|0,n=(n=n+Math.imul(p,J)|0)+Math.imul($,Y)|0,o=o+Math.imul($,J)|0;var ve=(l+(a=a+Math.imul(u,Q)|0)|0)+((8191&(n=(n=n+Math.imul(u,ee)|0)+Math.imul(f,Q)|0))<<13)|0;l=((o=o+Math.imul(f,ee)|0)+(n>>>13)|0)+(ve>>>26)|0,ve&=67108863,a=Math.imul(E,F),n=(n=Math.imul(E,H))+Math.imul(A,F)|0,o=Math.imul(A,H),a=a+Math.imul(_,K)|0,n=(n=n+Math.imul(_,W)|0)+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,a=a+Math.imul(v,z)|0,n=(n=n+Math.imul(v,V)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,V)|0,a=a+Math.imul(g,Y)|0,n=(n=n+Math.imul(g,J)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,J)|0,a=a+Math.imul(p,Q)|0,n=(n=n+Math.imul(p,ee)|0)+Math.imul($,Q)|0,o=o+Math.imul($,ee)|0;var we=(l+(a=a+Math.imul(u,re)|0)|0)+((8191&(n=(n=n+Math.imul(u,ae)|0)+Math.imul(f,re)|0))<<13)|0;l=((o=o+Math.imul(f,ae)|0)+(n>>>13)|0)+(we>>>26)|0,we&=67108863,a=Math.imul(M,F),n=(n=Math.imul(M,H))+Math.imul(T,F)|0,o=Math.imul(T,H),a=a+Math.imul(E,K)|0,n=(n=n+Math.imul(E,W)|0)+Math.imul(A,K)|0,o=o+Math.imul(A,W)|0,a=a+Math.imul(_,z)|0,n=(n=n+Math.imul(_,V)|0)+Math.imul(k,z)|0,o=o+Math.imul(k,V)|0,a=a+Math.imul(v,Y)|0,n=(n=n+Math.imul(v,J)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,J)|0,a=a+Math.imul(g,Q)|0,n=(n=n+Math.imul(g,ee)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,ee)|0,a=a+Math.imul(p,re)|0,n=(n=n+Math.imul(p,ae)|0)+Math.imul($,re)|0,o=o+Math.imul($,ae)|0;var xe=(l+(a=a+Math.imul(u,oe)|0)|0)+((8191&(n=(n=n+Math.imul(u,ie)|0)+Math.imul(f,oe)|0))<<13)|0;l=((o=o+Math.imul(f,ie)|0)+(n>>>13)|0)+(xe>>>26)|0,xe&=67108863,a=Math.imul(I,F),n=(n=Math.imul(I,H))+Math.imul(N,F)|0,o=Math.imul(N,H),a=a+Math.imul(M,K)|0,n=(n=n+Math.imul(M,W)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,a=a+Math.imul(E,z)|0,n=(n=n+Math.imul(E,V)|0)+Math.imul(A,z)|0,o=o+Math.imul(A,V)|0,a=a+Math.imul(_,Y)|0,n=(n=n+Math.imul(_,J)|0)+Math.imul(k,Y)|0,o=o+Math.imul(k,J)|0,a=a+Math.imul(v,Q)|0,n=(n=n+Math.imul(v,ee)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,ee)|0,a=a+Math.imul(g,re)|0,n=(n=n+Math.imul(g,ae)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ae)|0,a=a+Math.imul(p,oe)|0,n=(n=n+Math.imul(p,ie)|0)+Math.imul($,oe)|0,o=o+Math.imul($,ie)|0;var _e=(l+(a=a+Math.imul(u,ce)|0)|0)+((8191&(n=(n=n+Math.imul(u,le)|0)+Math.imul(f,ce)|0))<<13)|0;l=((o=o+Math.imul(f,le)|0)+(n>>>13)|0)+(_e>>>26)|0,_e&=67108863,a=Math.imul(q,F),n=(n=Math.imul(q,H))+Math.imul(P,F)|0,o=Math.imul(P,H),a=a+Math.imul(I,K)|0,n=(n=n+Math.imul(I,W)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,W)|0,a=a+Math.imul(M,z)|0,n=(n=n+Math.imul(M,V)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,V)|0,a=a+Math.imul(E,Y)|0,n=(n=n+Math.imul(E,J)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,J)|0,a=a+Math.imul(_,Q)|0,n=(n=n+Math.imul(_,ee)|0)+Math.imul(k,Q)|0,o=o+Math.imul(k,ee)|0,a=a+Math.imul(v,re)|0,n=(n=n+Math.imul(v,ae)|0)+Math.imul(w,re)|0,o=o+Math.imul(w,ae)|0,a=a+Math.imul(g,oe)|0,n=(n=n+Math.imul(g,ie)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,ie)|0,a=a+Math.imul(p,ce)|0,n=(n=n+Math.imul(p,le)|0)+Math.imul($,ce)|0,o=o+Math.imul($,le)|0;var ke=(l+(a=a+Math.imul(u,ue)|0)|0)+((8191&(n=(n=n+Math.imul(u,fe)|0)+Math.imul(f,ue)|0))<<13)|0;l=((o=o+Math.imul(f,fe)|0)+(n>>>13)|0)+(ke>>>26)|0,ke&=67108863,a=Math.imul(D,F),n=(n=Math.imul(D,H))+Math.imul(B,F)|0,o=Math.imul(B,H),a=a+Math.imul(q,K)|0,n=(n=n+Math.imul(q,W)|0)+Math.imul(P,K)|0,o=o+Math.imul(P,W)|0,a=a+Math.imul(I,z)|0,n=(n=n+Math.imul(I,V)|0)+Math.imul(N,z)|0,o=o+Math.imul(N,V)|0,a=a+Math.imul(M,Y)|0,n=(n=n+Math.imul(M,J)|0)+Math.imul(T,Y)|0,o=o+Math.imul(T,J)|0,a=a+Math.imul(E,Q)|0,n=(n=n+Math.imul(E,ee)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,ee)|0,a=a+Math.imul(_,re)|0,n=(n=n+Math.imul(_,ae)|0)+Math.imul(k,re)|0,o=o+Math.imul(k,ae)|0,a=a+Math.imul(v,oe)|0,n=(n=n+Math.imul(v,ie)|0)+Math.imul(w,oe)|0,o=o+Math.imul(w,ie)|0,a=a+Math.imul(g,ce)|0,n=(n=n+Math.imul(g,le)|0)+Math.imul(m,ce)|0,o=o+Math.imul(m,le)|0,a=a+Math.imul(p,ue)|0,n=(n=n+Math.imul(p,fe)|0)+Math.imul($,ue)|0,o=o+Math.imul($,fe)|0;var Se=(l+(a=a+Math.imul(u,pe)|0)|0)+((8191&(n=(n=n+Math.imul(u,$e)|0)+Math.imul(f,pe)|0))<<13)|0;l=((o=o+Math.imul(f,$e)|0)+(n>>>13)|0)+(Se>>>26)|0,Se&=67108863,a=Math.imul(D,K),n=(n=Math.imul(D,W))+Math.imul(B,K)|0,o=Math.imul(B,W),a=a+Math.imul(q,z)|0,n=(n=n+Math.imul(q,V)|0)+Math.imul(P,z)|0,o=o+Math.imul(P,V)|0,a=a+Math.imul(I,Y)|0,n=(n=n+Math.imul(I,J)|0)+Math.imul(N,Y)|0,o=o+Math.imul(N,J)|0,a=a+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,a=a+Math.imul(E,re)|0,n=(n=n+Math.imul(E,ae)|0)+Math.imul(A,re)|0,o=o+Math.imul(A,ae)|0,a=a+Math.imul(_,oe)|0,n=(n=n+Math.imul(_,ie)|0)+Math.imul(k,oe)|0,o=o+Math.imul(k,ie)|0,a=a+Math.imul(v,ce)|0,n=(n=n+Math.imul(v,le)|0)+Math.imul(w,ce)|0,o=o+Math.imul(w,le)|0,a=a+Math.imul(g,ue)|0,n=(n=n+Math.imul(g,fe)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,fe)|0;var Ee=(l+(a=a+Math.imul(p,pe)|0)|0)+((8191&(n=(n=n+Math.imul(p,$e)|0)+Math.imul($,pe)|0))<<13)|0;l=((o=o+Math.imul($,$e)|0)+(n>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,a=Math.imul(D,z),n=(n=Math.imul(D,V))+Math.imul(B,z)|0,o=Math.imul(B,V),a=a+Math.imul(q,Y)|0,n=(n=n+Math.imul(q,J)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,J)|0,a=a+Math.imul(I,Q)|0,n=(n=n+Math.imul(I,ee)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,ee)|0,a=a+Math.imul(M,re)|0,n=(n=n+Math.imul(M,ae)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ae)|0,a=a+Math.imul(E,oe)|0,n=(n=n+Math.imul(E,ie)|0)+Math.imul(A,oe)|0,o=o+Math.imul(A,ie)|0,a=a+Math.imul(_,ce)|0,n=(n=n+Math.imul(_,le)|0)+Math.imul(k,ce)|0,o=o+Math.imul(k,le)|0,a=a+Math.imul(v,ue)|0,n=(n=n+Math.imul(v,fe)|0)+Math.imul(w,ue)|0,o=o+Math.imul(w,fe)|0;var Ae=(l+(a=a+Math.imul(g,pe)|0)|0)+((8191&(n=(n=n+Math.imul(g,$e)|0)+Math.imul(m,pe)|0))<<13)|0;l=((o=o+Math.imul(m,$e)|0)+(n>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,a=Math.imul(D,Y),n=(n=Math.imul(D,J))+Math.imul(B,Y)|0,o=Math.imul(B,J),a=a+Math.imul(q,Q)|0,n=(n=n+Math.imul(q,ee)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,ee)|0,a=a+Math.imul(I,re)|0,n=(n=n+Math.imul(I,ae)|0)+Math.imul(N,re)|0,o=o+Math.imul(N,ae)|0,a=a+Math.imul(M,oe)|0,n=(n=n+Math.imul(M,ie)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ie)|0,a=a+Math.imul(E,ce)|0,n=(n=n+Math.imul(E,le)|0)+Math.imul(A,ce)|0,o=o+Math.imul(A,le)|0,a=a+Math.imul(_,ue)|0,n=(n=n+Math.imul(_,fe)|0)+Math.imul(k,ue)|0,o=o+Math.imul(k,fe)|0;var Re=(l+(a=a+Math.imul(v,pe)|0)|0)+((8191&(n=(n=n+Math.imul(v,$e)|0)+Math.imul(w,pe)|0))<<13)|0;l=((o=o+Math.imul(w,$e)|0)+(n>>>13)|0)+(Re>>>26)|0,Re&=67108863,a=Math.imul(D,Q),n=(n=Math.imul(D,ee))+Math.imul(B,Q)|0,o=Math.imul(B,ee),a=a+Math.imul(q,re)|0,n=(n=n+Math.imul(q,ae)|0)+Math.imul(P,re)|0,o=o+Math.imul(P,ae)|0,a=a+Math.imul(I,oe)|0,n=(n=n+Math.imul(I,ie)|0)+Math.imul(N,oe)|0,o=o+Math.imul(N,ie)|0,a=a+Math.imul(M,ce)|0,n=(n=n+Math.imul(M,le)|0)+Math.imul(T,ce)|0,o=o+Math.imul(T,le)|0,a=a+Math.imul(E,ue)|0,n=(n=n+Math.imul(E,fe)|0)+Math.imul(A,ue)|0,o=o+Math.imul(A,fe)|0;var Me=(l+(a=a+Math.imul(_,pe)|0)|0)+((8191&(n=(n=n+Math.imul(_,$e)|0)+Math.imul(k,pe)|0))<<13)|0;l=((o=o+Math.imul(k,$e)|0)+(n>>>13)|0)+(Me>>>26)|0,Me&=67108863,a=Math.imul(D,re),n=(n=Math.imul(D,ae))+Math.imul(B,re)|0,o=Math.imul(B,ae),a=a+Math.imul(q,oe)|0,n=(n=n+Math.imul(q,ie)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,ie)|0,a=a+Math.imul(I,ce)|0,n=(n=n+Math.imul(I,le)|0)+Math.imul(N,ce)|0,o=o+Math.imul(N,le)|0,a=a+Math.imul(M,ue)|0,n=(n=n+Math.imul(M,fe)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,fe)|0;var Te=(l+(a=a+Math.imul(E,pe)|0)|0)+((8191&(n=(n=n+Math.imul(E,$e)|0)+Math.imul(A,pe)|0))<<13)|0;l=((o=o+Math.imul(A,$e)|0)+(n>>>13)|0)+(Te>>>26)|0,Te&=67108863,a=Math.imul(D,oe),n=(n=Math.imul(D,ie))+Math.imul(B,oe)|0,o=Math.imul(B,ie),a=a+Math.imul(q,ce)|0,n=(n=n+Math.imul(q,le)|0)+Math.imul(P,ce)|0,o=o+Math.imul(P,le)|0,a=a+Math.imul(I,ue)|0,n=(n=n+Math.imul(I,fe)|0)+Math.imul(N,ue)|0,o=o+Math.imul(N,fe)|0;var Ce=(l+(a=a+Math.imul(M,pe)|0)|0)+((8191&(n=(n=n+Math.imul(M,$e)|0)+Math.imul(T,pe)|0))<<13)|0;l=((o=o+Math.imul(T,$e)|0)+(n>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,a=Math.imul(D,ce),n=(n=Math.imul(D,le))+Math.imul(B,ce)|0,o=Math.imul(B,le),a=a+Math.imul(q,ue)|0,n=(n=n+Math.imul(q,fe)|0)+Math.imul(P,ue)|0,o=o+Math.imul(P,fe)|0;var Ie=(l+(a=a+Math.imul(I,pe)|0)|0)+((8191&(n=(n=n+Math.imul(I,$e)|0)+Math.imul(N,pe)|0))<<13)|0;l=((o=o+Math.imul(N,$e)|0)+(n>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,a=Math.imul(D,ue),n=(n=Math.imul(D,fe))+Math.imul(B,ue)|0,o=Math.imul(B,fe);var Ne=(l+(a=a+Math.imul(q,pe)|0)|0)+((8191&(n=(n=n+Math.imul(q,$e)|0)+Math.imul(P,pe)|0))<<13)|0;l=((o=o+Math.imul(P,$e)|0)+(n>>>13)|0)+(Ne>>>26)|0,Ne&=67108863;var Le=(l+(a=Math.imul(D,pe))|0)+((8191&(n=(n=Math.imul(D,$e))+Math.imul(B,pe)|0))<<13)|0;return l=((o=Math.imul(B,$e))+(n>>>13)|0)+(Le>>>26)|0,Le&=67108863,c[0]=be,c[1]=ge,c[2]=me,c[3]=ye,c[4]=ve,c[5]=we,c[6]=xe,c[7]=_e,c[8]=ke,c[9]=Se,c[10]=Ee,c[11]=Ae,c[12]=Re,c[13]=Me,c[14]=Te,c[15]=Ce,c[16]=Ie,c[17]=Ne,c[18]=Le,0!==l&&(c[19]=l,r.length++),r};function b(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var a=0,n=0,o=0;o>>26)|0)>>>26,i&=67108863}r.words[o]=s,a=i,i=n}return 0!==a?r.words[o]=a:r.length--,r._strip()}function g(e,t,r){return b(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||($=p),n.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?$(this,e,t):r<63?p(this,e,t):r<1024?b(this,e,t):g(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=n.prototype._countBits(e)-1,a=0;a>=1;return a},m.prototype.permute=function(e,t,r,a,n,o){for(var i=0;i>>=1)n++;return 1<>>=13,a[2*i+1]=8191&o,o>>>=13;for(i=2*t;i>=26,a+=o/67108864|0,a+=i>>>26,this.words[n]=67108863&i}return 0!==a&&(this.words[n]=a,this.length++),t?this.ineg():this},n.prototype.muln=function(e){return this.clone().imuln(e)},n.prototype.sqr=function(){return this.mul(this)},n.prototype.isqr=function(){return this.imul(this.clone())},n.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>n&1}return t}(e);if(0===t.length)return new n(1);for(var r=this,a=0;a=0);var t,a=e%26,n=(e-a)/26,o=67108863>>>26-a<<26-a;if(0!==a){var i=0;for(t=0;t>>26-a}i&&(this.words[t]=i,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0),n=t?(t-t%26)/26:0;var o=e%26,i=Math.min((e-o)/26,this.length),s=67108863^67108863>>>o<i)for(this.length-=i,l=0;l=0&&(0!==d||l>=n);l--){var u=0|this.words[l];this.words[l]=d<<26-o|u>>>o,d=u&s}return c&&0!==d&&(c.words[c.length++]=d),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},n.prototype.ishrn=function(e,t,a){return r(0===this.negative),this.iushrn(e,t,a)},n.prototype.shln=function(e){return this.clone().ishln(e)},n.prototype.ushln=function(e){return this.clone().iushln(e)},n.prototype.shrn=function(e){return this.clone().ishrn(e)},n.prototype.ushrn=function(e){return this.clone().iushrn(e)},n.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,a=(e-t)/26,n=1<=0);var t=e%26,a=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=a)return this;if(0!==t&&a++,this.length=Math.min(a,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},n.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[n+a]=67108863&o}for(;n>26,this.words[n+a]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this._strip()},n.prototype._wordDiv=function(e,t){var r=(this.length,e.length),a=this.clone(),o=e,i=0|o.words[o.length-1];0!==(r=26-this._countBits(i))&&(o=o.ushln(r),a.iushln(r),i=0|o.words[o.length-1]);var s,c=a.length-o.length;if("mod"!==t){(s=new n(null)).length=c+1,s.words=new Array(s.length);for(var l=0;l=0;u--){var f=67108864*(0|a.words[o.length+u])+(0|a.words[o.length+u-1]);for(f=Math.min(f/i|0,67108863),a._ishlnsubmul(o,f,u);0!==a.negative;)f--,a.negative=0,a._ishlnsubmul(o,1,u),a.isZero()||(a.negative^=1);s&&(s.words[u]=f)}return s&&s._strip(),a._strip(),"div"!==t&&0!==r&&a.iushrn(r),{div:s||null,mod:a}},n.prototype.divmod=function(e,t,a){return r(!e.isZero()),this.isZero()?{div:new n(0),mod:new n(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(i=s.mod.neg(),a&&0!==i.negative&&i.iadd(e)),{div:o,mod:i}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(i=s.mod.neg(),a&&0!==i.negative&&i.isub(e)),{div:s.div,mod:i}):e.length>this.length||this.cmp(e)<0?{div:new n(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new n(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new n(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,i,s},n.prototype.div=function(e){return this.divmod(e,"div",!1).div},n.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},n.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},n.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,a=e.ushrn(1),n=e.andln(1),o=r.cmp(a);return o<0||1===n&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},n.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var a=67108864%e,n=0,o=this.length-1;o>=0;o--)n=(a*n+(0|this.words[o]))%e;return t?-n:n},n.prototype.modn=function(e){return this.modrn(e)},n.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var a=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*a;this.words[n]=o/e|0,a=o%e}return this._strip(),t?this.ineg():this},n.prototype.divn=function(e){return this.clone().idivn(e)},n.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,a=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new n(1),i=new n(0),s=new n(0),c=new n(1),l=0;t.isEven()&&a.isEven();)t.iushrn(1),a.iushrn(1),++l;for(var d=a.clone(),u=t.clone();!t.isZero();){for(var f=0,h=1;0==(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(o.isOdd()||i.isOdd())&&(o.iadd(d),i.isub(u)),o.iushrn(1),i.iushrn(1);for(var p=0,$=1;0==(a.words[0]&$)&&p<26;++p,$<<=1);if(p>0)for(a.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(d),c.isub(u)),s.iushrn(1),c.iushrn(1);t.cmp(a)>=0?(t.isub(a),o.isub(s),i.isub(c)):(a.isub(t),s.isub(o),c.isub(i))}return{a:s,b:c,gcd:a.iushln(l)}},n.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,a=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,i=new n(1),s=new n(0),c=a.clone();t.cmpn(1)>0&&a.cmpn(1)>0;){for(var l=0,d=1;0==(t.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(t.iushrn(l);l-- >0;)i.isOdd()&&i.iadd(c),i.iushrn(1);for(var u=0,f=1;0==(a.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(a.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(a)>=0?(t.isub(a),i.isub(s)):(a.isub(t),s.isub(i))}return(o=0===t.cmpn(1)?i:s).cmpn(0)<0&&o.iadd(e),o},n.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var a=0;t.isEven()&&r.isEven();a++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var n=t.cmp(r);if(n<0){var o=t;t=r,r=o}else if(0===n||0===r.cmpn(1))break;t.isub(r)}return r.iushln(a)},n.prototype.invm=function(e){return this.egcd(e).a.umod(e)},n.prototype.isEven=function(){return 0==(1&this.words[0])},n.prototype.isOdd=function(){return 1==(1&this.words[0])},n.prototype.andln=function(e){return this.words[0]&e},n.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,a=(e-t)/26,n=1<>>26,s&=67108863,this.words[i]=s}return 0!==o&&(this.words[i]=o,this.length++),this},n.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},n.prototype.cmpn=function(e){var t,a=e<0;if(0!==this.negative&&!a)return-1;if(0===this.negative&&a)return 1;if(this._strip(),this.length>1)t=1;else{a&&(e=-e),r(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:ne.length)return 1;if(this.length=0;r--){var a=0|this.words[r],n=0|e.words[r];if(a!==n){an&&(t=1);break}}return t},n.prototype.gtn=function(e){return 1===this.cmpn(e)},n.prototype.gt=function(e){return 1===this.cmp(e)},n.prototype.gten=function(e){return this.cmpn(e)>=0},n.prototype.gte=function(e){return this.cmp(e)>=0},n.prototype.ltn=function(e){return-1===this.cmpn(e)},n.prototype.lt=function(e){return-1===this.cmp(e)},n.prototype.lten=function(e){return this.cmpn(e)<=0},n.prototype.lte=function(e){return this.cmp(e)<=0},n.prototype.eqn=function(e){return 0===this.cmpn(e)},n.prototype.eq=function(e){return 0===this.cmp(e)},n.red=function(e){return new S(e)},n.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},n.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},n.prototype._forceRed=function(e){return this.red=e,this},n.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},n.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},n.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},n.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},n.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},n.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},n.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},n.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},n.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},n.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},n.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},n.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},n.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},n.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new n(t,16),this.n=this.p.bitLength(),this.k=new n(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=n._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new n(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new n(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var a=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},a(w,v),w.prototype.split=function(e,t){for(var r=4194303,a=Math.min(e.length,9),n=0;n>>22,o=i}o>>>=22,e.words[n-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},w.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=n,t=a}return 0!==t&&(e.words[e.length++]=t),e},n._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new x;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new k}return y[e]=t,t},S.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var a=this.m.add(new n(1)).iushrn(2);return this.pow(e,a)}for(var o=this.m.subn(1),i=0;!o.isZero()&&0===o.andln(1);)i++,o.iushrn(1);r(!o.isZero());var s=new n(1).toRed(this),c=s.redNeg(),l=this.m.subn(1).iushrn(1),d=this.m.bitLength();for(d=new n(2*d*d).toRed(this);0!==this.pow(d,l).cmp(c);)d.redIAdd(c);for(var u=this.pow(d,o),f=this.pow(e,o.addn(1).iushrn(1)),h=this.pow(e,o),p=i;0!==h.cmp(s);){for(var $=h,b=0;0!==$.cmp(s);b++)$=$.redSqr();r(b=0;a--){for(var l=t.words[a],d=c-1;d>=0;d--){var u=l>>d&1;o!==r[0]&&(o=this.sqr(o)),0!==u||0!==i?(i<<=1,i|=u,(4===++s||0===a&&0===d)&&(o=this.mul(o,r[i]),s=0,i=0)):s=0}c=26}return o},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},n.mont=function(e){return new E(e)},a(E,S),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),a=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(a).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new n(0)._forceRed(this);var r=e.mul(t),a=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(a).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)})),parcelRequire.register("bPvLh",(function(e,t){var r=parcelRequire("bDs7k");e.exports=r("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")})),parcelRequire.register("bDs7k",(function(e,t){var r=parcelRequire("3o5AG").Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),a=0;a>>0,d=new Uint8Array(i);e[a];){var u=t[e.charCodeAt(a)];if(255===u)return;for(var f=0,h=i-1;(0!==u||f>>0,d[h]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");o=f,a++}for(var p=i-o;p!==i&&0===d[p];)p++;var $=r.allocUnsafe(n+(i-p));$.fill(0,0,n);for(var b=n;p!==i;)$[b++]=d[p++];return $}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=r.from(t)),!r.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var a=0,n=0,o=0,i=t.length;o!==i&&0===t[o];)o++,a++;for(var l=(i-o)*d+1>>>0,u=new Uint8Array(l);o!==i;){for(var f=t[o],h=0,p=l-1;(0!==f||h>>0,u[p]=f%s>>>0,f=f/s>>>0;if(0!==f)throw new Error("Non-zero carry");n=h,o++}for(var $=l-n;$!==l&&0===u[$];)$++;for(var b=c.repeat(a);$>6*r)+a];r>0;){var i=t>>6*(r-1);o.push(128|63&i),r-=1}return o}}d.prototype={decode:function(e,t){var r;r="object"==typeof e&&e instanceof ArrayBuffer?new Uint8Array(e):"object"==typeof e&&"buffer"in e&&e.buffer instanceof ArrayBuffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(0),t=o(t),this._streaming||(this._decoder=new f({fatal:this._fatal}),this._BOMseen=!1),this._streaming=Boolean(t.stream);for(var a,n=new i(r),c=[];!n.endOfStream()&&(a=this._decoder.handler(n,n.read()))!==s;)null!==a&&(Array.isArray(a)?c.push.apply(c,a):c.push(a));if(!this._streaming){do{if((a=this._decoder.handler(n,n.read()))===s)break;null!==a&&(Array.isArray(a)?c.push.apply(c,a):c.push(a))}while(!n.endOfStream());this._decoder=null}return c.length&&(-1===["utf-8"].indexOf(this.encoding)||this._ignoreBOM||this._BOMseen||(65279===c[0]?(this._BOMseen=!0,c.shift()):this._BOMseen=!0)),function(e){for(var t="",r=0;r>10),56320+(1023&a)))}return t}(c)}},u.prototype={encode:function(e,t){e=e?String(e):"",t=o(t),this._streaming||(this._encoder=new h(this._options)),this._streaming=Boolean(t.stream);for(var r,a=[],n=new i(function(e){for(var t=String(e),r=t.length,a=0,n=[];a57343)n.push(o);else if(56320<=o&&o<=57343)n.push(65533);else if(55296<=o&&o<=56319)if(a===r-1)n.push(65533);else{var i=e.charCodeAt(a+1);if(56320<=i&&i<=57343){var s=1023&o,c=1023&i;n.push(65536+(s<<10)+c),a+=1}else n.push(65533)}a+=1}return n}(e));!n.endOfStream()&&(r=this._encoder.handler(n,n.read()))!==s;)Array.isArray(r)?a.push.apply(a,r):a.push(r);if(!this._streaming){for(;(r=this._encoder.handler(n,n.read()))!==s;)Array.isArray(r)?a.push.apply(a,r):a.push(r);this._encoder=null}return new Uint8Array(a)}},r=u,a=d})),parcelRequire.register("hHMds",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Assignable=e.exports.Enum=void 0;e.exports.Enum=class{constructor(e){if(1!==Object.keys(e).length)throw new Error("Enum can only take single value");Object.keys(e).map((t=>{this[t]=e[t],this.enum=t}))}};e.exports.Assignable=class{constructor(e){Object.keys(e).map((t=>{this[t]=e[t]}))}}})),parcelRequire.register("k8rH8",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.BrowserLocalStorageKeyStore=void 0;var r=parcelRequire("8bVp8"),a=parcelRequire("c6vjW");class n extends r.KeyStore{async setKey(e,t,r){this.localStorage.setItem(this.storageKeyForSecretKey(e,t),r.toString())}async getKey(e,t){const r=this.localStorage.getItem(this.storageKeyForSecretKey(e,t));return r?a.KeyPair.fromString(r):null}async removeKey(e,t){this.localStorage.removeItem(this.storageKeyForSecretKey(e,t))}async clear(){for(const e of this.storageKeys())e.startsWith(this.prefix)&&this.localStorage.removeItem(e)}async getNetworks(){const e=new Set;for(const t of this.storageKeys())if(t.startsWith(this.prefix)){const r=t.substring(this.prefix.length).split(":");e.add(r[1])}return Array.from(e.values())}async getAccounts(e){const t=new Array;for(const r of this.storageKeys())if(r.startsWith(this.prefix)){const a=r.substring(this.prefix.length).split(":");a[1]===e&&t.push(a[0])}return t}storageKeyForSecretKey(e,t){return`${this.prefix}${t}:${e}`}*storageKeys(){for(let e=0;e{try{const r={method:e,params:t,id:u++,jsonrpc:"2.0"},a=await i.fetchJson(this.connection,JSON.stringify(r));if(a.error){if("object"==typeof a.error.data){if("string"==typeof a.error.data.error_message&&"string"==typeof a.error.data.error_type)throw new s.TypedError(a.error.data.error_message,a.error.data.error_type);throw d.parseRpcError(a.error.data)}{const e=`[${a.error.code}] ${a.error.message}: ${a.error.data}`;if("Timeout"===a.error.data||e.includes("Timeout error")||e.includes("query has timed out"))throw new s.TypedError(e,"TimeoutError");throw new s.TypedError(e,d.getErrorTypeFromErrorMessage(a.error.data))}}return a.result}catch(r){if("TimeoutError"===r.type)return console.warn(`Retrying request to ${e} as it has timed out`,t),null;throw r}}));if(!r)throw new s.TypedError(`Exceeded 12 attempts for request to ${e}.`,"RetriesExceeded");return r}async gasPrice(e){return await this.sendJsonRpc("gas_price",[e])}constructor(e){super(),this.connection={url:e}}}e.exports.JsonRpcProvider=f})),parcelRequire.register("dMko4",(function(e,t){function r(e,t){if("function"!=typeof e)throw new TypeError("argument fn must be a function");return e}function a(e,t,r){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("argument obj must be object");var a=Object.getOwnPropertyDescriptor(e,t);if(!a)throw new TypeError("must call property on owner object");if(!a.configurable)throw new TypeError("property must be configurable")}e.exports=function(e){if(!e)throw new TypeError("argument namespace is required");function t(e){}return t._file=void 0,t._ignored=!0,t._namespace=e,t._traced=!1,t._warned=Object.create(null),t.function=r,t.property=a,t}})),parcelRequire.register("7o3DH",(function(e,t){var r=parcelRequire("l1eCU"),a=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.fetchJson=void 0;const n=a(parcelRequire("5tpkd")),o=a(parcelRequire("ciCzS"));var i=parcelRequire("gOMCy");let s;if("undefined"==typeof window||"nodejs"===window.name){const e=parcelRequire("kuFsJ"),t=parcelRequire("9LxR1"),a=parcelRequire("bupd9"),n=new t.Agent({keepAlive:!0}),o=new a.Agent({keepAlive:!0});s=function(t,a){return e(t,(0,r.default)({agent:(i=new URL(t),"http:"===i.protocol?n:o)},a));var i}}else s=window.fetch;e.exports.fetchJson=async function(e,t){let r=null;r="string"==typeof e?e:e.url;const a=await o.default(1e3,10,1.5,(async()=>{try{const e=await s(r,{method:t?"POST":"GET",body:t||void 0,headers:{"Content-Type":"application/json; charset=utf-8"}});if(!e.ok){if(503===e.status)return console.warn(`Retrying HTTP request for ${r} as it's not available now`),null;throw n.default(e.status,await e.text())}return e}catch(e){if(e.toString().includes("FetchError")||e.toString().includes("Failed to fetch"))return console.warn(`Retrying HTTP request for ${r} because of error: ${e}`),null;throw e}}));if(!a)throw new i.TypedError(`Exceeded 10 attempts for ${r}.`,"RetriesExceeded");return await a.json()}})),parcelRequire.register("l1eCU",(function(e,t){$parcel$export(e.exports,"default",(function(){return a}));var r=parcelRequire("6skSc");function a(e){for(var t=1;t=600)&&a("non-error status code; use only 4xx or 5xx status codes");("number"!=typeof n||!o[n]&&(n<400||n>=600))&&(n=500);var d=e[n]||e[c(n)];t||(t=d?new d(r):new Error(r||o[n]),Error.captureStackTrace(t,e));d&&t instanceof d&&t.status===n||(t.expose=n<500,t.status=t.statusCode=n);for(var u in i)"status"!==u&&"statusCode"!==u&&(t[u]=i[u]);return t},e.exports.HttpError=function(){function e(){throw new TypeError("cannot construct abstract class")}return i(e,Error),e}(),e.exports.isHttpError=(r=e.exports.HttpError,function(e){return!(!e||"object"!=typeof e)&&(e instanceof r||e instanceof Error&&"boolean"==typeof e.expose&&"number"==typeof e.statusCode&&e.status===e.statusCode)}),function(e,t,r){t.forEach((function(t){var a,u=s(o[t]);switch(c(t)){case 400:a=function(e,t,r){var a=d(t);function s(e){var t=null!=e?e:o[r],i=new Error(t);return Error.captureStackTrace(i,s),n(i,s.prototype),Object.defineProperty(i,"message",{enumerable:!0,configurable:!0,value:t,writable:!0}),Object.defineProperty(i,"name",{enumerable:!1,configurable:!0,value:a,writable:!0}),i}return i(s,e),l(s,a),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!0,s}(r,u,t);break;case 500:a=function(e,t,r){var a=d(t);function s(e){var t=null!=e?e:o[r],i=new Error(t);return Error.captureStackTrace(i,s),n(i,s.prototype),Object.defineProperty(i,"message",{enumerable:!0,configurable:!0,value:t,writable:!0}),Object.defineProperty(i,"name",{enumerable:!1,configurable:!0,value:a,writable:!0}),i}return i(s,e),l(s,a),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!1,s}(r,u,t)}a&&(e[t]=a,e[u]=a)})),e["I'mateapot"]=a.function(e.ImATeapot,'"I\'mateapot"; use "ImATeapot" instead')}(e.exports,o.codes,e.exports.HttpError)})),parcelRequire.register("1VVaV",(function(e,t){function r(e,t){if("function"!=typeof e)throw new TypeError("argument fn must be a function");return e}function a(e,t,r){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("argument obj must be object");var a=Object.getOwnPropertyDescriptor(e,t);if(!a)throw new TypeError("must call property on owner object");if(!a.configurable)throw new TypeError("property must be configurable")}e.exports=function(e){if(!e)throw new TypeError("argument namespace is required");function t(e){}return t._file=void 0,t._ignored=!0,t._namespace=e,t._traced=!1,t._warned=Object.create(null),t.function=r,t.property=a,t}})),parcelRequire.register("5LX41",(function(e,t){e.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){return e.__proto__=t,e}:function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(e,r)||(e[r]=t[r]);return e})})),parcelRequire.register("7vpCg",(function(e,t){var r,a,n,o=parcelRequire("3MiRI");function i(e){if("number"==typeof e){if(!i[e])throw new Error("invalid status code: "+e);return e}if("string"!=typeof e)throw new TypeError("code must be a number or string");var t=parseInt(e,10);if(!isNaN(t)){if(!i[t])throw new Error("invalid status code: "+t);return t}if(!(t=i[e.toLowerCase()]))throw new Error('invalid status message: "'+e+'"');return t}e.exports=i,i.STATUS_CODES=o,i.codes=(r=i,a=o,n=[],Object.keys(a).forEach((function(e){var t=a[e],o=Number(e);r[o]=t,r[t]=o,r[t.toLowerCase()]=o,n.push(o)})),n),i.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0},i.empty={204:!0,205:!0,304:!0},i.retry={502:!0,503:!0,504:!0}})),parcelRequire.register("3MiRI",(function(e,t){e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","306":"(Unused)","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')})),parcelRequire.register("9tbCW",(function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}})),parcelRequire.register("3rbOv",(function(e,t){e.exports=function(e){return e.split(" ").map((function(e){return e.slice(0,1).toUpperCase()+e.slice(1)})).join("").replace(/[^ _0-9a-z]/gi,"")}})),parcelRequire.register("ciCzS",(function(e,t){function r(e){return new Promise((t=>setTimeout(t,e)))}Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.default=async function(e,t,a,n){let o=e;for(let e=0;e1)for(var r=1;rt._pos){var o=a.substr(t._pos);if("x-user-defined"===t._charset){for(var i=n.alloc(o.length),s=0;st._pos&&(t.push(n.from(new Uint8Array(c.result.slice(t._pos)))),t._pos=c.result.byteLength)},c.onload=function(){e(!0),t.push(null)},c.readAsArrayBuffer(a)}t._xhr.readyState===l.DONE&&"ms-stream"!==t._mode&&(e(!0),t.push(null))}})),parcelRequire.register("f3YQa",(function(e,t){(t=e.exports=parcelRequire("QJjFZ")).Stream=t,t.Readable=t,t.Writable=parcelRequire("8egDp"),t.Duplex=parcelRequire("a9LkH"),t.Transform=parcelRequire("h4QYD"),t.PassThrough=parcelRequire("1LOSS"),t.finished=parcelRequire("6vFfZ"),t.pipeline=parcelRequire("gGaTt")})),parcelRequire.register("QJjFZ",(function(e,t){var r,a=parcelRequire("a5Ykp");e.exports=k,k.ReadableState=_;parcelRequire("9PO7G").EventEmitter;var n=function(e,t){return e.listeners(t).length},o=parcelRequire("7nV5Z"),i=parcelRequire("fpMrF").Buffer,s=$parcel$global.Uint8Array||function(){};var c,l=parcelRequire("8UCNu");c=l&&l.debuglog?l.debuglog("stream"):function(){};var d,u,f,h=parcelRequire("74oYk"),p=parcelRequire("9TlUW"),$=parcelRequire("hsswO").getHighWaterMark,b=parcelRequire("lgSVH").codes,g=b.ERR_INVALID_ARG_TYPE,m=b.ERR_STREAM_PUSH_AFTER_EOF,y=b.ERR_METHOD_NOT_IMPLEMENTED,v=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;parcelRequire("9tbCW")(k,o);var w=p.errorOrDestroy,x=["error","close","destroy","pause","resume"];function _(e,t,a){r=r||parcelRequire("a9LkH"),e=e||{},"boolean"!=typeof a&&(a=t instanceof r),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=$(this,e,"readableHighWaterMark",a),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=parcelRequire("iBRKP").StringDecoder),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function k(e){if(r=r||parcelRequire("a9LkH"),!(this instanceof k))return new k(e);var t=this instanceof r;this._readableState=new _(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function S(e,t,r,a,n){c("readableAddChunk",t);var o,l=e._readableState;if(null===t)l.reading=!1,function(e,t){if(c("onEofChunk"),t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?M(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,T(e)))}(e,l);else if(n||(o=function(e,t){var r;a=t,i.isBuffer(a)||a instanceof s||"string"==typeof t||void 0===t||e.objectMode||(r=new g("chunk",["string","Buffer","Uint8Array"],t));var a;return r}(l,t)),o)w(e,o);else if(l.objectMode||t&&t.length>0)if("string"==typeof t||l.objectMode||Object.getPrototypeOf(t)===i.prototype||(t=function(e){return i.from(e)}(t)),a)l.endEmitted?w(e,new v):E(e,l,t,!0);else if(l.ended)w(e,new m);else{if(l.destroyed)return!1;l.reading=!1,l.decoder&&!r?(t=l.decoder.write(t),l.objectMode||0!==t.length?E(e,l,t,!1):C(e,l)):E(e,l,t,!1)}else a||(l.reading=!1,C(e,l));return!l.ended&&(l.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=A?e=A:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function M(e){var t=e._readableState;c("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(c("emitReadable",t.flowing),t.emittedReadable=!0,a.nextTick(T,e))}function T(e){var t=e._readableState;c("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,P(e)}function C(e,t){t.readingMore||(t.readingMore=!0,a.nextTick(I,e,t))}function I(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function L(e){c("readable nexttick read 0"),e.read(0)}function q(e,t){c("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),P(e),t.flowing&&!t.reading&&e.read(0)}function P(e){var t=e._readableState;for(c("flow",t.flowing);t.flowing&&null!==e.read(););}function O(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function D(e){var t=e._readableState;c("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,a.nextTick(B,t,e))}function B(e,t){if(c("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function U(e,t){for(var r=0,a=e.length;r=t.highWaterMark:t.length>0)||t.ended))return c("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?D(this):M(this),null;if(0===(e=R(e,t))&&t.ended)return 0===t.length&&D(this),null;var a,n=t.needReadable;return c("need readable",n),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&D(this)),null!==a&&this.emit("data",a),a},k.prototype._read=function(e){w(this,new y("_read()"))},k.prototype.pipe=function(e,t){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,c("pipe count=%d opts=%j",o.pipesCount,t);var i=(!t||!1!==t.end)&&e!==a.stdout&&e!==a.stderr?l:b;function s(t,a){c("onunpipe"),t===r&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,c("cleanup"),e.removeListener("close",p),e.removeListener("finish",$),e.removeListener("drain",d),e.removeListener("error",h),e.removeListener("unpipe",s),r.removeListener("end",l),r.removeListener("end",b),r.removeListener("data",f),u=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||d())}function l(){c("onend"),e.end()}o.endEmitted?a.nextTick(i):r.once("end",i),e.on("unpipe",s);var d=function(e){return function(){var t=e._readableState;c("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&n(e,"data")&&(t.flowing=!0,P(e))}}(r);e.on("drain",d);var u=!1;function f(t){c("ondata");var a=e.write(t);c("dest.write",a),!1===a&&((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==U(o.pipes,e))&&!u&&(c("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function h(t){c("onerror",t),b(),e.removeListener("error",h),0===n(e,"error")&&w(e,t)}function p(){e.removeListener("finish",$),b()}function $(){c("onfinish"),e.removeListener("close",p),b()}function b(){c("unpipe"),r.unpipe(e)}return r.on("data",f),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",p),e.once("finish",$),e.emit("pipe",r),o.flowing||(c("pipe resume"),r.resume()),e},k.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var a=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,c("on readable",n.length,n.reading),n.length?M(this):n.reading||a.nextTick(L,this))),r},k.prototype.addListener=k.prototype.on,k.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&a.nextTick(N,this),r},k.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||a.nextTick(N,this),t},k.prototype.resume=function(){var e=this._readableState;return e.flowing||(c("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,a.nextTick(q,e,t))}(this,e)),e.paused=!1,this},k.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},k.prototype.wrap=function(e){var t=this,r=this._readableState,a=!1;for(var n in e.on("end",(function(){if(c("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(n){(c("wrapped data"),r.decoder&&(n=r.decoder.write(n)),r.objectMode&&null==n)||(r.objectMode||n&&n.length)&&(t.push(n)||(a=!0,e.pause()))})),e)void 0===this[n]&&"function"==typeof e[n]&&(this[n]=function(t){return function(){return e[t].apply(e,arguments)}}(n));for(var o=0;o0&&i.length>n&&!i.warned){i.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=e,d.type=t,d.count=i.length,s=d,console&&console.warn&&console.warn(s)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,r){var a={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},n=u.bind(a);return n.listener=r,a.wrapFn=n,n}function h(e,t,r){var a=e._events;if(void 0===a)return[];var n=a[t];return void 0===n?[]:"function"==typeof n?r?[n.listener||n]:[n]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)n(c,this,t);else{var l=c.length,d=$(c,l);for(r=0;r=0;o--)if(r[o]===t||r[o].listener===t){i=r[o].listener,n=o;break}if(n<0)return this;0===n?r.shift():function(e,t){for(;t+1=0;a--)this.removeListener(e,t[a]);return this},i.prototype.listeners=function(e){return h(this,e,!0)},i.prototype.rawListeners=function(e){return h(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},i.prototype.listenerCount=p,i.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}})),parcelRequire.register("7nV5Z",(function(e,t){e.exports=parcelRequire("9PO7G").EventEmitter})),parcelRequire.register("74oYk",(function(e,t){function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,r,a,n=o.allocUnsafe(e>>>0),i=this.head,s=0;i;)t=i.data,r=n,a=s,o.prototype.copy.call(t,r,a),s+=i.data.length,i=i.next;return n}},{key:"consume",value:function(e,t){var r;return en.length?n.length:e;if(o===n.length?a+=n:a+=n.slice(0,e),0==(e-=o)){o===n.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=n.slice(o));break}++r}return this.length-=r,a}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),r=this.head,a=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var n=r.data,i=e>n.length?n.length:e;if(n.copy(t,t.length-e,0,i),0==(e-=i)){i===n.length?(++a,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=n.slice(i));break}++a}return this.length-=a,t}},{key:s,value:function(e,t){return i(this,function(e){for(var t=1;t2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,r){var a,n,i,s;if("string"==typeof t&&(n="not ",t.substr(!i||i<0?0:+i,n.length)===n)?(a="must not be",t=t.replace(/^not /,"")):a="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))s="The ".concat(e," ").concat(a," ").concat(o(t,"type"));else{var c=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";s='The "'.concat(e,'" ').concat(c," ").concat(a," ").concat(o(t,"type"))}return s+=". Received type ".concat(typeof r)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),r=a})),parcelRequire.register("a9LkH",(function(e,t){var r=parcelRequire("a5Ykp"),a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=l;var n=parcelRequire("QJjFZ"),o=parcelRequire("8egDp");parcelRequire("9tbCW")(l,n);for(var i=a(o.prototype),s=0;s-1))throw new v(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(k.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(k.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),k.prototype._write=function(e,t,r){r(new p("_write()"))},k.prototype._writev=null,k.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,T(e,t),r&&(t.finished?a.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(k.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(k.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),k.prototype.destroy=d.destroy,k.prototype._undestroy=d.undestroy,k.prototype._destroy=function(e,t){t(e)}})),parcelRequire.register("bSq2n",(function(e,t){function r(e){try{if(!$parcel$global.localStorage)return!1}catch(e){return!1}var t=$parcel$global.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var a=!1;return function(){if(!a){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),a=!0}return e.apply(this,arguments)}}})),parcelRequire.register("iBRKP",(function(e,t){var r;$parcel$export(e.exports,"StringDecoder",(function(){return r}),(function(e){return r=e}));var a=parcelRequire("3o5AG").Buffer,n=a.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(a.isEncoding===n||!n(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=l,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=d,this.end=u,t=3;break;default:return this.write=f,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=a.allocUnsafe(t)}function i(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var a=r.charCodeAt(r.length-1);if(a>=55296&&a<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function d(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function u(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function f(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}r=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return n>0&&(e.lastNeed=n-1),n;if(--a=0)return n>0&&(e.lastNeed=n-2),n;if(--a=0)return n>0&&(2===n?n=0:e.lastNeed=n-3),n;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var a=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,a),e.toString("utf8",t,a)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}})),parcelRequire.register("8wllQ",(function(e,t){var r,a=parcelRequire("a5Ykp");function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=parcelRequire("6vFfZ"),i=Symbol("lastResolve"),s=Symbol("lastReject"),c=Symbol("error"),l=Symbol("ended"),d=Symbol("lastPromise"),u=Symbol("handlePromise"),f=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[i];if(null!==t){var r=e[f].read();null!==r&&(e[d]=null,e[i]=null,e[s]=null,t(h(r,!1)))}}function $(e){a.nextTick(p,e)}var b=Object.getPrototypeOf((function(){})),g=Object.setPrototypeOf((n(r={get stream(){return this[f]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[l])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)return new Promise((function(t,r){a.nextTick((function(){e[c]?r(e[c]):t(h(void 0,!0))}))}));var r,n=this[d];if(n)r=new Promise(function(e,t){return function(r,a){e.then((function(){t[l]?r(h(void 0,!0)):t[u](r,a)}),a)}}(n,this));else{var o=this[f].read();if(null!==o)return Promise.resolve(h(o,!1));r=new Promise(this[u])}return this[d]=r,r}},Symbol.asyncIterator,(function(){return this})),n(r,"return",(function(){var e=this;return new Promise((function(t,r){e[f].destroy(null,(function(e){e?r(e):t(h(void 0,!0))}))}))})),r),b);e.exports=function(e){var t,r=Object.create(g,(n(t={},f,{value:e,writable:!0}),n(t,i,{value:null,writable:!0}),n(t,s,{value:null,writable:!0}),n(t,c,{value:null,writable:!0}),n(t,l,{value:e._readableState.endEmitted,writable:!0}),n(t,u,{value:function(e,t){var a=r[f].read();a?(r[d]=null,r[i]=null,r[s]=null,e(h(a,!1))):(r[i]=e,r[s]=t)},writable:!0}),t));return r[d]=null,o(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[s];return null!==t&&(r[d]=null,r[i]=null,r[s]=null,t(e)),void(r[c]=e)}var a=r[i];null!==a&&(r[d]=null,r[i]=null,r[s]=null,a(h(void 0,!0))),r[l]=!0})),e.on("readable",$.bind(null,r)),r}})),parcelRequire.register("6vFfZ",(function(e,t){var r=parcelRequire("lgSVH").codes.ERR_STREAM_PREMATURE_CLOSE;function a(){}e.exports=function e(t,n,o){if("function"==typeof n)return e(t,null,n);n||(n={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,a=new Array(r),n=0;n0,(function(e){a||(a=e),e&&i.forEach(c),n||(i.forEach(c),o(a))}))}));return t.reduce(l)}})),parcelRequire.register("8k6Kq",(function(e,t){e.exports=function(){for(var e={},t=0;t",'"',"`"," ","\r","\n","\t"]),d=["'"].concat(l),u=["%","/","?",";","#"].concat(d),f=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,$={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},m=parcelRequire("1Xhaw");function y(e,t,r){if(e&&n.isObject(e)&&e instanceof o)return e;var a=new o;return a.parse(e,t,r),a}o.prototype.parse=function(e,t,r){if(!n.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o127?N+="x":N+=I[L];if(!N.match(h)){var P=T.slice(0,A),O=T.slice(A+1),D=I.match(p);D&&(P.push(D[1]),O.unshift(D[2])),O.length&&(y="/"+O.join(".")+y),this.hostname=P.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),M||(this.hostname=a.toASCII(this.hostname));var B=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+B,this.href+=this.host,M&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!$[x])for(A=0,C=d.length;A0)&&r.host.split("@"))&&(r.auth=M.shift(),r.host=r.hostname=M.shift());return r.search=e.search,r.query=e.query,n.isNull(r.pathname)&&n.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!_.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var S=_.slice(-1)[0],E=(r.host||e.host||_.length>1)&&("."===S||".."===S)||""===S,A=0,R=_.length;R>=0;R--)"."===(S=_[R])?_.splice(R,1):".."===S?(_.splice(R,1),A++):A&&(_.splice(R,1),A--);if(!w&&!x)for(;A--;A)_.unshift("..");!w||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),E&&"/"!==_.join("/").substr(-1)&&_.push("");var M,T=""===_[0]||_[0]&&"/"===_[0].charAt(0);k&&(r.hostname=r.host=T?"":_.length?_.shift():"",(M=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=M.shift(),r.host=r.hostname=M.shift()));return(w=w||r.host&&_.length)&&!T&&_.unshift(""),_.length?r.pathname=_.join("/"):(r.pathname=null,r.path=null),n.isNull(r.pathname)&&n.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}})),parcelRequire.register("567pR",(function(e,t){!function(r){var a=t&&!t.nodeType&&t,n=e&&!e.nodeType&&e,o="object"==typeof $parcel$global&&$parcel$global;o.global!==o&&o.window!==o&&o.self!==o||(r=o);var i,s,c=2147483647,l=36,d=/^xn--/,u=/[^\x20-\x7E]/,f=/[\x2E\u3002\uFF0E\uFF61]/g,h={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=Math.floor,$=String.fromCharCode;function b(e){throw RangeError(h[e])}function g(e,t){for(var r=e.length,a=[];r--;)a[r]=t(e[r]);return a}function m(e,t){var r=e.split("@"),a="";return r.length>1&&(a=r[0]+"@",e=r[1]),a+g((e=e.replace(f,".")).split("."),t).join(".")}function y(e){for(var t,r,a=[],n=0,o=e.length;n=55296&&t<=56319&&n65535&&(t+=$((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=$(e)})).join("")}function w(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function x(e,t,r){var a=0;for(e=r?p(e/700):e>>1,e+=p(e/t);e>455;a+=l)e=p(e/35);return p(a+36*e/(e+38))}function _(e){var t,r,a,n,o,i,s,d,u,f,h,$=[],g=e.length,m=0,y=128,w=72;for((r=e.lastIndexOf("-"))<0&&(r=0),a=0;a=128&&b("not-basic"),$.push(e.charCodeAt(a));for(n=r>0?r+1:0;n=g&&b("invalid-input"),((d=(h=e.charCodeAt(n++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:l)>=l||d>p((c-m)/i))&&b("overflow"),m+=d*i,!(d<(u=s<=w?1:s>=w+26?26:s-w));s+=l)i>p(c/(f=l-u))&&b("overflow"),i*=f;w=x(m-o,t=$.length+1,0==o),p(m/t)>c-y&&b("overflow"),y+=p(m/t),m%=t,$.splice(m++,0,y)}return v($)}function k(e){var t,r,a,n,o,i,s,d,u,f,h,g,m,v,_,k=[];for(g=(e=y(e)).length,t=128,r=0,o=72,i=0;i=t&&hp((c-r)/(m=a+1))&&b("overflow"),r+=(s-t)*m,t=s,i=0;ic&&b("overflow"),h==t){for(d=r,u=l;!(d<(f=u<=o?1:u>=o+26?26:u-o));u+=l)_=d-f,v=l-f,k.push($(w(f+_%v,0))),d=p(_/v);k.push($(w(d,0))),o=x(r,m,a==n),r=0,++a}++r,++t}return k.join("")}if(i={version:"1.3.2",ucs2:{decode:y,encode:v},decode:_,encode:k,toASCII:function(e){return m(e,(function(e){return u.test(e)?"xn--"+k(e):e}))},toUnicode:function(e){return m(e,(function(e){return d.test(e)?_(e.slice(4).toLowerCase()):e}))}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",(function(){return i}));else if(a&&n)if(e.exports==a)n.exports=i;else for(s in i)i.hasOwnProperty(s)&&(a[s]=i[s]);else r.punycode=i}(this)})),parcelRequire.register("h69nw",(function(e,t){e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}})),parcelRequire.register("1Xhaw",(function(e,t){var r,a;$parcel$export(e.exports,"parse",(function(){return r}),(function(e){return r=e})),$parcel$export(e.exports,"stringify",(function(){return a}),(function(e){return a=e})),r=parcelRequire("H6lrw"),a=parcelRequire("kBeMc")})),parcelRequire.register("H6lrw",(function(e,t){function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,o){t=t||"&",n=n||"=";var i={};if("string"!=typeof e||0===e.length)return i;var s=/\+/g;e=e.split(t);var c=1e3;o&&"number"==typeof o.maxKeys&&(c=o.maxKeys);var l=e.length;c>0&&l>c&&(l=c);for(var d=0;d=0?(u=$.substr(0,b),f=$.substr(b+1)):(u=$,f=""),h=decodeURIComponent(u),p=decodeURIComponent(f),r(i,h)?a(i[h])?i[h].push(p):i[h]=[i[h],p]:i[h]=p}return i};var a=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}})),parcelRequire.register("kBeMc",(function(e,t){var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,i,s){return t=t||"&",i=i||"=",null===e&&(e=void 0),"object"==typeof e?n(o(e),(function(o){var s=encodeURIComponent(r(o))+i;return a(e[o])?n(e[o],(function(e){return s+encodeURIComponent(r(e))})).join(t):s+encodeURIComponent(r(e[o]))})).join(t):s?encodeURIComponent(r(s))+i+encodeURIComponent(r(e)):""};var a=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function n(e,t){if(e.map)return e.map(t);for(var r=[],a=0;a":">",'"':""","'":"'","/":"/","`":"`","=":"="};function f(e){return String(e).replace(/[&<>"'`=\/]/g,(function(e){return u[e]}))}var h=/\s*/,p=/\s+/,$=/\s*=/,b=/\s*\}/,g=/#|\^|\/|>|\{|&|=|!/;function m(e,r){if(!e)return[];var a,o,i,s=!1,c=[],l=[],u=[],f=!1,m=!1,x="",_=0;function S(){if(f&&!m)for(;u.length;)delete l[u.pop()];else u=[];f=!1,m=!1}function E(e){if("string"==typeof e&&(e=e.split(p,2)),!t(e)||2!==e.length)throw new Error("Invalid tags: "+e);a=new RegExp(n(e[0])+"\\s*"),o=new RegExp("\\s*"+n(e[1])),i=new RegExp("\\s*"+n("}"+e[1]))}E(r||k.tags);for(var A,R,M,T,C,I,N=new w(e);!N.eos();){if(A=N.pos,M=N.scanUntil(a))for(var L=0,q=M.length;L0?n[n.length-1][4]:r;break;default:a.push(t)}return r}function w(e){this.string=e,this.tail=e,this.pos=0}function x(e,t){this.view=e,this.cache={".":this.view},this.parent=t}function _(){this.templateCache={_cache:{},set:function(e,t){this._cache[e]=t},get:function(e){return this._cache[e]},clear:function(){this._cache={}}}}w.prototype.eos=function(){return""===this.tail},w.prototype.scan=function(e){var t=this.tail.match(e);if(!t||0!==t.index)return"";var r=t[0];return this.tail=this.tail.substring(r.length),this.pos+=r.length,r},w.prototype.scanUntil=function(e){var t,r=this.tail.search(e);switch(r){case-1:t=this.tail,this.tail="";break;case 0:t="";break;default:t=this.tail.substring(0,r),this.tail=this.tail.substring(r)}return this.pos+=t.length,t},x.prototype.push=function(e){return new x(e,this)},x.prototype.lookup=function(e){var t,a=this.cache;if(a.hasOwnProperty(e))t=a[e];else{for(var n,s,c,l=this,d=!1;l;){if(e.indexOf(".")>0)for(n=l.view,s=e.split("."),c=0;null!=n&&c"===i?s=this.renderPartial(o,t,r,n):"&"===i?s=this.unescapedValue(o,t):"name"===i?s=this.escapedValue(o,t,n):"text"===i&&(s=this.rawValue(o)),void 0!==s&&(c+=s);return c},_.prototype.renderSection=function(e,a,n,o,i){var s=this,c="",l=a.lookup(e[1]);function d(e){return s.render(e,a,n,i)}if(l){if(t(l))for(var u=0,f=l.length;u0||!r)&&(n[o]=a+n[o]);return n.join("\n")},_.prototype.renderPartial=function(e,t,a,n){if(a){var o=this.getConfigTags(n),i=r(a)?a(e[1]):a[e[1]];if(null!=i){var s=e[6],c=e[5],l=e[4],d=i;0==c&&l&&(d=this.indentPartial(i,l,s));var u=this.parse(d,o);return this.renderTokens(u,t,a,d,n)}}},_.prototype.unescapedValue=function(e,t){var r=t.lookup(e[1]);if(null!=r)return r},_.prototype.escapedValue=function(e,t,r){var a=this.getConfigEscape(r)||k.escape,n=t.lookup(e[1]);if(null!=n)return"number"==typeof n&&a===k.escape?String(n):a(n)},_.prototype.rawValue=function(e){return e[1]},_.prototype.getConfigTags=function(e){return t(e)?e:e&&"object"==typeof e?e.tags:void 0},_.prototype.getConfigEscape=function(e){return e&&"object"==typeof e&&!t(e)?e.escape:void 0};var k={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(e){S.templateCache=e},get templateCache(){return S.templateCache}},S=new _;return k.clearCache=function(){return S.clearCache()},k.parse=function(e,t){return S.parse(e,t)},k.render=function(e,t,r,n){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+a(e)+'" was given as the first argument for mustache#render(template, view, partials)');return S.render(e,t,r,n)},k.escape=f,k.Scanner=w,k.Context=x,k.Writer=_,k}()})),parcelRequire.register("5mozj",(function(e,t){e.exports=JSON.parse('{"schema":{"BadUTF16":{"name":"BadUTF16","subtypes":[],"props":{}},"BadUTF8":{"name":"BadUTF8","subtypes":[],"props":{}},"BalanceExceeded":{"name":"BalanceExceeded","subtypes":[],"props":{}},"BreakpointTrap":{"name":"BreakpointTrap","subtypes":[],"props":{}},"CacheError":{"name":"CacheError","subtypes":["ReadError","WriteError","DeserializationError","SerializationError"],"props":{}},"CallIndirectOOB":{"name":"CallIndirectOOB","subtypes":[],"props":{}},"CannotAppendActionToJointPromise":{"name":"CannotAppendActionToJointPromise","subtypes":[],"props":{}},"CannotReturnJointPromise":{"name":"CannotReturnJointPromise","subtypes":[],"props":{}},"CodeDoesNotExist":{"name":"CodeDoesNotExist","subtypes":[],"props":{"account_id":""}},"CompilationError":{"name":"CompilationError","subtypes":["CodeDoesNotExist","PrepareError","WasmerCompileError"],"props":{}},"ContractSizeExceeded":{"name":"ContractSizeExceeded","subtypes":[],"props":{"limit":"","size":""}},"Deprecated":{"name":"Deprecated","subtypes":[],"props":{"method_name":""}},"Deserialization":{"name":"Deserialization","subtypes":[],"props":{}},"DeserializationError":{"name":"DeserializationError","subtypes":[],"props":{}},"EmptyMethodName":{"name":"EmptyMethodName","subtypes":[],"props":{}},"FunctionCallError":{"name":"FunctionCallError","subtypes":["CompilationError","LinkError","MethodResolveError","WasmTrap","WasmUnknownError","HostError","EvmError"],"props":{}},"GasExceeded":{"name":"GasExceeded","subtypes":[],"props":{}},"GasInstrumentation":{"name":"GasInstrumentation","subtypes":[],"props":{}},"GasLimitExceeded":{"name":"GasLimitExceeded","subtypes":[],"props":{}},"GenericTrap":{"name":"GenericTrap","subtypes":[],"props":{}},"GuestPanic":{"name":"GuestPanic","subtypes":[],"props":{"panic_msg":""}},"HostError":{"name":"HostError","subtypes":["BadUTF16","BadUTF8","GasExceeded","GasLimitExceeded","BalanceExceeded","EmptyMethodName","GuestPanic","IntegerOverflow","InvalidPromiseIndex","CannotAppendActionToJointPromise","CannotReturnJointPromise","InvalidPromiseResultIndex","InvalidRegisterId","IteratorWasInvalidated","MemoryAccessViolation","InvalidReceiptIndex","InvalidIteratorIndex","InvalidAccountId","InvalidMethodName","InvalidPublicKey","ProhibitedInView","NumberOfLogsExceeded","KeyLengthExceeded","ValueLengthExceeded","TotalLogLengthExceeded","NumberPromisesExceeded","NumberInputDataDependenciesExceeded","ReturnedValueLengthExceeded","ContractSizeExceeded","Deprecated"],"props":{}},"IllegalArithmetic":{"name":"IllegalArithmetic","subtypes":[],"props":{}},"IncorrectCallIndirectSignature":{"name":"IncorrectCallIndirectSignature","subtypes":[],"props":{}},"Instantiate":{"name":"Instantiate","subtypes":[],"props":{}},"IntegerOverflow":{"name":"IntegerOverflow","subtypes":[],"props":{}},"InternalMemoryDeclared":{"name":"InternalMemoryDeclared","subtypes":[],"props":{}},"InvalidAccountId":{"name":"InvalidAccountId","subtypes":[],"props":{"account_id":""}},"InvalidIteratorIndex":{"name":"InvalidIteratorIndex","subtypes":[],"props":{"iterator_index":""}},"InvalidMethodName":{"name":"InvalidMethodName","subtypes":[],"props":{}},"InvalidPromiseIndex":{"name":"InvalidPromiseIndex","subtypes":[],"props":{"promise_idx":""}},"InvalidPromiseResultIndex":{"name":"InvalidPromiseResultIndex","subtypes":[],"props":{"result_idx":""}},"InvalidPublicKey":{"name":"InvalidPublicKey","subtypes":[],"props":{}},"InvalidReceiptIndex":{"name":"InvalidReceiptIndex","subtypes":[],"props":{"receipt_index":""}},"InvalidRegisterId":{"name":"InvalidRegisterId","subtypes":[],"props":{"register_id":""}},"IteratorWasInvalidated":{"name":"IteratorWasInvalidated","subtypes":[],"props":{"iterator_index":""}},"KeyLengthExceeded":{"name":"KeyLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"LinkError":{"name":"LinkError","subtypes":[],"props":{"msg":""}},"Memory":{"name":"Memory","subtypes":[],"props":{}},"MemoryAccessViolation":{"name":"MemoryAccessViolation","subtypes":[],"props":{}},"MemoryOutOfBounds":{"name":"MemoryOutOfBounds","subtypes":[],"props":{}},"MethodEmptyName":{"name":"MethodEmptyName","subtypes":[],"props":{}},"MethodInvalidSignature":{"name":"MethodInvalidSignature","subtypes":[],"props":{}},"MethodNotFound":{"name":"MethodNotFound","subtypes":[],"props":{}},"MethodResolveError":{"name":"MethodResolveError","subtypes":["MethodEmptyName","MethodUTF8Error","MethodNotFound","MethodInvalidSignature"],"props":{}},"MethodUTF8Error":{"name":"MethodUTF8Error","subtypes":[],"props":{}},"MisalignedAtomicAccess":{"name":"MisalignedAtomicAccess","subtypes":[],"props":{}},"NumberInputDataDependenciesExceeded":{"name":"NumberInputDataDependenciesExceeded","subtypes":[],"props":{"limit":"","number_of_input_data_dependencies":""}},"NumberOfLogsExceeded":{"name":"NumberOfLogsExceeded","subtypes":[],"props":{"limit":""}},"NumberPromisesExceeded":{"name":"NumberPromisesExceeded","subtypes":[],"props":{"limit":"","number_of_promises":""}},"PrepareError":{"name":"PrepareError","subtypes":["Serialization","Deserialization","InternalMemoryDeclared","GasInstrumentation","StackHeightInstrumentation","Instantiate","Memory"],"props":{}},"ProhibitedInView":{"name":"ProhibitedInView","subtypes":[],"props":{"method_name":""}},"ReadError":{"name":"ReadError","subtypes":[],"props":{}},"ReturnedValueLengthExceeded":{"name":"ReturnedValueLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"Serialization":{"name":"Serialization","subtypes":[],"props":{}},"SerializationError":{"name":"SerializationError","subtypes":[],"props":{"hash":""}},"StackHeightInstrumentation":{"name":"StackHeightInstrumentation","subtypes":[],"props":{}},"StackOverflow":{"name":"StackOverflow","subtypes":[],"props":{}},"TotalLogLengthExceeded":{"name":"TotalLogLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"Unreachable":{"name":"Unreachable","subtypes":[],"props":{}},"ValueLengthExceeded":{"name":"ValueLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"WasmTrap":{"name":"WasmTrap","subtypes":["Unreachable","IncorrectCallIndirectSignature","MemoryOutOfBounds","CallIndirectOOB","IllegalArithmetic","MisalignedAtomicAccess","BreakpointTrap","StackOverflow","GenericTrap"],"props":{}},"WasmUnknownError":{"name":"WasmUnknownError","subtypes":[],"props":{}},"WasmerCompileError":{"name":"WasmerCompileError","subtypes":[],"props":{"msg":""}},"WriteError":{"name":"WriteError","subtypes":[],"props":{}},"AccessKeyNotFound":{"name":"AccessKeyNotFound","subtypes":[],"props":{"account_id":"","public_key":""}},"AccountAlreadyExists":{"name":"AccountAlreadyExists","subtypes":[],"props":{"account_id":""}},"AccountDoesNotExist":{"name":"AccountDoesNotExist","subtypes":[],"props":{"account_id":""}},"ActionError":{"name":"ActionError","subtypes":["AccountAlreadyExists","AccountDoesNotExist","CreateAccountOnlyByRegistrar","CreateAccountNotAllowed","ActorNoPermission","DeleteKeyDoesNotExist","AddKeyAlreadyExists","DeleteAccountStaking","LackBalanceForState","TriesToUnstake","TriesToStake","InsufficientStake","FunctionCallError","NewReceiptValidationError","OnlyImplicitAccountCreationAllowed"],"props":{"index":""}},"ActionsValidationError":{"name":"ActionsValidationError","subtypes":["DeleteActionMustBeFinal","TotalPrepaidGasExceeded","TotalNumberOfActionsExceeded","AddKeyMethodNamesNumberOfBytesExceeded","AddKeyMethodNameLengthExceeded","IntegerOverflow","InvalidAccountId","ContractSizeExceeded","FunctionCallMethodNameLengthExceeded","FunctionCallArgumentsLengthExceeded","UnsuitableStakingKey","FunctionCallZeroAttachedGas"],"props":{}},"ActorNoPermission":{"name":"ActorNoPermission","subtypes":[],"props":{"account_id":"","actor_id":""}},"AddKeyAlreadyExists":{"name":"AddKeyAlreadyExists","subtypes":[],"props":{"account_id":"","public_key":""}},"AddKeyMethodNameLengthExceeded":{"name":"AddKeyMethodNameLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"AddKeyMethodNamesNumberOfBytesExceeded":{"name":"AddKeyMethodNamesNumberOfBytesExceeded","subtypes":[],"props":{"limit":"","total_number_of_bytes":""}},"BalanceMismatchError":{"name":"BalanceMismatchError","subtypes":[],"props":{"final_accounts_balance":"","final_postponed_receipts_balance":"","incoming_receipts_balance":"","incoming_validator_rewards":"","initial_accounts_balance":"","initial_postponed_receipts_balance":"","new_delayed_receipts_balance":"","other_burnt_amount":"","outgoing_receipts_balance":"","processed_delayed_receipts_balance":"","slashed_burnt_amount":"","tx_burnt_amount":""}},"CostOverflow":{"name":"CostOverflow","subtypes":[],"props":{}},"CreateAccountNotAllowed":{"name":"CreateAccountNotAllowed","subtypes":[],"props":{"account_id":"","predecessor_id":""}},"CreateAccountOnlyByRegistrar":{"name":"CreateAccountOnlyByRegistrar","subtypes":[],"props":{"account_id":"","predecessor_id":"","registrar_account_id":""}},"DeleteAccountStaking":{"name":"DeleteAccountStaking","subtypes":[],"props":{"account_id":""}},"DeleteActionMustBeFinal":{"name":"DeleteActionMustBeFinal","subtypes":[],"props":{}},"DeleteKeyDoesNotExist":{"name":"DeleteKeyDoesNotExist","subtypes":[],"props":{"account_id":"","public_key":""}},"DepositWithFunctionCall":{"name":"DepositWithFunctionCall","subtypes":[],"props":{}},"Expired":{"name":"Expired","subtypes":[],"props":{}},"FunctionCallArgumentsLengthExceeded":{"name":"FunctionCallArgumentsLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"FunctionCallMethodNameLengthExceeded":{"name":"FunctionCallMethodNameLengthExceeded","subtypes":[],"props":{"length":"","limit":""}},"FunctionCallZeroAttachedGas":{"name":"FunctionCallZeroAttachedGas","subtypes":[],"props":{}},"InsufficientStake":{"name":"InsufficientStake","subtypes":[],"props":{"account_id":"","minimum_stake":"","stake":""}},"InvalidAccessKeyError":{"name":"InvalidAccessKeyError","subtypes":["AccessKeyNotFound","ReceiverMismatch","MethodNameMismatch","RequiresFullAccess","NotEnoughAllowance","DepositWithFunctionCall"],"props":{}},"InvalidChain":{"name":"InvalidChain","subtypes":[],"props":{}},"InvalidDataReceiverId":{"name":"InvalidDataReceiverId","subtypes":[],"props":{"account_id":""}},"InvalidNonce":{"name":"InvalidNonce","subtypes":[],"props":{"ak_nonce":"","tx_nonce":""}},"InvalidPredecessorId":{"name":"InvalidPredecessorId","subtypes":[],"props":{"account_id":""}},"InvalidReceiverId":{"name":"InvalidReceiverId","subtypes":[],"props":{"account_id":""}},"InvalidSignature":{"name":"InvalidSignature","subtypes":[],"props":{}},"InvalidSignerId":{"name":"InvalidSignerId","subtypes":[],"props":{"account_id":""}},"InvalidTxError":{"name":"InvalidTxError","subtypes":["InvalidAccessKeyError","InvalidSignerId","SignerDoesNotExist","InvalidNonce","InvalidReceiverId","InvalidSignature","NotEnoughBalance","LackBalanceForState","CostOverflow","InvalidChain","Expired","ActionsValidation"],"props":{}},"LackBalanceForState":{"name":"LackBalanceForState","subtypes":[],"props":{"account_id":"","amount":""}},"MethodNameMismatch":{"name":"MethodNameMismatch","subtypes":[],"props":{"method_name":""}},"NotEnoughAllowance":{"name":"NotEnoughAllowance","subtypes":[],"props":{"account_id":"","allowance":"","cost":"","public_key":""}},"NotEnoughBalance":{"name":"NotEnoughBalance","subtypes":[],"props":{"balance":"","cost":"","signer_id":""}},"OnlyImplicitAccountCreationAllowed":{"name":"OnlyImplicitAccountCreationAllowed","subtypes":[],"props":{"account_id":""}},"ReceiptValidationError":{"name":"ReceiptValidationError","subtypes":["InvalidPredecessorId","InvalidReceiverId","InvalidSignerId","InvalidDataReceiverId","ReturnedValueLengthExceeded","NumberInputDataDependenciesExceeded","ActionsValidation"],"props":{}},"ReceiverMismatch":{"name":"ReceiverMismatch","subtypes":[],"props":{"ak_receiver":"","tx_receiver":""}},"RequiresFullAccess":{"name":"RequiresFullAccess","subtypes":[],"props":{}},"SignerDoesNotExist":{"name":"SignerDoesNotExist","subtypes":[],"props":{"signer_id":""}},"TotalNumberOfActionsExceeded":{"name":"TotalNumberOfActionsExceeded","subtypes":[],"props":{"limit":"","total_number_of_actions":""}},"TotalPrepaidGasExceeded":{"name":"TotalPrepaidGasExceeded","subtypes":[],"props":{"limit":"","total_prepaid_gas":""}},"TriesToStake":{"name":"TriesToStake","subtypes":[],"props":{"account_id":"","balance":"","locked":"","stake":""}},"TriesToUnstake":{"name":"TriesToUnstake","subtypes":[],"props":{"account_id":""}},"TxExecutionError":{"name":"TxExecutionError","subtypes":["ActionError","InvalidTxError"],"props":{}},"UnsuitableStakingKey":{"name":"UnsuitableStakingKey","subtypes":[],"props":{"public_key":""}},"Closed":{"name":"Closed","subtypes":[],"props":{}},"InternalError":{"name":"InternalError","subtypes":[],"props":{}},"ServerError":{"name":"ServerError","subtypes":["TxExecutionError","Timeout","Closed","InternalError"],"props":{}},"Timeout":{"name":"Timeout","subtypes":[],"props":{}}}}')})),parcelRequire.register("jnUAd",(function(e,t){e.exports=JSON.parse('{"GasLimitExceeded":"Exceeded the maximum amount of gas allowed to burn per contract","MethodEmptyName":"Method name is empty","WasmerCompileError":"Wasmer compilation error: {{msg}}","GuestPanic":"Smart contract panicked: {{panic_msg}}","Memory":"Error creating Wasm memory","GasExceeded":"Exceeded the prepaid gas","MethodUTF8Error":"Method name is not valid UTF8 string","BadUTF16":"String encoding is bad UTF-16 sequence","WasmTrap":"WebAssembly trap: {{msg}}","GasInstrumentation":"Gas instrumentation failed or contract has denied instructions.","InvalidPromiseIndex":"{{promise_idx}} does not correspond to existing promises","InvalidPromiseResultIndex":"Accessed invalid promise result index: {{result_idx}}","Deserialization":"Error happened while deserializing the module","MethodNotFound":"Contract method is not found","InvalidRegisterId":"Accessed invalid register id: {{register_id}}","InvalidReceiptIndex":"VM Logic returned an invalid receipt index: {{receipt_index}}","EmptyMethodName":"Method name is empty in contract call","CannotReturnJointPromise":"Returning joint promise is currently prohibited","StackHeightInstrumentation":"Stack instrumentation failed","CodeDoesNotExist":"Cannot find contract code for account {{account_id}}","MethodInvalidSignature":"Invalid method signature","IntegerOverflow":"Integer overflow happened during contract execution","MemoryAccessViolation":"MemoryAccessViolation","InvalidIteratorIndex":"Iterator index {{iterator_index}} does not exist","IteratorWasInvalidated":"Iterator {{iterator_index}} was invalidated after its creation by performing a mutable operation on trie","InvalidAccountId":"VM Logic returned an invalid account id","Serialization":"Error happened while serializing the module","CannotAppendActionToJointPromise":"Actions can only be appended to non-joint promise.","InternalMemoryDeclared":"Internal memory declaration has been found in the module","Instantiate":"Error happened during instantiation","ProhibitedInView":"{{method_name}} is not allowed in view calls","InvalidMethodName":"VM Logic returned an invalid method name","BadUTF8":"String encoding is bad UTF-8 sequence","BalanceExceeded":"Exceeded the account balance","LinkError":"Wasm contract link error: {{msg}}","InvalidPublicKey":"VM Logic provided an invalid public key","ActorNoPermission":"Actor {{actor_id}} doesn\'t have permission to account {{account_id}} to complete the action","LackBalanceForState":"The account {{account_id}} wouldn\'t have enough balance to cover storage, required to have {{amount}} yoctoNEAR more","ReceiverMismatch":"Wrong AccessKey used for transaction: transaction is sent to receiver_id={{tx_receiver}}, but is signed with function call access key that restricted to only use with receiver_id={{ak_receiver}}. Either change receiver_id in your transaction or switch to use a FullAccessKey.","CostOverflow":"Transaction gas or balance cost is too high","InvalidSignature":"Transaction is not signed with the given public key","AccessKeyNotFound":"Signer \\"{{account_id}}\\" doesn\'t have access key with the given public_key {{public_key}}","NotEnoughBalance":"Sender {{signer_id}} does not have enough balance {{balance}} for operation costing {{cost}}","NotEnoughAllowance":"Access Key {account_id}:{public_key} does not have enough balance {{allowance}} for transaction costing {{cost}}","Expired":"Transaction has expired","DeleteAccountStaking":"Account {{account_id}} is staking and can not be deleted","SignerDoesNotExist":"Signer {{signer_id}} does not exist","TriesToStake":"Account {{account_id}} tries to stake {{stake}}, but has staked {{locked}} and only has {{balance}}","AddKeyAlreadyExists":"The public key {{public_key}} is already used for an existing access key","InvalidSigner":"Invalid signer account ID {{signer_id}} according to requirements","CreateAccountNotAllowed":"The new account_id {{account_id}} can\'t be created by {{predecessor_id}}","RequiresFullAccess":"The transaction contains more then one action, but it was signed with an access key which allows transaction to apply only one specific action. To apply more then one actions TX must be signed with a full access key","TriesToUnstake":"Account {{account_id}} is not yet staked, but tries to unstake","InvalidNonce":"Transaction nonce {{tx_nonce}} must be larger than nonce of the used access key {{ak_nonce}}","AccountAlreadyExists":"Can\'t create a new account {{account_id}}, because it already exists","InvalidChain":"Transaction parent block hash doesn\'t belong to the current chain","AccountDoesNotExist":"Can\'t complete the action because account {{account_id}} doesn\'t exist","MethodNameMismatch":"Transaction method name {{method_name}} isn\'t allowed by the access key","DeleteAccountHasRent":"Account {{account_id}} can\'t be deleted. It has {{balance}}, which is enough to cover the rent","DeleteAccountHasEnoughBalance":"Account {{account_id}} can\'t be deleted. It has {{balance}}, which is enough to cover it\'s storage","InvalidReceiver":"Invalid receiver account ID {{receiver_id}} according to requirements","DeleteKeyDoesNotExist":"Account {{account_id}} tries to remove an access key that doesn\'t exist","Timeout":"Timeout exceeded","Closed":"Connection closed"}')})),parcelRequire.register("7yV2x",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Timeout=e.exports.InternalError=e.exports.Closed=e.exports.UnsuitableStakingKey=e.exports.TriesToUnstake=e.exports.TriesToStake=e.exports.TotalPrepaidGasExceeded=e.exports.TotalNumberOfActionsExceeded=e.exports.SignerDoesNotExist=e.exports.RequiresFullAccess=e.exports.ReceiverMismatch=e.exports.OnlyImplicitAccountCreationAllowed=e.exports.NotEnoughBalance=e.exports.NotEnoughAllowance=e.exports.MethodNameMismatch=e.exports.LackBalanceForState=e.exports.InvalidSignerId=e.exports.InvalidSignature=e.exports.InvalidReceiverId=e.exports.InvalidPredecessorId=e.exports.InvalidNonce=e.exports.InvalidDataReceiverId=e.exports.ReceiptValidationError=e.exports.InvalidChain=e.exports.InsufficientStake=e.exports.FunctionCallZeroAttachedGas=e.exports.FunctionCallMethodNameLengthExceeded=e.exports.FunctionCallArgumentsLengthExceeded=e.exports.Expired=e.exports.DepositWithFunctionCall=e.exports.DeleteKeyDoesNotExist=e.exports.DeleteActionMustBeFinal=e.exports.DeleteAccountStaking=e.exports.CreateAccountOnlyByRegistrar=e.exports.CreateAccountNotAllowed=e.exports.CostOverflow=e.exports.BalanceMismatchError=e.exports.AddKeyMethodNamesNumberOfBytesExceeded=e.exports.AddKeyMethodNameLengthExceeded=e.exports.AddKeyAlreadyExists=e.exports.ActorNoPermission=e.exports.ActionsValidationError=e.exports.AccountDoesNotExist=e.exports.AccountAlreadyExists=e.exports.AccessKeyNotFound=e.exports.InvalidAccessKeyError=e.exports.InvalidTxError=e.exports.WriteError=e.exports.WasmerCompileError=e.exports.WasmUnknownError=e.exports.ValueLengthExceeded=e.exports.Unreachable=e.exports.TotalLogLengthExceeded=e.exports.StackOverflow=e.exports.StackHeightInstrumentation=e.exports.SerializationError=e.exports.Serialization=e.exports.ReturnedValueLengthExceeded=e.exports.ReadError=e.exports.ProhibitedInView=e.exports.NumberPromisesExceeded=e.exports.NumberOfLogsExceeded=e.exports.NumberInputDataDependenciesExceeded=e.exports.MisalignedAtomicAccess=e.exports.MethodUTF8Error=e.exports.MethodNotFound=e.exports.MethodInvalidSignature=e.exports.MethodEmptyName=e.exports.MethodResolveError=e.exports.MemoryOutOfBounds=e.exports.MemoryAccessViolation=e.exports.Memory=e.exports.LinkError=e.exports.KeyLengthExceeded=e.exports.IteratorWasInvalidated=e.exports.InvalidRegisterId=e.exports.InvalidReceiptIndex=e.exports.InvalidPublicKey=e.exports.InvalidPromiseResultIndex=e.exports.InvalidPromiseIndex=e.exports.InvalidMethodName=e.exports.InvalidIteratorIndex=e.exports.InvalidAccountId=e.exports.InternalMemoryDeclared=e.exports.IntegerOverflow=e.exports.Instantiate=e.exports.IncorrectCallIndirectSignature=e.exports.IllegalArithmetic=e.exports.GuestPanic=e.exports.GenericTrap=e.exports.GasLimitExceeded=e.exports.GasInstrumentation=e.exports.GasExceeded=e.exports.EmptyMethodName=e.exports.DeserializationError=e.exports.Deserialization=e.exports.PrepareError=e.exports.Deprecated=e.exports.ContractSizeExceeded=e.exports.CodeDoesNotExist=e.exports.CompilationError=e.exports.CannotReturnJointPromise=e.exports.CannotAppendActionToJointPromise=e.exports.CallIndirectOOB=e.exports.CacheError=e.exports.BreakpointTrap=e.exports.WasmTrap=e.exports.BalanceExceeded=e.exports.BadUTF8=e.exports.BadUTF16=e.exports.HostError=e.exports.FunctionCallError=e.exports.ActionError=e.exports.TxExecutionError=e.exports.ServerError=void 0;var r=parcelRequire("aZkQq");class a extends r.TypedError{}e.exports.ServerError=a;class n extends a{}e.exports.TxExecutionError=n;class o extends n{}e.exports.ActionError=o;class i extends o{}e.exports.FunctionCallError=i;class s extends i{}e.exports.HostError=s;e.exports.BadUTF16=class extends s{};e.exports.BadUTF8=class extends s{};e.exports.BalanceExceeded=class extends s{};class c extends i{}e.exports.WasmTrap=c;e.exports.BreakpointTrap=class extends c{};class l extends r.TypedError{}e.exports.CacheError=l;e.exports.CallIndirectOOB=class extends c{};e.exports.CannotAppendActionToJointPromise=class extends s{};e.exports.CannotReturnJointPromise=class extends s{};class d extends i{}e.exports.CompilationError=d;e.exports.CodeDoesNotExist=class extends d{};e.exports.ContractSizeExceeded=class extends s{};e.exports.Deprecated=class extends s{};class u extends d{}e.exports.PrepareError=u;e.exports.Deserialization=class extends u{};e.exports.DeserializationError=class extends l{};e.exports.EmptyMethodName=class extends s{};e.exports.GasExceeded=class extends s{};e.exports.GasInstrumentation=class extends u{};e.exports.GasLimitExceeded=class extends s{};e.exports.GenericTrap=class extends c{};e.exports.GuestPanic=class extends s{};e.exports.IllegalArithmetic=class extends c{};e.exports.IncorrectCallIndirectSignature=class extends c{};e.exports.Instantiate=class extends u{};e.exports.IntegerOverflow=class extends s{};e.exports.InternalMemoryDeclared=class extends u{};e.exports.InvalidAccountId=class extends s{};e.exports.InvalidIteratorIndex=class extends s{};e.exports.InvalidMethodName=class extends s{};e.exports.InvalidPromiseIndex=class extends s{};e.exports.InvalidPromiseResultIndex=class extends s{};e.exports.InvalidPublicKey=class extends s{};e.exports.InvalidReceiptIndex=class extends s{};e.exports.InvalidRegisterId=class extends s{};e.exports.IteratorWasInvalidated=class extends s{};e.exports.KeyLengthExceeded=class extends s{};e.exports.LinkError=class extends i{};e.exports.Memory=class extends u{};e.exports.MemoryAccessViolation=class extends s{};e.exports.MemoryOutOfBounds=class extends c{};class f extends i{}e.exports.MethodResolveError=f;e.exports.MethodEmptyName=class extends f{};e.exports.MethodInvalidSignature=class extends f{};e.exports.MethodNotFound=class extends f{};e.exports.MethodUTF8Error=class extends f{};e.exports.MisalignedAtomicAccess=class extends c{};e.exports.NumberInputDataDependenciesExceeded=class extends s{};e.exports.NumberOfLogsExceeded=class extends s{};e.exports.NumberPromisesExceeded=class extends s{};e.exports.ProhibitedInView=class extends s{};e.exports.ReadError=class extends l{};e.exports.ReturnedValueLengthExceeded=class extends s{};e.exports.Serialization=class extends u{};e.exports.SerializationError=class extends l{};e.exports.StackHeightInstrumentation=class extends u{};e.exports.StackOverflow=class extends c{};e.exports.TotalLogLengthExceeded=class extends s{};e.exports.Unreachable=class extends c{};e.exports.ValueLengthExceeded=class extends s{};e.exports.WasmUnknownError=class extends i{};e.exports.WasmerCompileError=class extends d{};e.exports.WriteError=class extends l{};class h extends n{}e.exports.InvalidTxError=h;class p extends h{}e.exports.InvalidAccessKeyError=p;e.exports.AccessKeyNotFound=class extends p{};e.exports.AccountAlreadyExists=class extends o{};e.exports.AccountDoesNotExist=class extends o{};class $ extends r.TypedError{}e.exports.ActionsValidationError=$;e.exports.ActorNoPermission=class extends o{};e.exports.AddKeyAlreadyExists=class extends o{};e.exports.AddKeyMethodNameLengthExceeded=class extends ${};e.exports.AddKeyMethodNamesNumberOfBytesExceeded=class extends ${};class b extends r.TypedError{}e.exports.BalanceMismatchError=b;e.exports.CostOverflow=class extends h{};e.exports.CreateAccountNotAllowed=class extends o{};e.exports.CreateAccountOnlyByRegistrar=class extends o{};e.exports.DeleteAccountStaking=class extends o{};e.exports.DeleteActionMustBeFinal=class extends ${};e.exports.DeleteKeyDoesNotExist=class extends o{};e.exports.DepositWithFunctionCall=class extends p{};e.exports.Expired=class extends h{};e.exports.FunctionCallArgumentsLengthExceeded=class extends ${};e.exports.FunctionCallMethodNameLengthExceeded=class extends ${};e.exports.FunctionCallZeroAttachedGas=class extends ${};e.exports.InsufficientStake=class extends o{};e.exports.InvalidChain=class extends h{};class g extends r.TypedError{}e.exports.ReceiptValidationError=g;e.exports.InvalidDataReceiverId=class extends g{};e.exports.InvalidNonce=class extends h{};e.exports.InvalidPredecessorId=class extends g{};e.exports.InvalidReceiverId=class extends h{};e.exports.InvalidSignature=class extends h{};e.exports.InvalidSignerId=class extends h{};e.exports.LackBalanceForState=class extends o{};e.exports.MethodNameMismatch=class extends p{};e.exports.NotEnoughAllowance=class extends p{};e.exports.NotEnoughBalance=class extends h{};e.exports.OnlyImplicitAccountCreationAllowed=class extends o{};e.exports.ReceiverMismatch=class extends p{};e.exports.RequiresFullAccess=class extends p{};e.exports.SignerDoesNotExist=class extends h{};e.exports.TotalNumberOfActionsExceeded=class extends ${};e.exports.TotalPrepaidGasExceeded=class extends ${};e.exports.TriesToStake=class extends o{};e.exports.TriesToUnstake=class extends o{};e.exports.UnsuitableStakingKey=class extends ${};e.exports.Closed=class extends a{};e.exports.InternalError=class extends a{};e.exports.Timeout=class extends a{}})),parcelRequire.register("5Ps5n",(function(e,t){var r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,a){void 0===a&&(a=r),Object.defineProperty(e,a,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,a){void 0===a&&(a=r),e[a]=t[r]}),a=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.rpc_errors=e.exports.KeyPairEd25519=e.exports.KeyPair=e.exports.PublicKey=e.exports.format=e.exports.enums=e.exports.web=e.exports.serialize=e.exports.network=e.exports.key_pair=void 0;const o=n(parcelRequire("c6vjW"));e.exports.key_pair=o;const i=n(parcelRequire("jc8X3"));e.exports.network=i;const s=n(parcelRequire("kK9YP"));e.exports.serialize=s;const c=n(parcelRequire("7o3DH"));e.exports.web=c;const l=n(parcelRequire("hHMds"));e.exports.enums=l;const d=n(parcelRequire("1agJp"));e.exports.format=d;const u=n(parcelRequire("hrbaI"));e.exports.rpc_errors=u,Object.defineProperty(e.exports,"PublicKey",{enumerable:!0,get:function(){return parcelRequire("c6vjW").PublicKey}}),Object.defineProperty(e.exports,"KeyPair",{enumerable:!0,get:function(){return parcelRequire("c6vjW").KeyPair}}),Object.defineProperty(e.exports,"KeyPairEd25519",{enumerable:!0,get:function(){return parcelRequire("c6vjW").KeyPairEd25519}})})),parcelRequire.register("jc8X3",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0})})),parcelRequire.register("1agJp",(function(e,t){var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.parseNearAmount=e.exports.formatNearAmount=e.exports.NEAR_NOMINATION=e.exports.NEAR_NOMINATION_EXP=void 0;const a=r(parcelRequire("hi2iv"));e.exports.NEAR_NOMINATION_EXP=24,e.exports.NEAR_NOMINATION=new a.default("10",10).pow(new a.default(e.exports.NEAR_NOMINATION_EXP,10));const n=[],o=new a.default(10);for(let t=0,r=new a.default(5);t0&&o.iadd(n[t])}const i=(t=o.toString()).substring(0,t.length-e.exports.NEAR_NOMINATION_EXP)||"0",s=t.substring(t.length-e.exports.NEAR_NOMINATION_EXP).padStart(e.exports.NEAR_NOMINATION_EXP,"0").substring(0,r);return`${function(e){const t=/(-?\d+)(\d{3})/;for(;t.test(e);)e=e.replace(t,"$1,$2");return e}(i)}.${s}`.replace(/\.?0*$/,"")},e.exports.parseNearAmount=function(t){if(!t)return null;const r=(t=t.replace(/,/g,"").trim()).split("."),a=r[0],n=r[1]||"";if(r.length>2||n.length>e.exports.NEAR_NOMINATION_EXP)throw new Error(`Cannot parse '${t}' as NEAR amount`);return""===(o=(o=a+n.padEnd(e.exports.NEAR_NOMINATION_EXP,"0")).replace(/^0+/,""))?"0":o;var o}})),parcelRequire.register("fiiGw",(function(e,t){var r=parcelRequire("fpMrF").Buffer,a=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.signTransaction=e.exports.createTransaction=e.exports.SCHEMA=e.exports.Action=e.exports.SignedTransaction=e.exports.Transaction=e.exports.Signature=e.exports.deleteAccount=e.exports.deleteKey=e.exports.addKey=e.exports.stake=e.exports.transfer=e.exports.functionCall=e.exports.deployContract=e.exports.createAccount=e.exports.DeleteAccount=e.exports.DeleteKey=e.exports.AddKey=e.exports.Stake=e.exports.Transfer=e.exports.FunctionCall=e.exports.DeployContract=e.exports.CreateAccount=e.exports.IAction=e.exports.functionCallAccessKey=e.exports.fullAccessKey=e.exports.AccessKey=e.exports.AccessKeyPermission=e.exports.FullAccessPermission=e.exports.FunctionCallPermission=void 0;const n=a(parcelRequire("juLxs"));var o=parcelRequire("hHMds"),i=parcelRequire("NLiRa"),s=parcelRequire("c6vjW");class c extends o.Assignable{}e.exports.FunctionCallPermission=c;class l extends o.Assignable{}e.exports.FullAccessPermission=l;class d extends o.Enum{}e.exports.AccessKeyPermission=d;class u extends o.Assignable{}e.exports.AccessKey=u,e.exports.fullAccessKey=function(){return new u({nonce:0,permission:new d({fullAccess:new l({})})})},e.exports.functionCallAccessKey=function(e,t,r){return new u({nonce:0,permission:new d({functionCall:new c({receiverId:e,allowance:r,methodNames:t})})})};class f extends o.Assignable{}e.exports.IAction=f;class h extends f{}e.exports.CreateAccount=h;class p extends f{}e.exports.DeployContract=p;class $ extends f{}e.exports.FunctionCall=$;class b extends f{}e.exports.Transfer=b;class g extends f{}e.exports.Stake=g;class m extends f{}e.exports.AddKey=m;class y extends f{}e.exports.DeleteKey=y;class v extends f{}e.exports.DeleteAccount=v,e.exports.createAccount=function(){return new k({createAccount:new h({})})},e.exports.deployContract=function(e){return new k({deployContract:new p({code:e})})},e.exports.functionCall=function(e,t,a,n){const o=t,i=void 0!==o.byteLength&&o.byteLength===o.length?t:r.from(JSON.stringify(t));return new k({functionCall:new $({methodName:e,args:i,gas:a,deposit:n})})},e.exports.transfer=function(e){return new k({transfer:new b({deposit:e})})},e.exports.stake=function(e,t){return new k({stake:new g({stake:e,publicKey:t})})},e.exports.addKey=function(e,t){return new k({addKey:new m({publicKey:e,accessKey:t})})},e.exports.deleteKey=function(e){return new k({deleteKey:new y({publicKey:e})})},e.exports.deleteAccount=function(e){return new k({deleteAccount:new v({beneficiaryId:e})})};class w extends o.Assignable{}e.exports.Signature=w;class x extends o.Assignable{encode(){return i.serialize(e.exports.SCHEMA,this)}static decode(t){return i.deserialize(e.exports.SCHEMA,x,t)}}e.exports.Transaction=x;class _ extends o.Assignable{encode(){return i.serialize(e.exports.SCHEMA,this)}static decode(t){return i.deserialize(e.exports.SCHEMA,_,t)}}e.exports.SignedTransaction=_;class k extends o.Enum{}function S(e,t,r,a,n,o){return new x({signerId:e,publicKey:t,nonce:a,receiverId:r,actions:n,blockHash:o})}async function E(t,r,a,o){const s=i.serialize(e.exports.SCHEMA,t),c=new Uint8Array(n.default.sha256.array(s)),l=await r.signMessage(s,a,o);return[c,new _({transaction:t,signature:new w({keyType:t.publicKey.keyType,data:l.signature})})]}e.exports.Action=k,e.exports.SCHEMA=new Map([[w,{kind:"struct",fields:[["keyType","u8"],["data",[64]]]}],[_,{kind:"struct",fields:[["transaction",x],["signature",w]]}],[x,{kind:"struct",fields:[["signerId","string"],["publicKey",s.PublicKey],["nonce","u64"],["receiverId","string"],["blockHash",[32]],["actions",[k]]]}],[s.PublicKey,{kind:"struct",fields:[["keyType","u8"],["data",[32]]]}],[u,{kind:"struct",fields:[["nonce","u64"],["permission",d]]}],[d,{kind:"enum",field:"enum",values:[["functionCall",c],["fullAccess",l]]}],[c,{kind:"struct",fields:[["allowance",{kind:"option",type:"u128"}],["receiverId","string"],["methodNames",["string"]]]}],[l,{kind:"struct",fields:[]}],[k,{kind:"enum",field:"enum",values:[["createAccount",h],["deployContract",p],["functionCall",$],["transfer",b],["stake",g],["addKey",m],["deleteKey",y],["deleteAccount",v]]}],[h,{kind:"struct",fields:[]}],[p,{kind:"struct",fields:[["code",["u8"]]]}],[$,{kind:"struct",fields:[["methodName","string"],["args",["u8"]],["gas","u64"],["deposit","u128"]]}],[b,{kind:"struct",fields:[["deposit","u128"]]}],[g,{kind:"struct",fields:[["stake","u128"],["publicKey",s.PublicKey]]}],[m,{kind:"struct",fields:[["publicKey",s.PublicKey],["accessKey",u]]}],[y,{kind:"struct",fields:[["publicKey",s.PublicKey]]}],[v,{kind:"struct",fields:[["beneficiaryId","string"]]}]]),e.exports.createTransaction=S,e.exports.signTransaction=async function(...e){if(e[0].constructor===x){const[t,r,a,n]=e;return E(t,r,a,n)}{const[t,r,a,n,o,i,s]=e;return E(S(i,await o.getPublicKey(i,s),t,r,a,n),o,i,s)}}})),parcelRequire.register("juLxs",(function(module,exports){var $a5Ykp=parcelRequire("a5Ykp"); +/** + * [js-sha256]{@link https://github.com/emn178/js-sha256} + * + * @version 0.9.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2017 + * @license MIT + */(function(){var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_SHA256_NO_NODE_JS&&"object"==typeof $a5Ykp&&$a5Ykp.versions&&$a5Ykp.versions.node;NODE_JS?root=$parcel$global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&module.exports,AMD="function"==typeof define&&define.amd,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks1=[];!root.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!ARRAY_BUFFER||!root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e,t){return function(r){return new Sha256(t,!0).update(r)[e]()}},createMethod=function(e){var t=createOutputMethod("hex",e);NODE_JS&&(t=nodeWrap(t,e)),t.create=function(){return new Sha256(e)},t.update=function(e){return t.create().update(e)};for(var r=0;r>6,i[c++]=128|63&o):o<55296||o>=57344?(i[c++]=224|o>>12,i[c++]=128|o>>6&63,i[c++]=128|63&o):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++a)),i[c++]=240|o>>18,i[c++]=128|o>>12&63,i[c++]=128|o>>6&63,i[c++]=128|63&o);e=i}else{if("object"!==n)throw new Error(ERROR);if(null===e)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||ARRAY_BUFFER&&ArrayBuffer.isView(e)))throw new Error(ERROR)}e.length>64&&(e=new Sha256(t,!0).update(e).array());var l=[],d=[];for(a=0;a<64;++a){var u=e[a]||0;l[a]=92^u,d[a]=54^u}Sha256.call(this,t,r),this.update(d),this.oKeyPad=l,this.inner=!0,this.sharedMemory=r}Sha256.prototype.update=function(e){if(!this.finalized){var t,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(ERROR);if(null===e)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||ARRAY_BUFFER&&ArrayBuffer.isView(e)))throw new Error(ERROR);t=!0}for(var a,n,o=0,i=e.length,s=this.blocks;o>2]|=e[o]<>2]|=a<>2]|=(192|a>>6)<>2]|=(128|63&a)<=57344?(s[n>>2]|=(224|a>>12)<>2]|=(128|a>>6&63)<>2]|=(128|63&a)<>2]|=(240|a>>18)<>2]|=(128|a>>12&63)<>2]|=(128|a>>6&63)<>2]|=(128|63&a)<=64?(this.block=s[16],this.start=n-64,this.hash(),this.hashed=!0):this.start=n}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=EXTRA[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var e,t,r,a,n,o,i,s,c,l=this.h0,d=this.h1,u=this.h2,f=this.h3,h=this.h4,p=this.h5,$=this.h6,b=this.h7,g=this.blocks;for(e=16;e<64;++e)t=((n=g[e-15])>>>7|n<<25)^(n>>>18|n<<14)^n>>>3,r=((n=g[e-2])>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,g[e]=g[e-16]+t+g[e-7]+r<<0;for(c=d&u,e=0;e<64;e+=4)this.first?(this.is224?(o=300032,b=(n=g[0]-1413257819)-150054599<<0,f=n+24177077<<0):(o=704751109,b=(n=g[0]-210244248)-1521486534<<0,f=n+143694565<<0),this.first=!1):(t=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),a=(o=l&d)^l&u^c,b=f+(n=b+(r=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+(h&p^~h&$)+K[e]+g[e])<<0,f=n+(t+a)<<0),t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),a=(i=f&l)^f&d^o,$=u+(n=$+(r=(b>>>6|b<<26)^(b>>>11|b<<21)^(b>>>25|b<<7))+(b&h^~b&p)+K[e+1]+g[e+1])<<0,t=((u=n+(t+a)<<0)>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),a=(s=u&f)^u&l^i,p=d+(n=p+(r=($>>>6|$<<26)^($>>>11|$<<21)^($>>>25|$<<7))+($&b^~$&h)+K[e+2]+g[e+2])<<0,t=((d=n+(t+a)<<0)>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),a=(c=d&u)^d&f^s,h=l+(n=h+(r=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&$^~p&b)+K[e+3]+g[e+3])<<0,l=n+(t+a)<<0;this.h0=this.h0+l<<0,this.h1=this.h1+d<<0,this.h2=this.h2+u<<0,this.h3=this.h3+f<<0,this.h4=this.h4+h<<0,this.h5=this.h5+p<<0,this.h6=this.h6+$<<0,this.h7=this.h7+b<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,a=this.h3,n=this.h4,o=this.h5,i=this.h6,s=this.h7,c=HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[15&e]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[15&r]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[15&a]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[15&n]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[15&o]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[15&i];return this.is224||(c+=HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[15&s]),c},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,a=this.h3,n=this.h4,o=this.h5,i=this.h6,s=this.h7,c=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,r>>24&255,r>>16&255,r>>8&255,255&r,a>>24&255,a>>16&255,a>>8&255,255&a,n>>24&255,n>>16&255,n>>8&255,255&n,o>>24&255,o>>16&255,o>>8&255,255&o,i>>24&255,i>>16&255,i>>8&255,255&i];return this.is224||c.push(s>>24&255,s>>16&255,s>>8&255,255&s),c},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e},HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224,AMD&&define((function(){return exports})))})()})),parcelRequire.register("ayEg4",(function(e,t){var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.diffEpochValidators=e.exports.findSeatPrice=void 0;const a=r(parcelRequire("hi2iv"));e.exports.findSeatPrice=function(e,t){const r=e.map((e=>new a.default(e.stake,10))).sort(((e,t)=>e.cmp(t))),n=new a.default(t),o=r.reduce(((e,t)=>e.add(t)));if(o.lt(n))throw new Error("Stakes are below seats");let i=new a.default(1),s=o.add(new a.default(1));for(;!i.eq(s.sub(new a.default(1)));){const e=i.add(s).div(new a.default(2));let t=!1,o=new a.default(0);for(let a=0;ar.set(e.account_id,e)));const a=new Set(t.map((e=>e.account_id)));return{newValidators:t.filter((e=>!r.has(e.account_id))),removedValidators:e.filter((e=>!a.has(e.account_id))),changedValidators:t.filter((e=>r.has(e.account_id)&&r.get(e.account_id).stake!=e.stake)).map((e=>({current:r.get(e.account_id),next:e})))}}})),parcelRequire.register("cbZQ6",(function(e,t){var r=parcelRequire("fpMrF").Buffer,a=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Account=void 0;const n=a(parcelRequire("hi2iv")),o=a(parcelRequire("dMko4"));var i=parcelRequire("fiiGw"),s=parcelRequire("gOMCy"),c=parcelRequire("NLiRa"),l=parcelRequire("c6vjW"),d=parcelRequire("aZkQq"),u=parcelRequire("hrbaI");const f=a(parcelRequire("ciCzS")),h=new n.default("30000000000000");function p(e){return JSON.parse(r.from(e).toString())}class ${get ready(){return o.default("Account.ready()")("not needed anymore, always ready"),Promise.resolve()}async fetchState(){o.default("Account.fetchState()")("use `Account.state()` instead")}async state(){return await this.connection.provider.query(`account/${this.accountId}`,"")}printLogsAndFailures(e,t){for(const r of t)console.log(`Receipt${r.receiptIds.length>1?"s":""}: ${r.receiptIds.join(", ")}`),this.printLogs(e,r.logs,"\t"),r.failure&&console.warn(`\tFailure [${e}]: ${r.failure}`)}printLogs(e,t,r=""){for(const a of t)console.log(`${r}Log [${e}]: ${a}`)}async signTransaction(e,t){const r=await this.findAccessKey(e,t);if(!r)throw new s.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair found in ${this.connection.signer}.`,"KeyNotFound");const{accessKey:a}=r,n=(await this.connection.provider.block({finality:"final"})).header.hash,o=++a.nonce;return await i.signTransaction(e,o,t,c.baseDecode(n),this.connection.signer,this.accountId,this.connection.networkId)}async signAndSendTransaction(e,t){let r,a;const n=await f.default(500,12,1.5,(async()=>{[r,a]=await this.signTransaction(e,t);const n=a.transaction.publicKey;try{return await this.connection.provider.sendTransaction(a)}catch(t){if("InvalidNonce"===t.type)return console.warn(`Retrying transaction ${e}:${c.baseEncode(r)} with new nonce.`),delete this.accessKeyByPublicKeyCache[n.toString()],null;throw t.context=new s.ErrorContext(c.baseEncode(r)),t}}));if(!n)throw new s.TypedError("nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.","RetriesExceeded");const o=[n.transaction_outcome,...n.receipts_outcome].reduce(((e,t)=>t.outcome.logs.length||"object"==typeof t.outcome.status&&"object"==typeof t.outcome.status.Failure?e.concat({receiptIds:t.outcome.receipt_ids,logs:t.outcome.logs,failure:void 0!==t.outcome.status.Failure?u.parseRpcError(t.outcome.status.Failure):null}):e),[]);if(this.printLogsAndFailures(a.transaction.receiverId,o),"object"==typeof n.status&&"object"==typeof n.status.Failure)throw n.status.Failure.error_message&&n.status.Failure.error_type?new s.TypedError(`Transaction ${n.transaction_outcome.id} failed. ${n.status.Failure.error_message}`,n.status.Failure.error_type):u.parseResultError(n);return n}async findAccessKey(e,t){const r=await this.connection.signer.getPublicKey(this.accountId,this.connection.networkId);if(!r)return null;const a=this.accessKeyByPublicKeyCache[r.toString()];if(void 0!==a)return{publicKey:r,accessKey:a};try{const e=await this.connection.provider.query(`access_key/${this.accountId}/${r.toString()}`,"");return this.accessKeyByPublicKeyCache[r.toString()]=e,{publicKey:r,accessKey:e}}catch(e){if("AccessKeyDoesNotExist"==e.type)return null;throw e}}async createAndDeployContract(e,t,r,a){const n=i.fullAccessKey();await this.signAndSendTransaction(e,[i.createAccount(),i.transfer(a),i.addKey(l.PublicKey.from(t),n),i.deployContract(r)]);return new $(this.connection,e)}async sendMoney(e,t){return this.signAndSendTransaction(e,[i.transfer(t)])}async createAccount(e,t,r){const a=i.fullAccessKey();return this.signAndSendTransaction(e,[i.createAccount(),i.transfer(r),i.addKey(l.PublicKey.from(t),a)])}async deleteAccount(e){return this.signAndSendTransaction(this.accountId,[i.deleteAccount(e)])}async deployContract(e){return this.signAndSendTransaction(this.accountId,[i.deployContract(e)])}async functionCall(e,t,r,a,n){return r=r||{},this.validateArgs(r),this.signAndSendTransaction(e,[i.functionCall(t,r,a||h,n)])}async addKey(e,t,r,a){let n;return r||(r=[]),Array.isArray(r)||(r=[r]),n=t?i.functionCallAccessKey(t,r,a):i.fullAccessKey(),this.signAndSendTransaction(this.accountId,[i.addKey(l.PublicKey.from(e),n)])}async deleteKey(e){return this.signAndSendTransaction(this.accountId,[i.deleteKey(l.PublicKey.from(e))])}async stake(e,t){return this.signAndSendTransaction(this.accountId,[i.stake(t,l.PublicKey.from(e))])}validateArgs(e){if(!(void 0!==e.byteLength&&e.byteLength===e.length)&&(Array.isArray(e)||"object"!=typeof e))throw new d.PositionalArgsError}async viewFunction(e,t,a,{parse:n=p}={}){a=a||{},this.validateArgs(a);const o=await this.connection.provider.query(`call/${e}/${t}`,c.baseEncode(JSON.stringify(a)));return o.logs&&this.printLogs(e,o.logs),o.result&&o.result.length>0&&n(r.from(o.result))}async viewState(e,t){const{blockId:a,finality:n}=t||{},{values:o}=await this.connection.provider.query({request_type:"view_state",block_id:a,finality:a?void 0:n||"optimistic",account_id:this.accountId,prefix_base64:r.from(e).toString("base64")});return o.map((({key:e,value:t})=>({key:r.from(e,"base64"),value:r.from(t,"base64")})))}async getAccessKeys(){const e=await this.connection.provider.query(`access_key/${this.accountId}`,"");return Array.isArray(e)?e:e.keys}async getAccountDetails(){const e=await this.getAccessKeys(),t={authorizedApps:[],transactions:[]};return e.map((e=>{if(void 0!==e.access_key.permission.FunctionCall){const r=e.access_key.permission.FunctionCall;t.authorizedApps.push({contractId:r.receiver_id,amount:r.allowance,publicKey:e.public_key})}})),t}async getAccountBalance(){const e=await this.connection.provider.experimental_protocolConfig({finality:"final"}),t=await this.state(),r=new n.default(e.runtime_config.storage_amount_per_byte),a=new n.default(t.storage_usage).mul(r),o=new n.default(t.locked),i=new n.default(t.amount).add(o),s=i.sub(n.default.max(o,a));return{total:i.toString(),stateStaked:a.toString(),staked:o.toString(),available:s.toString()}}constructor(e,t){this.accessKeyByPublicKeyCache={},this.connection=e,this.accountId=t}}e.exports.Account=$})),parcelRequire.register("1Ezc0",(function(e,t){var r=parcelRequire("l1eCU"),a=parcelRequire("fpMrF").Buffer,n=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Account2FA=e.exports.AccountMultisig=e.exports.MULTISIG_CONFIRM_METHODS=e.exports.MULTISIG_VIEW_METHODS=e.exports.MULTISIG_CHANGE_METHODS=e.exports.MULTISIG_DEPOSIT=e.exports.MULTISIG_GAS=e.exports.MULTISIG_ALLOWANCE=e.exports.MULTISIG_STORAGE_KEY=void 0;const o=n(parcelRequire("hi2iv"));var i=parcelRequire("cbZQ6"),s=parcelRequire("hMpPn"),c=parcelRequire("1agJp"),l=parcelRequire("c6vjW"),d=parcelRequire("fiiGw"),u=parcelRequire("7o3DH");e.exports.MULTISIG_STORAGE_KEY="__multisigRequest",e.exports.MULTISIG_ALLOWANCE=new o.default(c.parseNearAmount("1")),e.exports.MULTISIG_GAS=new o.default("100000000000000"),e.exports.MULTISIG_DEPOSIT=new o.default("0"),e.exports.MULTISIG_CHANGE_METHODS=["add_request","add_request_and_confirm","delete_request","confirm"],e.exports.MULTISIG_VIEW_METHODS=["get_request_nonce","list_request_ids"],e.exports.MULTISIG_CONFIRM_METHODS=["confirm"];let f={[e.exports.MULTISIG_STORAGE_KEY]:null};class h extends i.Account{async signAndSendTransactionWithAccount(e,t){return super.signAndSendTransaction(e,t)}async signAndSendTransaction(t,r){const{accountId:n}=this;if(this.isDeleteAction(r))return await super.signAndSendTransaction(n,r);await this.deleteUnconfirmedRequests();const o=await this.getRequestNonce();this.setRequest({accountId:n,requestId:o,actions:r});const i=a.from(JSON.stringify({request:{receiver_id:t,actions:b(r,n,t)}})),s=await super.signAndSendTransaction(n,[d.functionCall("add_request_and_confirm",i,e.exports.MULTISIG_GAS,e.exports.MULTISIG_DEPOSIT)]);return this.onAddRequestResult&&await this.onAddRequestResult(s),s}async deleteUnconfirmedRequests(){const{contract:e}=this,t=await this.getRequestIds();for(const r of t)try{await e.delete_request({request_id:r})}catch(e){console.warn("Attempt to delete an earlier request before 15 minutes failed. Will try again.")}}async getRequestNonce(){return this.contract.get_request_nonce()}async getRequestIds(){return this.contract.list_request_ids()}isDeleteAction(e){return e&&e[0]&&e[0].functionCall&&"delete_request"===e[0].functionCall.methodName}getRequest(){return this.storage?JSON.parse(this.storage.getItem(e.exports.MULTISIG_STORAGE_KEY)||"{}"):f[e.exports.MULTISIG_STORAGE_KEY]}setRequest(t){if(this.storage)return this.storage.setItem(e.exports.MULTISIG_STORAGE_KEY,JSON.stringify(t));f[e.exports.MULTISIG_STORAGE_KEY]=t}constructor(e,t,r){super(e,t),this.storage=r.storage,this.onAddRequestResult=r.onAddRequestResult,this.contract=$(this)}}e.exports.AccountMultisig=h;e.exports.Account2FA=class extends h{async signAndSendTransaction(e,t){await super.signAndSendTransaction(e,t),await this.sendCode();const r=await this.promptAndVerify();return this.onConfirmResult&&await this.onConfirmResult(r),r}async deployMultisig(t){const{accountId:r}=this,n=(await this.getRecoveryMethods()).data.filter((({kind:e,publicKey:t})=>("phrase"===e||"ledger"===e)&&null!==t)).map((e=>e.publicKey)),o=(await this.getAccessKeys()).filter((({public_key:e,access_key:{permission:t}})=>"FullAccess"===t&&!n.includes(e))).map((e=>e.public_key)).map(p),i=p((await this.postSignedJson("/2fa/getAccessKey",{accountId:r})).publicKey),s=a.from(JSON.stringify({num_confirmations:2})),c=[...o.map((e=>d.deleteKey(e))),...o.map((t=>d.addKey(t,d.functionCallAccessKey(r,e.exports.MULTISIG_CHANGE_METHODS,null)))),d.addKey(i,d.functionCallAccessKey(r,e.exports.MULTISIG_CONFIRM_METHODS,null)),d.deployContract(t)];return"11111111111111111111111111111111"===(await this.state()).code_hash&&c.push(d.functionCall("new",s,e.exports.MULTISIG_GAS,e.exports.MULTISIG_DEPOSIT)),console.log("deploying multisig contract for",r),await super.signAndSendTransactionWithAccount(r,c)}async disable(e){const{accountId:t}=this,r=(await this.getAccessKeys()).filter((({access_key:e})=>e&&e.permission&&e.permission.FunctionCall&&e.permission.FunctionCall.receiver_id===t&&e.permission.FunctionCall.method_names&&4===e.permission.FunctionCall.method_names.length&&e.permission.FunctionCall.method_names.includes("add_request_and_confirm"))),a=l.PublicKey.from((await this.postSignedJson("/2fa/getAccessKey",{accountId:t})).publicKey),n=[d.deleteKey(a),...r.map((({public_key:e})=>d.deleteKey(e))),...r.map((({public_key:e})=>d.addKey(e,null))),d.deployContract(e)];return console.log("disabling 2fa for",t),await this.signAndSendTransaction(t,n)}async sendCodeDefault(){const{accountId:e}=this,{requestId:t,actions:r}=this.getRequest();if(this.isDeleteAction(r))return;const a=await this.get2faMethod();return await this.postSignedJson("/2fa/send",{accountId:e,method:a,requestId:t}),t}async getCodeDefault(e){throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is "email" or "phone".')}async promptAndVerify(){const e=await this.get2faMethod(),t=await this.getCode(e);try{return await this.verifyCode(t)}catch(e){if(console.warn("Error validating security code:",e),e.toString().includes("invalid 2fa code provided")||e.toString().includes("2fa code not valid"))return await this.promptAndVerify();throw e}}async verifyCodeDefault(e){const{accountId:t}=this,r=this.getRequest();if(!r)throw new Error("no request pending");const{requestId:a}=r;return await this.postSignedJson("/2fa/verify",{accountId:t,securityCode:e,requestId:a})}async getRecoveryMethods(){const{accountId:e}=this;return{accountId:e,data:await this.postSignedJson("/account/recoveryMethods",{accountId:e})}}async get2faMethod(){let{data:e}=await this.getRecoveryMethods();if(e&&e.length&&(e=e.find((e=>0===e.kind.indexOf("2fa-")))),!e)return null;const{kind:t,detail:r}=e;return{kind:t,detail:r}}async signatureFor(){const{accountId:e}=this,t=(await this.connection.provider.block({finality:"final"})).header.height.toString(),r=await this.connection.signer.signMessage(a.from(t),e,this.connection.networkId);return{blockNumber:t,blockNumberSignature:a.from(r.signature).toString("base64")}}async postSignedJson(e,t){return await u.fetchJson(this.helperUrl+e,JSON.stringify((0,r.default)({},t,await this.signatureFor())))}constructor(e,t,r){super(e,t,r),this.helperUrl="https://helper.testnet.near.org",this.helperUrl=r.helperUrl||this.helperUrl,this.storage=r.storage,this.sendCode=r.sendCode||this.sendCodeDefault,this.getCode=r.getCode||this.getCodeDefault,this.verifyCode=r.verifyCode||this.verifyCodeDefault,this.onConfirmResult=r.onConfirmResult,this.contract=$(this)}};const p=e=>l.PublicKey.from(e),$=t=>new s.Contract(t,t.accountId,{viewMethods:e.exports.MULTISIG_VIEW_METHODS,changeMethods:e.exports.MULTISIG_CHANGE_METHODS}),b=(t,r,n)=>t.map((t=>{const o=t.enum,{gas:i,publicKey:s,methodName:c,args:l,deposit:d,accessKey:u,code:f}=t[o],h={type:o[0].toUpperCase()+o.substr(1),gas:i&&i.toString()||void 0,public_key:s&&(p=s,p.toString().replace("ed25519:",""))||void 0,method_name:c,args:l&&a.from(l).toString("base64")||void 0,code:f&&a.from(f).toString("base64")||void 0,amount:d&&d.toString()||void 0,deposit:d&&d.toString()||"0",permission:void 0};var p;if(u&&(n===r&&"fullAccess"!==u.permission.enum&&(h.permission={receiver_id:r,allowance:e.exports.MULTISIG_ALLOWANCE.toString(),method_names:e.exports.MULTISIG_CHANGE_METHODS}),"functionCall"===u.permission.enum)){const{receiverId:e,methodNames:t,allowance:r}=u.permission.functionCall;h.permission={receiver_id:e,allowance:r&&r.toString()||void 0,method_names:t}}return h}))})),parcelRequire.register("hMpPn",(function(e,t){var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Contract=void 0;const a=r(parcelRequire("hi2iv"));var n=parcelRequire("gOMCy"),o=parcelRequire("aZkQq");function i(e,t){return{[e]:(...e)=>t(...e)}[e]}const s=e=>e&&void 0!==e.byteLength&&e.byteLength===e.length,c=e=>"[object Object]"===Object.prototype.toString.call(e);e.exports.Contract=class{constructor(e,t,r){this.account=e,this.contractId=t;const{viewMethods:l=[],changeMethods:d=[]}=r;l.forEach((e=>{Object.defineProperty(this,e,{writable:!1,enumerable:!0,value:i(e,(async(t={},r={},...a)=>{if(a.length||!c(t)&&!s(t)||!c(r))throw new o.PositionalArgsError;return this.account.viewFunction(this.contractId,e,t,r)}))})})),d.forEach((e=>{Object.defineProperty(this,e,{writable:!1,enumerable:!0,value:i(e,(async(t={},r,i,...l)=>{if(l.length||!c(t)&&!s(t))throw new o.PositionalArgsError;!function(e){const t="number, decimal string or BN";for(const r of Object.keys(e)){const n=e[r];if(n&&!a.default.isBN(n)&&isNaN(n))throw new o.ArgumentTypeError(r,t,n)}}({gas:r,amount:i});const d=await this.account.functionCall(this.contractId,e,t,r,i);return n.getTransactionLastResult(d)}))})}))}}})),parcelRequire.register("g7FOL",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.UrlAccountCreator=e.exports.LocalAccountCreator=e.exports.AccountCreator=void 0;var r=parcelRequire("7o3DH");class a{}e.exports.AccountCreator=a;e.exports.LocalAccountCreator=class extends a{async createAccount(e,t){await this.masterAccount.createAccount(e,t,this.initialBalance)}constructor(e,t){super(),this.masterAccount=e,this.initialBalance=t}};e.exports.UrlAccountCreator=class extends a{async createAccount(e,t){await r.fetchJson(`${this.helperUrl}/account`,JSON.stringify({newAccountId:e,newAccountPublicKey:t.toString()}))}constructor(e,t){super(),this.connection=e,this.helperUrl=t}}})),parcelRequire.register("eHVDy",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Connection=void 0;var r=parcelRequire("gOMCy"),a=parcelRequire("8pnRt");class n{static fromConfig(e){const t=function(e){switch(e.type){case void 0:return e;case"JsonRpcProvider":return new r.JsonRpcProvider(e.args.url);default:throw new Error(`Unknown provider type ${e.type}`)}}(e.provider),o=function(e){switch(e.type){case void 0:return e;case"InMemorySigner":return new a.InMemorySigner(e.keyStore);default:throw new Error(`Unknown signer type ${e.type}`)}}(e.signer);return new n(e.networkId,t,o)}constructor(e,t,r){this.networkId=e,this.provider=t,this.signer=r}}e.exports.Connection=n})),parcelRequire.register("8pnRt",(function(e,t){var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.InMemorySigner=e.exports.Signer=void 0;const a=r(parcelRequire("juLxs"));var n=parcelRequire("c6vjW"),o=parcelRequire("fcf52");class i{}e.exports.Signer=i;class s extends i{static async fromKeyPair(e,t,r){const a=new o.InMemoryKeyStore;return await a.setKey(e,t,r),new s(a)}async createKey(e,t){const r=n.KeyPair.fromRandom("ed25519");return await this.keyStore.setKey(t,e,r),r.getPublicKey()}async getPublicKey(e,t){const r=await this.keyStore.getKey(t,e);return null===r?null:r.getPublicKey()}async signMessage(e,t,r){const n=new Uint8Array(a.default.sha256.array(e));if(!t)throw new Error("InMemorySigner requires provided account id");const o=await this.keyStore.getKey(r,t);if(null===o)throw new Error(`Key for ${t} not found in ${r}`);return o.sign(n)}toString(){return`InMemorySigner(${this.keyStore})`}constructor(e){super(),this.keyStore=e}}e.exports.InMemorySigner=s})),parcelRequire.register("dcQbI",(function(e,t){var r=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.Near=void 0;const a=r(parcelRequire("hi2iv"));var n=parcelRequire("cbZQ6"),o=parcelRequire("eHVDy"),i=parcelRequire("hMpPn"),s=parcelRequire("g7FOL");e.exports.Near=class{async account(e){return new n.Account(this.connection,e)}async createAccount(e,t){if(!this.accountCreator)throw new Error("Must specify account creator, either via masterAccount or helperUrl configuration settings.");return await this.accountCreator.createAccount(e,t),new n.Account(this.connection,e)}async loadContract(e,t){const r=new n.Account(this.connection,t.sender);return new i.Contract(r,e,t)}async sendTokens(e,t,r){console.warn("near.sendTokens is deprecated. Use `yourAccount.sendMoney` instead.");const a=new n.Account(this.connection,t);return(await a.sendMoney(r,e)).transaction_outcome.id}constructor(e){if(this.config=e,this.connection=o.Connection.fromConfig({networkId:e.networkId,provider:{type:"JsonRpcProvider",args:{url:e.nodeUrl}},signer:e.signer||{type:"InMemorySigner",keyStore:e.keyStore||e.deps.keyStore}}),e.masterAccount){const t=e.initialBalance?new a.default(e.initialBalance):new a.default("500000000000000000000000000");this.accountCreator=new s.LocalAccountCreator(new n.Account(this.connection,e.masterAccount),t)}else e.helperUrl?this.accountCreator=new s.UrlAccountCreator(this.connection,e.helperUrl):this.accountCreator=null}}})),parcelRequire.register("X4J4i",(function(e,t){var r=parcelRequire("fpMrF").Buffer,a=e.exports&&e.exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.ConnectedWalletAccount=e.exports.WalletAccount=e.exports.WalletConnection=void 0;const n=a(parcelRequire("dMko4"));var o=parcelRequire("cbZQ6"),i=parcelRequire("fiiGw"),s=parcelRequire("5Ps5n"),c=parcelRequire("NLiRa");c=parcelRequire("NLiRa");const l="pending_key";class d{isSignedIn(){return!!this._authData.accountId}getAccountId(){return this._authData.accountId||""}async requestSignIn(e={},t,r,a){let o;if("string"==typeof e){n.default("requestSignIn(contractId, title)")("`title` ignored; use `requestSignIn({ contractId, successUrl, failureUrl })` instead"),o={contractId:e,successUrl:r,failureUrl:a}}else o=e;const i=new URL(window.location.href),c=new URL(this._walletBaseUrl+"/login/");if(c.searchParams.set("success_url",o.successUrl||i.href),c.searchParams.set("failure_url",o.failureUrl||i.href),o.contractId){c.searchParams.set("contract_id",o.contractId);const e=s.KeyPair.fromRandom("ed25519");c.searchParams.set("public_key",e.getPublicKey().toString()),await this._keyStore.setKey(this._networkId,l+e.getPublicKey(),e)}window.location.assign(c.toString())}async requestSignTransactions(e,t){const a=new URL(window.location.href),n=new URL("sign",this._walletBaseUrl);n.searchParams.set("transactions",e.map((e=>c.serialize(i.SCHEMA,e))).map((e=>r.from(e).toString("base64"))).join(",")),n.searchParams.set("callbackUrl",t||a.href),window.location.assign(n.toString())}async _completeSignInWithAccessKey(){const e=new URL(window.location.href),t=e.searchParams.get("public_key")||"",r=(e.searchParams.get("all_keys")||"").split(","),a=e.searchParams.get("account_id")||"";a&&(this._authData={accountId:a,allKeys:r},window.localStorage.setItem(this._authDataKey,JSON.stringify(this._authData)),t&&await this._moveKeyFromTempToPermanent(a,t)),e.searchParams.delete("public_key"),e.searchParams.delete("all_keys"),e.searchParams.delete("account_id"),window.history.replaceState({},document.title,e.toString())}async _moveKeyFromTempToPermanent(e,t){const r=await this._keyStore.getKey(this._networkId,l+t);await this._keyStore.setKey(this._networkId,e,r),await this._keyStore.removeKey(this._networkId,l+t)}signOut(){this._authData={},window.localStorage.removeItem(this._authDataKey)}account(){return this._connectedAccount||(this._connectedAccount=new u(this,this._near.connection,this._authData.accountId)),this._connectedAccount}constructor(e,t){this._near=e;const r=t+"_wallet_auth_key",a=JSON.parse(window.localStorage.getItem(r));this._networkId=e.config.networkId,this._walletBaseUrl=e.config.walletUrl,t=t||e.config.contractName||"default",this._keyStore=e.connection.signer.keyStore,this._authData=a||{allKeys:[]},this._authDataKey=r,this.isSignedIn()||this._completeSignInWithAccessKey()}}e.exports.WalletConnection=d,e.exports.WalletAccount=d;class u extends o.Account{async signAndSendTransaction(e,t){const r=await this.connection.signer.getPublicKey(this.accountId,this.connection.networkId);let a=await this.accessKeyForTransaction(e,t,r);if(!a)throw new Error(`Cannot find matching key for transaction sent to ${e}`);if(r&&r.toString()===a.public_key)try{return await super.signAndSendTransaction(e,t)}catch(r){if("NotEnoughBalance"!==r.type)throw r;a=await this.accessKeyForTransaction(e,t)}const n=await this.connection.provider.block({finality:"final"}),o=c.baseDecode(n.header.hash),l=s.PublicKey.from(a.public_key),d=a.access_key.nonce+1,u=i.createTransaction(this.accountId,l,e,d,t,o);return await this.walletConnection.requestSignTransactions([u],window.location.href),new Promise(((e,t)=>{setTimeout((()=>{t(new Error("Failed to redirect to sign transaction"))}),1e3)}))}async accessKeyMatchesTransaction(e,t,r){const{access_key:{permission:a}}=e;if("FullAccess"===a)return!0;if(a.FunctionCall){const{receiver_id:e,method_names:n}=a.FunctionCall;if(e===this.accountId&&n.includes("add_request_and_confirm"))return!0;if(e===t){if(1!==r.length)return!1;const[{functionCall:e}]=r;return e&&(!e.deposit||"0"===e.deposit.toString())&&(0===n.length||n.includes(e.methodName))}}return!1}async accessKeyForTransaction(e,t,r){const a=await this.getAccessKeys();if(r){const n=a.find((e=>e.public_key===r.toString()));if(n&&await this.accessKeyMatchesTransaction(n,e,t))return n}const n=this.walletConnection._authData.allKeys;for(const r of a)if(-1!==n.indexOf(r.public_key)&&await this.accessKeyMatchesTransaction(r,e,t))return r;return null}constructor(e,t,r){super(t,r),this.walletConnection=e}}e.exports.ConnectedWalletAccount=u})),parcelRequire.register("hxLuo",(function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.connect=void 0;var r=parcelRequire("dcQbI");e.exports.connect=async function(e){return new r.Near(e)}})),parcelRequire.register("jw521",(function(e,t){parcelRequire("6bc8W");var r,a=parcelRequire("7IdKc");r=a("Error.captureStackTrace")?parcelRequire("bv1nl"):a("Error.prototype.stack")?parcelRequire("70qYF"):parcelRequire("aem5j"),e.exports=r()})),parcelRequire.register("6bc8W",(function(e,t){parcelRequire("7IdKc").check("es5")})),parcelRequire.register("7IdKc",(function(e,t){parcelRequire("gfnuu"),e.exports=parcelRequire("isPgW")})),parcelRequire.register("gfnuu",(function(e,t){var r=parcelRequire("isPgW"),a=r.define,n=r.test;a("strict mode",(function(){return void 0===this})),a("arguments.callee.caller",(function(){try{return function(){return arguments.callee.caller}()===arguments.callee}catch(e){return!1}})),a("es5",(function(){return n("Array.prototype.forEach")&&n("Array.prototype.map")&&n("Function.prototype.bind")&&n("Object.create")&&n("Object.defineProperties")&&n("Object.defineProperty")&&n("Object.prototype.hasOwnProperty")})),a("Array.prototype.forEach",(function(){return Array.prototype.forEach})),a("Array.prototype.map",(function(){return Array.prototype.map})),a("Function.prototype.bind",(function(){return Function.prototype.bind})),a("Object.create",(function(){return Object.create})),a("Object.defineProperties",(function(){return Object.defineProperties})),a("Object.defineProperty",(function(){return Object.defineProperty})),a("Object.prototype.hasOwnProperty",(function(){return Object.prototype.hasOwnProperty})),a("Error.captureStackTrace",(function(){return Error.captureStackTrace})),a("Error.prototype.stack",(function(){try{throw new Error}catch(e){return e.stack||e.stacktrace}}))})),parcelRequire.register("isPgW",(function(e,t){var r=new(parcelRequire("2SkMk")),a=function(e){return r.test(e)};a.define=function(e,t){r.define(e,t)},a.check=function(e){r.check(e)},a.test=a,e.exports=a})),parcelRequire.register("2SkMk",(function(e,t){var r=function(){this.tests={},this.cache={}};r.prototype={constructor:r,define:function(e,t){if("string"!=typeof e||!(t instanceof Function))throw new Error("Invalid capability definition.");if(this.tests[e])throw new Error('Duplicated capability definition by "'+e+'".');this.tests[e]=t},check:function(e){if(!this.test(e))throw new Error('The current environment does not support "'+e+'", therefore we cannot continue.')},test:function(e){if(void 0!==this.cache[e])return this.cache[e];if(!this.tests[e])throw new Error('Unknown capability with name "'+e+'".');var t=this.tests[e];return this.cache[e]=!!t(),this.cache[e]}},e.exports=r})),parcelRequire.register("bv1nl",(function(e,t){var r=parcelRequire("3lhC9");e.exports=function(){return Error.getStackTrace=function(e){return e.stack},{prepareStackTrace:r}}})),parcelRequire.register("3lhC9",(function(e,t){e.exports=function(e,t,r){var a="";if(a+=e.name||"Error",a+=": "+(e.message||""),r instanceof Array)for(var n in r){a+="\n # "+r[n]}for(var o in t){a+="\n at "+t[o].toString()}return a}})),parcelRequire.register("70qYF",(function(e,t){var r=parcelRequire("lfQB5"),a=parcelRequire("1xnco"),n=parcelRequire("dPyZo").cache,o=parcelRequire("3lhC9");e.exports=function(){return Error.captureStackTrace=function e(t,i){var s=[e];i&&s.push(i);var c=r.getInstance().captureFrameStrings(s);Object.defineProperties(t,{stack:{configurable:!0,get:n((function(){var e=a.getInstance().getFrames(c.frameStrings,c.functionValues);return(Error.prepareStackTrace||o)(t,e,undefined)}))},cachedStack:{configurable:!0,writable:!0,enumerable:!1,value:!0}})},Error.getStackTrace=function(e){if(e.cachedStack)return e.stack;var t,n=r.getInstance().getFrameStrings(e),i=[];n?i=a.getInstance().getFrames(n,[]):t=["The stack is not readable by unthrown errors in this environment."];var s=(Error.prepareStackTrace||o)(e,i,t);if(n)try{Object.defineProperties(e,{stack:{configurable:!0,writable:!0,enumerable:!1,value:s},cachedStack:{configurable:!0,writable:!0,enumerable:!1,value:!0}})}catch(e){}return s},{prepareStackTrace:o}}})),parcelRequire.register("lfQB5",(function(e,t){var r=parcelRequire("c3Nqs").Class,a=parcelRequire("c3Nqs").abstractMethod,n=parcelRequire("dPyZo").eachCombination,o=parcelRequire("dPyZo").cache,i=parcelRequire("7IdKc"),s=r(Object,{prototype:{captureFrameStrings:function(e){var t=this.createError();e.unshift(this.captureFrameStrings),e.unshift(this.createError);var r=this.getFrameStrings(t),a=r.slice(e.length),n=[];if(i("arguments.callee.caller")){var o=[this.createError,this.captureFrameStrings];try{for(var s=arguments.callee;s=s.caller;)o.push(s)}catch(e){}n=o.slice(e.length)}return{frameStrings:a,functionValues:n}},getFrameStrings:function(e){var t=e.message||"",r=e.name||"",a=this.getStackString(e);if(void 0!==a){var n=a.split("\n"),o=0,i=n.length;return this.hasHeader&&(o+=r.split("\n").length+t.split("\n").length-1),this.hasFooter&&(i-=1),n.slice(o,i)}},createError:a,getStackString:a,hasHeader:void 0,hasFooter:void 0}}),c=r(Object,{prototype:{calibrateClass:function(e){return this.calibrateMethods(e)&&this.calibrateEnvelope(e)},calibrateMethods:function(e){try{n([[function(e){return new Error(e)},function(e){try{throw new Error(e)}catch(e){return e}}],[function(e){return e.stack},function(e){return e.stacktrace}]],(function(e,t){if(t(e()))throw{getStackString:t,createError:e}}))}catch(t){return r.merge.call(e,{prototype:t}),!0}return!1},calibrateEnvelope:function(e){var t=(0,e.prototype.getStackString)((0,e.prototype.createError)("marker")).split("\n");return r.merge.call(e,{prototype:{hasHeader:/marker/.test(t[0]),hasFooter:""===t[t.length-1]}}),!0}}});e.exports={getClass:o((function(){var e;if(e)return e;if(e=r(s,{}),!(new c).calibrateClass(e))throw new Error("Cannot read Error.prototype.stack in this environment.");return e})),getInstance:o((function(){return new(this.getClass())}))}})),parcelRequire.register("c3Nqs",(function(e,t){parcelRequire("6bc8W"),e.exports=parcelRequire("24AQk")})),parcelRequire.register("24AQk",(function(e,t){e.exports={Class:parcelRequire("42M9B"),abstractMethod:parcelRequire("dczOG")}})),parcelRequire.register("42M9B",(function(e,t){var r=function(){var e=Object.create({Source:Object,config:{},buildArgs:[]});function t(t){var r="config";if(t instanceof Function)r="Source";else if(t instanceof Array)r="buildArgs";else{if(!(t instanceof Object))throw new Error("Invalid configuration option.");r="config"}if(e.hasOwnProperty(r))throw new Error("Duplicated configuration option: "+r+".");e[r]=t}for(var a=0,n=arguments.length;a22?e.slice(0,10)+".."+e.slice(-10):e}async getAccountBalance(e){return(await this.walletConnection.account().getAccountBalance()).total}getNetwork(){return this.walletConnection._near.connection.networkId}setNetwork(e){throw Error("can't change networkId")}isConnected(){return this.walletConnection.isSignedIn()}disconnect(){this.walletConnection.signOut()}connectionHelp(){window.open("https://wallet.near.org/")}checkConnected(){if(!this.walletConnection.isSignedIn())throw Error("Wallet is not connected")}async view(e,t,r){return this.walletConnection.account().viewFunction(e,t,r)}async call(e,t,r,a,n){window.history.replaceState({},"",location.pathname);const o=await this.walletConnection.account().functionCall(e,t,r,new($parcel$interopDefault($hi2iv))(a||$839af26fe369ef59$export$88307f756ae70797),new($parcel$interopDefault($hi2iv))(n||"0"));return(0,$gOMCy.getTransactionLastResult)(o)}async apply(e){throw Error("Not implemented")}async queryChain(e,t){return this.walletConnection._connectedAccount.connection.provider.sendJsonRpc(e,t)}constructor(e){this.walletConnection=e}}var $6skSc=parcelRequire("6skSc");class $df583c12251ddc79$export$20c1ad7ba414407{addItem(e){this.items.push(e)}constructor(e){this.receiver=e,this.items=[]}}class $df583c12251ddc79$export$f8167a095360b19f{constructor(e,t="0"){this.action=e,this.attached=t}}class $df583c12251ddc79$export$9a1bafc170b69ba1 extends $df583c12251ddc79$export$f8167a095360b19f{constructor(e,t,r,a){super("call",a),this.method=e,this.args=t,this.gas=r||$839af26fe369ef59$export$88307f756ae70797}}class $df583c12251ddc79$export$cec4f96e18e205ef extends $df583c12251ddc79$export$f8167a095360b19f{constructor(e){super("transfer",e)}}class $8fa95b9ef49776e6$export$81d11c1527f62419{getAccountId(){return this._accountId}getDisplayableAccountId(){const e=this.getAccountId();return e.length>22?e.slice(0,10)+".."+e.slice(-10):e}async getAccountBalance(e){return $8fa95b9ef49776e6$export$4dcfb26e67b1d7a6({dest:"ext",code:"get-account-balance",accountId:e||this._accountId})}getNetwork(){return this._network}setNetwork(e){this._network=e}setRequiredVersion(e){this._requiredVersion=e}isConnected(){return this._isConnected}disconnect(){document.dispatchEvent(new CustomEvent("wallet-disconnected")),this._isConnected&&window.postMessage({dest:"ext",code:"disconnect"},"*"),this._isConnected=!1,this._accountId="",this.version=new $839af26fe369ef59$export$4fc881fbd1f93166(0,0,0)}connectionHelp(){window.open("http://www.narwallets.com/help/connect-to-web-app")}checkConnected(){if(!this._isConnected)throw Error("Wallet is not connected. Open the wallet extension and click 'Connect to Web Page'")}async view(e,t,r){return $8fa95b9ef49776e6$export$4dcfb26e67b1d7a6({dest:"ext",code:"view",contract:e,method:t,args:r})}async call(e,t,r,a,n){const o=new $df583c12251ddc79$export$20c1ad7ba414407(e);return o.addItem(new $df583c12251ddc79$export$9a1bafc170b69ba1(t,r,a,n)),this.apply(o)}async apply(e){return $8fa95b9ef49776e6$export$4dcfb26e67b1d7a6({dest:"ext",code:"apply",tx:e})}async queryChain(e,t){return $8fa95b9ef49776e6$export$4dcfb26e67b1d7a6({dest:"ext",code:"json-rpc",method:e,args:t})}constructor(){(0,$6skSc.default)(this,"_isConnected",!1),(0,$6skSc.default)(this,"_accountId",""),(0,$6skSc.default)(this,"_network","mainnet"),(0,$6skSc.default)(this,"_requiredVersion",new $839af26fe369ef59$export$4fc881fbd1f93166(2,0,0)),(0,$6skSc.default)(this,"version",new $839af26fe369ef59$export$4fc881fbd1f93166(0,0,0))}}let $8fa95b9ef49776e6$export$63d3d30f802e1ca1=new $8fa95b9ef49776e6$export$81d11c1527f62419;function $8fa95b9ef49776e6$export$288f2dab8842dc1f(e,t){$8fa95b9ef49776e6$export$3e2987166bf8263(),$8fa95b9ef49776e6$export$f31d877c85ff1bef(e),$8fa95b9ef49776e6$export$92eed6c623a0a902(t)}function $8fa95b9ef49776e6$export$3e2987166bf8263(){window.addEventListener("message",(function(e){e.source==window&&"page"==e.data.dest&&$8fa95b9ef49776e6$var$msgReceivedFromContentScript(e.data)}),!1)}function $8fa95b9ef49776e6$export$f31d877c85ff1bef(e){document.addEventListener("wallet-connected",e)}function $8fa95b9ef49776e6$export$92eed6c623a0a902(e){document.addEventListener("wallet-disconnected",e)}function $8fa95b9ef49776e6$var$msgReceivedFromContentScript(e){if("connect"==e.code){var t,r;const a=$8fa95b9ef49776e6$export$63d3d30f802e1ca1.getNetwork(),n={dest:"ext",code:"connected",relayer:"wallet-api",version:"0.1",network:a,err:""};if((null===(t=e.data)||void 0===t?void 0:t.version)?$8fa95b9ef49776e6$export$63d3d30f802e1ca1.version=$839af26fe369ef59$export$4fc881fbd1f93166.fromNumber(null===(r=e.data)||void 0===r?void 0:r.version):$8fa95b9ef49776e6$export$63d3d30f802e1ca1.version=new $839af26fe369ef59$export$4fc881fbd1f93166(1,0,2),$8fa95b9ef49776e6$export$63d3d30f802e1ca1.version.toNumber()<$8fa95b9ef49776e6$export$63d3d30f802e1ca1._requiredVersion.toNumber())return n.err="The web page requires Narwallets v"+$8fa95b9ef49776e6$export$63d3d30f802e1ca1._requiredVersion.toString(),void window.postMessage(n,"*");if(a&&(!e.data||e.data.network!=a))return n.err="The web page requires a "+a+" account",void window.postMessage(n,"*");$8fa95b9ef49776e6$export$63d3d30f802e1ca1._isConnected=!0,$8fa95b9ef49776e6$export$63d3d30f802e1ca1._accountId=e.data.accountId,window.postMessage(n,"*")}else{if("disconnect"==e.code)return void($8fa95b9ef49776e6$export$63d3d30f802e1ca1.isConnected()&&$8fa95b9ef49776e6$export$63d3d30f802e1ca1.disconnect());"request-resolved"==e.code&&$8fa95b9ef49776e6$var$processRequestResolved(e)}let a=$8fa95b9ef49776e6$var$eventFromCode(e.code);const n=new CustomEvent(a,{detail:{source:"ext",code:e.code,err:e.err,data:e.data}});document.dispatchEvent(n)}function $8fa95b9ef49776e6$var$eventFromCode(e){switch(e){case"connect":return"wallet-connected";case"disconnect":return"wallet-disconnected";default:return"wallet-event"}}function $8fa95b9ef49776e6$var$processRequestResolved(e){let t=$8fa95b9ef49776e6$var$requests.findIndex((t=>t.requestId==e.requestId));if(t>=0){let r=$8fa95b9ef49776e6$var$requests.splice(t,1)[0];return e.err?r.reject(Error(e.err)):r.resolve(e.data)}console.error("requestId NOT FOUND ",e)}const $8fa95b9ef49776e6$var$requests=[];let $8fa95b9ef49776e6$var$requestId=0;function $8fa95b9ef49776e6$export$4dcfb26e67b1d7a6(e){return new Promise(((t,r)=>{const a={requestId:++$8fa95b9ef49776e6$var$requestId,payload:e,reject:r,resolve:t};$8fa95b9ef49776e6$var$requests.push(a),e.requestId=$8fa95b9ef49776e6$var$requestId,e.dest||(e.dest="ext"),window.postMessage(e,"*")}))}const $b9a6bf0e31025758$var$base1e=BigInt(10);function $b9a6bf0e31025758$var$b1e(e){return $b9a6bf0e31025758$var$base1e**BigInt(e)}const $b9a6bf0e31025758$var$b1e12=$b9a6bf0e31025758$var$b1e(12),$b9a6bf0e31025758$var$b1e24=$b9a6bf0e31025758$var$b1e(24),$b9a6bf0e31025758$var$b1e18=$b9a6bf0e31025758$var$b1e(18);function $b9a6bf0e31025758$export$1e6601f564a1737(e){return(BigInt(e)*$b9a6bf0e31025758$var$b1e12).toString()}function $b9a6bf0e31025758$export$a386db35d45c2362(e){return(BigInt(Math.round(1e6*e))*$b9a6bf0e31025758$var$b1e18).toString()}function $b9a6bf0e31025758$export$7b927db028bec867(e){try{if(null==(e=e.toString()))return 0;const t=5,r=$b9a6bf0e31025758$export$1da76a640d7f960f((BigInt(e)+BigInt(.5*10**(24-t))).toString()).slice(0,t-24);return Number(r)}catch(t){return console.log("ERR: yton(",e,")",t),NaN}}function $b9a6bf0e31025758$export$f9906266a26d8d29(e){try{if(null==e)return 0;const t=8,r=$b9a6bf0e31025758$export$1da76a640d7f960f((BigInt(e)+BigInt(.5*10**(24-t))).toString()).slice(0,t-24);return Number(r)}catch(t){return console.log("ERR: yton(",e,")",t),NaN}}function $b9a6bf0e31025758$export$1da76a640d7f960f(e){let t=(e+"").padStart(25,"0");return t=t.slice(0,-24)+"."+t.slice(-24),t}function $b9a6bf0e31025758$export$db8ae05e40dfea01(e,t,r){e=e.toString();let a=0;for(;a0?n+"."+o.substring(0,r):n}function $b9a6bf0e31025758$export$b0ebaadef1c606a9(e,t){let r=Number(t),a=0;for(;a4;)e=e.slice(0,-1);return e.endsWith("00")&&(e=e.slice(0,-2)),e.endsWith(".00")&&(e=e.slice(0,-3)),e}function $b9a6bf0e31025758$export$22adc86566c697a9(e){return $b9a6bf0e31025758$export$b6fe44657ce35c42($b9a6bf0e31025758$export$806e5ea7df183088($b9a6bf0e31025758$export$328b775d6414ebd9(e)))}function $b9a6bf0e31025758$export$b6fe44657ce35c42(e){let t=e.indexOf(".");for(-1==t&&(t=e.length),t-=4;t>=0;)e=e.slice(0,t+1)+","+e.slice(t+1),t-=3;return e}function $248679f431bbdfb1$export$836aee6bce45247(e){return document.querySelector(e)}function $248679f431bbdfb1$export$fc7d7d4be9a81733(e){return document.querySelector(e)}function $248679f431bbdfb1$export$9ca9051b92b5a6d2(e){return document.querySelectorAll(e)}function $248679f431bbdfb1$export$9eb2db9699667c2d(e,t){document.querySelectorAll(e).forEach((e=>{e instanceof HTMLElement&&(e.innerText=t)}))}function $248679f431bbdfb1$export$dd7fd6fec96e1ca2(e,t,r){document.querySelectorAll(e).forEach((e=>{e instanceof HTMLElement&&e.setAttribute(t,r)}))}function $248679f431bbdfb1$export$1d4df0cf03e6e33(e,t){document.querySelector(e).innerHTML=t}function $248679f431bbdfb1$export$57bf213be019eeb0(e,t=!0){e.style.display=t?"":"none"}function $248679f431bbdfb1$export$fe8985bb6374093c(e){e.style.display="none"}function $248679f431bbdfb1$export$348d584e223bdf1b(e,t,r){$248679f431bbdfb1$var$cancelWait=!0;const a=$248679f431bbdfb1$export$836aee6bce45247(e),n=$248679f431bbdfb1$export$836aee6bce45247("#overlay1");n.querySelectorAll(".box.popup").forEach($248679f431bbdfb1$export$fe8985bb6374093c);const o=a.querySelector("#title"),i=a.querySelector("#msg");i&&t&&(i.innerHTML=t),o&&r&&(o.innerText=r),$248679f431bbdfb1$export$57bf213be019eeb0(a),$248679f431bbdfb1$export$57bf213be019eeb0(n)}function $248679f431bbdfb1$export$bba5038aab73375b(e){$248679f431bbdfb1$export$fe8985bb6374093c($248679f431bbdfb1$export$836aee6bce45247(e))}function $248679f431bbdfb1$export$e7f12c9836083937(){$248679f431bbdfb1$var$cancelWait=!0,$248679f431bbdfb1$export$fe8985bb6374093c($248679f431bbdfb1$export$836aee6bce45247("#overlay1"))}let $248679f431bbdfb1$var$waitStartTimer,$248679f431bbdfb1$var$cancelWait=!1;function $248679f431bbdfb1$export$11aadaec4fc63f87(e,t){$248679f431bbdfb1$var$cancelWait=!1,$248679f431bbdfb1$var$waitStartTimer=setTimeout((()=>{$248679f431bbdfb1$var$cancelWait||$248679f431bbdfb1$export$348d584e223bdf1b("#wait-box",e,t)}),500)}function $248679f431bbdfb1$export$fd427ccb0ab5463c(){$248679f431bbdfb1$var$cancelWait=!0,$248679f431bbdfb1$var$waitStartTimer&&(clearTimeout($248679f431bbdfb1$var$waitStartTimer),$248679f431bbdfb1$var$waitStartTimer=void 0),$248679f431bbdfb1$export$bba5038aab73375b("#wait-box")}function $248679f431bbdfb1$export$787f5d117f138d13(e,t){$248679f431bbdfb1$export$348d584e223bdf1b("#message-box",e,t)}function $248679f431bbdfb1$export$d841eba85c078f0b(e,t){console.log(e+" "+t),$248679f431bbdfb1$export$348d584e223bdf1b("#success-box",e,t)}function $248679f431bbdfb1$export$3879b24e8245693d(e,t){$248679f431bbdfb1$export$348d584e223bdf1b("#error-box",e,t="Error from wallet: userRejected"==e?"Transaction Rejected":t)}function $248679f431bbdfb1$export$dfd8f75b38935068(e){console.log(e),$248679f431bbdfb1$export$3879b24e8245693d(e.message)}var $gOMCy=parcelRequire("gOMCy"),$hrbaI=parcelRequire("hrbaI");function $a1901cd8d330ea8c$var$removeQueryString(){var e=window.location.toString();if(e.indexOf("?")>0){var t=e.substring(0,e.indexOf("?"));window.history.replaceState({},document.title,t)}}async function $a1901cd8d330ea8c$export$889ec11431078ec6(e,t){try{var r,a;const n=new URLSearchParams(window.location.search);$a1901cd8d330ea8c$var$removeQueryString();const o=n.get("transactionHashes"),i=n.get("errorCode");if(i){const e="Error from wallet: "+i;return console.error(e),{err:e}}if(!o)return{};if(o.includes(",")){const e="Expected single txHash, got: "+o;return console.error(e),{err:e}}const s=$ee2943f37bed84ec$exports.utils.serialize.base_decode(o),c=await e.account().connection.provider.txStatus(s,e.getAccountId());let l;if(null===(r=c.transaction)||void 0===r||null===(a=r.actions)||void 0===a?void 0:a.length){const e=c.transaction.actions;for(let t=0;t${c.transaction.hash} failed`,method:l}}return{data:(0,$gOMCy.getTransactionLastResult)(c),method:l,finalExecutionOutcome:c}}catch(e){return console.error(e.message),{err:e.message}}}async function $a1901cd8d330ea8c$export$3a28093ab7225491(e,t){try{const n=new URLSearchParams(window.location.search);$a1901cd8d330ea8c$var$removeQueryString();const o=n.get("transactionHashes"),i=n.get("errorCode");if(i){const e="Error from wallet: "+i;return console.error(e),[{err:e}]}if(!o)return[];let s;s=o.includes(",")?o.split(","):[o];const c=s.map((e=>$ee2943f37bed84ec$exports.utils.serialize.base_decode(e))),l=await Promise.all(c.map((async t=>await e.account().connection.provider.txStatus(t,e.getAccountId()))));let d=[];for(let e=0;e${o.transaction.hash} failed`;d.push({err:e,method:n})}else d.push({data:(0,$gOMCy.getTransactionLastResult)(o),method:n,finalExecutionOutcome:o})}return d}catch(e){return console.error(e.message),[{err:e.message}]}}var $gOMCy=parcelRequire("gOMCy"),$fpMrF=parcelRequire("fpMrF"),$70ddfce028b3e75b$require$Buffer=$fpMrF.Buffer;class $70ddfce028b3e75b$export$fc1ba6948f99dde{async viewWithoutAccount(e,t={}){try{const r=JSON.stringify(t);let a=$70ddfce028b3e75b$require$Buffer.from(r).toString("base64");const n=await this.provider.query({request_type:"call_function",account_id:this.contractId,method_name:e,args_base64:a,finality:"optimistic"});return JSON.parse($70ddfce028b3e75b$require$Buffer.from(n.result).toString())}catch(r){console.error(`Error calling function ${e} from contract ${this.contractId} with params ${JSON.stringify(t)}`,r)}}view(e,t){if(!this.wallet)throw Error(`contract-proxy not connected ${this.contractId} trying to view ${e}`);return this.wallet.view(this.contractId,e,t)}call(e,t,r,a){if(!this.wallet)throw Error(`contract-proxy not connected ${this.contractId} trying to call ${e}`);return this.wallet.call(this.contractId,e,t,r,a)}callWithoutSend(e,t,r,a){if(!this.nearWallet)throw Error(`contract-proxy not connected ${this.contractId} trying to call ${e}`);return this.nearWallet.call(this.contractId,e,t,r,a)}disconnect(){this.wallet=$60b4a2c04ed6d739$export$bb2eafcb55f553b2}constructor(e){this.contractId=e,this.wallet=$60b4a2c04ed6d739$export$bb2eafcb55f553b2,this.nearWallet=new $ee2943f37bed84ec$exports.WalletAccount($48eaa3ca5daefed6$export$d71917a79103c107,null),this.account=this.nearWallet.account(),this.provider=new(0,$gOMCy.JsonRpcProvider)($48eaa3ca5daefed6$export$fa494f8daebcc431.nodeUrl)}}var $hi2iv=parcelRequire("hi2iv");class $26c51626e8e4c222$export$bbe373bfa0af92e4 extends $70ddfce028b3e75b$export$fc1ba6948f99dde{async ft_transfer(e,t,r){return this.call("ft_transfer",{receiver_id:e,amount:t,memo:r},$b9a6bf0e31025758$export$1e6601f564a1737(200),"1")}async ft_transfer_call(e,t,r,a){return this.call("ft_transfer_call",{receiver_id:e,amount:t,memo:a,msg:r},$b9a6bf0e31025758$export$1e6601f564a1737(200),"1")}async ft_transfer_call_without_send(e,t,r="to farm"){return $ee2943f37bed84ec$exports.transactions.functionCall("ft_transfer_call",{receiver_id:e,amount:t,msg:r},new(0,$hi2iv.BN)("200000000000000"),new(0,$hi2iv.BN)(1))}async unstake_without_send(e,t){return $ee2943f37bed84ec$exports.transactions.functionCall("unstake",{token:e,amount:t},new(0,$hi2iv.BN)("200000000000000"),new(0,$hi2iv.BN)(1))}async ft_total_supply(){return this.viewWithoutAccount("ft_total_supply")}async ft_balance_of(e){return this.viewWithoutAccount("ft_balance_of",{account_id:e})}async ft_metadata(){return this.viewWithoutAccount("ft_metadata")}async new(e,t){return this.call("new",{owner_id:e,owner_supply:t})}storageBalance(e){return this.viewWithoutAccount("storage_balance_of",{account_id:e||this.wallet.getAccountId()})}storageDeposit(){return this.call("storage_deposit",{},$b9a6bf0e31025758$export$1e6601f564a1737(25),"3000000000000000000000")}async storageDepositWithoutSend(){return $ee2943f37bed84ec$exports.transactions.functionCall("storage_deposit",{},new(0,$hi2iv.BN)("200000000000000"),new(0,$hi2iv.BN)("3000000000000000000000"))}}var $6skSc=parcelRequire("6skSc"),$6skSc=parcelRequire("6skSc");function $25b2da885b5e1632$export$7e73baf1cf92be47(e){return{spec:"",name:"Near",symbol:e,symbolForHtml:e,icon:'',reference:"",reference_hash:"",decimals:24}}var $hi2iv=parcelRequire("hi2iv");class $759dad8788f9d372$export$dc767fa29fe54e3e extends $70ddfce028b3e75b$export$fc1ba6948f99dde{get_contract_params(){return this.viewWithoutAccount("get_contract_params",{})}status(e){return this.wallet===$60b4a2c04ed6d739$export$bb2eafcb55f553b2?Promise.resolve(["-","-","-"]):this.viewWithoutAccount("status",{account_id:e||this.wallet.getAccountId()})}storageBalance(e){return this.viewWithoutAccount("storage_balance_of",{account_id:e||this.wallet.getAccountId()})}storageDeposit(){return this.call("storage_deposit",{},$b9a6bf0e31025758$export$1e6601f564a1737(25),"60000000000000000000000")}async storageDepositWithoutSend(){return $ee2943f37bed84ec$exports.transactions.functionCall("storage_deposit",{},new(0,$hi2iv.BN)("200000000000000"),new(0,$hi2iv.BN)("60000000000000000000000"))}stake(e){return this.call("stake",{},$b9a6bf0e31025758$export$1e6601f564a1737(25),e.toString())}unstake(e){return this.call("unstake",{amount:e},$b9a6bf0e31025758$export$1e6601f564a1737(125),"1")}close(){return this.call("close",{},$b9a6bf0e31025758$export$1e6601f564a1737(75),"1")}withdraw_crop(){return this.call("withdraw_crop",{},$b9a6bf0e31025758$export$1e6601f564a1737(125))}}var $hi2iv=parcelRequire("hi2iv");class $18498364455f9fa4$export$e108c1b39d7e0fac extends $70ddfce028b3e75b$export$fc1ba6948f99dde{get_contract_params(){return this.viewWithoutAccount("get_contract_params")}status(e){return this.viewWithoutAccount("status",{account_id:e||this.wallet.getAccountId()})}storageBalance(e){return this.viewWithoutAccount("storage_balance_of",{account_id:e||this.wallet.getAccountId()})}storageDeposit(){return this.call("storage_deposit",{},$b9a6bf0e31025758$export$1e6601f564a1737(25),"60000000000000000000000")}async storageDepositWithoutSend(){return $ee2943f37bed84ec$exports.transactions.functionCall("storage_deposit",{},new(0,$hi2iv.BN)("200000000000000"),new(0,$hi2iv.BN)("60000000000000000000000"))}ft_transfer_call(e){return this.call("ft_transfer_call",{},$b9a6bf0e31025758$export$1e6601f564a1737(25),e)}withdraw_nft(e){return this.call("withdraw_nft",{receiver_id:e},$b9a6bf0e31025758$export$1e6601f564a1737(200),"1")}unstake(e,t){return this.call("unstake",{token:e,amount:t},$b9a6bf0e31025758$export$1e6601f564a1737(125),"1")}close(){return this.call("close",{},$b9a6bf0e31025758$export$1e6601f564a1737(75),"1")}withdraw_crop(){return this.call("withdraw_crop",{},$b9a6bf0e31025758$export$1e6601f564a1737(125))}}var $6skSc=parcelRequire("6skSc");class $044b5c1339db7e80$export$63440f1175eeef41{constructor(){(0,$6skSc.default)(this,"owner_id",""),(0,$6skSc.default)(this,"stake_tokens",[]),(0,$6skSc.default)(this,"stake_rates",[]),(0,$6skSc.default)(this,"farm_unit_emission",""),(0,$6skSc.default)(this,"farm_tokens",[]),(0,$6skSc.default)(this,"farm_token_rates",[]),(0,$6skSc.default)(this,"is_active",!1),(0,$6skSc.default)(this,"farming_start",0),(0,$6skSc.default)(this,"farming_end",0),(0,$6skSc.default)(this,"total_staked",[]),(0,$6skSc.default)(this,"total_farmed",[]),(0,$6skSc.default)(this,"fee_rate",0),(0,$6skSc.default)(this,"accounts_registered",0)}}class $044b5c1339db7e80$export$73a2e73f570f907e{constructor(e=0,t=0){(0,$6skSc.default)(this,"stake_tokens",[]),(0,$6skSc.default)(this,"stake",""),(0,$6skSc.default)(this,"farmed_units",""),(0,$6skSc.default)(this,"farmed_tokens",[]),(0,$6skSc.default)(this,"cheddy_nft",""),(0,$6skSc.default)(this,"timestamp",0),this.stake_tokens=new Array(e).fill("0"),this.farmed_tokens=new Array(t).fill("0")}}class $044b5c1339db7e80$export$7005356a305e265f{constructor(e=0,t=0){(0,$6skSc.default)(this,"stake_tokens",[]),(0,$6skSc.default)(this,"stake",""),(0,$6skSc.default)(this,"farmed_units",""),(0,$6skSc.default)(this,"farmed_tokens",[]),(0,$6skSc.default)(this,"boost_nfts",""),(0,$6skSc.default)(this,"timestamp",0),this.stake_tokens=new Array(e).fill([]),this.farmed_tokens=new Array(t).fill("0")}}class $044b5c1339db7e80$export$6875f93d4a1de0a9{constructor(){(0,$6skSc.default)(this,"decimals","24"),(0,$6skSc.default)(this,"icon",""),(0,$6skSc.default)(this,"name",""),(0,$6skSc.default)(this,"reference",""),(0,$6skSc.default)(this,"reference_hash",""),(0,$6skSc.default)(this,"spec",""),(0,$6skSc.default)(this,"symbol","")}}class $044b5c1339db7e80$export$8daa4e1bda236b7a{constructor(e,t){this.contractName=e,this.amount=t}}async function $1565d9de73496825$export$80040c3fb8bb2354(e,t){let r=[];for(let a=0;a0n}getDisplayableComputed(){return $b9a6bf0e31025758$export$db8ae05e40dfea01(this.computed.toString(),24,7)}getCurrentCheddarRewards(){return $b9a6bf0e31025758$export$db8ae05e40dfea01(this.real.toString(),24,7)}getCurrentDisplayableCheddarRewards(){return $b9a6bf0e31025758$export$db8ae05e40dfea01(this.computed.toString(),24,7)}getDisplayableAccountName(){return this.accName.length>22?this.accName.slice(0,10)+".."+this.accName.slice(-10):this.accName}addStaked(e){this.staked=this.staked+BigInt(e)}constructor(e){(0,$6skSc.default)(this,"real_rewards_per_day",0n),(0,$6skSc.default)(this,"skip",0),(0,$6skSc.default)(this,"staked",0n),(0,$6skSc.default)(this,"real",0n),(0,$6skSc.default)(this,"computed",0n),(0,$6skSc.default)(this,"previous_real",0n),(0,$6skSc.default)(this,"previousTimestamp",0),(0,$6skSc.default)(this,"tokenDecimals",0),(0,$6skSc.default)(this,"accName",""),e&&(this.staked=BigInt(e[0]),this.real=BigInt(e[1]),this.previousTimestamp=Number(e[2]))}}class $87c0b564e06fda7a$export$5fdb16077e6436d1{async userHasStakedTokens(){const e=await this.stakingContractData.getUserStatus();return Number(e.staked)>0}async getTokenContractList(e){return[new $1565d9de73496825$export$596742cc9b3ae571(this.wallet,e,this.poolName)]}async getPoolName(){if("_"===this.poolName[0])return this.poolName.substring(1);return(await this.stakeTokenContractList[0].getMetadata()).symbol}async setStakeTokenContractList(){this.stakeTokenContractList=[await this.getStakeTokenContractData()]}async setFarmTokenContractList(){this.farmTokenContractList=await this.getTokenContractList(this.cheddarContract.contractId)}async setAllExtraData(){await this.setStakeTokenContractList(),await this.setFarmTokenContractList()}async refreshAllExtraData(){}async getRewardTokenIconData(){const e=await this.cheddarContract.ft_metadata(),t=e.icon?e.icon:e.name;return[{isSvg:t.includes("e.length>0)));return t}async getPoolName(){return this.html.formId}async setAllExtraData(){}async refreshAllExtraData(){}async withdrawBoost(){const e=(await this.stakingContractData.getUserStatus()).boost_nfts.split("@")[1];return this.stakingContractData.contract.unstake(this.nftContractForBoosting.contractId,e)}async transferCheddar(){const e=await this.stakingContractData.getContractParams(),t=(await this.stakingContractData.getStakeTokenContractList())[0].contract,r=e.cheddar_rate;return{promise:t.ft_transfer_call_without_send(this.stakingContractData.contract.contractId,r,"cheddar stake"),contractName:t.contractId}}transferNFT(e,t,r){return{promise:e.contract.nft_transfer_call_without_send(this.stakingContractData.contract.contractId,r),contractName:t}}async stakeUnstakeNFTs(e){let t=[];for(let[r,a]of e){const e=(await this.stakingContractData.getStakeNFTContractList()).find((e=>e.contract.contractId==r));for(let n=0;n0&&await $56083e7e790d0209$export$12131bc15911221e(t,this.stakingContractData.contract)}async getStakeTokensDetail(){let e=[];const t=await this.stakingContractData.getContractParams(),r=await this.stakingContractData.getStakeTokenContractList();for(let a=0;a22?this.accName.slice(0,10)+".."+this.accName.slice(-10):this.accName}addStaked(e){for(let t=0;t0n);return t}async getPoolName(){let e=[];const t=await this.stakingContractData.getStakeTokenContractList();let r,a=!1;for(let n=0;n20?n.substring(0,7)+"..."+n.substring(n.length-7):n}async setAllExtraData(){}async refreshAllExtraData(){}async stake(e){let t=[];const r=await this.stakingContractData.getStakeTokenContractList();for(let a=0;at.stakingContractData.getContractParamsNotAsync().farming_end-e.stakingContractData.getContractParamsNotAsync().farming_end))),$b30dd8d804760f6e$var$poolList}let $ef2d5ecaf6640d97$var$testTokensSymbols=["afi-tt","gua"];async function $ef2d5ecaf6640d97$var$setAllTokensData(){const e=await fetch("https://api.stats.ref.finance/api/top-tokens"),t=await e.json();$ef2d5ecaf6640d97$var$tokenDataArray=t}async function $ef2d5ecaf6640d97$export$91b8816a124ef494(e,t=!1){return $ef2d5ecaf6640d97$var$tokenDataArray&&!t||await $ef2d5ecaf6640d97$var$setAllTokensData(),$ef2d5ecaf6640d97$var$getPriceWithData(e)}function $ef2d5ecaf6640d97$var$getPriceWithData(e){let t;if(e=e.toLowerCase(),"testnet"==$0287b98b105b7ac7$export$83401e34d5e11bf4&&$ef2d5ecaf6640d97$var$testTokensSymbols.includes(e)&&(e="pem".toLowerCase()),"near"!=e&&"nearcon"!=e||(e="wnear"),$ef2d5ecaf6640d97$var$tokenDataArray.forEach((r=>{r.symbol.toLowerCase()===e&&(t=r)})),void 0!==t)return t;throw Error(`Token with symbol ${e} not found`)}async function $ef2d5ecaf6640d97$export$2e042ee8088ce7ba(e,t=!1){$ef2d5ecaf6640d97$var$tokenDataArray&&!t||await $ef2d5ecaf6640d97$var$setAllTokensData();let r=new Map;return e.forEach((e=>{e=e.toLowerCase(),r.set(e,$ef2d5ecaf6640d97$var$getPriceWithData(e))})),r}function $0289842476b67664$export$df86ca1385cfe2b(e,t,r){return{contract_id:r,base_url:t,token_id:e,owner_id:"",metadata:{title:"",description:"",media:e+".png",media_hash:"",copies:null,issued_at:"",expires_at:"",starts_at:"",updated_at:"",extra:"",reference:"",reference_hash:""},approved_account_ids:{}}}var $hi2iv=parcelRequire("hi2iv"),$100d9ffa172c6eec$var$pointsA=[],$100d9ffa172c6eec$var$pointsB=[],$100d9ffa172c6eec$var$$canvas=null,$100d9ffa172c6eec$var$canvas=null,$100d9ffa172c6eec$var$context=null,$100d9ffa172c6eec$var$vars=null,$100d9ffa172c6eec$var$points=8,$100d9ffa172c6eec$var$viscosity=20,$100d9ffa172c6eec$var$mouseDist=70,$100d9ffa172c6eec$var$damping=.05,$100d9ffa172c6eec$var$showIndicators=!1,$100d9ffa172c6eec$var$mouseX=0,$100d9ffa172c6eec$var$mouseY=0,$100d9ffa172c6eec$var$relMouseX=0,$100d9ffa172c6eec$var$relMouseY=0,$100d9ffa172c6eec$var$mouseLastX=0,$100d9ffa172c6eec$var$mouseLastY=0,$100d9ffa172c6eec$var$mouseDirectionX=0,$100d9ffa172c6eec$var$mouseDirectionY=0,$100d9ffa172c6eec$var$mouseSpeedX=0,$100d9ffa172c6eec$var$mouseSpeedY=0;function $100d9ffa172c6eec$var$mouseDirection(e){$100d9ffa172c6eec$var$mouseDirectionX=$100d9ffa172c6eec$var$mouseXe.pageX?-1:0,$100d9ffa172c6eec$var$mouseDirectionY=$100d9ffa172c6eec$var$mouseYe.pageY?-1:0,$100d9ffa172c6eec$var$mouseX=e.pageX,$100d9ffa172c6eec$var$mouseY=e.pageY,$100d9ffa172c6eec$var$relMouseX=$100d9ffa172c6eec$var$mouseX-(null==$100d9ffa172c6eec$var$$canvas?void 0:$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().left),$100d9ffa172c6eec$var$relMouseY=$100d9ffa172c6eec$var$mouseY-(null==$100d9ffa172c6eec$var$$canvas?void 0:$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().top)}function $100d9ffa172c6eec$var$mouseSpeed(){$100d9ffa172c6eec$var$mouseSpeedX=$100d9ffa172c6eec$var$mouseX-$100d9ffa172c6eec$var$mouseLastX,$100d9ffa172c6eec$var$mouseSpeedY=$100d9ffa172c6eec$var$mouseY-$100d9ffa172c6eec$var$mouseLastY,$100d9ffa172c6eec$var$mouseLastX=$100d9ffa172c6eec$var$mouseX,$100d9ffa172c6eec$var$mouseLastY=$100d9ffa172c6eec$var$mouseY,setTimeout($100d9ffa172c6eec$var$mouseSpeed,50)}function $100d9ffa172c6eec$export$40f8640a65e1db50(){$100d9ffa172c6eec$var$mouseSpeed();var e=$248679f431bbdfb1$export$836aee6bce45247(".btn-liquid"),t=e.getBoundingClientRect().width+22,r=e.getBoundingClientRect().height;$100d9ffa172c6eec$var$$canvas=document.createElement("canvas"),e.append($100d9ffa172c6eec$var$$canvas),$100d9ffa172c6eec$var$$canvas.width=t+30,$100d9ffa172c6eec$var$$canvas.height=r+50,$100d9ffa172c6eec$var$context=$100d9ffa172c6eec$var$$canvas.getContext("2d");for(var a=r/2,n=1;n<$100d9ffa172c6eec$var$points;n++)$100d9ffa172c6eec$var$addPoints(a+(t-r)/$100d9ffa172c6eec$var$points*n,0);$100d9ffa172c6eec$var$addPoints(t-r/5,0),$100d9ffa172c6eec$var$addPoints(t+r/10,r/2),$100d9ffa172c6eec$var$addPoints(t-r/5,r);for(n=$100d9ffa172c6eec$var$points-1;n>0;n--)$100d9ffa172c6eec$var$addPoints(a+(t-r)/$100d9ffa172c6eec$var$points*n,r);$100d9ffa172c6eec$var$addPoints(r/5,r),$100d9ffa172c6eec$var$addPoints(-r/10,r/2),$100d9ffa172c6eec$var$addPoints(r/5,0),$100d9ffa172c6eec$var$renderCanvas()}function $100d9ffa172c6eec$var$addPoints(e,t){$100d9ffa172c6eec$var$pointsA.push(new $100d9ffa172c6eec$var$Point(e,t,1)),$100d9ffa172c6eec$var$pointsB.push(new $100d9ffa172c6eec$var$Point(e,t,2))}document.addEventListener("mousemove",$100d9ffa172c6eec$var$mouseDirection);class $100d9ffa172c6eec$var$Point{move(){this.vx+=(this.ix-this.x)/($100d9ffa172c6eec$var$viscosity*this.level),this.vy+=(this.iy-this.y)/($100d9ffa172c6eec$var$viscosity*this.level);var e=this.ix-$100d9ffa172c6eec$var$relMouseX,t=this.iy-$100d9ffa172c6eec$var$relMouseY,r=1-Math.sqrt(e*e+t*t)/$100d9ffa172c6eec$var$mouseDist;($100d9ffa172c6eec$var$mouseDirectionX>0&&$100d9ffa172c6eec$var$relMouseX>this.x||$100d9ffa172c6eec$var$mouseDirectionX<0&&$100d9ffa172c6eec$var$relMouseX0&&r<1&&(this.vx=$100d9ffa172c6eec$var$mouseSpeedX/4*r),this.vx*=1-$100d9ffa172c6eec$var$damping,this.x+=this.vx,($100d9ffa172c6eec$var$mouseDirectionY>0&&$100d9ffa172c6eec$var$relMouseY>this.y||$100d9ffa172c6eec$var$mouseDirectionY<0&&$100d9ffa172c6eec$var$relMouseY0&&r<1&&(this.vy=$100d9ffa172c6eec$var$mouseSpeedY/4*r),this.vy*=1-$100d9ffa172c6eec$var$damping,this.y+=this.vy}constructor(e,t,r){this.x=this.ix=25+e,this.y=this.iy=25+t,this.vx=0,this.vy=0,this.cx1=0,this.cy1=0,this.cx2=0,this.cy2=0,this.level=r}}function $100d9ffa172c6eec$var$renderCanvas(){requestAnimationFrame($100d9ffa172c6eec$var$renderCanvas);$100d9ffa172c6eec$var$context.clearRect(0,0,$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().width,$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().height),$100d9ffa172c6eec$var$context.fillStyle="transparent",$100d9ffa172c6eec$var$context.fillRect(0,0,$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().width,$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().height);for(var e=0;e<=$100d9ffa172c6eec$var$pointsA.length-1;e++)$100d9ffa172c6eec$var$pointsA[e].move(),$100d9ffa172c6eec$var$pointsB[e].move();var t=$100d9ffa172c6eec$var$$canvas.getBoundingClientRect(),r=t.top+window.scrollY,a=t.left+window.scrollX,n=Math.min(Math.max($100d9ffa172c6eec$var$mouseX-a,0),$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().width),o=Math.min(Math.max($100d9ffa172c6eec$var$mouseY-r,0),$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().height),i=Math.sqrt(Math.pow(n-$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().width/2,2)+Math.pow(o-$100d9ffa172c6eec$var$$canvas.getBoundingClientRect().height/2,2))/Math.sqrt(Math.pow($100d9ffa172c6eec$var$$canvas.getBoundingClientRect().width/2,2)+Math.pow($100d9ffa172c6eec$var$$canvas.getBoundingClientRect().height/2,2)),s=$100d9ffa172c6eec$var$context.createRadialGradient(n,o,300+300*i,n,o,0);s.addColorStop(0,"#F9BA37"),s.addColorStop(1,"#FFD262");for(var c=[$100d9ffa172c6eec$var$pointsA,$100d9ffa172c6eec$var$pointsB],l=0;l<=1;l++){var d=c[l];$100d9ffa172c6eec$var$context.fillStyle=0==l?"#8542EB":s,$100d9ffa172c6eec$var$context.beginPath(),$100d9ffa172c6eec$var$context.moveTo(d[0].x,d[0].y);for(e=0;eMath.random()*(t-e)+e,$305bf01fecf283f4$var$initConfettoVelocity=(e,t)=>{const r=$305bf01fecf283f4$var$randomRange(e[0],e[1]),a=t[1]-t[0]+1;let n=t[1]-Math.abs($305bf01fecf283f4$var$randomRange(0,a)+$305bf01fecf283f4$var$randomRange(0,a)-a);return n>=t[1]-1&&(n+=Math.random()<.25?$305bf01fecf283f4$var$randomRange(1,3):0),{x:r,y:-n}};class $305bf01fecf283f4$export$dd5caf7f88107e2f{initBurst(){for(let e=0;e<$305bf01fecf283f4$var$confettiCount;e++)this.confetti.push(new $305bf01fecf283f4$var$Confetto(this.confettiButton,this.canvas));for(let e=0;e<$305bf01fecf283f4$var$sequinCount;e++)this.sequins.push(new $305bf01fecf283f4$var$Sequin(this.confettiButton,this.canvas))}render(e,t,r,a,n){const o=t.getContext("2d");o.clearRect(0,0,t.width,t.height),r.forEach(((r,a)=>{let n=r.dimensions.x*r.scale.x,i=r.dimensions.y*r.scale.y;o.translate(r.position.x,r.position.y),o.rotate(r.rotation),r.update(),o.fillStyle=r.scale.y>0?r.color.front:r.color.back,o.fillRect(-n/2,-i/2,n,i),o.setTransform(1,0,0,1,0,0),r.velocity.y<0&&o.clearRect(t.width/2-e.offsetWidth/2,t.height/2+e.offsetHeight/2,e.offsetWidth,e.offsetHeight)})),a.forEach(((r,a)=>{o.translate(r.position.x,r.position.y),r.update(),o.fillStyle=r.color,o.beginPath(),o.arc(0,0,r.radius,0,2*Math.PI),o.fill(),o.setTransform(1,0,0,1,0,0),r.velocity.y<0&&o.clearRect(t.width/2-e.offsetWidth/2,t.height/2+e.offsetHeight/2,e.offsetWidth,e.offsetHeight)})),r.forEach(((e,a)=>{e.position.y>=t.height&&r.splice(a,1)})),a.forEach(((e,r)=>{e.position.y>=t.height&&a.splice(r,1)}));let i=n||this.render;window.requestAnimationFrame(i.bind(null,e,t,r,a,i))}clickButtonWithRedirection(e){$305bf01fecf283f4$var$disabled||(sessionStorage.setItem("cheddarFarmJustHarvested",e),this.confettiButton.classList.add("loading"),this.confettiButton.classList.remove("ready"))}successAnimation(){$305bf01fecf283f4$var$disabled=!0,this.confettiButton.classList.add("loading"),this.confettiButton.classList.remove("ready"),setTimeout((()=>{this.confettiButton.classList.add("complete"),this.confettiButton.classList.remove("loading"),setTimeout((()=>{this.initBurst(),setTimeout((()=>{$305bf01fecf283f4$var$disabled=!1,this.confettiButton.classList.add("ready"),this.confettiButton.classList.remove("complete")}),4e3)}),320)}),1800)}clickButtonWithoutRedirection(){$305bf01fecf283f4$var$disabled||($305bf01fecf283f4$var$disabled=!0,this.confettiButton.classList.add("loading"),this.confettiButton.classList.remove("ready"),setTimeout((()=>{this.confettiButton.classList.add("complete"),this.confettiButton.classList.remove("loading"),setTimeout((()=>{this.initBurst(),setTimeout((()=>{$305bf01fecf283f4$var$disabled=!1,this.confettiButton.classList.add("ready"),this.confettiButton.classList.remove("complete")}),4e3)}),320)}),1800))}resizeCanvas(){$305bf01fecf283f4$var$canvas.width=window.innerWidth,$305bf01fecf283f4$var$canvas.height=window.innerHeight}constructor(e){(0,$6skSc.default)(this,"confetti",[]),(0,$6skSc.default)(this,"sequins",[]),this.confettiButton=e.querySelector(".confetti-button"),this.canvas=e.querySelector("#new-confetti-button_canvas"),window.addEventListener("resize",(()=>{this.resizeCanvas()}))}}class $305bf01fecf283f4$var$Confetto{update(){this.velocity.x-=this.velocity.x*$305bf01fecf283f4$var$dragConfetti,this.velocity.y=Math.min(this.velocity.y+$305bf01fecf283f4$var$gravityConfetti,$305bf01fecf283f4$var$terminalVelocity),this.velocity.x+=Math.random()>.5?Math.random():-Math.random(),this.position.x+=this.velocity.x,this.position.y+=this.velocity.y,this.scale.y=Math.cos(.09*(this.position.y+this.randomModifier))}constructor(e,t){this.randomModifier=$305bf01fecf283f4$var$randomRange(0,99),this.color=$305bf01fecf283f4$var$colors[Math.floor($305bf01fecf283f4$var$randomRange(0,$305bf01fecf283f4$var$colors.length))],this.dimensions={x:$305bf01fecf283f4$var$randomRange(5,9),y:$305bf01fecf283f4$var$randomRange(8,15)},this.position={x:$305bf01fecf283f4$var$randomRange(t.width/2-e.offsetWidth/4,t.width/2+e.offsetWidth/4),y:$305bf01fecf283f4$var$randomRange(t.height/2+e.offsetHeight/2+8,t.height/2+1.5*e.offsetHeight-8)},this.rotation=$305bf01fecf283f4$var$randomRange(0,2*Math.PI),this.scale={x:1,y:1},this.velocity=$305bf01fecf283f4$var$initConfettoVelocity([-9,9],[6,11])}}class $305bf01fecf283f4$var$Sequin{update(){this.velocity.x-=this.velocity.x*$305bf01fecf283f4$var$dragSequins,this.velocity.y=this.velocity.y+$305bf01fecf283f4$var$gravitySequins,this.position.x+=this.velocity.x,this.position.y+=this.velocity.y}constructor(e,t){this.color=$305bf01fecf283f4$var$colors[Math.floor($305bf01fecf283f4$var$randomRange(0,$305bf01fecf283f4$var$colors.length))].back,this.radius=$305bf01fecf283f4$var$randomRange(1,2),this.position={x:$305bf01fecf283f4$var$randomRange(t.width/2-e.offsetWidth/3,t.width/2+e.offsetWidth/3),y:$305bf01fecf283f4$var$randomRange(t.height/2+e.offsetHeight/2+8,t.height/2+1.5*e.offsetHeight-8)},this.velocity={x:$305bf01fecf283f4$var$randomRange(-6,6),y:$305bf01fecf283f4$var$randomRange(-8,-12)}}}let $48eaa3ca5daefed6$export$fa494f8daebcc431=$0287b98b105b7ac7$export$44487a86467333c3($0287b98b105b7ac7$export$83401e34d5e11bf4),$48eaa3ca5daefed6$export$d71917a79103c107,$48eaa3ca5daefed6$export$4b6dd4ac026934d2=$60b4a2c04ed6d739$export$bb2eafcb55f553b2,$48eaa3ca5daefed6$var$nearWebWalletConnection,$48eaa3ca5daefed6$var$nearConnectedWalletAccount,$48eaa3ca5daefed6$var$accountName,$48eaa3ca5daefed6$var$isPaused=!1,$48eaa3ca5daefed6$var$loggedWithNarwallets=!1;const $48eaa3ca5daefed6$var$SECONDS=1e3,$48eaa3ca5daefed6$var$MINUTES=60*$48eaa3ca5daefed6$var$SECONDS,$48eaa3ca5daefed6$var$HOURS=60*$48eaa3ca5daefed6$var$MINUTES;let $48eaa3ca5daefed6$var$countDownIntervalId;const $48eaa3ca5daefed6$var$refreshTime=60*$48eaa3ca5daefed6$var$SECONDS,$48eaa3ca5daefed6$var$ONE_NEAR=BigInt(10)**BigInt(24);$248679f431bbdfb1$export$9ca9051b92b5a6d2(".popup button#cancel").forEach((e=>e.onclick=e=>{e.preventDefault(),$248679f431bbdfb1$export$e7f12c9836083937()})),$248679f431bbdfb1$export$836aee6bce45247("nav #home").onclick=async function(e){e.preventDefault(),$48eaa3ca5daefed6$export$4b6dd4ac026934d2.isConnected()?($48eaa3ca5daefed6$var$showSection("#home-connected"),$48eaa3ca5daefed6$var$selectNav("#home")):$48eaa3ca5daefed6$var$signedOutFlow()},$248679f431bbdfb1$export$836aee6bce45247("#logo").onclick=async function(e){e.preventDefault(),$48eaa3ca5daefed6$export$4b6dd4ac026934d2.isConnected()?$48eaa3ca5daefed6$var$signedInFlow($48eaa3ca5daefed6$export$4b6dd4ac026934d2):$48eaa3ca5daefed6$var$signedOutFlow()},$248679f431bbdfb1$export$836aee6bce45247("#my-account").onclick=async function(e){e.preventDefault(),$48eaa3ca5daefed6$export$4b6dd4ac026934d2.isConnected()?(console.log("Connected"),$48eaa3ca5daefed6$var$signedInFlow($48eaa3ca5daefed6$export$4b6dd4ac026934d2)):(console.log("Disconnected"),$48eaa3ca5daefed6$var$loginNearWebWallet())};let $48eaa3ca5daefed6$var$moreGamesButton=$248679f431bbdfb1$export$836aee6bce45247(".games-dropdown");$48eaa3ca5daefed6$var$moreGamesButton.addEventListener("click",$48eaa3ca5daefed6$var$gamesDropdownHandler());let $48eaa3ca5daefed6$var$noLivePoolsMsg=$248679f431bbdfb1$export$836aee6bce45247(".no-live-pools-msg");function $48eaa3ca5daefed6$var$gamesDropdownHandler(){return function(){$248679f431bbdfb1$export$836aee6bce45247(".games-dropdown-items").classList.toggle("down"),$248679f431bbdfb1$export$836aee6bce45247(".games-links-container").classList.toggle("games-dropdown-hidden-position"),$48eaa3ca5daefed6$var$moreGamesButton.querySelector("svg").classList.toggle("flipped")}}function $48eaa3ca5daefed6$var$navClickHandler_ConnectFirst(e){var t;e.preventDefault(),$48eaa3ca5daefed6$export$4b6dd4ac026934d2.isConnected()?$48eaa3ca5daefed6$var$showSection("#"+(null===(t=e.target.closest("a"))||void 0===t?void 0:t.id)):($48eaa3ca5daefed6$var$showSection("#home"),$48eaa3ca5daefed6$var$loginNearWebWallet())}function $48eaa3ca5daefed6$var$sayChoose(){$248679f431bbdfb1$export$787f5d117f138d13("Please choose a wallet to connect","Connect first")}function $48eaa3ca5daefed6$var$filterPools(e){return function(t){$48eaa3ca5daefed6$var$filterButtonClicked(t),$48eaa3ca5daefed6$var$hideAllPools(),$48eaa3ca5daefed6$var$showSelectedPools($248679f431bbdfb1$export$9ca9051b92b5a6d2(`.${e}`),e)}}function $48eaa3ca5daefed6$var$filterButtonClicked(e){$248679f431bbdfb1$export$9ca9051b92b5a6d2(".activeFilterButton").forEach((e=>{e.classList.remove("activeFilterButton")})),e.target.classList.add("activeFilterButton")}function $48eaa3ca5daefed6$var$hideAllPools(){document.querySelectorAll(".pool-container").forEach((e=>{e.classList.add("hidden")}))}function $48eaa3ca5daefed6$var$showSelectedPools(e,t){e.length>0?($248679f431bbdfb1$export$836aee6bce45247(".no-live-pools-msg").classList.add("hidden"),e.forEach((e=>{e.classList.remove("hidden")}))):"active-pool"==t&&$248679f431bbdfb1$export$836aee6bce45247(".no-live-pools-msg").classList.remove("hidden")}function $48eaa3ca5daefed6$var$activateClicked(e,t){return async function(r){r.preventDefault();let a=[];const n=await e.stakingContractData.getStakeTokenContractList();for(let e=0;ee.getMetadata())));const r=e.map((e=>e.getMetadataSync().symbol)),a=await $ef2d5ecaf6640d97$export$2e042ee8088ce7ba(r);let n=0;return e.forEach(((e,r)=>{const o=e.getMetadataSync(),i=o.symbol,s=$b9a6bf0e31025758$export$db8ae05e40dfea01(t[r],o.decimals,5),c=a.get(i.toLowerCase());n+=parseFloat(c.price)*parseFloat(s)})),n.toFixed(5)}function $48eaa3ca5daefed6$var$stakeMultiple(e,t){return async function(r){null==r||r.preventDefault(),$248679f431bbdfb1$export$11aadaec4fc63f87("Staking...");let a=[];try{let r=(new Date).getTime()/1e3;const n=await e.stakingContractData.getContractParams();if(!(r{e.removeAttribute("disabled")}))}}function $48eaa3ca5daefed6$var$unstakeMultiple(e,t){return async function(r){null==r||r.preventDefault(),$248679f431bbdfb1$export$11aadaec4fc63f87("Unstaking...");let a=[];try{(new Date).getTime();await e.stakingContractData.getContractParams();const{htmlInputArray:r,amountValuesArray:n,transferedAmountWithSymbolArray:o}=await $48eaa3ca5daefed6$var$getInputDataMultiple(e,t,"unstake");a=r,$248679f431bbdfb1$export$dd7fd6fec96e1ca2("input","disabled","disabled");if(await e.unstake(n),$48eaa3ca5daefed6$var$loggedWithNarwallets){for(let e=0;e{e.removeAttribute("disabled")}))}}async function $48eaa3ca5daefed6$var$getInputDataMultiple(e,t,r){let a=[],n=[],o=[],i=t.querySelectorAll(`.main-${r} .input-container`);const s=await e.stakingContractData.getStakeTokenContractList();let c;if("stake"==r)c=await e.getWalletAvailable();else{if("unstake"!=r)throw Error(`Action ${r} not available`);c=(await e.stakingContractData.getUserStatus()).stake_tokens}for(let e=0;eparseFloat(r))throw Error(`Only ${r} ${e.stakeTokenMetaData.symbol} Available to Stake.`);const n=(await e.stakingContractData.getStakeTokenContractList())[0],o=await n.getMetadata();await e.stakeTokenContract.ft_transfer_call(e.stakingContractData.contract.contractId,$b9a6bf0e31025758$export$b0ebaadef1c606a9(t.toString(),o.decimals.toString()),"to farm")}catch(e){$248679f431bbdfb1$export$dfd8f75b38935068(e)}a.removeAttribute("disabled")}}function $48eaa3ca5daefed6$var$harvestMultipleOrNFT(e,t){return async function(t){var r;null==t||t.preventDefault();let a=e.html.id;null===(r=e.confettiButton)||void 0===r||r.clickButtonWithRedirection(a),$248679f431bbdfb1$export$11aadaec4fc63f87("Harvesting..."),await e.stakingContractData.contract.withdraw_crop(),$248679f431bbdfb1$export$d841eba85c078f0b("Harvested successfully")}}function $48eaa3ca5daefed6$var$harvestSingle(e,t){return async function(t){var r;null==t||t.preventDefault(),$248679f431bbdfb1$export$11aadaec4fc63f87("Harvesting...");let a=e.html.id;null===(r=e.confettiButton)||void 0===r||r.clickButtonWithRedirection(a);const n=await e.stakingContractData.getUserStatus();let o=n.getCurrentCheddarRewards();await e.stakingContractData.contract.withdraw_crop(),n.computed=0n,n.real=0n,$248679f431bbdfb1$export$d841eba85c078f0b("Harvested"+$b9a6bf0e31025758$export$22adc86566c697a9(parseFloat(o))+" CHEDDAR")}}function $48eaa3ca5daefed6$var$unstakeSingle(e,t){return async function(r){null==r||r.preventDefault(),$248679f431bbdfb1$export$11aadaec4fc63f87("Unstaking...");const a=await e.stakingContractData.getUserStatus(),n=(await e.stakingContractData.getStakeTokenContractList())[0],o=await n.getMetadata();let i=t.querySelector(".main-unstake input");try{i.setAttribute("disabled","disabled");let t=parseFloat(i.value);const r=a.staked,n=Number($b9a6bf0e31025758$export$db8ae05e40dfea01(r.toString(),o.decimals,5));if(isNaN(t))throw Error("Please Input a Number.");if(t>n)throw Error(`Only ${n} ${o.symbol} Available to Unstake.`);await e.stakingContractData.contract.unstake($b9a6bf0e31025758$export$b0ebaadef1c606a9(t.toString(),o.decimals.toString()))}catch(e){$248679f431bbdfb1$export$dfd8f75b38935068(e)}i.removeAttribute("disabled")}}function $48eaa3ca5daefed6$var$termsOfUseListener(){return async function(e){e.preventDefault(),$248679f431bbdfb1$export$348d584e223bdf1b("#terms.popup")}}function $48eaa3ca5daefed6$var$showUnstakeResult(e){$248679f431bbdfb1$export$d841eba85c078f0b(`
Unstaked
${$b9a6bf0e31025758$export$4ff57fb4047274ad(e)}
`,"Unstake")}function $48eaa3ca5daefed6$var$showRemoveLiquidityResult(e){$248679f431bbdfb1$export$d841eba85c078f0b(`
cheddar received
${$b9a6bf0e31025758$export$4ff57fb4047274ad($b9a6bf0e31025758$export$7b927db028bec867(e))}
`,"Withdraw crop")}async function $48eaa3ca5daefed6$var$autoRefresh(){$48eaa3ca5daefed6$export$4b6dd4ac026934d2&&$48eaa3ca5daefed6$export$4b6dd4ac026934d2.isConnected()}function $48eaa3ca5daefed6$var$showSection(e){$248679f431bbdfb1$export$9ca9051b92b5a6d2("main section").forEach($248679f431bbdfb1$export$fe8985bb6374093c);const t=$248679f431bbdfb1$export$836aee6bce45247("main").querySelector(e);t&&($248679f431bbdfb1$export$57bf213be019eeb0(t),$48eaa3ca5daefed6$var$selectNav(e)),$248679f431bbdfb1$export$836aee6bce45247(".burger-button").classList.remove("burger-button--toggle"),$248679f431bbdfb1$export$836aee6bce45247(".navbar-links").classList.remove("show-right__nav")}function $48eaa3ca5daefed6$var$selectNav(e){var t;$248679f431bbdfb1$export$9ca9051b92b5a6d2("nav a").forEach((e=>e.classList.remove("selected"))),null===(t=$248679f431bbdfb1$export$836aee6bce45247("nav").querySelector(e))||void 0===t||t.classList.add("selected")}function $48eaa3ca5daefed6$var$takeUserAmountFromHome(){let e="";try{const t=$248679f431bbdfb1$export$fc7d7d4be9a81733("#stake-form-not-connected input.near");e=t.value,e||(e=localStorage.getItem("amount")||""),e&&($248679f431bbdfb1$export$fc7d7d4be9a81733("#stake input.near").value=e,t.value="",localStorage.removeItem("amount"))}catch(e){}return e}async function $48eaa3ca5daefed6$var$signedOutFlow(){$48eaa3ca5daefed6$var$signedInFlow($60b4a2c04ed6d739$export$bb2eafcb55f553b2)}async function $48eaa3ca5daefed6$var$signedInFlow(e){if($48eaa3ca5daefed6$var$showSection("#home-connected"),$48eaa3ca5daefed6$var$selectNav("#home"),$48eaa3ca5daefed6$var$takeUserAmountFromHome(),e.isConnected()){let t,r=e.getDisplayableAccountId();t=r.length<15?r:r.slice(0,12)+"...";let a=$248679f431bbdfb1$export$836aee6bce45247(".user-info #account-id");a.innerText=t,a.title=r}else $248679f431bbdfb1$export$836aee6bce45247(".not-connected-msg").classList.remove("hidden"),$248679f431bbdfb1$export$836aee6bce45247(".user-info #account-id").innerText=e.getAccountId()}function $48eaa3ca5daefed6$var$setDefaultFilter(e=!1){let t=$248679f431bbdfb1$export$9ca9051b92b5a6d2(".your-farms"),r=$248679f431bbdfb1$export$9ca9051b92b5a6d2(".active-pool");const a=new Event("click");e?$248679f431bbdfb1$export$836aee6bce45247("#live-filter").dispatchEvent(a):t.length>0?$248679f431bbdfb1$export$836aee6bce45247("#your-farms-filter").dispatchEvent(a):r.length>0?$248679f431bbdfb1$export$836aee6bce45247("#live-filter").dispatchEvent(a):$248679f431bbdfb1$export$836aee6bce45247("#ended-filter").dispatchEvent(a)}async function $48eaa3ca5daefed6$var$initNearWebWalletConnection(){const e=await(0,$ee2943f37bed84ec$exports.connect)(Object.assign({deps:{keyStore:new $ee2943f37bed84ec$exports.keyStores.BrowserLocalStorageKeyStore}},$48eaa3ca5daefed6$export$fa494f8daebcc431));$48eaa3ca5daefed6$var$nearWebWalletConnection=new(0,$ee2943f37bed84ec$exports.WalletConnection)(e,null),$48eaa3ca5daefed6$var$nearConnectedWalletAccount=new(0,$ee2943f37bed84ec$exports.ConnectedWalletAccount)($48eaa3ca5daefed6$var$nearWebWalletConnection,e.connection,$48eaa3ca5daefed6$var$nearWebWalletConnection.getAccountId())}function $48eaa3ca5daefed6$var$logoutNearWebWallet(){$48eaa3ca5daefed6$var$nearWebWalletConnection.signOut(),$48eaa3ca5daefed6$export$4b6dd4ac026934d2=$60b4a2c04ed6d739$export$bb2eafcb55f553b2,window.location.replace(window.location.origin+window.location.pathname)}function $48eaa3ca5daefed6$var$loginNearWebWallet(){$48eaa3ca5daefed6$var$nearWebWalletConnection.requestSignIn($48eaa3ca5daefed6$export$fa494f8daebcc431.farms[0].contractName)}function $48eaa3ca5daefed6$var$loginNarwallets(){window.open("http://www.narwallets.com/help/connect-to-web-app")}function $48eaa3ca5daefed6$var$showOrHideMaxButton(e,t){e>0?t.classList.remove("hidden"):t.classList.add("hidden")}function $48eaa3ca5daefed6$var$setDateInRangeVisualIndication(e,t,r){let a=t.querySelector(".date-in-range-indicator circle");r?(a.classList.remove("offDate"),a.classList.add("onDate")):(a.classList.remove("onDate"),a.classList.add("offDate"));let n=0,o=t.querySelectorAll(".unclaimed-rewards-info-container .detail-row");o.forEach((e=>{let t=e.querySelector(".content"),r=Number(t.innerHTML);n+=r}));let i=t.querySelector(".unclaimed-rewards"),s=t.querySelector(".unclaimed-rewards-value-usd");0==n?(i.classList.remove("no-opacity"),s.classList.remove("no-opacity"),o.forEach((e=>{e.classList.remove("no-opacity")}))):(i.classList.add("no-opacity"),s.classList.add("no-opacity"),o.forEach((e=>{e.classList.add("no-opacity")})))}async function $48eaa3ca5daefed6$var$refreshPoolInfoSingle(e,t){await e.refreshAllExtraData();const r=await e.stakingContractData.getContractParams(),a=await e.stakingContractData.getUserStatus();await $48eaa3ca5daefed6$var$updateDetail(t,e.stakeTokenContractList,[r.total_staked],"total-staked"),await $48eaa3ca5daefed6$var$updateDetail(t,e.farmTokenContractList,$48eaa3ca5daefed6$var$convertRewardsRates([r.farming_rate.toString()]),"rewards-per-day"),await $48eaa3ca5daefed6$var$uptadeDetailIfNecesary(e,t,[await e.getFarmTokenContractData()],[a.real.toString()],"unclaimed-rewards");const n=await Promise.all(e.stakeTokenContractList.map((e=>e.getBalance())));if(await $48eaa3ca5daefed6$var$refreshInputAmounts(e,t,"main-stake",n),await $48eaa3ca5daefed6$var$refreshInputAmounts(e,t,"main-unstake",[a.staked.toString()]),0n==a.staked){var o,i;t.classList.remove("your-farms");let r=await $48eaa3ca5daefed6$var$needsStorageDeposit(e.stakeTokenContract);const a=e.stakeTokenContractList;for(let e=0;ee.rewardsPerDayBN.toString()));await $48eaa3ca5daefed6$var$updateDetail(t,o,i,"rewards-per-day"),await $48eaa3ca5daefed6$var$updateDetail(t,o,a.farmed_tokens,"unclaimed-rewards");const s=Date.now()/1e3,c=r.farming_starte.getBalance())));await $48eaa3ca5daefed6$var$refreshInputAmounts(e,t,"main-stake",r),await $48eaa3ca5daefed6$var$refreshInputAmounts(e,t,"main-unstake",a.stake_tokens),c||$48eaa3ca5daefed6$var$resetMultiplePoolListener(e,t,$48eaa3ca5daefed6$var$refreshNFTOrMultiplePoolInfo,-1)}else e instanceof $9abd5ffcf1077e8a$export$c5b7d705df392988&&(c||$48eaa3ca5daefed6$var$resetNFTPoolListener(e,t,$48eaa3ca5daefed6$var$refreshNFTOrMultiplePoolInfo,-1));$48eaa3ca5daefed6$var$setBoostDisplay(e,t),$48eaa3ca5daefed6$var$setDateInRangeVisualIndication(e,t,c)}async function $48eaa3ca5daefed6$var$refreshInputAmounts(e,t,r,a){const n=t.querySelectorAll(`.${r} .token-input-container`),o=await e.stakingContractData.getStakeTokenContractList();for(let e=0;e(60n*BigInt(e)*24n).toString()))}async function $48eaa3ca5daefed6$var$updateDetail(e,t,r,a){const n=await $48eaa3ca5daefed6$var$convertToUSDMultiple(t,r);e.querySelector(`.${a}-row .${a}-value-usd`).innerHTML=`$ ${n}`;const o=e.querySelectorAll(`.${a}-info-container .detail-row`);for(let e=0;e{}))}function $48eaa3ca5daefed6$var$narwalletConnected(e){$48eaa3ca5daefed6$export$4b6dd4ac026934d2=$8fa95b9ef49776e6$export$63d3d30f802e1ca1,$48eaa3ca5daefed6$var$loggedWithNarwallets=!0,$48eaa3ca5daefed6$var$signedInFlow($48eaa3ca5daefed6$export$4b6dd4ac026934d2)}function $48eaa3ca5daefed6$var$narwalletDisconnected(e){$48eaa3ca5daefed6$var$loggedWithNarwallets=!1,$48eaa3ca5daefed6$export$4b6dd4ac026934d2=$60b4a2c04ed6d739$export$bb2eafcb55f553b2,$48eaa3ca5daefed6$var$signedOutFlow()}function $48eaa3ca5daefed6$var$calculateAmountHaveStaked(e,t,r,a){return t*e[a]/e[r]}function $48eaa3ca5daefed6$var$calculateAmountToStake(e,t,r,a,n){const o=(t[a]+r)*e[a]/e[n]-t[n];return o>0n?o:0n}function $48eaa3ca5daefed6$var$calculateAmountToUnstake(e,t,r,a,n){const o=t[a]-r,i=t[n]-o*e[a]/e[n];return i>0n?i:0n}function $48eaa3ca5daefed6$var$autoFillStakeAmount(e,t,r,a){return async function(n){n.preventDefault();const o=n.target.value,i=await e.stakingContractData.getStakeTokenContractList(),s=await i[a].getMetadata(),c=BigInt($b9a6bf0e31025758$export$b0ebaadef1c606a9(o,s.decimals.toString())),l=await e.stakingContractData.getContractParams(),d=await e.stakingContractData.getUserStatus();let u=t.querySelectorAll(`${r} input`);const f=l.stake_rates.map((e=>BigInt(e))),h=d.stake_tokens.map((e=>BigInt(e)));for(let e=0;e{e.setAttribute("src",i.icon||"")})),await $48eaa3ca5daefed6$var$addInput(t,n,"stake"),await $48eaa3ca5daefed6$var$addInput(t,n,"unstake",a.staked.toString()),await $48eaa3ca5daefed6$var$addHeader(e,t);let s=await $48eaa3ca5daefed6$var$getUnclaimedRewardsInUSDSingle(e);const c=Date.now()/1e3 here.
`),r.innerHTML+=a[e],r.classList.remove("hidden")}}async function $48eaa3ca5daefed6$var$addNFTPool(e,t){const r=await e.stakingContractData.getFarmTokenContractList();let a=await e.stakingContractData.getContractParams();await $48eaa3ca5daefed6$var$addHeader(e,t);const n=(await e.getRewardsTokenDetail()).map((e=>e.rewardsPerDayBN.toString())),o=await $48eaa3ca5daefed6$var$convertToUSDMultiple(r,n);if(t.querySelector(".rewards-per-day-value-usd").innerHTML=`$ ${o}`,e.config.noBoost){t.querySelector(".equal-width-than-boost-button").classList.add("hidden"),t.querySelector(".harvest-section").style.justifyContent="center"}else t.querySelector(".boost-button").classList.remove("hidden");t.querySelector(".structural-in-simple-pools").classList.add("hidden");const i=Date.now()/1e3 here.`),d.innerHTML+=u[t]+"
",d.classList.remove("hidden")}const f=(await e.getRewardsTokenDetail()).map((e=>e.rewardsPerDayBN.toString())),h=await $48eaa3ca5daefed6$var$convertToUSDMultiple(o,f);t.querySelector(".total-staked-row .total-staked-value-usd").innerHTML=`$ ${l}`,t.querySelector(".rewards-per-day-value-usd").innerHTML=`$ ${h}`;const p=$48eaa3ca5daefed6$var$calculateAPR(l,h,c);t.querySelector(".apr-value").innerHTML=`${p}%`,$48eaa3ca5daefed6$var$setBoostDisplay(e,t),$48eaa3ca5daefed6$var$addMultiplePoolListeners(e,t)}async function $48eaa3ca5daefed6$var$setBoostDisplay(e,t){const r=await e.stakingContractData.getUserStatus();let a;a="boost_nfts"in r?""!=r.boost_nfts:""!=r.cheddy_nft,a?(t.querySelector(".boost-button svg").setAttribute("class","full"),t.querySelector(".boost-button span").innerHTML="BOOSTED"):(t.querySelector(".boost-button svg").setAttribute("class","empty"),t.querySelector(".boost-button span").innerHTML="BOOST")}function $48eaa3ca5daefed6$var$addFocusClass(e){return function(t){null==t||t.preventDefault,e.classList.toggle("focused")}}async function $48eaa3ca5daefed6$var$addInput(e,t,r,a){var n;var o=$248679f431bbdfb1$export$836aee6bce45247(".generic-token-input-container").cloneNode(!0);let i=o.querySelector(".input-container"),s=o.querySelector(".available-info"),c=o.querySelector("input");const l=await t.getMetadata();o.classList.remove("generic-token-input-container"),o.classList.add("token-input-container"),o.classList.add(`${l.symbolForHtml.toLowerCase()}-input`),o.classList.remove("hidden"),o.querySelector(".available-info span").innerHTML=`Available to ${r}`,null===(n=o.querySelector(".amount-available"))||void 0===n||n.classList.add(r),c.addEventListener("focus",$48eaa3ca5daefed6$var$addFocusClass(i)),c.addEventListener("blur",$48eaa3ca5daefed6$var$addFocusClass(i));let d=o.querySelector(".input-container .token-logo"),u=o.querySelector(".amount-available .value"),f=s.querySelector(".max-button");if(null!=l.icon){if(l.icon.startsWith("data:image")){let e=o.querySelector("img.token-logo");null==e||e.setAttribute("src",l.icon),null==d||d.classList.remove("hidden")}else if(l.icon.startsWith("{e.classList.add("hidden")}))}async function $48eaa3ca5daefed6$var$addAllCommonListeners(e,t){let r,a=t.querySelector(".new-pool-header .information-icon-container"),n=t.querySelector("#token-pool-stats");if(a.addEventListener("mouseover",$48eaa3ca5daefed6$var$showElement(n)),n.addEventListener("mouseover",$48eaa3ca5daefed6$var$showElement(n)),n.addEventListener("mouseout",$48eaa3ca5daefed6$var$hideElement(n)),r=!(e instanceof $87c0b564e06fda7a$export$5fdb16077e6436d1)&&await $48eaa3ca5daefed6$var$needsStorageDeposit(e.stakingContractData.contract),!(e instanceof $9abd5ffcf1077e8a$export$c5b7d705df392988||r||t.classList.contains("inactive-pool"))){let e=t.querySelector("#vanishing-indicator");null==e||e.classList.remove("transparent"),null==e||e.classList.add("visual-tool-expanding-indication-hidden"),t.addEventListener("mouseover",$48eaa3ca5daefed6$var$paintOrUnPaintElement("visual-tool-expanding-indication-hidden",e)),t.addEventListener("mouseout",$48eaa3ca5daefed6$var$paintOrUnPaintElement("visual-tool-expanding-indication-hidden",e));let r=t.querySelector(".expand-button");t.addEventListener("mouseover",$48eaa3ca5daefed6$var$makeBlinkElement(r)),t.addEventListener("mouseout",$48eaa3ca5daefed6$var$makeBlinkElement(r))}}async function $48eaa3ca5daefed6$var$addSinglePoolListeners(e,t){var r,a,n,o;$48eaa3ca5daefed6$var$addAllCommonListeners(e,t);const i=await e.getStakeTokenContractData(),s=await i.getMetadata();null===(r=t.querySelector(".confetti-button"))||void 0===r||r.addEventListener("click",$48eaa3ca5daefed6$var$harvestSingle(e,t));[].push(`${s.symbol.toLowerCase()}`),null===(a=t.querySelector(".confetti-button"))||void 0===a||a.addEventListener("click",$48eaa3ca5daefed6$var$harvestSingle(e,t)),null===(n=t.querySelector("#stake-button"))||void 0===n||n.addEventListener("click",$48eaa3ca5daefed6$var$stakeSingle(e,t)),null===(o=t.querySelector("#unstake-button"))||void 0===o||o.addEventListener("click",$48eaa3ca5daefed6$var$unstakeSingle(e,t)),$48eaa3ca5daefed6$var$setAllInputMaxButtonListeners(t);const c=Date.now()/1e3,l=await e.stakingContractData.getContractParams();let d=-1;l.farming_startt.classList.remove(e)));const r=Date.now()/1e3<(await e.stakingContractData.getContractParams()).farming_end;await e.userHasStakedTokens()&&t.classList.add("your-farms"),r?t.classList.add("active-pool"):t.classList.add("inactive-pool")}async function $48eaa3ca5daefed6$var$addPool(e){let t,r;var a=$248679f431bbdfb1$export$836aee6bce45247("#generic-pool-container").cloneNode(!0);a.setAttribute("id",e.html.id.toLowerCase().replace(" ","_")),a.classList.remove("hidden"),a.classList.add("pool-container"),$48eaa3ca5daefed6$var$addFilterClasses(e,a),await $48eaa3ca5daefed6$var$addRewardTokenIcons(e,a),await $48eaa3ca5daefed6$var$addTotalStakedDetail(e,a),await $48eaa3ca5daefed6$var$addRewardsPerDayDetail(e,a),await $48eaa3ca5daefed6$var$addRewardsTokenDetail(e,a),await $48eaa3ca5daefed6$var$addUnclaimedRewardsDetail(e,a),e instanceof $87c0b564e06fda7a$export$5fdb16077e6436d1&&"single"==e.type?(t=e,await $48eaa3ca5daefed6$var$addPoolSingle(t,a)):e instanceof $bee33ca938e55edd$export$856d9c4c9c7b8da0&&"multiple"==e.type?(r=e,await $48eaa3ca5daefed6$var$addPoolMultiple(r,a)):e instanceof $9abd5ffcf1077e8a$export$c5b7d705df392988&&"nft"==e.type&&await $48eaa3ca5daefed6$var$addNFTPool(e,a),$48eaa3ca5daefed6$var$addPoolTokensDescription(a,e);let n=a.querySelector("#contract-start"),o=a.querySelector("#contract-end");const i=await e.stakingContractData.getContractParams(),s=i.accounts_registered;a.querySelector(".accounts-registered-value-usd").innerHTML=`${s} accounts`,n.innerHTML=new Date(1e3*i.farming_start).toLocaleString(),o.innerHTML=new Date(1e3*i.farming_end).toLocaleString();const c=await e.getPoolName();a.querySelectorAll(".token-name").forEach((e=>{e.innerHTML=c})),a.classList.contains("inactive-pool")?$48eaa3ca5daefed6$var$displayInactiveP2P3Pool(a):await $48eaa3ca5daefed6$var$displayActivePool(e,a);if($48eaa3ca5daefed6$var$setDateInRangeVisualIndication(e,a,(new Date).getTime()/1e3{}),1e3);null===(r=t.confettiButton)||void 0===r||r.successAnimation(),sessionStorage.removeItem("cheddarFarmJustHarvested"),sessionStorage.removeItem("cheddarFarmHarvestedSuccesfully")}}function $48eaa3ca5daefed6$var$displayInactiveP2P3Pool(e){if(e.classList.contains("your-farms")){$48eaa3ca5daefed6$var$toggleStakeUnstakeSection(e),$48eaa3ca5daefed6$var$setUnstakeTabListeners(e),e.querySelector(".harvest-section").classList.remove("hidden"),e.querySelector("#staking-unstaking-container .staking").setAttribute("disabled","disabled");const t=new Event("click");e.querySelector("#staking-unstaking-container .unstaking").dispatchEvent(t)}}function $48eaa3ca5daefed6$var$displayInactiveNFTPool(e,t){t.classList.contains("your-farms")&&(e.querySelector("#stake-unstake-nft").classList.remove("hidden"),e.querySelector(".harvest-section").classList.remove("hidden"))}function $48eaa3ca5daefed6$var$toggleStakeUnstakeSection(e){let t=e.querySelector(".expand-button"),r=e.querySelector("#pool-container");t.classList.remove("hidden"),$48eaa3ca5daefed6$var$toggleExpandStakeUnstakeSection(e,r),$48eaa3ca5daefed6$var$toggleExpandStakeUnstakeSection(e,t)}function $48eaa3ca5daefed6$var$setUnstakeTabListeners(e){let t=e.querySelector(".staking"),r=e.querySelector(".unstaking"),a=e.querySelector(".main-stake"),n=e.querySelector(".main-unstake"),o=e.querySelector("#stake-button"),i=e.querySelector("#unstake-button");r.addEventListener("click",$48eaa3ca5daefed6$var$showElementHideAnother(n,a)),r.addEventListener("click",$48eaa3ca5daefed6$var$showElementHideAnother(i,o)),r.addEventListener("click",$48eaa3ca5daefed6$var$setActiveColor),r.addEventListener("click",$48eaa3ca5daefed6$var$cancelActiveColor(t))}function $48eaa3ca5daefed6$var$displayIfNftPool(e,t,r){if(t){if(e.classList.contains("inactive-pool")&&!r)return;e.querySelector("#stake-unstake-nft").classList.remove("hidden")}}function $48eaa3ca5daefed6$var$displayIfTokenPool(e,t){if(t){$48eaa3ca5daefed6$var$toggleStakeUnstakeSection(e);let t=e.querySelector(".staking"),r=e.querySelector(".unstaking"),a=e.querySelector(".main-stake"),n=e.querySelector(".main-unstake"),o=e.querySelector("#stake-button"),i=e.querySelector("#unstake-button");$48eaa3ca5daefed6$var$setUnstakeTabListeners(e),t.addEventListener("click",$48eaa3ca5daefed6$var$showElementHideAnother(a,n)),t.addEventListener("click",$48eaa3ca5daefed6$var$showElementHideAnother(o,i)),t.addEventListener("click",$48eaa3ca5daefed6$var$setActiveColor),t.addEventListener("click",$48eaa3ca5daefed6$var$cancelActiveColor(r))}}async function $48eaa3ca5daefed6$var$displayActivePool(e,t){let r=t.querySelector("#activate"),a=t.querySelector(".activate"),n=t.querySelector(".harvest-section");if($48eaa3ca5daefed6$export$4b6dd4ac026934d2!=$60b4a2c04ed6d739$export$bb2eafcb55f553b2){let n=null!=await e.stakingContractData.contract.storageBalance();if(!n&&(r.classList.remove("hidden"),a.addEventListener("click",$48eaa3ca5daefed6$var$activateClicked(e,t)),"nearcon"==e.html.formId||"cheddar"==e.html.formId)){let e="ONLY ACTIVATE IF PREVIOUSLY STAKED
0.06 NEAR storage deposit, gets refunded.";t.querySelector("#depositWarning").innerHTML=e}if(e instanceof $87c0b564e06fda7a$export$5fdb16077e6436d1||e instanceof $bee33ca938e55edd$export$856d9c4c9c7b8da0)$48eaa3ca5daefed6$var$displayIfTokenPool(t,n);else if(e instanceof $9abd5ffcf1077e8a$export$c5b7d705df392988){const r=await e.stakingContractData.getUserStatus();$48eaa3ca5daefed6$var$displayIfNftPool(t,n,r.stake_tokens.some((e=>e.length>0))&&"0"!=r.stake)}}t.classList.contains("your-farms")&&(r.classList.add("hidden"),a.setAttribute("disabled","disabled"),n.classList.remove("hidden"))}function $48eaa3ca5daefed6$var$addLogo(e,t,r=0){let a;if(null!=e.icon&&""!=e.icon)if(e.icon.startsWith("data:image")){a=$248679f431bbdfb1$export$836aee6bce45247(".generic-token-logo-img").cloneNode(!0),null==a||a.setAttribute("src",e.icon)}else if(e.icon.startsWith("New Pools SoonTM...⚙️ Try our games!🕹️'),$48eaa3ca5daefed6$var$isPaused=!1}$48eaa3ca5daefed6$var$noLivePoolsMsg.addEventListener("click",$48eaa3ca5daefed6$var$gamesDropdownHandler()),$248679f431bbdfb1$export$836aee6bce45247("nav #unstake-m").onclick=$48eaa3ca5daefed6$var$navClickHandler_ConnectFirst,$248679f431bbdfb1$export$836aee6bce45247("nav #liquidity").onclick=$48eaa3ca5daefed6$var$navClickHandler_ConnectFirst,$248679f431bbdfb1$export$836aee6bce45247("nav #my-account").onclick=$48eaa3ca5daefed6$var$navClickHandler_ConnectFirst,$248679f431bbdfb1$export$836aee6bce45247("nav #faq").onclick=()=>{$48eaa3ca5daefed6$var$showSection("#faq")},$248679f431bbdfb1$export$836aee6bce45247("#sign-out").onclick=async function(e){e.preventDefault(),$48eaa3ca5daefed6$export$4b6dd4ac026934d2.disconnect(),$48eaa3ca5daefed6$export$4b6dd4ac026934d2=$60b4a2c04ed6d739$export$bb2eafcb55f553b2,$48eaa3ca5daefed6$var$signedOutFlow()},$248679f431bbdfb1$export$836aee6bce45247("#live-filter").onclick=$48eaa3ca5daefed6$var$filterPools("active-pool"),$248679f431bbdfb1$export$836aee6bce45247("#ended-filter").onclick=$48eaa3ca5daefed6$var$filterPools("inactive-pool"),$248679f431bbdfb1$export$836aee6bce45247("#your-farms-filter").onclick=$48eaa3ca5daefed6$var$filterPools("your-farms");let $48eaa3ca5daefed6$var$closePublicityButton=$248679f431bbdfb1$export$836aee6bce45247(".close-publicity");function $48eaa3ca5daefed6$var$closePublicityButtonHandler(){return function(){$48eaa3ca5daefed6$var$closePublicityButton.classList.add("hidden"),$248679f431bbdfb1$export$836aee6bce45247(".publicity-container").classList.add("hidden"),$248679f431bbdfb1$export$836aee6bce45247(".publicity-decoration").classList.add("no-publicity-position"),$248679f431bbdfb1$export$836aee6bce45247("header").classList.add("no-publicity-position"),$248679f431bbdfb1$export$836aee6bce45247("#burguer").classList.add("no-publicity-position")}}function $48eaa3ca5daefed6$var$setCountdown(){var e=new Date("Aug 22, 2022 12:00:00 UTC"),t=(e=new Date(e.getTime()-6e4*e.getTimezoneOffset()),new Date),r=(t=new Date(t.getTime()-6e4*t.getTimezoneOffset()),e.getTime()-t.getTime());r<0&&(clearInterval($48eaa3ca5daefed6$var$countDownIntervalId),document.getElementById("timer").innerHTML="");var a=Math.floor(r/864e5),n=Math.floor(r%864e5/36e5),o=Math.floor(r%36e5/6e4),i=Math.floor(r%6e4/1e3);document.getElementById("timer").innerHTML=`

New Pools Start In: ${a} d : ${n} h : \n ${o} m : ${i} s

`}async function $48eaa3ca5daefed6$var$stakeResult(e){let t="Staked: ",r=[];const a=await $b30dd8d804760f6e$export$f08cc331730b6f90($48eaa3ca5daefed6$export$4b6dd4ac026934d2);let n;for(let t=0;t{let a;if(n instanceof $87c0b564e06fda7a$export$5fdb16077e6436d1)a=await n.stakeTokenContract.ft_metadata();else if(n instanceof $bee33ca938e55edd$export$856d9c4c9c7b8da0){const e=await n.stakingContractData.getStakeTokenContractList();a=await e[t].contract.ft_metadata()}if(!a)throw new Error("Error obtaining metadata on stake result");const o=$b9a6bf0e31025758$export$db8ae05e40dfea01(e.amount,a.decimals,5);r.push(`${o} ${a.symbol}`)}))),t+=r.join(" - "),$248679f431bbdfb1$export$d841eba85c078f0b(t,"Stake")}async function $48eaa3ca5daefed6$var$unstakeResult(e){let t="Unstaked: ";if("nft_contract_id"in e[0])t+=`deposited cheddar and ${e.length} NFTs have been refunded`;else if("token"in e[0]){let r=[];for(let t=0;t{e.classList.remove("selected")}));let n;r.target.classList.add("selected"),n="stake"==e?a.querySelectorAll(".nft-card.unstaked"):a.querySelectorAll(".nft-card.staked"),n.forEach((e=>{e.classList.add("selected")})),$48eaa3ca5daefed6$var$displayCheddarNeededToStakeNFTs(t)}}async function $48eaa3ca5daefed6$var$showStakeUnstakeNFTGrid(e,t){const r=$b9a6bf0e31025758$export$7b927db028bec867((await e.stakingContractData.getContractParams()).cheddar_rate);$248679f431bbdfb1$export$836aee6bce45247(".needed-to-stake-each-nft .amount").innerHTML=r.toString();$248679f431bbdfb1$export$836aee6bce45247(".multiple-nft-selection").classList.remove("hidden");$248679f431bbdfb1$export$836aee6bce45247("#confirm-stake-unstake").classList.remove("hidden");$248679f431bbdfb1$export$836aee6bce45247("#cancel-stake-unstake").classList.remove("hidden");$248679f431bbdfb1$export$836aee6bce45247(".unstake-all-nft-button").addEventListener("click",$48eaa3ca5daefed6$var$selectAllActionNftButtons("unstake",r));$248679f431bbdfb1$export$836aee6bce45247(".stake-all-nft-button").addEventListener("click",$48eaa3ca5daefed6$var$selectAllActionNftButtons("stake",r)),$48eaa3ca5daefed6$var$displayCheddarNeededToStakeNFTs(r),await $48eaa3ca5daefed6$var$loadAndShowNfts(e,t)}function $48eaa3ca5daefed6$var$showNFTGrid(e,t){return async function(){$48eaa3ca5daefed6$var$loadAndShowNfts(e,t)}}async function $48eaa3ca5daefed6$var$loadNFTs(e,t){const r=$248679f431bbdfb1$export$836aee6bce45247(".nft-flex");r.innerHTML="";const a=e.wallet.getAccountId();let n,o=[],i=[],s=await e.stakingContractData.getUserStatus(),c=!1;if("boost-button"===t){n=e.nftContractForBoosting;const t=(await n.nft_tokens_for_owner(a)).map((e=>$5bb8c1f4dd174367$export$2e2bcd8739ae039((0,$l1eCU.default)({},e),{contract_id:n.contractId,base_url:n.baseUrl})));let r;console.log(1,t.length),i=i.concat(t),"boost_nfts"in s?(c=""!=s.boost_nfts,r=s.boost_nfts):(c=""!=s.cheddy_nft,r=s.cheddy_nft),c&&o.push($0289842476b67664$export$df86ca1385cfe2b(r,n.baseUrl,n.contractId))}else{if(!("stake-unstake-nft"===t&&e instanceof $9abd5ffcf1077e8a$export$c5b7d705df392988))throw new Error(`Object ${typeof e} is not implemented for loading NFT's`);{const t=await e.stakingContractData.getStakeNFTContractList();for(let e=0;e$5bb8c1f4dd174367$export$2e2bcd8739ae039((0,$l1eCU.default)({},e),{contract_id:r.contractId,base_url:s}))))}c=s.stake_tokens.some((e=>e.length>0));for(let e=0;e{o.push($5bb8c1f4dd174367$export$2e2bcd8739ae039((0,$l1eCU.default)({},e),{contract_id:r.contractId,base_url:r.baseUrl}))}))}}}if(0!=i.length||c)o.length>0&&o.forEach((a=>{$48eaa3ca5daefed6$var$addNFT(e,r,a,c,"",t,"",!0)})),i.forEach((a=>{console.log(4,a),$48eaa3ca5daefed6$var$addNFT(e,r,a,c,"",t,"",!1)}));else{let t="";if(e instanceof $bee33ca938e55edd$export$856d9c4c9c7b8da0)t="cheddar";else{const r=await e.stakingContractData.getStakeNFTContractList();t=(await r[0].getMetadata()).name.toLowerCase()}r.innerHTML=`You don't have any ${t} NFT`}}function $48eaa3ca5daefed6$var$checkIfMultipleSelectionButtonsMustBeSelected(){const e=document.querySelector("#nft-pools-section");let t=e.querySelectorAll(".unstaked").length,r=e.querySelectorAll(".staked").length,a=e.querySelectorAll(".unstaked.selected").length,n=e.querySelectorAll(".staked.selected").length,o=$248679f431bbdfb1$export$836aee6bce45247(".stake-all-nft-button");t==a&&0!=t?o.classList.add("selected"):o.classList.remove("selected");let i=$248679f431bbdfb1$export$836aee6bce45247(".unstake-all-nft-button");r==n&&0!=r?i.classList.add("selected"):i.classList.remove("selected")}function $48eaa3ca5daefed6$var$stakeAndUstakeNFTButtonHandler(e,t){return function(){e.classList.toggle("selected"),$48eaa3ca5daefed6$var$checkIfMultipleSelectionButtonsMustBeSelected(),$48eaa3ca5daefed6$var$displayCheddarNeededToStakeNFTs(t)}}function $48eaa3ca5daefed6$var$confirmStakeUnstakeNFTButtonHandler(e){return async function(t){if(t.preventDefault(),$248679f431bbdfb1$export$9ca9051b92b5a6d2(".nft-flex .selected").length>0)try{const t=await e.stakingContractData.getContractParams();let r=document.querySelector(".cheddar-balance"),a=parseInt(r.innerHTML),n=document.querySelector(".cheddar-needed-to-stake-all-nfts");ae.nftsToStake.length>0));let s=(new Date).getTime()/1e3;if(!(s{const t=e.contract.contractId;r.set(t,{nftsToStake:[],nftsToUnstake:[]})})),$48eaa3ca5daefed6$var$NFTPoolSection.querySelectorAll(".nft-card.selected").forEach((e=>{let t=e.querySelector(".nft-name").innerHTML,a=e.querySelector(".stake-nft-button"),n=e.getAttribute("contract_id"),o=r.get(n);o&&((null==a?void 0:a.classList.contains("hidden"))?o.nftsToUnstake.push(t):o.nftsToStake.push(t))})),r}function $48eaa3ca5daefed6$var$displayNFTPoolSectionForStakeUnstakeNFT(e,t,r,a){const n=$48eaa3ca5daefed6$var$NFTPoolSection.querySelector(".stake-nfts-title"),o=$48eaa3ca5daefed6$var$NFTPoolSection.querySelector(".cheddar-balance-container");n.classList.remove("hidden"),o.classList.remove("hidden"),t.addEventListener("click",$48eaa3ca5daefed6$var$stakeAndUstakeNFTButtonHandler(e,a)),r.addEventListener("click",$48eaa3ca5daefed6$var$stakeAndUstakeNFTButtonHandler(e,a))}function $48eaa3ca5daefed6$var$displayNFTPoolSectionForNFTBoost(e,t,r,a,n,o,i){const s=$48eaa3ca5daefed6$var$NFTPoolSection.querySelector(".nft-farm-info");n>1&&s.classList.remove("hidden"),null==o||o.addEventListener("click",$48eaa3ca5daefed6$var$stakeNFT(e,a)),r&&i.addEventListener("click",$48eaa3ca5daefed6$var$unstakeNFT(e,a)),t?o.setAttribute("disabled","disabled"):o.removeAttribute("disabled")}async function $48eaa3ca5daefed6$var$addNFT(e,t,r,a,n,o,i,s=!1){const c=$248679f431bbdfb1$export$836aee6bce45247(".generic-nft-card").cloneNode(!0);c.setAttribute("contract_id",r.contract_id);let l=0;const d=-1!=r.token_id.indexOf("@")?r.token_id.split("@")[1]:r.token_id;for(;l{e.querySelector(".stake-nft-button").setAttribute("disabled","disabled")})),t.querySelector(".stake-nft-button").classList.add("hidden");let n=t.querySelector(".unstake-nft-button");n.removeAttribute("disabled"),n.addEventListener("click",$48eaa3ca5daefed6$var$unstakeNFT(e,t))}catch(e){$248679f431bbdfb1$export$dfd8f75b38935068(e)}}}function $48eaa3ca5daefed6$var$unstakeNFT(e,t){return async function(r){try{r.preventDefault(),$248679f431bbdfb1$export$11aadaec4fc63f87("Unstaking NFT..."),e instanceof $bee33ca938e55edd$export$856d9c4c9c7b8da0?await e.stakingContractData.contract.withdraw_nft(e.wallet.getAccountId()):e instanceof $9abd5ffcf1077e8a$export$c5b7d705df392988&&await e.withdrawBoost(),$248679f431bbdfb1$export$d841eba85c078f0b("NFT unstaked successfully"),t.querySelector(".unstake-nft-button").classList.add("hidden"),$248679f431bbdfb1$export$9ca9051b92b5a6d2(".stake-nft-button").forEach((e=>{e.removeAttribute("disabled"),e.classList.remove("hidden")}))}catch(e){$248679f431bbdfb1$export$dfd8f75b38935068(e)}}}function $48eaa3ca5daefed6$var$hideNFTFlexComponents(){const e=$48eaa3ca5daefed6$var$NFTPoolSection.querySelectorAll(".hiddenByDefault");for(let t=0;t{const{err:t,data:r,method:a,finalExecutionOutcome:s}=e;if(t)n=t;else if(a&&(o=a),s){let e=JSON.parse(atob(s.transaction.actions[0].FunctionCall.args));if(null==e.token){const t=s.transaction.receiver_id;for(let r=0;r<$48eaa3ca5daefed6$export$fa494f8daebcc431.farms.length;r++){const a=$48eaa3ca5daefed6$export$fa494f8daebcc431.farms[r];if(a.contractName==t){e.token=a.tokenContractName;break}}}i.push(e)}})),n?$248679f431bbdfb1$export$3879b24e8245693d(n,"Transaction - "+o):"ft_transfer_call"==o?await $48eaa3ca5daefed6$var$stakeResult(i):"unstake"==o?await $48eaa3ca5daefed6$var$unstakeResult(i):"nft_transfer_call"==o?$248679f431bbdfb1$export$d841eba85c078f0b("NFT staked successfully","Stake NFT"):"storage_deposit"==o?(r=!0,$248679f431bbdfb1$export$d841eba85c078f0b("Successfully activated","Activate")):"withdraw_crop"==o?(window.sessionStorage.setItem("cheddarFarmHarvestedSuccesfully","yes"),$248679f431bbdfb1$export$d841eba85c078f0b("Tokens harvested successfully")):(console.log("Method",o),console.log("Args",i.join("\n")))}else await $48eaa3ca5daefed6$var$signedOutFlow();const o=await $b30dd8d804760f6e$export$f08cc331730b6f90($48eaa3ca5daefed6$export$4b6dd4ac026934d2);await $48eaa3ca5daefed6$var$addPoolList(o),$48eaa3ca5daefed6$var$setDefaultFilter(r)}catch(e){$248679f431bbdfb1$export$dfd8f75b38935068(e)}finally{$248679f431bbdfb1$export$836aee6bce45247(".loader").style.display="none"}};const $48eaa3ca5daefed6$var$NFTPoolSection=$248679f431bbdfb1$export$836aee6bce45247("#nft-pools-section");$48eaa3ca5daefed6$var$NFTPoolSection.addEventListener("click",$48eaa3ca5daefed6$var$quitNFTFlex());const $48eaa3ca5daefed6$var$burgerTogglers=$248679f431bbdfb1$export$9ca9051b92b5a6d2(".toggleBurguer");$48eaa3ca5daefed6$var$burgerTogglers.forEach((e=>{e.addEventListener("click",(()=>{$48eaa3ca5daefed6$var$toggleBurgerNav()}))}));const $48eaa3ca5daefed6$var$toggleBurgerNav=()=>{const e=$248679f431bbdfb1$export$836aee6bce45247(".burger-button");$248679f431bbdfb1$export$836aee6bce45247(".burguer-content").classList.toggle("show-right__nav"),e.classList.toggle("burger-button--toggle")}; +//# sourceMappingURL=index.9beecf59.js.map diff --git a/index.9beecf59.js.map b/index.9beecf59.js.map new file mode 100644 index 0000000..e8ee455 --- /dev/null +++ b/index.9beecf59.js.map @@ -0,0 +1 @@ +{"mappings":"25BACAA,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQE,cAAgBH,EAAAC,QAAQG,4BAA8BJ,EAAAC,QAAQI,iBAAmBL,EAAAC,QAAQK,cAAW,E,6BAE5GR,OAAOC,eAAeC,EAAAC,QAAS,WAAY,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOC,EAAAH,Q,iCAEzFR,OAAOC,eAAeC,EAAAC,QAAS,mBAAoB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOE,EAAAL,gB,iCAEjGP,OAAOC,eAAeC,EAAAC,QAAS,8BAA+B,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOG,EAAAP,2B,iCAE5GN,OAAOC,eAAeC,EAAAC,QAAS,gBAAiB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOI,EAAAT,a,qDCT9FL,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQK,cAAW,EAMnBN,EAAAC,QAAQK,SAFR,O,kDCLAR,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQI,sBAAmB,E,sDAM3B,MAAMQ,UAAyBJ,EAAAH,SAW3BQ,aAAaC,EAAWC,EAAWC,GAC/BC,KAAKC,KAAK,GAAGH,KAAaD,KAAeE,EAAQG,U,CAQrDN,aAAaC,EAAWC,GACpB,MAAMd,EAAQgB,KAAKC,KAAK,GAAGH,KAAaD,KACxC,OAAKb,EAGEmB,EAAAC,QAAmBC,WAAWrB,GAF1B,I,CASfY,gBAAgBC,EAAWC,UAChBE,KAAKC,KAAK,GAAGH,KAAaD,I,CAKrCD,cACII,KAAKC,KAAO,E,CAMhBL,oBACI,MAAMU,EAAS,IAAIC,IAKnB,OAJA3B,OAAOqB,KAAKD,KAAKC,MAAMO,SAASC,IAC5B,MAAMC,EAAQD,EAAIE,MAAM,KACxBL,EAAOM,IAAIF,EAAM,GAAG,IAEjBG,MAAMC,KAAKR,EAAOS,S,CAO7BnB,kBAAkBC,GACd,MAAMS,EAAS,IAAIO,MAOnB,OANAjC,OAAOqB,KAAKD,KAAKC,MAAMO,SAASC,IAC5B,MAAMC,EAAQD,EAAIE,MAAM,KACpBD,EAAMA,EAAMM,OAAS,KAAOnB,GAC5BS,EAAOW,KAAKP,EAAMQ,MAAM,EAAGR,EAAMM,OAAS,GAAGG,KAAK,KAAK,IAGxDb,C,CAEXJ,WACI,MAAO,kB,CApEXkB,cACIC,QACArB,KAAKC,KAAO,E,EAqEpBnB,EAAAC,QAAQI,iBAAmBQ,C,kDC/E3B,IAAI2B,EAAkBxC,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQ4C,eAAiB7C,EAAAC,QAAQqB,QAAUtB,EAAAC,QAAQ6C,UAAY9C,EAAAC,QAAQ8C,aAAU,EACjF,MAAMC,EAAcR,EAAgBS,cAAA,U,IAIhCC,EACOC,E,kDASX,SAASC,EAAgBC,GACrB,GACS,YADDA,EAAQC,cACI,OAAOJ,EAAQK,QACtB,MAAM,IAAIC,MAAM,oBAAoBH,I,EAZ1CF,EAERD,EAAUlD,EAAAC,QAAQ8C,UAAY/C,EAAAC,QAAQ8C,QAAU,KADvCI,EAAiB,QAAI,GAAK,UAiBtC,MAAMM,UAAkBC,EAAAC,WACpBC,YAAY1D,GACR,MAAqB,iBAAVA,EACAuD,EAAUlC,WAAWrB,GAEzBA,C,CAEX0D,kBAAkBC,GACd,MAAMjC,EAAQiC,EAAWhC,MAAM,KAC/B,GAAqB,IAAjBD,EAAMM,OACN,OAAO,IAAIuB,EAAU,CAAEJ,QAASH,EAAQK,QAASO,KAAMC,EAAAC,YAAwBpC,EAAM,MAEpF,GAAqB,IAAjBA,EAAMM,OACX,OAAO,IAAIuB,EAAU,CAAEJ,QAASD,EAAgBxB,EAAM,IAAKkC,KAAMC,EAAAC,YAAwBpC,EAAM,MAG/F,MAAM,IAAI4B,MAAM,4D,CAGxBpC,WACI,MAAO,GAnCf,SAAyBiC,GACrB,GAAQA,IACCH,EAAQK,QAAS,MAAO,UACpB,MAAM,IAAIC,MAAM,oBAAoBH,I,CAgCnCY,CAAgB/C,KAAKmC,YAAYU,EAAAG,YAAwBhD,KAAK4C,O,EAGhF9D,EAAAC,QAAQ6C,UAAYW,EACpB,MAAMU,EAKFP,kBAAkBQ,GACd,GACS,YADDA,EAAMC,cACM,OAAOC,EAAeC,aAC7B,MAAM,IAAIf,MAAM,iBAAiBY,I,CAGlDR,kBAAkBC,GACd,MAAMjC,EAAQiC,EAAWhC,MAAM,KAC/B,GAAqB,IAAjBD,EAAMM,OACN,OAAO,IAAIoC,EAAe1C,EAAM,IAE/B,GAAqB,IAAjBA,EAAMM,OACX,IACS,YADDN,EAAM,GAAGyC,cACG,OAAO,IAAIC,EAAe1C,EAAM,IACvC,MAAM,IAAI4B,MAAM,kBAAkB5B,EAAM,K,CAIrD,MAAM,IAAI4B,MAAM,4D,EAI5BxD,EAAAC,QAAQqB,QAAU6C,EAKlB,MAAMG,UAAuBH,EAsBzBP,oBACI,MAAMY,EAAaxB,EAAYJ,QAAQ6B,KAAKxD,UAC5C,OAAO,IAAIqD,EAAeP,EAAAG,YAAwBM,EAAWE,W,CAEjED,KAAKE,GAED,MAAO,C,UADW3B,EAAYJ,QAAQ6B,KAAKG,SAASD,EAASZ,EAAAC,YAAwB9C,KAAKwD,YACtEG,UAAW3D,KAAK2D,U,CAExCC,OAAOH,EAASI,GACZ,OAAO/B,EAAYJ,QAAQ6B,KAAKG,SAASE,OAAOH,EAASI,EAAW7D,KAAK2D,UAAUf,K,CAEvF1C,WACI,MAAO,WAAWF,KAAKwD,W,CAE3BM,eACI,OAAO9D,KAAK2D,S,CA/BhBvC,YAAYoC,GACRnC,QACA,MAAMtB,EAAU+B,EAAYJ,QAAQ6B,KAAKxD,QAAQgE,cAAclB,EAAAC,YAAwBU,IACvFxD,KAAK2D,UAAY,IAAIpB,EAAU,CAAEJ,QAASH,EAAQK,QAASO,KAAM7C,EAAQ4D,YACzE3D,KAAKwD,UAAYA,C,EA8BzB1E,EAAAC,QAAQ4C,eAAiByB,C,mDC7HxB,SAASY,GASV,IAAIC,EAAK,SAASC,GAChB,IAAIC,EAAGC,EAAI,IAAIC,aAAa,IAC5B,GAAIH,EAAM,IAAKC,EAAI,EAAGA,EAAID,EAAKlD,OAAQmD,IAAKC,EAAED,GAAKD,EAAKC,GACxD,OAAOC,C,EAILE,EAAc,WAAuB,MAAM,IAAIhC,MAAM,U,EAErDiC,EAAK,IAAIC,WAAW,IACpBC,EAAK,IAAID,WAAW,IAAKC,EAAG,GAAK,EAErC,IAAIC,EAAMT,IACNU,EAAMV,EAAG,CAAC,IACVW,EAAUX,EAAG,CAAC,MAAQ,IACtBY,EAAIZ,EAAG,CAAC,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,IAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAChIa,EAAKb,EAAG,CAAC,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,IAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,OACjIc,EAAId,EAAG,CAAC,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAChIe,EAAIf,EAAG,CAAC,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAChIgB,EAAIhB,EAAG,CAAC,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,IAAQ,MAAQ,MAAQ,MAAQ,KAAQ,QAEpI,SAASiB,EAAKC,EAAGhB,EAAGiB,EAAGC,GACrBF,EAAEhB,GAAOiB,GAAM,GAAM,IACrBD,EAAEhB,EAAE,GAAKiB,GAAM,GAAM,IACrBD,EAAEhB,EAAE,GAAKiB,GAAO,EAAK,IACrBD,EAAEhB,EAAE,GAAS,IAAJiB,EACTD,EAAEhB,EAAE,GAAKkB,GAAM,GAAO,IACtBF,EAAEhB,EAAE,GAAKkB,GAAM,GAAO,IACtBF,EAAEhB,EAAE,GAAKkB,GAAO,EAAM,IACtBF,EAAEhB,EAAE,GAAS,IAAJkB,C,CAGX,SAASC,EAAGH,EAAGI,EAAIC,EAAGC,EAAIC,GACxB,IAAIvB,EAAEwB,EAAI,EACV,IAAKxB,EAAI,EAAGA,EAAIuB,EAAGvB,IAAKwB,GAAKR,EAAEI,EAAGpB,GAAGqB,EAAEC,EAAGtB,GAC1C,OAAQ,EAAKwB,EAAK,IAAO,GAAM,C,CAGjC,SAASC,EAAiBT,EAAGI,EAAIC,EAAGC,GAClC,OAAOH,EAAGH,EAAEI,EAAGC,EAAEC,EAAG,G,CAGtB,SAASI,EAAiBV,EAAGI,EAAIC,EAAGC,GAClC,OAAOH,EAAGH,EAAEI,EAAGC,EAAEC,EAAG,G,CA6UtB,SAASK,EAAoBC,EAAIC,EAAIC,EAAEC,IA1UvC,SAAsBC,EAAGC,EAAGH,EAAGC,GAsB7B,IArBA,IAmBeG,EAnBXC,EAAc,IAARJ,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9EK,EAAc,IAARN,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9EO,EAAc,IAARP,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9EQ,EAAc,IAARR,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9ES,EAAc,IAART,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9EU,EAAc,IAART,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9EU,EAAc,IAARR,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9ES,EAAc,IAART,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9EU,EAAc,IAARV,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9EW,EAAc,IAARX,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9EY,EAAc,IAARd,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9Ee,EAAc,IAARhB,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9EiB,EAAc,IAARjB,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9EkB,EAAc,IAARlB,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9EmB,EAAc,IAARnB,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9EoB,EAAc,IAARnB,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAE9EoB,EAAKhB,EAAIiB,EAAKhB,EAAIiB,EAAKhB,EAAIiB,EAAKhB,EAAIiB,EAAKhB,EAAIiB,EAAKhB,EAAIiB,EAAKhB,EAAIiB,EAAKhB,EACpEiB,EAAKhB,EAAIiB,EAAKhB,EAAIiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EAAKiB,EAAMhB,EACpEiB,EAAMhB,EAEDlD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAQ3BmD,IADAjB,GADA6B,IADA7B,GADAyB,IADAzB,GADAqB,IADArB,EAAIiB,EAAKY,EAAM,IACN,EAAI7B,IAAK,IACTiB,EAAK,IACL,EAAIjB,IAAK,IACTqB,EAAK,IACJ,GAAKrB,IAAK,IACVyB,EAAK,IACN,GAAKzB,IAAK,GASnBsB,IADAtB,GADAkB,IADAlB,GADA8B,IADA9B,GADA0B,IADA1B,EAAIsB,EAAKJ,EAAK,IACL,EAAIlB,IAAK,IACTsB,EAAK,IACJ,EAAItB,IAAK,IACT0B,EAAK,IACN,GAAK1B,IAAK,IACV8B,EAAM,IACN,GAAK9B,IAAK,GASnB2B,IADA3B,GADAuB,IADAvB,GADAmB,IADAnB,GADA+B,IADA/B,EAAI2B,EAAMJ,EAAK,IACL,EAAIvB,IAAK,IACT2B,EAAM,IACP,EAAI3B,IAAK,IACT+B,EAAM,IACN,GAAK/B,IAAK,IACVmB,EAAK,IACJ,GAAKnB,IAAK,GASpBgC,IADAhC,GADA4B,IADA5B,GADAwB,IADAxB,GADAoB,IADApB,EAAIgC,EAAMJ,EAAM,IACP,EAAI5B,IAAK,IACTgC,EAAM,IACN,EAAIhC,IAAK,IACToB,EAAK,IACJ,GAAKpB,IAAK,IACVwB,EAAK,IACL,GAAKxB,IAAK,GASpBiB,IADAjB,GADAoB,IADApB,GADAmB,IADAnB,GADAkB,IADAlB,EAAIiB,EAAKG,EAAK,IACL,EAAIpB,IAAK,IACTiB,EAAK,IACL,EAAIjB,IAAK,IACTkB,EAAK,IACL,GAAKlB,IAAK,IACVmB,EAAK,IACL,GAAKnB,IAAK,GASnBsB,IADAtB,GADAqB,IADArB,GADAwB,IADAxB,GADAuB,IADAvB,EAAIsB,EAAKD,EAAK,IACL,EAAIrB,IAAK,IACTsB,EAAK,IACL,EAAItB,IAAK,IACTuB,EAAK,IACL,GAAKvB,IAAK,IACVwB,EAAK,IACL,GAAKxB,IAAK,GASnB2B,IADA3B,GADA0B,IADA1B,GADAyB,IADAzB,GADA4B,IADA5B,EAAI2B,EAAMD,EAAK,IACL,EAAI1B,IAAK,IACT2B,EAAM,IACP,EAAI3B,IAAK,IACT4B,EAAM,IACN,GAAK5B,IAAK,IACVyB,EAAK,IACJ,GAAKzB,IAAK,GASpBgC,IADAhC,GADA+B,IADA/B,GADA8B,IADA9B,GADA6B,IADA7B,EAAIgC,EAAMD,EAAM,IACN,EAAI/B,IAAK,IACTgC,EAAM,IACN,EAAIhC,IAAK,IACT6B,EAAM,IACN,GAAK7B,IAAK,IACV8B,EAAM,IACN,GAAK9B,IAAK,GAErBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EACjBiB,EAAMA,EAAMhB,EAAK,EAClBiB,EAAMA,EAAMhB,EAAM,EAClBiB,EAAMA,EAAMhB,EAAM,EAClBiB,EAAMA,EAAMhB,EAAM,EAClBiB,EAAMA,EAAMhB,EAAM,EAClBiB,EAAMA,EAAMhB,EAAM,EAClBiB,EAAMA,EAAMhB,EAAM,EAElBlB,EAAG,GAAKmB,IAAQ,EAAI,IACpBnB,EAAG,GAAKmB,IAAQ,EAAI,IACpBnB,EAAG,GAAKmB,IAAO,GAAK,IACpBnB,EAAG,GAAKmB,IAAO,GAAK,IAEpBnB,EAAG,GAAKoB,IAAQ,EAAI,IACpBpB,EAAG,GAAKoB,IAAQ,EAAI,IACpBpB,EAAG,GAAKoB,IAAO,GAAK,IACpBpB,EAAG,GAAKoB,IAAO,GAAK,IAEpBpB,EAAG,GAAKqB,IAAQ,EAAI,IACpBrB,EAAG,GAAKqB,IAAQ,EAAI,IACpBrB,EAAE,IAAMqB,IAAO,GAAK,IACpBrB,EAAE,IAAMqB,IAAO,GAAK,IAEpBrB,EAAE,IAAMsB,IAAQ,EAAI,IACpBtB,EAAE,IAAMsB,IAAQ,EAAI,IACpBtB,EAAE,IAAMsB,IAAO,GAAK,IACpBtB,EAAE,IAAMsB,IAAO,GAAK,IAEpBtB,EAAE,IAAMuB,IAAQ,EAAI,IACpBvB,EAAE,IAAMuB,IAAQ,EAAI,IACpBvB,EAAE,IAAMuB,IAAO,GAAK,IACpBvB,EAAE,IAAMuB,IAAO,GAAK,IAEpBvB,EAAE,IAAMwB,IAAQ,EAAI,IACpBxB,EAAE,IAAMwB,IAAQ,EAAI,IACpBxB,EAAE,IAAMwB,IAAO,GAAK,IACpBxB,EAAE,IAAMwB,IAAO,GAAK,IAEpBxB,EAAE,IAAMyB,IAAQ,EAAI,IACpBzB,EAAE,IAAMyB,IAAQ,EAAI,IACpBzB,EAAE,IAAMyB,IAAO,GAAK,IACpBzB,EAAE,IAAMyB,IAAO,GAAK,IAEpBzB,EAAE,IAAM0B,IAAQ,EAAI,IACpB1B,EAAE,IAAM0B,IAAQ,EAAI,IACpB1B,EAAE,IAAM0B,IAAO,GAAK,IACpB1B,EAAE,IAAM0B,IAAO,GAAK,IAEpB1B,EAAE,IAAM2B,IAAQ,EAAI,IACpB3B,EAAE,IAAM2B,IAAQ,EAAI,IACpB3B,EAAE,IAAM2B,IAAO,GAAK,IACpB3B,EAAE,IAAM2B,IAAO,GAAK,IAEpB3B,EAAE,IAAM4B,IAAQ,EAAI,IACpB5B,EAAE,IAAM4B,IAAQ,EAAI,IACpB5B,EAAE,IAAM4B,IAAO,GAAK,IACpB5B,EAAE,IAAM4B,IAAO,GAAK,IAEpB5B,EAAE,IAAM6B,IAAS,EAAI,IACrB7B,EAAE,IAAM6B,IAAS,EAAI,IACrB7B,EAAE,IAAM6B,IAAQ,GAAK,IACrB7B,EAAE,IAAM6B,IAAQ,GAAK,IAErB7B,EAAE,IAAM8B,IAAS,EAAI,IACrB9B,EAAE,IAAM8B,IAAS,EAAI,IACrB9B,EAAE,IAAM8B,IAAQ,GAAK,IACrB9B,EAAE,IAAM8B,IAAQ,GAAK,IAErB9B,EAAE,IAAM+B,IAAS,EAAI,IACrB/B,EAAE,IAAM+B,IAAS,EAAI,IACrB/B,EAAE,IAAM+B,IAAQ,GAAK,IACrB/B,EAAE,IAAM+B,IAAQ,GAAK,IAErB/B,EAAE,IAAMgC,IAAS,EAAI,IACrBhC,EAAE,IAAMgC,IAAS,EAAI,IACrBhC,EAAE,IAAMgC,IAAQ,GAAK,IACrBhC,EAAE,IAAMgC,IAAQ,GAAK,IAErBhC,EAAE,IAAMiC,IAAS,EAAI,IACrBjC,EAAE,IAAMiC,IAAS,EAAI,IACrBjC,EAAE,IAAMiC,IAAQ,GAAK,IACrBjC,EAAE,IAAMiC,IAAQ,GAAK,IAErBjC,EAAE,IAAMkC,IAAS,EAAI,IACrBlC,EAAE,IAAMkC,IAAS,EAAI,IACrBlC,EAAE,IAAMkC,IAAQ,GAAK,IACrBlC,EAAE,IAAMkC,IAAQ,GAAK,G,CA6IrBC,CAAavC,EAAIC,EAAIC,EAAEC,E,CAGzB,SAASqC,EAAqBxC,EAAIC,EAAIC,EAAEC,IA7IxC,SAAuBC,EAAEC,EAAEH,EAAEC,GAsB3B,IArBA,IAmBeG,EAFXiB,EAjBc,IAARpB,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAiBrEqB,EAhBK,IAARtB,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAgB5DuB,EAfJ,IAARvB,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAenDwB,EAdb,IAARxB,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAc1CyB,EAbtB,IAARzB,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAajC0B,EAZ/B,IAARzB,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAYxB0B,EAXxC,IAARxB,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAWfyB,EAVjD,IAARzB,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAW9E0B,EAVc,IAAR1B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAUrE2B,EATK,IAAR3B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAS5D4B,EARJ,IAAR9B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAQjD+B,EAPf,IAARhC,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAOtCiC,EAN1B,IAARjC,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAM3BkC,EALrC,IAARlC,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAKhBmC,EAJhD,IAARnC,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAK9EoC,EAJc,IAARnC,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAMzE/B,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAQ3BmD,IADAjB,GADA6B,IADA7B,GADAyB,IADAzB,GADAqB,IADArB,EAAIiB,EAAKY,EAAM,IACN,EAAI7B,IAAK,IACTiB,EAAK,IACL,EAAIjB,IAAK,IACTqB,EAAK,IACJ,GAAKrB,IAAK,IACVyB,EAAK,IACN,GAAKzB,IAAK,GASnBsB,IADAtB,GADAkB,IADAlB,GADA8B,IADA9B,GADA0B,IADA1B,EAAIsB,EAAKJ,EAAK,IACL,EAAIlB,IAAK,IACTsB,EAAK,IACJ,EAAItB,IAAK,IACT0B,EAAK,IACN,GAAK1B,IAAK,IACV8B,EAAM,IACN,GAAK9B,IAAK,GASnB2B,IADA3B,GADAuB,IADAvB,GADAmB,IADAnB,GADA+B,IADA/B,EAAI2B,EAAMJ,EAAK,IACL,EAAIvB,IAAK,IACT2B,EAAM,IACP,EAAI3B,IAAK,IACT+B,EAAM,IACN,GAAK/B,IAAK,IACVmB,EAAK,IACJ,GAAKnB,IAAK,GASpBgC,IADAhC,GADA4B,IADA5B,GADAwB,IADAxB,GADAoB,IADApB,EAAIgC,EAAMJ,EAAM,IACP,EAAI5B,IAAK,IACTgC,EAAM,IACN,EAAIhC,IAAK,IACToB,EAAK,IACJ,GAAKpB,IAAK,IACVwB,EAAK,IACL,GAAKxB,IAAK,GASpBiB,IADAjB,GADAoB,IADApB,GADAmB,IADAnB,GADAkB,IADAlB,EAAIiB,EAAKG,EAAK,IACL,EAAIpB,IAAK,IACTiB,EAAK,IACL,EAAIjB,IAAK,IACTkB,EAAK,IACL,GAAKlB,IAAK,IACVmB,EAAK,IACL,GAAKnB,IAAK,GASnBsB,IADAtB,GADAqB,IADArB,GADAwB,IADAxB,GADAuB,IADAvB,EAAIsB,EAAKD,EAAK,IACL,EAAIrB,IAAK,IACTsB,EAAK,IACL,EAAItB,IAAK,IACTuB,EAAK,IACL,GAAKvB,IAAK,IACVwB,EAAK,IACL,GAAKxB,IAAK,GASnB2B,IADA3B,GADA0B,IADA1B,GADAyB,IADAzB,GADA4B,IADA5B,EAAI2B,EAAMD,EAAK,IACL,EAAI1B,IAAK,IACT2B,EAAM,IACP,EAAI3B,IAAK,IACT4B,EAAM,IACN,GAAK5B,IAAK,IACVyB,EAAK,IACJ,GAAKzB,IAAK,GASpBgC,IADAhC,GADA+B,IADA/B,GADA8B,IADA9B,GADA6B,IADA7B,EAAIgC,EAAMD,EAAM,IACN,EAAI/B,IAAK,IACTgC,EAAM,IACN,EAAIhC,IAAK,IACT6B,EAAM,IACN,GAAK7B,IAAK,IACV8B,EAAM,IACN,GAAK9B,IAAK,GAGtBF,EAAG,GAAKmB,IAAQ,EAAI,IACpBnB,EAAG,GAAKmB,IAAQ,EAAI,IACpBnB,EAAG,GAAKmB,IAAO,GAAK,IACpBnB,EAAG,GAAKmB,IAAO,GAAK,IAEpBnB,EAAG,GAAKwB,IAAQ,EAAI,IACpBxB,EAAG,GAAKwB,IAAQ,EAAI,IACpBxB,EAAG,GAAKwB,IAAO,GAAK,IACpBxB,EAAG,GAAKwB,IAAO,GAAK,IAEpBxB,EAAG,GAAK6B,IAAS,EAAI,IACrB7B,EAAG,GAAK6B,IAAS,EAAI,IACrB7B,EAAE,IAAM6B,IAAQ,GAAK,IACrB7B,EAAE,IAAM6B,IAAQ,GAAK,IAErB7B,EAAE,IAAMkC,IAAS,EAAI,IACrBlC,EAAE,IAAMkC,IAAS,EAAI,IACrBlC,EAAE,IAAMkC,IAAQ,GAAK,IACrBlC,EAAE,IAAMkC,IAAQ,GAAK,IAErBlC,EAAE,IAAMyB,IAAQ,EAAI,IACpBzB,EAAE,IAAMyB,IAAQ,EAAI,IACpBzB,EAAE,IAAMyB,IAAO,GAAK,IACpBzB,EAAE,IAAMyB,IAAO,GAAK,IAEpBzB,EAAE,IAAM0B,IAAQ,EAAI,IACpB1B,EAAE,IAAM0B,IAAQ,EAAI,IACpB1B,EAAE,IAAM0B,IAAO,GAAK,IACpB1B,EAAE,IAAM0B,IAAO,GAAK,IAEpB1B,EAAE,IAAM2B,IAAQ,EAAI,IACpB3B,EAAE,IAAM2B,IAAQ,EAAI,IACpB3B,EAAE,IAAM2B,IAAO,GAAK,IACpB3B,EAAE,IAAM2B,IAAO,GAAK,IAEpB3B,EAAE,IAAM4B,IAAQ,EAAI,IACpB5B,EAAE,IAAM4B,IAAQ,EAAI,IACpB5B,EAAE,IAAM4B,IAAO,GAAK,IACpB5B,EAAE,IAAM4B,IAAO,GAAK,G,CAQpBS,CAAczC,EAAIC,EAAIC,EAAEC,E,CAG1B,IAAIuC,EAAQ,IAAIjE,WAAW,CAAC,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAGhG,SAASkE,EAA0BxC,EAAEyC,EAAKC,EAAEC,EAAKC,EAAEpD,EAAEO,GACnD,IACII,EAAGlC,EADH4E,EAAI,IAAIvE,WAAW,IAAKW,EAAI,IAAIX,WAAW,IAE/C,IAAKL,EAAI,EAAGA,EAAI,GAAIA,IAAK4E,EAAE5E,GAAK,EAChC,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IAAK4E,EAAE5E,GAAKuB,EAAEvB,GACjC,KAAO2E,GAAK,IAAI,CAEd,IADAhD,EAAoBX,EAAE4D,EAAE9C,EAAEwC,GACrBtE,EAAI,EAAGA,EAAI,GAAIA,IAAK+B,EAAEyC,EAAKxE,GAAKyE,EAAEC,EAAK1E,GAAKgB,EAAEhB,GAEnD,IADAkC,EAAI,EACClC,EAAI,EAAGA,EAAI,GAAIA,IAClBkC,EAAIA,GAAY,IAAP0C,EAAE5E,IAAa,EACxB4E,EAAE5E,GAAS,IAAJkC,EACPA,KAAO,EAETyC,GAAK,GACLH,GAAQ,GACRE,GAAQ,E,CAEV,GAAIC,EAAI,EAEN,IADAhD,EAAoBX,EAAE4D,EAAE9C,EAAEwC,GACrBtE,EAAI,EAAGA,EAAI2E,EAAG3E,IAAK+B,EAAEyC,EAAKxE,GAAKyE,EAAEC,EAAK1E,GAAKgB,EAAEhB,GAEpD,OAAO,C,CAGT,SAAS6E,EAAsB9C,EAAEyC,EAAKG,EAAEpD,EAAEO,GACxC,IACII,EAAGlC,EADH4E,EAAI,IAAIvE,WAAW,IAAKW,EAAI,IAAIX,WAAW,IAE/C,IAAKL,EAAI,EAAGA,EAAI,GAAIA,IAAK4E,EAAE5E,GAAK,EAChC,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IAAK4E,EAAE5E,GAAKuB,EAAEvB,GACjC,KAAO2E,GAAK,IAAI,CAEd,IADAhD,EAAoBX,EAAE4D,EAAE9C,EAAEwC,GACrBtE,EAAI,EAAGA,EAAI,GAAIA,IAAK+B,EAAEyC,EAAKxE,GAAKgB,EAAEhB,GAEvC,IADAkC,EAAI,EACClC,EAAI,EAAGA,EAAI,GAAIA,IAClBkC,EAAIA,GAAY,IAAP0C,EAAE5E,IAAa,EACxB4E,EAAE5E,GAAS,IAAJkC,EACPA,KAAO,EAETyC,GAAK,GACLH,GAAQ,E,CAEV,GAAIG,EAAI,EAEN,IADAhD,EAAoBX,EAAE4D,EAAE9C,EAAEwC,GACrBtE,EAAI,EAAGA,EAAI2E,EAAG3E,IAAK+B,EAAEyC,EAAKxE,GAAKgB,EAAEhB,GAExC,OAAO,C,CAGT,SAAS8E,EAAc/C,EAAEyC,EAAKhD,EAAED,EAAEO,GAChC,IAAIiD,EAAI,IAAI1E,WAAW,IACvB+D,EAAqBW,EAAExD,EAAEO,EAAEwC,GAE3B,IADA,IAAIU,EAAK,IAAI3E,WAAW,GACfL,EAAI,EAAGA,EAAI,EAAGA,IAAKgF,EAAGhF,GAAKuB,EAAEvB,EAAE,IACxC,OAAO6E,EAAsB9C,EAAEyC,EAAKhD,EAAEwD,EAAGD,E,CAG3C,SAASE,EAAkBlD,EAAEyC,EAAKC,EAAEC,EAAKlD,EAAED,EAAEO,GAC3C,IAAIiD,EAAI,IAAI1E,WAAW,IACvB+D,EAAqBW,EAAExD,EAAEO,EAAEwC,GAE3B,IADA,IAAIU,EAAK,IAAI3E,WAAW,GACfL,EAAI,EAAGA,EAAI,EAAGA,IAAKgF,EAAGhF,GAAKuB,EAAEvB,EAAE,IACxC,OAAOuE,EAA0BxC,EAAEyC,EAAKC,EAAEC,EAAKlD,EAAEwD,EAAGD,E,CAQtD,IAAIG,EAAW,SAAS5I,GAQtB,IAAI6I,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAPhC7J,KAAK8J,OAAS,IAAItF,WAAW,IAC7BxE,KAAKoE,EAAI,IAAI2F,YAAY,IACzB/J,KAAKoF,EAAI,IAAI2E,YAAY,IACzB/J,KAAKgK,IAAM,IAAID,YAAY,GAC3B/J,KAAKiK,SAAW,EAChBjK,KAAKkK,IAAM,EAIXZ,EAAe,IAAV7I,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGT,KAAKoE,EAAE,GAAkC,KAA7BkF,EACzDC,EAAe,IAAV9I,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGT,KAAKoE,EAAE,GAAkC,MAA5BkF,IAAQ,GAAOC,GAAO,GAChFC,EAAe,IAAV/I,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGT,KAAKoE,EAAE,GAAkC,MAA5BmF,IAAQ,GAAOC,GAAO,GAChFC,EAAe,IAAVhJ,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGT,KAAKoE,EAAE,GAAkC,MAA5BoF,IAAS,EAAMC,GAAO,GAChFC,EAAe,IAAVjJ,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGT,KAAKoE,EAAE,GAAkC,KAA5BqF,IAAS,EAAMC,GAAM,IAC/E1J,KAAKoE,EAAE,GAAKsF,IAAU,EAAM,KAC5BC,EAAe,IAAVlJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EAAGT,KAAKoE,EAAE,GAAkC,MAA5BsF,IAAQ,GAAOC,GAAO,GAChFC,EAAe,IAAVnJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EAAGT,KAAKoE,EAAE,GAAkC,MAA5BuF,IAAQ,GAAOC,GAAO,GAChFC,EAAe,IAAVpJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EAAGT,KAAKoE,EAAE,GAAkC,MAA5BwF,IAAS,EAAMC,GAAO,GAChF7J,KAAKoE,EAAE,GAAKyF,IAAU,EAAM,IAE5B7J,KAAKgK,IAAI,GAAe,IAAVvJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDT,KAAKgK,IAAI,GAAe,IAAVvJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDT,KAAKgK,IAAI,GAAe,IAAVvJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDT,KAAKgK,IAAI,GAAe,IAAVvJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDT,KAAKgK,IAAI,GAAe,IAAVvJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDT,KAAKgK,IAAI,GAAe,IAAVvJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDT,KAAKgK,IAAI,GAAe,IAAVvJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDT,KAAKgK,IAAI,GAAe,IAAVvJ,EAAI,KAAwB,IAAVA,EAAI,MAAe,C,EAoUrD,SAAS0J,EAAmBpE,EAAKqE,EAAQxB,EAAGC,EAAMnD,EAAGO,GACnD,IAAIiD,EAAI,IAAIG,EAASpD,GAGrB,OAFAiD,EAAEmB,OAAOzB,EAAGC,EAAMnD,GAClBwD,EAAEoB,OAAOvE,EAAKqE,GACP,C,CAGT,SAASG,EAA0BnF,EAAGoF,EAAM5B,EAAGC,EAAMnD,EAAGO,GACtD,IAAId,EAAI,IAAIX,WAAW,IAEvB,OADA2F,EAAmBhF,EAAE,EAAEyD,EAAEC,EAAKnD,EAAEO,GACzBL,EAAiBR,EAAEoF,EAAKrF,EAAE,E,CAGnC,SAASsF,EAAiBvE,EAAE0C,EAAEjD,EAAED,EAAEO,GAChC,IAAI9B,EACJ,GAAIwB,EAAI,GAAI,OAAO,EAGnB,IAFAyD,EAAkBlD,EAAE,EAAE0C,EAAE,EAAEjD,EAAED,EAAEO,GAC9BkE,EAAmBjE,EAAG,GAAIA,EAAG,GAAIP,EAAI,GAAIO,GACpC/B,EAAI,EAAGA,EAAI,GAAIA,IAAK+B,EAAE/B,GAAK,EAChC,OAAO,C,CAGT,SAASuG,EAAsB9B,EAAE1C,EAAEP,EAAED,EAAEO,GACrC,IAAI9B,EACAgB,EAAI,IAAIX,WAAW,IACvB,GAAImB,EAAI,GAAI,OAAO,EAEnB,GADAsD,EAAc9D,EAAE,EAAE,GAAGO,EAAEO,GACiC,IAApDsE,EAA0BrE,EAAG,GAAGA,EAAG,GAAGP,EAAI,GAAGR,GAAU,OAAO,EAElE,IADAiE,EAAkBR,EAAE,EAAE1C,EAAE,EAAEP,EAAED,EAAEO,GACzB9B,EAAI,EAAGA,EAAI,GAAIA,IAAKyE,EAAEzE,GAAK,EAChC,OAAO,C,CAGT,SAASwG,EAASvG,EAAGwG,GACnB,IAAIzG,EACJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKC,EAAED,GAAU,EAALyG,EAAEzG,E,CAGpC,SAAS0G,EAAS1E,GAChB,IAAIhC,EAAG2G,EAAG5E,EAAI,EACd,IAAK/B,EAAI,EAAGA,EAAI,GAAIA,IAClB2G,EAAI3E,EAAEhC,GAAK+B,EAAI,MACfA,EAAI6E,KAAKC,MAAMF,EAAI,OACnB3E,EAAEhC,GAAK2G,EAAQ,MAAJ5E,EAEbC,EAAE,IAAMD,EAAE,EAAI,IAAMA,EAAE,E,CAGxB,SAAS+E,EAAS7E,EAAG8E,EAAGpC,GAEtB,IADA,IAAIqC,EAAGjF,IAAM4C,EAAE,GACN3E,EAAI,EAAGA,EAAI,GAAIA,IACtBgH,EAAIjF,GAAKE,EAAEjC,GAAK+G,EAAE/G,IAClBiC,EAAEjC,IAAMgH,EACRD,EAAE/G,IAAMgH,C,CAIZ,SAASC,EAAUjF,EAAGT,GACpB,IAAIvB,EAAGkH,EAAGvC,EACNF,EAAI3E,IAAMkH,EAAIlH,IAClB,IAAKE,EAAI,EAAGA,EAAI,GAAIA,IAAKgH,EAAEhH,GAAKuB,EAAEvB,GAIlC,IAHA0G,EAASM,GACTN,EAASM,GACTN,EAASM,GACJE,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAEtB,IADAzC,EAAE,GAAKuC,EAAE,GAAK,MACThH,EAAI,EAAGA,EAAI,GAAIA,IAClByE,EAAEzE,GAAKgH,EAAEhH,GAAK,OAAUyE,EAAGzE,EAAE,IAAI,GAAM,GACvCyE,EAAEzE,EAAE,IAAM,MAEZyE,EAAE,IAAMuC,EAAE,IAAM,OAAUvC,EAAG,KAAK,GAAM,GACxCE,EAAIF,EAAG,KAAK,GAAM,EAClBA,EAAE,KAAO,MACTqC,EAASE,EAAGvC,EAAG,EAAEE,E,CAEnB,IAAK3E,EAAI,EAAGA,EAAI,GAAIA,IAClBgC,EAAE,EAAEhC,GAAY,IAAPgH,EAAEhH,GACXgC,EAAE,EAAEhC,EAAE,GAAKgH,EAAEhH,IAAI,C,CAIrB,SAASmH,EAASV,EAAG9B,GACnB,IAAI5C,EAAI,IAAI1B,WAAW,IAAKmB,EAAI,IAAInB,WAAW,IAG/C,OAFA4G,EAAUlF,EAAG0E,GACbQ,EAAUzF,EAAGmD,GACNjD,EAAiBK,EAAG,EAAGP,EAAG,E,CAGnC,SAAS4F,EAASX,GAChB,IAAIjF,EAAI,IAAInB,WAAW,IAEvB,OADA4G,EAAUzF,EAAGiF,GACC,EAAPjF,EAAE,E,CAGX,SAAS6F,EAAYrF,EAAGT,GACtB,IAAIvB,EACJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKgC,EAAEhC,GAAKuB,EAAE,EAAEvB,IAAMuB,EAAE,EAAEvB,EAAE,IAAM,GACtDgC,EAAE,KAAO,K,CAGX,SAASsF,EAAEtF,EAAGyE,EAAG9B,GACf,IAAK,IAAI3E,EAAI,EAAGA,EAAI,GAAIA,IAAKgC,EAAEhC,GAAKyG,EAAEzG,GAAK2E,EAAE3E,E,CAG/C,SAASuH,EAAEvF,EAAGyE,EAAG9B,GACf,IAAK,IAAI3E,EAAI,EAAGA,EAAI,GAAIA,IAAKgC,EAAEhC,GAAKyG,EAAEzG,GAAK2E,EAAE3E,E,CAG/C,SAASwH,EAAExF,EAAGyE,EAAG9B,GACf,IAAIgC,EAAG5E,EACJoD,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EACpE+B,EAAK,EAAIC,EAAK,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EACrEC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EACrEC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAC5DC,EAAKrE,EAAE,GACPsE,EAAKtE,EAAE,GACPuE,EAAKvE,EAAE,GACPwE,EAAKxE,EAAE,GACPyE,EAAKzE,EAAE,GACP0E,EAAK1E,EAAE,GACP2E,EAAK3E,EAAE,GACP4E,EAAK5E,EAAE,GACP6E,EAAK7E,EAAE,GACP8E,EAAK9E,EAAE,GACP+E,EAAM/E,EAAE,IACRgF,EAAMhF,EAAE,IACRiF,EAAMjF,EAAE,IACRkF,EAAMlF,EAAE,IACRmF,EAAMnF,EAAE,IACRoF,EAAMpF,EAAE,IAGVQ,IADAwB,EAAIF,EAAE,IACIuC,EACV5D,GAAMuB,EAAIsC,EACV5D,GAAMsB,EAAIuC,EACV5D,GAAMqB,EAAIwC,EACV5D,GAAMoB,EAAIyC,EACV5D,GAAMmB,EAAI0C,EACV5D,GAAMkB,EAAI2C,EACV5D,GAAMiB,EAAI4C,EACV9B,GAAMd,EAAI6C,EACV9B,GAAMf,EAAI8C,EACV9B,GAAOhB,EAAI+C,EACX9B,GAAOjB,EAAIgD,EACX9B,GAAOlB,EAAIiD,EACX9B,GAAOnB,EAAIkD,EACX9B,GAAOpB,EAAImD,EACX9B,GAAOrB,EAAIoD,EAEX3E,IADAuB,EAAIF,EAAE,IACIuC,EACV3D,GAAMsB,EAAIsC,EACV3D,GAAMqB,EAAIuC,EACV3D,GAAMoB,EAAIwC,EACV3D,GAAMmB,EAAIyC,EACV3D,GAAMkB,EAAI0C,EACV3D,GAAMiB,EAAI2C,EACV7B,GAAMd,EAAI4C,EACV7B,GAAMf,EAAI6C,EACV7B,GAAOhB,EAAI8C,EACX7B,GAAOjB,EAAI+C,EACX7B,GAAOlB,EAAIgD,EACX7B,GAAOnB,EAAIiD,EACX7B,GAAOpB,EAAIkD,EACX7B,GAAOrB,EAAImD,EACX7B,GAAOtB,EAAIoD,EAEX1E,IADAsB,EAAIF,EAAE,IACIuC,EACV1D,GAAMqB,EAAIsC,EACV1D,GAAMoB,EAAIuC,EACV1D,GAAMmB,EAAIwC,EACV1D,GAAMkB,EAAIyC,EACV1D,GAAMiB,EAAI0C,EACV5B,GAAMd,EAAI2C,EACV5B,GAAMf,EAAI4C,EACV5B,GAAOhB,EAAI6C,EACX5B,GAAOjB,EAAI8C,EACX5B,GAAOlB,EAAI+C,EACX5B,GAAOnB,EAAIgD,EACX5B,GAAOpB,EAAIiD,EACX5B,GAAOrB,EAAIkD,EACX5B,GAAOtB,EAAImD,EACX5B,GAAOvB,EAAIoD,EAEXzE,IADAqB,EAAIF,EAAE,IACIuC,EACVzD,GAAMoB,EAAIsC,EACVzD,GAAMmB,EAAIuC,EACVzD,GAAMkB,EAAIwC,EACVzD,GAAMiB,EAAIyC,EACV3B,GAAMd,EAAI0C,EACV3B,GAAMf,EAAI2C,EACV3B,GAAOhB,EAAI4C,EACX3B,GAAOjB,EAAI6C,EACX3B,GAAOlB,EAAI8C,EACX3B,GAAOnB,EAAI+C,EACX3B,GAAOpB,EAAIgD,EACX3B,GAAOrB,EAAIiD,EACX3B,GAAOtB,EAAIkD,EACX3B,GAAOvB,EAAImD,EACX3B,GAAOxB,EAAIoD,EAEXxE,IADAoB,EAAIF,EAAE,IACIuC,EACVxD,GAAMmB,EAAIsC,EACVxD,GAAMkB,EAAIuC,EACVxD,GAAMiB,EAAIwC,EACV1B,GAAMd,EAAIyC,EACV1B,GAAMf,EAAI0C,EACV1B,GAAOhB,EAAI2C,EACX1B,GAAOjB,EAAI4C,EACX1B,GAAOlB,EAAI6C,EACX1B,GAAOnB,EAAI8C,EACX1B,GAAOpB,EAAI+C,EACX1B,GAAOrB,EAAIgD,EACX1B,GAAOtB,EAAIiD,EACX1B,GAAOvB,EAAIkD,EACX1B,GAAOxB,EAAImD,EACX1B,GAAOzB,EAAIoD,EAEXvE,IADAmB,EAAIF,EAAE,IACIuC,EACVvD,GAAMkB,EAAIsC,EACVvD,GAAMiB,EAAIuC,EACVzB,GAAMd,EAAIwC,EACVzB,GAAMf,EAAIyC,EACVzB,GAAOhB,EAAI0C,EACXzB,GAAOjB,EAAI2C,EACXzB,GAAOlB,EAAI4C,EACXzB,GAAOnB,EAAI6C,EACXzB,GAAOpB,EAAI8C,EACXzB,GAAOrB,EAAI+C,EACXzB,GAAOtB,EAAIgD,EACXzB,GAAOvB,EAAIiD,EACXzB,GAAOxB,EAAIkD,EACXzB,GAAOzB,EAAImD,EACXzB,GAAO1B,EAAIoD,EAEXtE,IADAkB,EAAIF,EAAE,IACIuC,EACVtD,GAAMiB,EAAIsC,EACVxB,GAAMd,EAAIuC,EACVxB,GAAMf,EAAIwC,EACVxB,GAAOhB,EAAIyC,EACXxB,GAAOjB,EAAI0C,EACXxB,GAAOlB,EAAI2C,EACXxB,GAAOnB,EAAI4C,EACXxB,GAAOpB,EAAI6C,EACXxB,GAAOrB,EAAI8C,EACXxB,GAAOtB,EAAI+C,EACXxB,GAAOvB,EAAIgD,EACXxB,GAAOxB,EAAIiD,EACXxB,GAAOzB,EAAIkD,EACXxB,GAAO1B,EAAImD,EACXxB,GAAO3B,EAAIoD,EAEXrE,IADAiB,EAAIF,EAAE,IACIuC,EACVvB,GAAMd,EAAIsC,EACVvB,GAAMf,EAAIuC,EACVvB,GAAOhB,EAAIwC,EACXvB,GAAOjB,EAAIyC,EACXvB,GAAOlB,EAAI0C,EACXvB,GAAOnB,EAAI2C,EACXvB,GAAOpB,EAAI4C,EACXvB,GAAOrB,EAAI6C,EACXvB,GAAOtB,EAAI8C,EACXvB,GAAOvB,EAAI+C,EACXvB,GAAOxB,EAAIgD,EACXvB,GAAOzB,EAAIiD,EACXvB,GAAO1B,EAAIkD,EACXvB,GAAO3B,EAAImD,EACXvB,GAAO5B,EAAIoD,EAEXtC,IADAd,EAAIF,EAAE,IACIuC,EACVtB,GAAMf,EAAIsC,EACVtB,GAAOhB,EAAIuC,EACXtB,GAAOjB,EAAIwC,EACXtB,GAAOlB,EAAIyC,EACXtB,GAAOnB,EAAI0C,EACXtB,GAAOpB,EAAI2C,EACXtB,GAAOrB,EAAI4C,EACXtB,GAAOtB,EAAI6C,EACXtB,GAAOvB,EAAI8C,EACXtB,GAAOxB,EAAI+C,EACXtB,GAAOzB,EAAIgD,EACXtB,GAAO1B,EAAIiD,EACXtB,GAAO3B,EAAIkD,EACXtB,GAAO5B,EAAImD,EACXtB,GAAO7B,EAAIoD,EAEXrC,IADAf,EAAIF,EAAE,IACIuC,EACVrB,GAAOhB,EAAIsC,EACXrB,GAAOjB,EAAIuC,EACXrB,GAAOlB,EAAIwC,EACXrB,GAAOnB,EAAIyC,EACXrB,GAAOpB,EAAI0C,EACXrB,GAAOrB,EAAI2C,EACXrB,GAAOtB,EAAI4C,EACXrB,GAAOvB,EAAI6C,EACXrB,GAAOxB,EAAI8C,EACXrB,GAAOzB,EAAI+C,EACXrB,GAAO1B,EAAIgD,EACXrB,GAAO3B,EAAIiD,EACXrB,GAAO5B,EAAIkD,EACXrB,GAAO7B,EAAImD,EACXrB,GAAO9B,EAAIoD,EAEXpC,IADAhB,EAAIF,EAAE,KACKuC,EACXpB,GAAOjB,EAAIsC,EACXpB,GAAOlB,EAAIuC,EACXpB,GAAOnB,EAAIwC,EACXpB,GAAOpB,EAAIyC,EACXpB,GAAOrB,EAAI0C,EACXpB,GAAOtB,EAAI2C,EACXpB,GAAOvB,EAAI4C,EACXpB,GAAOxB,EAAI6C,EACXpB,GAAOzB,EAAI8C,EACXpB,GAAO1B,EAAI+C,EACXpB,GAAO3B,EAAIgD,EACXpB,GAAO5B,EAAIiD,EACXpB,GAAO7B,EAAIkD,EACXpB,GAAO9B,EAAImD,EACXpB,GAAO/B,EAAIoD,EAEXnC,IADAjB,EAAIF,EAAE,KACKuC,EACXnB,GAAOlB,EAAIsC,EACXnB,GAAOnB,EAAIuC,EACXnB,GAAOpB,EAAIwC,EACXnB,GAAOrB,EAAIyC,EACXnB,GAAOtB,EAAI0C,EACXnB,GAAOvB,EAAI2C,EACXnB,GAAOxB,EAAI4C,EACXnB,GAAOzB,EAAI6C,EACXnB,GAAO1B,EAAI8C,EACXnB,GAAO3B,EAAI+C,EACXnB,GAAO5B,EAAIgD,EACXnB,GAAO7B,EAAIiD,EACXnB,GAAO9B,EAAIkD,EACXnB,GAAO/B,EAAImD,EACXnB,GAAOhC,EAAIoD,EAEXlC,IADAlB,EAAIF,EAAE,KACKuC,EACXlB,GAAOnB,EAAIsC,EACXlB,GAAOpB,EAAIuC,EACXlB,GAAOrB,EAAIwC,EACXlB,GAAOtB,EAAIyC,EACXlB,GAAOvB,EAAI0C,EACXlB,GAAOxB,EAAI2C,EACXlB,GAAOzB,EAAI4C,EACXlB,GAAO1B,EAAI6C,EACXlB,GAAO3B,EAAI8C,EACXlB,GAAO5B,EAAI+C,EACXlB,GAAO7B,EAAIgD,EACXlB,GAAO9B,EAAIiD,EACXlB,GAAO/B,EAAIkD,EACXlB,GAAOhC,EAAImD,EACXlB,GAAOjC,EAAIoD,EAEXjC,IADAnB,EAAIF,EAAE,KACKuC,EACXjB,GAAOpB,EAAIsC,EACXjB,GAAOrB,EAAIuC,EACXjB,GAAOtB,EAAIwC,EACXjB,GAAOvB,EAAIyC,EACXjB,GAAOxB,EAAI0C,EACXjB,GAAOzB,EAAI2C,EACXjB,GAAO1B,EAAI4C,EACXjB,GAAO3B,EAAI6C,EACXjB,GAAO5B,EAAI8C,EACXjB,GAAO7B,EAAI+C,EACXjB,GAAO9B,EAAIgD,EACXjB,GAAO/B,EAAIiD,EACXjB,GAAOhC,EAAIkD,EACXjB,GAAOjC,EAAImD,EACXjB,GAAOlC,EAAIoD,EAEXhC,IADApB,EAAIF,EAAE,KACKuC,EACXhB,GAAOrB,EAAIsC,EACXhB,GAAOtB,EAAIuC,EACXhB,GAAOvB,EAAIwC,EACXhB,GAAOxB,EAAIyC,EACXhB,GAAOzB,EAAI0C,EACXhB,GAAO1B,EAAI2C,EACXhB,GAAO3B,EAAI4C,EACXhB,GAAO5B,EAAI6C,EACXhB,GAAO7B,EAAI8C,EACXhB,GAAO9B,EAAI+C,EACXhB,GAAO/B,EAAIgD,EACXhB,GAAOhC,EAAIiD,EACXhB,GAAOjC,EAAIkD,EACXhB,GAAOlC,EAAImD,EACXhB,GAAOnC,EAAIoD,EAEX/B,IADArB,EAAIF,EAAE,KACKuC,EAkBX5D,GAAO,IAhBP8C,GAAOvB,EAAIuC,GAiBX7D,GAAO,IAhBP8C,GAAOxB,EAAIwC,GAiBX7D,GAAO,IAhBP8C,GAAOzB,EAAIyC,GAiBX7D,GAAO,IAhBP8C,GAAO1B,EAAI0C,GAiBX7D,GAAO,IAhBP8C,GAAO3B,EAAI2C,GAiBX7D,GAAO,IAhBP8C,GAAO5B,EAAI4C,GAiBX7D,GAAO,IAhBP8C,GAAO7B,EAAI6C,GAiBX/B,GAAO,IAhBPgB,GAAO9B,EAAI8C,GAiBX/B,GAAO,IAhBPgB,GAAO/B,EAAI+C,GAiBX/B,GAAO,IAhBPgB,GAAOhC,EAAIgD,GAiBX/B,GAAO,IAhBPgB,GAAOjC,EAAIiD,GAiBX/B,GAAO,IAhBPgB,GAAOlC,EAAIkD,GAiBX/B,GAAO,IAhBPgB,GAAOnC,EAAImD,GAiBX/B,GAAO,IAhBPgB,GAAOpC,EAAIoD,GAqBsC5E,GAAjDwB,GAnBAxB,GAAO,IAhBP8C,GAAOtB,EAAIsC,KAkCXlH,EAAI,GACU,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSvB,GAAjDuB,EAAKvB,EAAKrD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACStB,GAAjDsB,EAAKtB,EAAKtD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSrB,GAAjDqB,EAAKrB,EAAKvD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSpB,GAAjDoB,EAAKpB,EAAKxD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSnB,GAAjDmB,EAAKnB,EAAKzD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSlB,GAAjDkB,EAAKlB,EAAK1D,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSjB,GAAjDiB,EAAKjB,EAAK3D,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSc,GAAjDd,EAAKc,EAAK1F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSe,GAAjDf,EAAKe,EAAK3F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQgB,GAAhDhB,EAAIgB,EAAM5F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQiB,GAAhDjB,EAAIiB,EAAM7F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQkB,GAAhDlB,EAAIkB,EAAM9F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQmB,GAAhDnB,EAAImB,EAAM/F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQoB,GAAhDpB,EAAIoB,EAAMhG,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQqB,GAAhDrB,EAAIqB,EAAMjG,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QAKSxB,GAAjDwB,GAJAxB,GAAMpD,EAAE,EAAI,IAAMA,EAAE,KAGpBA,EAAI,GACU,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSvB,GAAjDuB,EAAKvB,EAAKrD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACStB,GAAjDsB,EAAKtB,EAAKtD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSrB,GAAjDqB,EAAKrB,EAAKvD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSpB,GAAjDoB,EAAKpB,EAAKxD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSnB,GAAjDmB,EAAKnB,EAAKzD,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSlB,GAAjDkB,EAAKlB,EAAK1D,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSjB,GAAjDiB,EAAKjB,EAAK3D,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSc,GAAjDd,EAAKc,EAAK1F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACSe,GAAjDf,EAAKe,EAAK3F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQgB,GAAhDhB,EAAIgB,EAAM5F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQiB,GAAhDjB,EAAIiB,EAAM7F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQkB,GAAhDlB,EAAIkB,EAAM9F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQmB,GAAhDnB,EAAImB,EAAM/F,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQoB,GAAhDpB,EAAIoB,EAAMhG,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACQqB,GAAhDrB,EAAIqB,EAAMjG,EAAI,OAAgD,OAAzCA,EAAI6E,KAAKC,MAAMF,EAAI,QACxCxB,GAAMpD,EAAE,EAAI,IAAMA,EAAE,GAEpBC,EAAG,GAAKmD,EACRnD,EAAG,GAAKoD,EACRpD,EAAG,GAAKqD,EACRrD,EAAG,GAAKsD,EACRtD,EAAG,GAAKuD,EACRvD,EAAG,GAAKwD,EACRxD,EAAG,GAAKyD,EACRzD,EAAG,GAAK0D,EACR1D,EAAG,GAAKyF,EACRzF,EAAG,GAAK0F,EACR1F,EAAE,IAAM2F,EACR3F,EAAE,IAAM4F,EACR5F,EAAE,IAAM6F,EACR7F,EAAE,IAAM8F,EACR9F,EAAE,IAAM+F,EACR/F,EAAE,IAAMgG,C,CAGV,SAASgC,EAAEhI,EAAGyE,GACZe,EAAExF,EAAGyE,EAAGA,E,CAGV,SAASwD,EAASjI,EAAGhC,GACnB,IACIyG,EADA1E,EAAIjC,IAER,IAAK2G,EAAI,EAAGA,EAAI,GAAIA,IAAK1E,EAAE0E,GAAKzG,EAAEyG,GAClC,IAAKA,EAAI,IAAKA,GAAK,EAAGA,IACpBuD,EAAEjI,EAAGA,GACI,IAAN0E,GAAiB,IAANA,GAASe,EAAEzF,EAAGA,EAAG/B,GAEjC,IAAKyG,EAAI,EAAGA,EAAI,GAAIA,IAAKzE,EAAEyE,GAAK1E,EAAE0E,E,CAGpC,SAASyD,EAAQlI,EAAGhC,GAClB,IACIyG,EADA1E,EAAIjC,IAER,IAAK2G,EAAI,EAAGA,EAAI,GAAIA,IAAK1E,EAAE0E,GAAKzG,EAAEyG,GAClC,IAAKA,EAAI,IAAKA,GAAK,EAAGA,IAClBuD,EAAEjI,EAAGA,GACI,IAAN0E,GAASe,EAAEzF,EAAGA,EAAG/B,GAExB,IAAKyG,EAAI,EAAGA,EAAI,GAAIA,IAAKzE,EAAEyE,GAAK1E,EAAE0E,E,CAGpC,SAAS0D,EAAkBpD,EAAGxF,EAAGU,GAC/B,IAC8BhC,EAAGD,EAD7B4E,EAAI,IAAIvE,WAAW,IACnBW,EAAI,IAAId,aAAa,IACrBuG,EAAI3G,IAAM6E,EAAI7E,IAAMiC,EAAIjC,IACxB0B,EAAI1B,IAAMsK,EAAItK,IAAMuK,EAAIvK,IAC5B,IAAKE,EAAI,EAAGA,EAAI,GAAIA,IAAK4E,EAAE5E,GAAKuB,EAAEvB,GAIlC,IAHA4E,EAAE,IAAW,IAAPrD,EAAG,IAAS,GAClBqD,EAAE,IAAI,IACNyC,EAAYrG,EAAEiB,GACTjC,EAAI,EAAGA,EAAI,GAAIA,IAClB2E,EAAE3E,GAAGgB,EAAEhB,GACPwB,EAAExB,GAAGyG,EAAEzG,GAAG+B,EAAE/B,GAAG,EAGjB,IADAyG,EAAE,GAAGjF,EAAE,GAAG,EACLxB,EAAE,IAAKA,GAAG,IAAKA,EAElB8G,EAASL,EAAE9B,EADX1E,EAAE2E,EAAG5E,IAAI,MAAQ,EAAFA,GAAM,GAErB8G,EAAS/E,EAAEP,EAAEvB,GACbqH,EAAE8C,EAAE3D,EAAE1E,GACNwF,EAAEd,EAAEA,EAAE1E,GACNuF,EAAEvF,EAAE4C,EAAEnD,GACN+F,EAAE5C,EAAEA,EAAEnD,GACNwI,EAAExI,EAAE4I,GACJJ,EAAEK,EAAE5D,GACJe,EAAEf,EAAE1E,EAAE0E,GACNe,EAAEzF,EAAE4C,EAAEyF,GACN9C,EAAE8C,EAAE3D,EAAE1E,GACNwF,EAAEd,EAAEA,EAAE1E,GACNiI,EAAErF,EAAE8B,GACJc,EAAExF,EAAEP,EAAE6I,GACN7C,EAAEf,EAAE1E,EAAEtB,GACN6G,EAAEb,EAAEA,EAAEjF,GACNgG,EAAEzF,EAAEA,EAAE0E,GACNe,EAAEf,EAAEjF,EAAE6I,GACN7C,EAAEhG,EAAEmD,EAAE3D,GACNgJ,EAAErF,EAAEyF,GACJtD,EAASL,EAAE9B,EAAE1E,GACb6G,EAAS/E,EAAEP,EAAEvB,GAEf,IAAKD,EAAI,EAAGA,EAAI,GAAIA,IAClBgB,EAAEhB,EAAE,IAAIyG,EAAEzG,GACVgB,EAAEhB,EAAE,IAAI+B,EAAE/B,GACVgB,EAAEhB,EAAE,IAAI2E,EAAE3E,GACVgB,EAAEhB,EAAE,IAAIwB,EAAExB,GAEZ,IAAIsK,EAAMtJ,EAAEuJ,SAAS,IACjBC,EAAMxJ,EAAEuJ,SAAS,IAIrB,OAHAN,EAASK,EAAIA,GACb9C,EAAEgD,EAAIA,EAAIF,GACVrD,EAAUF,EAAEyD,GACL,C,CAGT,SAASC,EAAuB1D,EAAGxF,GACjC,OAAO4I,EAAkBpD,EAAGxF,EAAGjB,E,CAGjC,SAASoK,EAAmBrJ,EAAGL,GAE7B,OADAb,EAAYa,EAAG,IACRyJ,EAAuBpJ,EAAGL,E,CAGnC,SAAS2J,EAAoB7I,EAAGT,EAAGL,GACjC,IAAI+D,EAAI,IAAI1E,WAAW,IAEvB,OADA8J,EAAkBpF,EAAG/D,EAAGK,GACjB+C,EAAqBtC,EAAG1B,EAAI2E,EAAGT,E,CA33BxCY,EAAS0F,UAAUC,OAAS,SAASpG,EAAGC,EAAMoG,GA2B5C,IA1BA,IACI3F,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI3D,EAChCgJ,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAFpCC,EAAQ5P,KAAKkK,IAAM,EAAK,KAIxB2F,EAAK7P,KAAKoF,EAAE,GACZ0K,EAAK9P,KAAKoF,EAAE,GACZ2K,EAAK/P,KAAKoF,EAAE,GACZ4K,EAAKhQ,KAAKoF,EAAE,GACZ6K,EAAKjQ,KAAKoF,EAAE,GACZ8K,EAAKlQ,KAAKoF,EAAE,GACZ+K,EAAKnQ,KAAKoF,EAAE,GACZgL,EAAKpQ,KAAKoF,EAAE,GACZiL,EAAKrQ,KAAKoF,EAAE,GACZkL,EAAKtQ,KAAKoF,EAAE,GAEZmL,EAAKvQ,KAAKoE,EAAE,GACZoM,EAAKxQ,KAAKoE,EAAE,GACZqM,EAAKzQ,KAAKoE,EAAE,GACZsM,EAAK1Q,KAAKoE,EAAE,GACZuM,EAAK3Q,KAAKoE,EAAE,GACZwM,EAAK5Q,KAAKoE,EAAE,GACZyM,EAAK7Q,KAAKoE,EAAE,GACZ0M,EAAK9Q,KAAKoE,EAAE,GACZ2M,EAAK/Q,KAAKoE,EAAE,GACZ4M,EAAKhR,KAAKoE,EAAE,GAET6K,GAAS,IAcdC,EAFAhJ,EAAI,EAGJgJ,IAdmDW,GAAmC,MAAtFvG,EAAkB,IAAbV,EAAEC,EAAM,IAA0B,IAAbD,EAAEC,EAAM,KAAc,IAcrC0H,EACXrB,IAdmDY,GAAmC,MAA5BxG,IAAQ,IAAlEC,EAAkB,IAAbX,EAAEC,EAAM,IAA0B,IAAbD,EAAEC,EAAM,KAAc,IAAgC,KAcpE,EAAImI,GAChB9B,IAdmDa,GAAmC,MAA5BxG,IAAQ,IAAlEC,EAAkB,IAAbZ,EAAEC,EAAM,IAA0B,IAAbD,EAAEC,EAAM,KAAc,IAAgC,KAcpE,EAAIkI,GAChB7B,IAdmDc,GAAmC,MAA5BxG,IAAS,GAAnEC,EAAkB,IAAbb,EAAEC,EAAM,IAA0B,IAAbD,EAAEC,EAAM,KAAc,IAAgC,KAcpE,EAAIiI,GAEhB5K,GADAgJ,IAdmDe,GAAmC,MAA5BxG,IAAS,GAAnEC,EAAkB,IAAbd,EAAEC,EAAM,IAA0B,IAAbD,EAAEC,EAAM,KAAc,IAA+B,MAcnE,EAAIgI,MACJ,GAAK3B,GAAM,KACvBA,IAfAgB,GAAMxG,IAAU,EAAM,OAeV,EAAIkH,GAChB1B,IAfmDiB,GAAmC,MAA5BzG,IAAQ,IAAlEC,EAAkB,IAAbf,EAAEC,EAAK,KAA2B,IAAbD,EAAEC,EAAK,MAAe,IAAgC,KAepE,EAAI8H,GAChBzB,IAfmDkB,GAAmC,MAA5BzG,IAAQ,IAAlEC,EAAkB,IAAbhB,EAAEC,EAAK,KAA2B,IAAbD,EAAEC,EAAK,MAAe,IAAgC,KAepE,EAAI6H,GAChBxB,IAfmDmB,GAAmC,MAA5BzG,IAAS,GAAnEC,EAAkB,IAAbjB,EAAEC,EAAK,KAA2B,IAAbD,EAAEC,EAAK,MAAe,IAAgC,KAepE,EAAI4H,GAIhBtB,EAFAjJ,IADAgJ,IAfAoB,GAAMzG,IAAS,EAAM+F,IAeT,EAAIY,MACH,GAGbrB,GAAMU,EAAKW,EACXrB,GAAMW,EAAKS,EACXpB,GAAMY,GAAM,EAAIiB,GAChB7B,GAAMa,GAAM,EAAIe,GAEhB7K,GADAiJ,GAAMc,GAAM,EAAIa,MACJ,GAAK3B,GAAM,KACvBA,GAAMe,GAAM,EAAIW,GAChB1B,GAAMgB,GAAM,EAAIS,GAChBzB,GAAMiB,GAAM,EAAIO,GAChBxB,GAAMkB,GAAM,EAAIK,GAEhBxK,IADAiJ,GAAMmB,GAAM,EAAIG,MACH,GAAKtB,GAAM,KAExBC,EAAKlJ,EACLkJ,GAAMS,EAAKY,EACXrB,GAAMU,EAAKU,EACXpB,GAAMW,EAAKQ,EACXnB,GAAMY,GAAM,EAAIgB,GAEhB9K,GADAkJ,GAAMa,GAAM,EAAIc,MACJ,GAAK3B,GAAM,KACvBA,GAAMc,GAAM,EAAIY,GAChB1B,GAAMe,GAAM,EAAIU,GAChBzB,GAAMgB,GAAM,EAAIQ,GAChBxB,GAAMiB,GAAM,EAAIM,GAIhBtB,EAFAnJ,IADAkJ,GAAMkB,GAAM,EAAII,MACH,GAGbrB,GAAMQ,EAAKa,EACXrB,GAAMS,EAAKW,EACXpB,GAAMU,EAAKS,EACXnB,GAAMW,EAAKO,EAEXrK,GADAmJ,GAAMY,GAAM,EAAIe,MACJ,GAAK3B,GAAM,KACvBA,GAAMa,GAAM,EAAIa,GAChB1B,GAAMc,GAAM,EAAIW,GAChBzB,GAAMe,GAAM,EAAIS,GAChBxB,GAAMgB,GAAM,EAAIO,GAIhBtB,EAFApJ,IADAmJ,GAAMiB,GAAM,EAAIK,MACH,GAGbrB,GAAMO,EAAKc,EACXrB,GAAMQ,EAAKY,EACXpB,GAAMS,EAAKU,EACXnB,GAAMU,EAAKQ,EAEXtK,GADAoJ,GAAMW,EAAKM,KACC,GAAKjB,GAAM,KACvBA,GAAMY,GAAM,EAAIc,GAChB1B,GAAMa,GAAM,EAAIY,GAChBzB,GAAMc,GAAM,EAAIU,GAChBxB,GAAMe,GAAM,EAAIQ,GAIhBtB,EAFArJ,IADAoJ,GAAMgB,GAAM,EAAIM,MACH,GAGbrB,GAAMM,EAAKe,EACXrB,GAAMO,EAAKa,EACXpB,GAAMQ,EAAKW,EACXnB,GAAMS,EAAKS,EAEXvK,GADAqJ,GAAMU,EAAKO,KACC,GAAKjB,GAAM,KACvBA,GAAMW,EAAKK,EACXhB,GAAMY,GAAM,EAAIa,GAChBzB,GAAMa,GAAM,EAAIW,GAChBxB,GAAMc,GAAM,EAAIS,GAIhBtB,EAFAtJ,IADAqJ,GAAMe,GAAM,EAAIO,MACH,GAGbrB,GAAMK,EAAKgB,EACXrB,GAAMM,EAAKc,EACXpB,GAAMO,EAAKY,EACXnB,GAAMQ,EAAKU,EAEXxK,GADAsJ,GAAMS,EAAKQ,KACC,GAAKjB,GAAM,KACvBA,GAAMU,EAAKM,EACXhB,GAAMW,EAAKI,EACXf,GAAMY,GAAM,EAAIY,GAChBxB,GAAMa,GAAM,EAAIU,GAIhBtB,EAFAvJ,IADAsJ,GAAMc,GAAM,EAAIQ,MACH,GAGbrB,GAAMI,EAAKiB,EACXrB,GAAMK,EAAKe,EACXpB,GAAMM,EAAKa,EACXnB,GAAMO,EAAKW,EAEXzK,GADAuJ,GAAMQ,EAAKS,KACC,GAAKjB,GAAM,KACvBA,GAAMS,EAAKO,EACXhB,GAAMU,EAAKK,EACXf,GAAMW,EAAKG,EACXd,GAAMY,GAAM,EAAIW,GAIhBtB,EAFAxJ,IADAuJ,GAAMa,GAAM,EAAIS,MACH,GAGbrB,GAAMG,EAAKkB,EACXrB,GAAMI,EAAKgB,EACXpB,GAAMK,EAAKc,EACXnB,GAAMM,EAAKY,EAEX1K,GADAwJ,GAAMO,EAAKU,KACC,GAAKjB,GAAM,KACvBA,GAAMQ,EAAKQ,EACXhB,GAAMS,EAAKM,EACXf,GAAMU,EAAKI,EACXd,GAAMW,EAAKE,EAIXZ,EAFAzJ,IADAwJ,GAAMY,GAAM,EAAIU,MACH,GAGbrB,GAAME,EAAKmB,EACXrB,GAAMG,EAAKiB,EACXpB,GAAMI,EAAKe,EACXnB,GAAMK,EAAKa,EAEX3K,GADAyJ,GAAMM,EAAKW,KACC,GAAKjB,GAAM,KACvBA,GAAMO,EAAKS,EACXhB,GAAMQ,EAAKO,EACXf,GAAMS,EAAKK,EACXd,GAAMU,EAAKG,EAUXX,EAJAX,EAAS,MADThJ,GADAA,IAFAA,IADAyJ,GAAMW,EAAKC,KACE,KAED,GAAKrK,EAAM,IAhILgJ,GAAM,MAiIT,GAMfY,EAHAX,GADAjJ,KAAW,GAKX6J,EA5GkBX,GAAM,KA6GxBY,EA/FkBX,GAAM,KAgGxBY,EAlFkBX,GAAM,KAmFxBY,EArEkBX,GAAM,KAsExBY,EAxDkBX,GAAM,KAyDxBY,EA3CkBX,GAAM,KA4CxBY,EA9BkBX,GAAM,KA+BxBY,EAjBkBX,GAAM,KAmBxB9G,GAAQ,GACRoG,GAAS,GAEXjP,KAAKoF,EAAE,GAAKyK,EACZ7P,KAAKoF,EAAE,GAAK0K,EACZ9P,KAAKoF,EAAE,GAAK2K,EACZ/P,KAAKoF,EAAE,GAAK4K,EACZhQ,KAAKoF,EAAE,GAAK6K,EACZjQ,KAAKoF,EAAE,GAAK8K,EACZlQ,KAAKoF,EAAE,GAAK+K,EACZnQ,KAAKoF,EAAE,GAAKgL,EACZpQ,KAAKoF,EAAE,GAAKiL,EACZrQ,KAAKoF,EAAE,GAAKkL,C,EAGdjH,EAAS0F,UAAUzE,OAAS,SAAS2G,EAAKC,GACxC,IACIhL,EAAGiL,EAAM3C,EAAGrK,EADZiN,EAAI,IAAIrH,YAAY,IAGxB,GAAI/J,KAAKiK,SAAU,CAGjB,IAFA9F,EAAInE,KAAKiK,SACTjK,KAAK8J,OAAO3F,KAAO,EACZA,EAAI,GAAIA,IAAKnE,KAAK8J,OAAO3F,GAAK,EACrCnE,KAAKkK,IAAM,EACXlK,KAAKgP,OAAOhP,KAAK8J,OAAQ,EAAG,G,CAK9B,IAFA5D,EAAIlG,KAAKoF,EAAE,KAAO,GAClBpF,KAAKoF,EAAE,IAAM,KACRjB,EAAI,EAAGA,EAAI,GAAIA,IAClBnE,KAAKoF,EAAEjB,IAAM+B,EACbA,EAAIlG,KAAKoF,EAAEjB,KAAO,GAClBnE,KAAKoF,EAAEjB,IAAM,KAaf,IAXAnE,KAAKoF,EAAE,IAAW,EAAJc,EACdA,EAAIlG,KAAKoF,EAAE,KAAO,GAClBpF,KAAKoF,EAAE,IAAM,KACbpF,KAAKoF,EAAE,IAAMc,EACbA,EAAIlG,KAAKoF,EAAE,KAAO,GAClBpF,KAAKoF,EAAE,IAAM,KACbpF,KAAKoF,EAAE,IAAMc,EAEbkL,EAAE,GAAKpR,KAAKoF,EAAE,GAAK,EACnBc,EAAIkL,EAAE,KAAO,GACbA,EAAE,IAAM,KACHjN,EAAI,EAAGA,EAAI,GAAIA,IAClBiN,EAAEjN,GAAKnE,KAAKoF,EAAEjB,GAAK+B,EACnBA,EAAIkL,EAAEjN,KAAO,GACbiN,EAAEjN,IAAM,KAKV,IAHAiN,EAAE,IAAO,KAETD,GAAY,EAAJjL,GAAS,EACZ/B,EAAI,EAAGA,EAAI,GAAIA,IAAKiN,EAAEjN,IAAMgN,EAEjC,IADAA,GAAQA,EACHhN,EAAI,EAAGA,EAAI,GAAIA,IAAKnE,KAAKoF,EAAEjB,GAAKnE,KAAMoF,EAAEjB,GAAKgN,EAAQC,EAAEjN,GAa5D,IAXAnE,KAAKoF,EAAE,GAAoE,OAA9DpF,KAAMoF,EAAE,GAAcpF,KAAKoF,EAAE,IAAM,IAChDpF,KAAKoF,EAAE,GAAoE,OAA9DpF,KAAMoF,EAAE,KAAQ,EAAMpF,KAAKoF,EAAE,IAAM,IAChDpF,KAAKoF,EAAE,GAAoE,OAA9DpF,KAAMoF,EAAE,KAAQ,EAAMpF,KAAKoF,EAAE,IAAO,GACjDpF,KAAKoF,EAAE,GAAoE,OAA9DpF,KAAMoF,EAAE,KAAQ,EAAMpF,KAAKoF,EAAE,IAAO,GACjDpF,KAAKoF,EAAE,GAAoE,OAA9DpF,KAAMoF,EAAE,KAAO,GAAOpF,KAAKoF,EAAE,IAAO,EAAMpF,KAAKoF,EAAE,IAAM,IACpEpF,KAAKoF,EAAE,GAAoE,OAA9DpF,KAAMoF,EAAE,KAAQ,EAAMpF,KAAKoF,EAAE,IAAM,IAChDpF,KAAKoF,EAAE,GAAoE,OAA9DpF,KAAMoF,EAAE,KAAQ,EAAMpF,KAAKoF,EAAE,IAAO,GACjDpF,KAAKoF,EAAE,GAAoE,OAA9DpF,KAAMoF,EAAE,KAAQ,EAAMpF,KAAKoF,EAAE,IAAO,GAEjDoJ,EAAIxO,KAAKoF,EAAE,GAAKpF,KAAKgK,IAAI,GACzBhK,KAAKoF,EAAE,GAAS,MAAJoJ,EACPrK,EAAI,EAAGA,EAAI,EAAGA,IACjBqK,GAAMxO,KAAMoF,EAAEjB,GAAKnE,KAAKgK,IAAI7F,GAAM,IAAMqK,IAAM,IAAO,EACrDxO,KAAKoF,EAAEjB,GAAS,MAAJqK,EAGdyC,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAQ,GAAKlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAO,IAAMlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAO,IAAMlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAO,IAAMlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAO,IAAMlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAO,IAAMlR,KAAMoF,EAAE,KAAO,EAAK,IACrC6L,EAAIC,EAAO,IAAMlR,KAAMoF,EAAE,KAAO,EAAK,G,EAGvCiE,EAAS0F,UAAU1E,OAAS,SAASzB,EAAGC,EAAMoG,GAC5C,IAAI9K,EAAGkN,EAEP,GAAIrR,KAAKiK,SAAU,CAIjB,KAHAoH,EAAQ,GAAKrR,KAAKiK,UACPgF,IACToC,EAAOpC,GACJ9K,EAAI,EAAGA,EAAIkN,EAAMlN,IACpBnE,KAAK8J,OAAO9J,KAAKiK,SAAW9F,GAAKyE,EAAEC,EAAK1E,GAI1C,GAHA8K,GAASoC,EACTxI,GAAQwI,EACRrR,KAAKiK,UAAYoH,EACbrR,KAAKiK,SAAW,GAClB,OACFjK,KAAKgP,OAAOhP,KAAK8J,OAAQ,EAAG,IAC5B9J,KAAKiK,SAAW,C,CAUlB,GAPIgF,GAAS,KACXoC,EAAOpC,EAASA,EAAQ,GACxBjP,KAAKgP,OAAOpG,EAAGC,EAAMwI,GACrBxI,GAAQwI,EACRpC,GAASoC,GAGPpC,EAAO,CACT,IAAK9K,EAAI,EAAGA,EAAI8K,EAAO9K,IACrBnE,KAAK8J,OAAO9J,KAAKiK,SAAW9F,GAAKyE,EAAEC,EAAK1E,GAC1CnE,KAAKiK,UAAYgF,C,GAikBrB,IAAIqC,EAAqB7G,EACrB8G,EAA0B7G,EAc9B,IAAI8G,EAAI,CACN,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,YAGtC,SAASC,EAAqBC,EAAIC,EAAI/I,EAAGlD,GAyBvC,IAxBA,IACIkM,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACnCC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACnCC,EAAIC,EAAI1O,EAAGkH,EAAGjG,EAAGC,EAAGuF,EAAG9B,EAAG5C,EAAGP,EAH7BmN,EAAK,IAAIC,WAAW,IAAKC,EAAK,IAAID,WAAW,IAK7CE,EAAMvB,EAAG,GACTwB,EAAMxB,EAAG,GACTyB,EAAMzB,EAAG,GACT0B,EAAM1B,EAAG,GACT2B,EAAM3B,EAAG,GACT4B,EAAM5B,EAAG,GACT6B,EAAM7B,EAAG,GACT8B,EAAM9B,EAAG,GAET+B,EAAM9B,EAAG,GACT+B,EAAM/B,EAAG,GACTgC,EAAMhC,EAAG,GACTiC,EAAMjC,EAAG,GACTkC,EAAMlC,EAAG,GACTmC,EAAMnC,EAAG,GACToC,EAAMpC,EAAG,GACTqC,EAAMrC,EAAG,GAETsC,EAAM,EACHvO,GAAK,KAAK,CACf,IAAKvB,EAAI,EAAGA,EAAI,GAAIA,IAClBkH,EAAI,EAAIlH,EAAI8P,EACZnB,EAAG3O,GAAKyE,EAAGyC,EAAE,IAAM,GAAOzC,EAAEyC,EAAE,IAAM,GAAOzC,EAAEyC,EAAE,IAAM,EAAKzC,EAAEyC,EAAE,GAC9D2H,EAAG7O,GAAKyE,EAAGyC,EAAE,IAAM,GAAOzC,EAAEyC,EAAE,IAAM,GAAOzC,EAAEyC,EAAE,IAAM,EAAKzC,EAAEyC,EAAE,GAEhE,IAAKlH,EAAI,EAAGA,EAAI,GAAIA,IA+HlB,GA9HAyN,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACAC,EAENpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACNpB,EAAMqB,EACAC,EAMNpJ,EAAQ,OAFRvF,EAAI2O,GAEYlL,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAIoO,GAIY7N,EAAIP,IAAM,GAM1BwF,GAAS,OAFTvF,GAAKwO,IAAS,GAAOR,GAAQ,KAAYQ,IAAS,GAAOR,GAAQ,KAAYA,IAAU,EAAWQ,GAAQ,KAEzF/K,GAAKzD,IAAM,GAC5Ba,GAAS,OAJTd,GAAKiO,IAAS,GAAOQ,GAAQ,KAAYR,IAAS,GAAOQ,GAAQ,KAAYA,IAAU,EAAWR,GAAQ,KAIzF1N,GAAKP,IAAM,GAM5BwF,GAAS,OAFTvF,EAAIwO,EAAOC,GAASD,EAAME,GAETjL,GAAKzD,IAAM,GAC5Ba,GAAS,OAJTd,EAAIiO,EAAOC,GAASD,EAAME,GAIT5N,GAAKP,IAAM,GAM5BwF,GAAS,OAFTvF,EAAImM,EAAI,EAAFrN,EAAI,IAEO2E,GAAKzD,IAAM,GAC5Ba,GAAS,OAJTd,EAAIoM,EAAI,EAAFrN,IAIWwB,GAAKP,IAAM,GAG5BA,EAAI0N,EAAG3O,EAAE,IAGQ2E,IAFjBzD,EAAI2N,EAAG7O,EAAE,OAEmB,GAC5B+B,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAG5Bc,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,GAUXuF,EAAQ,OAFRvF,EAJAwN,EAAS,MAAJjI,EAAa9B,GAAK,IAMPA,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAJAwN,EAAS,MAAJ1M,GAFLP,GAAKO,IAAM,KAEY,IAQPP,EAAIP,IAAM,GAM1BwF,GAAS,OAFTvF,GAAKoO,IAAS,GAAOR,GAAQ,IAAYA,IAAU,EAAWQ,GAAQ,KAAiBR,IAAU,EAAWQ,GAAQ,KAEnG3K,GAAKzD,IAAM,GAC5Ba,GAAS,OAJTd,GAAK6N,IAAS,GAAOQ,GAAQ,IAAYA,IAAU,EAAWR,GAAQ,KAAiBQ,IAAU,EAAWR,GAAQ,KAInGtN,GAAKP,IAAM,GAMX0D,IAFjBzD,EAAIoO,EAAOC,EAAQD,EAAME,EAAQD,EAAMC,KAEX,GAC5BzN,GAAS,OAJTd,EAAI6N,EAAOC,EAAQD,EAAME,EAAQD,EAAMC,GAItBxN,GAAKP,IAAM,GAM5B+M,EAAW,OAHXjM,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,KACXM,GAAKO,IAAM,KAEgB,GAC3ByM,EAAW,MAAL/H,EAAgB9B,GAAK,GAM3B8B,EAAQ,OAFRvF,EAAIkN,GAEYzJ,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAI2M,GAIYpM,EAAIP,IAAM,GAKT0D,IAFjBzD,EAAIwN,KAEwB,GAC5B3M,GAAS,OAJTd,EAAIwN,GAIajN,GAAKP,IAAM,GAS5B8N,EAAMtB,EACNuB,EAAMtB,EACNuB,EAAMtB,EACNuB,EANAtB,EAAW,OAHX7L,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,KACXM,GAAKO,IAAM,KAEgB,GAO3BoN,EAAMtB,EACNuB,EAAMtB,EACNuB,EAAMtB,EACNe,EAAMd,EAENuB,EAAMtB,EACNuB,EAAMtB,EACNuB,EAAMtB,EACNuB,EAdAtB,EAAW,MAAL3H,EAAgB9B,GAAK,GAe3BgL,EAAMtB,EACNuB,EAAMtB,EACNuB,EAAMtB,EACNe,EAAMd,EAEFxO,EAAE,IAAO,GACX,IAAKkH,EAAI,EAAGA,EAAI,GAAIA,IAElBjG,EAAI0N,EAAGzH,GAGPT,EAAQ,OAFRvF,EAAI2N,EAAG3H,IAESvC,EAAIzD,IAAM,GAC1Ba,EAAQ,MAAJd,EAAYO,EAAIP,IAAM,GAE1BA,EAAI0N,GAAIzH,EAAE,GAAG,IAGbT,GAAS,OAFTvF,EAAI2N,GAAI3H,EAAE,GAAG,KAEIvC,GAAKzD,IAAM,GAC5Ba,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAG5BwN,EAAKE,GAAIzH,EAAE,GAAG,IAKdT,GAAS,OAFTvF,IAFAwN,EAAKG,GAAI3H,EAAE,GAAG,OAED,EAAMuH,GAAO,KAAWC,IAAQ,EAAMD,GAAO,KAAWC,IAAQ,EAAMD,GAAO,KAEzE9J,GAAKzD,IAAM,GAC5Ba,GAAS,OAJTd,GAAKwN,IAAQ,EAAMC,GAAO,KAAWD,IAAQ,EAAMC,GAAO,IAAWD,IAAO,GAI3DjN,GAAKP,IAAM,GAG5BwN,EAAKE,GAAIzH,EAAE,IAAI,IAKEvC,IAFjBzD,IAFAwN,EAAKG,GAAI3H,EAAE,IAAI,OAEF,GAAOuH,GAAO,KAAYA,IAAS,GAAWC,GAAO,IAAiBA,IAAQ,EAAMD,GAAO,OAE5E,GAC5B1M,GAAS,OAJTd,GAAKwN,IAAQ,GAAOC,GAAO,KAAYA,IAAS,GAAWD,GAAO,GAAiBA,IAAO,GAIzEjN,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXyN,EAAGzH,GAAU,MAALnF,EAAgBP,GAAK,GAC7BqN,EAAG3H,GAAU,MAALT,EAAgB9B,GAAK,GASnC8B,EAAQ,OAFRvF,EAAIoO,GAEY3K,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAI6N,GAIYtN,EAAIP,IAAM,GAE1BA,EAAIsM,EAAG,GAGU5I,IAFjBzD,EAAIsM,EAAG,MAEqB,GAC5BzL,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXqM,EAAG,GAAKuB,EAAW,MAAL/M,EAAgBP,GAAK,GACnCgM,EAAG,GAAK8B,EAAW,MAAL7I,EAAgB9B,GAAK,GAKnC8B,EAAQ,OAFRvF,EAAIqO,GAEY5K,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAI8N,GAIYvN,EAAIP,IAAM,GAE1BA,EAAIsM,EAAG,GAGU5I,IAFjBzD,EAAIsM,EAAG,MAEqB,GAC5BzL,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXqM,EAAG,GAAKwB,EAAW,MAALhN,EAAgBP,GAAK,GACnCgM,EAAG,GAAK+B,EAAW,MAAL9I,EAAgB9B,GAAK,GAKnC8B,EAAQ,OAFRvF,EAAIsO,GAEY7K,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAI+N,GAIYxN,EAAIP,IAAM,GAE1BA,EAAIsM,EAAG,GAGU5I,IAFjBzD,EAAIsM,EAAG,MAEqB,GAC5BzL,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXqM,EAAG,GAAKyB,EAAW,MAALjN,EAAgBP,GAAK,GACnCgM,EAAG,GAAKgC,EAAW,MAAL/I,EAAgB9B,GAAK,GAKnC8B,EAAQ,OAFRvF,EAAIuO,GAEY9K,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAIgO,GAIYzN,EAAIP,IAAM,GAE1BA,EAAIsM,EAAG,GAGU5I,IAFjBzD,EAAIsM,EAAG,MAEqB,GAC5BzL,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXqM,EAAG,GAAK0B,EAAW,MAALlN,EAAgBP,GAAK,GACnCgM,EAAG,GAAKiC,EAAW,MAALhJ,EAAgB9B,GAAK,GAKnC8B,EAAQ,OAFRvF,EAAIwO,GAEY/K,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAIiO,GAIY1N,EAAIP,IAAM,GAE1BA,EAAIsM,EAAG,GAGU5I,IAFjBzD,EAAIsM,EAAG,MAEqB,GAC5BzL,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXqM,EAAG,GAAK2B,EAAW,MAALnN,EAAgBP,GAAK,GACnCgM,EAAG,GAAKkC,EAAW,MAALjJ,EAAgB9B,GAAK,GAKnC8B,EAAQ,OAFRvF,EAAIyO,GAEYhL,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAIkO,GAIY3N,EAAIP,IAAM,GAE1BA,EAAIsM,EAAG,GAGU5I,IAFjBzD,EAAIsM,EAAG,MAEqB,GAC5BzL,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXqM,EAAG,GAAK4B,EAAW,MAALpN,EAAgBP,GAAK,GACnCgM,EAAG,GAAKmC,EAAW,MAALlJ,EAAgB9B,GAAK,GAKnC8B,EAAQ,OAFRvF,EAAI0O,GAEYjL,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAImO,GAIY5N,EAAIP,IAAM,GAE1BA,EAAIsM,EAAG,GAGU5I,IAFjBzD,EAAIsM,EAAG,MAEqB,GAC5BzL,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXqM,EAAG,GAAK6B,EAAW,MAALrN,EAAgBP,GAAK,GACnCgM,EAAG,GAAKoC,EAAW,MAALnJ,EAAgB9B,GAAK,GAKnC8B,EAAQ,OAFRvF,EAAI2O,GAEYlL,EAAIzD,IAAM,GAC1Ba,EAAQ,OAJRd,EAAIoO,GAIY7N,EAAIP,IAAM,GAE1BA,EAAIsM,EAAG,GAGU5I,IAFjBzD,EAAIsM,EAAG,MAEqB,GAC5BzL,GAAS,MAAJd,EAAYO,GAAKP,IAAM,GAI5BO,IADAO,IADA4C,IAHA8B,GAAS,MAAJvF,KAGM,MACA,MACA,GAEXqM,EAAG,GAAK8B,EAAW,MAALtN,EAAgBP,GAAK,GACnCgM,EAAG,GAAKqC,EAAW,MAALpJ,EAAgB9B,GAAK,GAEnCmL,GAAO,IACPvO,GAAK,G,CAGP,OAAOA,C,CAGT,SAASwO,EAAYnO,EAAK6C,EAAGlD,GAC3B,IAGIvB,EAHAuN,EAAK,IAAIqB,WAAW,GACpBpB,EAAK,IAAIoB,WAAW,GACpB5N,EAAI,IAAIX,WAAW,KAChBsE,EAAIpD,EAuBX,IArBAgM,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,UACRA,EAAG,GAAK,WAERC,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,UACRA,EAAG,GAAK,WACRA,EAAG,GAAK,UAERF,EAAqBC,EAAIC,EAAI/I,EAAGlD,GAChCA,GAAK,IAEAvB,EAAI,EAAGA,EAAIuB,EAAGvB,IAAKgB,EAAEhB,GAAKyE,EAAEE,EAAEpD,EAAEvB,GAQrC,IAPAgB,EAAEO,GAAK,IAGPP,GADAO,EAAI,IAAI,KAAKA,EAAE,IAAI,EAAE,IACjB,GAAK,EACTR,EAAKC,EAAGO,EAAE,EAAIoD,EAAK,UAAc,EAAGA,GAAK,GACzC2I,EAAqBC,EAAIC,EAAIxM,EAAGO,GAE3BvB,EAAI,EAAGA,EAAI,EAAGA,IAAKe,EAAKa,EAAK,EAAE5B,EAAGuN,EAAGvN,GAAIwN,EAAGxN,IAEjD,OAAO,C,CAGT,SAASvD,EAAIwF,EAAG8E,GACd,IAAIN,EAAI3G,IAAM6E,EAAI7E,IAAMiC,EAAIjC,IACxB0B,EAAI1B,IAAMsK,EAAItK,IAAMuK,EAAIvK,IACxBmN,EAAInN,IAAMmB,EAAInB,IAAMkH,EAAIlH,IAE5ByH,EAAEd,EAAGxE,EAAE,GAAIA,EAAE,IACbsF,EAAEP,EAAGD,EAAE,GAAIA,EAAE,IACbS,EAAEf,EAAGA,EAAGO,GACRM,EAAE3C,EAAG1C,EAAE,GAAIA,EAAE,IACbqF,EAAEN,EAAGD,EAAE,GAAIA,EAAE,IACbS,EAAE7C,EAAGA,EAAGqC,GACRQ,EAAEzF,EAAGE,EAAE,GAAI8E,EAAE,IACbS,EAAEzF,EAAGA,EAAGpB,GACR6G,EAAEhG,EAAGS,EAAE,GAAI8E,EAAE,IACbO,EAAE9F,EAAGA,EAAGA,GACR+F,EAAE6C,EAAGzF,EAAG8B,GACRc,EAAE8C,EAAG7I,EAAGO,GACRuF,EAAE2F,EAAGzL,EAAGO,GACRuF,EAAErG,EAAG0D,EAAG8B,GAERe,EAAEvF,EAAE,GAAImI,EAAGC,GACX7C,EAAEvF,EAAE,GAAIhB,EAAGgM,GACXzF,EAAEvF,EAAE,GAAIgL,EAAG5C,GACX7C,EAAEvF,EAAE,GAAImI,EAAGnJ,E,CAGb,SAAS+O,EAAM/N,EAAG8E,EAAGpC,GACnB,IAAI3E,EACJ,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IACjB8G,EAAS7E,EAAEjC,GAAI+G,EAAE/G,GAAI2E,E,CAIzB,SAASsL,EAAKhQ,EAAGgC,GACf,IAAIiO,EAAKpQ,IAAMqQ,EAAKrQ,IAAMsQ,EAAKtQ,IAC/BmK,EAASmG,EAAInO,EAAE,IACfuF,EAAE0I,EAAIjO,EAAE,GAAImO,GACZ5I,EAAE2I,EAAIlO,EAAE,GAAImO,GACZnJ,EAAUhH,EAAGkQ,GACblQ,EAAE,KAAOmH,EAAS8I,IAAO,C,CAG3B,SAASG,GAAWpO,EAAG8E,EAAGhC,GACxB,IAAIJ,EAAG3E,EAKP,IAJAwG,EAASvE,EAAE,GAAI1B,GACfiG,EAASvE,EAAE,GAAIzB,GACfgG,EAASvE,EAAE,GAAIzB,GACfgG,EAASvE,EAAE,GAAI1B,GACVP,EAAI,IAAKA,GAAK,IAAKA,EAEtBgQ,EAAM/N,EAAG8E,EADTpC,EAAII,EAAG/E,EAAG,EAAG,KAAS,EAAFA,GAAQ,GAE5BvD,EAAIsK,EAAG9E,GACPxF,EAAIwF,EAAGA,GACP+N,EAAM/N,EAAG8E,EAAGpC,E,CAIhB,SAAS2L,GAAWrO,EAAG8C,GACrB,IAAIgC,EAAI,CAACjH,IAAMA,IAAMA,IAAMA,KAC3B0G,EAASO,EAAE,GAAInG,GACf4F,EAASO,EAAE,GAAIlG,GACf2F,EAASO,EAAE,GAAIvG,GACfgH,EAAET,EAAE,GAAInG,EAAGC,GACXwP,GAAWpO,EAAG8E,EAAGhC,E,CAGnB,SAASwL,GAAoBC,EAAIC,EAAIC,GACnC,IAEI1Q,EAFAwB,EAAI,IAAInB,WAAW,IACnB4B,EAAI,CAACnC,IAAMA,IAAMA,IAAMA,KAY3B,IATK4Q,GAAQvQ,EAAYsQ,EAAI,IAC7BV,EAAYvO,EAAGiP,EAAI,IACnBjP,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,GAET8O,GAAWrO,EAAGT,GACdyO,EAAKO,EAAIvO,GAEJjC,EAAI,EAAGA,EAAI,GAAIA,IAAKyQ,EAAGzQ,EAAE,IAAMwQ,EAAGxQ,GACvC,OAAO,C,CAGT,IAAI2Q,GAAI,IAAIzQ,aAAa,CAAC,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAEvK,SAAS0Q,GAAK3Q,EAAGe,GACf,IAAI6P,EAAO7Q,EAAGkH,EAAGpF,EACjB,IAAK9B,EAAI,GAAIA,GAAK,KAAMA,EAAG,CAEzB,IADA6Q,EAAQ,EACH3J,EAAIlH,EAAI,GAAI8B,EAAI9B,EAAI,GAAIkH,EAAIpF,IAAKoF,EACpClG,EAAEkG,IAAM2J,EAAQ,GAAK7P,EAAEhB,GAAK2Q,GAAEzJ,GAAKlH,EAAI,KACvC6Q,EAAQjK,KAAKC,OAAO7F,EAAEkG,GAAK,KAAO,KAClClG,EAAEkG,IAAc,IAAR2J,EAEV7P,EAAEkG,IAAM2J,EACR7P,EAAEhB,GAAK,C,CAGT,IADA6Q,EAAQ,EACH3J,EAAI,EAAGA,EAAI,GAAIA,IAClBlG,EAAEkG,IAAM2J,GAAS7P,EAAE,KAAO,GAAK2P,GAAEzJ,GACjC2J,EAAQ7P,EAAEkG,IAAM,EAChBlG,EAAEkG,IAAM,IAEV,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKlG,EAAEkG,IAAM2J,EAAQF,GAAEzJ,GAC3C,IAAKlH,EAAI,EAAGA,EAAI,GAAIA,IAClBgB,EAAEhB,EAAE,IAAMgB,EAAEhB,IAAM,EAClBC,EAAED,GAAY,IAAPgB,EAAEhB,E,CAIb,SAAS8Q,GAAO7Q,GACd,IAA8BD,EAA1BgB,EAAI,IAAId,aAAa,IACzB,IAAKF,EAAI,EAAGA,EAAI,GAAIA,IAAKgB,EAAEhB,GAAKC,EAAED,GAClC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKC,EAAED,GAAK,EAChC4Q,GAAK3Q,EAAGe,E,CAIV,SAAS+P,GAAYC,EAAIvM,EAAGlD,EAAGkP,GAC7B,IACIzQ,EAAGkH,EADH1F,EAAI,IAAInB,WAAW,IAAKY,EAAI,IAAIZ,WAAW,IAAKJ,EAAI,IAAII,WAAW,IAC7DW,EAAI,IAAId,aAAa,IAC3B+B,EAAI,CAACnC,IAAMA,IAAMA,IAAMA,KAE3BiQ,EAAYvO,EAAGiP,EAAI,IACnBjP,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,GAET,IAAIyP,EAAQ1P,EAAI,GAChB,IAAKvB,EAAI,EAAGA,EAAIuB,EAAGvB,IAAKgR,EAAG,GAAKhR,GAAKyE,EAAEzE,GACvC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKgR,EAAG,GAAKhR,GAAKwB,EAAE,GAAKxB,GAO7C,IALA+P,EAAY9P,EAAG+Q,EAAGzG,SAAS,IAAKhJ,EAAE,IAClCuP,GAAO7Q,GACPqQ,GAAWrO,EAAGhC,GACdgQ,EAAKe,EAAI/O,GAEJjC,EAAI,GAAIA,EAAI,GAAIA,IAAKgR,EAAGhR,GAAKyQ,EAAGzQ,GAIrC,IAHA+P,EAAY9O,EAAG+P,EAAIzP,EAAI,IACvBuP,GAAO7P,GAEFjB,EAAI,EAAGA,EAAI,GAAIA,IAAKgB,EAAEhB,GAAK,EAChC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKgB,EAAEhB,GAAKC,EAAED,GAClC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClB,IAAKkH,EAAI,EAAGA,EAAI,GAAIA,IAClBlG,EAAEhB,EAAEkH,IAAMjG,EAAEjB,GAAKwB,EAAE0F,GAKvB,OADA0J,GAAKI,EAAGzG,SAAS,IAAKvJ,GACfiQ,C,CAyCT,SAASC,GAAiBzM,EAAGuM,EAAIzP,EAAGiP,GAClC,IAAIxQ,EACAgH,EAAI,IAAI3G,WAAW,IAAKY,EAAI,IAAIZ,WAAW,IAC3C4B,EAAI,CAACnC,IAAMA,IAAMA,IAAMA,KACvBiH,EAAI,CAACjH,IAAMA,IAAMA,IAAMA,KAE3B,GAAIyB,EAAI,GAAI,OAAO,EAEnB,GA9CF,SAAmBtB,EAAGgC,GACpB,IAAI+E,EAAIlH,IAAMqR,EAAMrR,IAAMsR,EAAMtR,IAC5BuR,EAAMvR,IAAMwR,EAAOxR,IAAMyR,EAAOzR,IAChC0R,EAAO1R,IA2BX,OAzBA0G,EAASvG,EAAE,GAAIO,GACf6G,EAAYpH,EAAE,GAAIgC,GAClB+H,EAAEoH,EAAKnR,EAAE,IACTuH,EAAE6J,EAAKD,EAAK1Q,GACZ6G,EAAE6J,EAAKA,EAAKnR,EAAE,IACdqH,EAAE+J,EAAKpR,EAAE,GAAIoR,GAEbrH,EAAEsH,EAAMD,GACRrH,EAAEuH,EAAMD,GACR9J,EAAEgK,EAAMD,EAAMD,GACd9J,EAAER,EAAGwK,EAAMJ,GACX5J,EAAER,EAAGA,EAAGqK,GAERnH,EAAQlD,EAAGA,GACXQ,EAAER,EAAGA,EAAGoK,GACR5J,EAAER,EAAGA,EAAGqK,GACR7J,EAAER,EAAGA,EAAGqK,GACR7J,EAAEvH,EAAE,GAAI+G,EAAGqK,GAEXrH,EAAEmH,EAAKlR,EAAE,IACTuH,EAAE2J,EAAKA,EAAKE,GACRlK,EAASgK,EAAKC,IAAM5J,EAAEvH,EAAE,GAAIA,EAAE,GAAIa,GAEtCkJ,EAAEmH,EAAKlR,EAAE,IACTuH,EAAE2J,EAAKA,EAAKE,GACRlK,EAASgK,EAAKC,IAAa,GAE3BhK,EAASnH,EAAE,MAASgC,EAAE,KAAK,GAAIsF,EAAEtH,EAAE,GAAIM,EAAKN,EAAE,IAElDuH,EAAEvH,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACT,E,CAWHwR,CAAU1K,EAAGyJ,GAAK,OAAO,EAE7B,IAAKxQ,EAAI,EAAGA,EAAIuB,EAAGvB,IAAKyE,EAAEzE,GAAKgR,EAAGhR,GAClC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKyE,EAAEzE,EAAE,IAAMwQ,EAAGxQ,GAUtC,GATA+P,EAAY9O,EAAGwD,EAAGlD,GAClBuP,GAAO7P,GACPoP,GAAWpO,EAAG8E,EAAG9F,GAEjBqP,GAAWvJ,EAAGiK,EAAGzG,SAAS,KAC1B9N,EAAIwF,EAAG8E,GACPkJ,EAAKjJ,EAAG/E,GAERV,GAAK,GACDG,EAAiBsP,EAAI,EAAGhK,EAAG,GAAI,CACjC,IAAKhH,EAAI,EAAGA,EAAIuB,EAAGvB,IAAKyE,EAAEzE,GAAK,EAC/B,OAAO,C,CAGT,IAAKA,EAAI,EAAGA,EAAIuB,EAAGvB,IAAKyE,EAAEzE,GAAKgR,EAAGhR,EAAI,IACtC,OAAOuB,C,CAGT,IAGImQ,GAAgC,GAShCC,GAAoB,GACpBC,GAA6B,GAC7BC,GAA6B,GAiEjC,SAASC,GAAahQ,EAAGP,GACvB,GAhF8B,KAgF1BO,EAAEjF,OAAsC,MAAM,IAAIsB,MAAM,gBAC5D,GAhFgC,KAgF5BoD,EAAE1E,OAAwC,MAAM,IAAIsB,MAAM,iB,CAQhE,SAAS4T,KACP,IAAK,IAAI/R,EAAI,EAAGA,EAAIgS,UAAUnV,OAAQmD,IACpC,KAAMgS,UAAUhS,aAAcK,YAC5B,MAAM,IAAI4R,UAAU,kC,CAI1B,SAASC,GAAQC,GACf,IAAK,IAAInS,EAAI,EAAGA,EAAImS,EAAItV,OAAQmD,IAAKmS,EAAInS,GAAK,C,CA/EhDH,EAAKuS,SAAW,CACdhO,qBAAsBA,EACtBa,kBAAmBA,EACnBH,cAAeA,EACfP,0BAA2BA,EAC3BM,sBAAuBA,EACvBmB,mBAAoBA,EACpBI,0BAA2BA,EAC3B3E,iBAAkBA,EAClBC,iBAAkBA,EAClB4E,iBAAkBA,EAClBC,sBAAuBA,EACvB4D,kBAAmBA,EACnBM,uBAAwBA,EACxBE,oBAAqBA,EACrBwC,mBAAoBA,EACpBkF,WAxsBF,SAAoBtQ,EAAG0C,EAAGjD,EAAGD,EAAGF,EAAGL,GACjC,IAAIc,EAAI,IAAIzB,WAAW,IAEvB,OADAsK,EAAoB7I,EAAGT,EAAGL,GACnBmM,EAAmBpL,EAAG0C,EAAGjD,EAAGD,EAAGO,E,EAssBtCwQ,gBAnsBF,SAAyB7N,EAAG1C,EAAGP,EAAGD,EAAGF,EAAGL,GACtC,IAAIc,EAAI,IAAIzB,WAAW,IAEvB,OADAsK,EAAoB7I,EAAGT,EAAGL,GACnBoM,EAAwB3I,EAAG1C,EAAGP,EAAGD,EAAGO,E,EAisB3C4I,mBAAoBA,EACpBqF,YAAaA,EACbgB,YAAaA,GACbR,oBAAqBA,GACrBW,iBAAkBA,GAElBqB,0BA1C8B,GA2C9BC,4BA1CgC,GA2ChCC,2BA1C+B,GA2C/Bf,8BAA+BA,GAC/BgB,wBA1C4B,GA2C5BC,8BA1CkC,GA2ClCC,0BA1C8B,GA2C9BC,0BA1C8B,GA2C9BC,yBA1C6B,GA2C7BC,sBAlDgC,GAmDhCC,qBAlD+B,GAmD/BC,wBA1C4BvB,GA2C5BC,kBAAmBA,GACnBC,2BAA4BA,GAC5BC,2BAA4BA,GAC5BqB,sBA1C0B,GA2C1BC,kBA1CsB,GA4CtBrT,GAAIA,EACJY,EAAGA,EACHiQ,EAAGA,GACH1J,UAAWA,EACXI,YAAaA,EACbG,EAAGA,EACHF,EAAGA,EACH0C,EAAGA,EACHzC,EAAGA,EACH2C,QAASA,EACTzN,IAAKA,EACL+J,SAAUA,EACVoK,KAAMA,GACNP,WAAYA,GACZC,WAAYA,IA0BdzQ,EAAKuT,YAAc,SAAS7R,GAC1B,IAAIoD,EAAI,IAAItE,WAAWkB,GAEvB,OADApB,EAAYwE,EAAGpD,GACRoD,C,EAGT9E,EAAKwT,UAAY,SAASC,EAAKC,EAAOjX,GACpCyV,GAAgBuB,EAAKC,EAAOjX,GAC5BwV,GAAaxV,EAAKiX,GAGlB,IAFA,IAAI9O,EAAI,IAAIpE,WA3GmB,GA2GqBiT,EAAIzW,QACpDkF,EAAI,IAAI1B,WAAWoE,EAAE5H,QAChBmD,EAAI,EAAGA,EAAIsT,EAAIzW,OAAQmD,IAAKyE,EAAEzE,EA7GR,IA6GwCsT,EAAItT,GAE3E,OADAsG,EAAiBvE,EAAG0C,EAAGA,EAAE5H,OAAQ0W,EAAOjX,GACjCyF,EAAEwI,SAASmH,G,EAGpB7R,EAAKwT,UAAUG,KAAO,SAASC,EAAKF,EAAOjX,GACzCyV,GAAgB0B,EAAKF,EAAOjX,GAC5BwV,GAAaxV,EAAKiX,GAGlB,IAFA,IAAIxR,EAAI,IAAI1B,WAAWqR,GAAgC+B,EAAI5W,QACvD4H,EAAI,IAAIpE,WAAW0B,EAAElF,QAChBmD,EAAI,EAAGA,EAAIyT,EAAI5W,OAAQmD,IAAK+B,EAAE/B,EAAE0R,IAAiC+B,EAAIzT,GAC9E,OAAI+B,EAAElF,OAAS,IAC2C,IAAtD0J,EAAsB9B,EAAG1C,EAAGA,EAAElF,OAAQ0W,EAAOjX,GADvB,KAEnBmI,EAAE8F,SA1HsB,G,EA6HjC1K,EAAKwT,UAAUK,UA/HiB,GAgIhC7T,EAAKwT,UAAUM,YA/HmB,GAgIlC9T,EAAKwT,UAAUO,eAAiBlC,GAEhC7R,EAAKgU,WAAa,SAAStS,EAAGU,GAE5B,GADA8P,GAAgBxQ,EAAGU,GA/He,KAgI9BV,EAAE1E,OAA0C,MAAM,IAAIsB,MAAM,cAChE,GAlI4B,KAkIxB8D,EAAEpF,OAAoC,MAAM,IAAIsB,MAAM,cAC1D,IAAI4I,EAAI,IAAI1G,WAnIgB,IAqI5B,OADA8J,EAAkBpD,EAAGxF,EAAGU,GACjB8E,C,EAGTlH,EAAKgU,WAAWC,KAAO,SAASvS,GAE9B,GADAwQ,GAAgBxQ,GAxIkB,KAyI9BA,EAAE1E,OAA0C,MAAM,IAAIsB,MAAM,cAChE,IAAI4I,EAAI,IAAI1G,WA3IgB,IA6I5B,OADAoK,EAAuB1D,EAAGxF,GACnBwF,C,EAGTlH,EAAKgU,WAAWE,aA/IoB,GAgJpClU,EAAKgU,WAAWG,mBAjJc,GAmJ9BnU,EAAK4T,IAAM,SAASH,EAAKC,EAAO/T,EAAWH,GACzC,IAAIyC,EAAIjC,EAAK4T,IAAIQ,OAAOzU,EAAWH,GACnC,OAAOQ,EAAKwT,UAAUC,EAAKC,EAAOzR,E,EAGpCjC,EAAK4T,IAAIQ,OAAS,SAASzU,EAAWH,GACpC0S,GAAgBvS,EAAWH,GAzE7B,SAAyBmR,EAAIC,GAC3B,GA/E8B,KA+E1BD,EAAG3T,OAAsC,MAAM,IAAIsB,MAAM,uBAC7D,GA/E8B,KA+E1BsS,EAAG5T,OAAsC,MAAM,IAAIsB,MAAM,sB,CAwE7D+V,CAAgB1U,EAAWH,GAC3B,IAAIyC,EAAI,IAAIzB,WAvJiB,IAyJ7B,OADAsK,EAAoB7I,EAAGtC,EAAWH,GAC3ByC,C,EAGTjC,EAAK4T,IAAIU,MAAQtU,EAAKwT,UAEtBxT,EAAK4T,IAAID,KAAO,SAASF,EAAKC,EAAO/T,EAAWH,GAC9C,IAAIyC,EAAIjC,EAAK4T,IAAIQ,OAAOzU,EAAWH,GACnC,OAAOQ,EAAKwT,UAAUG,KAAKF,EAAKC,EAAOzR,E,EAGzCjC,EAAK4T,IAAID,KAAKW,MAAQtU,EAAKwT,UAAUG,KAErC3T,EAAK4T,IAAI7X,QAAU,WACjB,IAAI4U,EAAK,IAAInQ,WAxKiB,IAyK1BoQ,EAAK,IAAIpQ,WAxKiB,IA0K9B,OADAqK,EAAmB8F,EAAIC,GAChB,CAACjR,UAAWgR,EAAInR,UAAWoR,E,EAGpC5Q,EAAK4T,IAAI7X,QAAQgE,cAAgB,SAASP,GAExC,GADA0S,GAAgB1S,GA9Kc,KA+K1BA,EAAUxC,OACZ,MAAM,IAAIsB,MAAM,uBAClB,IAAIqS,EAAK,IAAInQ,WAlLiB,IAoL9B,OADAoK,EAAuB+F,EAAInR,GACpB,CAACG,UAAWgR,EAAInR,UAAW,IAAIgB,WAAWhB,G,EAGnDQ,EAAK4T,IAAIW,gBAvLuB,GAwLhCvU,EAAK4T,IAAIY,gBAvLuB,GAwLhCxU,EAAK4T,IAAIa,gBAvLsB,GAwL/BzU,EAAK4T,IAAIE,YA/LyB,GAgMlC9T,EAAK4T,IAAIG,eAAiB/T,EAAKwT,UAAUO,eAEzC/T,EAAKT,KAAO,SAASkU,EAAKjU,GAExB,GADA0S,GAAgBuB,EAAKjU,GACjBA,EAAUxC,SAAWgV,GACvB,MAAM,IAAI1T,MAAM,uBAClB,IAAIoW,EAAY,IAAIlU,WAAWsR,GAAkB2B,EAAIzW,QAErD,OADAkU,GAAYwD,EAAWjB,EAAKA,EAAIzW,OAAQwC,GACjCkV,C,EAGT1U,EAAKT,KAAKoU,KAAO,SAASe,EAAW/U,GAEnC,GADAuS,GAAgBwC,EAAW/U,GACvBA,EAAU3C,SAAW+U,GACvB,MAAM,IAAIzT,MAAM,uBAClB,IAAIqW,EAAM,IAAInU,WAAWkU,EAAU1X,QAC/B4X,EAAOvD,GAAiBsD,EAAKD,EAAWA,EAAU1X,OAAQ2C,GAC9D,GAAIiV,EAAO,EAAG,OAAO,KAErB,IADA,IAAIhQ,EAAI,IAAIpE,WAAWoU,GACdzU,EAAI,EAAGA,EAAIyE,EAAE5H,OAAQmD,IAAKyE,EAAEzE,GAAKwU,EAAIxU,GAC9C,OAAOyE,C,EAGT5E,EAAKT,KAAKG,SAAW,SAAS+T,EAAKjU,GAGjC,IAFA,IAAIkV,EAAY1U,EAAKT,KAAKkU,EAAKjU,GAC3BqV,EAAM,IAAIrU,WAAWsR,IAChB3R,EAAI,EAAGA,EAAI0U,EAAI7X,OAAQmD,IAAK0U,EAAI1U,GAAKuU,EAAUvU,GACxD,OAAO0U,C,EAGT7U,EAAKT,KAAKG,SAASE,OAAS,SAAS6T,EAAKoB,EAAKlV,GAE7C,GADAuS,GAAgBuB,EAAKoB,EAAKlV,GACtBkV,EAAI7X,SAAW8U,GACjB,MAAM,IAAIxT,MAAM,sBAClB,GAAIqB,EAAU3C,SAAW+U,GACvB,MAAM,IAAIzT,MAAM,uBAClB,IAEI6B,EAFAgR,EAAK,IAAI3Q,WAAWsR,GAAoB2B,EAAIzW,QAC5C4H,EAAI,IAAIpE,WAAWsR,GAAoB2B,EAAIzW,QAE/C,IAAKmD,EAAI,EAAGA,EAAI2R,GAAmB3R,IAAKgR,EAAGhR,GAAK0U,EAAI1U,GACpD,IAAKA,EAAI,EAAGA,EAAIsT,EAAIzW,OAAQmD,IAAKgR,EAAGhR,EAAE2R,IAAqB2B,EAAItT,GAC/D,OAAQkR,GAAiBzM,EAAGuM,EAAIA,EAAGnU,OAAQ2C,IAAc,C,EAG3DK,EAAKT,KAAKxD,QAAU,WAClB,IAAI4U,EAAK,IAAInQ,WAAWuR,IACpBnB,EAAK,IAAIpQ,WAAWwR,IAExB,OADAtB,GAAoBC,EAAIC,GACjB,CAACjR,UAAWgR,EAAInR,UAAWoR,E,EAGpC5Q,EAAKT,KAAKxD,QAAQgE,cAAgB,SAASP,GAEzC,GADA0S,GAAgB1S,GACZA,EAAUxC,SAAWgV,GACvB,MAAM,IAAI1T,MAAM,uBAElB,IADA,IAAIqS,EAAK,IAAInQ,WAAWuR,IACf5R,EAAI,EAAGA,EAAIwQ,EAAG3T,OAAQmD,IAAKwQ,EAAGxQ,GAAKX,EAAU,GAAGW,GACzD,MAAO,CAACR,UAAWgR,EAAInR,UAAW,IAAIgB,WAAWhB,G,EAGnDQ,EAAKT,KAAKxD,QAAQ+Y,SAAW,SAASC,GAEpC,GADA7C,GAAgB6C,GA/OU,KAgPtBA,EAAK/X,OACP,MAAM,IAAIsB,MAAM,iBAGlB,IAFA,IAAIqS,EAAK,IAAInQ,WAAWuR,IACpBnB,EAAK,IAAIpQ,WAAWwR,IACf7R,EAAI,EAAGA,EAAI,GAAIA,IAAKyQ,EAAGzQ,GAAK4U,EAAK5U,GAE1C,OADAuQ,GAAoBC,EAAIC,GAAI,GACrB,CAACjR,UAAWgR,EAAInR,UAAWoR,E,EAGpC5Q,EAAKT,KAAKgV,gBAAkBxC,GAC5B/R,EAAKT,KAAKiV,gBAAkBxC,GAC5BhS,EAAKT,KAAKyV,WA3PkB,GA4P5BhV,EAAKT,KAAK0V,gBAAkBnD,GAE5B9R,EAAKkV,KAAO,SAASzB,GACnBvB,GAAgBuB,GAChB,IAAIrS,EAAI,IAAIZ,WA/PU,IAiQtB,OADA0P,EAAY9O,EAAGqS,EAAKA,EAAIzW,QACjBoE,C,EAGTpB,EAAKkV,KAAKC,WApQc,GAsQxBnV,EAAKJ,OAAS,SAASuB,EAAGK,GAGxB,OAFA0Q,GAAgB/Q,EAAGK,GAEF,IAAbL,EAAEnE,QAA6B,IAAbwE,EAAExE,SACpBmE,EAAEnE,SAAWwE,EAAExE,QACkB,IAA9BsE,EAAIH,EAAG,EAAGK,EAAG,EAAGL,EAAEnE,Q,EAG3BgD,EAAKoV,QAAU,SAASC,GACtB/U,EAAc+U,C,EAGf,WAGC,IAAIC,EAAyB,oBAATC,KAAwBA,KAAKD,QAAUC,KAAKC,SAAY,KAC5E,GAAIF,GAAUA,EAAOG,gBAAiB,CAGpCzV,EAAKoV,SAAQ,SAASjU,EAAGO,GACvB,IAAIvB,EAAG2G,EAAI,IAAItG,WAAWkB,GAC1B,IAAKvB,EAAI,EAAGA,EAAIuB,EAAGvB,GAHT,MAIRmV,EAAOG,gBAAgB3O,EAAE4D,SAASvK,EAAGA,EAAI4G,KAAK2O,IAAIhU,EAAIvB,EAJ9C,SAMV,IAAKA,EAAI,EAAGA,EAAIuB,EAAGvB,IAAKgB,EAAEhB,GAAK2G,EAAE3G,GACjCkS,GAAQvL,E,SAIVwO,EAASvX,cAAA,WACKuX,EAAO/B,aACnBvT,EAAKoV,SAAQ,SAASjU,EAAGO,GACvB,IAAIvB,EAAG2G,EAAIwO,EAAO/B,YAAY7R,GAC9B,IAAKvB,EAAI,EAAGA,EAAIuB,EAAGvB,IAAKgB,EAAEhB,GAAK2G,EAAE3G,GACjCkS,GAAQvL,E,GAIf,CA1BA,EA4BA,CAt1EA,CAs1EEhM,EAAiCC,QAAiBD,EAAAC,QAAkBwa,KAAKvV,KAAOuV,KAAKvV,MAAQ,G,oGCr1EhGpF,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,I,6BAEtDJ,OAAOC,eAAeC,EAAAC,QAAS,cAAe,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqa,EAAAC,U,IAC5Fhb,OAAOC,eAAeC,EAAAC,QAAS,cAAe,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqa,EAAAE,U,IAC5Fjb,OAAOC,eAAeC,EAAAC,QAAS,YAAa,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqa,EAAAG,S,IAC1Flb,OAAOC,eAAeC,EAAAC,QAAS,cAAe,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqa,EAAAI,W,IAC5Fnb,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqa,EAAAK,U,IAC3Fpb,OAAOC,eAAeC,EAAAC,QAAS,eAAgB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqa,EAAAM,Y,IAC7Frb,OAAOC,eAAeC,EAAAC,QAAS,eAAgB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqa,EAAAO,Y,yFCRzFC,EAAkBrb,EAACC,SAAQD,EAAAC,QAAKqb,kBAAqBxb,OAAOyb,OAAU,SAASlU,EAAGyC,EAAG3C,EAAGqU,QAC7EC,IAAPD,IAAkBA,EAAKrU,GAC3BrH,OAAOC,eAAesH,EAAGmU,EAAI,CAAEjb,YAAY,EAAMC,IAAK,WAAa,OAAOsJ,EAAE3C,E,KAC1E,SAASE,EAAGyC,EAAG3C,EAAGqU,QACTC,IAAPD,IAAkBA,EAAKrU,GAC3BE,EAAEmU,GAAM1R,EAAE3C,E,GAEVuU,EAAqB1b,EAACC,SAAQD,EAAAC,QAAK0b,qBAAwB7b,OAAOyb,OAAU,SAASlU,EAAG2E,GACxFlM,OAAOC,eAAesH,EAAG,UAAW,CAAE9G,YAAY,EAAML,MAAO8L,G,EAC9D,SAAS3E,EAAG2E,GACb3E,EAAW,QAAI2E,C,GAEf4P,EAAa5b,EAACC,SAAQD,EAAAC,QAAK4b,YAAe,SAAUC,EAAYC,EAAQpa,EAAKqa,GAC7E,IAA2HnV,EAAvHO,EAAIiQ,UAAUnV,OAAQoD,EAAI8B,EAAI,EAAI2U,EAAkB,OAATC,EAAgBA,EAAOlc,OAAOmc,yBAAyBF,EAAQpa,GAAOqa,EACrH,GAAuB,iBAAZE,SAAoD,mBAArBA,QAAQC,SAAyB7W,EAAI4W,QAAQC,SAASL,EAAYC,EAAQpa,EAAKqa,QACpH,IAAK,IAAI3W,EAAIyW,EAAW5Z,OAAS,EAAGmD,GAAK,EAAGA,KAASwB,EAAIiV,EAAWzW,MAAIC,GAAK8B,EAAI,EAAIP,EAAEvB,GAAK8B,EAAI,EAAIP,EAAEkV,EAAQpa,EAAK2D,GAAKuB,EAAEkV,EAAQpa,KAAS2D,GAChJ,OAAO8B,EAAI,GAAK9B,GAAKxF,OAAOC,eAAegc,EAAQpa,EAAK2D,GAAIA,C,EAE5D8W,EAAepc,EAACC,SAAQD,EAAAC,QAAKoc,cAAiB,SAAU3Z,GACxD,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAIlB,EAAS,GACb,GAAW,MAAPkB,EAAa,IAAK,IAAIyE,KAAKzE,EAAe,YAANyE,GAAmBrH,OAAOwc,eAAeC,KAAK7Z,EAAKyE,IAAIkU,EAAgB7Z,EAAQkB,EAAKyE,GAE5H,OADAuU,EAAmBla,EAAQkB,GACpBlB,C,EAEPgb,EAAkBxc,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQgb,YAAcjb,EAAAC,QAAQ+a,UAAYhb,EAAAC,QAAQmb,aAAepb,EAAAC,QAAQkb,aAAenb,EAAAC,QAAQib,WAAalb,EAAAC,QAAQ8a,WAAa/a,EAAAC,QAAQ6a,gBAAa,EACvJ,MAAM2B,EAAUD,EAAgBvZ,cAAA,UAC1ByZ,EAASF,EAAgBvZ,cAAA,UAEzB0Z,EAAWP,EAAanZ,cAAA,UAExB2Z,EAAc,IAD+B,mBAAvBC,eAAOC,YAA8BH,EAASG,YAAcD,eAAOC,aAC3D,QAAS,CAAEC,OAAO,IAOtD/c,EAAAC,QAAQ6a,WANR,SAAoB5a,GAIhB,MAHuB,iBAAXA,IACRA,EAAQ8c,EAAOhb,KAAK9B,EAAO,SAExBwc,EAAO9Z,QAAQqa,OAAOD,EAAOhb,KAAK9B,G,EAM7CF,EAAAC,QAAQ8a,WAHR,SAAoB7a,GAChB,OAAO8c,EAAOhb,KAAK0a,EAAO9Z,QAAQsa,OAAOhd,G,EAG7C,MAAMid,EAAiB,KACvB,MAAMC,UAAmB5Z,MAMrB6Z,eAAeC,GACXpc,KAAKqc,UAAUC,OAAO,EAAG,EAAGF,GAE5Bpc,KAAKyD,QAAUzD,KAAKuc,gBAAkB,KAAOvc,KAAKqc,UAAUlb,KAAK,I,CARrEC,YAAYqC,GACRpC,MAAMoC,GACNzD,KAAKqc,UAAY,GACjBrc,KAAKuc,gBAAkB9Y,C,EAQ/B3E,EAAAC,QAAQib,WAAakC,EAErB,MAAMM,EAKFC,cACQzc,KAAK0c,IAAI1b,OAAS,GAAKhB,KAAKgB,SAC5BhB,KAAK0c,IAAMZ,EAAOa,OAAO,CAAC3c,KAAK0c,IAAKZ,EAAOc,MAAMX,K,CAGzDY,QAAQ7d,GACJgB,KAAKyc,cACLzc,KAAK0c,IAAII,WAAW9d,EAAOgB,KAAKgB,QAChChB,KAAKgB,QAAU,C,CAEnB+b,SAAS/d,GACLgB,KAAKyc,cACLzc,KAAK0c,IAAIM,cAAche,EAAOgB,KAAKgB,QACnChB,KAAKgB,QAAU,C,CAEnBic,SAASje,GACLgB,KAAKyc,cACLzc,KAAKkd,YAAYpB,EAAOhb,KAAK,IAAIya,EAAQ7Z,QAAQ1C,GAAOme,QAAQ,KAAM,I,CAE1EC,UAAUpe,GACNgB,KAAKyc,cACLzc,KAAKkd,YAAYpB,EAAOhb,KAAK,IAAIya,EAAQ7Z,QAAQ1C,GAAOme,QAAQ,KAAM,K,CAE1ED,YAAYpT,GAER9J,KAAK0c,IAAMZ,EAAOa,OAAO,CAACb,EAAOhb,KAAKd,KAAK0c,IAAIhO,SAAS,EAAG1O,KAAKgB,SAAU8I,EAAQgS,EAAOc,MAAMX,KAC/Fjc,KAAKgB,QAAU8I,EAAO9I,M,CAE1Bqc,YAAYC,GACRtd,KAAKyc,cACL,MAAM3T,EAAIgT,EAAOhb,KAAKwc,EAAK,QAC3Btd,KAAK+c,SAASjU,EAAE9H,QAChBhB,KAAKkd,YAAYpU,E,CAErByU,gBAAgBC,GACZxd,KAAKkd,YAAYpB,EAAOhb,KAAK0c,G,CAEjCC,WAAWD,EAAOnE,GACdrZ,KAAKyc,cACLzc,KAAK+c,SAASS,EAAMxc,QACpB,IAAK,MAAM0c,KAAQF,EACfxd,KAAKyc,cACLpD,EAAGqE,E,CAGXP,UACI,OAAOnd,KAAK0c,IAAIhO,SAAS,EAAG1O,KAAKgB,O,CAlDrCI,cACIpB,KAAK0c,IAAMZ,EAAOc,MAAMX,GACxBjc,KAAKgB,OAAS,C,EAoDtB,SAAS2c,EAAmB9C,EAAQ+C,EAAaC,GAC7C,MAAMC,EAAiBD,EAAmB7e,MAC1C6e,EAAmB7e,MAAQ,YAAa+e,GACpC,IACI,OAAOD,EAAeE,MAAMhe,KAAM+d,E,CAEtC,MAAOxP,GACH,GAAIA,aAAa0P,WAAY,CACzB,MAAMC,EAAO3P,EAAE2P,KACf,GAAI,CAAC,2BAA4B,oBAAoBC,QAAQD,IAAS,EAClE,MAAM,IAAIhC,EAAW,+C,CAG7B,MAAM3N,C,GAdlBzP,EAAAC,QAAQkb,aAAeuC,EAkBvB,MAAM4B,EAKFC,SACI,MAAMrf,EAAQgB,KAAK0c,IAAI4B,UAAUte,KAAKue,QAEtC,OADAve,KAAKue,QAAU,EACRvf,C,CAEXwf,UACI,MAAMxf,EAAQgB,KAAK0c,IAAI+B,aAAaze,KAAKue,QAEzC,OADAve,KAAKue,QAAU,EACRvf,C,CAEX0f,UACI,MAAMhC,EAAM1c,KAAK2e,WAAW,GAC5B,OAAO,IAAIpD,EAAQ7Z,QAAQgb,EAAK,K,CAEpCkC,WACI,MAAMlC,EAAM1c,KAAK2e,WAAW,IAC5B,OAAO,IAAIpD,EAAQ7Z,QAAQgb,EAAK,K,CAEpCiC,WAAWE,GACP,GAAI7e,KAAMue,OAASM,EAAO7e,KAAK0c,IAAI1b,OAC/B,MAAM,IAAIkb,EAAW,0BAA0B2C,yBAEnD,MAAMve,EAASN,KAAK0c,IAAIxb,MAAMlB,KAAKue,OAAQve,KAAKue,OAASM,GAEzD,OADA7e,KAAKue,QAAUM,EACRve,C,CAEXwe,aACI,MAAMD,EAAM7e,KAAKwe,UACX9B,EAAM1c,KAAK2e,WAAWE,GAC5B,IAEI,OAAOnD,EAAYM,OAAOU,E,CAE9B,MAAOnO,GACH,MAAM,IAAI2N,EAAW,gCAAgC3N,I,EAG7DwQ,eAAeF,GACX,OAAO,IAAIra,WAAWxE,KAAK2e,WAAWE,G,CAE1CG,UAAU3F,GACN,MAAMwF,EAAM7e,KAAKwe,UACXle,EAASO,QACf,IAAK,IAAIsD,EAAI,EAAGA,EAAI0a,IAAO1a,EACvB7D,EAAOW,KAAKoY,KAEhB,OAAO/Y,C,CAlDXc,YAAYsb,GACR1c,KAAK0c,IAAMA,EACX1c,KAAKue,OAAS,C,EAyEtB,SAASU,EAAsBC,GAC3B,OAAOA,EAAOC,OAAO,GAAGhc,cAAgB+b,EAAOhe,MAAM,E,CAEzD,SAASke,EAAeC,EAAQjD,EAAWpd,EAAOsgB,EAAWC,GACzD,IAEI,GAAyB,iBAAdD,EACPC,EAAO,QAAQN,EAAsBK,MAActgB,QAElD,GAAIsgB,aAAqBze,MAC1B,GAA4B,iBAAjBye,EAAU,GAAiB,CAClC,GAAItgB,EAAMgC,SAAWse,EAAU,GAC3B,MAAM,IAAIpD,EAAW,kCAAkCoD,EAAU,eAAetgB,EAAMgC,gBAE1Fue,EAAOhC,gBAAgBve,E,MAGvBugB,EAAO9B,WAAWze,GAAQwgB,IAAWJ,EAAeC,EAAQjD,EAAWoD,EAAMF,EAAU,GAAIC,EAAO,SAGrG,QAAuBhF,IAAnB+E,EAAUG,KACf,IACS,WADDH,EAAUG,KAWL,MAAM,IAAIvD,EAAW,aAAaoD,kBATzB,OAAVtgB,EACAugB,EAAO1C,QAAQ,IAGf0C,EAAO1C,QAAQ,GACfuC,EAAeC,EAAQjD,EAAWpd,EAAOsgB,EAAUI,KAAMH,G,MAQrEI,EAAgBN,EAAQrgB,EAAOugB,E,CAGvC,MAAOK,GAIH,MAHIA,aAAiB1D,GACjB0D,EAAMzD,eAAeC,GAEnBwD,C,EAGd,SAASD,EAAgBN,EAAQQ,EAAKN,GAClC,MAAMO,EAAeT,EAAO/f,IAAIugB,EAAIze,aACpC,IAAK0e,EACD,MAAM,IAAI5D,EAAW,SAAS2D,EAAIze,YAAY2e,6BAElD,GAA0B,WAAtBD,EAAaL,KACbK,EAAaE,OAAOC,KAAI,EAAE7D,EAAWkD,MACjCF,EAAeC,EAAQjD,EAAWyD,EAAIzD,GAAYkD,EAAWC,EAAO,QAGvE,IAA0B,SAAtBO,EAAaL,KAYlB,MAAM,IAAIvD,EAAW,2BAA2B4D,EAAaL,YAAYI,EAAIze,YAAY2e,QAZtD,CACnC,MAAMA,EAAOF,EAAIC,EAAaI,OAC9B,IAAK,IAAIC,EAAM,EAAGA,EAAML,EAAa/e,OAAOC,SAAUmf,EAAK,CACvD,MAAO/D,EAAWkD,GAAaQ,EAAa/e,OAAOof,GACnD,GAAI/D,IAAc2D,EAAM,CACpBR,EAAO1C,QAAQsD,GACff,EAAeC,EAAQjD,EAAWyD,EAAIzD,GAAYkD,EAAWC,GAC7D,K,GAKwF,C,CAWxG,SAASa,EAAiBf,EAAQjD,EAAWkD,EAAWe,GACpD,IACI,MAAyB,iBAAdf,EACAe,EAAO,OAAOpB,EAAsBK,QAE3CA,aAAqBze,MACO,iBAAjBye,EAAU,GACVe,EAAOtB,eAAeO,EAAU,IAEpCe,EAAOrB,WAAU,IAAMoB,EAAiBf,EAAQjD,EAAWkD,EAAU,GAAIe,KAE7EC,EAAkBjB,EAAQC,EAAWe,E,CAEhD,MAAOT,GAIH,MAHIA,aAAiB1D,GACjB0D,EAAMzD,eAAeC,GAEnBwD,C,EAGd,SAASU,EAAkBjB,EAAQkB,EAAWF,GAC1C,MAAMP,EAAeT,EAAO/f,IAAIihB,GAChC,IAAKT,EACD,MAAM,IAAI5D,EAAW,SAASqE,EAAUR,6BAE5C,GAA0B,WAAtBD,EAAaL,KAAmB,CAChC,MAAMnf,EAAS,GACf,IAAK,MAAO8b,EAAWkD,KAAcD,EAAO/f,IAAIihB,GAAWP,OACvD1f,EAAO8b,GAAagE,EAAiBf,EAAQjD,EAAWkD,EAAWe,GAEvE,OAAO,IAAIE,EAAUjgB,E,CAEzB,GAA0B,SAAtBwf,EAAaL,KAAiB,CAC9B,MAAMU,EAAME,EAAOhC,SACnB,GAAI8B,GAAOL,EAAa/e,OAAOC,OAC3B,MAAM,IAAIkb,EAAW,eAAeiE,qBAExC,MAAO/D,EAAWkD,GAAaQ,EAAa/e,OAAOof,GAEnD,OAAO,IAAII,EAAU,CAAEnE,CAACA,GADLgE,EAAiBf,EAAQjD,EAAWkD,EAAWe,I,CAGtE,MAAM,IAAInE,EAAW,2BAA2B4D,EAAaL,YAAYc,EAAUnf,YAAY2e,O,CA9InGrF,EAAW,CACPiD,GACDS,EAAarP,UAAW,SAAU,MACrC2L,EAAW,CACPiD,GACDS,EAAarP,UAAW,UAAW,MACtC2L,EAAW,CACPiD,GACDS,EAAarP,UAAW,UAAW,MACtC2L,EAAW,CACPiD,GACDS,EAAarP,UAAW,WAAY,MACvC2L,EAAW,CACPiD,GACDS,EAAarP,UAAW,aAAc,MACzC2L,EAAW,CACPiD,GACDS,EAAarP,UAAW,iBAAkB,MAC7C2L,EAAW,CACPiD,GACDS,EAAarP,UAAW,YAAa,MACxCjQ,EAAAC,QAAQmb,aAAekE,EA+EvBtf,EAAAC,QAAQ+a,UALR,SAAmBuF,EAAQQ,GACvB,MAAMN,EAAS,IAAI/C,EAEnB,OADAmD,EAAgBN,EAAQQ,EAAKN,GACtBA,EAAOpC,S,EAuDlBre,EAAAC,QAAQgb,YARR,SAAqBsF,EAAQkB,EAAWzW,GACpC,MAAMuW,EAAS,IAAIjC,EAAatU,GAC1BxJ,EAASggB,EAAkBjB,EAAQkB,EAAWF,GACpD,GAAIA,EAAO9B,OAASzU,EAAO9I,OACvB,MAAM,IAAIkb,EAAW,cAAcpS,EAAO9I,OAASqf,EAAO9B,wCAE9D,OAAOje,C,mDCnUX,IAAAkgB,EACAC,EACAC,EAGAC,E,yZAVA,MAAMC,EACe,mBAAXC,QAAkD,mBAAlBA,OAAY,IAChDA,OAAY,IAAE,8BACd,KAENL,EAAiBM,EACjBL,EAyTA,SAAqBzf,IACdA,GAAUA,IACbA,EAAS,GAEX,OAAO8f,EAAOlE,OAAO5b,E,EA5TvB0f,EAA4B,GAE5B,MAAMK,EAAe,WAwDrB,SAASC,EAAchgB,GACrB,GAAIA,EAAS+f,EACX,MAAM,IAAI9C,WAAW,cAAgBjd,EAAS,kCAGhD,MAAM0b,EAAM,IAAIlY,WAAWxD,GAE3B,OADApC,OAAOqiB,eAAevE,EAAKoE,EAAO/R,WAC3B2N,C,CAaT,SAASoE,EAAQI,EAAKC,EAAkBngB,GAEtC,GAAmB,iBAARkgB,EAAkB,CAC3B,GAAgC,iBAArBC,EACT,MAAM,IAAI/K,UACR,sEAGJ,OAAOgL,EAAYF,E,CAErB,OAAOG,EAAKH,EAAKC,EAAkBngB,E,CAKrC,SAASqgB,EAAMriB,EAAOmiB,EAAkBngB,GACtC,GAAqB,iBAAVhC,EACT,OAqHJ,SAAqBkgB,EAAQoC,GACH,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAKR,EAAOS,WAAWD,GACrB,MAAM,IAAIlL,UAAU,qBAAuBkL,GAG7C,MAAMtgB,EAAwC,EAA/BwgB,EAAWtC,EAAQoC,GAClC,IAAI5E,EAAMsE,EAAahgB,GAEvB,MAAMygB,EAAS/E,EAAIgF,MAAMxC,EAAQoC,GAE7BG,IAAWzgB,IAIb0b,EAAMA,EAAIxb,MAAM,EAAGugB,IAGrB,OAAO/E,C,CA1IEiF,CAAW3iB,EAAOmiB,GAG3B,GAAIS,YAAYC,OAAO7iB,GACrB,OAkJJ,SAAwB8iB,GACtB,GAAIC,EAAWD,EAAWtd,YAAa,CACrC,MAAMwd,EAAO,IAAIxd,WAAWsd,GAC5B,OAAOG,EAAgBD,EAAKlY,OAAQkY,EAAKE,WAAYF,EAAKG,W,CAE5D,OAAOC,EAAcN,E,CAvJZO,CAAcrjB,GAGvB,GAAa,MAATA,EACF,MAAM,IAAIoX,UACR,yHACiDpX,GAIrD,GAAI+iB,EAAW/iB,EAAO4iB,cACjB5iB,GAAS+iB,EAAW/iB,EAAM8K,OAAQ8X,aACrC,OAAOK,EAAgBjjB,EAAOmiB,EAAkBngB,GAGlD,GAAiC,oBAAtBshB,oBACNP,EAAW/iB,EAAOsjB,oBAClBtjB,GAAS+iB,EAAW/iB,EAAM8K,OAAQwY,oBACrC,OAAOL,EAAgBjjB,EAAOmiB,EAAkBngB,GAGlD,GAAqB,iBAAVhC,EACT,MAAM,IAAIoX,UACR,yEAIJ,MAAMmM,EAAUvjB,EAAMujB,SAAWvjB,EAAMujB,UACvC,GAAe,MAAXA,GAAmBA,IAAYvjB,EACjC,OAAO8hB,EAAOhgB,KAAKyhB,EAASpB,EAAkBngB,GAGhD,MAAM8H,EAkJR,SAAqB+W,GACnB,GAAIiB,EAAO0B,SAAS3C,GAAM,CACxB,MAAMhB,EAA4B,EAAtB4D,EAAQ5C,EAAI7e,QAClB0b,EAAMsE,EAAanC,GAEzB,OAAmB,IAAfnC,EAAI1b,QAIR6e,EAAImC,KAAKtF,EAAK,EAAG,EAAGmC,GAHXnC,C,CAOX,QAAmBnC,IAAfsF,EAAI7e,OACN,MAA0B,iBAAf6e,EAAI7e,QAAuB0hB,EAAY7C,EAAI7e,QAC7CggB,EAAa,GAEfoB,EAAcvC,GAGvB,GAAiB,WAAbA,EAAIH,MAAqB7e,MAAM8hB,QAAQ9C,EAAIjd,MAC7C,OAAOwf,EAAcvC,EAAIjd,K,CAvKjBggB,CAAW5jB,GACrB,GAAI8J,EAAG,OAAOA,EAEd,GAAsB,oBAAX+X,QAAgD,MAAtBA,OAAOgC,aACH,mBAA9B7jB,EAAM6hB,OAAOgC,aACtB,OAAO/B,EAAOhgB,KAAK9B,EAAM6hB,OAAOgC,aAAa,UAAW1B,EAAkBngB,GAG5E,MAAM,IAAIoV,UACR,yHACiDpX,E,CAqBrD,SAAS8jB,EAAYC,GACnB,GAAoB,iBAATA,EACT,MAAM,IAAI3M,UAAU,0CACf,GAAI2M,EAAO,EAChB,MAAM,IAAI9E,WAAW,cAAgB8E,EAAO,iC,CA4BhD,SAAS3B,EAAa2B,GAEpB,OADAD,EAAWC,GACJ/B,EAAa+B,EAAO,EAAI,EAAoB,EAAhBN,EAAQM,G,CAwC7C,SAASX,EAAe5E,GACtB,MAAMxc,EAASwc,EAAMxc,OAAS,EAAI,EAA4B,EAAxByhB,EAAQjF,EAAMxc,QAC9C0b,EAAMsE,EAAahgB,GACzB,IAAK,IAAImD,EAAI,EAAGA,EAAInD,EAAQmD,GAAK,EAC/BuY,EAAIvY,GAAgB,IAAXqZ,EAAMrZ,GAEjB,OAAOuY,C,CAWT,SAASuF,EAAiBzE,EAAO0E,EAAYlhB,GAC3C,GAAIkhB,EAAa,GAAK1E,EAAM2E,WAAaD,EACvC,MAAM,IAAIjE,WAAW,wCAGvB,GAAIT,EAAM2E,WAAaD,GAAclhB,GAAU,GAC7C,MAAM,IAAIid,WAAW,wCAGvB,IAAIvB,EAYJ,OAVEA,OADiBnC,IAAf2H,QAAuC3H,IAAXvZ,EACxB,IAAIwD,WAAWgZ,QACDjD,IAAXvZ,EACH,IAAIwD,WAAWgZ,EAAO0E,GAEtB,IAAI1d,WAAWgZ,EAAO0E,EAAYlhB,GAI1CpC,OAAOqiB,eAAevE,EAAKoE,EAAO/R,WAE3B2N,C,CA4BT,SAAS+F,EAASzhB,GAGhB,GAAIA,GAAU+f,EACZ,MAAM,IAAI9C,WAAW,0DACa8C,EAAa7gB,SAAS,IAAM,UAEhE,OAAgB,EAATc,C,CAuGT,SAASwgB,EAAYtC,EAAQoC,GAC3B,GAAIR,EAAO0B,SAAStD,GAClB,OAAOA,EAAOle,OAEhB,GAAI4gB,YAAYC,OAAO3C,IAAW6C,EAAW7C,EAAQ0C,aACnD,OAAO1C,EAAOiD,WAEhB,GAAsB,iBAAXjD,EACT,MAAM,IAAI9I,UACR,kGAC0B8I,GAI9B,MAAML,EAAMK,EAAOle,OACbgiB,EAAa7M,UAAUnV,OAAS,IAAsB,IAAjBmV,UAAU,GACrD,IAAK6M,GAAqB,IAARnE,EAAW,OAAO,EAGpC,IAAIoE,GAAc,EAClB,OACE,OAAQ3B,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOzC,EACT,IAAK,OACL,IAAK,QACH,OAAOqE,EAAYhE,GAAQle,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAAN6d,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOsE,EAAcjE,GAAQle,OAC/B,QACE,GAAIiiB,EACF,OAAOD,GAAY,EAAKE,EAAYhE,GAAQle,OAE9CsgB,GAAY,GAAKA,GAAUlf,cAC3B6gB,GAAc,E,CAMtB,SAASG,EAAc9B,EAAU+B,EAAOC,GACtC,IAAIL,GAAc,EAclB,SALc1I,IAAV8I,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQrjB,KAAKgB,OACf,MAAO,GAOT,SAJYuZ,IAAR+I,GAAqBA,EAAMtjB,KAAKgB,UAClCsiB,EAAMtjB,KAAKgB,QAGTsiB,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFK/B,IAAUA,EAAW,iBAGhBA,GACN,IAAK,MACH,OAAOiC,EAASvjB,KAAMqjB,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOE,EAAUxjB,KAAMqjB,EAAOC,GAEhC,IAAK,QACH,OAAOG,EAAWzjB,KAAMqjB,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOI,EAAY1jB,KAAMqjB,EAAOC,GAElC,IAAK,SACH,OAAOK,EAAY3jB,KAAMqjB,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOM,EAAa5jB,KAAMqjB,EAAOC,GAEnC,QACE,GAAIL,EAAa,MAAM,IAAI7M,UAAU,qBAAuBkL,GAC5DA,GAAYA,EAAW,IAAIlf,cAC3B6gB,GAAc,E,CAatB,SAASY,EAAM/a,EAAGpD,EAAGkD,GACnB,MAAMzE,EAAI2E,EAAEpD,GACZoD,EAAEpD,GAAKoD,EAAEF,GACTE,EAAEF,GAAKzE,C,CA4IT,SAAS2f,EAAsBha,EAAQia,EAAK7B,EAAYZ,EAAU0C,GAEhE,GAAsB,IAAlBla,EAAO9I,OAAc,OAAO,EAmBhC,GAhB0B,iBAAfkhB,GACTZ,EAAWY,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAa,aACtBA,GAAa,YAGXQ,EADJR,GAAcA,KAGZA,EAAa8B,EAAM,EAAKla,EAAO9I,OAAS,GAItCkhB,EAAa,IAAGA,EAAapY,EAAO9I,OAASkhB,GAC7CA,GAAcpY,EAAO9I,OAAQ,CAC/B,GAAIgjB,EAAK,OAAO,EACX9B,EAAapY,EAAO9I,OAAS,C,MAC7B,GAAIkhB,EAAa,EAAG,CACzB,IAAI8B,EACC,OAAO,EADH9B,EAAa,C,CAUxB,GALmB,iBAAR6B,IACTA,EAAMjD,EAAOhgB,KAAKijB,EAAKzC,IAIrBR,EAAO0B,SAASuB,GAElB,OAAmB,IAAfA,EAAI/iB,QACC,EAEFijB,EAAana,EAAQia,EAAK7B,EAAYZ,EAAU0C,GAClD,GAAmB,iBAARD,EAEhB,OADAA,GAAY,IACgC,mBAAjCvf,WAAWuK,UAAUoP,QAC1B6F,EACKxf,WAAWuK,UAAUoP,QAAQ9C,KAAKvR,EAAQia,EAAK7B,GAE/C1d,WAAWuK,UAAUmV,YAAY7I,KAAKvR,EAAQia,EAAK7B,GAGvD+B,EAAana,EAAQ,CAACia,GAAM7B,EAAYZ,EAAU0C,GAG3D,MAAM,IAAI5N,UAAU,uC,CAGtB,SAAS6N,EAAc3N,EAAKyN,EAAK7B,EAAYZ,EAAU0C,GACrD,IA0BIG,EA1BAC,EAAY,EACZC,EAAY/N,EAAItV,OAChBsjB,EAAYP,EAAI/iB,OAEpB,QAAiBuZ,IAAb+G,IAEe,UADjBA,EAAWiD,OAAOjD,GAAUlf,gBACY,UAAbkf,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIhL,EAAItV,OAAS,GAAK+iB,EAAI/iB,OAAS,EACjC,OAAO,EAETojB,EAAY,EACZC,GAAa,EACbC,GAAa,EACbpC,GAAc,C,CAIlB,SAASsC,EAAM9H,EAAKvY,GAClB,OAAkB,IAAdigB,EACK1H,EAAIvY,GAEJuY,EAAI+H,aAAatgB,EAAIigB,E,CAKhC,GAAIJ,EAAK,CACP,IAAIU,GAAa,EACjB,IAAKP,EAAIjC,EAAYiC,EAAIE,EAAWF,IAClC,GAAIK,EAAKlO,EAAK6N,KAAOK,EAAKT,GAAoB,IAAfW,EAAoB,EAAIP,EAAIO,IAEzD,IADmB,IAAfA,IAAmBA,EAAaP,GAChCA,EAAIO,EAAa,IAAMJ,EAAW,OAAOI,EAAaN,OAEvC,IAAfM,IAAmBP,GAAKA,EAAIO,GAChCA,GAAa,C,MAKjB,IADIxC,EAAaoC,EAAYD,IAAWnC,EAAamC,EAAYC,GAC5DH,EAAIjC,EAAYiC,GAAK,EAAGA,IAAK,CAChC,IAAIQ,GAAQ,EACZ,IAAK,IAAItZ,EAAI,EAAGA,EAAIiZ,EAAWjZ,IAC7B,GAAImZ,EAAKlO,EAAK6N,EAAI9Y,KAAOmZ,EAAKT,EAAK1Y,GAAI,CACrCsZ,GAAQ,EACR,K,CAGJ,GAAIA,EAAO,OAAOR,C,CAItB,OAAO,C,CAeT,SAASS,EAAUlI,EAAKwC,EAAQX,EAAQvd,GACtCud,EAASsG,OAAOtG,IAAW,EAC3B,MAAMuG,EAAYpI,EAAI1b,OAASud,EAC1Bvd,GAGHA,EAAS6jB,OAAO7jB,IACH8jB,IACX9jB,EAAS8jB,GAJX9jB,EAAS8jB,EAQX,MAAMC,EAAS7F,EAAOle,OAKtB,IAAImD,EACJ,IAJInD,EAAS+jB,EAAS,IACpB/jB,EAAS+jB,EAAS,GAGf5gB,EAAI,EAAGA,EAAInD,IAAUmD,EAAG,CAC3B,MAAM6gB,EAASC,SAAS/F,EAAOgG,OAAW,EAAJ/gB,EAAO,GAAI,IACjD,GAAIue,EAAYsC,GAAS,OAAO7gB,EAChCuY,EAAI6B,EAASpa,GAAK6gB,C,CAEpB,OAAO7gB,C,CAGT,SAASghB,EAAWzI,EAAKwC,EAAQX,EAAQvd,GACvC,OAAOokB,EAAWlC,EAAYhE,EAAQxC,EAAI1b,OAASud,GAAS7B,EAAK6B,EAAQvd,E,CAG3E,SAASqkB,EAAY3I,EAAKwC,EAAQX,EAAQvd,GACxC,OAAOokB,EAypCT,SAAuB9H,GACrB,MAAMgI,EAAY,GAClB,IAAK,IAAInhB,EAAI,EAAGA,EAAImZ,EAAItc,SAAUmD,EAEhCmhB,EAAUrkB,KAAyB,IAApBqc,EAAIiI,WAAWphB,IAEhC,OAAOmhB,C,CA/pCWE,CAAatG,GAASxC,EAAK6B,EAAQvd,E,CAGvD,SAASykB,EAAa/I,EAAKwC,EAAQX,EAAQvd,GACzC,OAAOokB,EAAWjC,EAAcjE,GAASxC,EAAK6B,EAAQvd,E,CAGxD,SAAS0kB,EAAWhJ,EAAKwC,EAAQX,EAAQvd,GACvC,OAAOokB,EA0pCT,SAAyB9H,EAAKqI,GAC5B,IAAIzf,EAAG0f,EAAIC,EACX,MAAMP,EAAY,GAClB,IAAK,IAAInhB,EAAI,EAAGA,EAAImZ,EAAItc,WACjB2kB,GAAS,GAAK,KADaxhB,EAGhC+B,EAAIoX,EAAIiI,WAAWphB,GACnByhB,EAAK1f,GAAK,EACV2f,EAAK3f,EAAI,IACTof,EAAUrkB,KAAK4kB,GACfP,EAAUrkB,KAAK2kB,GAGjB,OAAON,C,CAvqCWQ,CAAe5G,EAAQxC,EAAI1b,OAASud,GAAS7B,EAAK6B,EAAQvd,E,CA+E9E,SAAS2iB,EAAajH,EAAK2G,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQ5G,EAAI1b,OACtB+kB,EAAAC,cAAqBtJ,GAErBqJ,EAAAC,cAAqBtJ,EAAIxb,MAAMmiB,EAAOC,G,CAIjD,SAASE,EAAW9G,EAAK2G,EAAOC,GAC9BA,EAAMvY,KAAK2O,IAAIgD,EAAI1b,OAAQsiB,GAC3B,MAAM2C,EAAM,GAEZ,IAAI9hB,EAAIkf,EACR,KAAOlf,EAAImf,GAAK,CACd,MAAM4C,EAAYxJ,EAAIvY,GACtB,IAAIgiB,EAAY,KACZC,EAAmBF,EAAa,IAChC,EACAA,EAAa,IACT,EACAA,EAAa,IACT,EACA,EAEZ,GAAI/hB,EAAIiiB,GAAoB9C,EAAK,CAC/B,IAAI+C,EAAYC,EAAWC,EAAYC,EAEvC,OAAQJ,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EACHG,EAAa3J,EAAIvY,EAAI,GACO,MAAV,IAAbkiB,KACHG,GAA6B,GAAZN,IAAqB,EAAoB,GAAbG,EACzCG,EAAgB,MAClBL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAa3J,EAAIvY,EAAI,GACrBmiB,EAAY5J,EAAIvY,EAAI,GACQ,MAAV,IAAbkiB,IAAsD,MAAV,IAAZC,KACnCE,GAA6B,GAAZN,IAAoB,IAAoB,GAAbG,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAa3J,EAAIvY,EAAI,GACrBmiB,EAAY5J,EAAIvY,EAAI,GACpBoiB,EAAa7J,EAAIvY,EAAI,GACO,MAAV,IAAbkiB,IAAsD,MAAV,IAAZC,IAAsD,MAAV,IAAbC,KAClEC,GAA6B,GAAZN,IAAoB,IAAqB,GAAbG,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5CL,EAAYK,I,CAMJ,OAAdL,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbF,EAAIhlB,KAAKklB,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBF,EAAIhlB,KAAKklB,GACThiB,GAAKiiB,C,CAGP,OAQF,SAAgCK,GAC9B,MAAM5H,EAAM4H,EAAWzlB,OACvB,GAAI6d,GAAO6H,EACT,OAAOnC,OAAOoC,aAAa3I,MAAMuG,OAAQkC,GAI3C,IAAIR,EAAM,GACN9hB,EAAI,EACR,KAAOA,EAAI0a,GACToH,GAAO1B,OAAOoC,aAAa3I,MACzBuG,OACAkC,EAAWvlB,MAAMiD,EAAGA,GAAKuiB,IAG7B,OAAOT,C,CAvBAW,CAAsBX,E,CA1+B/BtF,EAAqBI,EAgBrBD,EAAO+F,oBAUP,WAEE,IACE,MAAMvQ,EAAM,IAAI9R,WAAW,GACrBsiB,EAAQ,CAAEC,IAAK,WAAc,OAAO,E,GAG1C,OAFAnoB,OAAOqiB,eAAe6F,EAAOtiB,WAAWuK,WACxCnQ,OAAOqiB,eAAe3K,EAAKwQ,GACN,KAAdxQ,EAAIyQ,K,CACX,MAAOxY,GACP,OAAO,C,EAnBkByY,GAExBlG,EAAO+F,qBAA0C,oBAAZI,SACb,mBAAlBA,QAAQrH,OACjBqH,QAAQrH,MACN,iJAkBJhhB,OAAOC,eAAeiiB,EAAO/R,UAAW,SAAU,CAChD1P,YAAY,EACZC,IAAK,WACH,GAAKwhB,EAAO0B,SAASxiB,MACrB,OAAOA,KAAK8J,M,IAIhBlL,OAAOC,eAAeiiB,EAAO/R,UAAW,SAAU,CAChD1P,YAAY,EACZC,IAAK,WACH,GAAKwhB,EAAO0B,SAASxiB,MACrB,OAAOA,KAAKkiB,U,IAqChBpB,EAAOoG,SAAW,KA8DlBpG,EAAOhgB,KAAO,SAAU9B,EAAOmiB,EAAkBngB,GAC/C,OAAOqgB,EAAKriB,EAAOmiB,EAAkBngB,E,EAKvCpC,OAAOqiB,eAAeH,EAAO/R,UAAWvK,WAAWuK,WACnDnQ,OAAOqiB,eAAeH,EAAQtc,YA8B9Bsc,EAAOlE,MAAQ,SAAUmG,EAAMoE,EAAM7F,GACnC,OArBF,SAAgByB,EAAMoE,EAAM7F,GAE1B,OADAwB,EAAWC,GACPA,GAAQ,EACH/B,EAAa+B,QAETxI,IAAT4M,EAIyB,iBAAb7F,EACVN,EAAa+B,GAAMoE,KAAKA,EAAM7F,GAC9BN,EAAa+B,GAAMoE,KAAKA,GAEvBnG,EAAa+B,E,CAQbqE,CAAMrE,EAAMoE,EAAM7F,E,EAW3BR,EAAOuG,YAAc,SAAUtE,GAC7B,OAAO3B,EAAY2B,E,EAKrBjC,EAAOwG,gBAAkB,SAAUvE,GACjC,OAAO3B,EAAY2B,E,EA8GrBjC,EAAO0B,SAAW,SAAmB1Z,GACnC,OAAY,MAALA,IAA6B,IAAhBA,EAAEye,WACpBze,IAAMgY,EAAO/R,S,EAGjB+R,EAAO0G,QAAU,SAAkB5c,EAAG9B,GAGpC,GAFIiZ,EAAWnX,EAAGpG,cAAaoG,EAAIkW,EAAOhgB,KAAK8J,EAAGA,EAAE2T,OAAQ3T,EAAEuX,aAC1DJ,EAAWjZ,EAAGtE,cAAasE,EAAIgY,EAAOhgB,KAAKgI,EAAGA,EAAEyV,OAAQzV,EAAEqZ,cACzDrB,EAAO0B,SAAS5X,KAAOkW,EAAO0B,SAAS1Z,GAC1C,MAAM,IAAIsN,UACR,yEAIJ,GAAIxL,IAAM9B,EAAG,OAAO,EAEpB,IAAI3D,EAAIyF,EAAE5J,OACNwE,EAAIsD,EAAE9H,OAEV,IAAK,IAAImD,EAAI,EAAG0a,EAAM9T,KAAK2O,IAAIvU,EAAGK,GAAIrB,EAAI0a,IAAO1a,EAC/C,GAAIyG,EAAEzG,KAAO2E,EAAE3E,GAAI,CACjBgB,EAAIyF,EAAEzG,GACNqB,EAAIsD,EAAE3E,GACN,K,CAIJ,OAAIgB,EAAIK,GAAU,EACdA,EAAIL,EAAU,EACX,C,EAGT2b,EAAOS,WAAa,SAAqBD,GACvC,OAAQiD,OAAOjD,GAAUlf,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,E,EAIb0e,EAAOnE,OAAS,SAAiB8K,EAAMzmB,GACrC,IAAKH,MAAM8hB,QAAQ8E,GACjB,MAAM,IAAIrR,UAAU,+CAGtB,GAAoB,IAAhBqR,EAAKzmB,OACP,OAAO8f,EAAOlE,MAAM,GAGtB,IAAIzY,EACJ,QAAeoW,IAAXvZ,EAEF,IADAA,EAAS,EACJmD,EAAI,EAAGA,EAAIsjB,EAAKzmB,SAAUmD,EAC7BnD,GAAUymB,EAAKtjB,GAAGnD,OAItB,MAAM8I,EAASgX,EAAOuG,YAAYrmB,GAClC,IAAIiT,EAAM,EACV,IAAK9P,EAAI,EAAGA,EAAIsjB,EAAKzmB,SAAUmD,EAAG,CAChC,IAAIuY,EAAM+K,EAAKtjB,GACf,GAAI4d,EAAWrF,EAAKlY,YACdyP,EAAMyI,EAAI1b,OAAS8I,EAAO9I,QACvB8f,EAAO0B,SAAS9F,KAAMA,EAAMoE,EAAOhgB,KAAK4b,IAC7CA,EAAIsF,KAAKlY,EAAQmK,IAEjBzP,WAAWuK,UAAU2Y,IAAIrM,KACvBvR,EACA4S,EACAzI,OAGC,KAAK6M,EAAO0B,SAAS9F,GAC1B,MAAM,IAAItG,UAAU,+CAEpBsG,EAAIsF,KAAKlY,EAAQmK,EAAI,CAEvBA,GAAOyI,EAAI1b,M,CAEb,OAAO8I,C,EAkDTgX,EAAOqB,WAAaX,EA8EpBV,EAAO/R,UAAUwY,WAAY,EAQ7BzG,EAAO/R,UAAU4Y,OAAS,WACxB,MAAM9I,EAAM7e,KAAKgB,OACjB,GAAI6d,EAAM,GAAM,EACd,MAAM,IAAIZ,WAAW,6CAEvB,IAAK,IAAI9Z,EAAI,EAAGA,EAAI0a,EAAK1a,GAAK,EAC5B0f,EAAK7jB,KAAMmE,EAAGA,EAAI,GAEpB,OAAOnE,I,EAGT8gB,EAAO/R,UAAU6Y,OAAS,WACxB,MAAM/I,EAAM7e,KAAKgB,OACjB,GAAI6d,EAAM,GAAM,EACd,MAAM,IAAIZ,WAAW,6CAEvB,IAAK,IAAI9Z,EAAI,EAAGA,EAAI0a,EAAK1a,GAAK,EAC5B0f,EAAK7jB,KAAMmE,EAAGA,EAAI,GAClB0f,EAAK7jB,KAAMmE,EAAI,EAAGA,EAAI,GAExB,OAAOnE,I,EAGT8gB,EAAO/R,UAAU8Y,OAAS,WACxB,MAAMhJ,EAAM7e,KAAKgB,OACjB,GAAI6d,EAAM,GAAM,EACd,MAAM,IAAIZ,WAAW,6CAEvB,IAAK,IAAI9Z,EAAI,EAAGA,EAAI0a,EAAK1a,GAAK,EAC5B0f,EAAK7jB,KAAMmE,EAAGA,EAAI,GAClB0f,EAAK7jB,KAAMmE,EAAI,EAAGA,EAAI,GACtB0f,EAAK7jB,KAAMmE,EAAI,EAAGA,EAAI,GACtB0f,EAAK7jB,KAAMmE,EAAI,EAAGA,EAAI,GAExB,OAAOnE,I,EAGT8gB,EAAO/R,UAAU7O,SAAW,WAC1B,MAAMc,EAAShB,KAAKgB,OACpB,OAAe,IAAXA,EAAqB,GACA,IAArBmV,UAAUnV,OAAqBwiB,EAAUxjB,KAAM,EAAGgB,GAC/CoiB,EAAapF,MAAMhe,KAAMmW,U,EAGlC2K,EAAO/R,UAAU+Y,eAAiBhH,EAAO/R,UAAU7O,SAEnD4gB,EAAO/R,UAAUgZ,OAAS,SAAiBjf,GACzC,IAAKgY,EAAO0B,SAAS1Z,GAAI,MAAM,IAAIsN,UAAU,6BAC7C,OAAIpW,OAAS8I,GACsB,IAA5BgY,EAAO0G,QAAQxnB,KAAM8I,E,EAG9BgY,EAAO/R,UAAUiZ,QAAU,WACzB,IAAI1K,EAAM,GACV,MAAM2K,EAAMvH,EAGZ,OAFApD,EAAMtd,KAAKE,SAAS,MAAO,EAAG+nB,GAAKC,QAAO,UAAY,OAAOC,OACzDnoB,KAAKgB,OAASinB,IAAK3K,GAAO,SACvB,WAAaA,EAAM,G,EAExBsD,IACFE,EAAO/R,UAAU6R,GAAuBE,EAAO/R,UAAUiZ,SAG3DlH,EAAO/R,UAAUyY,QAAU,SAAkB3M,EAAQwI,EAAOC,EAAK8E,EAAWC,GAI1E,GAHItG,EAAWlH,EAAQrW,cACrBqW,EAASiG,EAAOhgB,KAAK+Z,EAAQA,EAAO0D,OAAQ1D,EAAOsH,cAEhDrB,EAAO0B,SAAS3H,GACnB,MAAM,IAAIzE,UACR,wFAC2ByE,GAiB/B,QAbcN,IAAV8I,IACFA,EAAQ,QAEE9I,IAAR+I,IACFA,EAAMzI,EAASA,EAAO7Z,OAAS,QAEfuZ,IAAd6N,IACFA,EAAY,QAEE7N,IAAZ8N,IACFA,EAAUroB,KAAKgB,QAGbqiB,EAAQ,GAAKC,EAAMzI,EAAO7Z,QAAUonB,EAAY,GAAKC,EAAUroB,KAAKgB,OACtE,MAAM,IAAIid,WAAW,sBAGvB,GAAImK,GAAaC,GAAWhF,GAASC,EACnC,OAAO,EAET,GAAI8E,GAAaC,EACf,OAAO,EAET,GAAIhF,GAASC,EACX,OAAO,EAQT,GAAItjB,OAAS6a,EAAQ,OAAO,EAE5B,IAAI1V,GAJJkjB,KAAa,IADbD,KAAe,GAMX5iB,GAPJ8d,KAAS,IADTD,KAAW,GASX,MAAMxE,EAAM9T,KAAK2O,IAAIvU,EAAGK,GAElB8iB,EAAWtoB,KAAKkB,MAAMknB,EAAWC,GACjCE,EAAa1N,EAAO3Z,MAAMmiB,EAAOC,GAEvC,IAAK,IAAInf,EAAI,EAAGA,EAAI0a,IAAO1a,EACzB,GAAImkB,EAASnkB,KAAOokB,EAAWpkB,GAAI,CACjCgB,EAAImjB,EAASnkB,GACbqB,EAAI+iB,EAAWpkB,GACf,K,CAIJ,OAAIgB,EAAIK,GAAU,EACdA,EAAIL,EAAU,EACX,C,EA4HT2b,EAAO/R,UAAUyZ,SAAW,SAAmBzE,EAAK7B,EAAYZ,GAC9D,OAAmD,IAA5CthB,KAAKme,QAAQ4F,EAAK7B,EAAYZ,E,EAGvCR,EAAO/R,UAAUoP,QAAU,SAAkB4F,EAAK7B,EAAYZ,GAC5D,OAAOwC,EAAqB9jB,KAAM+jB,EAAK7B,EAAYZ,GAAU,E,EAG/DR,EAAO/R,UAAUmV,YAAc,SAAsBH,EAAK7B,EAAYZ,GACpE,OAAOwC,EAAqB9jB,KAAM+jB,EAAK7B,EAAYZ,GAAU,E,EA6C/DR,EAAO/R,UAAU2S,MAAQ,SAAgBxC,EAAQX,EAAQvd,EAAQsgB,GAE/D,QAAe/G,IAAXgE,EACF+C,EAAW,OACXtgB,EAAShB,KAAKgB,OACdud,EAAS,OAEJ,QAAehE,IAAXvZ,GAA0C,iBAAXud,EACxC+C,EAAW/C,EACXvd,EAAShB,KAAKgB,OACdud,EAAS,MAEJ,KAAIkK,SAASlK,GAUlB,MAAM,IAAIjc,MACR,2EAVFic,KAAoB,EAChBkK,SAASznB,IACXA,KAAoB,OACHuZ,IAAb+G,IAAwBA,EAAW,UAEvCA,EAAWtgB,EACXA,OAASuZ,EAKV,CAGH,MAAMuK,EAAY9kB,KAAKgB,OAASud,EAGhC,SAFehE,IAAXvZ,GAAwBA,EAAS8jB,KAAW9jB,EAAS8jB,GAErD5F,EAAQle,OAAS,IAAMA,EAAS,GAAKud,EAAS,IAAOA,EAASve,KAAKgB,OACrE,MAAM,IAAIid,WAAW,0CAGlBqD,IAAUA,EAAW,QAE1B,IAAI2B,GAAc,EAClB,OACE,OAAQ3B,GACN,IAAK,MACH,OAAOsD,EAAS5kB,KAAMkf,EAAQX,EAAQvd,GAExC,IAAK,OACL,IAAK,QACH,OAAOmkB,EAAUnlB,KAAMkf,EAAQX,EAAQvd,GAEzC,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOqkB,EAAWrlB,KAAMkf,EAAQX,EAAQvd,GAE1C,IAAK,SAEH,OAAOykB,EAAYzlB,KAAMkf,EAAQX,EAAQvd,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO0kB,EAAU1lB,KAAMkf,EAAQX,EAAQvd,GAEzC,QACE,GAAIiiB,EAAa,MAAM,IAAI7M,UAAU,qBAAuBkL,GAC5DA,GAAY,GAAKA,GAAUlf,cAC3B6gB,GAAc,E,EAKtBnC,EAAO/R,UAAU2Z,OAAS,WACxB,MAAO,CACLhJ,KAAM,SACN9c,KAAM/B,MAAMkO,UAAU7N,MAAMma,KAAKrb,KAAK2oB,MAAQ3oB,KAAM,G,EA2FxD,MAAM0mB,EAAuB,KAoB7B,SAASjD,EAAY/G,EAAK2G,EAAOC,GAC/B,IAAIsF,EAAM,GACVtF,EAAMvY,KAAK2O,IAAIgD,EAAI1b,OAAQsiB,GAE3B,IAAK,IAAInf,EAAIkf,EAAOlf,EAAImf,IAAOnf,EAC7BykB,GAAOrE,OAAOoC,aAAsB,IAATjK,EAAIvY,IAEjC,OAAOykB,C,CAGT,SAASlF,EAAahH,EAAK2G,EAAOC,GAChC,IAAIsF,EAAM,GACVtF,EAAMvY,KAAK2O,IAAIgD,EAAI1b,OAAQsiB,GAE3B,IAAK,IAAInf,EAAIkf,EAAOlf,EAAImf,IAAOnf,EAC7BykB,GAAOrE,OAAOoC,aAAajK,EAAIvY,IAEjC,OAAOykB,C,CAGT,SAASrF,EAAU7G,EAAK2G,EAAOC,GAC7B,MAAMzE,EAAMnC,EAAI1b,SAEXqiB,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMzE,KAAKyE,EAAMzE,GAExC,IAAI9Y,EAAM,GACV,IAAK,IAAI5B,EAAIkf,EAAOlf,EAAImf,IAAOnf,EAC7B4B,GAAO8iB,GAAoBnM,EAAIvY,IAEjC,OAAO4B,C,CAGT,SAAS6d,EAAclH,EAAK2G,EAAOC,GACjC,MAAMrU,EAAQyN,EAAIxb,MAAMmiB,EAAOC,GAC/B,IAAI2C,EAAM,GAEV,IAAK,IAAI9hB,EAAI,EAAGA,EAAI8K,EAAMjO,OAAS,EAAGmD,GAAK,EACzC8hB,GAAO1B,OAAOoC,aAAa1X,EAAM9K,GAAqB,IAAf8K,EAAM9K,EAAI,IAEnD,OAAO8hB,C,CAkCT,SAAS6C,EAAavK,EAAQwK,EAAK/nB,GACjC,GAAIud,EAAU,GAAO,GAAKA,EAAS,EAAG,MAAM,IAAIN,WAAW,sBAC3D,GAAIM,EAASwK,EAAM/nB,EAAQ,MAAM,IAAIid,WAAW,wC,CA0QlD,SAAS+K,EAAUtM,EAAK1d,EAAOuf,EAAQwK,EAAKd,EAAKvO,GAC/C,IAAKoH,EAAO0B,SAAS9F,GAAM,MAAM,IAAItG,UAAU,+CAC/C,GAAIpX,EAAQipB,GAAOjpB,EAAQ0a,EAAK,MAAM,IAAIuE,WAAW,qCACrD,GAAIM,EAASwK,EAAMrM,EAAI1b,OAAQ,MAAM,IAAIid,WAAW,qB,CAgGtD,SAASgL,EAAgBvM,EAAK1d,EAAOuf,EAAQ7E,EAAKuO,GAChDiB,EAAWlqB,EAAO0a,EAAKuO,EAAKvL,EAAK6B,EAAQ,GAEzC,IAAIsH,EAAKhB,OAAO7lB,EAAQmqB,OAAO,aAC/BzM,EAAI6B,KAAYsH,EAChBA,IAAW,EACXnJ,EAAI6B,KAAYsH,EAChBA,IAAW,EACXnJ,EAAI6B,KAAYsH,EAChBA,IAAW,EACXnJ,EAAI6B,KAAYsH,EAChB,IAAID,EAAKf,OAAO7lB,GAASmqB,OAAO,IAAMA,OAAO,aAQ7C,OAPAzM,EAAI6B,KAAYqH,EAChBA,IAAW,EACXlJ,EAAI6B,KAAYqH,EAChBA,IAAW,EACXlJ,EAAI6B,KAAYqH,EAChBA,IAAW,EACXlJ,EAAI6B,KAAYqH,EACTrH,C,CAGT,SAAS6K,EAAgB1M,EAAK1d,EAAOuf,EAAQ7E,EAAKuO,GAChDiB,EAAWlqB,EAAO0a,EAAKuO,EAAKvL,EAAK6B,EAAQ,GAEzC,IAAIsH,EAAKhB,OAAO7lB,EAAQmqB,OAAO,aAC/BzM,EAAI6B,EAAS,GAAKsH,EAClBA,IAAW,EACXnJ,EAAI6B,EAAS,GAAKsH,EAClBA,IAAW,EACXnJ,EAAI6B,EAAS,GAAKsH,EAClBA,IAAW,EACXnJ,EAAI6B,EAAS,GAAKsH,EAClB,IAAID,EAAKf,OAAO7lB,GAASmqB,OAAO,IAAMA,OAAO,aAQ7C,OAPAzM,EAAI6B,EAAS,GAAKqH,EAClBA,IAAW,EACXlJ,EAAI6B,EAAS,GAAKqH,EAClBA,IAAW,EACXlJ,EAAI6B,EAAS,GAAKqH,EAClBA,IAAW,EACXlJ,EAAI6B,GAAUqH,EACPrH,EAAS,C,CAmHlB,SAAS8K,EAAc3M,EAAK1d,EAAOuf,EAAQwK,EAAKd,EAAKvO,GACnD,GAAI6E,EAASwK,EAAMrM,EAAI1b,OAAQ,MAAM,IAAIid,WAAW,sBACpD,GAAIM,EAAS,EAAG,MAAM,IAAIN,WAAW,qB,CAGvC,SAASqL,EAAY5M,EAAK1d,EAAOuf,EAAQgL,EAAcC,GAOrD,OANAxqB,GAASA,EACTuf,KAAoB,EACfiL,GACHH,EAAa3M,EAAK1d,EAAOuf,EAAQ,GAEnCkL,EAAA/H,MAAchF,EAAK1d,EAAOuf,EAAQgL,EAAc,GAAI,GAC7ChL,EAAS,C,CAWlB,SAASmL,EAAahN,EAAK1d,EAAOuf,EAAQgL,EAAcC,GAOtD,OANAxqB,GAASA,EACTuf,KAAoB,EACfiL,GACHH,EAAa3M,EAAK1d,EAAOuf,EAAQ,GAEnCkL,EAAA/H,MAAchF,EAAK1d,EAAOuf,EAAQgL,EAAc,GAAI,GAC7ChL,EAAS,C,CAxkBlBuC,EAAO/R,UAAU7N,MAAQ,SAAgBmiB,EAAOC,GAC9C,MAAMzE,EAAM7e,KAAKgB,QACjBqiB,IAAUA,GAGE,GACVA,GAASxE,GACG,IAAGwE,EAAQ,GACdA,EAAQxE,IACjBwE,EAAQxE,IANVyE,OAAc/I,IAAR+I,EAAoBzE,IAAQyE,GASxB,GACRA,GAAOzE,GACG,IAAGyE,EAAM,GACVA,EAAMzE,IACfyE,EAAMzE,GAGJyE,EAAMD,IAAOC,EAAMD,GAEvB,MAAMsG,EAAS3pB,KAAK0O,SAAS2U,EAAOC,GAIpC,OAFA1kB,OAAOqiB,eAAe0I,EAAQ7I,EAAO/R,WAE9B4a,C,EAWT7I,EAAO/R,UAAU6a,WACjB9I,EAAO/R,UAAU8a,WAAa,SAAqBtL,EAAQuL,EAAYN,GACrEjL,KAAoB,EACpBuL,KAA4B,EACvBN,GAAUV,EAAYvK,EAAQuL,EAAY9pB,KAAKgB,QAEpD,IAAI+iB,EAAM/jB,KAAKue,GACXwL,EAAM,EACN5lB,EAAI,EACR,OAASA,EAAI2lB,IAAeC,GAAO,MACjChG,GAAO/jB,KAAKue,EAASpa,GAAK4lB,EAG5B,OAAOhG,C,EAGTjD,EAAO/R,UAAUib,WACjBlJ,EAAO/R,UAAUkb,WAAa,SAAqB1L,EAAQ2L,EAAYV,GACrEjL,KAAoB,EACpB2L,KAA4B,EACvBV,GACHV,EAAYvK,EAAQ2L,EAAYlqB,KAAKgB,QAGvC,IAAI+iB,EAAM/jB,KAAKue,IAAW2L,GACtBH,EAAM,EACV,KAAOG,EAAa,IAAMH,GAAO,MAC/BhG,GAAO/jB,KAAKue,IAAW2L,GAAcH,EAGvC,OAAOhG,C,EAGTjD,EAAO/R,UAAUob,UACjBrJ,EAAO/R,UAAUuP,UAAY,SAAoBC,EAAQiL,GAGvD,OAFAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QACpChB,KAAKue,E,EAGduC,EAAO/R,UAAUqb,aACjBtJ,EAAO/R,UAAUsb,aAAe,SAAuB9L,EAAQiL,GAG7D,OAFAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QACpChB,KAAKue,GAAWve,KAAKue,EAAS,IAAM,C,EAG7CuC,EAAO/R,UAAUub,aACjBxJ,EAAO/R,UAAU0V,aAAe,SAAuBlG,EAAQiL,GAG7D,OAFAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QACpChB,KAAMue,IAAW,EAAKve,KAAKue,EAAS,E,EAG7CuC,EAAO/R,UAAUwb,aACjBzJ,EAAO/R,UAAU0P,aAAe,SAAuBF,EAAQiL,GAI7D,OAHAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,SAEnChB,KAAMue,GACTve,KAAKue,EAAS,IAAM,EACpBve,KAAKue,EAAS,IAAM,IACD,SAAnBve,KAAKue,EAAS,E,EAGrBuC,EAAO/R,UAAUyb,aACjB1J,EAAO/R,UAAU0b,aAAe,SAAuBlM,EAAQiL,GAI7D,OAHAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QAEpB,SAAhBhB,KAAMue,IACVve,KAAMue,EAAS,IAAM,GACrBve,KAAKue,EAAS,IAAM,EACrBve,KAAKue,EAAS,G,EAGlBuC,EAAO/R,UAAU2b,gBAAkBC,IAAmB,SAA0BpM,GAE9EqM,EADArM,KAAoB,EACG,UACvB,MAAMsM,EAAQ7qB,KAAKue,GACbuM,EAAO9qB,KAAKue,EAAS,QACbhE,IAAVsQ,QAAgCtQ,IAATuQ,GACzBC,EAAYxM,EAAQve,KAAKgB,OAAS,GAGpC,MAAM6kB,EAAKgF,EACQ,IAAjB7qB,OAAOue,GACU,MAAjBve,OAAOue,GACPve,OAAOue,GAAU,GAAK,GAElBqH,EAAK5lB,OAAOue,GACC,IAAjBve,OAAOue,GACU,MAAjBve,OAAOue,GACPuM,EAAO,GAAK,GAEd,OAAO3B,OAAOtD,IAAOsD,OAAOvD,IAAOuD,OAAO,I,IAG5CrI,EAAO/R,UAAUic,gBAAkBL,IAAmB,SAA0BpM,GAE9EqM,EADArM,KAAoB,EACG,UACvB,MAAMsM,EAAQ7qB,KAAKue,GACbuM,EAAO9qB,KAAKue,EAAS,QACbhE,IAAVsQ,QAAgCtQ,IAATuQ,GACzBC,EAAYxM,EAAQve,KAAKgB,OAAS,GAGpC,MAAM4kB,EAAKiF,EAAQ,GAAK,GACL,MAAjB7qB,OAAOue,GACU,IAAjBve,OAAOue,GACPve,OAAOue,GAEHsH,EAAK7lB,OAAOue,GAAU,GAAK,GACd,MAAjBve,OAAOue,GACU,IAAjBve,OAAOue,GACPuM,EAEF,OAAQ3B,OAAOvD,IAAOuD,OAAO,KAAOA,OAAOtD,E,IAG7C/E,EAAO/R,UAAUkc,UAAY,SAAoB1M,EAAQ2M,EAAY1B,GACnEjL,KAAoB,EACpB2M,KAA4B,EACvB1B,GAAUV,EAAYvK,EAAQ2M,EAAYlrB,KAAKgB,QAEpD,IAAI+iB,EAAM/jB,KAAKue,GACXwL,EAAM,EACN5lB,EAAI,EACR,OAASA,EAAI+mB,IAAenB,GAAO,MACjChG,GAAO/jB,KAAKue,EAASpa,GAAK4lB,EAM5B,OAJAA,GAAO,IAEHhG,GAAOgG,IAAKhG,GAAOhZ,KAAKogB,IAAI,EAAG,EAAID,IAEhCnH,C,EAGTjD,EAAO/R,UAAUqc,UAAY,SAAoB7M,EAAQ8M,EAAY7B,GACnEjL,KAAoB,EACpB8M,KAA4B,EACvB7B,GAAUV,EAAYvK,EAAQ8M,EAAYrrB,KAAKgB,QAEpD,IAAImD,EAAIknB,EACJtB,EAAM,EACNhG,EAAM/jB,KAAKue,IAAWpa,GAC1B,KAAOA,EAAI,IAAM4lB,GAAO,MACtBhG,GAAO/jB,KAAKue,IAAWpa,GAAK4lB,EAM9B,OAJAA,GAAO,IAEHhG,GAAOgG,IAAKhG,GAAOhZ,KAAKogB,IAAI,EAAG,EAAIE,IAEhCtH,C,EAGTjD,EAAO/R,UAAUuc,SAAW,SAAmB/M,EAAQiL,GAGrD,OAFAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QACtB,IAAfhB,KAAKue,IACyB,GAA3B,IAAOve,KAAKue,GAAU,GADKve,KAAKue,E,EAI3CuC,EAAO/R,UAAUwc,YAAc,SAAsBhN,EAAQiL,GAC3DjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QAC3C,MAAM+iB,EAAM/jB,KAAKue,GAAWve,KAAKue,EAAS,IAAM,EAChD,OAAc,MAAPwF,EAAuB,WAANA,EAAmBA,C,EAG7CjD,EAAO/R,UAAUyc,YAAc,SAAsBjN,EAAQiL,GAC3DjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QAC3C,MAAM+iB,EAAM/jB,KAAKue,EAAS,GAAMve,KAAKue,IAAW,EAChD,OAAc,MAAPwF,EAAuB,WAANA,EAAmBA,C,EAG7CjD,EAAO/R,UAAU0c,YAAc,SAAsBlN,EAAQiL,GAI3D,OAHAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QAEpChB,KAAMue,GACVve,KAAKue,EAAS,IAAM,EACpBve,KAAKue,EAAS,IAAM,GACpBve,KAAKue,EAAS,IAAM,E,EAGzBuC,EAAO/R,UAAU2c,YAAc,SAAsBnN,EAAQiL,GAI3D,OAHAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QAEpChB,KAAMue,IAAW,GACrBve,KAAKue,EAAS,IAAM,GACpBve,KAAKue,EAAS,IAAM,EACpBve,KAAKue,EAAS,E,EAGnBuC,EAAO/R,UAAU4c,eAAiBhB,IAAmB,SAAyBpM,GAE5EqM,EADArM,KAAoB,EACG,UACvB,MAAMsM,EAAQ7qB,KAAKue,GACbuM,EAAO9qB,KAAKue,EAAS,QACbhE,IAAVsQ,QAAgCtQ,IAATuQ,GACzBC,EAAYxM,EAAQve,KAAKgB,OAAS,GAGpC,MAAM+iB,EAAM/jB,KAAKue,EAAS,GACL,IAAnBve,KAAKue,EAAS,GACK,MAAnBve,KAAKue,EAAS,IACbuM,GAAQ,IAEX,OAAQ3B,OAAOpF,IAAQoF,OAAO,KAC5BA,OAAO0B,EACU,IAAjB7qB,OAAOue,GACU,MAAjBve,OAAOue,GACPve,OAAOue,GAAU,GAAK,G,IAG1BuC,EAAO/R,UAAU6c,eAAiBjB,IAAmB,SAAyBpM,GAE5EqM,EADArM,KAAoB,EACG,UACvB,MAAMsM,EAAQ7qB,KAAKue,GACbuM,EAAO9qB,KAAKue,EAAS,QACbhE,IAAVsQ,QAAgCtQ,IAATuQ,GACzBC,EAAYxM,EAAQve,KAAKgB,OAAS,GAGpC,MAAM+iB,GAAO8G,GAAS,IACH,MAAjB7qB,OAAOue,GACU,IAAjBve,OAAOue,GACPve,OAAOue,GAET,OAAQ4K,OAAOpF,IAAQoF,OAAO,KAC5BA,OAAOnpB,OAAOue,GAAU,GAAK,GACZ,MAAjBve,OAAOue,GACU,IAAjBve,OAAOue,GACPuM,E,IAGJhK,EAAO/R,UAAU8c,YAAc,SAAsBtN,EAAQiL,GAG3D,OAFAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QACpCyoB,EAAAjF,KAAaxkB,KAAMue,GAAQ,EAAM,GAAI,E,EAG9CuC,EAAO/R,UAAU+c,YAAc,SAAsBvN,EAAQiL,GAG3D,OAFAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QACpCyoB,EAAAjF,KAAaxkB,KAAMue,GAAQ,EAAO,GAAI,E,EAG/CuC,EAAO/R,UAAUgd,aAAe,SAAuBxN,EAAQiL,GAG7D,OAFAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QACpCyoB,EAAAjF,KAAaxkB,KAAMue,GAAQ,EAAM,GAAI,E,EAG9CuC,EAAO/R,UAAUid,aAAe,SAAuBzN,EAAQiL,GAG7D,OAFAjL,KAAoB,EACfiL,GAAUV,EAAYvK,EAAQ,EAAGve,KAAKgB,QACpCyoB,EAAAjF,KAAaxkB,KAAMue,GAAQ,EAAO,GAAI,E,EAS/CuC,EAAO/R,UAAUkd,YACjBnL,EAAO/R,UAAUmd,YAAc,SAAsBltB,EAAOuf,EAAQ4N,EAAY3C,GAI9E,GAHAxqB,GAASA,EACTuf,KAAoB,EACpB4N,KAA4B,GACvB3C,EAAU,CAEbR,EAAShpB,KAAMhB,EAAOuf,EAAQ4N,EADbphB,KAAKogB,IAAI,EAAG,EAAIgB,GAAc,EACK,E,CAGtD,IAAIpC,EAAM,EACN5lB,EAAI,EAER,IADAnE,KAAKue,GAAkB,IAARvf,IACNmF,EAAIgoB,IAAepC,GAAO,MACjC/pB,KAAKue,EAASpa,GAAKnF,EAAS+qB,EAAO,IAGrC,OAAOxL,EAAS4N,C,EAGlBrL,EAAO/R,UAAUqd,YACjBtL,EAAO/R,UAAUsd,YAAc,SAAsBrtB,EAAOuf,EAAQ+N,EAAY9C,GAI9E,GAHAxqB,GAASA,EACTuf,KAAoB,EACpB+N,KAA4B,GACvB9C,EAAU,CAEbR,EAAShpB,KAAMhB,EAAOuf,EAAQ+N,EADbvhB,KAAKogB,IAAI,EAAG,EAAImB,GAAc,EACK,E,CAGtD,IAAInoB,EAAImoB,EAAa,EACjBvC,EAAM,EAEV,IADA/pB,KAAKue,EAASpa,GAAa,IAARnF,IACVmF,GAAK,IAAM4lB,GAAO,MACzB/pB,KAAKue,EAASpa,GAAKnF,EAAS+qB,EAAO,IAGrC,OAAOxL,EAAS+N,C,EAGlBxL,EAAO/R,UAAUwd,WACjBzL,EAAO/R,UAAU+N,WAAa,SAAqB9d,EAAOuf,EAAQiL,GAKhE,OAJAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,IAAM,GACtDve,KAAKue,GAAmB,IAARvf,EACTuf,EAAS,C,EAGlBuC,EAAO/R,UAAUyd,cACjB1L,EAAO/R,UAAU0d,cAAgB,SAAwBztB,EAAOuf,EAAQiL,GAMtE,OALAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,MAAQ,GACxDve,KAAKue,GAAmB,IAARvf,EAChBgB,KAAKue,EAAS,GAAMvf,IAAU,EACvBuf,EAAS,C,EAGlBuC,EAAO/R,UAAU2d,cACjB5L,EAAO/R,UAAU4d,cAAgB,SAAwB3tB,EAAOuf,EAAQiL,GAMtE,OALAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,MAAQ,GACxDve,KAAKue,GAAWvf,IAAU,EAC1BgB,KAAKue,EAAS,GAAc,IAARvf,EACbuf,EAAS,C,EAGlBuC,EAAO/R,UAAU6d,cACjB9L,EAAO/R,UAAUiO,cAAgB,SAAwBhe,EAAOuf,EAAQiL,GAQtE,OAPAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,WAAY,GAC5Dve,KAAKue,EAAS,GAAMvf,IAAU,GAC9BgB,KAAKue,EAAS,GAAMvf,IAAU,GAC9BgB,KAAKue,EAAS,GAAMvf,IAAU,EAC9BgB,KAAKue,GAAmB,IAARvf,EACTuf,EAAS,C,EAGlBuC,EAAO/R,UAAU8d,cACjB/L,EAAO/R,UAAU+d,cAAgB,SAAwB9tB,EAAOuf,EAAQiL,GAQtE,OAPAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,WAAY,GAC5Dve,KAAKue,GAAWvf,IAAU,GAC1BgB,KAAKue,EAAS,GAAMvf,IAAU,GAC9BgB,KAAKue,EAAS,GAAMvf,IAAU,EAC9BgB,KAAKue,EAAS,GAAc,IAARvf,EACbuf,EAAS,C,EA+ClBuC,EAAO/R,UAAUge,iBAAmBpC,IAAmB,SAA2B3rB,EAAOuf,EAAS,GAChG,OAAO0K,EAAejpB,KAAMhB,EAAOuf,EAAQ4K,OAAO,GAAIA,OAAO,sB,IAG/DrI,EAAO/R,UAAUie,iBAAmBrC,IAAmB,SAA2B3rB,EAAOuf,EAAS,GAChG,OAAO6K,EAAeppB,KAAMhB,EAAOuf,EAAQ4K,OAAO,GAAIA,OAAO,sB,IAG/DrI,EAAO/R,UAAUke,WAAa,SAAqBjuB,EAAOuf,EAAQ2O,EAAY1D,GAG5E,GAFAxqB,GAASA,EACTuf,KAAoB,GACfiL,EAAU,CACb,MAAM2D,EAAQpiB,KAAKogB,IAAI,EAAG,EAAK+B,EAAc,GAE7ClE,EAAShpB,KAAMhB,EAAOuf,EAAQ2O,EAAYC,EAAQ,GAAIA,E,CAGxD,IAAIhpB,EAAI,EACJ4lB,EAAM,EACNqD,EAAM,EAEV,IADAptB,KAAKue,GAAkB,IAARvf,IACNmF,EAAI+oB,IAAenD,GAAO,MAC7B/qB,EAAQ,GAAa,IAARouB,GAAsC,IAAzBptB,KAAKue,EAASpa,EAAI,KAC9CipB,EAAM,GAERptB,KAAKue,EAASpa,IAAMnF,EAAS+qB,GAAQ,GAAKqD,EAAM,IAGlD,OAAO7O,EAAS2O,C,EAGlBpM,EAAO/R,UAAUse,WAAa,SAAqBruB,EAAOuf,EAAQ+O,EAAY9D,GAG5E,GAFAxqB,GAASA,EACTuf,KAAoB,GACfiL,EAAU,CACb,MAAM2D,EAAQpiB,KAAKogB,IAAI,EAAG,EAAKmC,EAAc,GAE7CtE,EAAShpB,KAAMhB,EAAOuf,EAAQ+O,EAAYH,EAAQ,GAAIA,E,CAGxD,IAAIhpB,EAAImpB,EAAa,EACjBvD,EAAM,EACNqD,EAAM,EAEV,IADAptB,KAAKue,EAASpa,GAAa,IAARnF,IACVmF,GAAK,IAAM4lB,GAAO,MACrB/qB,EAAQ,GAAa,IAARouB,GAAsC,IAAzBptB,KAAKue,EAASpa,EAAI,KAC9CipB,EAAM,GAERptB,KAAKue,EAASpa,IAAMnF,EAAS+qB,GAAQ,GAAKqD,EAAM,IAGlD,OAAO7O,EAAS+O,C,EAGlBxM,EAAO/R,UAAUwe,UAAY,SAAoBvuB,EAAOuf,EAAQiL,GAM9D,OALAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,KAAM,KAClDvf,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtCgB,KAAKue,GAAmB,IAARvf,EACTuf,EAAS,C,EAGlBuC,EAAO/R,UAAUye,aAAe,SAAuBxuB,EAAOuf,EAAQiL,GAMpE,OALAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,OAAQ,OACxDve,KAAKue,GAAmB,IAARvf,EAChBgB,KAAKue,EAAS,GAAMvf,IAAU,EACvBuf,EAAS,C,EAGlBuC,EAAO/R,UAAU0e,aAAe,SAAuBzuB,EAAOuf,EAAQiL,GAMpE,OALAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,OAAQ,OACxDve,KAAKue,GAAWvf,IAAU,EAC1BgB,KAAKue,EAAS,GAAc,IAARvf,EACbuf,EAAS,C,EAGlBuC,EAAO/R,UAAU2e,aAAe,SAAuB1uB,EAAOuf,EAAQiL,GAQpE,OAPAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,YAAY,YAC5Dve,KAAKue,GAAmB,IAARvf,EAChBgB,KAAKue,EAAS,GAAMvf,IAAU,EAC9BgB,KAAKue,EAAS,GAAMvf,IAAU,GAC9BgB,KAAKue,EAAS,GAAMvf,IAAU,GACvBuf,EAAS,C,EAGlBuC,EAAO/R,UAAU4e,aAAe,SAAuB3uB,EAAOuf,EAAQiL,GASpE,OARAxqB,GAASA,EACTuf,KAAoB,EACfiL,GAAUR,EAAShpB,KAAMhB,EAAOuf,EAAQ,EAAG,YAAY,YACxDvf,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5CgB,KAAKue,GAAWvf,IAAU,GAC1BgB,KAAKue,EAAS,GAAMvf,IAAU,GAC9BgB,KAAKue,EAAS,GAAMvf,IAAU,EAC9BgB,KAAKue,EAAS,GAAc,IAARvf,EACbuf,EAAS,C,EAGlBuC,EAAO/R,UAAU6e,gBAAkBjD,IAAmB,SAA0B3rB,EAAOuf,EAAS,GAC9F,OAAO0K,EAAejpB,KAAMhB,EAAOuf,GAAS4K,OAAO,sBAAuBA,OAAO,sB,IAGnFrI,EAAO/R,UAAU8e,gBAAkBlD,IAAmB,SAA0B3rB,EAAOuf,EAAS,GAC9F,OAAO6K,EAAeppB,KAAMhB,EAAOuf,GAAS4K,OAAO,sBAAuBA,OAAO,sB,IAkBnFrI,EAAO/R,UAAU+e,aAAe,SAAuB9uB,EAAOuf,EAAQiL,GACpE,OAAOF,EAAWtpB,KAAMhB,EAAOuf,GAAQ,EAAMiL,E,EAG/C1I,EAAO/R,UAAUgf,aAAe,SAAuB/uB,EAAOuf,EAAQiL,GACpE,OAAOF,EAAWtpB,KAAMhB,EAAOuf,GAAQ,EAAOiL,E,EAahD1I,EAAO/R,UAAUif,cAAgB,SAAwBhvB,EAAOuf,EAAQiL,GACtE,OAAOE,EAAY1pB,KAAMhB,EAAOuf,GAAQ,EAAMiL,E,EAGhD1I,EAAO/R,UAAUkf,cAAgB,SAAwBjvB,EAAOuf,EAAQiL,GACtE,OAAOE,EAAY1pB,KAAMhB,EAAOuf,GAAQ,EAAOiL,E,EAIjD1I,EAAO/R,UAAUiT,KAAO,SAAenH,EAAQqT,EAAa7K,EAAOC,GACjE,IAAKxC,EAAO0B,SAAS3H,GAAS,MAAM,IAAIzE,UAAU,+BAQlD,GAPKiN,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAMtjB,KAAKgB,QAC9BktB,GAAerT,EAAO7Z,SAAQktB,EAAcrT,EAAO7Z,QAClDktB,IAAaA,EAAc,GAC5B5K,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlBxI,EAAO7Z,QAAgC,IAAhBhB,KAAKgB,OAAc,OAAO,EAGrD,GAAIktB,EAAc,EAChB,MAAM,IAAIjQ,WAAW,6BAEvB,GAAIoF,EAAQ,GAAKA,GAASrjB,KAAKgB,OAAQ,MAAM,IAAIid,WAAW,sBAC5D,GAAIqF,EAAM,EAAG,MAAM,IAAIrF,WAAW,2BAG9BqF,EAAMtjB,KAAKgB,SAAQsiB,EAAMtjB,KAAKgB,QAC9B6Z,EAAO7Z,OAASktB,EAAc5K,EAAMD,IACtCC,EAAMzI,EAAO7Z,OAASktB,EAAc7K,GAGtC,MAAMxE,EAAMyE,EAAMD,EAalB,OAXIrjB,OAAS6a,GAAqD,mBAApCrW,WAAWuK,UAAUof,WAEjDnuB,KAAKmuB,WAAWD,EAAa7K,EAAOC,GAEpC9e,WAAWuK,UAAU2Y,IAAIrM,KACvBR,EACA7a,KAAK0O,SAAS2U,EAAOC,GACrB4K,GAIGrP,C,EAOTiC,EAAO/R,UAAUoY,KAAO,SAAepD,EAAKV,EAAOC,EAAKhC,GAEtD,GAAmB,iBAARyC,EAAkB,CAS3B,GARqB,iBAAVV,GACT/B,EAAW+B,EACXA,EAAQ,EACRC,EAAMtjB,KAAKgB,QACa,iBAARsiB,IAChBhC,EAAWgC,EACXA,EAAMtjB,KAAKgB,aAEIuZ,IAAb+G,GAA8C,iBAAbA,EACnC,MAAM,IAAIlL,UAAU,6BAEtB,GAAwB,iBAAbkL,IAA0BR,EAAOS,WAAWD,GACrD,MAAM,IAAIlL,UAAU,qBAAuBkL,GAE7C,GAAmB,IAAfyC,EAAI/iB,OAAc,CACpB,MAAMkd,EAAO6F,EAAIwB,WAAW,IACV,SAAdjE,GAAwBpD,EAAO,KAClB,WAAboD,KAEFyC,EAAM7F,E,MAGc,iBAAR6F,EAChBA,GAAY,IACY,kBAARA,IAChBA,EAAMc,OAAOd,IAIf,GAAIV,EAAQ,GAAKrjB,KAAKgB,OAASqiB,GAASrjB,KAAKgB,OAASsiB,EACpD,MAAM,IAAIrF,WAAW,sBAGvB,GAAIqF,GAAOD,EACT,OAAOrjB,KAQT,IAAImE,EACJ,GANAkf,KAAkB,EAClBC,OAAc/I,IAAR+I,EAAoBtjB,KAAKgB,OAASsiB,IAAQ,EAE3CS,IAAKA,EAAM,GAGG,iBAARA,EACT,IAAK5f,EAAIkf,EAAOlf,EAAImf,IAAOnf,EACzBnE,KAAKmE,GAAK4f,MAEP,CACL,MAAM9U,EAAQ6R,EAAO0B,SAASuB,GAC1BA,EACAjD,EAAOhgB,KAAKijB,EAAKzC,GACfzC,EAAM5P,EAAMjO,OAClB,GAAY,IAAR6d,EACF,MAAM,IAAIzI,UAAU,cAAgB2N,EAClC,qCAEJ,IAAK5f,EAAI,EAAGA,EAAImf,EAAMD,IAASlf,EAC7BnE,KAAKmE,EAAIkf,GAASpU,EAAM9K,EAAI0a,E,CAIhC,OAAO7e,I,EAOT,MAAMouB,EAAS,GACf,SAASC,EAAGC,EAAKC,EAAYC,GAC3BJ,EAAOE,GAAO,cAAwBE,EAmBhCtQ,WACF,OAAOoQ,C,CAGLpQ,SAAMlf,GACRJ,OAAOC,eAAemB,KAAM,OAAQ,CAClCyuB,cAAc,EACdpvB,YAAY,E,MACZL,EACA0vB,UAAU,G,CAIdxuB,WACE,MAAO,GAAGF,KAAK+f,SAASuO,OAAStuB,KAAKyD,S,CAhCxCrC,cACEC,QAEAzC,OAAOC,eAAemB,KAAM,UAAW,CACrChB,MAAOuvB,EAAWvQ,MAAMhe,KAAMmW,WAC9BuY,UAAU,EACVD,cAAc,IAIhBzuB,KAAK+f,KAAO,GAAG/f,KAAK+f,SAASuO,KAG7BtuB,KAAK2uB,aAEE3uB,KAAK+f,I,GAmDlB,SAAS6O,EAAuB7K,GAC9B,IAAIkC,EAAM,GACN9hB,EAAI4f,EAAI/iB,OACZ,MAAMqiB,EAAmB,MAAXU,EAAI,GAAa,EAAI,EACnC,KAAO5f,GAAKkf,EAAQ,EAAGlf,GAAK,EAC1B8hB,EAAM,IAAIlC,EAAI7iB,MAAMiD,EAAI,EAAGA,KAAK8hB,IAElC,MAAO,GAAGlC,EAAI7iB,MAAM,EAAGiD,KAAK8hB,G,CAa9B,SAASiD,EAAYlqB,EAAO0a,EAAKuO,EAAKvL,EAAK6B,EAAQsQ,GACjD,GAAI7vB,EAAQipB,GAAOjpB,EAAQ0a,EAAK,CAC9B,MAAMhU,EAAmB,iBAARgU,EAAmB,IAAM,GAC1C,IAAIoV,EAWJ,MARIA,EAFAD,EAAa,EACH,IAARnV,GAAaA,IAAQyP,OAAO,GACtB,OAAOzjB,YAAYA,QAA2B,GAAlBmpB,EAAa,KAASnpB,IAElD,SAASA,QAA2B,GAAlBmpB,EAAa,GAAS,IAAInpB,iBACtB,GAAlBmpB,EAAa,GAAS,IAAInpB,IAGhC,MAAMgU,IAAMhU,YAAYuiB,IAAMviB,IAElC,IAAI0oB,EAAOW,iBAAiB,QAASD,EAAO9vB,E,EArBtD,SAAsB0d,EAAK6B,EAAQyQ,GACjCpE,EAAerM,EAAQ,eACHhE,IAAhBmC,EAAI6B,SAAsDhE,IAA7BmC,EAAI6B,EAASyQ,IAC5CjE,EAAYxM,EAAQ7B,EAAI1b,QAAUguB,EAAa,G,CAoBjDC,CAAYvS,EAAK6B,EAAQsQ,E,CAG3B,SAASjE,EAAgB5rB,EAAO+gB,GAC9B,GAAqB,iBAAV/gB,EACT,MAAM,IAAIovB,EAAOc,qBAAqBnP,EAAM,SAAU/gB,E,CAI1D,SAAS+rB,EAAa/rB,EAAOgC,EAAQ0e,GACnC,GAAI3U,KAAKC,MAAMhM,KAAWA,EAExB,MADA4rB,EAAe5rB,EAAO0gB,GAChB,IAAI0O,EAAOW,iBAAiBrP,GAAQ,SAAU,aAAc1gB,GAGpE,GAAIgC,EAAS,EACX,MAAM,IAAIotB,EAAOe,yBAGnB,MAAM,IAAIf,EAAOW,iBAAiBrP,GAAQ,SACR,MAAMA,EAAO,EAAI,YAAY1e,IAC7BhC,E,CAtFpCqvB,EAAE,4BACA,SAAUtO,GACR,OAAIA,EACK,GAAGA,gCAGL,gD,GACN9B,YACLoQ,EAAE,wBACA,SAAUtO,EAAM0B,GACd,MAAO,QAAQ1B,4DAA+D0B,G,GAC7ErL,WACLiY,EAAE,oBACA,SAAU/Q,EAAKwR,EAAOM,GACpB,IAAI3X,EAAM,iBAAiB6F,sBACvB+R,EAAWD,EAWf,OAVIvK,OAAOyK,UAAUF,IAAUrkB,KAAKwkB,IAAIH,GAAS,GAAK,GACpDC,EAAWT,EAAsBrK,OAAO6K,IACd,iBAAVA,IAChBC,EAAW9K,OAAO6K,IACdA,EAAQjG,OAAO,IAAMA,OAAO,KAAOiG,IAAUjG,OAAO,IAAMA,OAAO,QACnEkG,EAAWT,EAAsBS,IAEnCA,GAAY,KAEd5X,GAAO,eAAeqX,eAAmBO,IAClC5X,C,GACNwG,YAiEL,MAAMuR,EAAiB,oBAgBvB,SAAStM,EAAahE,EAAQyG,GAE5B,IAAIQ,EADJR,EAAQA,GAAS8J,IAEjB,MAAMzuB,EAASke,EAAOle,OACtB,IAAI0uB,EAAgB,KACpB,MAAMzgB,EAAQ,GAEd,IAAK,IAAI9K,EAAI,EAAGA,EAAInD,IAAUmD,EAAG,CAI/B,GAHAgiB,EAAYjH,EAAOqG,WAAWphB,GAG1BgiB,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAKuJ,EAAe,CAElB,GAAIvJ,EAAY,MAAQ,EAEjBR,GAAS,IAAK,GAAI1W,EAAMhO,KAAK,IAAM,IAAM,KAC9C,Q,CACK,GAAIkD,EAAI,IAAMnD,EAAQ,EAEtB2kB,GAAS,IAAK,GAAI1W,EAAMhO,KAAK,IAAM,IAAM,KAC9C,Q,CAIFyuB,EAAgBvJ,EAEhB,Q,CAIF,GAAIA,EAAY,MAAQ,EACjBR,GAAS,IAAK,GAAI1W,EAAMhO,KAAK,IAAM,IAAM,KAC9CyuB,EAAgBvJ,EAChB,Q,CAIFA,EAAkE,OAArDuJ,EAAgB,OAAU,GAAKvJ,EAAY,M,MAC/CuJ,IAEJ/J,GAAS,IAAK,GAAI1W,EAAMhO,KAAK,IAAM,IAAM,KAMhD,GAHAyuB,EAAgB,KAGZvJ,EAAY,IAAM,CACpB,IAAKR,GAAS,GAAK,EAAG,MACtB1W,EAAMhO,KAAKklB,E,MACN,GAAIA,EAAY,KAAO,CAC5B,IAAKR,GAAS,GAAK,EAAG,MACtB1W,EAAMhO,KACJklB,GAAa,EAAM,IACP,GAAZA,EAAmB,I,MAEhB,GAAIA,EAAY,MAAS,CAC9B,IAAKR,GAAS,GAAK,EAAG,MACtB1W,EAAMhO,KACJklB,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,I,KAEhB,MAAIA,EAAY,SASrB,MAAM,IAAI7jB,MAAM,sBARhB,IAAKqjB,GAAS,GAAK,EAAG,MACtB1W,EAAMhO,KACJklB,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAGgB,C,CAIzC,OAAOlX,C,CA4BT,SAASkU,EAAe7F,GACtB,OAAOyI,EAAA4J,YAxHT,SAAsBrS,GAMpB,IAFAA,GAFAA,EAAMA,EAAI3c,MAAM,KAAK,IAEXwnB,OAAOD,QAAQsH,EAAmB,KAEpCxuB,OAAS,EAAG,MAAO,GAE3B,KAAOsc,EAAItc,OAAS,GAAM,GACxBsc,GAAY,IAEd,OAAOA,C,CA6GmBsS,CAAYtS,G,CAGxC,SAAS8H,EAAYyK,EAAKC,EAAKvR,EAAQvd,GACrC,IAAImD,EACJ,IAAKA,EAAI,EAAGA,EAAInD,KACVmD,EAAKoa,GAAUuR,EAAI9uB,QAAYmD,GAAK0rB,EAAI7uB,UADpBmD,EAExB2rB,EAAI3rB,EAAIoa,GAAUsR,EAAI1rB,GAExB,OAAOA,C,CAMT,SAAS4d,EAAYlC,EAAKH,GACxB,OAAOG,aAAeH,GACZ,MAAPG,GAAkC,MAAnBA,EAAIze,aAA+C,MAAxBye,EAAIze,YAAY2e,MACzDF,EAAIze,YAAY2e,OAASL,EAAKK,I,CAEpC,SAAS2C,EAAa7C,GAEpB,OAAOA,GAAQA,C,CAKjB,MAAMgJ,GAAsB,WAC1B,MAAMkH,EAAW,mBACXC,EAAQ,IAAInvB,MAAM,KACxB,IAAK,IAAIsD,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,MAAM8rB,EAAU,GAAJ9rB,EACZ,IAAK,IAAIkH,EAAI,EAAGA,EAAI,KAAMA,EACxB2kB,EAAMC,EAAM5kB,GAAK0kB,EAAS5rB,GAAK4rB,EAAS1kB,E,CAG5C,OAAO2kB,C,CATmB,GAa5B,SAASrF,GAAoBtR,GAC3B,MAAyB,oBAAX8P,OAAyB+G,GAAyB7W,C,CAGlE,SAAS6W,KACP,MAAM,IAAI5tB,MAAM,uB,mDCtjElB,IACA6tB,EACAC,E,oLADAD,EAiDA,SAAsBE,GACpB,IAAI1X,EAcAwL,EAbAmM,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBha,EAAM,IAAIoa,EAVhB,SAAsBL,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,C,CAS9BE,CAAYN,EAAKG,EAAUC,IAEzCG,EAAU,EAGVC,EAAMJ,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKrM,EAAI,EAAGA,EAAI0M,EAAK1M,GAAK,EACxBxL,EACEmY,EAAWT,EAAI9K,WAAWpB,KAAO,GAChC2M,EAAUT,EAAI9K,WAAWpB,EAAI,KAAO,GACpC2M,EAAUT,EAAI9K,WAAWpB,EAAI,KAAO,EACrC2M,EAAUT,EAAI9K,WAAWpB,EAAI,IAC/B7N,EAAIsa,KAAajY,GAAQ,GAAM,IAC/BrC,EAAIsa,KAAajY,GAAQ,EAAK,IAC9BrC,EAAIsa,KAAmB,IAANjY,EAGK,IAApB8X,IACF9X,EACEmY,EAAWT,EAAI9K,WAAWpB,KAAO,EAChC2M,EAAUT,EAAI9K,WAAWpB,EAAI,KAAO,EACvC7N,EAAIsa,KAAmB,IAANjY,GAGK,IAApB8X,IACF9X,EACEmY,EAAWT,EAAI9K,WAAWpB,KAAO,GAChC2M,EAAUT,EAAI9K,WAAWpB,EAAI,KAAO,EACpC2M,EAAUT,EAAI9K,WAAWpB,EAAI,KAAO,EACvC7N,EAAIsa,KAAajY,GAAQ,EAAK,IAC9BrC,EAAIsa,KAAmB,IAANjY,GAGnB,OAAOrC,C,EA3FT8Z,EAkHA,SAAwBW,GAQtB,IAPA,IAAIpY,EACAqY,EAAMD,EAAM/vB,OACZiwB,EAAaD,EAAM,EACnBtwB,EAAQ,GACRwwB,EAAiB,MAGZC,EAAI,EAAGN,EAAOG,EAAMC,EAAYE,EAAIN,EAAMM,GAAKD,EACtDxwB,EAAMO,KAAKmwB,EAAYL,EAAOI,EAAGA,EAAKD,EAAkBL,EAAOA,EAAQM,EAAID,IAI1D,IAAfD,GACFtY,EAAMoY,EAAMC,EAAM,GAClBtwB,EAAMO,KACJowB,EAAO1Y,GAAO,GACd0Y,EAAO1Y,GAAQ,EAAK,IACpB,OAEsB,IAAfsY,IACTtY,GAAOoY,EAAMC,EAAM,IAAM,GAAKD,EAAMC,EAAM,GAC1CtwB,EAAMO,KACJowB,EAAO1Y,GAAO,IACd0Y,EAAO1Y,GAAQ,EAAK,IACpB0Y,EAAO1Y,GAAQ,EAAK,IACpB,MAIJ,OAAOjY,EAAMS,KAAK,G,EAzIpB,IALA,IAAIkwB,EAAS,GACTP,EAAY,GACZJ,EAA4B,oBAAflsB,WAA6BA,WAAa3D,MAEvDywB,EAAO,mEACFC,EAAI,EAAGC,EAAMF,EAAKtwB,OAAQuwB,EAAIC,IAAOD,EAC5CF,EAAOE,GAAKD,EAAKC,GACjBT,EAAUQ,EAAK/L,WAAWgM,IAAMA,EAQlC,SAAShB,EAASF,GAChB,IAAIoB,EAAMpB,EAAIrvB,OAEd,GAAIywB,EAAM,EAAI,EACZ,MAAM,IAAInvB,MAAM,kDAKlB,IAAIkuB,EAAWH,EAAIlS,QAAQ,KAO3B,OANiB,IAAbqS,IAAiBA,EAAWiB,GAMzB,CAACjB,EAJcA,IAAaiB,EAC/B,EACA,EAAKjB,EAAW,E,CAsEtB,SAASY,EAAaL,EAAO1N,EAAOC,GAGlC,IAFA,IAAI3K,EARoBpD,EASpBmc,EAAS,GACJC,EAAItO,EAAOsO,EAAIrO,EAAKqO,GAAK,EAChChZ,GACGoY,EAAOY,IAAM,GAAM,WACnBZ,EAAOY,EAAI,IAAM,EAAK,QACP,IAAfZ,EAAMY,EAAI,IACbD,EAAOzwB,KAdFowB,GADiB9b,EAeMoD,IAdT,GAAK,IACxB0Y,EAAO9b,GAAO,GAAK,IACnB8b,EAAO9b,GAAO,EAAI,IAClB8b,EAAa,GAAN9b,IAaT,OAAOmc,EAAOvwB,KAAK,G,CAjGrB2vB,EAAU,IAAIvL,WAAW,IAAM,GAC/BuL,EAAU,IAAIvL,WAAW,IAAM,E;yFClB/B,IAAAqM,EAiCAC,E,qKAjCAD,EAAe,SAAU9nB,EAAQyU,EAAQuT,EAAMC,EAAMC,GACnD,IAAIzjB,EAAG3F,EACHqpB,EAAiB,EAAVD,EAAeD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAQ,EACRjuB,EAAI2tB,EAAQE,EAAS,EAAK,EAC1BrsB,EAAImsB,GAAO,EAAK,EAChB5oB,EAAIY,EAAOyU,EAASpa,GAOxB,IALAA,GAAKwB,EAEL4I,EAAIrF,GAAM,IAAOkpB,GAAU,EAC3BlpB,KAAQkpB,EACRA,GAASH,EACFG,EAAQ,EAAG7jB,EAAS,IAALA,EAAYzE,EAAOyU,EAASpa,GAAIA,GAAKwB,EAAGysB,GAAS,GAKvE,IAHAxpB,EAAI2F,GAAM,IAAO6jB,GAAU,EAC3B7jB,KAAQ6jB,EACRA,GAASL,EACFK,EAAQ,EAAGxpB,EAAS,IAALA,EAAYkB,EAAOyU,EAASpa,GAAIA,GAAKwB,EAAGysB,GAAS,GAEvE,GAAU,IAAN7jB,EACFA,EAAI,EAAI4jB,MACH,IAAI5jB,IAAM2jB,EACf,OAAOtpB,EAAIypB,IAAsB5C,KAAdvmB,GAAI,EAAK,GAE5BN,GAAQmC,KAAKogB,IAAI,EAAG4G,GACpBxjB,GAAQ4jB,C,CAEV,OAAQjpB,GAAI,EAAK,GAAKN,EAAImC,KAAKogB,IAAI,EAAG5c,EAAIwjB,E,EAG5CF,EAAgB,SAAU/nB,EAAQ9K,EAAOuf,EAAQuT,EAAMC,EAAMC,GAC3D,IAAIzjB,EAAG3F,EAAG1C,EACN+rB,EAAiB,EAAVD,EAAeD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBI,EAAe,KAATP,EAAchnB,KAAKogB,IAAI,GAAG,IAAOpgB,KAAKogB,IAAI,GAAG,IAAO,EAC1DhnB,EAAI2tB,EAAO,EAAKE,EAAS,EACzBrsB,EAAImsB,EAAO,GAAI,EACf5oB,EAAIlK,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ+L,KAAKwkB,IAAIvwB,GAEbuzB,MAAMvzB,IAAUA,IAAUywB,KAC5B7mB,EAAI2pB,MAAMvzB,GAAS,EAAI,EACvBuP,EAAI2jB,IAEJ3jB,EAAIxD,KAAKC,MAAMD,KAAKynB,IAAIxzB,GAAS+L,KAAK0nB,KAClCzzB,GAASkH,EAAI6E,KAAKogB,IAAI,GAAI5c,IAAM,IAClCA,IACArI,GAAK,IAGLlH,GADEuP,EAAI4jB,GAAS,EACNG,EAAKpsB,EAELosB,EAAKvnB,KAAKogB,IAAI,EAAG,EAAIgH,IAEpBjsB,GAAK,IACfqI,IACArI,GAAK,GAGHqI,EAAI4jB,GAASD,GACftpB,EAAI,EACJ2F,EAAI2jB,GACK3jB,EAAI4jB,GAAS,GACtBvpB,GAAK5J,EAASkH,EAAK,GAAK6E,KAAKogB,IAAI,EAAG4G,GACpCxjB,GAAQ4jB,IAERvpB,EAAI5J,EAAQ+L,KAAKogB,IAAI,EAAGgH,EAAQ,GAAKpnB,KAAKogB,IAAI,EAAG4G,GACjDxjB,EAAI,IAIDwjB,GAAQ,EAAGjoB,EAAOyU,EAASpa,GAAS,IAAJyE,EAAUzE,GAAKwB,EAAGiD,GAAK,IAAKmpB,GAAQ,GAI3E,IAFAxjB,EAAIA,GAAMwjB,EAAQnpB,EAClBqpB,GAAQF,EACDE,EAAO,EAAGnoB,EAAOyU,EAASpa,GAAS,IAAJoK,EAAUpK,GAAKwB,EAAG4I,GAAK,IAAK0jB,GAAQ,GAE1EnoB,EAAOyU,EAASpa,EAAIwB,IAAU,IAAJuD,C,oDCnF3B,SAAUpK,EAAQC,GAIjB,SAAS2zB,EAAQ3O,EAAKtM,GACpB,IAAKsM,EAAK,MAAM,IAAIzhB,MAAMmV,GAAO,mB,CAKnC,SAASkb,EAAUC,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIE,EAAW,WAAY,EAC3BA,EAAShkB,UAAY8jB,EAAU9jB,UAC/B6jB,EAAK7jB,UAAY,IAAIgkB,EACrBH,EAAK7jB,UAAU3N,YAAcwxB,C,CAK/B,SAASI,EAAIC,EAAQhb,EAAMib,GACzB,GAAIF,EAAGG,KAAKF,GACV,OAAOA,EAGTjzB,KAAKozB,SAAW,EAChBpzB,KAAKqzB,MAAQ,KACbrzB,KAAKgB,OAAS,EAGdhB,KAAKszB,IAAM,KAEI,OAAXL,IACW,OAAThb,GAA0B,OAATA,IACnBib,EAASjb,EACTA,EAAO,IAGTjY,KAAKuzB,MAAMN,GAAU,EAAGhb,GAAQ,GAAIib,GAAU,M,CAYlD,IAAIM,EATkB,iBAAX10B,EACTA,EAAOC,QAAUi0B,EAEjBj0B,EAAQi0B,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGS,SAAW,GAGd,IAEID,EADoB,oBAAXE,aAAmD,IAAlBA,OAAOF,OACxCE,OAAOF,OAEPzxB,cAAA,SAAAyxB,MAED,CAAV,MAAOjlB,GAAG,CAgIZ,SAASolB,EAAezU,EAAQ0U,GAC9B,IAAI1tB,EAAIgZ,EAAOqG,WAAWqO,GAE1B,OAAI1tB,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,GAClBA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,QAEXwsB,GAAO,EAAO,wBAA0BxT,E,CAI5C,SAAS2U,EAAc3U,EAAQ4U,EAAYF,GACzC,IAAIxvB,EAAIuvB,EAAczU,EAAQ0U,GAI9B,OAHIA,EAAQ,GAAKE,IACf1vB,GAAKuvB,EAAczU,EAAQ0U,EAAQ,IAAM,GAEpCxvB,C,CA8CT,SAAS2vB,EAAWzW,EAAK+F,EAAOC,EAAKyG,GAInC,IAHA,IAAI3lB,EAAI,EACJ0E,EAAI,EACJ+V,EAAM9T,KAAK2O,IAAI4D,EAAItc,OAAQsiB,GACtBnf,EAAIkf,EAAOlf,EAAI0a,EAAK1a,IAAK,CAChC,IAAI+B,EAAIoX,EAAIiI,WAAWphB,GAAK,GAE5BC,GAAK2lB,EAIHjhB,EADE5C,GAAK,GACHA,EAAI,GAAK,GAGJA,GAAK,GACVA,EAAI,GAAK,GAITA,EAENwsB,EAAOxsB,GAAK,GAAK4C,EAAIihB,EAAK,qBAC1B3lB,GAAK0E,C,CAEP,OAAO1E,C,CA4DT,SAAS4vB,EAAMC,EAAMpE,GACnBoE,EAAKZ,MAAQxD,EAAIwD,MACjBY,EAAKjzB,OAAS6uB,EAAI7uB,OAClBizB,EAAKb,SAAWvD,EAAIuD,SACpBa,EAAKX,IAAMzD,EAAIyD,G,CAsCjB,GA9TAN,EAAGG,KAAO,SAAe5d,GACvB,OAAIA,aAAeyd,GAIJ,OAARzd,GAA+B,iBAARA,GAC5BA,EAAInU,YAAYqyB,WAAaT,EAAGS,UAAY5yB,MAAM8hB,QAAQpN,EAAI8d,M,EAGlEL,EAAG/K,IAAM,SAAciM,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,C,EAGTnB,EAAGtZ,IAAM,SAAcwa,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,C,EAGTnB,EAAGjkB,UAAUwkB,MAAQ,SAAeN,EAAQhb,EAAMib,GAChD,GAAsB,iBAAXD,EACT,OAAOjzB,KAAKq0B,YAAYpB,EAAQhb,EAAMib,GAGxC,GAAsB,iBAAXD,EACT,OAAOjzB,KAAKs0B,WAAWrB,EAAQhb,EAAMib,GAG1B,QAATjb,IACFA,EAAO,IAETya,EAAOza,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIoL,EAAQ,EACM,OAFlB4P,EAASA,EAAO/yB,WAAWgoB,QAAO,OAAS,KAEhC,KACT7E,IACArjB,KAAKozB,SAAW,GAGd/P,EAAQ4P,EAAOjyB,SACJ,KAATiX,EACFjY,KAAKu0B,UAAUtB,EAAQ5P,EAAO6P,IAE9BlzB,KAAKw0B,WAAWvB,EAAQhb,EAAMoL,GACf,OAAX6P,GACFlzB,KAAKs0B,WAAWt0B,KAAKmd,UAAWlF,EAAMib,I,EAM9CF,EAAGjkB,UAAUslB,YAAc,SAAsBpB,EAAQhb,EAAMib,GACzDD,EAAS,IACXjzB,KAAKozB,SAAW,EAChBH,GAAUA,GAERA,EAAS,UACXjzB,KAAKqzB,MAAQ,CAAU,SAATJ,GACdjzB,KAAKgB,OAAS,GACLiyB,EAAS,kBAClBjzB,KAAKqzB,MAAQ,CACF,SAATJ,EACAA,EAAU,SAAa,UAEzBjzB,KAAKgB,OAAS,IAEd0xB,EAAOO,EAAS,kBAChBjzB,KAAKqzB,MAAQ,CACF,SAATJ,EACAA,EAAU,SAAa,SACvB,GAEFjzB,KAAKgB,OAAS,GAGD,OAAXkyB,GAGJlzB,KAAKs0B,WAAWt0B,KAAKmd,UAAWlF,EAAMib,E,EAGxCF,EAAGjkB,UAAUulB,WAAa,SAAqBrB,EAAQhb,EAAMib,GAG3D,GADAR,EAAgC,iBAAlBO,EAAOjyB,QACjBiyB,EAAOjyB,QAAU,EAGnB,OAFAhB,KAAKqzB,MAAQ,CAAC,GACdrzB,KAAKgB,OAAS,EACPhB,KAGTA,KAAKgB,OAAS+J,KAAK0pB,KAAKxB,EAAOjyB,OAAS,GACxChB,KAAKqzB,MAAQ,IAAIxyB,MAAMb,KAAKgB,QAC5B,IAAK,IAAImD,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAC/BnE,KAAKqzB,MAAMlvB,GAAK,EAGlB,IAAIkH,EAAGqpB,EACHC,EAAM,EACV,GAAe,OAAXzB,EACF,IAAK/uB,EAAI8uB,EAAOjyB,OAAS,EAAGqK,EAAI,EAAGlH,GAAK,EAAGA,GAAK,EAC9CuwB,EAAIzB,EAAO9uB,GAAM8uB,EAAO9uB,EAAI,IAAM,EAAM8uB,EAAO9uB,EAAI,IAAM,GACzDnE,KAAKqzB,MAAMhoB,IAAMqpB,GAAMC,EAAO,SAC9B30B,KAAKqzB,MAAMhoB,EAAI,GAAKqpB,IAAQ,GAAKC,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPtpB,UAGC,GAAe,OAAX6nB,EACT,IAAK/uB,EAAI,EAAGkH,EAAI,EAAGlH,EAAI8uB,EAAOjyB,OAAQmD,GAAK,EACzCuwB,EAAIzB,EAAO9uB,GAAM8uB,EAAO9uB,EAAI,IAAM,EAAM8uB,EAAO9uB,EAAI,IAAM,GACzDnE,KAAKqzB,MAAMhoB,IAAMqpB,GAAMC,EAAO,SAC9B30B,KAAKqzB,MAAMhoB,EAAI,GAAKqpB,IAAQ,GAAKC,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPtpB,KAIN,OAAOrL,KAAK40B,Q,EA2Bd5B,EAAGjkB,UAAUwlB,UAAY,SAAoBtB,EAAQ5P,EAAO6P,GAE1DlzB,KAAKgB,OAAS+J,KAAK0pB,MAAMxB,EAAOjyB,OAASqiB,GAAS,GAClDrjB,KAAKqzB,MAAQ,IAAIxyB,MAAMb,KAAKgB,QAC5B,IAAK,IAAImD,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAC/BnE,KAAKqzB,MAAMlvB,GAAK,EAIlB,IAGIuwB,EAHAC,EAAM,EACNtpB,EAAI,EAGR,GAAe,OAAX6nB,EACF,IAAK/uB,EAAI8uB,EAAOjyB,OAAS,EAAGmD,GAAKkf,EAAOlf,GAAK,EAC3CuwB,EAAIb,EAAaZ,EAAQ5P,EAAOlf,IAAMwwB,EACtC30B,KAAKqzB,MAAMhoB,IAAU,SAAJqpB,EACbC,GAAO,IACTA,GAAO,GACPtpB,GAAK,EACLrL,KAAKqzB,MAAMhoB,IAAMqpB,IAAM,IAEvBC,GAAO,OAKX,IAAKxwB,GADa8uB,EAAOjyB,OAASqiB,GACX,GAAM,EAAIA,EAAQ,EAAIA,EAAOlf,EAAI8uB,EAAOjyB,OAAQmD,GAAK,EAC1EuwB,EAAIb,EAAaZ,EAAQ5P,EAAOlf,IAAMwwB,EACtC30B,KAAKqzB,MAAMhoB,IAAU,SAAJqpB,EACbC,GAAO,IACTA,GAAO,GACPtpB,GAAK,EACLrL,KAAKqzB,MAAMhoB,IAAMqpB,IAAM,IAEvBC,GAAO,EAKb30B,KAAK40B,Q,EA8BP5B,EAAGjkB,UAAUylB,WAAa,SAAqBvB,EAAQhb,EAAMoL,GAE3DrjB,KAAKqzB,MAAQ,CAAC,GACdrzB,KAAKgB,OAAS,EAGd,IAAK,IAAI6zB,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAW7c,EAClE4c,IAEFA,IACAC,EAAUA,EAAW7c,EAAQ,EAO7B,IALA,IAAI8c,EAAQ9B,EAAOjyB,OAASqiB,EACxB7hB,EAAMuzB,EAAQF,EACdvR,EAAMvY,KAAK2O,IAAIqb,EAAOA,EAAQvzB,GAAO6hB,EAErC2R,EAAO,EACF7wB,EAAIkf,EAAOlf,EAAImf,EAAKnf,GAAK0wB,EAChCG,EAAOjB,EAAUd,EAAQ9uB,EAAGA,EAAI0wB,EAAS5c,GAEzCjY,KAAKi1B,MAAMH,GACP90B,KAAKqzB,MAAM,GAAK2B,EAAO,SACzBh1B,KAAKqzB,MAAM,IAAM2B,EAEjBh1B,KAAKk1B,OAAOF,GAIhB,GAAY,IAARxzB,EAAW,CACb,IAAI2pB,EAAM,EAGV,IAFA6J,EAAOjB,EAAUd,EAAQ9uB,EAAG8uB,EAAOjyB,OAAQiX,GAEtC9T,EAAI,EAAGA,EAAI3C,EAAK2C,IACnBgnB,GAAOlT,EAGTjY,KAAKi1B,MAAM9J,GACPnrB,KAAKqzB,MAAM,GAAK2B,EAAO,SACzBh1B,KAAKqzB,MAAM,IAAM2B,EAEjBh1B,KAAKk1B,OAAOF,E,CAIhBh1B,KAAK40B,Q,EAGP5B,EAAGjkB,UAAUiT,KAAO,SAAeiS,GACjCA,EAAKZ,MAAQ,IAAIxyB,MAAMb,KAAKgB,QAC5B,IAAK,IAAImD,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAC/B8vB,EAAKZ,MAAMlvB,GAAKnE,KAAKqzB,MAAMlvB,GAE7B8vB,EAAKjzB,OAAShB,KAAKgB,OACnBizB,EAAKb,SAAWpzB,KAAKozB,SACrBa,EAAKX,IAAMtzB,KAAKszB,G,EAUlBN,EAAGjkB,UAAUomB,MAAQ,SAAgBlB,GACnCD,EAAKC,EAAMj0B,K,EAGbgzB,EAAGjkB,UAAUqmB,MAAQ,WACnB,IAAIhxB,EAAI,IAAI4uB,EAAG,MAEf,OADAhzB,KAAKgiB,KAAK5d,GACHA,C,EAGT4uB,EAAGjkB,UAAUsmB,QAAU,SAAkBtS,GACvC,KAAO/iB,KAAKgB,OAAS+hB,GACnB/iB,KAAKqzB,MAAMrzB,KAAKgB,UAAY,EAE9B,OAAOhB,I,EAITgzB,EAAGjkB,UAAU6lB,OAAS,WACpB,KAAO50B,KAAKgB,OAAS,GAAqC,IAAhChB,KAAKqzB,MAAMrzB,KAAKgB,OAAS,IACjDhB,KAAKgB,SAEP,OAAOhB,KAAKs1B,W,EAGdtC,EAAGjkB,UAAUumB,UAAY,WAKvB,OAHoB,IAAhBt1B,KAAKgB,QAAkC,IAAlBhB,KAAKqzB,MAAM,KAClCrzB,KAAKozB,SAAW,GAEXpzB,I,EAKa,oBAAX6gB,QAAgD,mBAAfA,OAAO0U,IACjD,IACEvC,EAAGjkB,UAAU8R,OAAO0U,IAAI,+BAAiCvN,C,CACzD,MAAOwN,GACPxC,EAAGjkB,UAAUiZ,QAAUA,C,MAGzBgL,EAAGjkB,UAAUiZ,QAAUA,EAGzB,SAASA,IACP,OAAQhoB,KAAKszB,IAAM,UAAY,SAAWtzB,KAAKE,SAAS,IAAM,G,CAiChE,IAAIu1B,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAG9D3C,EAAGjkB,UAAU7O,SAAW,SAAmB+X,EAAM2d,GAI/C,IAAI7vB,EACJ,GAHA6vB,EAAoB,EAAVA,GAAe,EAGZ,MAJb3d,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjClS,EAAM,GAGN,IAFA,IAAI4uB,EAAM,EACN3f,EAAQ,EACH7Q,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAAK,CACpC,IAAIuwB,EAAI10B,KAAKqzB,MAAMlvB,GACf6wB,GAA+B,UAAtBN,GAAMC,EAAO3f,IAAmB9U,SAAS,IAGpD6F,EADY,KADdiP,EAAQ0f,IAAQ,GAAKC,EAAQ,WACVxwB,IAAMnE,KAAKgB,OAAS,EAC/By0B,EAAM,EAAIT,EAAKh0B,QAAUg0B,EAAOjvB,EAEhCivB,EAAOjvB,GAEf4uB,GAAO,IACI,KACTA,GAAO,GACPxwB,I,CAMJ,IAHc,IAAV6Q,IACFjP,EAAMiP,EAAM9U,SAAS,IAAM6F,GAEtBA,EAAI/E,OAAS40B,GAAY,GAC9B7vB,EAAM,IAAMA,EAKd,OAHsB,IAAlB/F,KAAKozB,WACPrtB,EAAM,IAAMA,GAEPA,C,CAGT,GAAIkS,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAI4d,EAAYH,EAAWzd,GAEvB6d,EAAYH,EAAW1d,GAC3BlS,EAAM,GACN,IAAIG,EAAIlG,KAAKo1B,QAEb,IADAlvB,EAAEktB,SAAW,GACLltB,EAAE6vB,UAAU,CAClB,IAAI3xB,EAAI8B,EAAE8vB,MAAMF,GAAW51B,SAAS+X,GAMlClS,GALFG,EAAIA,EAAE+vB,MAAMH,IAELC,SAGC3xB,EAAI2B,EAFJ0vB,EAAMI,EAAYzxB,EAAEpD,QAAUoD,EAAI2B,C,CAQ5C,IAHI/F,KAAK+1B,WACPhwB,EAAM,IAAMA,GAEPA,EAAI/E,OAAS40B,GAAY,GAC9B7vB,EAAM,IAAMA,EAKd,OAHsB,IAAlB/F,KAAKozB,WACPrtB,EAAM,IAAMA,GAEPA,C,CAGT2sB,GAAO,EAAO,kC,EAGhBM,EAAGjkB,UAAUmnB,SAAW,WACtB,IAAItN,EAAM5oB,KAAKqzB,MAAM,GASrB,OARoB,IAAhBrzB,KAAKgB,OACP4nB,GAAuB,SAAhB5oB,KAAKqzB,MAAM,GACO,IAAhBrzB,KAAKgB,QAAkC,IAAlBhB,KAAKqzB,MAAM,GAEzCzK,GAAO,iBAAoC,SAAhB5oB,KAAKqzB,MAAM,GAC7BrzB,KAAKgB,OAAS,GACvB0xB,GAAO,EAAO,8CAEU,IAAnB1yB,KAAMozB,UAAmBxK,EAAMA,C,EAGxCoK,EAAGjkB,UAAU2Z,OAAS,WACpB,OAAO1oB,KAAKE,SAAS,GAAI,E,EAGvBszB,IACFR,EAAGjkB,UAAUonB,SAAW,SAAmBjD,EAAQlyB,GACjD,OAAOhB,KAAKo2B,YAAY5C,EAAQN,EAAQlyB,E,GAI5CgyB,EAAGjkB,UAAUoO,QAAU,SAAkB+V,EAAQlyB,GAC/C,OAAOhB,KAAKo2B,YAAYv1B,MAAOqyB,EAAQlyB,E,EA4gBzC,SAASq1B,EAAY9c,EAAMhE,EAAKxP,GAC9BA,EAAIqtB,SAAW7d,EAAI6d,SAAW7Z,EAAK6Z,SACnC,IAAIvU,EAAMtF,EAAMvY,OAASuU,EAAIvU,OAAU,EACvC+E,EAAI/E,OAAS6d,EACbA,EAAMA,EAAO,EAAK,EAGlB,IAAIjU,EAAoB,EAAhB2O,EAAK8Z,MAAM,GACfvqB,EAAmB,EAAfyM,EAAI8d,MAAM,GACdjvB,EAAIwG,EAAI9B,EAER+c,EAAS,SAAJzhB,EACL4Q,EAAQ5Q,EAAK,SAAa,EAC9B2B,EAAIstB,MAAM,GAAKxN,EAEf,IAAK,IAAI5f,EAAI,EAAGA,EAAI4Y,EAAK5Y,IAAK,CAM5B,IAHA,IAAIqwB,EAASthB,IAAU,GACnBuhB,EAAgB,SAARvhB,EACRwhB,EAAOzrB,KAAK2O,IAAIzT,EAAGsP,EAAIvU,OAAS,GAC3BqK,EAAIN,KAAKkd,IAAI,EAAGhiB,EAAIsT,EAAKvY,OAAS,GAAIqK,GAAKmrB,EAAMnrB,IAAK,CAC7D,IAAIlH,EAAI8B,EAAKoF,EAAK,EAIlBirB,IADAlyB,GAFAwG,EAAoB,EAAhB2O,EAAK8Z,MAAMlvB,KACf2E,EAAmB,EAAfyM,EAAI8d,MAAMhoB,IACFkrB,GACG,SAAa,EAC5BA,EAAY,SAAJnyB,C,CAEV2B,EAAIstB,MAAMptB,GAAa,EAARswB,EACfvhB,EAAiB,EAATshB,C,CAQV,OANc,IAAVthB,EACFjP,EAAIstB,MAAMptB,GAAa,EAAR+O,EAEfjP,EAAI/E,SAGC+E,EAAI6uB,Q,CAxiBb5B,EAAGjkB,UAAUqnB,YAAc,SAAsBK,EAAWvD,EAAQlyB,GAClEhB,KAAK40B,SAEL,IAAIzS,EAAaniB,KAAKmiB,aAClBuU,EAAY11B,GAAU+J,KAAKkd,IAAI,EAAG9F,GACtCuQ,EAAOvQ,GAAcuU,EAAW,yCAChChE,EAAOgE,EAAY,EAAG,+BAEtB,IAAIzQ,EAfS,SAAmBwQ,EAAW1T,GAC3C,OAAI0T,EAAUpP,YACLoP,EAAUpP,YAAYtE,GAExB,IAAI0T,EAAU1T,E,CAWX4T,CAASF,EAAWC,GAG9B,OADA12B,KAAK,gBADoB,OAAXkzB,EAAkB,KAAO,OACRjN,EAAK9D,GAC7B8D,C,EAGT+M,EAAGjkB,UAAU6nB,eAAiB,SAAyB3Q,EAAK9D,GAI1D,IAHA,IAAI0U,EAAW,EACX7hB,EAAQ,EAEH7Q,EAAI,EAAG2yB,EAAQ,EAAG3yB,EAAInE,KAAKgB,OAAQmD,IAAK,CAC/C,IAAI6wB,EAAOh1B,KAAMqzB,MAAMlvB,IAAM2yB,EAAS9hB,EAEtCiR,EAAI4Q,KAAqB,IAAP7B,EACd6B,EAAW5Q,EAAIjlB,SACjBilB,EAAI4Q,KAAc7B,GAAS,EAAK,KAE9B6B,EAAW5Q,EAAIjlB,SACjBilB,EAAI4Q,KAAc7B,GAAS,GAAM,KAGrB,IAAV8B,GACED,EAAW5Q,EAAIjlB,SACjBilB,EAAI4Q,KAAc7B,GAAS,GAAM,KAEnChgB,EAAQ,EACR8hB,EAAQ,IAER9hB,EAAQggB,IAAS,GACjB8B,GAAS,E,CAIb,GAAID,EAAW5Q,EAAIjlB,OAGjB,IAFAilB,EAAI4Q,KAAc7hB,EAEX6hB,EAAW5Q,EAAIjlB,QACpBilB,EAAI4Q,KAAc,C,EAKxB7D,EAAGjkB,UAAUgoB,eAAiB,SAAyB9Q,EAAK9D,GAI1D,IAHA,IAAI0U,EAAW5Q,EAAIjlB,OAAS,EACxBgU,EAAQ,EAEH7Q,EAAI,EAAG2yB,EAAQ,EAAG3yB,EAAInE,KAAKgB,OAAQmD,IAAK,CAC/C,IAAI6wB,EAAOh1B,KAAMqzB,MAAMlvB,IAAM2yB,EAAS9hB,EAEtCiR,EAAI4Q,KAAqB,IAAP7B,EACd6B,GAAY,IACd5Q,EAAI4Q,KAAc7B,GAAS,EAAK,KAE9B6B,GAAY,IACd5Q,EAAI4Q,KAAc7B,GAAS,GAAM,KAGrB,IAAV8B,GACED,GAAY,IACd5Q,EAAI4Q,KAAc7B,GAAS,GAAM,KAEnChgB,EAAQ,EACR8hB,EAAQ,IAER9hB,EAAQggB,IAAS,GACjB8B,GAAS,E,CAIb,GAAID,GAAY,EAGd,IAFA5Q,EAAI4Q,KAAc7hB,EAEX6hB,GAAY,GACjB5Q,EAAI4Q,KAAc,C,EAKpB9rB,KAAKisB,MACPhE,EAAGjkB,UAAUkoB,WAAa,SAAqBvC,GAC7C,OAAO,GAAK3pB,KAAKisB,MAAMtC,E,EAGzB1B,EAAGjkB,UAAUkoB,WAAa,SAAqBvC,GAC7C,IAAIvpB,EAAIupB,EACJtwB,EAAI,EAiBR,OAhBI+G,GAAK,OACP/G,GAAK,GACL+G,KAAO,IAELA,GAAK,KACP/G,GAAK,EACL+G,KAAO,GAELA,GAAK,IACP/G,GAAK,EACL+G,KAAO,GAELA,GAAK,IACP/G,GAAK,EACL+G,KAAO,GAEF/G,EAAI+G,C,EAIf6nB,EAAGjkB,UAAUmoB,UAAY,SAAoBxC,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIvpB,EAAIupB,EACJtwB,EAAI,EAoBR,OAnBqB,IAAZ,KAAJ+G,KACH/G,GAAK,GACL+G,KAAO,IAEU,IAAV,IAAJA,KACH/G,GAAK,EACL+G,KAAO,GAES,IAAT,GAAJA,KACH/G,GAAK,EACL+G,KAAO,GAES,IAAT,EAAJA,KACH/G,GAAK,EACL+G,KAAO,GAES,IAAT,EAAJA,IACH/G,IAEKA,C,EAIT4uB,EAAGjkB,UAAUooB,UAAY,WACvB,IAAIzC,EAAI10B,KAAKqzB,MAAMrzB,KAAKgB,OAAS,GAC7B4kB,EAAK5lB,KAAKi3B,WAAWvC,GACzB,OAA2B,IAAnB10B,KAAKgB,OAAS,GAAU4kB,C,EAiBlCoN,EAAGjkB,UAAUqoB,SAAW,WACtB,GAAIp3B,KAAK+1B,SAAU,OAAO,EAG1B,IADA,IAAI3xB,EAAI,EACCD,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAAK,CACpC,IAAI2E,EAAI9I,KAAKk3B,UAAUl3B,KAAKqzB,MAAMlvB,IAElC,GADAC,GAAK0E,EACK,KAANA,EAAU,K,CAEhB,OAAO1E,C,EAGT4uB,EAAGjkB,UAAUoT,WAAa,WACxB,OAAOpX,KAAK0pB,KAAKz0B,KAAKm3B,YAAc,E,EAGtCnE,EAAGjkB,UAAUsoB,OAAS,SAAiBC,GACrC,OAAsB,IAAlBt3B,KAAKozB,SACApzB,KAAKuvB,MAAMgI,MAAMD,GAAOE,MAAM,GAEhCx3B,KAAKo1B,O,EAGdpC,EAAGjkB,UAAU0oB,SAAW,SAAmBH,GACzC,OAAIt3B,KAAK03B,MAAMJ,EAAQ,GACdt3B,KAAK23B,KAAKL,GAAOE,MAAM,GAAGI,OAE5B53B,KAAKo1B,O,EAGdpC,EAAGjkB,UAAU8oB,MAAQ,WACnB,OAAyB,IAAlB73B,KAAKozB,Q,EAIdJ,EAAGjkB,UAAU+oB,IAAM,WACjB,OAAO93B,KAAKo1B,QAAQwC,M,EAGtB5E,EAAGjkB,UAAU6oB,KAAO,WAKlB,OAJK53B,KAAK+1B,WACR/1B,KAAKozB,UAAY,GAGZpzB,I,EAITgzB,EAAGjkB,UAAUgpB,KAAO,SAAexiB,GACjC,KAAOvV,KAAKgB,OAASuU,EAAIvU,QACvBhB,KAAKqzB,MAAMrzB,KAAKgB,UAAY,EAG9B,IAAK,IAAImD,EAAI,EAAGA,EAAIoR,EAAIvU,OAAQmD,IAC9BnE,KAAKqzB,MAAMlvB,GAAKnE,KAAKqzB,MAAMlvB,GAAKoR,EAAI8d,MAAMlvB,GAG5C,OAAOnE,KAAK40B,Q,EAGd5B,EAAGjkB,UAAUipB,IAAM,SAAcziB,GAE/B,OADAmd,EAA0C,IAAlC1yB,KAAKozB,SAAW7d,EAAI6d,WACrBpzB,KAAK+3B,KAAKxiB,E,EAInByd,EAAGjkB,UAAUkpB,GAAK,SAAa1iB,GAC7B,OAAIvV,KAAKgB,OAASuU,EAAIvU,OAAehB,KAAKo1B,QAAQ4C,IAAIziB,GAC/CA,EAAI6f,QAAQ4C,IAAIh4B,K,EAGzBgzB,EAAGjkB,UAAUmpB,IAAM,SAAc3iB,GAC/B,OAAIvV,KAAKgB,OAASuU,EAAIvU,OAAehB,KAAKo1B,QAAQ2C,KAAKxiB,GAChDA,EAAI6f,QAAQ2C,KAAK/3B,K,EAI1BgzB,EAAGjkB,UAAUopB,MAAQ,SAAgB5iB,GAEnC,IAAIzM,EAEFA,EADE9I,KAAKgB,OAASuU,EAAIvU,OAChBuU,EAEAvV,KAGN,IAAK,IAAImE,EAAI,EAAGA,EAAI2E,EAAE9H,OAAQmD,IAC5BnE,KAAKqzB,MAAMlvB,GAAKnE,KAAKqzB,MAAMlvB,GAAKoR,EAAI8d,MAAMlvB,GAK5C,OAFAnE,KAAKgB,OAAS8H,EAAE9H,OAEThB,KAAK40B,Q,EAGd5B,EAAGjkB,UAAUqpB,KAAO,SAAe7iB,GAEjC,OADAmd,EAA0C,IAAlC1yB,KAAKozB,SAAW7d,EAAI6d,WACrBpzB,KAAKm4B,MAAM5iB,E,EAIpByd,EAAGjkB,UAAUspB,IAAM,SAAc9iB,GAC/B,OAAIvV,KAAKgB,OAASuU,EAAIvU,OAAehB,KAAKo1B,QAAQgD,KAAK7iB,GAChDA,EAAI6f,QAAQgD,KAAKp4B,K,EAG1BgzB,EAAGjkB,UAAUupB,KAAO,SAAe/iB,GACjC,OAAIvV,KAAKgB,OAASuU,EAAIvU,OAAehB,KAAKo1B,QAAQ+C,MAAM5iB,GACjDA,EAAI6f,QAAQ+C,MAAMn4B,K,EAI3BgzB,EAAGjkB,UAAUwpB,MAAQ,SAAgBhjB,GAEnC,IAAI3K,EACA9B,EACA9I,KAAKgB,OAASuU,EAAIvU,QACpB4J,EAAI5K,KACJ8I,EAAIyM,IAEJ3K,EAAI2K,EACJzM,EAAI9I,MAGN,IAAK,IAAImE,EAAI,EAAGA,EAAI2E,EAAE9H,OAAQmD,IAC5BnE,KAAKqzB,MAAMlvB,GAAKyG,EAAEyoB,MAAMlvB,GAAK2E,EAAEuqB,MAAMlvB,GAGvC,GAAInE,OAAS4K,EACX,KAAOzG,EAAIyG,EAAE5J,OAAQmD,IACnBnE,KAAKqzB,MAAMlvB,GAAKyG,EAAEyoB,MAAMlvB,GAM5B,OAFAnE,KAAKgB,OAAS4J,EAAE5J,OAEThB,KAAK40B,Q,EAGd5B,EAAGjkB,UAAUypB,KAAO,SAAejjB,GAEjC,OADAmd,EAA0C,IAAlC1yB,KAAKozB,SAAW7d,EAAI6d,WACrBpzB,KAAKu4B,MAAMhjB,E,EAIpByd,EAAGjkB,UAAU0pB,IAAM,SAAcljB,GAC/B,OAAIvV,KAAKgB,OAASuU,EAAIvU,OAAehB,KAAKo1B,QAAQoD,KAAKjjB,GAChDA,EAAI6f,QAAQoD,KAAKx4B,K,EAG1BgzB,EAAGjkB,UAAU2pB,KAAO,SAAenjB,GACjC,OAAIvV,KAAKgB,OAASuU,EAAIvU,OAAehB,KAAKo1B,QAAQmD,MAAMhjB,GACjDA,EAAI6f,QAAQmD,MAAMv4B,K,EAI3BgzB,EAAGjkB,UAAUwoB,MAAQ,SAAgBD,GACnC5E,EAAwB,iBAAV4E,GAAsBA,GAAS,GAE7C,IAAIqB,EAAsC,EAAxB5tB,KAAK0pB,KAAK6C,EAAQ,IAChCsB,EAAWtB,EAAQ,GAGvBt3B,KAAKq1B,QAAQsD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAIx0B,EAAI,EAAGA,EAAIw0B,EAAax0B,IAC/BnE,KAAKqzB,MAAMlvB,GAAsB,UAAhBnE,KAAKqzB,MAAMlvB,GAS9B,OALIy0B,EAAW,IACb54B,KAAKqzB,MAAMlvB,IAAMnE,KAAKqzB,MAAMlvB,GAAM,UAAc,GAAKy0B,GAIhD54B,KAAK40B,Q,EAGd5B,EAAGjkB,UAAU4oB,KAAO,SAAeL,GACjC,OAAOt3B,KAAKo1B,QAAQmC,MAAMD,E,EAI5BtE,EAAGjkB,UAAU8pB,KAAO,SAAeC,EAAK/U,GACtC2O,EAAsB,iBAARoG,GAAoBA,GAAO,GAEzC,IAAInE,EAAMmE,EAAO,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARA94B,KAAKq1B,QAAQV,EAAM,GAGjB30B,KAAKqzB,MAAMsB,GADT5Q,EACgB/jB,KAAKqzB,MAAMsB,GAAQ,GAAKoE,EAExB/4B,KAAKqzB,MAAMsB,KAAS,GAAKoE,GAGtC/4B,KAAK40B,Q,EAId5B,EAAGjkB,UAAUiqB,KAAO,SAAezjB,GACjC,IAAInR,EAkBAwG,EAAG9B,EAfP,GAAsB,IAAlB9I,KAAKozB,UAAmC,IAAjB7d,EAAI6d,SAI7B,OAHApzB,KAAKozB,SAAW,EAChBhvB,EAAIpE,KAAKi5B,KAAK1jB,GACdvV,KAAKozB,UAAY,EACVpzB,KAAKs1B,YAGP,GAAsB,IAAlBt1B,KAAKozB,UAAmC,IAAjB7d,EAAI6d,SAIpC,OAHA7d,EAAI6d,SAAW,EACfhvB,EAAIpE,KAAKi5B,KAAK1jB,GACdA,EAAI6d,SAAW,EACRhvB,EAAEkxB,YAKPt1B,KAAKgB,OAASuU,EAAIvU,QACpB4J,EAAI5K,KACJ8I,EAAIyM,IAEJ3K,EAAI2K,EACJzM,EAAI9I,MAIN,IADA,IAAIgV,EAAQ,EACH7Q,EAAI,EAAGA,EAAI2E,EAAE9H,OAAQmD,IAC5BC,GAAkB,EAAbwG,EAAEyoB,MAAMlvB,KAAwB,EAAb2E,EAAEuqB,MAAMlvB,IAAU6Q,EAC1ChV,KAAKqzB,MAAMlvB,GAAS,SAAJC,EAChB4Q,EAAQ5Q,IAAM,GAEhB,KAAiB,IAAV4Q,GAAe7Q,EAAIyG,EAAE5J,OAAQmD,IAClCC,GAAkB,EAAbwG,EAAEyoB,MAAMlvB,IAAU6Q,EACvBhV,KAAKqzB,MAAMlvB,GAAS,SAAJC,EAChB4Q,EAAQ5Q,IAAM,GAIhB,GADApE,KAAKgB,OAAS4J,EAAE5J,OACF,IAAVgU,EACFhV,KAAKqzB,MAAMrzB,KAAKgB,QAAUgU,EAC1BhV,KAAKgB,cAEA,GAAI4J,IAAM5K,KACf,KAAOmE,EAAIyG,EAAE5J,OAAQmD,IACnBnE,KAAKqzB,MAAMlvB,GAAKyG,EAAEyoB,MAAMlvB,GAI5B,OAAOnE,I,EAITgzB,EAAGjkB,UAAUnO,IAAM,SAAc2U,GAC/B,IAAI0Q,EACJ,OAAqB,IAAjB1Q,EAAI6d,UAAoC,IAAlBpzB,KAAKozB,UAC7B7d,EAAI6d,SAAW,EACfnN,EAAMjmB,KAAKotB,IAAI7X,GACfA,EAAI6d,UAAY,EACTnN,GACmB,IAAjB1Q,EAAI6d,UAAoC,IAAlBpzB,KAAKozB,UACpCpzB,KAAKozB,SAAW,EAChBnN,EAAM1Q,EAAI6X,IAAIptB,MACdA,KAAKozB,SAAW,EACTnN,GAGLjmB,KAAKgB,OAASuU,EAAIvU,OAAehB,KAAKo1B,QAAQ4D,KAAKzjB,GAEhDA,EAAI6f,QAAQ4D,KAAKh5B,K,EAI1BgzB,EAAGjkB,UAAUkqB,KAAO,SAAe1jB,GAEjC,GAAqB,IAAjBA,EAAI6d,SAAgB,CACtB7d,EAAI6d,SAAW,EACf,IAAIhvB,EAAIpE,KAAKg5B,KAAKzjB,GAElB,OADAA,EAAI6d,SAAW,EACRhvB,EAAEkxB,W,CAGJ,GAAsB,IAAlBt1B,KAAKozB,SAId,OAHApzB,KAAKozB,SAAW,EAChBpzB,KAAKg5B,KAAKzjB,GACVvV,KAAKozB,SAAW,EACTpzB,KAAKs1B,YAId,IAWI1qB,EAAG9B,EAXHsrB,EAAMp0B,KAAKo0B,IAAI7e,GAGnB,GAAY,IAAR6e,EAIF,OAHAp0B,KAAKozB,SAAW,EAChBpzB,KAAKgB,OAAS,EACdhB,KAAKqzB,MAAM,GAAK,EACTrzB,KAKLo0B,EAAM,GACRxpB,EAAI5K,KACJ8I,EAAIyM,IAEJ3K,EAAI2K,EACJzM,EAAI9I,MAIN,IADA,IAAIgV,EAAQ,EACH7Q,EAAI,EAAGA,EAAI2E,EAAE9H,OAAQmD,IAE5B6Q,GADA5Q,GAAkB,EAAbwG,EAAEyoB,MAAMlvB,KAAwB,EAAb2E,EAAEuqB,MAAMlvB,IAAU6Q,IAC7B,GACbhV,KAAKqzB,MAAMlvB,GAAS,SAAJC,EAElB,KAAiB,IAAV4Q,GAAe7Q,EAAIyG,EAAE5J,OAAQmD,IAElC6Q,GADA5Q,GAAkB,EAAbwG,EAAEyoB,MAAMlvB,IAAU6Q,IACV,GACbhV,KAAKqzB,MAAMlvB,GAAS,SAAJC,EAIlB,GAAc,IAAV4Q,GAAe7Q,EAAIyG,EAAE5J,QAAU4J,IAAM5K,KACvC,KAAOmE,EAAIyG,EAAE5J,OAAQmD,IACnBnE,KAAKqzB,MAAMlvB,GAAKyG,EAAEyoB,MAAMlvB,GAU5B,OANAnE,KAAKgB,OAAS+J,KAAKkd,IAAIjoB,KAAKgB,OAAQmD,GAEhCyG,IAAM5K,OACRA,KAAKozB,SAAW,GAGXpzB,KAAK40B,Q,EAId5B,EAAGjkB,UAAUqe,IAAM,SAAc7X,GAC/B,OAAOvV,KAAKo1B,QAAQ6D,KAAK1jB,E,EA+C3B,IAAI2jB,EAAc,SAAsB3f,EAAMhE,EAAKxP,GACjD,IAII8f,EACAsT,EACAvT,EANAhb,EAAI2O,EAAK8Z,MACTvqB,EAAIyM,EAAI8d,MACRltB,EAAIJ,EAAIstB,MACRntB,EAAI,EAIJkzB,EAAY,EAAPxuB,EAAE,GACP6I,EAAW,KAAL2lB,EACNnmB,EAAMmmB,IAAO,GACbC,EAAY,EAAPzuB,EAAE,GACP8I,EAAW,KAAL2lB,EACNnmB,EAAMmmB,IAAO,GACbC,EAAY,EAAP1uB,EAAE,GACP+I,EAAW,KAAL2lB,EACNnmB,EAAMmmB,IAAO,GACbC,EAAY,EAAP3uB,EAAE,GACPgJ,EAAW,KAAL2lB,EACNnmB,EAAMmmB,IAAO,GACbC,EAAY,EAAP5uB,EAAE,GACPiJ,EAAW,KAAL2lB,EACNnmB,EAAMmmB,IAAO,GACbC,EAAY,EAAP7uB,EAAE,GACPkJ,EAAW,KAAL2lB,EACNnmB,EAAMmmB,IAAO,GACbC,EAAY,EAAP9uB,EAAE,GACPmJ,EAAW,KAAL2lB,EACNnmB,EAAMmmB,IAAO,GACbC,EAAY,EAAP/uB,EAAE,GACPoJ,EAAW,KAAL2lB,EACNnmB,EAAMmmB,IAAO,GACbC,EAAY,EAAPhvB,EAAE,GACPivB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnvB,EAAE,GACPovB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACb5sB,EAAY,EAAPrE,EAAE,GACPsJ,EAAW,KAALjF,EACNyE,EAAMzE,IAAO,GACbC,EAAY,EAAPtE,EAAE,GACPuJ,EAAW,KAALjF,EACNyE,EAAMzE,IAAO,GACbC,EAAY,EAAPvE,EAAE,GACPwJ,EAAW,KAALjF,EACNyE,EAAMzE,IAAO,GACbC,EAAY,EAAPxE,EAAE,GACPyJ,EAAW,KAALjF,EACNyE,EAAMzE,IAAO,GACbC,EAAY,EAAPzE,EAAE,GACP0J,EAAW,KAALjF,EACNyE,GAAMzE,IAAO,GACbC,GAAY,EAAP1E,EAAE,GACP2J,GAAW,KAALjF,GACNyE,GAAMzE,KAAO,GACbC,GAAY,EAAP3E,EAAE,GACP4J,GAAW,KAALjF,GACNyE,GAAMzE,KAAO,GACbC,GAAY,EAAP5E,EAAE,GACP6J,GAAW,KAALjF,GACNyE,GAAMzE,KAAO,GACbC,GAAY,EAAP7E,EAAE,GACPoxB,GAAW,KAALvsB,GACNwsB,GAAMxsB,KAAO,GACbC,GAAY,EAAP9E,EAAE,GACPsxB,GAAW,KAALxsB,GACNysB,GAAMzsB,KAAO,GAEjB7H,EAAIqtB,SAAW7Z,EAAK6Z,SAAW7d,EAAI6d,SACnCrtB,EAAI/E,OAAS,GAMb,IAAIs5B,IAAOp0B,GAJX2f,EAAK9a,KAAKwvB,KAAK9mB,EAAKrB,IAIE,KAAa,MAFnC+mB,GADAA,EAAMpuB,KAAKwvB,KAAK9mB,EAAK7B,IACR7G,KAAKwvB,KAAKtnB,EAAKb,GAAQ,KAEU,IAAO,EACrDlM,IAFA0f,EAAK7a,KAAKwvB,KAAKtnB,EAAKrB,KAEPunB,IAAQ,IAAO,IAAMmB,KAAO,IAAO,EAChDA,IAAM,SAENzU,EAAK9a,KAAKwvB,KAAK7mB,EAAKtB,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAK7mB,EAAK9B,IACR7G,KAAKwvB,KAAKrnB,EAAKd,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAKrnB,EAAKtB,GAKpB,IAAI4oB,IAAOt0B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAKpB,GAAQ,GAIZ,KAAa,MAFnC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAK5B,GAAQ,GACvB9G,KAAKwvB,KAAKtnB,EAAKZ,GAAQ,KAEU,IAAO,EACrDnM,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKpB,GAAQ,IAErBsnB,IAAQ,IAAO,IAAMqB,KAAO,IAAO,EAChDA,IAAM,SAEN3U,EAAK9a,KAAKwvB,KAAK5mB,EAAKvB,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAK5mB,EAAK/B,IACR7G,KAAKwvB,KAAKpnB,EAAKf,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAKpnB,EAAKvB,GACpBiU,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAKrB,GAAQ,EAElC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAK7B,GAAQ,GACvB9G,KAAKwvB,KAAKrnB,EAAKb,GAAQ,EACpCuT,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKrB,GAAQ,EAKlC,IAAI4oB,IAAOv0B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAKnB,GAAQ,GAIZ,KAAa,MAFnC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAK3B,GAAQ,GACvB/G,KAAKwvB,KAAKtnB,EAAKX,GAAQ,KAEU,IAAO,EACrDpM,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKnB,GAAQ,IAErBqnB,IAAQ,IAAO,IAAMsB,KAAO,IAAO,EAChDA,IAAM,SAEN5U,EAAK9a,KAAKwvB,KAAK3mB,EAAKxB,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAK3mB,EAAKhC,IACR7G,KAAKwvB,KAAKnnB,EAAKhB,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAKnnB,EAAKxB,GACpBiU,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKtB,GAAQ,EAElC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAK9B,GAAQ,GACvB9G,KAAKwvB,KAAKpnB,EAAKd,GAAQ,EACpCuT,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKtB,GAAQ,EAClCgU,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAKpB,GAAQ,EAElC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAK5B,GAAQ,GACvB/G,KAAKwvB,KAAKrnB,EAAKZ,GAAQ,EACpCsT,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKpB,GAAQ,EAKlC,IAAI4oB,IAAOx0B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAKlB,GAAQ,GAIZ,KAAa,MAFnC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAK1B,GAAQ,GACvBhH,KAAKwvB,KAAKtnB,EAAKV,GAAQ,KAEU,IAAO,EACrDrM,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKlB,GAAQ,IAErBonB,IAAQ,IAAO,IAAMuB,KAAO,IAAO,EAChDA,IAAM,SAEN7U,EAAK9a,KAAKwvB,KAAK1mB,EAAKzB,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAK1mB,EAAKjC,IACR7G,KAAKwvB,KAAKlnB,EAAKjB,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAKlnB,EAAKzB,GACpBiU,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKvB,GAAQ,EAElC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAK/B,GAAQ,GACvB9G,KAAKwvB,KAAKnnB,EAAKf,GAAQ,EACpCuT,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAKvB,GAAQ,EAClCgU,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKrB,GAAQ,EAElC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAK7B,GAAQ,GACvB/G,KAAKwvB,KAAKpnB,EAAKb,GAAQ,EACpCsT,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKrB,GAAQ,EAClC+T,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAKnB,GAAQ,EAElC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAK3B,GAAQ,GACvBhH,KAAKwvB,KAAKrnB,EAAKX,GAAQ,EACpCqT,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKnB,GAAQ,EAKlC,IAAI4oB,IAAOz0B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAKjB,GAAQ,GAIZ,KAAa,MAFnC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAKzB,IAAQ,GACvBjH,KAAKwvB,KAAKtnB,EAAKT,GAAQ,KAEU,IAAO,EACrDtM,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKjB,IAAQ,IAErBmnB,IAAQ,IAAO,IAAMwB,KAAO,IAAO,EAChDA,IAAM,SAEN9U,EAAK9a,KAAKwvB,KAAKzmB,EAAK1B,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAKzmB,EAAKlC,IACR7G,KAAKwvB,KAAKjnB,EAAKlB,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAKjnB,EAAK1B,GACpBiU,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKxB,GAAQ,EAElC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAKhC,GAAQ,GACvB9G,KAAKwvB,KAAKlnB,EAAKhB,GAAQ,EACpCuT,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAKxB,GAAQ,EAClCgU,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKtB,GAAQ,EAElC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAK9B,GAAQ,GACvB/G,KAAKwvB,KAAKnnB,EAAKd,GAAQ,EACpCsT,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAKtB,GAAQ,EAClC+T,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKpB,GAAQ,EAElC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAK5B,GAAQ,GACvBhH,KAAKwvB,KAAKpnB,EAAKZ,GAAQ,EACpCqT,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKpB,GAAQ,EAClC8T,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAKlB,GAAQ,EAElC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAK1B,IAAQ,GACvBjH,KAAKwvB,KAAKrnB,EAAKV,GAAQ,EACpCoT,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKlB,IAAQ,EAKlC,IAAI4oB,IAAO10B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAKhB,IAAQ,GAIZ,KAAa,MAFnC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAKxB,IAAQ,GACvBlH,KAAKwvB,KAAKtnB,EAAKR,IAAQ,KAEU,IAAO,EACrDvM,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKhB,IAAQ,IAErBknB,IAAQ,IAAO,IAAMyB,KAAO,IAAO,EAChDA,IAAM,SAEN/U,EAAK9a,KAAKwvB,KAAKxmB,EAAK3B,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAKxmB,EAAKnC,IACR7G,KAAKwvB,KAAKhnB,EAAKnB,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAKhnB,EAAK3B,GACpBiU,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKzB,GAAQ,EAElC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAKjC,GAAQ,GACvB9G,KAAKwvB,KAAKjnB,EAAKjB,GAAQ,EACpCuT,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAKzB,GAAQ,EAClCgU,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKvB,GAAQ,EAElC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAK/B,GAAQ,GACvB/G,KAAKwvB,KAAKlnB,EAAKf,GAAQ,EACpCsT,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAKvB,GAAQ,EAClC+T,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKrB,GAAQ,EAElC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAK7B,GAAQ,GACvBhH,KAAKwvB,KAAKnnB,EAAKb,GAAQ,EACpCqT,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAKrB,GAAQ,EAClC8T,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKnB,GAAQ,EAElC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAK3B,IAAQ,GACvBjH,KAAKwvB,KAAKpnB,EAAKX,GAAQ,EACpCoT,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKnB,IAAQ,EAClC6T,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAKjB,IAAQ,EAElC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAKzB,IAAQ,GACvBlH,KAAKwvB,KAAKrnB,EAAKT,IAAQ,EACpCmT,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKjB,IAAQ,EAKlC,IAAI4oB,IAAO30B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAKf,IAAQ,GAIZ,KAAa,MAFnCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAKvB,IAAQ,GACvBnH,KAAKwvB,KAAKtnB,EAAKP,IAAQ,KAEU,IAAO,EACrDxM,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKf,IAAQ,IAErBinB,IAAQ,IAAO,IAAM0B,KAAO,IAAO,EAChDA,IAAM,SAENhV,EAAK9a,KAAKwvB,KAAKvmB,EAAK5B,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAKvmB,EAAKpC,IACR7G,KAAKwvB,KAAK/mB,EAAKpB,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAK/mB,EAAK5B,GACpBiU,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAK1B,GAAQ,EAElC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAKlC,GAAQ,GACvB9G,KAAKwvB,KAAKhnB,EAAKlB,GAAQ,EACpCuT,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAK1B,GAAQ,EAClCgU,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKxB,GAAQ,EAElC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAKhC,GAAQ,GACvB/G,KAAKwvB,KAAKjnB,EAAKhB,GAAQ,EACpCsT,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAKxB,GAAQ,EAClC+T,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKtB,GAAQ,EAElC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAK9B,GAAQ,GACvBhH,KAAKwvB,KAAKlnB,EAAKd,GAAQ,EACpCqT,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAKtB,GAAQ,EAClC8T,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKpB,GAAQ,EAElC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAK5B,IAAQ,GACvBjH,KAAKwvB,KAAKnnB,EAAKZ,GAAQ,EACpCoT,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAKpB,IAAQ,EAClC6T,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKlB,IAAQ,EAElC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAK1B,IAAQ,GACvBlH,KAAKwvB,KAAKpnB,EAAKV,IAAQ,EACpCmT,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKlB,IAAQ,EAClC4T,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAKhB,IAAQ,EAElCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAKxB,IAAQ,GACvBnH,KAAKwvB,KAAKrnB,EAAKR,IAAQ,EACpCkT,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKhB,IAAQ,EAKlC,IAAI4oB,IAAO50B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAKd,IAAQ,GAIZ,KAAa,MAFnCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAKtB,IAAQ,GACvBpH,KAAKwvB,KAAKtnB,EAAKN,IAAQ,KAEU,IAAO,EACrDzM,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKd,IAAQ,IAErBgnB,IAAQ,IAAO,IAAM2B,KAAO,IAAO,EAChDA,IAAM,SAENjV,EAAK9a,KAAKwvB,KAAKV,EAAKznB,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAKV,EAAKjoB,IACR7G,KAAKwvB,KAAKT,EAAK1nB,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAKT,EAAKloB,GACpBiU,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAK3B,GAAQ,EAElC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAKnC,GAAQ,GACvB9G,KAAKwvB,KAAK/mB,EAAKnB,GAAQ,EACpCuT,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAK3B,GAAQ,EAClCgU,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAKzB,GAAQ,EAElC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAKjC,GAAQ,GACvB/G,KAAKwvB,KAAKhnB,EAAKjB,GAAQ,EACpCsT,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAKzB,GAAQ,EAClC+T,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKvB,GAAQ,EAElC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAK/B,GAAQ,GACvBhH,KAAKwvB,KAAKjnB,EAAKf,GAAQ,EACpCqT,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAKvB,GAAQ,EAClC8T,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKrB,GAAQ,EAElC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAK7B,IAAQ,GACvBjH,KAAKwvB,KAAKlnB,EAAKb,GAAQ,EACpCoT,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAKrB,IAAQ,EAClC6T,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKnB,IAAQ,EAElC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAK3B,IAAQ,GACvBlH,KAAKwvB,KAAKnnB,EAAKX,IAAQ,EACpCmT,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAKnB,IAAQ,EAClC4T,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKjB,IAAQ,EAElCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAKzB,IAAQ,GACvBnH,KAAKwvB,KAAKpnB,EAAKT,IAAQ,EACpCkT,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKjB,IAAQ,EAClC2T,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAKf,IAAQ,EAElCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAKvB,IAAQ,GACvBpH,KAAKwvB,KAAKrnB,EAAKP,IAAQ,EACpCiT,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKf,IAAQ,EAKlC,IAAI4oB,IAAO70B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAKymB,IAAQ,GAIZ,KAAa,MAFnCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAK0mB,IAAQ,GACvBpvB,KAAKwvB,KAAKtnB,EAAKinB,IAAQ,KAEU,IAAO,EACrDh0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKknB,IAAQ,IAErBhB,IAAQ,IAAO,IAAM4B,KAAO,IAAO,EAChDA,IAAM,SAENlV,EAAK9a,KAAKwvB,KAAKP,EAAK5nB,GAEpB+mB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAKpoB,IACR7G,KAAKwvB,KAAKN,EAAK7nB,GAAQ,EACpCwT,EAAK7a,KAAKwvB,KAAKN,EAAKroB,GACpBiU,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKxnB,GAAQ,EAElC8mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAKhoB,GAAQ,GACvB9G,KAAKwvB,KAAKT,EAAKznB,GAAQ,EACpCuT,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAKjoB,GAAQ,EAClCgU,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAK1B,GAAQ,EAElC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAKlC,GAAQ,GACvB/G,KAAKwvB,KAAK/mB,EAAKlB,GAAQ,EACpCsT,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAK1B,GAAQ,EAClC+T,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAKxB,GAAQ,EAElC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAKhC,GAAQ,GACvBhH,KAAKwvB,KAAKhnB,EAAKhB,GAAQ,EACpCqT,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAKxB,GAAQ,EAClC8T,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKtB,GAAQ,EAElC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAK9B,IAAQ,GACvBjH,KAAKwvB,KAAKjnB,EAAKd,GAAQ,EACpCoT,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAKtB,IAAQ,EAClC6T,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKpB,IAAQ,EAElC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAK5B,IAAQ,GACvBlH,KAAKwvB,KAAKlnB,EAAKZ,IAAQ,EACpCmT,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAKpB,IAAQ,EAClC4T,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKlB,IAAQ,EAElCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAK1B,IAAQ,GACvBnH,KAAKwvB,KAAKnnB,EAAKV,IAAQ,EACpCkT,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAKlB,IAAQ,EAClC2T,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKhB,IAAQ,EAElCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAKxB,IAAQ,GACvBpH,KAAKwvB,KAAKpnB,EAAKR,IAAQ,EACpCiT,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKhB,IAAQ,EAClC0T,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAKwmB,IAAQ,EAElCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAKymB,IAAQ,GACvBpvB,KAAKwvB,KAAKrnB,EAAKgnB,IAAQ,EACpCtU,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKinB,IAAQ,EAKlC,IAAIa,IAAO90B,GAJX2f,EAAKA,EAAM9a,KAAKwvB,KAAK9mB,EAAK2mB,IAAQ,GAIZ,KAAa,MAFnCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK9mB,EAAK4mB,IAAQ,GACvBtvB,KAAKwvB,KAAKtnB,EAAKmnB,IAAQ,KAEU,IAAO,EACrDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKtnB,EAAKonB,IAAQ,IAErBlB,IAAQ,IAAO,IAAM6B,KAAO,IAAO,EAChDA,IAAM,SAENnV,EAAK9a,KAAKwvB,KAAKP,EAAK3nB,GAEpB8mB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAKnoB,IACR9G,KAAKwvB,KAAKN,EAAK5nB,GAAQ,EACpCuT,EAAK7a,KAAKwvB,KAAKN,EAAKpoB,GACpBgU,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKvnB,GAAQ,EAElC6mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAK/nB,GAAQ,GACvB/G,KAAKwvB,KAAKT,EAAKxnB,GAAQ,EACpCsT,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAKhoB,GAAQ,EAClC+T,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAKzB,GAAQ,EAElC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAKjC,GAAQ,GACvBhH,KAAKwvB,KAAK/mB,EAAKjB,GAAQ,EACpCqT,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAKzB,GAAQ,EAClC8T,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAKvB,GAAQ,EAElC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAK/B,IAAQ,GACvBjH,KAAKwvB,KAAKhnB,EAAKf,GAAQ,EACpCoT,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAKvB,IAAQ,EAClC6T,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKrB,IAAQ,EAElC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAK7B,IAAQ,GACvBlH,KAAKwvB,KAAKjnB,EAAKb,IAAQ,EACpCmT,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAKrB,IAAQ,EAClC4T,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKnB,IAAQ,EAElCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAK3B,IAAQ,GACvBnH,KAAKwvB,KAAKlnB,EAAKX,IAAQ,EACpCkT,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAKnB,IAAQ,EAClC2T,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKjB,IAAQ,EAElCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAKzB,IAAQ,GACvBpH,KAAKwvB,KAAKnnB,EAAKT,IAAQ,EACpCiT,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAKjB,IAAQ,EAClC0T,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKumB,IAAQ,EAElCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAKwmB,IAAQ,GACvBpvB,KAAKwvB,KAAKpnB,EAAK+mB,IAAQ,EACpCtU,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKgnB,IAAQ,EAKlC,IAAIc,IAAQ/0B,GAJZ2f,EAAKA,EAAM9a,KAAKwvB,KAAK7mB,EAAK0mB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK7mB,EAAK2mB,IAAQ,GACvBtvB,KAAKwvB,KAAKrnB,EAAKknB,IAAQ,KAEW,IAAO,EACtDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKrnB,EAAKmnB,IAAQ,IAErBlB,IAAQ,IAAO,IAAM8B,KAAQ,IAAO,EACjDA,IAAO,SAEPpV,EAAK9a,KAAKwvB,KAAKP,EAAK1nB,GAEpB6mB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAKloB,IACR/G,KAAKwvB,KAAKN,EAAK3nB,GAAQ,EACpCsT,EAAK7a,KAAKwvB,KAAKN,EAAKnoB,GACpB+T,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKtnB,GAAQ,EAElC4mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAK9nB,GAAQ,GACvBhH,KAAKwvB,KAAKT,EAAKvnB,GAAQ,EACpCqT,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAK/nB,GAAQ,EAClC8T,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAKxB,GAAQ,EAElC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAKhC,IAAQ,GACvBjH,KAAKwvB,KAAK/mB,EAAKhB,GAAQ,EACpCoT,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAKxB,IAAQ,EAClC6T,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAKtB,IAAQ,EAElC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAK9B,IAAQ,GACvBlH,KAAKwvB,KAAKhnB,EAAKd,IAAQ,EACpCmT,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAKtB,IAAQ,EAClC4T,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKpB,IAAQ,EAElCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAK5B,IAAQ,GACvBnH,KAAKwvB,KAAKjnB,EAAKZ,IAAQ,EACpCkT,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAKpB,IAAQ,EAClC2T,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKlB,IAAQ,EAElCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAK1B,IAAQ,GACvBpH,KAAKwvB,KAAKlnB,EAAKV,IAAQ,EACpCiT,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAKlB,IAAQ,EAClC0T,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKsmB,IAAQ,EAElCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAKumB,IAAQ,GACvBpvB,KAAKwvB,KAAKnnB,EAAK8mB,IAAQ,EACpCtU,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAK+mB,IAAQ,EAKlC,IAAIe,IAAQh1B,GAJZ2f,EAAKA,EAAM9a,KAAKwvB,KAAK5mB,EAAKymB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK5mB,EAAK0mB,IAAQ,GACvBtvB,KAAKwvB,KAAKpnB,EAAKinB,IAAQ,KAEW,IAAO,EACtDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKpnB,EAAKknB,IAAQ,IAErBlB,IAAQ,IAAO,IAAM+B,KAAQ,IAAO,EACjDA,IAAO,SAEPrV,EAAK9a,KAAKwvB,KAAKP,EAAKznB,GAEpB4mB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAKjoB,IACRhH,KAAKwvB,KAAKN,EAAK1nB,GAAQ,EACpCqT,EAAK7a,KAAKwvB,KAAKN,EAAKloB,GACpB8T,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKrnB,GAAQ,EAElC2mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAK7nB,IAAQ,GACvBjH,KAAKwvB,KAAKT,EAAKtnB,GAAQ,EACpCoT,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAK9nB,IAAQ,EAClC6T,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAKvB,IAAQ,EAElC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAK/B,IAAQ,GACvBlH,KAAKwvB,KAAK/mB,EAAKf,IAAQ,EACpCmT,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAKvB,IAAQ,EAClC4T,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAKrB,IAAQ,EAElCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAK7B,IAAQ,GACvBnH,KAAKwvB,KAAKhnB,EAAKb,IAAQ,EACpCkT,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAKrB,IAAQ,EAClC2T,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKnB,IAAQ,EAElCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAK3B,IAAQ,GACvBpH,KAAKwvB,KAAKjnB,EAAKX,IAAQ,EACpCiT,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAKnB,IAAQ,EAClC0T,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKqmB,IAAQ,EAElCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAKsmB,IAAQ,GACvBpvB,KAAKwvB,KAAKlnB,EAAK6mB,IAAQ,EACpCtU,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAK8mB,IAAQ,EAKlC,IAAIgB,IAAQj1B,GAJZ2f,EAAKA,EAAM9a,KAAKwvB,KAAK3mB,EAAKwmB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK3mB,EAAKymB,IAAQ,GACvBtvB,KAAKwvB,KAAKnnB,EAAKgnB,IAAQ,KAEW,IAAO,EACtDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKnnB,EAAKinB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMgC,KAAQ,IAAO,EACjDA,IAAO,SAEPtV,EAAK9a,KAAKwvB,KAAKP,EAAKxnB,GAEpB2mB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAKhoB,KACRjH,KAAKwvB,KAAKN,EAAKznB,GAAQ,EACpCoT,EAAK7a,KAAKwvB,KAAKN,EAAKjoB,IACpB6T,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKpnB,IAAQ,EAElC0mB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAK5nB,IAAQ,GACvBlH,KAAKwvB,KAAKT,EAAKrnB,IAAQ,EACpCmT,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAK7nB,IAAQ,EAClC4T,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAKtB,IAAQ,EAElCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAK9B,IAAQ,GACvBnH,KAAKwvB,KAAK/mB,EAAKd,IAAQ,EACpCkT,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAKtB,IAAQ,EAClC2T,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAKpB,IAAQ,EAElCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAK5B,IAAQ,GACvBpH,KAAKwvB,KAAKhnB,EAAKZ,IAAQ,EACpCiT,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAKpB,IAAQ,EAClC0T,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKomB,IAAQ,EAElCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAKqmB,IAAQ,GACvBpvB,KAAKwvB,KAAKjnB,EAAK4mB,IAAQ,EACpCtU,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAK6mB,IAAQ,EAKlC,IAAIiB,IAAQl1B,GAJZ2f,EAAKA,EAAM9a,KAAKwvB,KAAK1mB,EAAKumB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAK1mB,EAAKwmB,IAAQ,GACvBtvB,KAAKwvB,KAAKlnB,EAAK+mB,IAAQ,KAEW,IAAO,EACtDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKlnB,EAAKgnB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMiC,KAAQ,IAAO,EACjDA,IAAO,SAEPvV,EAAK9a,KAAKwvB,KAAKP,EAAKvnB,IAEpB0mB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAK/nB,KACRlH,KAAKwvB,KAAKN,EAAKxnB,IAAQ,EACpCmT,EAAK7a,KAAKwvB,KAAKN,EAAKhoB,IACpB4T,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKnnB,IAAQ,EAElCymB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAK3nB,IAAQ,GACvBnH,KAAKwvB,KAAKT,EAAKpnB,IAAQ,EACpCkT,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAK5nB,IAAQ,EAClC2T,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAKrB,IAAQ,EAElCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAK7B,IAAQ,GACvBpH,KAAKwvB,KAAK/mB,EAAKb,IAAQ,EACpCiT,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAKrB,IAAQ,EAClC0T,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAKmmB,IAAQ,EAElCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAKomB,IAAQ,GACvBpvB,KAAKwvB,KAAKhnB,EAAK2mB,IAAQ,EACpCtU,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAK4mB,IAAQ,EAKlC,IAAIkB,IAAQn1B,GAJZ2f,EAAKA,EAAM9a,KAAKwvB,KAAKzmB,EAAKsmB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKzmB,EAAKumB,IAAQ,GACvBtvB,KAAKwvB,KAAKjnB,EAAK8mB,IAAQ,KAEW,IAAO,EACtDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKjnB,EAAK+mB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMkC,KAAQ,IAAO,EACjDA,IAAO,SAEPxV,EAAK9a,KAAKwvB,KAAKP,EAAKtnB,IAEpBymB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAK9nB,KACRnH,KAAKwvB,KAAKN,EAAKvnB,IAAQ,EACpCkT,EAAK7a,KAAKwvB,KAAKN,EAAK/nB,IACpB2T,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKlnB,IAAQ,EAElCwmB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAK1nB,IAAQ,GACvBpH,KAAKwvB,KAAKT,EAAKnnB,IAAQ,EACpCiT,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAK3nB,IAAQ,EAClC0T,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAKkmB,IAAQ,EAElCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAKmmB,IAAQ,GACvBpvB,KAAKwvB,KAAK/mB,EAAK0mB,IAAQ,EACpCtU,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAK2mB,IAAQ,EAKlC,IAAImB,IAAQp1B,GAJZ2f,EAAKA,EAAM9a,KAAKwvB,KAAKxmB,EAAKqmB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKxmB,EAAKsmB,IAAQ,GACvBtvB,KAAKwvB,KAAKhnB,EAAK6mB,IAAQ,KAEW,IAAO,EACtDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKhnB,EAAK8mB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMmC,KAAQ,IAAO,EACjDA,IAAO,SAEPzV,EAAK9a,KAAKwvB,KAAKP,EAAKrnB,IAEpBwmB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAK7nB,KACRpH,KAAKwvB,KAAKN,EAAKtnB,IAAQ,EACpCiT,EAAK7a,KAAKwvB,KAAKN,EAAK9nB,IACpB0T,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKK,IAAQ,EAElCf,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAKM,IAAQ,GACvBpvB,KAAKwvB,KAAKT,EAAKI,IAAQ,EACpCtU,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAKK,IAAQ,EAKlC,IAAIoB,IAAQr1B,GAJZ2f,EAAKA,EAAM9a,KAAKwvB,KAAKvmB,EAAKomB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKvmB,EAAKqmB,IAAQ,GACvBtvB,KAAKwvB,KAAK/mB,EAAK4mB,IAAQ,KAEW,IAAO,EACtDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAK/mB,EAAK6mB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMoC,KAAQ,IAAO,EACjDA,IAAO,SAEP1V,EAAK9a,KAAKwvB,KAAKP,EAAKE,IAEpBf,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAKG,KACRpvB,KAAKwvB,KAAKN,EAAKC,IAAQ,EACpCtU,EAAK7a,KAAKwvB,KAAKN,EAAKE,IAKpB,IAAIqB,IAAQt1B,GAJZ2f,EAAKA,EAAM9a,KAAKwvB,KAAKV,EAAKO,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAMA,EAAOpuB,KAAKwvB,KAAKV,EAAKQ,IAAQ,GACvBtvB,KAAKwvB,KAAKT,EAAKM,IAAQ,KAEW,IAAO,EACtDl0B,IAFA0f,EAAKA,EAAM7a,KAAKwvB,KAAKT,EAAKO,IAAQ,IAErBlB,IAAQ,IAAO,IAAMqC,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAQv1B,GAJZ2f,EAAK9a,KAAKwvB,KAAKP,EAAKI,KAIG,KAAa,MAFpCjB,GADAA,EAAMpuB,KAAKwvB,KAAKP,EAAKK,KACRtvB,KAAKwvB,KAAKN,EAAKG,IAAQ,KAEW,IAAO,EA0BtD,OAzBAl0B,IAFA0f,EAAK7a,KAAKwvB,KAAKN,EAAKI,MAEPlB,IAAQ,IAAO,IAAMsC,KAAQ,IAAO,EACjDA,IAAO,SACPt1B,EAAE,GAAKm0B,GACPn0B,EAAE,GAAKq0B,GACPr0B,EAAE,GAAKs0B,GACPt0B,EAAE,GAAKu0B,GACPv0B,EAAE,GAAKw0B,GACPx0B,EAAE,GAAKy0B,GACPz0B,EAAE,GAAK00B,GACP10B,EAAE,GAAK20B,GACP30B,EAAE,GAAK40B,GACP50B,EAAE,GAAK60B,GACP70B,EAAE,IAAM80B,GACR90B,EAAE,IAAM+0B,GACR/0B,EAAE,IAAMg1B,GACRh1B,EAAE,IAAMi1B,GACRj1B,EAAE,IAAMk1B,GACRl1B,EAAE,IAAMm1B,GACRn1B,EAAE,IAAMo1B,GACRp1B,EAAE,IAAMq1B,GACRr1B,EAAE,IAAMs1B,GACE,IAANv1B,IACFC,EAAE,IAAMD,EACRH,EAAI/E,UAEC+E,C,EAQT,SAAS21B,EAAUniB,EAAMhE,EAAKxP,GAC5BA,EAAIqtB,SAAW7d,EAAI6d,SAAW7Z,EAAK6Z,SACnCrtB,EAAI/E,OAASuY,EAAKvY,OAASuU,EAAIvU,OAI/B,IAFA,IAAIgU,EAAQ,EACR2mB,EAAU,EACL11B,EAAI,EAAGA,EAAIF,EAAI/E,OAAS,EAAGiF,IAAK,CAGvC,IAAIqwB,EAASqF,EACbA,EAAU,EAGV,IAFA,IAAIpF,EAAgB,SAARvhB,EACRwhB,EAAOzrB,KAAK2O,IAAIzT,EAAGsP,EAAIvU,OAAS,GAC3BqK,EAAIN,KAAKkd,IAAI,EAAGhiB,EAAIsT,EAAKvY,OAAS,GAAIqK,GAAKmrB,EAAMnrB,IAAK,CAC7D,IAAIlH,EAAI8B,EAAIoF,EAGRjH,GAFoB,EAAhBmV,EAAK8Z,MAAMlvB,KACI,EAAfoR,EAAI8d,MAAMhoB,IAGdwa,EAAS,SAAJzhB,EAGTmyB,EAAa,UADb1Q,EAAKA,EAAM0Q,EAAS,GAIpBoF,IAFArF,GAHAA,EAASA,GAAWlyB,EAAK,SAAa,GAAM,IAGxByhB,IAAO,IAAO,KAEZ,GACtByQ,GAAU,Q,CAEZvwB,EAAIstB,MAAMptB,GAAKswB,EACfvhB,EAAQshB,EACRA,EAASqF,C,CAQX,OANc,IAAV3mB,EACFjP,EAAIstB,MAAMptB,GAAK+O,EAEfjP,EAAI/E,SAGC+E,EAAI6uB,Q,CAGb,SAASgH,EAAYriB,EAAMhE,EAAKxP,GAI9B,OAAO21B,EAASniB,EAAMhE,EAAKxP,E,CAsB7B,SAAS81B,EAAM12B,EAAGK,GAChBxF,KAAKmF,EAAIA,EACTnF,KAAKwF,EAAIA,C,CAzENuF,KAAKwvB,OACRrB,EAAc7C,GAmDhBrD,EAAGjkB,UAAU+sB,MAAQ,SAAgBvmB,EAAKxP,GACxC,IACI8Y,EAAM7e,KAAKgB,OAASuU,EAAIvU,OAW5B,OAVoB,KAAhBhB,KAAKgB,QAAgC,KAAfuU,EAAIvU,OACtBk4B,EAAYl5B,KAAMuV,EAAKxP,GACpB8Y,EAAM,GACTwX,EAAWr2B,KAAMuV,EAAKxP,GACnB8Y,EAAM,KACT6c,EAAS17B,KAAMuV,EAAKxP,GAEpB61B,EAAW57B,KAAMuV,EAAKxP,E,EAchC81B,EAAK9sB,UAAUgtB,QAAU,SAAkBC,GAGzC,IAFA,IAAI7wB,EAAI,IAAItK,MAAMm7B,GACd32B,EAAI2tB,EAAGjkB,UAAUkoB,WAAW+E,GAAK,EAC5B73B,EAAI,EAAGA,EAAI63B,EAAG73B,IACrBgH,EAAEhH,GAAKnE,KAAKi8B,OAAO93B,EAAGkB,EAAG22B,GAG3B,OAAO7wB,C,EAIT0wB,EAAK9sB,UAAUktB,OAAS,SAAiB92B,EAAGE,EAAG22B,GAC7C,GAAU,IAAN72B,GAAWA,IAAM62B,EAAI,EAAG,OAAO72B,EAGnC,IADA,IAAI+2B,EAAK,EACA/3B,EAAI,EAAGA,EAAIkB,EAAGlB,IACrB+3B,IAAW,EAAJ/2B,IAAWE,EAAIlB,EAAI,EAC1BgB,IAAM,EAGR,OAAO+2B,C,EAKTL,EAAK9sB,UAAUotB,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI73B,EAAI,EAAGA,EAAI63B,EAAG73B,IACrBo4B,EAAKp4B,GAAKk4B,EAAID,EAAIj4B,IAClBq4B,EAAKr4B,GAAKm4B,EAAIF,EAAIj4B,G,EAItB03B,EAAK9sB,UAAU0tB,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtEp8B,KAAKm8B,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAI9yB,EAAI,EAAGA,EAAI8yB,EAAG9yB,IAAM,EAM3B,IALA,IAAI7D,EAAI6D,GAAK,EAETwzB,EAAQ3xB,KAAK4xB,IAAI,EAAI5xB,KAAK6xB,GAAKv3B,GAC/Bw3B,EAAQ9xB,KAAK+xB,IAAI,EAAI/xB,KAAK6xB,GAAKv3B,GAE1Be,EAAI,EAAGA,EAAI41B,EAAG51B,GAAKf,EAI1B,IAHA,IAAI03B,EAASL,EACTM,EAASH,EAEJxxB,EAAI,EAAGA,EAAInC,EAAGmC,IAAK,CAC1B,IAAI4xB,EAAKV,EAAKn2B,EAAIiF,GACd6xB,EAAKV,EAAKp2B,EAAIiF,GAEd8xB,EAAKZ,EAAKn2B,EAAIiF,EAAInC,GAClBk0B,EAAKZ,EAAKp2B,EAAIiF,EAAInC,GAElBm0B,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELd,EAAKn2B,EAAIiF,GAAK4xB,EAAKE,EACnBX,EAAKp2B,EAAIiF,GAAK6xB,EAAKE,EAEnBb,EAAKn2B,EAAIiF,EAAInC,GAAK+zB,EAAKE,EACvBX,EAAKp2B,EAAIiF,EAAInC,GAAKg0B,EAAKE,EAGnB/xB,IAAMhG,IACRg4B,EAAKX,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAASM,E,GAOnBxB,EAAK9sB,UAAUuuB,YAAc,SAAsB53B,EAAGkD,GACpD,IAAIozB,EAAqB,EAAjBjxB,KAAKkd,IAAIrf,EAAGlD,GAChB63B,EAAU,EAAJvB,EACN73B,EAAI,EACR,IAAK63B,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B73B,IAGF,OAAO,GAAKA,EAAI,EAAIo5B,C,EAGtB1B,EAAK9sB,UAAUyuB,UAAY,SAAoBnB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI73B,EAAI,EAAGA,EAAI63B,EAAI,EAAG73B,IAAK,CAC9B,IAAIgH,EAAIkxB,EAAIl4B,GAEZk4B,EAAIl4B,GAAKk4B,EAAIL,EAAI73B,EAAI,GACrBk4B,EAAIL,EAAI73B,EAAI,GAAKgH,EAEjBA,EAAImxB,EAAIn4B,GAERm4B,EAAIn4B,IAAMm4B,EAAIN,EAAI73B,EAAI,GACtBm4B,EAAIN,EAAI73B,EAAI,IAAMgH,C,GAItB0wB,EAAK9sB,UAAU0uB,aAAe,SAAuBC,EAAI1B,GAEvD,IADA,IAAIhnB,EAAQ,EACH7Q,EAAI,EAAGA,EAAI63B,EAAI,EAAG73B,IAAK,CAC9B,IAAIuwB,EAAoC,KAAhC3pB,KAAK4yB,MAAMD,EAAG,EAAIv5B,EAAI,GAAK63B,GACjCjxB,KAAK4yB,MAAMD,EAAG,EAAIv5B,GAAK63B,GACvBhnB,EAEF0oB,EAAGv5B,GAAS,SAAJuwB,EAGN1f,EADE0f,EAAI,SACE,EAEAA,EAAI,SAAY,C,CAI5B,OAAOgJ,C,EAGT7B,EAAK9sB,UAAU6uB,WAAa,SAAqBF,EAAI7e,EAAKwd,EAAKL,GAE7D,IADA,IAAIhnB,EAAQ,EACH7Q,EAAI,EAAGA,EAAI0a,EAAK1a,IACvB6Q,GAAyB,EAAR0oB,EAAGv5B,GAEpBk4B,EAAI,EAAIl4B,GAAa,KAAR6Q,EAAgBA,KAAkB,GAC/CqnB,EAAI,EAAIl4B,EAAI,GAAa,KAAR6Q,EAAgBA,KAAkB,GAIrD,IAAK7Q,EAAI,EAAI0a,EAAK1a,EAAI63B,IAAK73B,EACzBk4B,EAAIl4B,GAAK,EAGXuuB,EAAiB,IAAV1d,GACP0d,EAA6B,KAAb,KAAR1d,G,EAGV6mB,EAAK9sB,UAAU8uB,KAAO,SAAe7B,GAEnC,IADA,IAAI8B,EAAK,IAAIj9B,MAAMm7B,GACV73B,EAAI,EAAGA,EAAI63B,EAAG73B,IACrB25B,EAAG35B,GAAK,EAGV,OAAO25B,C,EAGTjC,EAAK9sB,UAAUgvB,KAAO,SAAe54B,EAAGK,EAAGO,GACzC,IAAIi2B,EAAI,EAAIh8B,KAAKs9B,YAAYn4B,EAAEnE,OAAQwE,EAAExE,QAErCo7B,EAAMp8B,KAAK+7B,QAAQC,GAEnBgC,EAAIh+B,KAAK69B,KAAK7B,GAEdK,EAAM,IAAIx7B,MAAMm7B,GAChBiC,EAAO,IAAIp9B,MAAMm7B,GACjBkC,EAAO,IAAIr9B,MAAMm7B,GAEjBmC,EAAO,IAAIt9B,MAAMm7B,GACjBoC,EAAQ,IAAIv9B,MAAMm7B,GAClBqC,EAAQ,IAAIx9B,MAAMm7B,GAElBsC,EAAOv4B,EAAIstB,MACfiL,EAAKt9B,OAASg7B,EAEdh8B,KAAK49B,WAAWz4B,EAAEkuB,MAAOluB,EAAEnE,OAAQq7B,EAAKL,GACxCh8B,KAAK49B,WAAWp4B,EAAE6tB,MAAO7tB,EAAExE,OAAQm9B,EAAMnC,GAEzCh8B,KAAKy8B,UAAUJ,EAAK2B,EAAGC,EAAMC,EAAMlC,EAAGI,GACtCp8B,KAAKy8B,UAAU0B,EAAMH,EAAGI,EAAOC,EAAOrC,EAAGI,GAEzC,IAAK,IAAIj4B,EAAI,EAAGA,EAAI63B,EAAG73B,IAAK,CAC1B,IAAIk5B,EAAKY,EAAK95B,GAAKi6B,EAAMj6B,GAAK+5B,EAAK/5B,GAAKk6B,EAAMl6B,GAC9C+5B,EAAK/5B,GAAK85B,EAAK95B,GAAKk6B,EAAMl6B,GAAK+5B,EAAK/5B,GAAKi6B,EAAMj6B,GAC/C85B,EAAK95B,GAAKk5B,C,CAUZ,OAPAr9B,KAAKw9B,UAAUS,EAAMC,EAAMlC,GAC3Bh8B,KAAKy8B,UAAUwB,EAAMC,EAAMI,EAAMN,EAAGhC,EAAGI,GACvCp8B,KAAKw9B,UAAUc,EAAMN,EAAGhC,GACxBh8B,KAAKy9B,aAAaa,EAAMtC,GAExBj2B,EAAIqtB,SAAWjuB,EAAEiuB,SAAW5tB,EAAE4tB,SAC9BrtB,EAAI/E,OAASmE,EAAEnE,OAASwE,EAAExE,OACnB+E,EAAI6uB,Q,EAIb5B,EAAGjkB,UAAUgb,IAAM,SAAcxU,GAC/B,IAAIxP,EAAM,IAAIitB,EAAG,MAEjB,OADAjtB,EAAIstB,MAAQ,IAAIxyB,MAAMb,KAAKgB,OAASuU,EAAIvU,QACjChB,KAAK87B,MAAMvmB,EAAKxP,E,EAIzBitB,EAAGjkB,UAAUwvB,KAAO,SAAehpB,GACjC,IAAIxP,EAAM,IAAIitB,EAAG,MAEjB,OADAjtB,EAAIstB,MAAQ,IAAIxyB,MAAMb,KAAKgB,OAASuU,EAAIvU,QACjC46B,EAAW57B,KAAMuV,EAAKxP,E,EAI/BitB,EAAGjkB,UAAUwrB,KAAO,SAAehlB,GACjC,OAAOvV,KAAKo1B,QAAQ0G,MAAMvmB,EAAKvV,K,EAGjCgzB,EAAGjkB,UAAUkmB,MAAQ,SAAgB1f,GACnC,IAAIipB,EAAWjpB,EAAM,EACjBipB,IAAUjpB,GAAOA,GAErBmd,EAAsB,iBAARnd,GACdmd,EAAOnd,EAAM,UAIb,IADA,IAAIP,EAAQ,EACH7Q,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAAK,CACpC,IAAIuwB,GAAqB,EAAhB10B,KAAKqzB,MAAMlvB,IAAUoR,EAC1BsQ,GAAU,SAAJ6O,IAA0B,SAAR1f,GAC5BA,IAAU,GACVA,GAAS0f,EAAK,SAAa,EAE3B1f,GAAS6Q,IAAO,GAChB7lB,KAAKqzB,MAAMlvB,GAAU,SAAL0hB,C,CAQlB,OALc,IAAV7Q,IACFhV,KAAKqzB,MAAMlvB,GAAK6Q,EAChBhV,KAAKgB,UAGAw9B,EAAWx+B,KAAK43B,OAAS53B,I,EAGlCgzB,EAAGjkB,UAAU0vB,KAAO,SAAelpB,GACjC,OAAOvV,KAAKo1B,QAAQH,MAAM1f,E,EAI5Byd,EAAGjkB,UAAU2vB,IAAM,WACjB,OAAO1+B,KAAK+pB,IAAI/pB,K,EAIlBgzB,EAAGjkB,UAAU4vB,KAAO,WAClB,OAAO3+B,KAAKu6B,KAAKv6B,KAAKo1B,Q,EAIxBpC,EAAGjkB,UAAUoc,IAAM,SAAc5V,GAC/B,IAAImf,EA7xCN,SAAqBnf,GAGnB,IAFA,IAAImf,EAAI,IAAI7zB,MAAM0U,EAAI4hB,aAEb2B,EAAM,EAAGA,EAAMpE,EAAE1zB,OAAQ83B,IAAO,CACvC,IAAInE,EAAMmE,EAAO,GAAM,EACnBC,EAAOD,EAAM,GAEjBpE,EAAEoE,GAAOvjB,EAAK8d,MAAMsB,KAASoE,EAAQ,C,CAGvC,OAAOrE,C,CAmxCCkK,CAAWrpB,GACnB,GAAiB,IAAbmf,EAAE1zB,OAAc,OAAO,IAAIgyB,EAAG,GAIlC,IADA,IAAI/M,EAAMjmB,KACDmE,EAAI,EAAGA,EAAIuwB,EAAE1zB,QACP,IAAT0zB,EAAEvwB,GADsBA,IAAK8hB,EAAMA,EAAIyY,OAI7C,KAAMv6B,EAAIuwB,EAAE1zB,OACV,IAAK,IAAIkK,EAAI+a,EAAIyY,MAAOv6B,EAAIuwB,EAAE1zB,OAAQmD,IAAK+G,EAAIA,EAAEwzB,MAClC,IAAThK,EAAEvwB,KAEN8hB,EAAMA,EAAI8D,IAAI7e,IAIlB,OAAO+a,C,EAIT+M,EAAGjkB,UAAU8vB,OAAS,SAAiBC,GACrCpM,EAAuB,iBAAToM,GAAqBA,GAAQ,GAC3C,IAGI36B,EAHAC,EAAI06B,EAAO,GACX51B,GAAK41B,EAAO16B,GAAK,GACjB26B,EAAY,WAAgB,GAAK36B,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAI4Q,EAAQ,EAEZ,IAAK7Q,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAAK,CAChC,IAAI66B,EAAWh/B,KAAKqzB,MAAMlvB,GAAK46B,EAC3B74B,GAAsB,EAAhBlG,KAAKqzB,MAAMlvB,IAAU66B,GAAa56B,EAC5CpE,KAAKqzB,MAAMlvB,GAAK+B,EAAI8O,EACpBA,EAAQgqB,IAAc,GAAK56B,C,CAGzB4Q,IACFhV,KAAKqzB,MAAMlvB,GAAK6Q,EAChBhV,KAAKgB,S,CAIT,GAAU,IAANkI,EAAS,CACX,IAAK/E,EAAInE,KAAKgB,OAAS,EAAGmD,GAAK,EAAGA,IAChCnE,KAAKqzB,MAAMlvB,EAAI+E,GAAKlJ,KAAKqzB,MAAMlvB,GAGjC,IAAKA,EAAI,EAAGA,EAAI+E,EAAG/E,IACjBnE,KAAKqzB,MAAMlvB,GAAK,EAGlBnE,KAAKgB,QAAUkI,C,CAGjB,OAAOlJ,KAAK40B,Q,EAGd5B,EAAGjkB,UAAUkwB,MAAQ,SAAgBH,GAGnC,OADApM,EAAyB,IAAlB1yB,KAAKozB,UACLpzB,KAAK6+B,OAAOC,E,EAMrB9L,EAAGjkB,UAAUmwB,OAAS,SAAiBJ,EAAMK,EAAMC,GAEjD,IAAIh6B,EADJstB,EAAuB,iBAAToM,GAAqBA,GAAQ,GAGzC15B,EADE+5B,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI/6B,EAAI06B,EAAO,GACX51B,EAAI6B,KAAK2O,KAAKolB,EAAO16B,GAAK,GAAIpE,KAAKgB,QACnCmQ,EAAO,SAAa,WAAe/M,GAAMA,EACzCi7B,EAAcD,EAMlB,GAJAh6B,GAAK8D,EACL9D,EAAI2F,KAAKkd,IAAI,EAAG7iB,GAGZi6B,EAAa,CACf,IAAK,IAAIl7B,EAAI,EAAGA,EAAI+E,EAAG/E,IACrBk7B,EAAYhM,MAAMlvB,GAAKnE,KAAKqzB,MAAMlvB,GAEpCk7B,EAAYr+B,OAASkI,C,CAGvB,GAAU,IAANA,QAEG,GAAIlJ,KAAKgB,OAASkI,EAEvB,IADAlJ,KAAKgB,QAAUkI,EACV/E,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAC3BnE,KAAKqzB,MAAMlvB,GAAKnE,KAAKqzB,MAAMlvB,EAAI+E,QAGjClJ,KAAKqzB,MAAM,GAAK,EAChBrzB,KAAKgB,OAAS,EAGhB,IAAIgU,EAAQ,EACZ,IAAK7Q,EAAInE,KAAKgB,OAAS,EAAGmD,GAAK,IAAgB,IAAV6Q,GAAe7Q,GAAKiB,GAAIjB,IAAK,CAChE,IAAI6wB,EAAuB,EAAhBh1B,KAAKqzB,MAAMlvB,GACtBnE,KAAKqzB,MAAMlvB,GAAK6Q,GAAW,GAAK5Q,EAAO4wB,IAAS5wB,EAChD4Q,EAAQggB,EAAO7jB,C,CAajB,OATIkuB,GAAyB,IAAVrqB,IACjBqqB,EAAYhM,MAAMgM,EAAYr+B,UAAYgU,GAGxB,IAAhBhV,KAAKgB,SACPhB,KAAKqzB,MAAM,GAAK,EAChBrzB,KAAKgB,OAAS,GAGThB,KAAK40B,Q,EAGd5B,EAAGjkB,UAAUuwB,MAAQ,SAAgBR,EAAMK,EAAMC,GAG/C,OADA1M,EAAyB,IAAlB1yB,KAAKozB,UACLpzB,KAAKk/B,OAAOJ,EAAMK,EAAMC,E,EAIjCpM,EAAGjkB,UAAUwwB,KAAO,SAAeT,GACjC,OAAO9+B,KAAKo1B,QAAQ6J,MAAMH,E,EAG5B9L,EAAGjkB,UAAUywB,MAAQ,SAAgBV,GACnC,OAAO9+B,KAAKo1B,QAAQyJ,OAAOC,E,EAI7B9L,EAAGjkB,UAAU0wB,KAAO,SAAeX,GACjC,OAAO9+B,KAAKo1B,QAAQkK,MAAMR,E,EAG5B9L,EAAGjkB,UAAU2wB,MAAQ,SAAgBZ,GACnC,OAAO9+B,KAAKo1B,QAAQ8J,OAAOJ,E,EAI7B9L,EAAGjkB,UAAU2oB,MAAQ,SAAgBoB,GACnCpG,EAAsB,iBAARoG,GAAoBA,GAAO,GACzC,IAAI10B,EAAI00B,EAAM,GACV5vB,GAAK4vB,EAAM10B,GAAK,GAChB8G,EAAI,GAAK9G,EAGb,QAAIpE,KAAKgB,QAAUkI,OAGXlJ,KAAKqzB,MAAMnqB,GAELgC,E,EAIhB8nB,EAAGjkB,UAAU4wB,OAAS,SAAiBb,GACrCpM,EAAuB,iBAAToM,GAAqBA,GAAQ,GAC3C,IAAI16B,EAAI06B,EAAO,GACX51B,GAAK41B,EAAO16B,GAAK,GAIrB,GAFAsuB,EAAyB,IAAlB1yB,KAAKozB,SAAgB,2CAExBpzB,KAAKgB,QAAUkI,EACjB,OAAOlJ,KAQT,GALU,IAANoE,GACF8E,IAEFlJ,KAAKgB,OAAS+J,KAAK2O,IAAIxQ,EAAGlJ,KAAKgB,QAErB,IAANoD,EAAS,CACX,IAAI+M,EAAO,SAAa,WAAe/M,GAAMA,EAC7CpE,KAAKqzB,MAAMrzB,KAAKgB,OAAS,IAAMmQ,C,CAGjC,OAAOnR,KAAK40B,Q,EAId5B,EAAGjkB,UAAU6wB,MAAQ,SAAgBd,GACnC,OAAO9+B,KAAKo1B,QAAQuK,OAAOb,E,EAI7B9L,EAAGjkB,UAAUyoB,MAAQ,SAAgBjiB,GAGnC,OAFAmd,EAAsB,iBAARnd,GACdmd,EAAOnd,EAAM,UACTA,EAAM,EAAUvV,KAAK6/B,OAAOtqB,GAGV,IAAlBvV,KAAKozB,SACa,IAAhBpzB,KAAKgB,SAAiC,EAAhBhB,KAAKqzB,MAAM,KAAW9d,GAC9CvV,KAAKqzB,MAAM,GAAK9d,GAAuB,EAAhBvV,KAAKqzB,MAAM,IAClCrzB,KAAKozB,SAAW,EACTpzB,OAGTA,KAAKozB,SAAW,EAChBpzB,KAAK6/B,MAAMtqB,GACXvV,KAAKozB,SAAW,EACTpzB,MAIFA,KAAKk1B,OAAO3f,E,EAGrByd,EAAGjkB,UAAUmmB,OAAS,SAAiB3f,GACrCvV,KAAKqzB,MAAM,IAAM9d,EAGjB,IAAK,IAAIpR,EAAI,EAAGA,EAAInE,KAAKgB,QAAUhB,KAAKqzB,MAAMlvB,IAAM,SAAWA,IAC7DnE,KAAKqzB,MAAMlvB,IAAM,SACbA,IAAMnE,KAAKgB,OAAS,EACtBhB,KAAKqzB,MAAMlvB,EAAI,GAAK,EAEpBnE,KAAKqzB,MAAMlvB,EAAI,KAKnB,OAFAnE,KAAKgB,OAAS+J,KAAKkd,IAAIjoB,KAAKgB,OAAQmD,EAAI,GAEjCnE,I,EAITgzB,EAAGjkB,UAAU8wB,MAAQ,SAAgBtqB,GAGnC,GAFAmd,EAAsB,iBAARnd,GACdmd,EAAOnd,EAAM,UACTA,EAAM,EAAG,OAAOvV,KAAKw3B,OAAOjiB,GAEhC,GAAsB,IAAlBvV,KAAKozB,SAIP,OAHApzB,KAAKozB,SAAW,EAChBpzB,KAAKw3B,MAAMjiB,GACXvV,KAAKozB,SAAW,EACTpzB,KAKT,GAFAA,KAAKqzB,MAAM,IAAM9d,EAEG,IAAhBvV,KAAKgB,QAAgBhB,KAAKqzB,MAAM,GAAK,EACvCrzB,KAAKqzB,MAAM,IAAMrzB,KAAKqzB,MAAM,GAC5BrzB,KAAKozB,SAAW,OAGhB,IAAK,IAAIjvB,EAAI,EAAGA,EAAInE,KAAKgB,QAAUhB,KAAKqzB,MAAMlvB,GAAK,EAAGA,IACpDnE,KAAKqzB,MAAMlvB,IAAM,SACjBnE,KAAKqzB,MAAMlvB,EAAI,IAAM,EAIzB,OAAOnE,KAAK40B,Q,EAGd5B,EAAGjkB,UAAU+wB,KAAO,SAAevqB,GACjC,OAAOvV,KAAKo1B,QAAQoC,MAAMjiB,E,EAG5Byd,EAAGjkB,UAAUgxB,KAAO,SAAexqB,GACjC,OAAOvV,KAAKo1B,QAAQyK,MAAMtqB,E,EAG5Byd,EAAGjkB,UAAUixB,KAAO,WAGlB,OAFAhgC,KAAKozB,SAAW,EAETpzB,I,EAGTgzB,EAAGjkB,UAAUwgB,IAAM,WACjB,OAAOvvB,KAAKo1B,QAAQ4K,M,EAGtBhN,EAAGjkB,UAAUkxB,aAAe,SAAuB1qB,EAAKwU,EAAK+M,GAC3D,IACI3yB,EAIAuwB,EALA7V,EAAMtJ,EAAIvU,OAAS81B,EAGvB92B,KAAKq1B,QAAQxW,GAGb,IAAI7J,EAAQ,EACZ,IAAK7Q,EAAI,EAAGA,EAAIoR,EAAIvU,OAAQmD,IAAK,CAC/BuwB,GAA6B,EAAxB10B,KAAKqzB,MAAMlvB,EAAI2yB,IAAc9hB,EAClC,IAAImf,GAAwB,EAAf5e,EAAI8d,MAAMlvB,IAAU4lB,EAEjC/U,IADA0f,GAAa,SAARP,IACS,KAAOA,EAAS,SAAa,GAC3Cn0B,KAAKqzB,MAAMlvB,EAAI2yB,GAAa,SAAJpC,C,CAE1B,KAAOvwB,EAAInE,KAAKgB,OAAS81B,EAAO3yB,IAE9B6Q,GADA0f,GAA6B,EAAxB10B,KAAKqzB,MAAMlvB,EAAI2yB,IAAc9hB,IACrB,GACbhV,KAAKqzB,MAAMlvB,EAAI2yB,GAAa,SAAJpC,EAG1B,GAAc,IAAV1f,EAAa,OAAOhV,KAAK40B,SAK7B,IAFAlC,GAAiB,IAAV1d,GACPA,EAAQ,EACH7Q,EAAI,EAAGA,EAAInE,KAAKgB,OAAQmD,IAE3B6Q,GADA0f,IAAsB,EAAhB10B,KAAKqzB,MAAMlvB,IAAU6Q,IACd,GACbhV,KAAKqzB,MAAMlvB,GAAS,SAAJuwB,EAIlB,OAFA10B,KAAKozB,SAAW,EAETpzB,KAAK40B,Q,EAGd5B,EAAGjkB,UAAUmxB,SAAW,SAAmB3qB,EAAK4qB,GAC9C,IAAIrJ,GAAQ92B,KAAKgB,OAASuU,EAAIvU,QAE1B4J,EAAI5K,KAAKo1B,QACTtsB,EAAIyM,EAGJ6qB,EAA8B,EAAxBt3B,EAAEuqB,MAAMvqB,EAAE9H,OAAS,GAGf,KADd81B,EAAQ,GADM92B,KAAKi3B,WAAWmJ,MAG5Bt3B,EAAIA,EAAE02B,MAAM1I,GACZlsB,EAAEi0B,OAAO/H,GACTsJ,EAA8B,EAAxBt3B,EAAEuqB,MAAMvqB,EAAE9H,OAAS,IAI3B,IACIkK,EADAtC,EAAIgC,EAAE5J,OAAS8H,EAAE9H,OAGrB,GAAa,QAATm/B,EAAgB,EAClBj1B,EAAI,IAAI8nB,EAAG,OACThyB,OAAS4H,EAAI,EACfsC,EAAEmoB,MAAQ,IAAIxyB,MAAMqK,EAAElK,QACtB,IAAK,IAAImD,EAAI,EAAGA,EAAI+G,EAAElK,OAAQmD,IAC5B+G,EAAEmoB,MAAMlvB,GAAK,C,CAIjB,IAAIk8B,EAAOz1B,EAAEwqB,QAAQ6K,aAAan3B,EAAG,EAAGF,GAClB,IAAlBy3B,EAAKjN,WACPxoB,EAAIy1B,EACAn1B,IACFA,EAAEmoB,MAAMzqB,GAAK,IAIjB,IAAK,IAAIyC,EAAIzC,EAAI,EAAGyC,GAAK,EAAGA,IAAK,CAC/B,IAAIi1B,EAAmC,UAAL,EAAxB11B,EAAEyoB,MAAMvqB,EAAE9H,OAASqK,KACE,EAA5BT,EAAEyoB,MAAMvqB,EAAE9H,OAASqK,EAAI,IAO1B,IAHAi1B,EAAKv1B,KAAK2O,IAAI4mB,EAAMF,EAAO,EAAG,UAE9Bx1B,EAAEq1B,aAAan3B,EAAGw3B,EAAIj1B,GACA,IAAfT,EAAEwoB,UACPkN,IACA11B,EAAEwoB,SAAW,EACbxoB,EAAEq1B,aAAan3B,EAAG,EAAGuC,GAChBT,EAAEmrB,WACLnrB,EAAEwoB,UAAY,GAGdloB,IACFA,EAAEmoB,MAAMhoB,GAAKi1B,E,CAajB,OAVIp1B,GACFA,EAAE0pB,SAEJhqB,EAAEgqB,SAGW,QAATuL,GAA4B,IAAVrJ,GACpBlsB,EAAEs0B,OAAOpI,GAGJ,CACLyJ,IAAKr1B,GAAK,KACV1J,IAAKoJ,E,EAQTooB,EAAGjkB,UAAUyxB,OAAS,SAAiBjrB,EAAK4qB,EAAMM,GAGhD,OAFA/N,GAAQnd,EAAIwgB,UAER/1B,KAAK+1B,SACA,CACLwK,IAAK,IAAIvN,EAAG,GACZxxB,IAAK,IAAIwxB,EAAG,IAKM,IAAlBhzB,KAAKozB,UAAmC,IAAjB7d,EAAI6d,UAC7BnN,EAAMjmB,KAAK83B,MAAM0I,OAAOjrB,EAAK4qB,GAEhB,QAATA,IACFI,EAAMta,EAAIsa,IAAIzI,OAGH,QAATqI,IACF3+B,EAAMykB,EAAIzkB,IAAIs2B,MACV2I,GAA6B,IAAjBj/B,EAAI4xB,UAClB5xB,EAAIw3B,KAAKzjB,IAIN,CACLgrB,IAAKA,EACL/+B,IAAKA,IAIa,IAAlBxB,KAAKozB,UAAmC,IAAjB7d,EAAI6d,UAC7BnN,EAAMjmB,KAAKwgC,OAAOjrB,EAAIuiB,MAAOqI,GAEhB,QAATA,IACFI,EAAMta,EAAIsa,IAAIzI,OAGT,CACLyI,IAAKA,EACL/+B,IAAKykB,EAAIzkB,MAI0B,IAAlCxB,KAAKozB,SAAW7d,EAAI6d,WACvBnN,EAAMjmB,KAAK83B,MAAM0I,OAAOjrB,EAAIuiB,MAAOqI,GAEtB,QAATA,IACF3+B,EAAMykB,EAAIzkB,IAAIs2B,MACV2I,GAA6B,IAAjBj/B,EAAI4xB,UAClB5xB,EAAIy3B,KAAK1jB,IAIN,CACLgrB,IAAKta,EAAIsa,IACT/+B,IAAKA,IAOL+T,EAAIvU,OAAShB,KAAKgB,QAAUhB,KAAKo0B,IAAI7e,GAAO,EACvC,CACLgrB,IAAK,IAAIvN,EAAG,GACZxxB,IAAKxB,MAKU,IAAfuV,EAAIvU,OACO,QAATm/B,EACK,CACLI,IAAKvgC,KAAK0gC,KAAKnrB,EAAI8d,MAAM,IACzB7xB,IAAK,MAII,QAAT2+B,EACK,CACLI,IAAK,KACL/+B,IAAK,IAAIwxB,EAAGhzB,KAAKg2B,MAAMzgB,EAAI8d,MAAM,MAI9B,CACLkN,IAAKvgC,KAAK0gC,KAAKnrB,EAAI8d,MAAM,IACzB7xB,IAAK,IAAIwxB,EAAGhzB,KAAKg2B,MAAMzgB,EAAI8d,MAAM,MAI9BrzB,KAAKkgC,SAAS3qB,EAAK4qB,GAlF1B,IAAII,EAAK/+B,EAAKykB,C,EAsFhB+M,EAAGjkB,UAAUwxB,IAAM,SAAchrB,GAC/B,OAAOvV,KAAKwgC,OAAOjrB,EAAK,OAAO,GAAOgrB,G,EAIxCvN,EAAGjkB,UAAUvN,IAAM,SAAc+T,GAC/B,OAAOvV,KAAKwgC,OAAOjrB,EAAK,OAAO,GAAO/T,G,EAGxCwxB,EAAGjkB,UAAU4xB,KAAO,SAAeprB,GACjC,OAAOvV,KAAKwgC,OAAOjrB,EAAK,OAAO,GAAM/T,G,EAIvCwxB,EAAGjkB,UAAU6xB,SAAW,SAAmBrrB,GACzC,IAAIsrB,EAAK7gC,KAAKwgC,OAAOjrB,GAGrB,GAAIsrB,EAAGr/B,IAAIu0B,SAAU,OAAO8K,EAAGN,IAE/B,IAAI/+B,EAA0B,IAApBq/B,EAAGN,IAAInN,SAAiByN,EAAGr/B,IAAIy3B,KAAK1jB,GAAOsrB,EAAGr/B,IAEpDs/B,EAAOvrB,EAAImqB,MAAM,GACjBjvB,EAAK8E,EAAIwrB,MAAM,GACf3M,EAAM5yB,EAAI4yB,IAAI0M,GAGlB,OAAI1M,EAAM,GAAa,IAAP3jB,GAAoB,IAAR2jB,EAAmByM,EAAGN,IAGvB,IAApBM,EAAGN,IAAInN,SAAiByN,EAAGN,IAAIV,MAAM,GAAKgB,EAAGN,IAAI/I,MAAM,E,EAGhExE,EAAGjkB,UAAUinB,MAAQ,SAAgBzgB,GACnC,IAAIipB,EAAWjpB,EAAM,EACjBipB,IAAUjpB,GAAOA,GAErBmd,EAAOnd,GAAO,UAId,IAHA,IAAInP,EAAI,SAAYmP,EAEhByrB,EAAM,EACD78B,EAAInE,KAAKgB,OAAS,EAAGmD,GAAK,EAAGA,IACpC68B,GAAO56B,EAAI46B,GAAuB,EAAhBhhC,KAAKqzB,MAAMlvB,KAAWoR,EAG1C,OAAOipB,GAAYwC,EAAMA,C,EAI3BhO,EAAGjkB,UAAUkyB,KAAO,SAAe1rB,GACjC,OAAOvV,KAAKg2B,MAAMzgB,E,EAIpByd,EAAGjkB,UAAUknB,MAAQ,SAAgB1gB,GACnC,IAAIipB,EAAWjpB,EAAM,EACjBipB,IAAUjpB,GAAOA,GAErBmd,EAAOnd,GAAO,UAGd,IADA,IAAIP,EAAQ,EACH7Q,EAAInE,KAAKgB,OAAS,EAAGmD,GAAK,EAAGA,IAAK,CACzC,IAAIuwB,GAAqB,EAAhB10B,KAAKqzB,MAAMlvB,IAAkB,SAAR6Q,EAC9BhV,KAAKqzB,MAAMlvB,GAAKuwB,EAAKnf,EAAO,EAC5BP,EAAQ0f,EAAInf,C,CAId,OADAvV,KAAK40B,SACE4J,EAAWx+B,KAAK43B,OAAS53B,I,EAGlCgzB,EAAGjkB,UAAU2xB,KAAO,SAAenrB,GACjC,OAAOvV,KAAKo1B,QAAQa,MAAM1gB,E,EAG5Byd,EAAGjkB,UAAUmyB,KAAO,SAAe96B,GACjCssB,EAAsB,IAAftsB,EAAEgtB,UACTV,GAAQtsB,EAAE2vB,UAEV,IAAI5wB,EAAInF,KACJwF,EAAIY,EAAEgvB,QAGRjwB,EADiB,IAAfA,EAAEiuB,SACAjuB,EAAEw7B,KAAKv6B,GAEPjB,EAAEiwB,QAaR,IATA,IAAI3pB,EAAI,IAAIunB,EAAG,GACXmO,EAAI,IAAInO,EAAG,GAGXoO,EAAI,IAAIpO,EAAG,GACXnuB,EAAI,IAAImuB,EAAG,GAEX5hB,EAAI,EAEDjM,EAAEk8B,UAAY77B,EAAE67B,UACrBl8B,EAAE+5B,OAAO,GACT15B,EAAE05B,OAAO,KACP9tB,EAMJ,IAHA,IAAIkwB,EAAK97B,EAAE4vB,QACPmM,EAAKp8B,EAAEiwB,SAEHjwB,EAAE4wB,UAAU,CAClB,IAAK,IAAI5xB,EAAI,EAAGq9B,EAAK,EAAyB,IAArBr8B,EAAEkuB,MAAM,GAAKmO,IAAar9B,EAAI,KAAMA,EAAGq9B,IAAO,GACvE,GAAIr9B,EAAI,EAEN,IADAgB,EAAE+5B,OAAO/6B,GACFA,KAAM,IACPsH,EAAEg2B,SAAWN,EAAEM,WACjBh2B,EAAEutB,KAAKsI,GACPH,EAAElI,KAAKsI,IAGT91B,EAAEyzB,OAAO,GACTiC,EAAEjC,OAAO,GAIb,IAAK,IAAI7zB,EAAI,EAAGq2B,EAAK,EAAyB,IAArBl8B,EAAE6tB,MAAM,GAAKqO,IAAar2B,EAAI,KAAMA,EAAGq2B,IAAO,GACvE,GAAIr2B,EAAI,EAEN,IADA7F,EAAE05B,OAAO7zB,GACFA,KAAM,IACP+1B,EAAEK,SAAW58B,EAAE48B,WACjBL,EAAEpI,KAAKsI,GACPz8B,EAAEo0B,KAAKsI,IAGTH,EAAElC,OAAO,GACTr6B,EAAEq6B,OAAO,GAIT/5B,EAAEivB,IAAI5uB,IAAM,GACdL,EAAE8zB,KAAKzzB,GACPiG,EAAEwtB,KAAKmI,GACPD,EAAElI,KAAKp0B,KAEPW,EAAEyzB,KAAK9zB,GACPi8B,EAAEnI,KAAKxtB,GACP5G,EAAEo0B,KAAKkI,G,CAIX,MAAO,CACLv2B,EAAGw2B,EACHt4B,EAAGjE,EACH88B,IAAKn8B,EAAEq5B,OAAOztB,G,EAOlB4hB,EAAGjkB,UAAU6yB,OAAS,SAAiBx7B,GACrCssB,EAAsB,IAAftsB,EAAEgtB,UACTV,GAAQtsB,EAAE2vB,UAEV,IAAInrB,EAAI5K,KACJ8I,EAAI1C,EAAEgvB,QAGRxqB,EADiB,IAAfA,EAAEwoB,SACAxoB,EAAE+1B,KAAKv6B,GAEPwE,EAAEwqB,QAQR,IALA,IAuCInP,EAvCA1e,EAAK,IAAIyrB,EAAG,GACZxrB,EAAK,IAAIwrB,EAAG,GAEZ6O,EAAQ/4B,EAAEssB,QAEPxqB,EAAEk3B,KAAK,GAAK,GAAKh5B,EAAEg5B,KAAK,GAAK,GAAG,CACrC,IAAK,IAAI39B,EAAI,EAAGq9B,EAAK,EAAyB,IAArB52B,EAAEyoB,MAAM,GAAKmO,IAAar9B,EAAI,KAAMA,EAAGq9B,IAAO,GACvE,GAAIr9B,EAAI,EAEN,IADAyG,EAAEs0B,OAAO/6B,GACFA,KAAM,GACPoD,EAAGk6B,SACLl6B,EAAGyxB,KAAK6I,GAGVt6B,EAAG23B,OAAO,GAId,IAAK,IAAI7zB,EAAI,EAAGq2B,EAAK,EAAyB,IAArB54B,EAAEuqB,MAAM,GAAKqO,IAAar2B,EAAI,KAAMA,EAAGq2B,IAAO,GACvE,GAAIr2B,EAAI,EAEN,IADAvC,EAAEo2B,OAAO7zB,GACFA,KAAM,GACP7D,EAAGi6B,SACLj6B,EAAGwxB,KAAK6I,GAGVr6B,EAAG03B,OAAO,GAIVt0B,EAAEwpB,IAAItrB,IAAM,GACd8B,EAAEquB,KAAKnwB,GACPvB,EAAG0xB,KAAKzxB,KAERsB,EAAEmwB,KAAKruB,GACPpD,EAAGyxB,KAAK1xB,G,CAeZ,OATE0e,EADgB,IAAdrb,EAAEk3B,KAAK,GACHv6B,EAEAC,GAGAs6B,KAAK,GAAK,GAChB7b,EAAI+S,KAAK5yB,GAGJ6f,C,EAGT+M,EAAGjkB,UAAU4yB,IAAM,SAAcpsB,GAC/B,GAAIvV,KAAK+1B,SAAU,OAAOxgB,EAAIga,MAC9B,GAAIha,EAAIwgB,SAAU,OAAO/1B,KAAKuvB,MAE9B,IAAI3kB,EAAI5K,KAAKo1B,QACTtsB,EAAIyM,EAAI6f,QACZxqB,EAAEwoB,SAAW,EACbtqB,EAAEsqB,SAAW,EAGb,IAAK,IAAI0D,EAAQ,EAAGlsB,EAAEy2B,UAAYv4B,EAAEu4B,SAAUvK,IAC5ClsB,EAAEs0B,OAAO,GACTp2B,EAAEo2B,OAAO,GAGX,OAAG,CACD,KAAOt0B,EAAEy2B,UACPz2B,EAAEs0B,OAAO,GAEX,KAAOp2B,EAAEu4B,UACPv4B,EAAEo2B,OAAO,GAGX,IAAI96B,EAAIwG,EAAEwpB,IAAItrB,GACd,GAAI1E,EAAI,EAAG,CAET,IAAI+G,EAAIP,EACRA,EAAI9B,EACJA,EAAIqC,C,MACC,GAAU,IAAN/G,GAAyB,IAAd0E,EAAEg5B,KAAK,GAC3B,MAGFl3B,EAAEquB,KAAKnwB,E,CAGT,OAAOA,EAAE+1B,OAAO/H,E,EAIlB9D,EAAGjkB,UAAUgzB,KAAO,SAAexsB,GACjC,OAAOvV,KAAKkhC,KAAK3rB,GAAK3K,EAAE+1B,KAAKprB,E,EAG/Byd,EAAGjkB,UAAUsyB,OAAS,WACpB,OAA+B,IAAP,EAAhBrhC,KAAKqzB,MAAM,G,EAGrBL,EAAGjkB,UAAU0yB,MAAQ,WACnB,OAA+B,IAAP,EAAhBzhC,KAAKqzB,MAAM,G,EAIrBL,EAAGjkB,UAAUgyB,MAAQ,SAAgBxrB,GACnC,OAAOvV,KAAKqzB,MAAM,GAAK9d,C,EAIzByd,EAAGjkB,UAAUizB,MAAQ,SAAgBlJ,GACnCpG,EAAsB,iBAARoG,GACd,IAAI10B,EAAI00B,EAAM,GACV5vB,GAAK4vB,EAAM10B,GAAK,GAChB8G,EAAI,GAAK9G,EAGb,GAAIpE,KAAKgB,QAAUkI,EAGjB,OAFAlJ,KAAKq1B,QAAQnsB,EAAI,GACjBlJ,KAAKqzB,MAAMnqB,IAAMgC,EACVlL,KAKT,IADA,IAAIgV,EAAQ9J,EACH/G,EAAI+E,EAAa,IAAV8L,GAAe7Q,EAAInE,KAAKgB,OAAQmD,IAAK,CACnD,IAAIuwB,EAAoB,EAAhB10B,KAAKqzB,MAAMlvB,GAEnB6Q,GADA0f,GAAK1f,KACS,GACd0f,GAAK,SACL10B,KAAKqzB,MAAMlvB,GAAKuwB,C,CAMlB,OAJc,IAAV1f,IACFhV,KAAKqzB,MAAMlvB,GAAK6Q,EAChBhV,KAAKgB,UAEAhB,I,EAGTgzB,EAAGjkB,UAAUgnB,OAAS,WACpB,OAAuB,IAAhB/1B,KAAKgB,QAAkC,IAAlBhB,KAAKqzB,MAAM,E,EAGzCL,EAAGjkB,UAAU+yB,KAAO,SAAevsB,GACjC,IAOI0Q,EAPAmN,EAAW7d,EAAM,EAErB,GAAsB,IAAlBvV,KAAKozB,WAAmBA,EAAU,OAAO,EAC7C,GAAsB,IAAlBpzB,KAAKozB,UAAkBA,EAAU,OAAO,EAK5C,GAHApzB,KAAK40B,SAGD50B,KAAKgB,OAAS,EAChBilB,EAAM,MACD,CACDmN,IACF7d,GAAOA,GAGTmd,EAAOnd,GAAO,SAAW,qBAEzB,IAAImf,EAAoB,EAAhB10B,KAAKqzB,MAAM,GACnBpN,EAAMyO,IAAMnf,EAAM,EAAImf,EAAInf,GAAM,EAAK,C,CAEvC,OAAsB,IAAlBvV,KAAKozB,SAA8B,GAANnN,EAC1BA,C,EAOT+M,EAAGjkB,UAAUqlB,IAAM,SAAc7e,GAC/B,GAAsB,IAAlBvV,KAAKozB,UAAmC,IAAjB7d,EAAI6d,SAAgB,OAAO,EACtD,GAAsB,IAAlBpzB,KAAKozB,UAAmC,IAAjB7d,EAAI6d,SAAgB,OAAO,EAEtD,IAAInN,EAAMjmB,KAAKiiC,KAAK1sB,GACpB,OAAsB,IAAlBvV,KAAKozB,SAA8B,GAANnN,EAC1BA,C,EAIT+M,EAAGjkB,UAAUkzB,KAAO,SAAe1sB,GAEjC,GAAIvV,KAAKgB,OAASuU,EAAIvU,OAAQ,OAAO,EACrC,GAAIhB,KAAKgB,OAASuU,EAAIvU,OAAQ,OAAO,EAGrC,IADA,IAAIilB,EAAM,EACD9hB,EAAInE,KAAKgB,OAAS,EAAGmD,GAAK,EAAGA,IAAK,CACzC,IAAIyG,EAAoB,EAAhB5K,KAAKqzB,MAAMlvB,GACf2E,EAAmB,EAAfyM,EAAI8d,MAAMlvB,GAElB,GAAIyG,IAAM9B,EAAV,CACI8B,EAAI9B,EACNmd,GAAM,EACGrb,EAAI9B,IACbmd,EAAM,GAER,KANa,C,CAQf,OAAOA,C,EAGT+M,EAAGjkB,UAAUmzB,IAAM,SAAc3sB,GAC/B,OAA0B,IAAnBvV,KAAK8hC,KAAKvsB,E,EAGnByd,EAAGjkB,UAAUozB,GAAK,SAAa5sB,GAC7B,OAAyB,IAAlBvV,KAAKo0B,IAAI7e,E,EAGlByd,EAAGjkB,UAAUqzB,KAAO,SAAe7sB,GACjC,OAAOvV,KAAK8hC,KAAKvsB,IAAQ,C,EAG3Byd,EAAGjkB,UAAUszB,IAAM,SAAc9sB,GAC/B,OAAOvV,KAAKo0B,IAAI7e,IAAQ,C,EAG1Byd,EAAGjkB,UAAUuzB,IAAM,SAAc/sB,GAC/B,OAA0B,IAAnBvV,KAAK8hC,KAAKvsB,E,EAGnByd,EAAGjkB,UAAUwzB,GAAK,SAAahtB,GAC7B,OAAyB,IAAlBvV,KAAKo0B,IAAI7e,E,EAGlByd,EAAGjkB,UAAUyzB,KAAO,SAAejtB,GACjC,OAAOvV,KAAK8hC,KAAKvsB,IAAQ,C,EAG3Byd,EAAGjkB,UAAU0zB,IAAM,SAAcltB,GAC/B,OAAOvV,KAAKo0B,IAAI7e,IAAQ,C,EAG1Byd,EAAGjkB,UAAU2zB,IAAM,SAAcntB,GAC/B,OAA0B,IAAnBvV,KAAK8hC,KAAKvsB,E,EAGnByd,EAAGjkB,UAAU4zB,GAAK,SAAaptB,GAC7B,OAAyB,IAAlBvV,KAAKo0B,IAAI7e,E,EAOlByd,EAAGM,IAAM,SAAc/d,GACrB,OAAO,IAAIqtB,EAAIrtB,E,EAGjByd,EAAGjkB,UAAU8zB,MAAQ,SAAgBC,GAGnC,OAFApQ,GAAQ1yB,KAAKszB,IAAK,yCAClBZ,EAAyB,IAAlB1yB,KAAKozB,SAAgB,iCACrB0P,EAAIC,UAAU/iC,MAAMgjC,UAAUF,E,EAGvC9P,EAAGjkB,UAAUk0B,QAAU,WAErB,OADAvQ,EAAO1yB,KAAKszB,IAAK,wDACVtzB,KAAKszB,IAAI4P,YAAYljC,K,EAG9BgzB,EAAGjkB,UAAUi0B,UAAY,SAAoBF,GAE3C,OADA9iC,KAAKszB,IAAMwP,EACJ9iC,I,EAGTgzB,EAAGjkB,UAAUo0B,SAAW,SAAmBL,GAEzC,OADApQ,GAAQ1yB,KAAKszB,IAAK,yCACXtzB,KAAKgjC,UAAUF,E,EAGxB9P,EAAGjkB,UAAUq0B,OAAS,SAAiB7tB,GAErC,OADAmd,EAAO1yB,KAAKszB,IAAK,sCACVtzB,KAAKszB,IAAI1yB,IAAIZ,KAAMuV,E,EAG5Byd,EAAGjkB,UAAUs0B,QAAU,SAAkB9tB,GAEvC,OADAmd,EAAO1yB,KAAKszB,IAAK,uCACVtzB,KAAKszB,IAAI0F,KAAKh5B,KAAMuV,E,EAG7Byd,EAAGjkB,UAAUu0B,OAAS,SAAiB/tB,GAErC,OADAmd,EAAO1yB,KAAKszB,IAAK,sCACVtzB,KAAKszB,IAAIlG,IAAIptB,KAAMuV,E,EAG5Byd,EAAGjkB,UAAUw0B,QAAU,SAAkBhuB,GAEvC,OADAmd,EAAO1yB,KAAKszB,IAAK,uCACVtzB,KAAKszB,IAAI2F,KAAKj5B,KAAMuV,E,EAG7Byd,EAAGjkB,UAAUy0B,OAAS,SAAiBjuB,GAErC,OADAmd,EAAO1yB,KAAKszB,IAAK,sCACVtzB,KAAKszB,IAAImQ,IAAIzjC,KAAMuV,E,EAG5Byd,EAAGjkB,UAAU20B,OAAS,SAAiBnuB,GAGrC,OAFAmd,EAAO1yB,KAAKszB,IAAK,sCACjBtzB,KAAKszB,IAAIqQ,SAAS3jC,KAAMuV,GACjBvV,KAAKszB,IAAIvJ,IAAI/pB,KAAMuV,E,EAG5Byd,EAAGjkB,UAAU60B,QAAU,SAAkBruB,GAGvC,OAFAmd,EAAO1yB,KAAKszB,IAAK,sCACjBtzB,KAAKszB,IAAIqQ,SAAS3jC,KAAMuV,GACjBvV,KAAKszB,IAAIiH,KAAKv6B,KAAMuV,E,EAG7Byd,EAAGjkB,UAAU80B,OAAS,WAGpB,OAFAnR,EAAO1yB,KAAKszB,IAAK,sCACjBtzB,KAAKszB,IAAIwQ,SAAS9jC,MACXA,KAAKszB,IAAIoL,IAAI1+B,K,EAGtBgzB,EAAGjkB,UAAUg1B,QAAU,WAGrB,OAFArR,EAAO1yB,KAAKszB,IAAK,uCACjBtzB,KAAKszB,IAAIwQ,SAAS9jC,MACXA,KAAKszB,IAAIqL,KAAK3+B,K,EAIvBgzB,EAAGjkB,UAAUi1B,QAAU,WAGrB,OAFAtR,EAAO1yB,KAAKszB,IAAK,uCACjBtzB,KAAKszB,IAAIwQ,SAAS9jC,MACXA,KAAKszB,IAAI2Q,KAAKjkC,K,EAGvBgzB,EAAGjkB,UAAUm1B,QAAU,WAGrB,OAFAxR,EAAO1yB,KAAKszB,IAAK,uCACjBtzB,KAAKszB,IAAIwQ,SAAS9jC,MACXA,KAAKszB,IAAIyO,KAAK/hC,K,EAIvBgzB,EAAGjkB,UAAUo1B,OAAS,WAGpB,OAFAzR,EAAO1yB,KAAKszB,IAAK,sCACjBtzB,KAAKszB,IAAIwQ,SAAS9jC,MACXA,KAAKszB,IAAIwE,IAAI93B,K,EAGtBgzB,EAAGjkB,UAAUq1B,OAAS,SAAiB7uB,GAGrC,OAFAmd,EAAO1yB,KAAKszB,MAAQ/d,EAAI+d,IAAK,qBAC7BtzB,KAAKszB,IAAIwQ,SAAS9jC,MACXA,KAAKszB,IAAInI,IAAInrB,KAAMuV,E,EAI5B,IAAI8uB,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQ3kB,EAAM3Z,GAErBpG,KAAK+f,KAAOA,EACZ/f,KAAKoG,EAAI,IAAI4sB,EAAG5sB,EAAG,IACnBpG,KAAK0F,EAAI1F,KAAKoG,EAAE+wB,YAChBn3B,KAAKiG,EAAI,IAAI+sB,EAAG,GAAG6L,OAAO7+B,KAAK0F,GAAGuzB,KAAKj5B,KAAKoG,GAE5CpG,KAAK2Y,IAAM3Y,KAAK2kC,M,CAiDlB,SAASC,IACPF,EAAOrpB,KACLrb,KACA,OACA,0E,CA+DJ,SAAS6kC,IACPH,EAAOrpB,KACLrb,KACA,OACA,iE,CAIJ,SAAS8kC,IACPJ,EAAOrpB,KACLrb,KACA,OACA,wD,CAIJ,SAAS+kC,IAEPL,EAAOrpB,KACLrb,KACA,QACA,sE,CA8CJ,SAAS4iC,EAAKh6B,GACZ,GAAiB,iBAANA,EAAgB,CACzB,IAAIo8B,EAAQhS,EAAGiS,OAAOr8B,GACtB5I,KAAK4I,EAAIo8B,EAAM5+B,EACfpG,KAAKglC,MAAQA,C,MAEbtS,EAAO9pB,EAAEs5B,IAAI,GAAI,kCACjBliC,KAAK4I,EAAIA,EACT5I,KAAKglC,MAAQ,I,CAoOjB,SAASE,EAAMt8B,GACbg6B,EAAIvnB,KAAKrb,KAAM4I,GAEf5I,KAAK82B,MAAQ92B,KAAK4I,EAAEuuB,YAChBn3B,KAAK82B,MAAQ,IAAO,IACtB92B,KAAK82B,OAAS,GAAM92B,KAAK82B,MAAQ,IAGnC92B,KAAKoE,EAAI,IAAI4uB,EAAG,GAAG6L,OAAO7+B,KAAK82B,OAC/B92B,KAAKyQ,GAAKzQ,KAAKmlC,KAAKnlC,KAAKoE,EAAEs6B,OAC3B1+B,KAAKolC,KAAOplC,KAAKoE,EAAEw9B,OAAO5hC,KAAK4I,GAE/B5I,KAAKqlC,KAAOrlC,KAAKolC,KAAKrb,IAAI/pB,KAAKoE,GAAGy7B,MAAM,GAAGU,IAAIvgC,KAAK4I,GACpD5I,KAAKqlC,KAAOrlC,KAAKqlC,KAAK1E,KAAK3gC,KAAKoE,GAChCpE,KAAKqlC,KAAOrlC,KAAKoE,EAAEgpB,IAAIptB,KAAKqlC,K,CA9a9BX,EAAO31B,UAAU41B,KAAO,WACtB,IAAIhsB,EAAM,IAAIqa,EAAG,MAEjB,OADAra,EAAI0a,MAAQ,IAAIxyB,MAAMkK,KAAK0pB,KAAKz0B,KAAK0F,EAAI,KAClCiT,C,EAGT+rB,EAAO31B,UAAUu2B,QAAU,SAAkB/vB,GAG3C,IACIgwB,EADAnhC,EAAImR,EAGR,GACEvV,KAAKW,MAAMyD,EAAGpE,KAAK2Y,KAGnB4sB,GADAnhC,GADAA,EAAIpE,KAAKwlC,MAAMphC,IACT40B,KAAKh5B,KAAK2Y,MACPwe,kBACFoO,EAAOvlC,KAAK0F,GAErB,IAAI0uB,EAAMmR,EAAOvlC,KAAK0F,GAAI,EAAKtB,EAAE69B,KAAKjiC,KAAKoG,GAgB3C,OAfY,IAARguB,GACFhwB,EAAEivB,MAAM,GAAK,EACbjvB,EAAEpD,OAAS,GACFozB,EAAM,EACfhwB,EAAE60B,KAAKj5B,KAAKoG,QAEImU,IAAZnW,EAAEqhC,MAEJrhC,EAAEqhC,QAGFrhC,EAAEwwB,SAICxwB,C,EAGTsgC,EAAO31B,UAAUpO,MAAQ,SAAgByuB,EAAOrpB,GAC9CqpB,EAAM8P,OAAOl/B,KAAK0F,EAAG,EAAGK,E,EAG1B2+B,EAAO31B,UAAUy2B,MAAQ,SAAgBjwB,GACvC,OAAOA,EAAIglB,KAAKv6B,KAAKiG,E,EASvB0sB,EAASiS,EAAMF,GAEfE,EAAK71B,UAAUpO,MAAQ,SAAgByuB,EAAOsC,GAK5C,IAHA,IAAIvgB,EAAO,QAEPu0B,EAAS36B,KAAK2O,IAAI0V,EAAMpuB,OAAQ,GAC3BmD,EAAI,EAAGA,EAAIuhC,EAAQvhC,IAC1ButB,EAAO2B,MAAMlvB,GAAKirB,EAAMiE,MAAMlvB,GAIhC,GAFAutB,EAAO1wB,OAAS0kC,EAEZtW,EAAMpuB,QAAU,EAGlB,OAFAouB,EAAMiE,MAAM,GAAK,OACjBjE,EAAMpuB,OAAS,GAKjB,IAAI2kC,EAAOvW,EAAMiE,MAAM,GAGvB,IAFA3B,EAAO2B,MAAM3B,EAAO1wB,UAAY2kC,EAAOx0B,EAElChN,EAAI,GAAIA,EAAIirB,EAAMpuB,OAAQmD,IAAK,CAClC,IAAIyhC,EAAwB,EAAjBxW,EAAMiE,MAAMlvB,GACvBirB,EAAMiE,MAAMlvB,EAAI,KAAQyhC,EAAOz0B,IAAS,EAAMw0B,IAAS,GACvDA,EAAOC,C,CAETD,KAAU,GACVvW,EAAMiE,MAAMlvB,EAAI,IAAMwhC,EACT,IAATA,GAAcvW,EAAMpuB,OAAS,GAC/BouB,EAAMpuB,QAAU,GAEhBouB,EAAMpuB,QAAU,C,EAIpB4jC,EAAK71B,UAAUy2B,MAAQ,SAAgBjwB,GAErCA,EAAI8d,MAAM9d,EAAIvU,QAAU,EACxBuU,EAAI8d,MAAM9d,EAAIvU,OAAS,GAAK,EAC5BuU,EAAIvU,QAAU,EAId,IADA,IAAI6kB,EAAK,EACA1hB,EAAI,EAAGA,EAAIoR,EAAIvU,OAAQmD,IAAK,CACnC,IAAIuwB,EAAmB,EAAfnf,EAAI8d,MAAMlvB,GAClB0hB,GAAU,IAAJ6O,EACNnf,EAAI8d,MAAMlvB,GAAU,SAAL0hB,EACfA,EAAS,GAAJ6O,GAAY7O,EAAM,SAAa,E,CAUtC,OANkC,IAA9BtQ,EAAI8d,MAAM9d,EAAIvU,OAAS,KACzBuU,EAAIvU,SAC8B,IAA9BuU,EAAI8d,MAAM9d,EAAIvU,OAAS,IACzBuU,EAAIvU,UAGDuU,C,EASTod,EAASkS,EAAMH,GAQf/R,EAASmS,EAAMJ,GASf/R,EAASoS,EAAQL,GAEjBK,EAAOh2B,UAAUy2B,MAAQ,SAAgBjwB,GAGvC,IADA,IAAIP,EAAQ,EACH7Q,EAAI,EAAGA,EAAIoR,EAAIvU,OAAQmD,IAAK,CACnC,IAAIyhB,EAA0B,IAAL,EAAfrQ,EAAI8d,MAAMlvB,IAAiB6Q,EACjC6Q,EAAU,SAALD,EACTA,KAAQ,GAERrQ,EAAI8d,MAAMlvB,GAAK0hB,EACf7Q,EAAQ4Q,C,CAKV,OAHc,IAAV5Q,IACFO,EAAI8d,MAAM9d,EAAIvU,UAAYgU,GAErBO,C,EAITyd,EAAGiS,OAAS,SAAgBllB,GAE1B,GAAIskB,EAAOtkB,GAAO,OAAOskB,EAAOtkB,GAEhC,IAAIilB,EACJ,GAAa,SAATjlB,EACFilB,EAAQ,IAAIJ,OACP,GAAa,SAAT7kB,EACTilB,EAAQ,IAAIH,OACP,GAAa,SAAT9kB,EACTilB,EAAQ,IAAIF,MACP,IAAa,WAAT/kB,EAGT,MAAM,IAAIzd,MAAM,iBAAmByd,GAFnCilB,EAAQ,IAAID,CAE4B,CAI1C,OAFAV,EAAOtkB,GAAQilB,EAERA,C,EAkBTpC,EAAI7zB,UAAU+0B,SAAW,SAAmBl5B,GAC1C8nB,EAAsB,IAAf9nB,EAAEwoB,SAAgB,iCACzBV,EAAO9nB,EAAE0oB,IAAK,kC,EAGhBsP,EAAI7zB,UAAU40B,SAAW,SAAmB/4B,EAAG9B,GAC7C4pB,EAAqC,IAA7B9nB,EAAEwoB,SAAWtqB,EAAEsqB,UAAiB,iCACxCV,EAAO9nB,EAAE0oB,KAAO1oB,EAAE0oB,MAAQxqB,EAAEwqB,IAC1B,kC,EAGJsP,EAAI7zB,UAAUo2B,KAAO,SAAev6B,GAClC,OAAI5K,KAAKglC,MAAchlC,KAAKglC,MAAMM,QAAQ16B,GAAGo4B,UAAUhjC,OAEvDg0B,EAAKppB,EAAGA,EAAE+1B,KAAK3gC,KAAK4I,GAAGo6B,UAAUhjC,OAC1B4K,E,EAGTg4B,EAAI7zB,UAAU+oB,IAAM,SAAcltB,GAChC,OAAIA,EAAEmrB,SACGnrB,EAAEwqB,QAGJp1B,KAAK4I,EAAEwkB,IAAIxiB,GAAGo4B,UAAUhjC,K,EAGjC4iC,EAAI7zB,UAAUnO,IAAM,SAAcgK,EAAG9B,GACnC9I,KAAK2jC,SAAS/4B,EAAG9B,GAEjB,IAAImd,EAAMrb,EAAEhK,IAAIkI,GAIhB,OAHImd,EAAImO,IAAIp0B,KAAK4I,IAAM,GACrBqd,EAAIgT,KAAKj5B,KAAK4I,GAETqd,EAAI+c,UAAUhjC,K,EAGvB4iC,EAAI7zB,UAAUiqB,KAAO,SAAepuB,EAAG9B,GACrC9I,KAAK2jC,SAAS/4B,EAAG9B,GAEjB,IAAImd,EAAMrb,EAAEouB,KAAKlwB,GAIjB,OAHImd,EAAImO,IAAIp0B,KAAK4I,IAAM,GACrBqd,EAAIgT,KAAKj5B,KAAK4I,GAETqd,C,EAGT2c,EAAI7zB,UAAUqe,IAAM,SAAcxiB,EAAG9B,GACnC9I,KAAK2jC,SAAS/4B,EAAG9B,GAEjB,IAAImd,EAAMrb,EAAEwiB,IAAItkB,GAIhB,OAHImd,EAAI6b,KAAK,GAAK,GAChB7b,EAAI+S,KAAKh5B,KAAK4I,GAETqd,EAAI+c,UAAUhjC,K,EAGvB4iC,EAAI7zB,UAAUkqB,KAAO,SAAeruB,EAAG9B,GACrC9I,KAAK2jC,SAAS/4B,EAAG9B,GAEjB,IAAImd,EAAMrb,EAAEquB,KAAKnwB,GAIjB,OAHImd,EAAI6b,KAAK,GAAK,GAChB7b,EAAI+S,KAAKh5B,KAAK4I,GAETqd,C,EAGT2c,EAAI7zB,UAAU00B,IAAM,SAAc74B,EAAG2K,GAEnC,OADAvV,KAAK8jC,SAASl5B,GACP5K,KAAKmlC,KAAKv6B,EAAE40B,MAAMjqB,G,EAG3BqtB,EAAI7zB,UAAUwrB,KAAO,SAAe3vB,EAAG9B,GAErC,OADA9I,KAAK2jC,SAAS/4B,EAAG9B,GACV9I,KAAKmlC,KAAKv6B,EAAE2vB,KAAKzxB,G,EAG1B85B,EAAI7zB,UAAUgb,IAAM,SAAcnf,EAAG9B,GAEnC,OADA9I,KAAK2jC,SAAS/4B,EAAG9B,GACV9I,KAAKmlC,KAAKv6B,EAAEmf,IAAIjhB,G,EAGzB85B,EAAI7zB,UAAU4vB,KAAO,SAAe/zB,GAClC,OAAO5K,KAAKu6B,KAAK3vB,EAAGA,EAAEwqB,Q,EAGxBwN,EAAI7zB,UAAU2vB,IAAM,SAAc9zB,GAChC,OAAO5K,KAAK+pB,IAAInf,EAAGA,E,EAGrBg4B,EAAI7zB,UAAUk1B,KAAO,SAAer5B,GAClC,GAAIA,EAAEmrB,SAAU,OAAOnrB,EAAEwqB,QAEzB,IAAIyQ,EAAO7lC,KAAK4I,EAAEm4B,MAAM,GAIxB,GAHArO,EAAOmT,EAAO,GAAM,GAGP,IAATA,EAAY,CACd,IAAI1a,EAAMnrB,KAAK4I,EAAEhI,IAAI,IAAIoyB,EAAG,IAAIkM,OAAO,GACvC,OAAOl/B,KAAKmrB,IAAIvgB,EAAGugB,E,CAQrB,IAFA,IAAIjgB,EAAIlL,KAAK4I,EAAEm3B,KAAK,GAChB72B,EAAI,GACAgC,EAAE6qB,UAA2B,IAAf7qB,EAAE61B,MAAM,IAC5B73B,IACAgC,EAAEg0B,OAAO,GAEXxM,GAAQxnB,EAAE6qB,UAEV,IAAI+P,EAAM,IAAI9S,EAAG,GAAG6P,MAAM7iC,MACtB+lC,EAAOD,EAAI3B,SAIX6B,EAAOhmC,KAAK4I,EAAEm3B,KAAK,GAAGb,OAAO,GAC7Bn2B,EAAI/I,KAAK4I,EAAEuuB,YAGf,IAFApuB,EAAI,IAAIiqB,EAAG,EAAIjqB,EAAIA,GAAG85B,MAAM7iC,MAEW,IAAhCA,KAAKmrB,IAAIpiB,EAAGi9B,GAAM5R,IAAI2R,IAC3Bh9B,EAAEs6B,QAAQ0C,GAOZ,IAJA,IAAI7/B,EAAIlG,KAAKmrB,IAAIpiB,EAAGmC,GAChB9G,EAAIpE,KAAKmrB,IAAIvgB,EAAGM,EAAE40B,KAAK,GAAGZ,OAAO,IACjC/zB,EAAInL,KAAKmrB,IAAIvgB,EAAGM,GAChBtC,EAAIM,EACc,IAAfiC,EAAEipB,IAAI0R,IAAY,CAEvB,IADA,IAAIntB,EAAMxN,EACDhH,EAAI,EAAoB,IAAjBwU,EAAIyb,IAAI0R,GAAY3hC,IAClCwU,EAAMA,EAAIkrB,SAEZnR,EAAOvuB,EAAIyE,GACX,IAAIE,EAAI9I,KAAKmrB,IAAIjlB,EAAG,IAAI8sB,EAAG,GAAG6L,OAAOj2B,EAAIzE,EAAI,IAE7CC,EAAIA,EAAEs/B,OAAO56B,GACb5C,EAAI4C,EAAE+6B,SACN14B,EAAIA,EAAEu4B,OAAOx9B,GACb0C,EAAIzE,C,CAGN,OAAOC,C,EAGTw+B,EAAI7zB,UAAUgzB,KAAO,SAAen3B,GAClC,IAAIq7B,EAAMr7B,EAAEg3B,OAAO5hC,KAAK4I,GACxB,OAAqB,IAAjBq9B,EAAI7S,UACN6S,EAAI7S,SAAW,EACRpzB,KAAKmlC,KAAKc,GAAK9B,UAEfnkC,KAAKmlC,KAAKc,E,EAIrBrD,EAAI7zB,UAAUoc,IAAM,SAAcvgB,EAAG2K,GACnC,GAAIA,EAAIwgB,SAAU,OAAO,IAAI/C,EAAG,GAAG6P,MAAM7iC,MACzC,GAAoB,IAAhBuV,EAAIusB,KAAK,GAAU,OAAOl3B,EAAEwqB,QAEhC,IACI8Q,EAAM,IAAIrlC,MAAM,IACpBqlC,EAAI,GAAK,IAAIlT,EAAG,GAAG6P,MAAM7iC,MACzBkmC,EAAI,GAAKt7B,EACT,IAAK,IAAIzG,EAAI,EAAGA,EAAI+hC,EAAIllC,OAAQmD,IAC9B+hC,EAAI/hC,GAAKnE,KAAK+pB,IAAImc,EAAI/hC,EAAI,GAAIyG,GAGhC,IAAIqb,EAAMigB,EAAI,GACVC,EAAU,EACVC,EAAa,EACb/iB,EAAQ9N,EAAI4hB,YAAc,GAK9B,IAJc,IAAV9T,IACFA,EAAQ,IAGLlf,EAAIoR,EAAIvU,OAAS,EAAGmD,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAI6wB,EAAOzf,EAAI8d,MAAMlvB,GACZkH,EAAIgY,EAAQ,EAAGhY,GAAK,EAAGA,IAAK,CACnC,IAAIytB,EAAM9D,GAAS3pB,EAAK,EACpB4a,IAAQigB,EAAI,KACdjgB,EAAMjmB,KAAK0+B,IAAIzY,IAGL,IAAR6S,GAAyB,IAAZqN,GAKjBA,IAAY,EACZA,GAAWrN,GA9BE,MA+BbsN,GACwC,IAANjiC,GAAiB,IAANkH,KAE7C4a,EAAMjmB,KAAK+pB,IAAI9D,EAAKigB,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,C,CAajB/iB,EAAQ,E,CAGV,OAAO4C,C,EAGT2c,EAAI7zB,UAAUg0B,UAAY,SAAoBxtB,GAC5C,IAAInR,EAAImR,EAAIorB,KAAK3gC,KAAK4I,GAEtB,OAAOxE,IAAMmR,EAAMnR,EAAEgxB,QAAUhxB,C,EAGjCw+B,EAAI7zB,UAAUm0B,YAAc,SAAsB3tB,GAChD,IAAI0Q,EAAM1Q,EAAI6f,QAEd,OADAnP,EAAIqN,IAAM,KACHrN,C,EAOT+M,EAAGqT,KAAO,SAAe9wB,GACvB,OAAO,IAAI2vB,EAAK3vB,E,EAmBlBod,EAASuS,EAAMtC,GAEfsC,EAAKn2B,UAAUg0B,UAAY,SAAoBxtB,GAC7C,OAAOvV,KAAKmlC,KAAK5vB,EAAIiqB,MAAMx/B,KAAK82B,O,EAGlCoO,EAAKn2B,UAAUm0B,YAAc,SAAsB3tB,GACjD,IAAInR,EAAIpE,KAAKmlC,KAAK5vB,EAAIwU,IAAI/pB,KAAKolC,OAE/B,OADAhhC,EAAEkvB,IAAM,KACDlvB,C,EAGT8gC,EAAKn2B,UAAUwrB,KAAO,SAAe3vB,EAAG9B,GACtC,GAAI8B,EAAEmrB,UAAYjtB,EAAEitB,SAGlB,OAFAnrB,EAAEyoB,MAAM,GAAK,EACbzoB,EAAE5J,OAAS,EACJ4J,EAGT,IAAIO,EAAIP,EAAE2vB,KAAKzxB,GACX5C,EAAIiF,EAAEy0B,MAAM5/B,KAAK82B,OAAO/M,IAAI/pB,KAAKqlC,MAAM1F,OAAO3/B,KAAK82B,OAAO/M,IAAI/pB,KAAK4I,GACnEvC,EAAI8E,EAAE8tB,KAAK/yB,GAAGg5B,OAAOl/B,KAAK82B,OAC1B7Q,EAAM5f,EAQV,OANIA,EAAE+tB,IAAIp0B,KAAK4I,IAAM,EACnBqd,EAAM5f,EAAE4yB,KAAKj5B,KAAK4I,GACTvC,EAAEy7B,KAAK,GAAK,IACrB7b,EAAM5f,EAAE2yB,KAAKh5B,KAAK4I,IAGbqd,EAAI+c,UAAUhjC,K,EAGvBklC,EAAKn2B,UAAUgb,IAAM,SAAcnf,EAAG9B,GACpC,GAAI8B,EAAEmrB,UAAYjtB,EAAEitB,SAAU,OAAO,IAAI/C,EAAG,GAAGgQ,UAAUhjC,MAEzD,IAAImL,EAAIP,EAAEmf,IAAIjhB,GACV5C,EAAIiF,EAAEy0B,MAAM5/B,KAAK82B,OAAO/M,IAAI/pB,KAAKqlC,MAAM1F,OAAO3/B,KAAK82B,OAAO/M,IAAI/pB,KAAK4I,GACnEvC,EAAI8E,EAAE8tB,KAAK/yB,GAAGg5B,OAAOl/B,KAAK82B,OAC1B7Q,EAAM5f,EAOV,OANIA,EAAE+tB,IAAIp0B,KAAK4I,IAAM,EACnBqd,EAAM5f,EAAE4yB,KAAKj5B,KAAK4I,GACTvC,EAAEy7B,KAAK,GAAK,IACrB7b,EAAM5f,EAAE2yB,KAAKh5B,KAAK4I,IAGbqd,EAAI+c,UAAUhjC,K,EAGvBklC,EAAKn2B,UAAUgzB,KAAO,SAAen3B,GAGnC,OADU5K,KAAKmlC,KAAKv6B,EAAEg3B,OAAO5hC,KAAK4I,GAAGmhB,IAAI/pB,KAAKyQ,KACnCuyB,UAAUhjC,K,CAExB,CA19GA,CA09GmClB,EAAQkB,K,kDC19G5C,IAAAsmC,EAAAvkC,cAAA,SAGAjD,EAAAC,QAAiBunC,EAFF,6D,+ECMX9S,OA+GJ10B,EAAAC,QA9GA,SAAewnC,GACb,GAAIA,EAASvlC,QAAU,IAAO,MAAM,IAAIoV,UAAU,qBAElD,IADA,IAAIowB,EAAW,IAAIhiC,WAAW,KACrB+B,EAAI,EAAGA,EAAIigC,EAASxlC,OAAQuF,IACnCigC,EAASjgC,GAAK,IAEhB,IAAK,IAAI4d,EAAI,EAAGA,EAAIoiB,EAASvlC,OAAQmjB,IAAK,CACxC,IAAIhf,EAAIohC,EAASpnB,OAAOgF,GACpBsiB,EAAKthC,EAAEogB,WAAW,GACtB,GAAqB,MAAjBihB,EAASC,GAAe,MAAM,IAAIrwB,UAAUjR,EAAI,iBACpDqhC,EAASC,GAAMtiB,C,CAEjB,IAAIuiB,EAAOH,EAASvlC,OAChB2lC,EAASJ,EAASpnB,OAAO,GACzBynB,EAAS77B,KAAKynB,IAAIkU,GAAQ37B,KAAKynB,IAAI,KACnCqU,EAAU97B,KAAKynB,IAAI,KAAOznB,KAAKynB,IAAIkU,GAyCvC,SAASI,EAAcC,GACrB,GAAsB,iBAAXA,EAAuB,MAAM,IAAI3wB,UAAU,mBACtD,GAAsB,IAAlB2wB,EAAO/lC,OAAgB,OAAOgmC,EAAQpqB,MAAM,GAKhD,IAJA,IAAIqqB,EAAM,EAENC,EAAS,EACTlmC,EAAS,EACN+lC,EAAOE,KAASN,GACrBO,IACAD,IAMF,IAHA,IAAIlkB,GAAUgkB,EAAO/lC,OAASimC,GAAOL,EAAU,IAAO,EAClDO,EAAO,IAAI3iC,WAAWue,GAEnBgkB,EAAOE,IAAM,CAElB,IAAIjyB,EAAQwxB,EAASO,EAAOxhB,WAAW0hB,IAEvC,GAAc,MAAVjyB,EAAiB,OAErB,IADA,IAAI7Q,EAAI,EACCijC,EAAMrkB,EAAO,GAAc,IAAV/N,GAAe7Q,EAAInD,KAAoB,IAARomC,EAAaA,IAAOjjC,IAC3E6Q,GAAS0xB,EAAQS,EAAKC,KAAU,EAChCD,EAAKC,GAAOpyB,EAAS,MAAS,EAC9BA,EAAQA,EAAS,MAAS,EAE5B,GAAc,IAAVA,EAAe,MAAM,IAAI1S,MAAM,kBACnCtB,EAASmD,EACT8iC,G,CAIF,IADA,IAAII,EAAMtkB,EAAO/hB,EACVqmC,IAAQtkB,GAAsB,IAAdokB,EAAKE,IAC1BA,IAEF,IAAIC,EAAMN,EAAQ3f,YAAY6f,GAAUnkB,EAAOskB,IAC/CC,EAAIngB,KAAK,EAAM,EAAG+f,GAElB,IADA,IAAI77B,EAAI67B,EACDG,IAAQtkB,GACbukB,EAAIj8B,KAAO87B,EAAKE,KAElB,OAAOC,C,CAOT,MAAO,CACLvrB,OAzFF,SAAiBgrB,GAEf,IADIlmC,MAAM8hB,QAAQokB,IAAWA,aAAkBviC,cAAcuiC,EAASC,EAAQlmC,KAAKimC,KAC9EC,EAAQxkB,SAASukB,GAAW,MAAM,IAAI3wB,UAAU,mBACrD,GAAsB,IAAlB2wB,EAAO/lC,OAAgB,MAAO,GAMlC,IAJA,IAAIkmC,EAAS,EACTlmC,EAAS,EACTumC,EAAS,EACTC,EAAOT,EAAO/lC,OACXumC,IAAWC,GAA2B,IAAnBT,EAAOQ,IAC/BA,IACAL,IAMF,IAHA,IAAInkB,GAASykB,EAAOD,GAAUV,EAAU,IAAO,EAC3CY,EAAM,IAAIjjC,WAAWue,GAElBwkB,IAAWC,GAAM,CAItB,IAHA,IAAIxyB,EAAQ+xB,EAAOQ,GAEfpjC,EAAI,EACCujC,EAAM3kB,EAAO,GAAc,IAAV/N,GAAe7Q,EAAInD,KAAoB,IAAR0mC,EAAaA,IAAOvjC,IAC3E6Q,GAAS,IAAOyyB,EAAIC,KAAU,EAC9BD,EAAIC,GAAO1yB,EAAS0xB,IAAU,EAC9B1xB,EAAQA,EAAS0xB,IAAU,EAE7B,GAAc,IAAV1xB,EAAe,MAAM,IAAI1S,MAAM,kBACnCtB,EAASmD,EACTojC,G,CAIF,IADA,IAAII,EAAM5kB,EAAO/hB,EACV2mC,IAAQ5kB,GAAqB,IAAb0kB,EAAIE,IACzBA,IAIF,IADA,IAAIrqB,EAAMqpB,EAAOiB,OAAOV,GACjBS,EAAM5kB,IAAQ4kB,EAAOrqB,GAAOipB,EAASpnB,OAAOsoB,EAAIE,IACvD,OAAOrqB,C,EAoDPwpB,aAAcA,EACd9qB,OARF,SAAiBkD,GACf,IAAIpV,EAASg9B,EAAa5nB,GAC1B,GAAIpV,EAAU,OAAOA,EACrB,MAAM,IAAIxH,MAAM,WAAaokC,EAAO,a,qDC5GxC,IAAAmB,EAAA9lC,cAAA,SACI+lC,EAASD,EAAOrU,OAGpB,SAASuU,EAAWlY,EAAKC,GACvB,IAAK,IAAIrvB,KAAOovB,EACdC,EAAIrvB,GAAOovB,EAAIpvB,E,CAWnB,SAASunC,EAAY9mB,EAAKC,EAAkBngB,GAC1C,OAAO8mC,EAAO5mB,EAAKC,EAAkBngB,E,CATnC8mC,EAAOhnC,MAAQgnC,EAAOlrB,OAASkrB,EAAOzgB,aAAeygB,EAAOxgB,gBAC9DxoB,EAAAC,QAAiB8oC,GAGjBE,EAAUF,EAAQ/oC,EAAAC,SAClBD,EAAAC,QAAQy0B,OAASwU,GAOnBA,EAAWj5B,UAAYnQ,OAAOyb,OAAOytB,EAAO/4B,WAG5Cg5B,EAAUD,EAAQE,GAElBA,EAAWlnC,KAAO,SAAUogB,EAAKC,EAAkBngB,GACjD,GAAmB,iBAARkgB,EACT,MAAM,IAAI9K,UAAU,iCAEtB,OAAO0xB,EAAO5mB,EAAKC,EAAkBngB,E,EAGvCgnC,EAAWprB,MAAQ,SAAUmG,EAAMoE,EAAM7F,GACvC,GAAoB,iBAATyB,EACT,MAAM,IAAI3M,UAAU,6BAEtB,IAAIsG,EAAMorB,EAAO/kB,GAUjB,YATaxI,IAAT4M,EACsB,iBAAb7F,EACT5E,EAAIyK,KAAKA,EAAM7F,GAEf5E,EAAIyK,KAAKA,GAGXzK,EAAIyK,KAAK,GAEJzK,C,EAGTsrB,EAAW3gB,YAAc,SAAUtE,GACjC,GAAoB,iBAATA,EACT,MAAM,IAAI3M,UAAU,6BAEtB,OAAO0xB,EAAO/kB,E,EAGhBilB,EAAW1gB,gBAAkB,SAAUvE,GACrC,GAAoB,iBAATA,EACT,MAAM,IAAI3M,UAAU,6BAEtB,OAAOyxB,EAAOI,WAAWllB,E,mDCikB3B,IAAAmlB,EACAC,EAlnBA,SAASC,EAAQx9B,EAAG8O,EAAKuO,GACvB,OAAOvO,GAAO9O,GAAKA,GAAKqd,C,CAO1B,SAASogB,EAAaliC,GACpB,QAAUoU,IAANpU,EAAiB,MAAO,GAC5B,GAAIA,IAAMvH,OAAOuH,GAAI,OAAOA,EAC5B,MAAMiQ,UAAU,2C,mLAgIlB,SAASkyB,EAAOC,GAEdvoC,KAAKuoC,OAAS,GAAGrnC,MAAMma,KAAKktB,E,CAG9BD,EAAOv5B,UAAY,CAIjBy5B,YAAa,WACX,OAAQxoC,KAAKuoC,OAAOvnC,M,EAWrBwjB,KAAM,WACL,OAAKxkB,KAAKuoC,OAAOvnC,OAEThB,KAAKuoC,OAAOzR,SAjCA,C,EA2CtB2R,QAAS,SAASC,GAChB,GAAI7nC,MAAM8hB,QAAQ+lB,GAEhB,IADA,IAAIH,EAAsCG,EACnCH,EAAOvnC,QACZhB,KAAKuoC,OAAOI,QAAQJ,EAAOK,YAE7B5oC,KAAKuoC,OAAOI,QAAQD,E,EAWxBznC,KAAM,SAASynC,GACb,GAAI7nC,MAAM8hB,QAAQ+lB,GAEhB,IADA,IAAIH,EAAsCG,EACnCH,EAAOvnC,QACZhB,KAAKuoC,OAAOtnC,KAAKsnC,EAAOzR,cAE1B92B,KAAKuoC,OAAOtnC,KAAKynC,E,GAYvB,IAAIG,GAAW,EAOf,SAASC,EAAajtB,EAAOktB,GAC3B,GAAIltB,EACF,MAAMzF,UAAU,iBAClB,OAAO2yB,GAAkB,K,CAOb,IAAIC,EAAmB,QAUrC,SAASC,EAAY3nB,EAAU4nB,GAC7B,KAAMlpC,gBAAgBipC,GACpB,OAAO,IAAIA,EAAY3nB,EAAU4nB,GAGnC,IADA5nB,OAAwB/G,IAAb+G,EAAyBiD,OAAOjD,GAAUlf,cAAgB4mC,KACpDA,EACf,MAAM,IAAI1mC,MAAM,mDAElB4mC,EAAUb,EAAaa,GAGvBlpC,KAAKmpC,YAAa,EAElBnpC,KAAKopC,UAAW,EAEhBppC,KAAKqpC,SAAW,KAEhBrpC,KAAKspC,OAASC,QAAQL,EAAe,OAErClpC,KAAKwpC,WAAaD,QAAQL,EAAmB,WAE7CtqC,OAAOC,eAAemB,KAAM,WAAY,CAAChB,MAAO,UAChDJ,OAAOC,eAAemB,KAAM,QAAS,CAAChB,MAAOgB,KAAKspC,SAClD1qC,OAAOC,eAAemB,KAAM,YAAa,CAAChB,MAAOgB,KAAKwpC,Y,CA6FxD,SAASC,EAAYnoB,EAAU4nB,GAC7B,KAAMlpC,gBAAgBypC,GACpB,OAAO,IAAIA,EAAYnoB,EAAU4nB,GAEnC,IADA5nB,OAAwB/G,IAAb+G,EAAyBiD,OAAOjD,GAAUlf,cAAgB4mC,KACpDA,EACf,MAAM,IAAI1mC,MAAM,mDAElB4mC,EAAUb,EAAaa,GAGvBlpC,KAAKmpC,YAAa,EAElBnpC,KAAK0pC,SAAW,KAEhB1pC,KAAK2pC,SAAW,CAAC9tB,MAAO0tB,QAAQL,EAAe,QAE/CtqC,OAAOC,eAAemB,KAAM,WAAY,CAAChB,MAAO,S,CA4DlD,SAAS4qC,EAAYV,GACnB,IAAIrtB,EAAQqtB,EAAQrtB,MAMMguB,EAAkB,EAClBC,EAAkB,EAClBC,EAAoB,EACpBC,EAAsB,IACtBC,EAAsB,IAShDjqC,KAAKkqC,QAAU,SAASC,EAAQC,GAG9B,IAhUoB,IAgUhBA,GAAgD,IAAtBL,EAE5B,OADAA,EAAoB,EACbjB,EAAajtB,GAItB,IAtUoB,IAsUhBuuB,EACF,OAAOvB,EAGT,GAA0B,IAAtBkB,EAAyB,CAG3B,GAAI3B,EAAQgC,EAAM,EAAM,KAEtB,OAAOA,EAIT,GAAIhC,EAAQgC,EAAM,IAAM,KAGpBL,EAAkB,EACpBF,EAAkBO,EAAO,SAItB,GAAIhC,EAAQgC,EAAM,IAAM,KAEd,MAATA,IACFJ,EAAsB,KAEX,MAATI,IACFH,EAAsB,KAGtBF,EAAkB,EACpBF,EAAkBO,EAAO,QAItB,KAAIhC,EAAQgC,EAAM,IAAM,KAgB3B,OAAOtB,EAAajtB,GAdP,MAATuuB,IACFJ,EAAsB,KAEX,MAATI,IACFH,EAAsB,KAGtBF,EAAkB,EACpBF,EAAkBO,EAAO,GAMC,CAO5B,OADAP,IAAsC,EAAIE,EACnC,I,CAKT,IAAK3B,EAAQgC,EAAMJ,EAAqBC,GAatC,OARAJ,EAAkBE,EAAoBD,EAAkB,EACxDE,EAAsB,IACtBC,EAAsB,IAGtBE,EAAO1B,QAAQ2B,GAGRtB,EAAajtB,GAgBtB,GAXAmuB,EAAsB,IACtBC,EAAsB,IAMtBJ,GAAmBO,EAAQ,KAAU,GAAKL,GADxCD,GAAiB,IAKfA,IAAoBC,EACtB,OAAO,KAGT,IAAIM,EAAaR,EAOjB,OAHAA,EAAkBE,EAAoBD,EAAkB,EAGjDO,C,EASX,SAASC,EAAYpB,GACPA,EAAQrtB,MAMpB7b,KAAKkqC,QAAU,SAASC,EAAQE,GAE9B,IA/boB,IA+bhBA,EACF,OAAOxB,EAIT,GAAIT,EAAQiC,EAAY,EAAQ,KAC9B,OAAOA,EAGT,IAAIE,EAAOhsB,EAEP6pB,EAAQiC,EAAY,IAAQ,OAC9BE,EAAQ,EACRhsB,EAAS,KAGF6pB,EAAQiC,EAAY,KAAQ,QACnCE,EAAQ,EACRhsB,EAAS,KAGF6pB,EAAQiC,EAAY,MAAS,WACpCE,EAAQ,EACRhsB,EAAS,KAQX,IAHC,IAAGtP,EAAQ,EAAEo7B,GAAe,EAAIE,GAAUhsB,GAGpCgsB,EAAQ,GAAG,CAGhB,IAAIC,EAAOH,GAAe,GAAKE,EAAQ,GAGvCt7B,EAAMhO,KAAK,IAAe,GAAPupC,GAGnBD,GAAS,C,CAIX,OAAOt7B,C,EAxWXg6B,EAAYl6B,UAAY,CAMtBiN,OAAQ,SAAgBoT,EAAO8Z,GAC7B,IAAIj6B,EAEFA,EADmB,iBAAVmgB,GAAsBA,aAAiBxN,YACxC,IAAIpd,WAAW4qB,GACG,iBAAVA,GAAsB,WAAYA,GACzCA,EAAMtlB,kBAAkB8X,YACzB,IAAIpd,WAAW4qB,EAAMtlB,OACNslB,EAAMlN,WACNkN,EAAMjN,YAErB,IAAI3d,WAAW,GAGzB0kC,EAAUb,EAAaa,GAElBlpC,KAAKmpC,aACRnpC,KAAKqpC,SAAW,IAAIO,EAAY,CAAC/tB,MAAO7b,KAAKspC,SAC7CtpC,KAAKopC,UAAW,GAElBppC,KAAKmpC,WAAaI,QAAQL,EAAgB,QAS1C,IAPA,IAKI5oC,EALAmqC,EAAe,IAAInC,EAAOr5B,GAE1By7B,EAAc,IAKVD,EAAajC,gBACnBloC,EAASN,KAAKqpC,SAASa,QAAQO,EAAcA,EAAajmB,WAC3CqkB,GAEA,OAAXvoC,IAEAO,MAAM8hB,QAAQriB,GAChBoqC,EAAYzpC,KAAK+c,MAAM0sB,EAA0CpqC,GAEjEoqC,EAAYzpC,KAAKX,IAErB,IAAKN,KAAKmpC,WAAY,CACpB,EAAG,CAED,IADA7oC,EAASN,KAAKqpC,SAASa,QAAQO,EAAcA,EAAajmB,WAC3CqkB,EACb,MACa,OAAXvoC,IAEAO,MAAM8hB,QAAQriB,GAChBoqC,EAAYzpC,KAAK+c,MAAM0sB,EAA0CpqC,GAEjEoqC,EAAYzpC,KAAKX,G,QACXmqC,EAAajC,eACvBxoC,KAAKqpC,SAAW,I,CAqBlB,OAlBIqB,EAAY1pC,UAI2B,IAArC,CAAC,SAASmd,QAAQne,KAAKshB,WACtBthB,KAAKwpC,YAAexpC,KAAKopC,WAEL,QAAnBsB,EAAY,IACd1qC,KAAKopC,UAAW,EAChBsB,EAAY5T,SAIZ92B,KAAKopC,UAAW,IAzO1B,SAA4BsB,GAE1B,IADA,IAAIxhC,EAAI,GACC/E,EAAI,EAAGA,EAAIumC,EAAY1pC,SAAUmD,EAAG,CAC3C,IAAIwmC,EAAKD,EAAYvmC,GACjBwmC,GAAM,MACRzhC,GAAKqb,OAAOoC,aAAagkB,IAEzBA,GAAM,MACNzhC,GAAKqb,OAAOoC,aAA0B,OAAZgkB,GAAM,IACQ,OAAT,KAALA,I,CAG9B,OAAOzhC,C,CAkOE0hC,CAAmBF,E,GA+B9BjB,EAAY16B,UAAY,CAMtBgN,OAAQ,SAAgB8uB,EAAY3B,GAClC2B,EAAaA,EAAatmB,OAAOsmB,GAAc,GAC/C3B,EAAUb,EAAaa,GAKlBlpC,KAAKmpC,aACRnpC,KAAK0pC,SAAW,IAAIY,EAAYtqC,KAAK2pC,WACvC3pC,KAAKmpC,WAAaI,QAAQL,EAAgB,QAM1C,IAJA,IAGI5oC,EAHA2O,EAAQ,GACRw7B,EAAe,IAAInC,EAlX3B,SAA4BppB,GAgB1B,IAZA,IAAIhW,EAAIqb,OAAOrF,GAGXxZ,EAAIwD,EAAElI,OAGNmD,EAAI,EAGJkC,EAAI,GAGDlC,EAAIuB,GAAG,CAGZ,IAAIQ,EAAIgD,EAAEqc,WAAWphB,GAKrB,GAAI+B,EAAI,OAAUA,EAAI,MAEpBG,EAAEpF,KAAKiF,QAIJ,GAAI,OAAUA,GAAKA,GAAK,MAE3BG,EAAEpF,KAAK,YAIJ,GAAI,OAAUiF,GAAKA,GAAK,MAG3B,GAAI/B,IAAMuB,EAAI,EACZW,EAAEpF,KAAK,WAGJ,CAEH,IAAI0E,EAAIuZ,EAAOqG,WAAWphB,EAAI,GAG1B,UAAUwB,GAAKA,GAAK,MAAQ,CAE9B,IAAIiF,EAAQ,KAAJ1E,EAGJ4C,EAAQ,KAAJnD,EAIRU,EAAEpF,KAAK,OAAW2J,GAAK,IAAM9B,GAG7B3E,GAAK,C,MAMLkC,EAAEpF,KAAK,M,CAMbkD,GAAK,C,CAIP,OAAOkC,C,CAsSyBykC,CAAmBD,KAGzCJ,EAAajC,gBACnBloC,EAASN,KAAK0pC,SAASQ,QAAQO,EAAcA,EAAajmB,WAC3CqkB,GAEXhoC,MAAM8hB,QAAQriB,GAChB2O,EAAMhO,KAAK+c,MAAM/O,EAAoC3O,GAErD2O,EAAMhO,KAAKX,GAEf,IAAKN,KAAKmpC,WAAY,CACpB,MACE7oC,EAASN,KAAK0pC,SAASQ,QAAQO,EAAcA,EAAajmB,WAC3CqkB,GAEXhoC,MAAM8hB,QAAQriB,GAChB2O,EAAMhO,KAAK+c,MAAM/O,EAAoC3O,GAErD2O,EAAMhO,KAAKX,GAEfN,KAAK0pC,SAAW,I,CAElB,OAAO,IAAIllC,WAAWyK,E,GAqN1Bi5B,EAAsBuB,EACtBtB,EAAsBc,C,kDChoBtBrqC,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQ0D,WAAa3D,EAAAC,QAAQgsC,UAAO,EAYpCjsC,EAAAC,QAAQgsC,KAXR,MACI3pC,YAAY4pC,GACR,GAAuC,IAAnCpsC,OAAOqB,KAAK+qC,GAAYhqC,OACxB,MAAM,IAAIsB,MAAM,mCAEpB1D,OAAOqB,KAAK+qC,GAAY/qB,KAAKxf,IACzBT,KAAKS,GAAOuqC,EAAWvqC,GACvBT,KAAKirC,KAAOxqC,CAAG,G,GAY3B3B,EAAAC,QAAQ0D,WAPR,MACIrB,YAAY4pC,GACRpsC,OAAOqB,KAAK+qC,GAAY/qB,KAAKxf,IACzBT,KAAKS,GAAOuqC,EAAWvqC,EAAI,G,oDCjBvC7B,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQG,iCAA8B,E,sDAItC,MAAMgsC,UAAoC3rC,EAAAH,SAYtCQ,aAAaC,EAAWC,EAAWC,GAC/BC,KAAKmrC,aAAaC,QAAQprC,KAAKqrC,uBAAuBxrC,EAAWC,GAAYC,EAAQG,W,CAQzFN,aAAaC,EAAWC,GACpB,MAAMd,EAAQgB,KAAKmrC,aAAaG,QAAQtrC,KAAKqrC,uBAAuBxrC,EAAWC,IAC/E,OAAKd,EAGEmB,EAAAC,QAAmBC,WAAWrB,GAF1B,I,CASfY,gBAAgBC,EAAWC,GACvBE,KAAKmrC,aAAaI,WAAWvrC,KAAKqrC,uBAAuBxrC,EAAWC,G,CAKxEF,cACI,IAAK,MAAMa,KAAOT,KAAKwrC,cACf/qC,EAAIgrC,WAAWzrC,KAAK0rC,SACpB1rC,KAAKmrC,aAAaI,WAAW9qC,E,CAQzCb,oBACI,MAAMU,EAAS,IAAIC,IACnB,IAAK,MAAME,KAAOT,KAAKwrC,cACnB,GAAI/qC,EAAIgrC,WAAWzrC,KAAK0rC,QAAS,CAC7B,MAAMhrC,EAAQD,EAAIkrC,UAAU3rC,KAAK0rC,OAAO1qC,QAAQL,MAAM,KACtDL,EAAOM,IAAIF,EAAM,G,CAGzB,OAAOG,MAAMC,KAAKR,EAAOS,S,CAO7BnB,kBAAkBC,GACd,MAAMS,EAAS,IAAIO,MACnB,IAAK,MAAMJ,KAAOT,KAAKwrC,cACnB,GAAI/qC,EAAIgrC,WAAWzrC,KAAK0rC,QAAS,CAC7B,MAAMhrC,EAAQD,EAAIkrC,UAAU3rC,KAAK0rC,OAAO1qC,QAAQL,MAAM,KAClDD,EAAM,KAAOb,GACbS,EAAOW,KAAKP,EAAM,G,CAI9B,OAAOJ,C,CAQX+qC,uBAAuBxrC,EAAWC,GAC9B,MAAO,GAAGE,KAAK0rC,SAAS5rC,KAAaD,G,CAEzC2rC,eACI,IAAK,IAAIrnC,EAAI,EAAGA,EAAInE,KAAKmrC,aAAanqC,OAAQmD,UACpCnE,KAAKmrC,aAAa1qC,IAAI0D,E,CAvFpC/C,YAAY+pC,EAAezX,OAAOyX,aAAcO,EAFnB,yBAGzBrqC,QACArB,KAAKmrC,aAAeA,EACpBnrC,KAAK0rC,OAASA,C,EAwFtB5sC,EAAAC,QAAQG,4BAA8BgsC,C,kDCjGtCtsC,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQE,mBAAgB,E,6BAKxB,MAAM2sC,UAAsBrsC,EAAAH,SAcxBQ,aAAaC,EAAWC,EAAWC,SACzBC,KAAK6rC,UAAU,GAAGC,OAAOjsC,EAAWC,EAAWC,E,CAQzDH,aAAaC,EAAWC,GACpB,IAAK,MAAMisC,KAAY/rC,KAAK6rC,UAAW,CACnC,MAAM9rC,QAAgBgsC,EAASC,OAAOnsC,EAAWC,GACjD,GAAIC,EACA,OAAOA,C,CAGf,OAAO,I,CAOXH,gBAAgBC,EAAWC,GACvB,IAAK,MAAMisC,KAAY/rC,KAAK6rC,gBAClBE,EAASE,UAAUpsC,EAAWC,E,CAM5CF,cACI,IAAK,MAAMmsC,KAAY/rC,KAAK6rC,gBAClBE,EAASG,O,CAOvBtsC,oBACI,MAAMU,EAAS,IAAIC,IACnB,IAAK,MAAMwrC,KAAY/rC,KAAK6rC,UACxB,IAAK,MAAMM,WAAiBJ,EAASK,cACjC9rC,EAAOM,IAAIurC,GAGnB,OAAOtrC,MAAMC,KAAKR,E,CAOtBV,kBAAkBC,GACd,MAAMS,EAAS,IAAIC,IACnB,IAAK,MAAMwrC,KAAY/rC,KAAK6rC,UACxB,IAAK,MAAMQ,WAAiBN,EAASO,YAAYzsC,GAC7CS,EAAOM,IAAIyrC,GAGnB,OAAOxrC,MAAMC,KAAKR,E,CAEtBJ,WACI,MAAO,iBAAiBF,KAAK6rC,UAAU1qC,KAAK,Q,CA1EhDC,YAAYyqC,GACRxqC,QACArB,KAAK6rC,UAAYA,C,EA2EzB/sC,EAAAC,QAAQE,cAAgB2sC,C,kDCvFxB,IAAIW,EAAkBztC,EAACC,SAAQD,EAAAC,QAAKqb,kBAAqBxb,OAAOyb,OAAU,SAASlU,EAAGyC,EAAG3C,EAAGqU,QAC7EC,IAAPD,IAAkBA,EAAKrU,GAC3BrH,OAAOC,eAAesH,EAAGmU,EAAI,CAAEjb,YAAY,EAAMC,IAAK,WAAa,OAAOsJ,EAAE3C,E,KAC1E,SAASE,EAAGyC,EAAG3C,EAAGqU,QACTC,IAAPD,IAAkBA,EAAKrU,GAC3BE,EAAEmU,GAAM1R,EAAE3C,E,GAEVumC,EAAqB1tC,EAACC,SAAQD,EAAAC,QAAK0b,qBAAwB7b,OAAOyb,OAAU,SAASlU,EAAG2E,GACxFlM,OAAOC,eAAesH,EAAG,UAAW,CAAE9G,YAAY,EAAML,MAAO8L,G,EAC9D,SAAS3E,EAAG2E,GACb3E,EAAW,QAAI2E,C,GAEf2hC,EAAe3tC,EAACC,SAAQD,EAAAC,QAAKoc,cAAiB,SAAU3Z,GACxD,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAIlB,EAAS,GACb,GAAW,MAAPkB,EAAa,IAAK,IAAIyE,KAAKzE,EAAe,YAANyE,GAAmBrH,OAAOwc,eAAeC,KAAK7Z,EAAKyE,IAAIsmC,EAAgBjsC,EAAQkB,EAAKyE,GAE5H,OADAumC,EAAmBlsC,EAAQkB,GACpBlB,C,EAEX1B,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQ2tC,iBAAmB5tC,EAAAC,QAAQ4tC,cAAgB7tC,EAAAC,QAAQ6tC,uBAAyB9tC,EAAAC,QAAQ8tC,KAAO/tC,EAAAC,QAAQqB,QAAUtB,EAAAC,QAAQ+tC,OAAShuC,EAAAC,QAAQguC,eAAiBjuC,EAAAC,QAAQiuC,SAAWluC,EAAAC,QAAQkuC,WAAanuC,EAAAC,QAAQmuC,QAAUpuC,EAAAC,QAAQouC,SAAWruC,EAAAC,QAAQquC,WAAatuC,EAAAC,QAAQsuC,aAAevuC,EAAAC,QAAQuuC,MAAQxuC,EAAAC,QAAQwuC,UAAYzuC,EAAAC,QAAQyuC,oBAAiB,EACrV,MAAMC,EAAYhB,EAAa1qC,cAAA,UAC/BjD,EAAAC,QAAQwuC,UAAYE,EACpB,MAAMC,EAAQjB,EAAa1qC,cAAA,UAC3BjD,EAAAC,QAAQuuC,MAAQI,EAChB,MAAMC,EAAelB,EAAa1qC,cAAA,UAClCjD,EAAAC,QAAQsuC,aAAeM,EACvB,MAAMC,EAAanB,EAAa1qC,cAAA,UAChCjD,EAAAC,QAAQquC,WAAaQ,E,6BAErBhvC,OAAOC,eAAeC,EAAAC,QAAS,UAAW,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOuuC,EAAAX,O,IACxF,MAAMY,EAAWrB,EAAa1qC,cAAA,UAC9BjD,EAAAC,QAAQouC,SAAWW,EACnB,MAAMC,EAAiBtB,EAAa1qC,cAAA,UACpCjD,EAAAC,QAAQyuC,eAAiBO,E,6BAEzBnvC,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAO0uC,EAAAf,U,iCAE3FruC,OAAOC,eAAeC,EAAAC,QAAS,SAAU,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAO2uC,EAAAnB,M,IACvFluC,OAAOC,eAAeC,EAAAC,QAAS,iBAAkB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAO2uC,EAAAlB,c,iCAE/FnuC,OAAOC,eAAeC,EAAAC,QAAS,WAAY,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAO4uC,EAAAlB,Q,iCAEzFpuC,OAAOC,eAAeC,EAAAC,QAAS,UAAW,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOa,EAAAC,O,iCAExFxB,OAAOC,eAAeC,EAAAC,QAAS,OAAQ,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAO6uC,EAAAtB,I,iCAGrFjuC,OAAOC,eAAeC,EAAAC,QAAS,yBAA0B,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAO8uC,EAAAxB,sB,IACvGhuC,OAAOC,eAAeC,EAAAC,QAAS,gBAAiB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAO8uC,EAAAzB,a,IAC9F/tC,OAAOC,eAAeC,EAAAC,QAAS,mBAAoB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAO8uC,EAAA1B,gB,qDClDjG9tC,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQsvC,aAAevvC,EAAAC,QAAQuvC,WAAaxvC,EAAAC,QAAQwvC,yBAA2BzvC,EAAAC,QAAQyvC,0BAA4B1vC,EAAAC,QAAQ0vC,gBAAkB3vC,EAAAC,QAAQ2vC,cAAW,E,6BAEhK9vC,OAAOC,eAAeC,EAAAC,QAAS,WAAY,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqvC,EAAAD,Q,IACzF9vC,OAAOC,eAAeC,EAAAC,QAAS,2BAA4B,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqvC,EAAAJ,wB,IACzG3vC,OAAOC,eAAeC,EAAAC,QAAS,4BAA6B,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOqvC,EAAAH,yB,iCAE1G5vC,OAAOC,eAAeC,EAAAC,QAAS,kBAAmB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOsvC,EAAAH,e,IAChG7vC,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOsvC,EAAAN,U,IAC3F1vC,OAAOC,eAAeC,EAAAC,QAAS,eAAgB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOsvC,EAAAP,Y,yDCNlFQ,EAMAC,EAMAC,E,gCAfXnwC,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQwvC,yBAA2BzvC,EAAAC,QAAQ2vC,SAAW5vC,EAAAC,QAAQiwC,OAASlwC,EAAAC,QAAQyvC,0BAA4B1vC,EAAAC,QAAQkwC,0BAAuB,GAE/HJ,EAIe/vC,EAAAC,QAAQkwC,uBAAyBnwC,EAAAC,QAAQkwC,qBAAuB,KAHxD,QAAI,UAClCJ,EAA8B,QAAI,UAClCA,EAA8B,QAAI,WAG3BC,EAIoBhwC,EAAAC,QAAQyvC,4BAA8B1vC,EAAAC,QAAQyvC,0BAA4B,KAH/D,WAAI,aAC1CM,EAAmC,QAAI,UACvCA,EAAmC,QAAI,WAGhCC,EAGCjwC,EAAAC,QAAQiwC,SAAWlwC,EAAAC,QAAQiwC,OAAS,KAFxB,YAAI,cACxBD,EAAgB,QAAI,UAIxBjwC,EAAAC,QAAQ2vC,SAFR,QAeA5vC,EAAAC,QAAQwvC,yBAZR,SAAkCW,GAC9B,GAA+B,iBAApBA,EAASC,QAA+D,iBAAjCD,EAASC,OAAOC,aAA2B,CACzF,MAAMpwC,EAAQqwC,EAAOvuC,KAAKouC,EAASC,OAAOC,aAAc,UAAUlvC,WAClE,IACI,OAAOovC,KAAKC,MAAMvwC,E,CAEtB,MAAOuP,GACH,OAAOvP,C,EAGf,OAAO,I,uFChCPwwC,EAAkB1wC,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQ0vC,gBAAkB3vC,EAAAC,QAAQsvC,aAAevvC,EAAAC,QAAQuvC,gBAAa,EACtE,MAAMmB,EAASD,EAAgBztC,cAAA,U,+EAI/BnD,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOowC,EAAApB,U,IAC3F1vC,OAAOC,eAAeC,EAAAC,QAAS,eAAgB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOowC,EAAArB,Y,iCAE7F,MAAMsB,EAAwBH,EAAgBztC,cAAA,U,6BAS9C,IAAI6tC,EAAU,IACd,MAAMC,UAAwBlB,EAAAD,SAS1B9uC,mBACI,MAAO,CACHmgB,KAAM,OACN+vB,QAAS,O,CAQjBlwC,eACI,OAAOI,KAAK+vC,YAAY,SAAU,G,CAQtCnwC,sBAAsBowC,GAClB,MAAM/gC,EAAQ+gC,EAAkBj0B,SAChC,OAAO/b,KAAK+vC,YAAY,sBAAuB,CAACE,EAAOnvC,KAAKmO,GAAO/O,SAAS,W,CAShFN,eAAeswC,EAAQpwC,GACnB,OAAOE,KAAK+vC,YAAY,KAAM,CAACp2B,EAAAC,WAAmBs2B,GAASpwC,G,CAK/DF,eAAeme,GACX,IAAIzd,EACJ,GAAoB,IAAhByd,EAAK/c,OACLV,QAAeN,KAAK+vC,YAAY,QAAShyB,EAAK,QAE7C,CACD,MAAOoyB,EAAMvtC,GAAQmb,EACrBzd,QAAeN,KAAK+vC,YAAY,QAAS,CAACI,EAAMvtC,G,CAEpD,GAAItC,GAAUA,EAAOsf,MACjB,MAAM,IAAI8vB,EAAApB,WAAoB,YAAYvwB,aAAgBzd,EAAOsf,WAAW0vB,KAAKc,UAAU9vC,EAAQ,KAAM,KAAM+vC,EAAAC,6BAA0ChwC,EAAOsf,QAEpK,OAAOtf,C,CAMXV,YAAY2wC,GACR,MAAMC,SAAEA,GAAaD,EACrB,IAAIE,QAAEA,GAAYF,EAClB,GAA0B,iBAAfA,EAAyB,CACdd,EAAO/tC,QAAQ,iCACjCgvC,CAAU,6DACVD,EAAUF,C,CAEd,OAAOvwC,KAAK+vC,YAAY,QAAS,CAAEY,SAAUF,E,SAASD,G,CAQ1D5wC,YAAYgxC,GACR,OAAO5wC,KAAK+vC,YAAY,QAAS,CAACa,G,CAOtChxC,iBAAiB6wC,GACb,OAAOzwC,KAAK+vC,YAAY,aAAc,CAACU,G,CAM3C7wC,mCAGI,OAFkB6vC,EAAO/tC,QAAQ,8EACjCgvC,CAAU,yGACG1wC,KAAK+vC,YAAY,+BAAgC,CAAEc,gBAAiB,W,CAMrFjxC,kCAAkCkxC,GAC9B,aAAa9wC,KAAK+vC,YAAY,+BAAgCe,E,CAOlElxC,oCAAoCmxC,GAGhC,OAFkBtB,EAAO/tC,QAAQ,yDACjCgvC,CAAU,wCACG1wC,KAAKgxC,iBAAiBD,E,CAMvCnxC,uBAAuBmxC,GACnB,aAAa/wC,KAAK+vC,YAAY,kCAAmCgB,E,CAOrEnxC,kBAAkBqxC,EAAQC,GACtB,MAAM5wC,QAAeqvC,EAAsBjuC,QAvIxB,IAFE,GAIM,KAqI8F9B,UACrH,IACI,MAAMmxC,EAAU,C,OACZE,E,OACAC,EACAC,GAAKvB,IACLwB,QAAS,OAEPC,QAAiBC,EAAAC,UAAgBvxC,KAAKwxC,WAAYlC,KAAKc,UAAUW,IACvE,GAAIM,EAASzxB,MAAK,CACd,GAAmC,iBAAxByxB,EAASzxB,MAAMhd,KAAmB,CACzC,GAAiD,iBAAtCyuC,EAASzxB,MAAMhd,KAAK6uC,eAAwE,iBAAnCJ,EAASzxB,MAAMhd,KAAK8uC,WAEpF,MAAM,IAAIhC,EAAApB,WAAoB+C,EAASzxB,MAAMhd,KAAK6uC,cAAeJ,EAASzxB,MAAMhd,KAAK8uC,YAEzF,MAAMrB,EAAAsB,cAA2BN,EAASzxB,MAAMhd,K,CAE/C,CACD,MAAMgvC,EAAe,IAAIP,EAASzxB,MAAM1B,SAASmzB,EAASzxB,MAAMnc,YAAY4tC,EAASzxB,MAAMhd,OAG3F,GAA4B,YAAxByuC,EAASzxB,MAAMhd,MAAsBgvC,EAAappB,SAAS,kBACxDopB,EAAappB,SAAS,uBACzB,MAAM,IAAIknB,EAAApB,WAAoBsD,EAAc,gBAEhD,MAAM,IAAIlC,EAAApB,WAAoBsD,EAAcvB,EAAAC,6BAA0Ce,EAASzxB,MAAMhd,M,EAG7G,OAAOyuC,EAAS/wC,M,CAEpB,MAAOsf,GACH,GAAmB,iBAAfA,EAAMF,KAEN,OADAuH,QAAQ4qB,KAAK,uBAAuBZ,wBAA8BC,GAC3D,KAEX,MAAMtxB,C,KAGd,IAAKtf,EACD,MAAM,IAAIovC,EAAApB,WAAoB,uCAA4D2C,KAAW,mBAEzG,OAAO3wC,C,CAOXV,eAAe6wC,GACX,aAAazwC,KAAK+vC,YAAY,YAAa,CAACU,G,CAlLhDrvC,YAAY0wC,GACRzwC,QACArB,KAAKwxC,WAAa,C,IAAEM,E,EAmL5BhzC,EAAAC,QAAQ0vC,gBAAkBoB,C,kDC9J1B,SAASkC,EAAc14B,EAAI5V,GACzB,GAAkB,mBAAP4V,EACT,MAAM,IAAIjD,UAAU,kCAGtB,OAAOiD,C,CAUT,SAAS24B,EAAcnyB,EAAKoyB,EAAMxuC,GAChC,IAAKoc,GAAuB,iBAARA,GAAmC,mBAARA,EAC7C,MAAM,IAAIzJ,UAAU,+BAGtB,IAAI87B,EAAatzC,OAAOmc,yBAAyB8E,EAAKoyB,GAEtD,IAAKC,EACH,MAAM,IAAI97B,UAAU,sCAGtB,IAAK87B,EAAWzjB,aACd,MAAM,IAAIrY,UAAU,gC,CA7DxBtX,EAAAC,QAMA,SAAeozC,GACb,IAAKA,EACH,MAAM,IAAI/7B,UAAU,kCAGtB,SAASs6B,EAAWjtC,G,CAapB,OATAitC,EAAU0B,WAAQ73B,EAClBm2B,EAAU2B,UAAW,EACrB3B,EAAU4B,WAAaH,EACvBzB,EAAU6B,SAAU,EACpB7B,EAAU8B,QAAU5zC,OAAOyb,OAAO,MAElCq2B,EAAU+B,SAAWV,EACrBrB,EAAUgC,SAAWV,EAEdtB,C,mDCrCT,IAAAiC,EAAA5wC,cAAA,SACI6wC,EAAoD,SAAUpxC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQwyC,eAAY,EACpB,MAAMsB,EAAgBD,EAAgB7wC,cAAA,UAChC+wC,EAAwBF,EAAgB7wC,cAAA,U,6BAM9C,IAAIgxC,EACJ,GAAsB,oBAAXrf,QAA0C,WAAhBA,OAAO3T,KAAmB,CAE3D,MAAMizB,EAAYjxC,cAAA,SACZkxC,EAAOlxC,cAAA,SACPmxC,EAAQnxC,cAAA,SAERoxC,EAAY,IAAIF,EAAKG,MAAM,CAAEC,WAAW,IACxCC,EAAa,IAAIJ,EAAME,MAAM,CAAEC,WAAW,IAShDN,EAAQ,SAAUQ,EAAUrvC,GACxB,OAAO8uC,EAAUO,GAAU,EAAAZ,EAAAjxC,SAAA,CAAE8xC,OATlBC,EAS+B,IAAIC,IAAIH,GARtB,UAAxBE,EAAWE,SACJR,EAGAG,IAIsDpvC,IATrE,IAAeuvC,C,OAafV,EAAQrf,OAAOkgB,MAuCnB90C,EAAAC,QAAQwyC,UArCR3xC,eAAyB4xC,EAAYqC,GACjC,IAAI/B,EAAM,KAENA,EADwB,iBAAhBN,EACFA,EAGAA,EAAWM,IAErB,MAAMgC,QAAiBhB,EAAsBpxC,QApCtB,IAEN,GADM,KAmCoF9B,UACvG,IACI,MAAMyxC,QAAiB0B,EAAMjB,EAAK,CAC9Bb,OAAQ4C,EAAO,OAAS,MACxBE,KAAMF,QAAct5B,EACpBy5B,QAAS,CAAE,eAAgB,qCAE/B,IAAK3C,EAAS4C,GAAI,CACd,GAAwB,MAApB5C,EAASlC,OAET,OADAloB,QAAQ4qB,KAAK,6BAA6BC,+BACnC,KAEX,MAAMe,EAAcnxC,QAAQ2vC,EAASlC,aAAckC,EAAS6C,O,CAEhE,OAAO7C,C,CAEX,MAAOzxB,GACH,GAAIA,EAAM1f,WAAWsoB,SAAS,eAAiB5I,EAAM1f,WAAWsoB,SAAS,mBAErE,OADAvB,QAAQ4qB,KAAK,6BAA6BC,uBAAyBlyB,KAC5D,KAEX,MAAMA,C,KAGd,IAAKk0B,EACD,MAAM,IAAIK,EAAA7F,WAAuB,4BAAyCwD,KAAQ,mBAEtF,aAAagC,EAASD,M,8GCxE1B,IAAAO,EAAAryC,cAAA,SAEe,SAAAsyC,EAAuBx5B,GACpC,IAAK,IAAI1W,EAAI,EAAGA,EAAIgS,UAAUnV,OAAQmD,IAAK,CACzC,IAAI4iC,EAAyB,MAAhB5wB,UAAUhS,GAAagS,UAAUhS,GAAK,GAC/CmwC,EAAU11C,OAAOqB,KAAK8mC,GAEkB,mBAAjCnoC,OAAO21C,wBAChBD,EAAUA,EAAQ33B,OAAO/d,OAAO21C,sBAAsBxN,GAAQyN,QAAO,SAAUlmB,GAC7E,OAAO1vB,OAAOmc,yBAAyBgsB,EAAQzY,GAAKjvB,U,MAIxDi1C,EAAQ9zC,SAAQ,SAAUC,IACxB,EAAA2zC,EAAA1yC,SAAemZ,EAAQpa,EAAKsmC,EAAOtmC,G,IAIvC,OAAOoa,C,mDClBM,SAAA45B,EAAyB50B,EAAKpf,EAAKzB,GAYhD,OAXIyB,KAAOof,EACTjhB,OAAOC,eAAeghB,EAAKpf,EAAK,CAC9BzB,MAAOA,EACPK,YAAY,EACZovB,cAAc,EACdC,UAAU,IAGZ7O,EAAIpf,GAAOzB,EAGN6gB,C,6GCET,IAsKoC60B,EAtKhCC,EAAY5yC,cAAA,SAAgB,e,oGAuBhC,SAAS6yC,EAAWzF,GAClB,OAAOtqB,OAAON,OAAO4qB,GAAQhwB,OAAO,GAAK,K,CAmN3C,SAAS01B,EAAUC,EAAM/0B,GACvB,IAAIjF,EAAOlc,OAAOmc,yBAAyB+5B,EAAM,QAE7Ch6B,GAAQA,EAAK2T,eACf3T,EAAK9b,MAAQ+gB,EACbnhB,OAAOC,eAAei2C,EAAM,OAAQh6B,G,CAwCxC,SAASi6B,EAAah1B,GACpB,MAA2B,UAApBA,EAAKmF,QAAO,GACfnF,EAAO,QACPA,C,CAhRNjhB,EAAAC,QAuBA,SAASi2C,IAMP,IAJA,IAAIC,EACAx9B,EACA03B,EAAS,IACT+F,EAAQ,GACH/wC,EAAI,EAAGA,EAAIgS,UAAUnV,OAAQmD,IAAK,CACzC,IAAI+c,EAAM/K,UAAUhS,GACpB,GAAI+c,aAAe5e,MAEjB6sC,GADA8F,EAAM/zB,GACOiuB,QAAU8F,EAAIE,YAAchG,OAG3C,cAAejuB,GACb,IAAK,SACHzJ,EAAMyJ,EACN,MACF,IAAK,SACHiuB,EAASjuB,EACC,IAAN/c,GACFwwC,EAAU,4DAA8DzzB,EAAM,UAEhF,MACF,IAAK,SACHg0B,EAAQh0B,E,CAKQ,iBAAXiuB,IAAwBA,EAAS,KAAOA,GAAU,MAC3DwF,EAAU,4DAGU,iBAAXxF,IACPiG,EAASjG,KAAYA,EAAS,KAAOA,GAAU,QACjDA,EAAS,KAIX,IAAIuF,EAAYM,EAAY7F,IAAW6F,EAAYJ,EAAUzF,IAExD8F,IAEHA,EAAMP,EACF,IAAIA,EAAUj9B,GACd,IAAInV,MAAMmV,GAAO29B,EAASjG,IAC9B7sC,MAAM+yC,kBAAkBJ,EAAKD,IAG1BN,GAAeO,aAAeP,GAAcO,EAAI9F,SAAWA,IAE9D8F,EAAIK,OAASnG,EAAS,IACtB8F,EAAI9F,OAAS8F,EAAIE,WAAahG,GAGhC,IAAK,IAAI1uC,KAAOy0C,EACF,WAARz0C,GAA4B,eAARA,IACtBw0C,EAAIx0C,GAAOy0C,EAAMz0C,IAIrB,OAAOw0C,C,EAnFTn2C,EAAAC,QAAe21C,UA2Ff,WACE,SAASA,IACP,MAAM,IAAIt+B,UAAU,kC,CAKtB,OAFAm/B,EAASb,EAAWpyC,OAEboyC,C,CAlGkBc,GAC3B12C,EAAAC,QAAe02C,aAyJqBf,EAzJmB51C,EAAAC,QAAe21C,UA0J7D,SAAsB3wB,GAC3B,SAAKA,GAAsB,iBAARA,KAIfA,aAAe2wB,GAIZ3wB,aAAezhB,OACE,kBAAfyhB,EAAIuxB,QACe,iBAAnBvxB,EAAIoxB,YAA2BpxB,EAAIorB,SAAWprB,EAAIoxB,W,GAuE/D,SAAqCp2C,EAAS22C,EAAOhB,GACnDgB,EAAMl1C,SAAQ,SAAsB0d,GAClC,IAAIy3B,EACA51B,EAAO61B,EAAaR,EAASl3B,IAEjC,OAAQ02B,EAAU12B,IAChB,KAAK,IACHy3B,EA1IR,SAAuCjB,EAAW30B,EAAM7B,GACtD,IAAI23B,EAAYd,EAAYh1B,GAE5B,SAAS+1B,EAAaryC,GAEpB,IAAIgU,EAAiB,MAAXhU,EAAkBA,EAAU2xC,EAASl3B,GAC3C+2B,EAAM,IAAI3yC,MAAMmV,GAwBpB,OArBAnV,MAAM+yC,kBAAkBJ,EAAKa,GAG7BC,EAAed,EAAKa,EAAY/mC,WAGhCnQ,OAAOC,eAAeo2C,EAAK,UAAW,CACpC51C,YAAY,EACZovB,cAAc,EACdzvB,MAAOyY,EACPiX,UAAU,IAIZ9vB,OAAOC,eAAeo2C,EAAK,OAAQ,CACjC51C,YAAY,EACZovB,cAAc,EACdzvB,MAAO62C,EACPnnB,UAAU,IAGLumB,C,CAUT,OAPAM,EAASO,EAAapB,GACtBG,EAASiB,EAAaD,GAEtBC,EAAY/mC,UAAUogC,OAASjxB,EAC/B43B,EAAY/mC,UAAUomC,WAAaj3B,EACnC43B,EAAY/mC,UAAUumC,QAAS,EAExBQ,C,CAkGWE,CAA6BtB,EAAW30B,EAAM7B,GAC1D,MACF,KAAK,IACHy3B,EAxER,SAAuCjB,EAAW30B,EAAM7B,GACtD,IAAI23B,EAAYd,EAAYh1B,GAE5B,SAASk2B,EAAaxyC,GAEpB,IAAIgU,EAAiB,MAAXhU,EAAkBA,EAAU2xC,EAASl3B,GAC3C+2B,EAAM,IAAI3yC,MAAMmV,GAwBpB,OArBAnV,MAAM+yC,kBAAkBJ,EAAKgB,GAG7BF,EAAed,EAAKgB,EAAYlnC,WAGhCnQ,OAAOC,eAAeo2C,EAAK,UAAW,CACpC51C,YAAY,EACZovB,cAAc,EACdzvB,MAAOyY,EACPiX,UAAU,IAIZ9vB,OAAOC,eAAeo2C,EAAK,OAAQ,CACjC51C,YAAY,EACZovB,cAAc,EACdzvB,MAAO62C,EACPnnB,UAAU,IAGLumB,C,CAUT,OAPAM,EAASU,EAAavB,GACtBG,EAASoB,EAAaJ,GAEtBI,EAAYlnC,UAAUogC,OAASjxB,EAC/B+3B,EAAYlnC,UAAUomC,WAAaj3B,EACnC+3B,EAAYlnC,UAAUumC,QAAS,EAExBW,C,CAgCWC,CAA6BxB,EAAW30B,EAAM7B,GAI1Dy3B,IAEF52C,EAAQmf,GAAQy3B,EAChB52C,EAAQghB,GAAQ41B,E,IAKpB52C,EAAQ,cAAgB41C,EAAUlC,SAAS1zC,EAAQo3C,UACjD,yC,CAhQJC,CAA2Bt3C,EAAAC,QAAgBq2C,EAASM,MAAO52C,EAAAC,QAAe21C,U,kDCiB1E,SAAS2B,EAAch9B,EAAI5V,GACzB,GAAkB,mBAAP4V,EACT,MAAM,IAAIjD,UAAU,kCAGtB,OAAOiD,C,CAUT,SAASi9B,EAAcz2B,EAAKoyB,EAAMxuC,GAChC,IAAKoc,GAAuB,iBAARA,GAAmC,mBAARA,EAC7C,MAAM,IAAIzJ,UAAU,+BAGtB,IAAI87B,EAAatzC,OAAOmc,yBAAyB8E,EAAKoyB,GAEtD,IAAKC,EACH,MAAM,IAAI97B,UAAU,sCAGtB,IAAK87B,EAAWzjB,aACd,MAAM,IAAIrY,UAAU,gC,CA7DxBtX,EAAAC,QAMA,SAAeozC,GACb,IAAKA,EACH,MAAM,IAAI/7B,UAAU,kCAGtB,SAASs6B,EAAWjtC,G,CAapB,OATAitC,EAAU0B,WAAQ73B,EAClBm2B,EAAU2B,UAAW,EACrB3B,EAAU4B,WAAaH,EACvBzB,EAAU6B,SAAU,EACpB7B,EAAU8B,QAAU5zC,OAAOyb,OAAO,MAElCq2B,EAAU+B,SAAW4D,EACrB3F,EAAUgC,SAAW4D,EAEd5F,C,mDCnCT5xC,EAAAC,QAAiBH,OAAOqiB,iBAAmB,CAAEs1B,UAAW,cAAgB11C,MAExE,SAAqBgf,EAAKiH,GAExB,OADAjH,EAAI02B,UAAYzvB,EACTjH,C,EAGT,SAA0BA,EAAKiH,GAC7B,IAAK,IAAImrB,KAAQnrB,EACVloB,OAAOmQ,UAAUqM,eAAeC,KAAKwE,EAAKoyB,KAC7CpyB,EAAIoyB,GAAQnrB,EAAMmrB,IAGtB,OAAOpyB,C,wDC4CqB22B,EAAUC,EAClCngC,E,yBAgCN,SAASogC,EAAQx4B,GACf,GAAoB,iBAATA,EAAmB,CAC5B,IAAKw4B,EAAOx4B,GAAO,MAAM,IAAI5b,MAAM,wBAA0B4b,GAC7D,OAAOA,C,CAGT,GAAoB,iBAATA,EACT,MAAM,IAAI9H,UAAU,mCAItB,IAAI1Q,EAAIuf,SAAS/G,EAAM,IACvB,IAAKqU,MAAM7sB,GAAI,CACb,IAAKgxC,EAAOhxC,GAAI,MAAM,IAAIpD,MAAM,wBAA0BoD,GAC1D,OAAOA,C,CAIT,KADAA,EAAIgxC,EAAOx4B,EAAK9b,gBACR,MAAM,IAAIE,MAAM,4BAA8B4b,EAAO,KAC7D,OAAOxY,C,CA1FT5G,EAAAC,QAAiB23C,EAGjBA,EAAOC,aAAeC,EAGtBF,EAAOhB,OAgCuBc,EAhCKE,EAgCKD,EAhCGG,EAiCrCtgC,EAAM,GAEV1X,OAAOqB,KAAKw2C,GAAOj2C,SAAQ,SAAsB0d,GAC/C,IAAIza,EAAUgzC,EAAMv4B,GAChB24B,EAAShyB,OAAO3G,GAGpBs4B,EAASK,GAAUpzC,EACnB+yC,EAAS/yC,GAAWozC,EACpBL,EAAS/yC,EAAQrB,eAAiBy0C,EAGlCvgC,EAAIrV,KAAK41C,E,IAGJvgC,GA7CTogC,EAAOI,SAAW,CAChB,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAIPJ,EAAOK,MAAQ,CACb,KAAK,EACL,KAAK,EACL,KAAK,GAIPL,EAAOM,MAAQ,CACb,KAAK,EACL,KAAK,EACL,KAAK,E,kDCnDPl4C,EAAAC,QAAiBuwC,KAAKC,MAAM,+hD,kDCAC,mBAAlB3wC,OAAOyb,OAEhBvb,EAAAC,QAAiB,SAAkB6zB,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAK7jB,UAAYnQ,OAAOyb,OAAOwY,EAAU9jB,UAAW,CAClD3N,YAAa,CACXpC,MAAO4zB,EACPvzB,YAAY,EACZqvB,UAAU,EACVD,cAAc,K,EAOtB3vB,EAAAC,QAAiB,SAAkB6zB,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIE,EAAW,WAAY,EAC3BA,EAAShkB,UAAY8jB,EAAU9jB,UAC/B6jB,EAAK7jB,UAAY,IAAIgkB,EACrBH,EAAK7jB,UAAU3N,YAAcwxB,C,oDCVnC9zB,EAAAC,QAUA,SAAuBue,GACrB,OAAOA,EACJ3c,MAAM,KACNsf,KAAI,SAAUyoB,GACb,OAAOA,EAAMxnC,MAAM,EAAG,GAAGiC,cAAgBulC,EAAMxnC,MAAM,E,IAEtDC,KAAK,IACL+mB,QAAO,gBAAkB,G,mDCZ9B,SAAS+uB,EAAMC,GACX,OAAO,IAAIC,SAAQC,GAAWC,WAAWD,EAASF,I,CAlBtDt4C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IAetDF,EAAAC,QAAQ2C,QAdR9B,eAAkC03C,EAAeC,EAAaC,EAAaC,GAEvE,IAAIC,EAAWJ,EACf,IAAK,IAAInzC,EAAI,EAAGA,EAAIozC,EAAapzC,IAAK,CAClC,MAAM7D,QAAem3C,IACrB,GAAIn3C,EACA,OAAOA,QAEL22C,EAAMS,GACZA,GAAYF,EACZrzC,G,CAEJ,OAAO,I,mDCXX,IAUIwzC,EAVY,WAIf,GAAoB,oBAATp+B,KAAwB,OAAOA,KAC1C,GAAsB,oBAAXma,OAA0B,OAAOA,OAC5C,QAAsB,IAAXikB,EAA0B,OAAOA,EAC5C,MAAM,IAAIr1C,MAAM,iC,CAGJs1C,GAEb94C,EAAOC,QAAUA,EAAU44C,EAAO/D,MAG9B+D,EAAO/D,QACV70C,EAAQ2C,QAAUi2C,EAAO/D,MAAMiE,KAAKF,IAGrC54C,EAAQ+4C,QAAUH,EAAOG,QACzB/4C,EAAQg5C,QAAUJ,EAAOI,QACzBh5C,EAAQi5C,SAAWL,EAAOK,Q,kDCxB1B,IAAAC,EAAAl2C,cAAA,S,oGAMIm2C,EAAOp5C,EAAAC,QAEXm5C,EAAKnH,QAAU,SAAUoH,EAAMC,GAE7BD,EADmB,iBAATA,EACHE,EAAA9I,MAAU4I,GAEVG,EAAOH,GAKf,IAAII,GAAmE,IAAjD58B,eAAO68B,SAAS7E,SAAS8E,OAAM,aAAuB,QAAU,GAElF9E,EAAWwE,EAAKxE,UAAY4E,EAC5BG,EAAOP,EAAKQ,UAAYR,EAAKO,KAC7BE,EAAOT,EAAKS,KACZzI,EAAOgI,EAAKhI,MAAQ,IAGpBuI,IAA8B,IAAtBA,EAAKv6B,QAAQ,OACxBu6B,EAAO,IAAMA,EAAO,KAGrBP,EAAKrG,KAAO4G,EAAQ/E,EAAW,KAAO+E,EAAQ,KAAOE,EAAO,IAAMA,EAAO,IAAMzI,EAC/EgI,EAAKlH,QAAUkH,EAAKlH,QAAU,OAAO9tC,cACrCg1C,EAAKnE,QAAUmE,EAAKnE,SAAW,GAI/B,IAAI6E,EAAM,IAAIZ,EAAcE,GAG5B,OAFIC,GACHS,EAAIC,GAAG,WAAYV,GACbS,C,EAGRX,EAAK54C,IAAM,SAAc64C,EAAMC,GAC9B,IAAIS,EAAMX,EAAKnH,QAAQoH,EAAMC,GAE7B,OADAS,EAAIv1B,MACGu1B,C,EAGRX,EAAKa,cAAgBd,EACrBC,EAAKc,gBAAkBC,EAAAD,gBAEvBd,EAAK9E,MAAQ,WAAY,EACzB8E,EAAK9E,MAAM8F,kBAAoB,EAE/BhB,EAAKiB,YAAc,IAAIjB,EAAK9E,MAE5B8E,EAAKvB,aAAeyC,EAEpBlB,EAAKmB,QAAU,CACd,WACA,UACA,OACA,SACA,MACA,OACA,OACA,WACA,QACA,aACA,QACA,OACA,SACA,UACA,QACA,OACA,WACA,YACA,QACA,MACA,SACA,SACA,YACA,QACA,SACA,c,kDCnFD,I,EAAAt3C,cAAA,S,oIAKIu3C,EAAkBL,EAAAD,gBAClBO,EAAUN,EAAAO,YAgBd,IAAIC,EAAgB36C,EAAAC,QAAiB,SAAUo5C,GAC9C,IAYIuB,EAZAngC,EAAOvZ,KACX25C,EAAAC,SAAgBv+B,KAAK9B,GAErBA,EAAKsgC,MAAQ1B,EACb5+B,EAAKugC,MAAQ,GACbvgC,EAAKwgC,SAAW,GACZ5B,EAAK6B,MACRzgC,EAAK0gC,UAAU,gBAAiB,SAAWC,EAAOp5C,KAAKq3C,EAAK6B,MAAM95C,SAAS,WAC5EtB,OAAOqB,KAAKk4C,EAAKnE,SAASxzC,SAAQ,SAAUuf,GAC3CxG,EAAK0gC,UAAUl6B,EAAMo4B,EAAKnE,QAAQj0B,G,IAInC,IAAIo6B,GAAW,EACf,GAAkB,kBAAdhC,EAAKhY,MAA6B,mBAAoBgY,IAASiC,EAAAC,gBAElEF,GAAW,EACXT,GAAe,OACT,GAAkB,qBAAdvB,EAAKhY,KAGfuZ,GAAe,OACT,GAAkB,6BAAdvB,EAAKhY,KAEfuZ,GAAgBU,EAAAE,qBACV,IAAKnC,EAAKhY,MAAsB,YAAdgY,EAAKhY,MAAoC,gBAAdgY,EAAKhY,KAIxD,MAAM,IAAI79B,MAAM,+BAFhBo3C,GAAe,CAE+B,CAE/CngC,EAAKghC,MA9CN,SAAqBb,EAAcS,GAClC,OAAIC,EAAAxG,OAAoBuG,EAChB,QACGC,EAAAI,sBACH,0BACGJ,EAAAK,SACH,YACGL,EAAAM,aAA0BhB,EAC7B,cAEA,M,CAoCKiB,CAAWjB,EAAcS,GACtC5gC,EAAKqhC,YAAc,KACnBrhC,EAAKshC,eAAiB,KACtBthC,EAAKuhC,aAAe,KAEpBvhC,EAAKu/B,GAAG,UAAU,WACjBv/B,EAAKwhC,W,KAIPxF,EAASkE,EAAeE,EAAAC,UAExBH,EAAc1qC,UAAUkrC,UAAY,SAAUl6B,EAAM/gB,GACnD,IACIg8C,EAAYj7B,EAAK3d,eAIoB,IAArC64C,EAAc98B,QAAQ68B,KALfh7C,KAQN+5C,SAASiB,GAAa,CAC1Bj7B,KAAMA,EACN/gB,MAAOA,G,EAITy6C,EAAc1qC,UAAUmsC,UAAY,SAAUn7B,GAC7C,IAAIo7B,EAASn7C,KAAK+5C,SAASh6B,EAAK3d,eAChC,OAAI+4C,EACIA,EAAOn8C,MACR,I,EAGRy6C,EAAc1qC,UAAUqsC,aAAe,SAAUr7B,UACrC/f,KACC+5C,SAASh6B,EAAK3d,c,EAG3Bq3C,EAAc1qC,UAAUgsC,UAAY,WACnC,IAAIxhC,EAAOvZ,KAEX,IAAIuZ,EAAK8hC,WAAT,CAEA,IAAIlD,EAAO5+B,EAAKsgC,MAEZ,YAAa1B,GAAyB,IAAjBA,EAAKmD,SAC7B/hC,EAAK89B,WAAWc,EAAKmD,SAGtB,IAAIC,EAAahiC,EAAKwgC,SAClBhG,EAAO,KACS,QAAhBoE,EAAKlH,QAAoC,SAAhBkH,EAAKlH,SAC3B8C,EAAO,IAAIyH,KAAKjiC,EAAKugC,MAAO,CACxBp6B,MAAO67B,EAAW,iBAAmB,IAAIv8C,OAAS,MAK7D,IAAIy8C,EAAc,GAalB,GAZA78C,OAAOqB,KAAKs7C,GAAY/6C,SAAQ,SAAUk7C,GACzC,IAAI37B,EAAOw7B,EAAWG,GAAS37B,KAC3B/gB,EAAQu8C,EAAWG,GAAS18C,MAC5B6B,MAAM8hB,QAAQ3jB,GACjBA,EAAMwB,SAAQ,SAAUsK,GACvB2wC,EAAYx6C,KAAK,CAAC8e,EAAMjV,G,IAGzB2wC,EAAYx6C,KAAK,CAAC8e,EAAM/gB,G,IAIP,UAAfua,EAAKghC,MAAmB,CAC3B,IAAIoB,EAAS,KACb,GAAIvB,EAAAC,gBAA4B,CAC/B,IAAIuB,EAAa,IAAIC,gBACrBF,EAASC,EAAWD,OACpBpiC,EAAKuiC,sBAAwBF,EAEzB,mBAAoBzD,GAAgC,IAAxBA,EAAK4D,iBACpCxiC,EAAKqhC,YAAcj/B,eAAO07B,YAAW,WACpC99B,EAAKyiC,KAAK,kBACNziC,EAAKuiC,uBACRviC,EAAKuiC,sBAAsBG,O,GAC1B9D,EAAK4D,gB,CAIVpgC,eAAOi4B,MAAMr6B,EAAKsgC,MAAM/H,IAAK,CAC5Bb,OAAQ13B,EAAKsgC,MAAM5I,OACnB+C,QAASyH,EACT1H,KAAMA,QAAQx5B,EACd4lB,KAAM,OACN+b,YAAa/D,EAAKgE,gBAAkB,UAAY,cAChDR,OAAQA,IACNS,MAAK,SAAUtI,GACjBv6B,EAAK8iC,eAAiBvI,EACtBv6B,EAAK+iC,cAAa,GAClB/iC,EAAKgjC,U,IACH,SAAUC,GACZjjC,EAAK+iC,cAAa,GACb/iC,EAAK8hC,YACT9hC,EAAKyiC,KAAK,QAASQ,E,QAEf,CACN,IAAIC,EAAMljC,EAAKmjC,KAAO,IAAI/gC,eAAOghC,eACjC,IACCF,EAAI9kC,KAAK4B,EAAKsgC,MAAM5I,OAAQ13B,EAAKsgC,MAAM/H,KAAK,E,CAC3C,MAAOmD,GAIR,YAHA2H,EAAAC,UAAiB,WAChBtjC,EAAKyiC,KAAK,QAAS/G,E,IAMjB,iBAAkBwH,IACrBA,EAAIK,aAAevjC,EAAKghC,OAErB,oBAAqBkC,IACxBA,EAAIN,kBAAoBhE,EAAKgE,iBAEX,SAAf5iC,EAAKghC,OAAoB,qBAAsBkC,GAClDA,EAAInC,iBAAiB,sCAElB,mBAAoBnC,IACvBsE,EAAInB,QAAUnD,EAAK4D,eACnBU,EAAIM,UAAY,WACfxjC,EAAKyiC,KAAK,iB,GAIZP,EAAYj7C,SAAQ,SAAU26C,GAC7BsB,EAAIO,iBAAiB7B,EAAO,GAAIA,EAAO,G,IAGxC5hC,EAAK0jC,UAAY,KACjBR,EAAIS,mBAAqB,WACxB,OAAQT,EAAIU,YACX,KAAK5D,EAAQ6D,QACb,KAAK7D,EAAQ8D,KACZ9jC,EAAK+jC,iB,EAMW,4BAAf/jC,EAAKghC,QACRkC,EAAIc,WAAa,WAChBhkC,EAAK+jC,gB,GAIPb,EAAIe,QAAU,WACTjkC,EAAK8hC,aAET9hC,EAAK+iC,cAAa,GAClB/iC,EAAKyiC,KAAK,QAAS,IAAI15C,MAAM,c,EAG9B,IACCm6C,EAAIgB,KAAK1J,E,CACR,MAAO2J,GAIR,YAHAd,EAAAC,UAAiB,WAChBtjC,EAAKyiC,KAAK,QAAS0B,E,KAzHrB,C,EA8IFjE,EAAc1qC,UAAUuuC,eAAiB,WACxC,IAAI/jC,EAAOvZ,KAEXuZ,EAAK+iC,cAAa,GAZnB,SAAsBG,GACrB,IACC,IAAItN,EAASsN,EAAItN,OACjB,OAAmB,OAAXA,GAA8B,IAAXA,C,CAC1B,MAAO5gC,GACR,OAAO,C,EASHovC,CAAYpkC,EAAKmjC,QAASnjC,EAAK8hC,aAG/B9hC,EAAK0jC,WACT1jC,EAAKgjC,WAENhjC,EAAK0jC,UAAUK,eAAe/jC,EAAK+iC,aAAazE,KAAKt+B,I,EAGtDkgC,EAAc1qC,UAAUwtC,SAAW,WAClC,IAAIhjC,EAAOvZ,KAEPuZ,EAAK8hC,aAGT9hC,EAAK0jC,UAAY,IAAI3D,EAAgB//B,EAAKmjC,KAAMnjC,EAAK8iC,eAAgB9iC,EAAKghC,MAAOhhC,EAAK+iC,aAAazE,KAAKt+B,IACxGA,EAAK0jC,UAAUnE,GAAG,SAAS,SAAS7D,GACnC17B,EAAKyiC,KAAK,QAAS/G,E,IAGpB17B,EAAKyiC,KAAK,WAAYziC,EAAK0jC,W,EAG5BxD,EAAc1qC,UAAU6uC,OAAS,SAAUC,EAAOv8B,EAAU82B,GAChDp4C,KAEN85C,MAAM74C,KAAK48C,GAChBzF,G,EAGDqB,EAAc1qC,UAAUutC,aAAe,SAAUwB,GAChD,IAAIvkC,EAAOvZ,KAEX2b,eAAOoiC,aAAaxkC,EAAKuhC,cACzBvhC,EAAKuhC,aAAe,KAEhBgD,GACHniC,eAAOoiC,aAAaxkC,EAAKqhC,aACzBrhC,EAAKqhC,YAAc,MACTrhC,EAAKshC,iBACfthC,EAAKuhC,aAAen/B,eAAO07B,YAAW,WACrC99B,EAAKyiC,KAAK,U,GACRziC,EAAKshC,gB,EAIVpB,EAAc1qC,UAAUktC,MAAQxC,EAAc1qC,UAAUivC,QAAU,SAAU/I,GAC3E,IAAI17B,EAAOvZ,KACXuZ,EAAK8hC,YAAa,EAClB9hC,EAAK+iC,cAAa,GACd/iC,EAAK0jC,YACR1jC,EAAK0jC,UAAU5B,YAAa,GACzB9hC,EAAKmjC,KACRnjC,EAAKmjC,KAAKT,QACF1iC,EAAKuiC,uBACbviC,EAAKuiC,sBAAsBG,QAExBhH,GACH17B,EAAKyiC,KAAK,QAAS/G,E,EAGrBwE,EAAc1qC,UAAUuU,IAAM,SAAU1gB,EAAM0e,EAAU82B,GAEnC,mBAATx1C,IACVw1C,EAAKx1C,EACLA,OAAO2X,GAGRo/B,EAAAC,SAAgB7qC,UAAUuU,IAAIjI,KANnBrb,KAM8B4C,EAAM0e,EAAU82B,E,EAG1DqB,EAAc1qC,UAAUsoC,WAAa,SAAUiE,EAASlD,GACvD,IAAI7+B,EAAOvZ,KAEPo4C,GACH7+B,EAAK0kC,KAAK,UAAW7F,GAEtB7+B,EAAKshC,eAAiBS,EACtB/hC,EAAK+iC,cAAa,E,EAGnB7C,EAAc1qC,UAAUmvC,aAAe,WAAY,EACnDzE,EAAc1qC,UAAUovC,WAAa,WAAY,EACjD1E,EAAc1qC,UAAUqvC,mBAAqB,WAAY,EAGzD,IAAInD,EAAgB,CACnB,iBACA,kBACA,iCACA,gCACA,aACA,iBACA,SACA,UACA,OACA,MACA,SACA,OACA,aACA,SACA,UACA,KACA,UACA,oBACA,UACA,M,kDC7VD,IAOIoD,EACAC,EARAC,EAAUz/C,EAAAC,QAAiB,GAU/B,SAASy/C,IACL,MAAM,IAAIl8C,MAAM,kC,CAEpB,SAASm8C,IACL,MAAM,IAAIn8C,MAAM,oC,CAsBpB,SAASo8C,EAAWC,GAChB,GAAIN,IAAqBhH,WAErB,OAAOA,WAAWsH,EAAK,GAG3B,IAAKN,IAAqBG,IAAqBH,IAAqBhH,WAEhE,OADAgH,EAAmBhH,WACZA,WAAWsH,EAAK,GAE3B,IAEI,OAAON,EAAiBM,EAAK,E,CAC/B,MAAMpwC,GACJ,IAEI,OAAO8vC,EAAiBhjC,KAAK,KAAMsjC,EAAK,E,CAC1C,MAAMpwC,GAEJ,OAAO8vC,EAAiBhjC,KAAKrb,KAAM2+C,EAAK,E,IAvCnD,WACG,IAEQN,EADsB,mBAAfhH,WACYA,WAEAmH,C,CAEzB,MAAOjwC,GACL8vC,EAAmBG,C,CAEvB,IAEQF,EADwB,mBAAjBP,aACcA,aAEAU,C,CAE3B,MAAOjpB,GACL8oB,EAAqBG,C,CAE5B,CAnBA,GAwED,IAEIG,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAa,EAEjB,SAASC,IACAF,GAAaF,IAGlBE,GAAW,EACPF,EAAa59C,OACb69C,EAAQD,EAAajiC,OAAOkiC,GAE5BE,GAAa,EAEbF,EAAM79C,QACNi+C,I,CAIR,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAIxD,EAAUoD,EAAWM,GACzBF,GAAW,EAGX,IADA,IAAIjgC,EAAMggC,EAAM79C,OACV6d,GAAK,CAGP,IAFA+/B,EAAeC,EACfA,EAAQ,KACCE,EAAalgC,GACd+/B,GACAA,EAAaG,GAAYG,MAGjCH,GAAa,EACblgC,EAAMggC,EAAM79C,M,CAEhB49C,EAAe,KACfE,GAAW,EAnEf,SAAyBK,GACrB,GAAIb,IAAuBP,aAEvB,OAAOA,aAAaoB,GAGxB,IAAKb,IAAuBG,IAAwBH,IAAuBP,aAEvE,OADAO,EAAqBP,aACdA,aAAaoB,GAExB,IAEWb,EAAmBa,E,CAC5B,MAAO5wC,GACL,IAEI,OAAO+vC,EAAmBjjC,KAAK,KAAM8jC,E,CACvC,MAAO5wC,GAGL,OAAO+vC,EAAmBjjC,KAAKrb,KAAMm/C,E,GAgD7CC,CAAgB9D,EAnBZ,C,CAoCR,SAAS+D,EAAKV,EAAKnhC,GACfxd,KAAK2+C,IAAMA,EACX3+C,KAAKwd,MAAQA,C,CAYjB,SAAS8hC,IAAO,CA5BhBf,EAAQ1B,SAAW,SAAU8B,GACzB,IAAI5gC,EAAO,IAAIld,MAAMsV,UAAUnV,OAAS,GACxC,GAAImV,UAAUnV,OAAS,EACnB,IAAK,IAAImD,EAAI,EAAGA,EAAIgS,UAAUnV,OAAQmD,IAClC4Z,EAAK5Z,EAAI,GAAKgS,UAAUhS,GAGhC06C,EAAM59C,KAAK,IAAIo+C,EAAKV,EAAK5gC,IACJ,IAAjB8gC,EAAM79C,QAAiB89C,GACvBJ,EAAWO,E,EASnBI,EAAKtwC,UAAUmwC,IAAM,WACjBl/C,KAAK2+C,IAAI3gC,MAAM,KAAMhe,KAAKwd,M,EAE9B+gC,EAAQgB,MAAQ,UAChBhB,EAAQiB,SAAU,EAClBjB,EAAQkB,IAAM,GACdlB,EAAQmB,KAAO,GACfnB,EAAQoB,QAAU,GAClBpB,EAAQqB,SAAW,GAInBrB,EAAQzF,GAAKwG,EACbf,EAAQsB,YAAcP,EACtBf,EAAQN,KAAOqB,EACff,EAAQ5pB,IAAM2qB,EACdf,EAAQuB,eAAiBR,EACzBf,EAAQwB,mBAAqBT,EAC7Bf,EAAQvC,KAAOsD,EACff,EAAQyB,gBAAkBV,EAC1Bf,EAAQ0B,oBAAsBX,EAE9Bf,EAAQ2B,UAAY,SAAUngC,GAAQ,MAAO,E,EAE7Cw+B,EAAQ4B,QAAU,SAAUpgC,GACxB,MAAM,IAAIzd,MAAM,mC,EAGpBi8C,EAAQ6B,IAAM,WAAc,MAAO,G,EACnC7B,EAAQ8B,MAAQ,SAAUr8B,GACtB,MAAM,IAAI1hB,MAAM,iC,EAEpBi8C,EAAQ+B,MAAQ,WAAa,OAAO,C,mDCvLpC,IAAAC,EAEAC,EAEAC,EAuCAC,EAIAC,EACAC,EAIAC,EA3CIC,EACJ,SAASC,IAER,QAAYxmC,IAARumC,EAAmB,OAAOA,EAE9B,GAAInlC,eAAOghC,eAAgB,CAC1BmE,EAAM,IAAInlC,eAAOghC,eAIjB,IACCmE,EAAInpC,KAAK,MAAOgE,eAAOqlC,eAAiB,IAAM,sB,CAC7C,MAAMzyC,GACPuyC,EAAM,I,OAIPA,EAAM,KAEP,OAAOA,C,CAGR,SAASG,EAAkBvhC,GAC1B,IAAIwhC,EAAMH,IACV,IAAKG,EAAK,OAAO,EACjB,IAEC,OADAA,EAAIpE,aAAep9B,EACZwhC,EAAIpE,eAAiBp9B,CACjB,CAAV,MAAOnR,GAAG,CACZ,OAAO,C,CAgBR,SAAS4yC,EAAYniD,GACpB,MAAwB,mBAAVA,C,6nBAvDfuhD,EAAgBY,EAAWxlC,eAAOi4B,QAAUuN,EAAWxlC,eAAOylC,gBAE9DZ,EAAyBW,EAAWxlC,eAAO0lC,gBAE3CZ,EAA0BU,EAAWxlC,eAAOkgC,iBAuC5C6E,EAAsBH,GAAiBU,EAAiB,eAIxDN,GAAoBJ,GAAiBU,EAAiB,aACtDL,GAAiCL,GAAiBU,EAAiB,2BAInEJ,EAA2BN,KAAkBQ,KAAWI,EAAWJ,IAASzG,kBAM5EwG,EAAM,I,kDCtDQ,IAAAQ,EAQQC,E,8TARlBC,EAAUF,EAAsB,CACnCG,OAAQ,EACRC,OAAQ,EACRC,iBAAkB,EAClBvE,QAAS,EACTC,KAAM,GAGHuE,EAAkBL,EAA0B,SAAU9E,EAAKpL,EAAUlR,EAAM0hB,GAC9E,IAAItoC,EAAOvZ,KAiBX,GAhBA25C,EAAAmI,SAAgBzmC,KAAK9B,GAErBA,EAAKghC,MAAQpa,EACb5mB,EAAKy6B,QAAU,GACfz6B,EAAKwoC,WAAa,GAClBxoC,EAAKyoC,SAAW,GAChBzoC,EAAK0oC,YAAc,GAGnB1oC,EAAKu/B,GAAG,OAAO,WAEd8D,EAAAC,UAAiB,WAChBtjC,EAAKyiC,KAAK,Q,OAIC,UAAT7b,EAAkB,CAYrB,GAXA5mB,EAAK8iC,eAAiBhL,EAEtB93B,EAAKu4B,IAAMT,EAASS,IACpBv4B,EAAK47B,WAAa9D,EAASlC,OAC3B51B,EAAK2oC,cAAgB7Q,EAAS8Q,WAE9B9Q,EAAS2C,QAAQxzC,SAAQ,SAAU26C,EAAQ16C,GAC1C8Y,EAAKy6B,QAAQvzC,EAAI2B,eAAiB+4C,EAClC5hC,EAAKwoC,WAAW9gD,KAAKR,EAAK06C,E,IAGvBf,EAAAgI,eAA2B,CAC9B,IAAI1zB,EAAW,IAAI2yB,eAAe,CACjC3/B,MAAO,SAAUm8B,GAEhB,OADAgE,GAAY,GACL,IAAI1K,SAAQ,SAAUC,EAASiL,GACjC9oC,EAAK8hC,WACRgH,IACS9oC,EAAKtY,KAAKqhD,EAAOxhD,KAAK+8C,IAC/BzG,IAEA79B,EAAKgpC,aAAenL,C,KAIvBoL,MAAO,WACNX,GAAY,GACPtoC,EAAK8hC,YACT9hC,EAAKtY,KAAK,K,EAEZg7C,MAAO,SAAUhH,GAChB4M,GAAY,GACPtoC,EAAK8hC,YACT9hC,EAAKyiC,KAAK,QAAS/G,E,IAItB,IAMC,YALA5D,EAAS0C,KAAK0O,OAAO/zB,GAAUg0B,OAAM,SAAUzN,GAC9C4M,GAAY,GACPtoC,EAAK8hC,YACT9hC,EAAKyiC,KAAK,QAAS/G,E,GAGV,CAAV,MAAO1mC,GAAG,C,CAGb,IAAI8R,EAASgxB,EAAS0C,KAAK4O,aAC3B,SAASn+B,IACRnE,EAAOmE,OAAO43B,MAAK,SAAU97C,GACxBiZ,EAAK8hC,aAETwG,EAAYvhD,EAAOw9C,MACfx9C,EAAOw9C,KACVvkC,EAAKtY,KAAK,OAGXsY,EAAKtY,KAAKqhD,EAAOxhD,KAAKR,EAAOtB,QAC7BwlB,K,IACEk+B,OAAM,SAAUzN,GAClB4M,GAAY,GACPtoC,EAAK8hC,YACT9hC,EAAKyiC,KAAK,QAAS/G,E,IAGtBzwB,E,KACM,CA2BN,GA1BAjL,EAAKmjC,KAAOD,EACZljC,EAAKqpC,KAAO,EAEZrpC,EAAKu4B,IAAM2K,EAAIoG,YACftpC,EAAK47B,WAAasH,EAAItN,OACtB51B,EAAK2oC,cAAgBzF,EAAI0F,WACX1F,EAAIqG,wBAAwBniD,MAAK,SACvCH,SAAQ,SAAU26C,GACzB,IAAI4H,EAAU5H,EAAO6H,MAAK,oBAC1B,GAAID,EAAS,CACZ,IAAItiD,EAAMsiD,EAAQ,GAAG3gD,cACT,eAAR3B,QACuB8Z,IAAtBhB,EAAKy6B,QAAQvzC,KAChB8Y,EAAKy6B,QAAQvzC,GAAO,IAErB8Y,EAAKy6B,QAAQvzC,GAAKQ,KAAK8hD,EAAQ,UACCxoC,IAAtBhB,EAAKy6B,QAAQvzC,GACvB8Y,EAAKy6B,QAAQvzC,IAAQ,KAAOsiD,EAAQ,GAEpCxpC,EAAKy6B,QAAQvzC,GAAOsiD,EAAQ,GAE7BxpC,EAAKwoC,WAAW9gD,KAAK8hD,EAAQ,GAAIA,EAAQ,G,KAI3CxpC,EAAK0pC,SAAW,kBACX7I,EAAAE,iBAA6B,CACjC,IAAI4I,EAAW3pC,EAAKwoC,WAAW,aAC/B,GAAImB,EAAU,CACb,IAAIC,EAAeD,EAASF,MAAK,2BAC7BG,IACH5pC,EAAK0pC,SAAWE,EAAa,GAAG/gD,c,CAG7BmX,EAAK0pC,WACT1pC,EAAK0pC,SAAW,Q,IAKpB1N,EAASqM,EAAiBjI,EAAAmI,UAE1BF,EAAgB7yC,UAAUq0C,MAAQ,WACjC,IAEIhM,EAFOp3C,KAEQuiD,aACfnL,IAHOp3C,KAILuiD,aAAe,KACpBnL,I,EAIFwK,EAAgB7yC,UAAUuuC,eAAiB,SAAUuE,GACpD,IAAItoC,EAAOvZ,KAEPy8C,EAAMljC,EAAKmjC,KAEXrL,EAAW,KACf,OAAQ93B,EAAKghC,OACZ,IAAK,OAEJ,IADAlJ,EAAWoL,EAAI4G,cACFriD,OAASuY,EAAKqpC,KAAM,CAChC,IAAIU,EAAUjS,EAASnsB,OAAO3L,EAAKqpC,MACnC,GAAsB,mBAAlBrpC,EAAK0pC,SAA+B,CAEvC,IADA,IAAIn5C,EAASw4C,EAAO1lC,MAAM0mC,EAAQtiD,QACzBmD,EAAI,EAAGA,EAAIm/C,EAAQtiD,OAAQmD,IACnC2F,EAAO3F,GAA6B,IAAxBm/C,EAAQ/9B,WAAWphB,GAEhCoV,EAAKtY,KAAK6I,E,MAEVyP,EAAKtY,KAAKqiD,EAAS/pC,EAAK0pC,UAEzB1pC,EAAKqpC,KAAOvR,EAASrwC,M,CAEtB,MACD,IAAK,cACJ,GAAIy7C,EAAIU,aAAeqE,EAAQnE,OAASZ,EAAIpL,SAC3C,MACDA,EAAWoL,EAAIpL,SACf93B,EAAKtY,KAAKqhD,EAAOxhD,KAAK,IAAI0D,WAAW6sC,KACrC,MACD,IAAK,0BAEJ,GADAA,EAAWoL,EAAIpL,SACXoL,EAAIU,aAAeqE,EAAQpE,UAAY/L,EAC1C,MACD93B,EAAKtY,KAAKqhD,EAAOxhD,KAAK,IAAI0D,WAAW6sC,KACrC,MACD,IAAK,YAEJ,GADAA,EAAWoL,EAAIpL,SACXoL,EAAIU,aAAeqE,EAAQpE,QAC9B,MACD,IAAI/8B,EAAS,IAAI1E,eAAO4nC,eACxBljC,EAAOk9B,WAAa,WACfl9B,EAAO/f,OAAO6hB,WAAa5I,EAAKqpC,OACnCrpC,EAAKtY,KAAKqhD,EAAOxhD,KAAK,IAAI0D,WAAW6b,EAAO/f,OAAOY,MAAMqY,EAAKqpC,SAC9DrpC,EAAKqpC,KAAOviC,EAAO/f,OAAO6hB,W,EAG5B9B,EAAOmjC,OAAS,WACf3B,GAAY,GACZtoC,EAAKtY,KAAK,K,EAGXof,EAAOojC,kBAAkBpS,GAKvB93B,EAAKmjC,KAAKS,aAAeqE,EAAQnE,MAAuB,cAAf9jC,EAAKghC,QACjDsH,GAAY,GACZtoC,EAAKtY,KAAK,M,oDChNZlC,EAAUD,EAAOC,QAAUgD,cAAA,UACnB2hD,OAAS3kD,EACjBA,EAAQ+iD,SAAW/iD,EACnBA,EAAQ66C,SAAW73C,cAAA,SACnBhD,EAAQ4kD,OAAS5hD,cAAA,SACjBhD,EAAQ6kD,UAAY7hD,cAAA,SACpBhD,EAAQ8kD,YAAc9hD,cAAA,SACtBhD,EAAQ+kD,SAAW/hD,cAAA,SACnBhD,EAAQglD,SAAWhiD,cAAA,Q,sDCiBfiiD,E,yBAHJllD,EAAAC,QAAiBklD,EAMjBA,EAASC,cAAgBC,E,uBAGrBC,a,IAEAC,EAAkB,SAAyBC,EAAS5kC,GACtD,OAAO4kC,EAAQpE,UAAUxgC,GAAM1e,M,oDAW7BwyB,OAEA+wB,EAAgB5oC,eAAOnX,YAAc,WAAY,E,IAcjDggD,E,yBAGFA,EADEC,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,WAAiB,E,IAmBvBC,EACAC,EACAC,E,kDAXAC,E,uBAAmBC,iB,yBAEnBrP,MACAsP,EAAuBC,EAAe/1B,qBACtCg2B,EAA4BD,EAAeE,0BAC3CC,EAA6BH,EAAeI,2BAC5CC,EAAqCL,EAAeM,mCAOxDxjD,cAAA,SAAoBkiD,EAAUuB,GAE9B,IAAIC,EAAiBC,EAAAC,eACjBC,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAa1D,SAASzB,EAAcjb,EAASiB,EAAQ0b,GACtC7B,EAASA,GAAUjiD,cAAA,SACnBmnC,EAAUA,GAAW,GAMG,kBAAb2c,IAAwBA,EAAW1b,aAAkB6Z,GAGhEhkD,KAAK8lD,aAAe5c,EAAQ4c,WACxBD,IAAU7lD,KAAK8lD,WAAa9lD,KAAK8lD,cAAgB5c,EAAQ6c,oBAG7D/lD,KAAKgmD,cAAgBlB,EAAiB9kD,KAAMkpC,EAAS,wBAAyB2c,GAI9E7lD,KAAK8J,OAAS,IAAIm8C,EAClBjmD,KAAKgB,OAAS,EACdhB,KAAKkmD,MAAQ,KACblmD,KAAKmmD,WAAa,EAClBnmD,KAAKomD,QAAU,KACfpmD,KAAKqmD,OAAQ,EACbrmD,KAAKsmD,YAAa,EAClBtmD,KAAKumD,SAAU,EAKfvmD,KAAKwmD,MAAO,EAGZxmD,KAAKymD,cAAe,EACpBzmD,KAAK0mD,iBAAkB,EACvB1mD,KAAK2mD,mBAAoB,EACzB3mD,KAAK4mD,iBAAkB,EACvB5mD,KAAK6mD,QAAS,EAEd7mD,KAAK8mD,WAAkC,IAAtB5d,EAAQ4d,UAEzB9mD,KAAK+mD,cAAgB7d,EAAQ6d,YAE7B/mD,KAAKgnD,WAAY,EAIjBhnD,KAAKinD,gBAAkB/d,EAAQ+d,iBAAmB,OAElDjnD,KAAKknD,WAAa,EAElBlnD,KAAKmnD,aAAc,EACnBnnD,KAAKonD,QAAU,KACfpnD,KAAKshB,SAAW,KAEZ4nB,EAAQ5nB,WACLqjC,IAAeA,EAAgB5iD,cAAA,SAAAslD,eACpCrnD,KAAKonD,QAAU,IAAIzC,EAAczb,EAAQ5nB,UACzCthB,KAAKshB,SAAW4nB,EAAQ5nB,S,CAI5B,SAAS2iC,EAAS/a,GAEhB,GADA8a,EAASA,GAAUjiD,cAAA,WACb/B,gBAAgBikD,GAAW,OAAO,IAAIA,EAAS/a,GAGrD,IAAI2c,EAAW7lD,gBAAgBgkD,EAC/BhkD,KAAKsnD,eAAiB,IAAInD,EAAcjb,EAASlpC,KAAM6lD,GAEvD7lD,KAAKunD,UAAW,EAEZre,IAC0B,mBAAjBA,EAAQ1kB,OAAqBxkB,KAAKojD,MAAQla,EAAQ1kB,MAC9B,mBAApB0kB,EAAQ8U,UAAwBh+C,KAAKwnD,SAAWte,EAAQ8U,UAGrEwH,EAAOnqC,KAAKrb,K,CAiEd,SAASynD,EAAiBtd,EAAQ0T,EAAOv8B,EAAUomC,EAAYC,GAC7DnD,EAAM,mBAAoB3G,GAC1B,IAMM+J,EANFC,EAAQ1d,EAAOmd,eAEnB,GAAc,OAAVzJ,EACFgK,EAAMtB,SAAU,EAyOpB,SAAoBpc,EAAQ0d,GAE1B,GADArD,EAAM,cACFqD,EAAMxB,MAAO,OAEjB,GAAIwB,EAAMT,QAAS,CACjB,IAAIvJ,EAAQgK,EAAMT,QAAQ9jC,MAEtBu6B,GAASA,EAAM78C,SACjB6mD,EAAM/9C,OAAO7I,KAAK48C,GAClBgK,EAAM7mD,QAAU6mD,EAAM/B,WAAa,EAAIjI,EAAM78C,O,CAIjD6mD,EAAMxB,OAAQ,EAEVwB,EAAMrB,KAIRsB,EAAa3d,IAGb0d,EAAMpB,cAAe,EAEhBoB,EAAMnB,kBACTmB,EAAMnB,iBAAkB,EACxBqB,EAAc5d,I,CAlQhB6d,CAAW7d,EAAQ0d,QAKnB,GAFKF,IAAgBC,EAmDzB,SAAsBC,EAAOhK,GAC3B,IAAI+J,EAhQiB/nC,EAkQFg+B,EAjQZoK,EAAOzlC,SAAS3C,IAAQA,aAAe0kC,GAiQA,iBAAV1G,QAAgCtjC,IAAVsjC,GAAwBgK,EAAM/B,aACtF8B,EAAK,IAAI5C,EAAqB,QAAS,CAAC,SAAU,SAAU,cAAenH,IAnQ/E,IAAuBh+B,EAsQrB,OAAO+nC,C,CA1DqBM,CAAaL,EAAOhK,IAE1C+J,EACFnC,EAAetb,EAAQyd,QAClB,GAAIC,EAAM/B,YAAcjI,GAASA,EAAM78C,OAAS,EAKrD,GAJqB,iBAAV68C,GAAuBgK,EAAM/B,YAAclnD,OAAOupD,eAAetK,KAAWoK,EAAOl5C,YAC5F8uC,EAtNR,SAA6BA,GAC3B,OAAOoK,EAAOnnD,KAAK+8C,E,CAqNLuK,CAAoBvK,IAG1B6J,EACEG,EAAMvB,WAAYb,EAAetb,EAAQ,IAAImb,GAA2C+C,EAASle,EAAQ0d,EAAOhK,GAAO,QACtH,GAAIgK,EAAMxB,MACfZ,EAAetb,EAAQ,IAAI+a,OACtB,IAAI2C,EAAMb,UACf,OAAO,EAEPa,EAAMtB,SAAU,EAEZsB,EAAMT,UAAY9lC,GACpBu8B,EAAQgK,EAAMT,QAAQ1lC,MAAMm8B,GACxBgK,EAAM/B,YAA+B,IAAjBjI,EAAM78C,OAAcqnD,EAASle,EAAQ0d,EAAOhK,GAAO,GAAYyK,EAAcne,EAAQ0d,IAE7GQ,EAASle,EAAQ0d,EAAOhK,GAAO,E,MAGzB6J,IACVG,EAAMtB,SAAU,EAChB+B,EAAcne,EAAQ0d,IAO1B,OAAQA,EAAMxB,QAAUwB,EAAM7mD,OAAS6mD,EAAM7B,eAAkC,IAAjB6B,EAAM7mD,O,CAGtE,SAASqnD,EAASle,EAAQ0d,EAAOhK,EAAO6J,GAClCG,EAAMzB,SAA4B,IAAjByB,EAAM7mD,SAAiB6mD,EAAMrB,MAChDqB,EAAMX,WAAa,EACnB/c,EAAO6R,KAAK,OAAQ6B,KAGpBgK,EAAM7mD,QAAU6mD,EAAM/B,WAAa,EAAIjI,EAAM78C,OACzC0mD,EAAYG,EAAM/9C,OAAO6+B,QAAQkV,GAAYgK,EAAM/9C,OAAO7I,KAAK48C,GAC/DgK,EAAMpB,cAAcqB,EAAa3d,IAGvCme,EAAcne,EAAQ0d,E,CAvHxBjpD,OAAOC,eAAeolD,EAASl1C,UAAW,YAAa,CAIrD1P,YAAY,EACZC,IAAK,WACH,YAA4Bib,IAAxBva,KAAKsnD,gBAIFtnD,KAAKsnD,eAAeN,S,EAE7Bt/B,IAAK,SAAa1oB,GAGXgB,KAAKsnD,iBAMVtnD,KAAKsnD,eAAeN,UAAYhoD,E,IAGpCilD,EAASl1C,UAAUivC,QAAU0H,EAAA1H,QAC7BiG,EAASl1C,UAAUw5C,WAAa7C,EAAA8C,UAEhCvE,EAASl1C,UAAUy4C,SAAW,SAAUvS,EAAKmD,GAC3CA,EAAGnD,E,EAOLgP,EAASl1C,UAAU9N,KAAO,SAAU48C,EAAOv8B,GACzC,IACIqmC,EADAE,EAAQ7nD,KAAKsnD,eAkBjB,OAfKO,EAAM/B,WAYT6B,GAAiB,EAXI,iBAAV9J,KACTv8B,EAAWA,GAAYumC,EAAMZ,mBAEZY,EAAMvmC,WACrBu8B,EAAQoK,EAAOnnD,KAAK+8C,EAAOv8B,GAC3BA,EAAW,IAGbqmC,GAAiB,GAMdF,EAAiBznD,KAAM69C,EAAOv8B,GAAU,EAAOqmC,E,EAIxD1D,EAASl1C,UAAU45B,QAAU,SAAUkV,GACrC,OAAO4J,EAAiBznD,KAAM69C,EAAO,MAAM,GAAM,E,EAyEnDoG,EAASl1C,UAAU05C,SAAW,WAC5B,OAAuC,IAAhCzoD,KAAKsnD,eAAelB,O,EAI7BnC,EAASl1C,UAAU25C,YAAc,SAAUC,GACpChE,IAAeA,EAAgB5iD,cAAA,SAAAslD,eACpC,IAAID,EAAU,IAAIzC,EAAcgE,GAChC3oD,KAAKsnD,eAAeF,QAAUA,EAE9BpnD,KAAKsnD,eAAehmC,SAAWthB,KAAKsnD,eAAeF,QAAQ9lC,SAK3D,IAHA,IAAIlb,EAAIpG,KAAKsnD,eAAex9C,OAAO8+C,KAC/BC,EAAU,GAED,OAANziD,GACLyiD,GAAWzB,EAAQ1lC,MAAMtb,EAAExD,MAC3BwD,EAAIA,EAAEw/B,KAOR,OAJA5lC,KAAKsnD,eAAex9C,OAAOoiC,QAEX,KAAZ2c,GAAgB7oD,KAAKsnD,eAAex9C,OAAO7I,KAAK4nD,GACpD7oD,KAAKsnD,eAAetmD,OAAS6nD,EAAQ7nD,OAC9BhB,I,EAIT,IAAI8oD,EAAU,WAuBd,SAASC,EAAcrjD,EAAGmiD,GACxB,OAAIniD,GAAK,GAAsB,IAAjBmiD,EAAM7mD,QAAgB6mD,EAAMxB,MAAc,EACpDwB,EAAM/B,WAAmB,EAEzBpgD,GAAMA,EAEJmiD,EAAMzB,SAAWyB,EAAM7mD,OAAe6mD,EAAM/9C,OAAO8+C,KAAKhmD,KAAK5B,OAAmB6mD,EAAM7mD,QAIxF0E,EAAImiD,EAAM7B,gBAAe6B,EAAM7B,cA/BrC,SAAiCtgD,GAgB/B,OAfIA,GAAKojD,EAEPpjD,EAAIojD,GAIJpjD,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAGKA,C,CAe4CsjD,CAAwBtjD,IACvEA,GAAKmiD,EAAM7mD,OAAe0E,EAEzBmiD,EAAMxB,MAKJwB,EAAM7mD,QAJX6mD,EAAMpB,cAAe,EACd,G,CAwIX,SAASqB,EAAa3d,GACpB,IAAI0d,EAAQ1d,EAAOmd,eACnB9C,EAAM,eAAgBqD,EAAMpB,aAAcoB,EAAMnB,iBAChDmB,EAAMpB,cAAe,EAEhBoB,EAAMnB,kBACTlC,EAAM,eAAgBqD,EAAMzB,SAC5ByB,EAAMnB,iBAAkB,EACxB9J,EAAAC,SAAiBkL,EAAe5d,G,CAIpC,SAAS4d,EAAc5d,GACrB,IAAI0d,EAAQ1d,EAAOmd,eACnB9C,EAAM,gBAAiBqD,EAAMb,UAAWa,EAAM7mD,OAAQ6mD,EAAMxB,OAEvDwB,EAAMb,YAAca,EAAM7mD,SAAU6mD,EAAMxB,QAC7Clc,EAAO6R,KAAK,YACZ6L,EAAMnB,iBAAkB,GAS1BmB,EAAMpB,cAAgBoB,EAAMzB,UAAYyB,EAAMxB,OAASwB,EAAM7mD,QAAU6mD,EAAM7B,cAC7EiD,EAAK9e,E,CASP,SAASme,EAAcne,EAAQ0d,GACxBA,EAAMV,cACTU,EAAMV,aAAc,EACpBvK,EAAAC,SAAiBqM,EAAgB/e,EAAQ0d,G,CAI7C,SAASqB,EAAe/e,EAAQ0d,GAwB9B,MAAQA,EAAMtB,UAAYsB,EAAMxB,QAAUwB,EAAM7mD,OAAS6mD,EAAM7B,eAAiB6B,EAAMzB,SAA4B,IAAjByB,EAAM7mD,SAAe,CACpH,IAAI6d,EAAMgpC,EAAM7mD,OAGhB,GAFAwjD,EAAM,wBACNra,EAAO3lB,KAAK,GACR3F,IAAQgpC,EAAM7mD,OAChB,K,CAGJ6mD,EAAMV,aAAc,C,CA6QtB,SAASgC,EAAwB5vC,GAC/B,IAAIsuC,EAAQtuC,EAAK+tC,eACjBO,EAAMlB,kBAAoBptC,EAAK6vC,cAAc,YAAc,EAEvDvB,EAAMjB,kBAAoBiB,EAAMhB,OAGlCgB,EAAMzB,SAAU,EACP7sC,EAAK6vC,cAAc,QAAU,GACtC7vC,EAAK8vC,Q,CAIT,SAASC,EAAiB/vC,GACxBirC,EAAM,4BACNjrC,EAAKiL,KAAK,E,CA4BZ,SAAS+kC,EAAQpf,EAAQ0d,GACvBrD,EAAM,SAAUqD,EAAMtB,SAEjBsB,EAAMtB,SACTpc,EAAO3lB,KAAK,GAGdqjC,EAAMjB,iBAAkB,EACxBzc,EAAO6R,KAAK,UACZiN,EAAK9e,GACD0d,EAAMzB,UAAYyB,EAAMtB,SAASpc,EAAO3lB,KAAK,E,CAgBnD,SAASykC,EAAK9e,GACZ,IAAI0d,EAAQ1d,EAAOmd,eAGnB,IAFA9C,EAAM,OAAQqD,EAAMzB,SAEbyB,EAAMzB,SAA6B,OAAlBjc,EAAO3lB,S,CA4HjC,SAASglC,EAAS9jD,EAAGmiD,GAEnB,OAAqB,IAAjBA,EAAM7mD,OAAqB,MAE3B6mD,EAAM/B,WAAYl9B,EAAMi/B,EAAM/9C,OAAOgtB,SAAkBpxB,GAAKA,GAAKmiD,EAAM7mD,QAEtD4nB,EAAfi/B,EAAMT,QAAeS,EAAM/9C,OAAO3I,KAAK,IAAqC,IAAxB0mD,EAAM/9C,OAAO9I,OAAoB6mD,EAAM/9C,OAAO+gB,QAAmBg9B,EAAM/9C,OAAO6S,OAAOkrC,EAAM7mD,QACnJ6mD,EAAM/9C,OAAOoiC,SAGbtjB,EAAMi/B,EAAM/9C,OAAO2/C,QAAQ/jD,EAAGmiD,EAAMT,SAE/Bx+B,GATP,IAAIA,C,CAYN,SAAS8gC,EAAYvf,GACnB,IAAI0d,EAAQ1d,EAAOmd,eACnB9C,EAAM,cAAeqD,EAAMvB,YAEtBuB,EAAMvB,aACTuB,EAAMxB,OAAQ,EACdzJ,EAAAC,SAAiB8M,EAAe9B,EAAO1d,G,CAI3C,SAASwf,EAAc9B,EAAO1d,GAG5B,GAFAqa,EAAM,gBAAiBqD,EAAMvB,WAAYuB,EAAM7mD,SAE1C6mD,EAAMvB,YAA+B,IAAjBuB,EAAM7mD,SAC7B6mD,EAAMvB,YAAa,EACnBnc,EAAOod,UAAW,EAClBpd,EAAO6R,KAAK,OAER6L,EAAMd,aAAa,CAGrB,IAAI6C,EAASzf,EAAO0f,iBAEfD,GAAUA,EAAO7C,aAAe6C,EAAO9F,WAC1C3Z,EAAO6T,S,EAgBf,SAAS8L,EAAQC,EAAI5kD,GACnB,IAAK,IAAIhB,EAAI,EAAGkB,EAAI0kD,EAAG/oD,OAAQmD,EAAIkB,EAAGlB,IACpC,GAAI4lD,EAAG5lD,KAAOgB,EAAG,OAAOhB,EAG1B,OAAO,C,CA3tBT8/C,EAASl1C,UAAUyV,KAAO,SAAU9e,GAClC8+C,EAAM,OAAQ9+C,GACdA,EAAIuf,SAASvf,EAAG,IAChB,IAAImiD,EAAQ7nD,KAAKsnD,eACb0C,EAAQtkD,EAKZ,GAJU,IAANA,IAASmiD,EAAMnB,iBAAkB,GAI3B,IAANhhD,GAAWmiD,EAAMpB,gBAA0C,IAAxBoB,EAAM7B,cAAsB6B,EAAM7mD,QAAU6mD,EAAM7B,cAAgB6B,EAAM7mD,OAAS,IAAM6mD,EAAMxB,OAGlI,OAFA7B,EAAM,qBAAsBqD,EAAM7mD,OAAQ6mD,EAAMxB,OAC3B,IAAjBwB,EAAM7mD,QAAgB6mD,EAAMxB,MAAOqD,EAAY1pD,MAAW8nD,EAAa9nD,MACpE,KAKT,GAAU,KAFV0F,EAAIqjD,EAAcrjD,EAAGmiD,KAENA,EAAMxB,MAEnB,OADqB,IAAjBwB,EAAM7mD,QAAc0oD,EAAY1pD,MAC7B,KAyBT,IA4BI4oB,EA5BAqhC,EAASpC,EAAMpB,aAgDnB,OA/CAjC,EAAM,gBAAiByF,IAEF,IAAjBpC,EAAM7mD,QAAgB6mD,EAAM7mD,OAAS0E,EAAImiD,EAAM7B,gBAEjDxB,EAAM,6BADNyF,GAAS,GAMPpC,EAAMxB,OAASwB,EAAMtB,QAEvB/B,EAAM,mBADNyF,GAAS,GAEAA,IACTzF,EAAM,WACNqD,EAAMtB,SAAU,EAChBsB,EAAMrB,MAAO,EAEQ,IAAjBqB,EAAM7mD,SAAc6mD,EAAMpB,cAAe,GAE7CzmD,KAAKojD,MAAMyE,EAAM7B,eAEjB6B,EAAMrB,MAAO,EAGRqB,EAAMtB,UAAS7gD,EAAIqjD,EAAciB,EAAOnC,KAMnC,QAFDj/B,EAAPljB,EAAI,EAAS8jD,EAAS9jD,EAAGmiD,GAAkB,OAG7CA,EAAMpB,aAAeoB,EAAM7mD,QAAU6mD,EAAM7B,cAC3CtgD,EAAI,IAEJmiD,EAAM7mD,QAAU0E,EAChBmiD,EAAMX,WAAa,GAGA,IAAjBW,EAAM7mD,SAGH6mD,EAAMxB,QAAOwB,EAAMpB,cAAe,GAEnCuD,IAAUtkD,GAAKmiD,EAAMxB,OAAOqD,EAAY1pD,OAGlC,OAAR4oB,GAAc5oB,KAAKg8C,KAAK,OAAQpzB,GAC7BA,C,EAwHTq7B,EAASl1C,UAAUq0C,MAAQ,SAAU19C,GACnC+/C,EAAezlD,KAAM,IAAIolD,EAA2B,W,EAGtDnB,EAASl1C,UAAUm7C,KAAO,SAAUj2B,EAAMk2B,GACxC,IAAIt6B,EAAM7vB,KACN6nD,EAAQ7nD,KAAKsnD,eAEjB,OAAQO,EAAM1B,YACZ,KAAK,EACH0B,EAAM3B,MAAQjyB,EACd,MAEF,KAAK,EACH4zB,EAAM3B,MAAQ,CAAC2B,EAAM3B,MAAOjyB,GAC5B,MAEF,QACE4zB,EAAM3B,MAAMjlD,KAAKgzB,GAIrB4zB,EAAM1B,YAAc,EACpB3B,EAAM,wBAAyBqD,EAAM1B,WAAYgE,GACjD,IACIC,IADUD,IAA6B,IAAjBA,EAAS7mC,MAAkB2Q,IAAS2oB,EAAAyN,QAAkBp2B,IAAS2oB,EAAA0N,OACrEC,EAAQC,EAI5B,SAASC,EAASlD,EAAUmD,GAC1BlG,EAAM,YAEF+C,IAAa13B,GACX66B,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAoB5BnG,EAAM,WAENvwB,EAAK6rB,eAAe,QAAS8K,GAC7B32B,EAAK6rB,eAAe,SAAU+K,GAC9B52B,EAAK6rB,eAAe,QAASgL,GAC7B72B,EAAK6rB,eAAe,QAAStC,GAC7BvpB,EAAK6rB,eAAe,SAAU2K,GAC9B56B,EAAIiwB,eAAe,MAAOyK,GAC1B16B,EAAIiwB,eAAe,MAAO0K,GAC1B36B,EAAIiwB,eAAe,OAAQiL,GAC3BC,GAAY,GAMRnD,EAAMX,YAAgBjzB,EAAK41B,iBAAkB51B,EAAK41B,eAAeoB,WAAYH,I,CA9BnF,SAASP,IACP/F,EAAM,SACNvwB,EAAK3Q,K,CAhBHukC,EAAMvB,WAAY1J,EAAAC,SAAiBuN,GAAYv6B,EAAIouB,KAAK,MAAOmM,GACnEn2B,EAAK6kB,GAAG,SAAU2R,GAsBlB,IAAIK,EAwFN,SAAqBj7B,GACnB,OAAO,WACL,IAAIg4B,EAAQh4B,EAAIy3B,eAChB9C,EAAM,cAAeqD,EAAMX,YACvBW,EAAMX,YAAYW,EAAMX,aAEH,IAArBW,EAAMX,YAAoB7C,EAAgBx0B,EAAK,UACjDg4B,EAAMzB,SAAU,EAChB6C,EAAKp5B,G,EAhGKq7B,CAAYr7B,GAC1BoE,EAAK6kB,GAAG,QAASgS,GACjB,IAAIE,GAAY,EAwBhB,SAASD,EAAOlN,GACd2G,EAAM,UACN,IAAI57B,EAAMqL,EAAKvS,MAAMm8B,GACrB2G,EAAM,aAAc57B,IAER,IAARA,KAKwB,IAArBi/B,EAAM1B,YAAoB0B,EAAM3B,QAAUjyB,GAAQ4zB,EAAM1B,WAAa,IAAoC,IAA/B2D,EAAQjC,EAAM3B,MAAOjyB,MAAkB+2B,IACpHxG,EAAM,8BAA+BqD,EAAMX,YAC3CW,EAAMX,cAGRr3B,EAAIs7B,Q,CAMR,SAAS3N,EAAQoK,GACfpD,EAAM,UAAWoD,GACjB4C,IACAv2B,EAAK6rB,eAAe,QAAStC,GACU,IAAnC6G,EAAgBpwB,EAAM,UAAgBwxB,EAAexxB,EAAM2zB,E,CAMjE,SAASgD,IACP32B,EAAK6rB,eAAe,SAAU+K,GAC9BL,G,CAKF,SAASK,IACPrG,EAAM,YACNvwB,EAAK6rB,eAAe,QAAS8K,GAC7BJ,G,CAKF,SAASA,IACPhG,EAAM,UACN30B,EAAI26B,OAAOv2B,E,CAWb,OA7DApE,EAAIipB,GAAG,OAAQiS,GAtkBjB,SAAyBzG,EAAS8G,EAAO/xC,GAGvC,GAAuC,mBAA5BirC,EAAQtE,gBAAgC,OAAOsE,EAAQtE,gBAAgBoL,EAAO/xC,GAKpFirC,EAAQ+G,SAAY/G,EAAQ+G,QAAQD,GAAuCvqD,MAAM8hB,QAAQ2hC,EAAQ+G,QAAQD,IAAS9G,EAAQ+G,QAAQD,GAAOziB,QAAQtvB,GAASirC,EAAQ+G,QAAQD,GAAS,CAAC/xC,EAAIirC,EAAQ+G,QAAQD,IAA5J9G,EAAQxL,GAAGsS,EAAO/xC,E,CA6lBnEiyC,CAAgBr3B,EAAM,QAASupB,GAO/BvpB,EAAKgqB,KAAK,QAAS2M,GAQnB32B,EAAKgqB,KAAK,SAAU4M,GAQpB52B,EAAK+nB,KAAK,OAAQnsB,GAEbg4B,EAAMzB,UACT5B,EAAM,eACN30B,EAAIw5B,UAGCp1B,C,EAgBTgwB,EAASl1C,UAAUy7C,OAAS,SAAUv2B,GACpC,IAAI4zB,EAAQ7nD,KAAKsnD,eACboD,EAAa,CACfC,YAAY,GAGd,GAAyB,IAArB9C,EAAM1B,WAAkB,OAAOnmD,KAEnC,GAAyB,IAArB6nD,EAAM1B,WAER,OAAIlyB,GAAQA,IAAS4zB,EAAM3B,QACtBjyB,IAAMA,EAAO4zB,EAAM3B,OAExB2B,EAAM3B,MAAQ,KACd2B,EAAM1B,WAAa,EACnB0B,EAAMzB,SAAU,EACZnyB,GAAMA,EAAK+nB,KAAK,SAAUh8C,KAAM0qD,IANK1qD,KAW3C,IAAKi0B,EAAM,CAET,IAAIs3B,EAAQ1D,EAAM3B,MACdrnC,EAAMgpC,EAAM1B,WAChB0B,EAAM3B,MAAQ,KACd2B,EAAM1B,WAAa,EACnB0B,EAAMzB,SAAU,EAEhB,IAAK,IAAIjiD,EAAI,EAAGA,EAAI0a,EAAK1a,IACvBonD,EAAMpnD,GAAG63C,KAAK,SAAUh8C,KAAM,CAC5B2qD,YAAY,IAIhB,OAAO3qD,I,CAIT,IAAI4zB,EAAQk2B,EAAQjC,EAAM3B,MAAOjyB,GACjC,OAAc,IAAVL,IACJi0B,EAAM3B,MAAM5pC,OAAOsX,EAAO,GAC1Bi0B,EAAM1B,YAAc,EACK,IAArB0B,EAAM1B,aAAkB0B,EAAM3B,MAAQ2B,EAAM3B,MAAM,IACtDjyB,EAAK+nB,KAAK,SAAUh8C,KAAM0qD,IAJD1qD,I,EAU3BikD,EAASl1C,UAAU+pC,GAAK,SAAU0S,EAAInyC,GACpC,IAAI4M,EAAMu/B,EAAOz2C,UAAU+pC,GAAGz9B,KAAKrb,KAAMwrD,EAAInyC,GACzCwuC,EAAQ7nD,KAAKsnD,eAuBjB,MArBW,SAAPkE,GAGF3D,EAAMlB,kBAAoB3mD,KAAKopD,cAAc,YAAc,GAErC,IAAlBvB,EAAMzB,SAAmBpmD,KAAKqpD,UAClB,aAAPmC,IACJ3D,EAAMvB,YAAeuB,EAAMlB,oBAC9BkB,EAAMlB,kBAAoBkB,EAAMpB,cAAe,EAC/CoB,EAAMzB,SAAU,EAChByB,EAAMnB,iBAAkB,EACxBlC,EAAM,cAAeqD,EAAM7mD,OAAQ6mD,EAAMtB,SAErCsB,EAAM7mD,OACR8mD,EAAa9nD,MACH6nD,EAAMtB,SAChB3J,EAAAC,SAAiByM,EAAkBtpD,QAKlCimB,C,EAGTg+B,EAASl1C,UAAU8wC,YAAcoE,EAASl1C,UAAU+pC,GAEpDmL,EAASl1C,UAAU+wC,eAAiB,SAAU0L,EAAInyC,GAChD,IAAI4M,EAAMu/B,EAAOz2C,UAAU+wC,eAAezkC,KAAKrb,KAAMwrD,EAAInyC,GAYzD,MAVW,aAAPmyC,GAOF5O,EAAAC,SAAiBsM,EAAyBnpD,MAGrCimB,C,EAGTg+B,EAASl1C,UAAUgxC,mBAAqB,SAAUyL,GAChD,IAAIvlC,EAAMu/B,EAAOz2C,UAAUgxC,mBAAmB/hC,MAAMhe,KAAMmW,WAY1D,MAVW,aAAPq1C,QAA4BjxC,IAAPixC,GAOvB5O,EAAAC,SAAiBsM,EAAyBnpD,MAGrCimB,C,EAuBTg+B,EAASl1C,UAAUs6C,OAAS,WAC1B,IAAIxB,EAAQ7nD,KAAKsnD,eAYjB,OAVKO,EAAMzB,UACT5B,EAAM,UAINqD,EAAMzB,SAAWyB,EAAMlB,kBAQ3B,SAAgBxc,EAAQ0d,GACjBA,EAAMjB,kBACTiB,EAAMjB,iBAAkB,EACxBhK,EAAAC,SAAiB0M,EAASpf,EAAQ0d,G,CAVlC4D,CAAOzrD,KAAM6nD,IAGfA,EAAMhB,QAAS,EACR7mD,I,EAuBTikD,EAASl1C,UAAUo8C,MAAQ,WAUzB,OATA3G,EAAM,wBAAyBxkD,KAAKsnD,eAAelB,UAEf,IAAhCpmD,KAAKsnD,eAAelB,UACtB5B,EAAM,SACNxkD,KAAKsnD,eAAelB,SAAU,EAC9BpmD,KAAKg8C,KAAK,UAGZh8C,KAAKsnD,eAAeT,QAAS,EACtB7mD,I,EAeTikD,EAASl1C,UAAU28C,KAAO,SAAUvhB,GAClC,IAAIwhB,EAAQ3rD,KAER6nD,EAAQ7nD,KAAKsnD,eACbT,GAAS,EA0Bb,IAAK,IAAI1iD,KAzBTgmC,EAAO2O,GAAG,OAAO,WAGf,GAFA0L,EAAM,eAEFqD,EAAMT,UAAYS,EAAMxB,MAAO,CACjC,IAAIxI,EAAQgK,EAAMT,QAAQ9jC,MACtBu6B,GAASA,EAAM78C,QAAQ2qD,EAAM1qD,KAAK48C,E,CAGxC8N,EAAM1qD,KAAK,K,IAEbkpC,EAAO2O,GAAG,QAAQ,SAAU+E,IAC1B2G,EAAM,gBACFqD,EAAMT,UAASvJ,EAAQgK,EAAMT,QAAQ1lC,MAAMm8B,IAE3CgK,EAAM/B,YAAe,MAAAjI,KAAyDgK,EAAM/B,YAAgBjI,GAAUA,EAAM78C,UAE9G2qD,EAAM1qD,KAAK48C,KAGnBgJ,GAAS,EACT1c,EAAOghB,S,IAKGhhB,OACI5vB,IAAZva,KAAKmE,IAAyC,mBAAdgmC,EAAOhmC,KACzCnE,KAAKmE,GAAK,SAAoB8sC,GAC5B,OAAO,WACL,OAAO9G,EAAO8G,GAAQjzB,MAAMmsB,EAAQh0B,U,EAF9B,CAIRhS,IAKN,IAAK,IAAIynD,EAAI,EAAGA,EAAIhG,EAAa5kD,OAAQ4qD,IACvCzhB,EAAO2O,GAAG8M,EAAagG,GAAI5rD,KAAKg8C,KAAKnE,KAAK73C,KAAM4lD,EAAagG,KAc/D,OATA5rD,KAAKojD,MAAQ,SAAU19C,GACrB8+C,EAAM,gBAAiB9+C,GAEnBmhD,IACFA,GAAS,EACT1c,EAAOkf,S,EAIJrpD,I,EAGa,mBAAX6gB,SACTojC,EAASl1C,UAAU8R,OAAOgrC,eAAiB,WAKzC,YAJ0CtxC,IAAtCqqC,IACFA,EAAoC7iD,cAAA,UAG/B6iD,EAAkC5kD,K,GAI7CpB,OAAOC,eAAeolD,EAASl1C,UAAW,wBAAyB,CAIjE1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAKsnD,eAAetB,a,IAG/BpnD,OAAOC,eAAeolD,EAASl1C,UAAW,iBAAkB,CAI1D1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAKsnD,gBAAkBtnD,KAAKsnD,eAAex9C,M,IAGtDlL,OAAOC,eAAeolD,EAASl1C,UAAW,kBAAmB,CAI3D1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAKsnD,eAAelB,O,EAE7B1+B,IAAK,SAAamgC,GACZ7nD,KAAKsnD,iBACPtnD,KAAKsnD,eAAelB,QAAUyB,E,IAKpC5D,EAAS6H,UAAYtC,EACrB5qD,OAAOC,eAAeolD,EAASl1C,UAAW,iBAAkB,CAI1D1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAKsnD,eAAetmD,M,IAoDT,mBAAX6f,SACTojC,EAASnjD,KAAO,SAAUirD,EAAU5T,GAKlC,YAJa59B,IAATsqC,IACFA,EAAO9iD,cAAA,UAGF8iD,EAAKZ,EAAU8H,EAAU5T,E,oDClkCpC,IAOI6T,EAPAC,EAAuB,iBAAZjxC,QAAuBA,QAAU,KAC5CkxC,EAAeD,GAAwB,mBAAZA,EAAEjuC,MAC7BiuC,EAAEjuC,MACF,SAAsBnD,EAAQsxC,EAAUpuC,GACxC,OAAOquC,SAASr9C,UAAUiP,MAAM3C,KAAKR,EAAQsxC,EAAUpuC,E,EAKzDiuC,EADEC,GAA0B,mBAAdA,EAAE3X,QACC2X,EAAE3X,QACV11C,OAAO21C,sBACC,SAAwB15B,GACvC,OAAOjc,OAAOytD,oBAAoBxxC,GAC/B8B,OAAO/d,OAAO21C,sBAAsB15B,G,EAGxB,SAAwBA,GACvC,OAAOjc,OAAOytD,oBAAoBxxC,E,EAQtC,IAAIyxC,EAAcznC,OAAO0N,OAAS,SAAqBvzB,GACrD,OAAOA,GAAUA,C,EAGnB,SAASutD,IACPA,EAAaroD,KAAKmX,KAAKrb,K,CAEzBlB,EAAAC,QAAiBwtD,EACjBztD,EAAAC,QAAek/C,KAwYf,SAAcqG,EAASvkC,GACrB,OAAO,IAAIo3B,SAAQ,SAAUC,EAASiL,GACpC,SAASmK,EAAcvX,GACrBqP,EAAQxE,eAAe//B,EAAM0sC,GAC7BpK,EAAOpN,E,CAGT,SAASwX,IAC+B,mBAA3BnI,EAAQxE,gBACjBwE,EAAQxE,eAAe,QAAS0M,GAElCpV,EAAQ,GAAGl2C,MAAMma,KAAKlF,W,CAGxBu2C,EAA+BpI,EAASvkC,EAAM0sC,EAAU,CAAExO,MAAM,IACnD,UAATl+B,GAMR,SAAuCukC,EAASpa,EAASyiB,GAC7B,mBAAfrI,EAAQxL,IACjB4T,EAA+BpI,EAAS,QAASpa,EAASyiB,E,CAPxDC,CAA8BtI,EAASkI,EAAe,CAAEvO,MAAM,G,KArZpEsO,EAAanI,aAAemI,EAE5BA,EAAax9C,UAAUs8C,aAAU9wC,EACjCgyC,EAAax9C,UAAU89C,aAAe,EACtCN,EAAax9C,UAAU+9C,mBAAgBvyC,EAIvC,IAAIwyC,EAAsB,GAE1B,SAASC,EAAcC,GACrB,GAAwB,mBAAbA,EACT,MAAM,IAAI72C,UAAU,0EAA4E62C,E,CAsCpG,SAASC,EAAiBC,GACxB,YAA2B5yC,IAAvB4yC,EAAKL,cACAP,EAAaa,oBACfD,EAAKL,a,CAmDd,SAASO,EAAaxyC,EAAQ6E,EAAMutC,EAAUxkB,GAC5C,IAAI7/B,EACA0kD,EACAC,EA1HsBC,EAgJ1B,GApBAR,EAAcC,QAGC1yC,KADf+yC,EAASzyC,EAAOwwC,UAEdiC,EAASzyC,EAAOwwC,QAAUzsD,OAAOyb,OAAO,MACxCQ,EAAOgyC,aAAe,SAIKtyC,IAAvB+yC,EAAOG,cACT5yC,EAAOmhC,KAAK,cAAet8B,EACfutC,EAASA,SAAWA,EAASA,SAAWA,GAIpDK,EAASzyC,EAAOwwC,SAElBkC,EAAWD,EAAO5tC,SAGHnF,IAAbgzC,EAEFA,EAAWD,EAAO5tC,GAAQutC,IACxBpyC,EAAOgyC,kBAeT,GAbwB,mBAAbU,EAETA,EAAWD,EAAO5tC,GAChB+oB,EAAU,CAACwkB,EAAUM,GAAY,CAACA,EAAUN,GAErCxkB,EACT8kB,EAAS5kB,QAAQskB,GAEjBM,EAAStsD,KAAKgsD,IAIhBrkD,EAAIskD,EAAiBryC,IACb,GAAK0yC,EAASvsD,OAAS4H,IAAM2kD,EAASG,OAAQ,CACpDH,EAASG,QAAS,EAGlB,IAAIh5B,EAAI,IAAIpyB,MAAM,+CACEirD,EAASvsD,OAAS,IAAMujB,OAAO7E,GADjC,qEAIlBgV,EAAE3U,KAAO,8BACT2U,EAAE4vB,QAAUzpC,EACZ6Z,EAAEhV,KAAOA,EACTgV,EAAE6V,MAAQgjB,EAASvsD,OA7KGwsD,EA8KH94B,EA7KnBzN,SAAWA,QAAQ4qB,MAAM5qB,QAAQ4qB,KAAK2b,E,CAiL1C,OAAO3yC,C,CAcT,SAAS8yC,IACP,IAAK3tD,KAAK4tD,MAGR,OAFA5tD,KAAK6a,OAAOilC,eAAe9/C,KAAK0f,KAAM1f,KAAK6tD,QAC3C7tD,KAAK4tD,OAAQ,EACY,IAArBz3C,UAAUnV,OACLhB,KAAKitD,SAAS5xC,KAAKrb,KAAK6a,QAC1B7a,KAAKitD,SAASjvC,MAAMhe,KAAK6a,OAAQ1E,U,CAI5C,SAAS23C,EAAUjzC,EAAQ6E,EAAMutC,GAC/B,IAAIpF,EAAQ,CAAE+F,OAAO,EAAOC,YAAQtzC,EAAWM,OAAQA,EAAQ6E,KAAMA,EAAMutC,SAAUA,GACjFc,EAAUJ,EAAY9V,KAAKgQ,GAG/B,OAFAkG,EAAQd,SAAWA,EACnBpF,EAAMgG,OAASE,EACRA,C,CA0HT,SAASC,EAAWnzC,EAAQ6E,EAAMuuC,GAChC,IAAIX,EAASzyC,EAAOwwC,QAEpB,QAAe9wC,IAAX+yC,EACF,MAAO,GAET,IAAIY,EAAaZ,EAAO5tC,GACxB,YAAmBnF,IAAf2zC,EACK,GAEiB,mBAAfA,EACFD,EAAS,CAACC,EAAWjB,UAAYiB,GAAc,CAACA,GAElDD,EAsDT,SAAyB33C,GAEvB,IADA,IAAIsS,EAAM,IAAI/nB,MAAMyV,EAAItV,QACfmD,EAAI,EAAGA,EAAIykB,EAAI5nB,SAAUmD,EAChCykB,EAAIzkB,GAAKmS,EAAInS,GAAG8oD,UAAY32C,EAAInS,GAElC,OAAOykB,C,CA1DLulC,CAAgBD,GAAcE,EAAWF,EAAYA,EAAWltD,O,CAoBpE,SAASqtD,EAAc3uC,GACrB,IAAI4tC,EAASttD,KAAKqrD,QAElB,QAAe9wC,IAAX+yC,EAAsB,CACxB,IAAIY,EAAaZ,EAAO5tC,GAExB,GAA0B,mBAAfwuC,EACT,OAAO,EACF,QAAmB3zC,IAAf2zC,EACT,OAAOA,EAAWltD,M,CAItB,OAAO,C,CAOT,SAASotD,EAAW93C,EAAK5Q,GAEvB,IADA,IAAIsc,EAAO,IAAInhB,MAAM6E,GACZvB,EAAI,EAAGA,EAAIuB,IAAKvB,EACvB6d,EAAK7d,GAAKmS,EAAInS,GAChB,OAAO6d,C,CA4CT,SAAS0qC,EAA+BpI,EAASvkC,EAAMktC,EAAUN,GAC/D,GAA0B,mBAAfrI,EAAQxL,GACb6T,EAAM1O,KACRqG,EAAQrG,KAAKl+B,EAAMktC,GAEnB3I,EAAQxL,GAAG/4B,EAAMktC,OAEd,IAAwC,mBAA7B3I,EAAQgK,iBAYxB,MAAM,IAAIl4C,UAAU,6EAA+EkuC,GATnGA,EAAQgK,iBAAiBvuC,GAAM,SAASwuC,EAAartC,GAG/CyrC,EAAM1O,MACRqG,EAAQkK,oBAAoBzuC,EAAMwuC,GAEpCtB,EAAS/rC,E,GAGgG,C,CAna/GtiB,OAAOC,eAAe0tD,EAAc,sBAAuB,CACzDltD,YAAY,EACZC,IAAK,WACH,OAAOytD,C,EAETrlC,IAAK,SAASxG,GACZ,GAAmB,iBAARA,GAAoBA,EAAM,GAAKorC,EAAYprC,GACpD,MAAM,IAAIjD,WAAW,kGAAoGiD,EAAM,KAEjI6rC,EAAsB7rC,C,IAI1BqrC,EAAaroD,KAAO,gBAEGqW,IAAjBva,KAAKqrD,SACLrrD,KAAKqrD,UAAYzsD,OAAOupD,eAAenoD,MAAMqrD,UAC/CrrD,KAAKqrD,QAAUzsD,OAAOyb,OAAO,MAC7Bra,KAAK6sD,aAAe,GAGtB7sD,KAAK8sD,cAAgB9sD,KAAK8sD,oBAAiBvyC,C,EAK7CgyC,EAAax9C,UAAU0/C,gBAAkB,SAAyB/oD,GAChE,GAAiB,iBAANA,GAAkBA,EAAI,GAAK4mD,EAAY5mD,GAChD,MAAM,IAAIuY,WAAW,gFAAkFvY,EAAI,KAG7G,OADA1F,KAAK8sD,cAAgBpnD,EACd1F,I,EASTusD,EAAax9C,UAAU2/C,gBAAkB,WACvC,OAAOxB,EAAiBltD,K,EAG1BusD,EAAax9C,UAAUitC,KAAO,SAAct8B,GAE1C,IADA,IAAI3B,EAAO,GACF5Z,EAAI,EAAGA,EAAIgS,UAAUnV,OAAQmD,IAAK4Z,EAAK9c,KAAKkV,UAAUhS,IAC/D,IAAIwqD,EAAoB,UAATjvC,EAEX4tC,EAASttD,KAAKqrD,QAClB,QAAe9wC,IAAX+yC,EACFqB,EAAWA,QAA4Bp0C,IAAjB+yC,EAAO1tC,WAC1B,IAAK+uC,EACR,OAAO,EAGT,GAAIA,EAAS,CACX,IAAI/G,EAGJ,GAFI7pC,EAAK/c,OAAS,IAChB4mD,EAAK7pC,EAAK,IACR6pC,aAActlD,MAGhB,MAAMslD,EAGR,IAAI3S,EAAM,IAAI3yC,MAAM,oBAAsBslD,EAAK,KAAOA,EAAGnkD,QAAU,IAAM,KAEzE,MADAwxC,EAAI2Z,QAAUhH,EACR3S,C,CAGR,IAAI/K,EAAUojB,EAAO5tC,GAErB,QAAgBnF,IAAZ2vB,EACF,OAAO,EAET,GAAuB,mBAAZA,EACTgiB,EAAahiB,EAASlqC,KAAM+d,OAE5B,KAAIc,EAAMqrB,EAAQlpC,OACdk/C,EAAYkO,EAAWlkB,EAASrrB,GACpC,IAAS1a,EAAI,EAAGA,EAAI0a,IAAO1a,EACzB+nD,EAAahM,EAAU/7C,GAAInE,KAAM+d,EAHX,CAM1B,OAAO,C,EAiETwuC,EAAax9C,UAAU8wC,YAAc,SAAqBngC,EAAMutC,GAC9D,OAAOI,EAAartD,KAAM0f,EAAMutC,GAAU,E,EAG5CV,EAAax9C,UAAU+pC,GAAKyT,EAAax9C,UAAU8wC,YAEnD0M,EAAax9C,UAAUixC,gBACnB,SAAyBtgC,EAAMutC,GAC7B,OAAOI,EAAartD,KAAM0f,EAAMutC,GAAU,E,EAqBhDV,EAAax9C,UAAUkvC,KAAO,SAAcv+B,EAAMutC,GAGhD,OAFAD,EAAcC,GACdjtD,KAAK84C,GAAGp5B,EAAMouC,EAAU9tD,KAAM0f,EAAMutC,IAC7BjtD,I,EAGTusD,EAAax9C,UAAUkxC,oBACnB,SAA6BvgC,EAAMutC,GAGjC,OAFAD,EAAcC,GACdjtD,KAAKggD,gBAAgBtgC,EAAMouC,EAAU9tD,KAAM0f,EAAMutC,IAC1CjtD,I,EAIbusD,EAAax9C,UAAU+wC,eACnB,SAAwBpgC,EAAMutC,GAC5B,IAAIxlC,EAAM6lC,EAAQz2B,EAAU1yB,EAAG0qD,EAK/B,GAHA7B,EAAcC,QAGC1yC,KADf+yC,EAASttD,KAAKqrD,SAEZ,OAAOrrD,KAGT,QAAaua,KADbkN,EAAO6lC,EAAO5tC,IAEZ,OAAO1f,KAET,GAAIynB,IAASwlC,GAAYxlC,EAAKwlC,WAAaA,EACb,KAAtBjtD,KAAK6sD,aACT7sD,KAAKqrD,QAAUzsD,OAAOyb,OAAO,cAEtBizC,EAAO5tC,GACV4tC,EAAOxN,gBACT9/C,KAAKg8C,KAAK,iBAAkBt8B,EAAM+H,EAAKwlC,UAAYA,SAElD,GAAoB,mBAATxlC,EAAqB,CAGrC,IAFAoP,GAAW,EAEN1yB,EAAIsjB,EAAKzmB,OAAS,EAAGmD,GAAK,EAAGA,IAChC,GAAIsjB,EAAKtjB,KAAO8oD,GAAYxlC,EAAKtjB,GAAG8oD,WAAaA,EAAU,CACzD4B,EAAmBpnC,EAAKtjB,GAAG8oD,SAC3Bp2B,EAAW1yB,EACX,K,CAIJ,GAAI0yB,EAAW,EACb,OAAO72B,KAEQ,IAAb62B,EACFpP,EAAKqP,QAiIf,SAAmBrP,EAAMmM,GACvB,KAAOA,EAAQ,EAAInM,EAAKzmB,OAAQ4yB,IAC9BnM,EAAKmM,GAASnM,EAAKmM,EAAQ,GAC7BnM,EAAKmhB,K,CAlIGkmB,CAAUrnC,EAAMoP,GAGE,IAAhBpP,EAAKzmB,SACPssD,EAAO5tC,GAAQ+H,EAAK,SAEQlN,IAA1B+yC,EAAOxN,gBACT9/C,KAAKg8C,KAAK,iBAAkBt8B,EAAMmvC,GAAoB5B,E,CAG1D,OAAOjtD,I,EAGbusD,EAAax9C,UAAU4lB,IAAM43B,EAAax9C,UAAU+wC,eAEpDyM,EAAax9C,UAAUgxC,mBACnB,SAA4BrgC,GAC1B,IAAIwgC,EAAWoN,EAAQnpD,EAGvB,QAAeoW,KADf+yC,EAASttD,KAAKqrD,SAEZ,OAAOrrD,KAGT,QAA8Bua,IAA1B+yC,EAAOxN,eAUT,OATyB,IAArB3pC,UAAUnV,QACZhB,KAAKqrD,QAAUzsD,OAAOyb,OAAO,MAC7Bra,KAAK6sD,aAAe,QACMtyC,IAAjB+yC,EAAO5tC,KACY,KAAtB1f,KAAK6sD,aACT7sD,KAAKqrD,QAAUzsD,OAAOyb,OAAO,aAEtBizC,EAAO5tC,IAEX1f,KAIT,GAAyB,IAArBmW,UAAUnV,OAAc,CAC1B,IACIP,EADAR,EAAOrB,OAAOqB,KAAKqtD,GAEvB,IAAKnpD,EAAI,EAAGA,EAAIlE,EAAKe,SAAUmD,EAEjB,oBADZ1D,EAAMR,EAAKkE,KAEXnE,KAAK+/C,mBAAmBt/C,GAK1B,OAHAT,KAAK+/C,mBAAmB,kBACxB//C,KAAKqrD,QAAUzsD,OAAOyb,OAAO,MAC7Bra,KAAK6sD,aAAe,EACb7sD,I,CAKT,GAAyB,mBAFzBkgD,EAAYoN,EAAO5tC,IAGjB1f,KAAK8/C,eAAepgC,EAAMwgC,QACrB,QAAkB3lC,IAAd2lC,EAET,IAAK/7C,EAAI+7C,EAAUl/C,OAAS,EAAGmD,GAAK,EAAGA,IACrCnE,KAAK8/C,eAAepgC,EAAMwgC,EAAU/7C,IAIxC,OAAOnE,I,EAoBbusD,EAAax9C,UAAUmxC,UAAY,SAAmBxgC,GACpD,OAAOsuC,EAAWhuD,KAAM0f,GAAM,E,EAGhC6sC,EAAax9C,UAAUggD,aAAe,SAAsBrvC,GAC1D,OAAOsuC,EAAWhuD,KAAM0f,GAAM,E,EAGhC6sC,EAAanD,cAAgB,SAAS9E,EAAS5kC,GAC7C,MAAqC,mBAA1B4kC,EAAQ8E,cACV9E,EAAQ8E,cAAc1pC,GAEtB2uC,EAAchzC,KAAKipC,EAAS5kC,E,EAIvC6sC,EAAax9C,UAAUq6C,cAAgBiF,EAiBvC9B,EAAax9C,UAAUigD,WAAa,WAClC,OAAOhvD,KAAK6sD,aAAe,EAAIb,EAAehsD,KAAKqrD,SAAW,E,mDCxahEvsD,EAAAC,QAAiBgD,cAAA,SAAAqiD,Y,kDCEjB,SAAS6K,EAAQC,EAAQC,GAAkB,IAAIlvD,EAAOrB,OAAOqB,KAAKivD,GAAS,GAAItwD,OAAO21C,sBAAuB,CAAE,IAAI6a,EAAUxwD,OAAO21C,sBAAsB2a,GAAaC,IAAgBC,EAAUA,EAAQ5a,QAAO,SAAUlmB,GAAO,OAAO1vB,OAAOmc,yBAAyBm0C,EAAQ5gC,GAAKjvB,U,KAAgBY,EAAKgB,KAAK+c,MAAM/d,EAAMmvD,E,CAAY,OAAOnvD,C,CAI9U,SAASovD,EAAgBxvC,EAAKpf,EAAKzB,GAAiK,OAApJyB,KAAOof,EAAOjhB,OAAOC,eAAeghB,EAAKpf,EAAK,CAAEzB,MAAOA,EAAOK,YAAY,EAAMovB,cAAc,EAAMC,UAAU,IAAkB7O,EAAIpf,GAAOzB,EAAgB6gB,C,CAI3M,SAASyvC,EAAkBz0C,EAAQq6B,GAAS,IAAK,IAAI/wC,EAAI,EAAGA,EAAI+wC,EAAMl0C,OAAQmD,IAAK,CAAE,IAAI+tC,EAAagD,EAAM/wC,GAAI+tC,EAAW7yC,WAAa6yC,EAAW7yC,aAAc,EAAO6yC,EAAWzjB,cAAe,EAAU,UAAWyjB,IAAYA,EAAWxjB,UAAW,GAAM9vB,OAAOC,eAAegc,EAAQq3B,EAAWzxC,IAAKyxC,E,MAKzSqd,E,uBAAS/7B,OAGTg8B,E,uBAAUxnC,QAEVynC,EAASD,GAAWA,EAAQE,QAAU,UAM1C5wD,EAAAC,QAEA,WACE,SAAS4wD,KArBX,SAAyBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIz5C,UAAU,oC,CAsB5G05C,CAAgB9vD,KAAM2vD,GAEtB3vD,KAAK4oD,KAAO,KACZ5oD,KAAK+vD,KAAO,KACZ/vD,KAAKgB,OAAS,C,CAtBlB,IAAsB6uD,EAAaG,EAAYC,EAoM7C,OApMoBJ,EAyBPF,EAzBoBK,EAyBR,CAAC,CACxBvvD,IAAK,OACLzB,MAAO,SAAc8L,GACnB,IAAIolD,EAAQ,CACVttD,KAAMkI,EACN86B,KAAM,MAEJ5lC,KAAKgB,OAAS,EAAGhB,KAAK+vD,KAAKnqB,KAAOsqB,EAAWlwD,KAAK4oD,KAAOsH,EAC7DlwD,KAAK+vD,KAAOG,IACVlwD,KAAKgB,M,GAER,CACDP,IAAK,UACLzB,MAAO,SAAiB8L,GACtB,IAAIolD,EAAQ,CACVttD,KAAMkI,EACN86B,KAAM5lC,KAAK4oD,MAEO,IAAhB5oD,KAAKgB,SAAchB,KAAK+vD,KAAOG,GACnClwD,KAAK4oD,KAAOsH,IACVlwD,KAAKgB,M,GAER,CACDP,IAAK,QACLzB,MAAO,WACL,GAAoB,IAAhBgB,KAAKgB,OAAT,CACA,IAAI4nB,EAAM5oB,KAAK4oD,KAAKhmD,KAGpB,OAFoB,IAAhB5C,KAAKgB,OAAchB,KAAK4oD,KAAO5oD,KAAK+vD,KAAO,KAAU/vD,KAAK4oD,KAAO5oD,KAAK4oD,KAAKhjB,OAC7E5lC,KAAKgB,OACA4nB,CAJgB,C,GAMxB,CACDnoB,IAAK,QACLzB,MAAO,WACLgB,KAAK4oD,KAAO5oD,KAAK+vD,KAAO,KACxB/vD,KAAKgB,OAAS,C,GAEf,CACDP,IAAK,OACLzB,MAAO,SAAckK,GACnB,GAAoB,IAAhBlJ,KAAKgB,OAAc,MAAO,GAI9B,IAHA,IAAIoF,EAAIpG,KAAK4oD,KACThgC,EAAM,GAAKxiB,EAAExD,KAEVwD,EAAIA,EAAEw/B,MACXhd,GAAO1f,EAAI9C,EAAExD,KAGf,OAAOgmB,C,GAER,CACDnoB,IAAK,SACLzB,MAAO,SAAgB0G,GACrB,GAAoB,IAAhB1F,KAAKgB,OAAc,OAAOuuD,EAAO3yC,MAAM,GAK3C,IAJA,IArEciT,EAAKhV,EAAQ0D,EAqEvBqK,EAAM2mC,EAAOloC,YAAY3hB,IAAM,GAC/BU,EAAIpG,KAAK4oD,KACTzkD,EAAI,EAEDiC,GAzEOypB,EA0EDzpB,EAAExD,KA1EIiY,EA0EE+N,EA1EMrK,EA0EDpa,EAzE9BorD,EAAOxgD,UAAUiT,KAAK3G,KAAKwU,EAAKhV,EAAQ0D,GA0ElCpa,GAAKiC,EAAExD,KAAK5B,OACZoF,EAAIA,EAAEw/B,KAGR,OAAOhd,C,GAGR,CACDnoB,IAAK,UACLzB,MAAO,SAAiB0G,EAAGyqD,GACzB,IAAIvnC,EAcJ,OAZIljB,EAAI1F,KAAK4oD,KAAKhmD,KAAK5B,QAErB4nB,EAAM5oB,KAAK4oD,KAAKhmD,KAAK1B,MAAM,EAAGwE,GAC9B1F,KAAK4oD,KAAKhmD,KAAO5C,KAAK4oD,KAAKhmD,KAAK1B,MAAMwE,IAGtCkjB,EAFSljB,IAAM1F,KAAK4oD,KAAKhmD,KAAK5B,OAExBhB,KAAK82B,QAGLq5B,EAAanwD,KAAKowD,WAAW1qD,GAAK1F,KAAKqwD,WAAW3qD,GAGnDkjB,C,GAER,CACDnoB,IAAK,QACLzB,MAAO,WACL,OAAOgB,KAAK4oD,KAAKhmD,I,GAGlB,CACDnC,IAAK,aACLzB,MAAO,SAAoB0G,GACzB,IAAIU,EAAIpG,KAAK4oD,KACT1iD,EAAI,EACJ0iB,EAAMxiB,EAAExD,KAGZ,IAFA8C,GAAKkjB,EAAI5nB,OAEFoF,EAAIA,EAAEw/B,MAAM,CACjB,IAAItoB,EAAMlX,EAAExD,KACR0tD,EAAK5qD,EAAI4X,EAAItc,OAASsc,EAAItc,OAAS0E,EAIvC,GAHI4qD,IAAOhzC,EAAItc,OAAQ4nB,GAAOtL,EAASsL,GAAOtL,EAAIpc,MAAM,EAAGwE,GAGjD,IAFVA,GAAK4qD,GAEQ,CACPA,IAAOhzC,EAAItc,UACXkF,EACEE,EAAEw/B,KAAM5lC,KAAK4oD,KAAOxiD,EAAEw/B,KAAU5lC,KAAK4oD,KAAO5oD,KAAK+vD,KAAO,OAE5D/vD,KAAK4oD,KAAOxiD,EACZA,EAAExD,KAAO0a,EAAIpc,MAAMovD,IAGrB,K,GAGApqD,C,CAIJ,OADAlG,KAAKgB,QAAUkF,EACR0iB,C,GAGR,CACDnoB,IAAK,aACLzB,MAAO,SAAoB0G,GACzB,IAAIkjB,EAAM2mC,EAAOloC,YAAY3hB,GACzBU,EAAIpG,KAAK4oD,KACT1iD,EAAI,EAIR,IAHAE,EAAExD,KAAKof,KAAK4G,GACZljB,GAAKU,EAAExD,KAAK5B,OAELoF,EAAIA,EAAEw/B,MAAM,CACjB,IAAIlpB,EAAMtW,EAAExD,KACR0tD,EAAK5qD,EAAIgX,EAAI1b,OAAS0b,EAAI1b,OAAS0E,EAIvC,GAHAgX,EAAIsF,KAAK4G,EAAKA,EAAI5nB,OAAS0E,EAAG,EAAG4qD,GAGvB,IAFV5qD,GAAK4qD,GAEQ,CACPA,IAAO5zC,EAAI1b,UACXkF,EACEE,EAAEw/B,KAAM5lC,KAAK4oD,KAAOxiD,EAAEw/B,KAAU5lC,KAAK4oD,KAAO5oD,KAAK+vD,KAAO,OAE5D/vD,KAAK4oD,KAAOxiD,EACZA,EAAExD,KAAO8Z,EAAIxb,MAAMovD,IAGrB,K,GAGApqD,C,CAIJ,OADAlG,KAAKgB,QAAUkF,EACR0iB,C,GAGR,CACDnoB,IAAKgvD,EACLzwD,MAAO,SAAeg/B,EAAGkL,GACvB,OAAOsmB,EAAQxvD,KAnMrB,SAAuB6a,GAAU,IAAK,IAAI1W,EAAI,EAAGA,EAAIgS,UAAUnV,OAAQmD,IAAK,CAAE,IAAI4iC,EAAyB,MAAhB5wB,UAAUhS,GAAagS,UAAUhS,GAAK,GAAQA,EAAI,EAAK8qD,EAAQrwD,OAAOmoC,IAAS,GAAMvmC,SAAQ,SAAUC,GAAO4uD,EAAgBx0C,EAAQpa,EAAKsmC,EAAOtmC,G,IAAsB7B,OAAO2xD,0BAA6B3xD,OAAO4xD,iBAAiB31C,EAAQjc,OAAO2xD,0BAA0BxpB,IAAmBkoB,EAAQrwD,OAAOmoC,IAASvmC,SAAQ,SAAUC,GAAO7B,OAAOC,eAAegc,EAAQpa,EAAK7B,OAAOmc,yBAAyBgsB,EAAQtmC,G,IAAe,OAAOoa,C,CAmMlf41C,CAAc,GAAIvnB,EAAS,CAE9CwnB,MAAO,EAEPC,eAAe,I,IA/L2CX,GAAYV,EAAkBO,EAAY9gD,UAAWihD,GAAiBC,GAAaX,EAAkBO,EAAaI,GAoM3KN,C,CApLT,E,+EC2BA,SAASiB,EAAoBr3C,EAAM07B,GACjC4b,EAAYt3C,EAAM07B,GAClB6b,EAAYv3C,E,CAGd,SAASu3C,EAAYv3C,GACfA,EAAKswC,iBAAmBtwC,EAAKswC,eAAe/C,WAC5CvtC,EAAK+tC,iBAAmB/tC,EAAK+tC,eAAeR,WAChDvtC,EAAKyiC,KAAK,Q,CAsBZ,SAAS6U,EAAYt3C,EAAM07B,GACzB17B,EAAKyiC,KAAK,QAAS/G,E,CAcrBn2C,EAAAC,QAAiB,CACfi/C,QAnGF,SAAiBN,EAAKtF,GACpB,IAAIuT,EAAQ3rD,KAER+wD,EAAoB/wD,KAAKsnD,gBAAkBtnD,KAAKsnD,eAAeN,UAC/DgK,EAAoBhxD,KAAK6pD,gBAAkB7pD,KAAK6pD,eAAe7C,UAEnE,OAAI+J,GAAqBC,GACnB5Y,EACFA,EAAGsF,GACMA,IACJ19C,KAAK6pD,eAEE7pD,KAAK6pD,eAAeoH,eAC9BjxD,KAAK6pD,eAAeoH,cAAe,EACnCrU,EAAAC,SAAiBgU,EAAa7wD,KAAM09C,IAHpCd,EAAAC,SAAiBgU,EAAa7wD,KAAM09C,IAOjC19C,OAKLA,KAAKsnD,iBACPtnD,KAAKsnD,eAAeN,WAAY,GAI9BhnD,KAAK6pD,iBACP7pD,KAAK6pD,eAAe7C,WAAY,GAGlChnD,KAAKwnD,SAAS9J,GAAO,MAAM,SAAUzI,IAC9BmD,GAAMnD,EACJ0W,EAAM9B,eAEC8B,EAAM9B,eAAeoH,aAI/BrU,EAAAC,SAAiBiU,EAAanF,IAH9BA,EAAM9B,eAAeoH,cAAe,EACpCrU,EAAAC,SAAiB+T,EAAqBjF,EAAO1W,IAH7C2H,EAAAC,SAAiB+T,EAAqBjF,EAAO1W,GAOtCmD,GACTwE,EAAAC,SAAiBiU,EAAanF,GAC9BvT,EAAGnD,IAEH2H,EAAAC,SAAiBiU,EAAanF,E,IAI3B3rD,K,EAkDPwoD,UApCF,WACMxoD,KAAKsnD,iBACPtnD,KAAKsnD,eAAeN,WAAY,EAChChnD,KAAKsnD,eAAef,SAAU,EAC9BvmD,KAAKsnD,eAAejB,OAAQ,EAC5BrmD,KAAKsnD,eAAehB,YAAa,GAG/BtmD,KAAK6pD,iBACP7pD,KAAK6pD,eAAe7C,WAAY,EAChChnD,KAAK6pD,eAAexD,OAAQ,EAC5BrmD,KAAK6pD,eAAeqH,QAAS,EAC7BlxD,KAAK6pD,eAAesH,aAAc,EAClCnxD,KAAK6pD,eAAeuH,aAAc,EAClCpxD,KAAK6pD,eAAe/F,UAAW,EAC/B9jD,KAAK6pD,eAAeoH,cAAe,E,EAsBrCtL,eAdF,SAAwBxb,EAAQ8K,GAM9B,IAAIoc,EAASlnB,EAAOmd,eAChBsC,EAASzf,EAAO0f,eAChBwH,GAAUA,EAAOtK,aAAe6C,GAAUA,EAAO7C,YAAa5c,EAAO6T,QAAQ/I,GAAU9K,EAAO6R,KAAK,QAAS/G,E,wDC/F9Gqc,E,uBAAwB5b,MAAiC6b,sBAsB7DzyD,EAAAC,QAAiB,CACfgmD,iBAjBF,SAA0B8C,EAAO3e,EAASsoB,EAAW3L,GACnD,IAAI4L,EALN,SAA2BvoB,EAAS2c,EAAU2L,GAC5C,OAAgC,MAAzBtoB,EAAQ8c,cAAwB9c,EAAQ8c,cAAgBH,EAAW3c,EAAQsoB,GAAa,I,CAIrFE,CAAkBxoB,EAAS2c,EAAU2L,GAE/C,GAAW,MAAPC,EAAa,CACf,IAAMhpC,SAASgpC,IAAQ1mD,KAAKC,MAAMymD,KAASA,GAAQA,EAAM,EAEvD,MAAM,IAAIH,EADCzL,EAAW2L,EAAY,gBACIC,GAGxC,OAAO1mD,KAAKC,MAAMymD,E,CAIpB,OAAO5J,EAAM/B,WAAa,GAAK,K,oDCyGjC,IAAA6L,E,mFA1HA,IAAIC,EAAQ,GAEZ,SAASC,EAAgB3zC,EAAMza,EAAS+qB,GACjCA,IACHA,EAAOlsB,OAWT,IAAIwvD,EAEJ,SAAUC,GAnBZ,IAAwBC,EAAUC,EAsB9B,SAASC,EAAUC,EAAMC,EAAMC,GAC7B,OAAON,EAAM12C,KAAKrb,KAdtB,SAAoBmyD,EAAMC,EAAMC,GAC9B,MAAuB,iBAAZ5uD,EACFA,EAEAA,EAAQ0uD,EAAMC,EAAMC,E,CAUH9jC,CAAW4jC,EAAMC,EAAMC,KAAUryD,I,CAG3D,OA1B8BiyD,EAoBJF,GApBNC,EAoBLE,GApBsCnjD,UAAYnQ,OAAOyb,OAAO43C,EAAWljD,WAAYijD,EAASjjD,UAAU3N,YAAc4wD,EAAUA,EAASzb,UAAY0b,EA0B/JC,C,CAPT,CAQE1jC,GAEFsjC,EAAU/iD,UAAUgR,KAAOyO,EAAKzO,KAChC+xC,EAAU/iD,UAAUmP,KAAOA,EAC3B0zC,EAAM1zC,GAAQ4zC,C,CAIhB,SAASQ,EAAMC,EAAUC,GACvB,GAAI3xD,MAAM8hB,QAAQ4vC,GAAW,CAC3B,IAAI1zC,EAAM0zC,EAASvxD,OAKnB,OAJAuxD,EAAWA,EAAStyC,KAAI,SAAU9b,GAChC,OAAOogB,OAAOpgB,E,IAGZ0a,EAAM,EACD,UAAUlC,OAAO61C,EAAO,KAAK71C,OAAO41C,EAASrxD,MAAM,EAAG2d,EAAM,GAAG1d,KAAK,MAAO,SAAWoxD,EAAS1zC,EAAM,GAC3F,IAARA,EACF,UAAUlC,OAAO61C,EAAO,KAAK71C,OAAO41C,EAAS,GAAI,QAAQ51C,OAAO41C,EAAS,IAEzE,MAAM51C,OAAO61C,EAAO,KAAK71C,OAAO41C,EAAS,G,CAGlD,MAAO,MAAM51C,OAAO61C,EAAO,KAAK71C,OAAO4H,OAAOguC,G,CA+BlDV,EAAgB,yBAAyB,SAAU9xC,EAAM/gB,GACvD,MAAO,cAAgBA,EAAQ,4BAA8B+gB,EAAO,G,GACnE3J,WACHy7C,EAAgB,wBAAwB,SAAU9xC,EAAMwyC,EAAU9wC,GAEhE,IAAIgxC,EA/BmBha,EAAQxkC,EAwC3BwD,EAEJ,GATwB,iBAAb86C,IAjCY9Z,EAiCkC,OAAV8Z,EAhCpCrtC,QAAQjR,GAAOA,EAAM,EAAI,GAAKA,EAAKwkC,EAAOz3C,UAAYy3C,IAiC/Dga,EAAa,cACbF,EAAWA,EAASrqC,QAAO,QAAU,KAErCuqC,EAAa,UAhCjB,SAAkBn1C,EAAKm7B,EAAQia,GAK7B,YAJiBn4C,IAAbm4C,GAA0BA,EAAWp1C,EAAItc,UAC3C0xD,EAAWp1C,EAAItc,QAGVsc,EAAIquB,UAAU+mB,EAAWja,EAAOz3C,OAAQ0xD,KAAcja,C,CAgCzDka,CAAS5yC,EAAM,aAEjBtI,EAAM,OAAOkF,OAAOoD,EAAM,KAAKpD,OAAO81C,EAAY,KAAK91C,OAAO21C,EAAMC,EAAU,aACzE,CACL,IAAI7yC,EAhCR,SAAkBpC,EAAKm7B,EAAQp1B,GAK7B,MAJqB,iBAAVA,IACTA,EAAQ,KAGNA,EAAQo1B,EAAOz3C,OAASsc,EAAItc,UAGQ,IAA/Bsc,EAAIa,QAAQs6B,EAAQp1B,E,CAwBhBuvC,CAAS7yC,EAAM,KAAO,WAAa,WAC9CtI,EAAM,QAASkF,OAAOoD,EAAM,MAAOpD,OAAO+C,EAAM,KAAK/C,OAAO81C,EAAY,KAAK91C,OAAO21C,EAAMC,EAAU,Q,CAItG,OADA96C,GAAO,mBAAmBkF,cAAc8E,E,GAEvCrL,WACHy7C,EAAgB,4BAA6B,2BAC7CA,EAAgB,8BAA8B,SAAU9xC,GACtD,MAAO,OAASA,EAAO,4B,IAEzB8xC,EAAgB,6BAA8B,mBAC9CA,EAAgB,wBAAwB,SAAU9xC,GAChD,MAAO,eAAiBA,EAAO,+B,IAEjC8xC,EAAgB,wBAAyB,kCACzCA,EAAgB,yBAA0B,6BAC1CA,EAAgB,6BAA8B,mBAC9CA,EAAgB,yBAA0B,sCAAuCz7C,WACjFy7C,EAAgB,wBAAwB,SAAU3wC,GAChD,MAAO,qBAAuBA,C,GAC7B9K,WACHy7C,EAAgB,qCAAsC,oCACtDF,EAAuBC,C,+ECnGnBiB,EAAaj0D,OAAOqB,MAAQ,SAAU4f,GACxC,IAAIizC,EAAO,GAEX,IAAK,IAAIryD,KAAOof,EACdizC,EAAK7xD,KAAKR,GAGZ,OAAOqyD,C,EAKTh0D,EAAAC,QAAiBg0D,E,sDAMjBhxD,cAAA,SAAoBgxD,EAAQC,GAM1B,IAFA,IAAIC,EAAOJ,EAAWK,EAAAnkD,WAEbokD,EAAI,EAAGA,EAAIF,EAAKjyD,OAAQmyD,IAAK,CACpC,IAAIC,EAASH,EAAKE,GACbJ,EAAOhkD,UAAUqkD,KAASL,EAAOhkD,UAAUqkD,GAAUF,EAAAnkD,UAAmBqkD,G,CAIjF,SAASL,EAAO7pB,GACd,KAAMlpC,gBAAgB+yD,GAAS,OAAO,IAAIA,EAAO7pB,GACjD8pB,EAAS33C,KAAKrb,KAAMkpC,GACpBgqB,EAAA73C,KAAcrb,KAAMkpC,GACpBlpC,KAAKqzD,eAAgB,EAEjBnqB,KACuB,IAArBA,EAAQqe,WAAoBvnD,KAAKunD,UAAW,IACvB,IAArBre,EAAQxa,WAAoB1uB,KAAK0uB,UAAW,IAElB,IAA1Bwa,EAAQmqB,gBACVrzD,KAAKqzD,eAAgB,EACrBrzD,KAAKi+C,KAAK,MAAOqV,I,CAiCvB,SAASA,IAEHtzD,KAAK6pD,eAAexD,OAGxBzJ,EAAAC,SAAiB0W,EAASvzD,K,CAG5B,SAASuzD,EAAQh6C,GACfA,EAAK+J,K,CArCP1kB,OAAOC,eAAek0D,EAAOhkD,UAAW,wBAAyB,CAI/D1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAK6pD,eAAe7D,a,IAG/BpnD,OAAOC,eAAek0D,EAAOhkD,UAAW,iBAAkB,CAIxD1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAK6pD,gBAAkB7pD,KAAK6pD,eAAe2J,W,IAGtD50D,OAAOC,eAAek0D,EAAOhkD,UAAW,iBAAkB,CAIxD1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAK6pD,eAAe7oD,M,IAgB/BpC,OAAOC,eAAek0D,EAAOhkD,UAAW,YAAa,CAInD1P,YAAY,EACZC,IAAK,WACH,YAA4Bib,IAAxBva,KAAKsnD,qBAAwD/sC,IAAxBva,KAAK6pD,iBAIvC7pD,KAAKsnD,eAAeN,WAAahnD,KAAK6pD,eAAe7C,U,EAE9Dt/B,IAAK,SAAa1oB,QAGYub,IAAxBva,KAAKsnD,qBAAwD/sC,IAAxBva,KAAK6pD,iBAM9C7pD,KAAKsnD,eAAeN,UAAYhoD,EAChCgB,KAAK6pD,eAAe7C,UAAYhoD,E,yDCpFhCy0D,E,yBAfJ,SAASC,EAAc7L,GACrB,IAAI8D,EAAQ3rD,KAEZA,KAAK4lC,KAAO,KACZ5lC,KAAKkwD,MAAQ,KAEblwD,KAAKsK,OAAS,YAimBhB,SAAwBqpD,EAAS9L,EAAO5S,GACtC,IAAIib,EAAQyD,EAAQzD,MACpByD,EAAQzD,MAAQ,KAEhB,KAAOA,GAAO,CACZ,IAAI9X,EAAK8X,EAAM0D,SACf/L,EAAMgM,YACNzb,EAAGnD,GACHib,EAAQA,EAAMtqB,I,CAIhBiiB,EAAMiM,mBAAmBluB,KAAO+tB,C,CA5mB9BI,CAAepI,EAAO9D,E,EAnB1B/oD,EAAAC,QAAiBi1D,EA8BjBA,EAASC,cAAgBC,EAGzB,IAAIC,EAAe,CACjBzjB,UAAW3uC,cAAA,U,kDAUTyxB,OAEA4gC,EAAgBz4C,eAAOnX,YAAc,WAAY,E,IA4IjD6vD,E,yBA/HAC,E,uBAAmBvP,iB,yBAEnBrP,MACA6e,EAAuBC,EAAetlC,qBACtCulC,EAA6BD,EAAenP,2BAC5CqP,EAAwBF,EAAeG,sBACvCC,EAAyBJ,EAAeK,uBACxCC,EAAuBN,EAAeO,qBACtCC,EAAyBR,EAAeS,uBACxCC,EAA6BV,EAAeW,2BAC5CC,EAAuBZ,EAAea,qBAEtCC,EAAiB5P,EAAAC,eAIrB,SAAS4P,IAAM,CAEf,SAASrB,EAAchrB,EAASiB,EAAQ0b,GACtC4N,EAASA,GAAU1xD,cAAA,SACnBmnC,EAAUA,GAAW,GAMG,kBAAb2c,IAAwBA,EAAW1b,aAAkBspB,GAGhEzzD,KAAK8lD,aAAe5c,EAAQ4c,WACxBD,IAAU7lD,KAAK8lD,WAAa9lD,KAAK8lD,cAAgB5c,EAAQssB,oBAI7Dx1D,KAAKgmD,cAAgBsO,EAAiBt0D,KAAMkpC,EAAS,wBAAyB2c,GAE9E7lD,KAAKmxD,aAAc,EAEnBnxD,KAAKirD,WAAY,EAEjBjrD,KAAKkxD,QAAS,EAEdlxD,KAAKqmD,OAAQ,EAEbrmD,KAAK8jD,UAAW,EAEhB9jD,KAAKgnD,WAAY,EAIjB,IAAIyO,GAAqC,IAA1BvsB,EAAQwsB,cACvB11D,KAAK01D,eAAiBD,EAItBz1D,KAAKinD,gBAAkB/d,EAAQ+d,iBAAmB,OAIlDjnD,KAAKgB,OAAS,EAEdhB,KAAK21D,SAAU,EAEf31D,KAAK41D,OAAS,EAKd51D,KAAKwmD,MAAO,EAIZxmD,KAAK61D,kBAAmB,EAExB71D,KAAK81D,QAAU,SAAUlO,IA6R3B,SAAiBzd,EAAQyd,GACvB,IAAIC,EAAQ1d,EAAO0f,eACfrD,EAAOqB,EAAMrB,KACbpO,EAAKyP,EAAMkO,QACf,GAAkB,mBAAP3d,EAAmB,MAAM,IAAIsc,EAExC,GAbF,SAA4B7M,GAC1BA,EAAM8N,SAAU,EAChB9N,EAAMkO,QAAU,KAChBlO,EAAM7mD,QAAU6mD,EAAMmO,SACtBnO,EAAMmO,SAAW,C,CAQjBC,CAAmBpO,GACfD,GArCN,SAAsBzd,EAAQ0d,EAAOrB,EAAMoB,EAAIxP,KAC3CyP,EAAMgM,UAEJrN,GAGF5J,EAAAC,SAAiBzE,EAAIwP,GAGrBhL,EAAAC,SAAiBqZ,EAAa/rB,EAAQ0d,GACtC1d,EAAO0f,eAAeoH,cAAe,EACrCqE,EAAenrB,EAAQyd,KAIvBxP,EAAGwP,GACHzd,EAAO0f,eAAeoH,cAAe,EACrCqE,EAAenrB,EAAQyd,GAGvBsO,EAAY/rB,EAAQ0d,G,CAiBdsO,CAAahsB,EAAQ0d,EAAOrB,EAAMoB,EAAIxP,OAAS,CAErD,IAAI0L,EAAWsS,EAAWvO,IAAU1d,EAAO6c,UAEtClD,GAAa+D,EAAM+N,QAAW/N,EAAMgO,mBAAoBhO,EAAMwO,iBACjEC,EAAYnsB,EAAQ0d,GAGlBrB,EACF5J,EAAAC,SAAiB0Z,EAAYpsB,EAAQ0d,EAAO/D,EAAU1L,GAEtDme,EAAWpsB,EAAQ0d,EAAO/D,EAAU1L,E,EA7StCoe,CAAQrsB,EAAQyd,E,EAIlB5nD,KAAK+1D,QAAU,KAEf/1D,KAAKg2D,SAAW,EAChBh2D,KAAKq2D,gBAAkB,KACvBr2D,KAAKy2D,oBAAsB,KAG3Bz2D,KAAK6zD,UAAY,EAGjB7zD,KAAKoxD,aAAc,EAEnBpxD,KAAKixD,cAAe,EAEpBjxD,KAAK8mD,WAAkC,IAAtB5d,EAAQ4d,UAEzB9mD,KAAK+mD,cAAgB7d,EAAQ6d,YAE7B/mD,KAAK02D,qBAAuB,EAG5B12D,KAAK8zD,mBAAqB,IAAIJ,EAAc1zD,K,CA4C9C,SAASg0D,EAAS9qB,GAUhB,IAAI2c,EAAW7lD,gBATfyzD,EAASA,GAAU1xD,cAAA,UAUnB,IAAK8jD,IAAawO,EAAgBh5C,KAAK24C,EAAUh0D,MAAO,OAAO,IAAIg0D,EAAS9qB,GAC5ElpC,KAAK6pD,eAAiB,IAAIqK,EAAchrB,EAASlpC,KAAM6lD,GAEvD7lD,KAAK0uB,UAAW,EAEZwa,IAC2B,mBAAlBA,EAAQxnB,QAAsB1hB,KAAK49C,OAAS1U,EAAQxnB,OACjC,mBAAnBwnB,EAAQytB,SAAuB32D,KAAK42D,QAAU1tB,EAAQytB,QAClC,mBAApBztB,EAAQ8U,UAAwBh+C,KAAKwnD,SAAWte,EAAQ8U,SACtC,mBAAlB9U,EAAQ2tB,QAAsB72D,KAAK82D,OAAS5tB,EAAQ2tB,QAGjErR,EAAOnqC,KAAKrb,K,CAwJd,SAAS+2D,EAAQ5sB,EAAQ0d,EAAO8O,EAAQ93C,EAAKg/B,EAAOv8B,EAAU82B,GAC5DyP,EAAMmO,SAAWn3C,EACjBgpC,EAAMkO,QAAU3d,EAChByP,EAAM8N,SAAU,EAChB9N,EAAMrB,MAAO,EACTqB,EAAMb,UAAWa,EAAMiO,QAAQ,IAAIhB,EAAqB,UAAmB6B,EAAQxsB,EAAOysB,QAAQ/Y,EAAOgK,EAAMiO,SAAc3rB,EAAOyT,OAAOC,EAAOv8B,EAAUumC,EAAMiO,SACtKjO,EAAMrB,MAAO,C,CAwDf,SAAS+P,EAAWpsB,EAAQ0d,EAAO/D,EAAU1L,GACtC0L,GASP,SAAsB3Z,EAAQ0d,GACP,IAAjBA,EAAM7mD,QAAgB6mD,EAAMoD,YAC9BpD,EAAMoD,WAAY,EAClB9gB,EAAO6R,KAAK,S,CAZCgb,CAAa7sB,EAAQ0d,GACpCA,EAAMgM,YACNzb,IACA8d,EAAY/rB,EAAQ0d,E,CActB,SAASyO,EAAYnsB,EAAQ0d,GAC3BA,EAAMgO,kBAAmB,EACzB,IAAI3F,EAAQrI,EAAMwO,gBAElB,GAAIlsB,EAAOysB,SAAW1G,GAASA,EAAMtqB,KAAM,CAEzC,IAAIvgC,EAAIwiD,EAAM6O,qBACV5sD,EAAS,IAAIjJ,MAAMwE,GACnB4xD,EAASpP,EAAMiM,mBACnBmD,EAAO/G,MAAQA,EAIf,IAHA,IAAI3lB,EAAQ,EACR2sB,GAAa,EAEVhH,GACLpmD,EAAOygC,GAAS2lB,EACXA,EAAMiH,QAAOD,GAAa,GAC/BhH,EAAQA,EAAMtqB,KACd2E,GAAS,EAGXzgC,EAAOotD,WAAaA,EACpBH,EAAQ5sB,EAAQ0d,GAAO,EAAMA,EAAM7mD,OAAQ8I,EAAQ,GAAImtD,EAAO3sD,QAG9Du9C,EAAMgM,YACNhM,EAAM4O,oBAAsB,KAExBQ,EAAOrxB,MACTiiB,EAAMiM,mBAAqBmD,EAAOrxB,KAClCqxB,EAAOrxB,KAAO,MAEdiiB,EAAMiM,mBAAqB,IAAIJ,EAAc7L,GAG/CA,EAAM6O,qBAAuB,C,KACxB,CAEL,KAAOxG,GAAO,CACZ,IAAIrS,EAAQqS,EAAMrS,MACdv8B,EAAW4uC,EAAM5uC,SACjB82B,EAAK8X,EAAM0D,SASf,GAPAmD,EAAQ5sB,EAAQ0d,GAAO,EADbA,EAAM/B,WAAa,EAAIjI,EAAM78C,OACJ68C,EAAOv8B,EAAU82B,GACpD8X,EAAQA,EAAMtqB,KACdiiB,EAAM6O,uBAKF7O,EAAM8N,QACR,K,CAIU,OAAVzF,IAAgBrI,EAAM4O,oBAAsB,K,CAGlD5O,EAAMwO,gBAAkBnG,EACxBrI,EAAMgO,kBAAmB,C,CA2C3B,SAASO,EAAWvO,GAClB,OAAOA,EAAMqJ,QAA2B,IAAjBrJ,EAAM7mD,QAA0C,OAA1B6mD,EAAMwO,kBAA6BxO,EAAM/D,WAAa+D,EAAM8N,O,CAG3G,SAASyB,EAAUjtB,EAAQ0d,GACzB1d,EAAO2sB,QAAO,SAAU7hB,GACtB4S,EAAMgM,YAEF5e,GACFqgB,EAAenrB,EAAQ8K,GAGzB4S,EAAMuJ,aAAc,EACpBjnB,EAAO6R,KAAK,aACZka,EAAY/rB,EAAQ0d,E,IAiBxB,SAASqO,EAAY/rB,EAAQ0d,GAC3B,IAAIwP,EAAOjB,EAAWvO,GAEtB,GAAIwP,IAhBN,SAAmBltB,EAAQ0d,GACpBA,EAAMuJ,aAAgBvJ,EAAMsJ,cACF,mBAAlBhnB,EAAO2sB,QAA0BjP,EAAMb,WAKhDa,EAAMuJ,aAAc,EACpBjnB,EAAO6R,KAAK,eALZ6L,EAAMgM,YACNhM,EAAMsJ,aAAc,EACpBvU,EAAAC,SAAiBua,EAAWjtB,EAAQ0d,I,CAYtCyP,CAAUntB,EAAQ0d,GAEM,IAApBA,EAAMgM,YACRhM,EAAM/D,UAAW,EACjB3Z,EAAO6R,KAAK,UAER6L,EAAMd,cAAa,CAGrB,IAAIsK,EAASlnB,EAAOmd,iBAEf+J,GAAUA,EAAOtK,aAAesK,EAAO/K,aAC1Cnc,EAAO6T,S,CAMf,OAAOqZ,C,CA3hBTt1D,cAAA,SAAoBiyD,EAAUxO,GAyF9B0O,EAAcnlD,UAAUykD,UAAY,WAIlC,IAHA,IAAIrtB,EAAUnmC,KAAKq2D,gBACftwD,EAAM,GAEHogC,GACLpgC,EAAI9E,KAAKklC,GACTA,EAAUA,EAAQP,KAGpB,OAAO7/B,C,EAGR,WACC,IACEnH,OAAOC,eAAeq1D,EAAcnlD,UAAW,SAAU,CACvDzP,IAAK60D,EAAazjB,WAAU,WAC1B,OAAO1wC,KAAKwzD,W,GACX,6EAAmF,YAE9E,CAAV,MAAOx1B,GAAG,CACb,CARA,GAcqB,mBAAXnd,QAAyBA,OAAO02C,aAAiE,mBAA3CnL,SAASr9C,UAAU8R,OAAO02C,cACzFlD,EAAkBjI,SAASr9C,UAAU8R,OAAO02C,aAC5C34D,OAAOC,eAAem1D,EAAUnzC,OAAO02C,YAAa,CAClDv4D,MAAO,SAAekwD,GACpB,QAAImF,EAAgBh5C,KAAKrb,KAAMkvD,IAC3BlvD,OAASg0D,IACN9E,GAAUA,EAAOrF,0BAA0BqK,E,KAItDG,EAAkB,SAAyBnF,GACzC,OAAOA,aAAkBlvD,I,EA+B7Bg0D,EAASjlD,UAAUm7C,KAAO,WACxBoL,EAAet1D,KAAM,IAAI40D,E,EA+B3BZ,EAASjlD,UAAU2S,MAAQ,SAAUm8B,EAAOv8B,EAAU82B,GACpD,IAnNqBv4B,EAmNjBgoC,EAAQ7nD,KAAK6pD,eACbjhC,GAAM,EAENuuC,GAAStP,EAAM/B,aAtNEjmC,EAsN0Bg+B,EArNxC2Z,EAAOh1C,SAAS3C,IAAQA,aAAeu0C,GAsO9C,OAfI+C,IAAUK,EAAOh1C,SAASq7B,KAC5BA,EA7NJ,SAA6BA,GAC3B,OAAO2Z,EAAO12D,KAAK+8C,E,CA4NT4Z,CAAoB5Z,IAGN,mBAAbv8B,IACT82B,EAAK92B,EACLA,EAAW,MAGT61C,EAAO71C,EAAW,SAAmBA,IAAUA,EAAWumC,EAAMZ,iBAClD,mBAAP7O,IAAmBA,EAAKmd,GAC/B1N,EAAMqJ,OA7CZ,SAAuB/mB,EAAQiO,GAC7B,IAAIwP,EAAK,IAAIsN,EAEbI,EAAenrB,EAAQyd,GACvBhL,EAAAC,SAAiBzE,EAAIwP,E,CAyCH8P,CAAc13D,KAAMo4C,IAAa+e,GAnCrD,SAAoBhtB,EAAQ0d,EAAOhK,EAAOzF,GACxC,IAAIwP,EAQJ,OANc,OAAV/J,EACF+J,EAAK,IAAIoN,EACiB,iBAAVnX,GAAuBgK,EAAM/B,aAC7C8B,EAAK,IAAI2M,EAAqB,QAAS,CAAC,SAAU,UAAW1W,KAG3D+J,IACF0N,EAAenrB,EAAQyd,GACvBhL,EAAAC,SAAiBzE,EAAIwP,IACd,E,CAuBmD+P,CAAW33D,KAAM6nD,EAAOhK,EAAOzF,MACzFyP,EAAMgM,YACNjrC,EAwDJ,SAAuBuhB,EAAQ0d,EAAOsP,EAAOtZ,EAAOv8B,EAAU82B,GAC5D,IAAK+e,EAAO,CACV,IAAIS,EAtBR,SAAqB/P,EAAOhK,EAAOv8B,GAC5BumC,EAAM/B,aAAsC,IAAxB+B,EAAM6N,eAA4C,iBAAV7X,IAC/DA,EAAQ2Z,EAAO12D,KAAK+8C,EAAOv8B,IAG7B,OAAOu8B,C,CAiBUga,CAAYhQ,EAAOhK,EAAOv8B,GAErCu8B,IAAU+Z,IACZT,GAAQ,EACR71C,EAAW,SACXu8B,EAAQ+Z,E,CAIZ,IAAI/4C,EAAMgpC,EAAM/B,WAAa,EAAIjI,EAAM78C,OACvC6mD,EAAM7mD,QAAU6d,EAChB,IAAI+J,EAAMi/B,EAAM7mD,OAAS6mD,EAAM7B,cAE1Bp9B,IAAKi/B,EAAMoD,WAAY,GAE5B,GAAIpD,EAAM8N,SAAW9N,EAAM+N,OAAQ,CACjC,IAAI9qC,EAAO+8B,EAAM4O,oBACjB5O,EAAM4O,oBAAsB,CAC1B5Y,MAAOA,EACPv8B,SAAUA,EACV61C,MAAOA,EACPvD,SAAUxb,EACVxS,KAAM,MAGJ9a,EACFA,EAAK8a,KAAOiiB,EAAM4O,oBAElB5O,EAAMwO,gBAAkBxO,EAAM4O,oBAGhC5O,EAAM6O,sBAAwB,C,MAE9BK,EAAQ5sB,EAAQ0d,GAAO,EAAOhpC,EAAKg/B,EAAOv8B,EAAU82B,GAGtD,OAAOxvB,C,CA9FCkvC,CAAc93D,KAAM6nD,EAAOsP,EAAOtZ,EAAOv8B,EAAU82B,IAEpDxvB,C,EAGTorC,EAASjlD,UAAUgpD,KAAO,WACxB/3D,KAAK6pD,eAAe+L,Q,EAGtB5B,EAASjlD,UAAUipD,OAAS,WAC1B,IAAInQ,EAAQ7nD,KAAK6pD,eAEbhC,EAAM+N,SACR/N,EAAM+N,SACD/N,EAAM8N,SAAY9N,EAAM+N,QAAW/N,EAAMgO,mBAAoBhO,EAAMwO,iBAAiBC,EAAYt2D,KAAM6nD,G,EAI/GmM,EAASjlD,UAAUkpD,mBAAqB,SAA4B32C,GAGlE,GADwB,iBAAbA,IAAuBA,EAAWA,EAASlf,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAO+b,SAASmD,EAAW,IAAIlf,gBAAiB,GAAK,MAAM,IAAIgzD,EAAqB9zC,GAExL,OADAthB,KAAK6pD,eAAe5C,gBAAkB3lC,EAC/BthB,I,EAGTpB,OAAOC,eAAem1D,EAASjlD,UAAW,iBAAkB,CAI1D1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAK6pD,gBAAkB7pD,KAAK6pD,eAAe2J,W,IAYtD50D,OAAOC,eAAem1D,EAASjlD,UAAW,wBAAyB,CAIjE1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAK6pD,eAAe7D,a,IA4L/BgO,EAASjlD,UAAU6uC,OAAS,SAAUC,EAAOv8B,EAAU82B,GACrDA,EAAG,IAAIqc,EAA2B,Y,EAGpCT,EAASjlD,UAAU6nD,QAAU,KAE7B5C,EAASjlD,UAAUuU,IAAM,SAAUu6B,EAAOv8B,EAAU82B,GAClD,IAAIyP,EAAQ7nD,KAAK6pD,eAoBjB,MAlBqB,mBAAVhM,GACTzF,EAAKyF,EACLA,EAAQ,KACRv8B,EAAW,MACkB,mBAAbA,IAChB82B,EAAK92B,EACLA,EAAW,MAGTu8B,SAAuC79C,KAAK0hB,MAAMm8B,EAAOv8B,GAEzDumC,EAAM+N,SACR/N,EAAM+N,OAAS,EACf51D,KAAKg4D,UAIFnQ,EAAMqJ,QAsEb,SAAqB/mB,EAAQ0d,EAAOzP,GAClCyP,EAAMqJ,QAAS,EACfgF,EAAY/rB,EAAQ0d,GAEhBzP,IACEyP,EAAM/D,SAAUlH,EAAAC,SAAiBzE,GAASjO,EAAO8T,KAAK,SAAU7F,IAGtEyP,EAAMxB,OAAQ,EACdlc,EAAOzb,UAAW,C,CA/ECwpC,CAAYl4D,KAAM6nD,EAAOzP,GACrCp4C,I,EAGTpB,OAAOC,eAAem1D,EAASjlD,UAAW,iBAAkB,CAI1D1P,YAAY,EACZC,IAAK,WACH,OAAOU,KAAK6pD,eAAe7oD,M,IAuF/BpC,OAAOC,eAAem1D,EAASjlD,UAAW,YAAa,CAIrD1P,YAAY,EACZC,IAAK,WACH,YAA4Bib,IAAxBva,KAAK6pD,gBAIF7pD,KAAK6pD,eAAe7C,S,EAE7Bt/B,IAAK,SAAa1oB,GAGXgB,KAAK6pD,iBAMV7pD,KAAK6pD,eAAe7C,UAAYhoD,E,IAGpCg1D,EAASjlD,UAAUivC,QAAU0H,EAAA1H,QAC7BgW,EAASjlD,UAAUw5C,WAAa7C,EAAA8C,UAEhCwL,EAASjlD,UAAUy4C,SAAW,SAAUvS,EAAKmD,GAC3CA,EAAGnD,E,mDC/nBL,SAASkjB,EAAQp4C,GAEf,IACE,IAAKpE,eAAOwvB,aAAc,OAAO,C,CACjC,MAAOnN,GACP,OAAO,C,CAET,IAAIja,EAAMpI,eAAOwvB,aAAaprB,GAC9B,OAAI,MAAQgE,GACyB,SAA9BQ,OAAOR,GAAK3hB,a,CA5DrBtD,EAAAC,QAoBA,SAAoBsa,EAAI5B,GACtB,GAAI0gD,EAAO,iBACT,OAAO9+C,EAGT,IAAIq0C,GAAS,EAeb,OAdA,WACE,IAAKA,EAAQ,CACX,GAAIyK,EAAO,oBACT,MAAM,IAAI71D,MAAMmV,GACP0gD,EAAO,oBAChBlxC,QAAQmxC,MAAM3gD,GAEdwP,QAAQ4qB,KAAKp6B,GAEfi2C,GAAS,C,CAEX,OAAOr0C,EAAG2E,MAAMhe,KAAMmW,U,oDCmC1B,IAAAkiD,E,wHApDI7kC,OAGA8kC,EAAaC,EAAOh3C,YAAc,SAAUD,GAE9C,QADAA,EAAW,GAAKA,IACIA,EAASlf,eAC3B,IAAK,MAAM,IAAK,OAAO,IAAK,QAAQ,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,OAAO,IAAK,QAAQ,IAAK,UAAU,IAAK,WAAW,IAAK,MACxI,OAAO,EACT,QACE,OAAO,E,EA4Cb,SAASo2D,EAAcl3C,GAErB,IAAIgvC,EACJ,OAFAtwD,KAAKshB,SAXP,SAA2BqnC,GACzB,IAAI8P,EA/BN,SAA4B9P,GAC1B,IAAKA,EAAK,MAAO,OAEjB,IADA,IAAI+P,WAEM/P,GACN,IAAK,OACL,IAAK,QACH,MAAO,OACT,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO,UACT,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,SACL,IAAK,QACL,IAAK,MACH,OAAOA,EACT,QACE,GAAI+P,EAAS,OACb/P,GAAO,GAAKA,GAAKvmD,cACjBs2D,GAAU,E,CAQLC,CAAmBhQ,GAC9B,GAAoB,iBAAT8P,IAAsBF,EAAOh3C,aAAe+2C,IAAeA,EAAW3P,IAAO,MAAM,IAAIrmD,MAAM,qBAAuBqmD,GAC/H,OAAO8P,GAAQ9P,C,CAQCiQ,CAAkBt3C,GAE1BthB,KAAKshB,UACX,IAAK,UACHthB,KAAKk0C,KAAO2kB,EACZ74D,KAAKsjB,IAAMw1C,EACXxI,EAAK,EACL,MACF,IAAK,OACHtwD,KAAK+4D,SAAWC,EAChB1I,EAAK,EACL,MACF,IAAK,SACHtwD,KAAKk0C,KAAO+kB,EACZj5D,KAAKsjB,IAAM41C,EACX5I,EAAK,EACL,MACF,QAGE,OAFAtwD,KAAK0hB,MAAQy3C,OACbn5D,KAAKsjB,IAAM81C,GAGfp5D,KAAKq5D,SAAW,EAChBr5D,KAAKs5D,UAAY,EACjBt5D,KAAKu5D,SAAWhB,EAAOlxC,YAAYipC,E,CAoCrC,SAASkJ,EAAcC,GACrB,OAAIA,GAAQ,IAAa,EAAWA,GAAQ,GAAM,EAAa,EAAWA,GAAQ,GAAM,GAAa,EAAWA,GAAQ,GAAM,GAAa,EACpIA,GAAQ,GAAM,GAAO,GAAK,C,CA2DnC,SAAST,EAAat8C,GACpB,IAAItW,EAAIpG,KAAKs5D,UAAYt5D,KAAKq5D,SAC1Bj1D,EAtBN,SAA6BmV,EAAMmD,EAAKtW,GACtC,GAAwB,MAAV,IAATsW,EAAI,IAEP,OADAnD,EAAK8/C,SAAW,EACT,IAET,GAAI9/C,EAAK8/C,SAAW,GAAK38C,EAAI1b,OAAS,EAAG,CACvC,GAAwB,MAAV,IAAT0b,EAAI,IAEP,OADAnD,EAAK8/C,SAAW,EACT,IAET,GAAI9/C,EAAK8/C,SAAW,GAAK38C,EAAI1b,OAAS,GACZ,MAAV,IAAT0b,EAAI,IAEP,OADAnD,EAAK8/C,SAAW,EACT,G,EASLK,CAAoB15D,KAAM0c,GAClC,YAAUnC,IAANnW,EAAwBA,EACxBpE,KAAKq5D,UAAY38C,EAAI1b,QACvB0b,EAAIsF,KAAKhiB,KAAKu5D,SAAUnzD,EAAG,EAAGpG,KAAKq5D,UAC5Br5D,KAAKu5D,SAASr5D,SAASF,KAAKshB,SAAU,EAAGthB,KAAKs5D,aAEvD58C,EAAIsF,KAAKhiB,KAAKu5D,SAAUnzD,EAAG,EAAGsW,EAAI1b,aAClChB,KAAKq5D,UAAY38C,EAAI1b,Q,CA2BvB,SAAS63D,EAAUn8C,EAAKvY,GACtB,IAAKuY,EAAI1b,OAASmD,GAAK,GAAM,EAAG,CAC9B,IAAIC,EAAIsY,EAAIxc,SAAS,UAAWiE,GAChC,GAAIC,EAAG,CACL,IAAI8B,EAAI9B,EAAEmhB,WAAWnhB,EAAEpD,OAAS,GAChC,GAAIkF,GAAK,OAAUA,GAAK,MAKtB,OAJAlG,KAAKq5D,SAAW,EAChBr5D,KAAKs5D,UAAY,EACjBt5D,KAAKu5D,SAAS,GAAK78C,EAAIA,EAAI1b,OAAS,GACpChB,KAAKu5D,SAAS,GAAK78C,EAAIA,EAAI1b,OAAS,GAC7BoD,EAAElD,MAAM,GAAG,E,CAGtB,OAAOkD,C,CAKT,OAHApE,KAAKq5D,SAAW,EAChBr5D,KAAKs5D,UAAY,EACjBt5D,KAAKu5D,SAAS,GAAK78C,EAAIA,EAAI1b,OAAS,GAC7B0b,EAAIxc,SAAS,UAAWiE,EAAGuY,EAAI1b,OAAS,E,CAKjD,SAAS83D,EAASp8C,GAChB,IAAItY,EAAIsY,GAAOA,EAAI1b,OAAShB,KAAK0hB,MAAMhF,GAAO,GAC9C,GAAI1c,KAAKq5D,SAAU,CACjB,IAAI/1C,EAAMtjB,KAAKs5D,UAAYt5D,KAAKq5D,SAChC,OAAOj1D,EAAIpE,KAAKu5D,SAASr5D,SAAS,UAAW,EAAGojB,E,CAElD,OAAOlf,C,CAGT,SAAS60D,EAAWv8C,EAAKvY,GACvB,IAAIuB,GAAKgX,EAAI1b,OAASmD,GAAK,EAC3B,OAAU,IAANuB,EAAgBgX,EAAIxc,SAAS,SAAUiE,IAC3CnE,KAAKq5D,SAAW,EAAI3zD,EACpB1F,KAAKs5D,UAAY,EACP,IAAN5zD,EACF1F,KAAKu5D,SAAS,GAAK78C,EAAIA,EAAI1b,OAAS,IAEpChB,KAAKu5D,SAAS,GAAK78C,EAAIA,EAAI1b,OAAS,GACpChB,KAAKu5D,SAAS,GAAK78C,EAAIA,EAAI1b,OAAS,IAE/B0b,EAAIxc,SAAS,SAAUiE,EAAGuY,EAAI1b,OAAS0E,G,CAGhD,SAASwzD,EAAUx8C,GACjB,IAAItY,EAAIsY,GAAOA,EAAI1b,OAAShB,KAAK0hB,MAAMhF,GAAO,GAC9C,OAAI1c,KAAKq5D,SAAiBj1D,EAAIpE,KAAKu5D,SAASr5D,SAAS,SAAU,EAAG,EAAIF,KAAKq5D,UACpEj1D,C,CAIT,SAAS+0D,EAAYz8C,GACnB,OAAOA,EAAIxc,SAASF,KAAKshB,S,CAG3B,SAAS83C,EAAU18C,GACjB,OAAOA,GAAOA,EAAI1b,OAAShB,KAAK0hB,MAAMhF,GAAO,E,CAzN/C27C,EAAwBG,EA6BxBA,EAAczpD,UAAU2S,MAAQ,SAAUhF,GACxC,GAAmB,IAAfA,EAAI1b,OAAc,MAAO,GAC7B,IAAIoD,EACAD,EACJ,GAAInE,KAAKq5D,SAAU,CAEjB,QAAU9+C,KADVnW,EAAIpE,KAAK+4D,SAASr8C,IACG,MAAO,GAC5BvY,EAAInE,KAAKq5D,SACTr5D,KAAKq5D,SAAW,C,MAEhBl1D,EAAI,EAEN,OAAIA,EAAIuY,EAAI1b,OAAeoD,EAAIA,EAAIpE,KAAKk0C,KAAKx3B,EAAKvY,GAAKnE,KAAKk0C,KAAKx3B,EAAKvY,GAC/DC,GAAK,E,EAGdo0D,EAAczpD,UAAUuU,IAwGxB,SAAiB5G,GACf,IAAItY,EAAIsY,GAAOA,EAAI1b,OAAShB,KAAK0hB,MAAMhF,GAAO,GAC9C,OAAI1c,KAAKq5D,SAAiBj1D,EAAI,IACvBA,C,EAxGTo0D,EAAczpD,UAAUmlC,KA0FxB,SAAkBx3B,EAAKvY,GACrB,IAAI4wB,EArEN,SAA6Bxb,EAAMmD,EAAKvY,GACtC,IAAIkH,EAAIqR,EAAI1b,OAAS,EACrB,GAAIqK,EAAIlH,EAAG,OAAO,EAClB,IAAImsD,EAAKkJ,EAAc98C,EAAIrR,IAC3B,GAAIilD,GAAM,EAER,OADIA,EAAK,IAAG/2C,EAAK8/C,SAAW/I,EAAK,GAC1BA,EAET,KAAMjlD,EAAIlH,IAAY,IAAPmsD,EAAW,OAAO,EAEjC,IADAA,EAAKkJ,EAAc98C,EAAIrR,MACb,EAER,OADIilD,EAAK,IAAG/2C,EAAK8/C,SAAW/I,EAAK,GAC1BA,EAET,KAAMjlD,EAAIlH,IAAY,IAAPmsD,EAAW,OAAO,EAEjC,IADAA,EAAKkJ,EAAc98C,EAAIrR,MACb,EAIR,OAHIilD,EAAK,IACI,IAAPA,EAAUA,EAAK,EAAO/2C,EAAK8/C,SAAW/I,EAAK,GAE1CA,EAET,OAAO,C,CA+CKqJ,CAAoB35D,KAAM0c,EAAKvY,GAC3C,IAAKnE,KAAKq5D,SAAU,OAAO38C,EAAIxc,SAAS,OAAQiE,GAChDnE,KAAKs5D,UAAYvkC,EACjB,IAAIzR,EAAM5G,EAAI1b,QAAU+zB,EAAQ/0B,KAAKq5D,UAErC,OADA38C,EAAIsF,KAAKhiB,KAAKu5D,SAAU,EAAGj2C,GACpB5G,EAAIxc,SAAS,OAAQiE,EAAGmf,E,EA7FjCk1C,EAAczpD,UAAUgqD,SAAW,SAAUr8C,GAC3C,GAAI1c,KAAKq5D,UAAY38C,EAAI1b,OAEvB,OADA0b,EAAIsF,KAAKhiB,KAAKu5D,SAAUv5D,KAAKs5D,UAAYt5D,KAAKq5D,SAAU,EAAGr5D,KAAKq5D,UACzDr5D,KAAKu5D,SAASr5D,SAASF,KAAKshB,SAAU,EAAGthB,KAAKs5D,WAEvD58C,EAAIsF,KAAKhiB,KAAKu5D,SAAUv5D,KAAKs5D,UAAYt5D,KAAKq5D,SAAU,EAAG38C,EAAI1b,QAC/DhB,KAAKq5D,UAAY38C,EAAI1b,M,uDCpInB44D,E,yBAEJ,SAASC,EAAgBh6C,EAAKpf,EAAKzB,GAAiK,OAApJyB,KAAOof,EAAOjhB,OAAOC,eAAeghB,EAAKpf,EAAK,CAAEzB,MAAOA,EAAOK,YAAY,EAAMovB,cAAc,EAAMC,UAAU,IAAkB7O,EAAIpf,GAAOzB,EAAgB6gB,C,8BAIvMi6C,EAAej5C,OAAO,eACtBk5C,EAAcl5C,OAAO,cACrBm5C,EAASn5C,OAAO,SAChBo5C,EAASp5C,OAAO,SAChBq5C,EAAer5C,OAAO,eACtBs5C,EAAiBt5C,OAAO,iBACxBu5C,EAAUv5C,OAAO,UAErB,SAASw5C,EAAiBr7D,EAAO8+C,GAC/B,MAAO,CACL9+C,MAAOA,EACP8+C,KAAMA,E,CAIV,SAASwc,EAAeC,GACtB,IAAInjB,EAAUmjB,EAAKT,GAEnB,GAAgB,OAAZ1iB,EAAkB,CACpB,IAAIx0C,EAAO23D,EAAKH,GAAS51C,OAIZ,OAAT5hB,IACF23D,EAAKL,GAAgB,KACrBK,EAAKT,GAAgB,KACrBS,EAAKR,GAAe,KACpB3iB,EAAQijB,EAAiBz3D,GAAM,I,EAKrC,SAAS43D,EAAWD,GAGlB3d,EAAAC,SAAiByd,EAAgBC,E,CAgBnC,IAAIE,EAAyB77D,OAAOupD,gBAAe,WAAY,IAC3DuS,EAAuC97D,OAAOqiB,gBA4D/C44C,EA5D+DD,EAAwB,CACpFzvB,aACF,OAAOnqC,KAAKo6D,E,EAGdx0B,KAAM,WACJ,IAAI+lB,EAAQ3rD,KAIR4f,EAAQ5f,KAAKg6D,GAEjB,GAAc,OAAVp6C,EACF,OAAOu3B,QAAQkL,OAAOziC,GAGxB,GAAI5f,KAAKi6D,GACP,OAAO9iB,QAAQC,QAAQijB,OAAiB9/C,GAAW,IAGrD,GAAIva,KAAKo6D,GAASpT,UAKhB,OAAO,IAAI7P,SAAQ,SAAUC,EAASiL,GACpCzF,EAAAC,UAAiB,WACX8O,EAAMqO,GACR3X,EAAOsJ,EAAMqO,IAEb5iB,EAAQijB,OAAiB9/C,GAAW,G,OAU5C,IACIogD,EADAC,EAAc56D,KAAKk6D,GAGvB,GAAIU,EACFD,EAAU,IAAIxjB,QA1DpB,SAAqByjB,EAAaL,GAChC,OAAO,SAAUnjB,EAASiL,GACxBuY,EAAYxe,MAAK,WACXme,EAAKN,GACP7iB,EAAQijB,OAAiB9/C,GAAW,IAItCggD,EAAKJ,GAAgB/iB,EAASiL,E,GAC7BA,E,EAiDqBwY,CAAYD,EAAa56D,WAC1C,CAGL,IAAI4C,EAAO5C,KAAKo6D,GAAS51C,OAEzB,GAAa,OAAT5hB,EACF,OAAOu0C,QAAQC,QAAQijB,EAAiBz3D,GAAM,IAGhD+3D,EAAU,IAAIxjB,QAAQn3C,KAAKm6D,G,CAI7B,OADAn6D,KAAKk6D,GAAgBS,EACdA,C,GAE+B95C,OAAOgrC,eAAe,WAC9D,OAAO7rD,I,IACL65D,EAAgBD,EAAuB,UAAU,WACnD,IAAIkB,EAAS96D,KAKb,OAAO,IAAIm3C,SAAQ,SAAUC,EAASiL,GACpCyY,EAAOV,GAASpc,QAAQ,MAAM,SAAU/I,GAClCA,EACFoN,EAAOpN,GAITmC,EAAQijB,OAAiB9/C,GAAW,G,UAGtCq/C,GAAwBa,GAoE5B37D,EAAAC,QAlEwC,SAA2CorC,GACjF,IAAI4wB,EAEAC,EAAWp8D,OAAOyb,OAAOqgD,GAA4Db,EAArBkB,EAAiB,GAAoCX,EAAS,CAChIp7D,MAAOmrC,EACPzb,UAAU,IACRmrC,EAAgBkB,EAAgBjB,EAAc,CAChD96D,MAAO,KACP0vB,UAAU,IACRmrC,EAAgBkB,EAAgBhB,EAAa,CAC/C/6D,MAAO,KACP0vB,UAAU,IACRmrC,EAAgBkB,EAAgBf,EAAQ,CAC1Ch7D,MAAO,KACP0vB,UAAU,IACRmrC,EAAgBkB,EAAgBd,EAAQ,CAC1Cj7D,MAAOmrC,EAAOmd,eAAehB,WAC7B53B,UAAU,IACRmrC,EAAgBkB,EAAgBZ,EAAgB,CAClDn7D,MAAO,SAAeo4C,EAASiL,GAC7B,IAAIz/C,EAAOo4D,EAASZ,GAAS51C,OAEzB5hB,GACFo4D,EAASd,GAAgB,KACzBc,EAASlB,GAAgB,KACzBkB,EAASjB,GAAe,KACxB3iB,EAAQijB,EAAiBz3D,GAAM,MAE/Bo4D,EAASlB,GAAgB1iB,EACzB4jB,EAASjB,GAAe1X,E,EAG5B3zB,UAAU,IACRqsC,IA8BJ,OA7BAC,EAASd,GAAgB,KACzBe,EAAS9wB,GAAQ,SAAU8K,GACzB,GAAIA,GAAoB,+BAAbA,EAAI/2B,KAAuC,CACpD,IAAImkC,EAAS2Y,EAASjB,GAWtB,OARe,OAAX1X,IACF2Y,EAASd,GAAgB,KACzBc,EAASlB,GAAgB,KACzBkB,EAASjB,GAAe,KACxB1X,EAAOpN,SAGT+lB,EAAShB,GAAU/kB,E,CAIrB,IAAImC,EAAU4jB,EAASlB,GAEP,OAAZ1iB,IACF4jB,EAASd,GAAgB,KACzBc,EAASlB,GAAgB,KACzBkB,EAASjB,GAAe,KACxB3iB,EAAQijB,OAAiB9/C,GAAW,KAGtCygD,EAASf,IAAU,C,IAErB9vB,EAAO2O,GAAG,WAAY0hB,EAAW3iB,KAAK,KAAMmjB,IACrCA,C,uDCvMLE,E,uBAA6BxlB,MAAiCylB,2BAgBlE,SAASC,IAAO,CAmFhBt8D,EAAAC,QA7EA,SAASs8D,EAAIlxB,EAAQgO,EAAMyb,GACzB,GAAoB,mBAATzb,EAAqB,OAAOkjB,EAAIlxB,EAAQ,KAAMgO,GACpDA,IAAMA,EAAO,IAClByb,EAvBF,SAAcA,GACZ,IAAI0H,GAAS,EACb,OAAO,WACL,IAAIA,EAAJ,CACAA,GAAS,EAET,IAAK,IAAIC,EAAOplD,UAAUnV,OAAQ+c,EAAO,IAAIld,MAAM06D,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/Ez9C,EAAKy9C,GAAQrlD,UAAUqlD,GAGzB5H,EAAS51C,MAAMhe,KAAM+d,EAPT,C,EAoBH09C,CAAK7H,GAAYwH,GAC5B,IAAI7T,EAAWpP,EAAKoP,WAA8B,IAAlBpP,EAAKoP,UAAsBpd,EAAOod,SAC9D74B,EAAWypB,EAAKzpB,WAA8B,IAAlBypB,EAAKzpB,UAAsByb,EAAOzb,SAE9DgtC,EAAiB,WACdvxB,EAAOzb,UAAUm8B,G,EAGpB8Q,EAAgBxxB,EAAO0f,gBAAkB1f,EAAO0f,eAAe/F,SAE/D+G,EAAW,WACbn8B,GAAW,EACXitC,GAAgB,EACXpU,GAAUqM,EAASv4C,KAAK8uB,E,EAG3ByxB,EAAgBzxB,EAAOmd,gBAAkBnd,EAAOmd,eAAehB,WAE/DiE,EAAQ,WACVhD,GAAW,EACXqU,GAAgB,EACXltC,GAAUklC,EAASv4C,KAAK8uB,E,EAG3BqT,EAAU,SAAiBvI,GAC7B2e,EAASv4C,KAAK8uB,EAAQ8K,E,EAGpB2V,EAAU,WACZ,IAAI3V,EAEJ,OAAIsS,IAAaqU,GACVzxB,EAAOmd,gBAAmBnd,EAAOmd,eAAejB,QAAOpR,EAAM,IAAIimB,GAC/DtH,EAASv4C,KAAK8uB,EAAQ8K,IAG3BvmB,IAAaitC,GACVxxB,EAAO0f,gBAAmB1f,EAAO0f,eAAexD,QAAOpR,EAAM,IAAIimB,GAC/DtH,EAASv4C,KAAK8uB,EAAQ8K,SAF/B,C,EAME4mB,EAAY,WACd1xB,EAAO0O,IAAIC,GAAG,SAAU+R,E,EAiB1B,OAnEF,SAAmB1gB,GACjB,OAAOA,EAAO8P,WAAqC,mBAAjB9P,EAAO8R,K,CAoDrC6f,CAAU3xB,GAIHzb,IAAayb,EAAO0f,iBAE7B1f,EAAO2O,GAAG,MAAO4iB,GACjBvxB,EAAO2O,GAAG,QAAS4iB,KANnBvxB,EAAO2O,GAAG,WAAY+R,GACtB1gB,EAAO2O,GAAG,QAAS8R,GACfzgB,EAAO0O,IAAKgjB,IAAiB1xB,EAAO2O,GAAG,UAAW+iB,IAOxD1xB,EAAO2O,GAAG,MAAOyR,GACjBpgB,EAAO2O,GAAG,SAAU+R,IACD,IAAf1S,EAAKv4B,OAAiBuqB,EAAO2O,GAAG,QAAS0E,GAC7CrT,EAAO2O,GAAG,QAAS8R,GACZ,WACLzgB,EAAO2V,eAAe,WAAY+K,GAClC1gB,EAAO2V,eAAe,QAAS8K,GAC/BzgB,EAAO2V,eAAe,UAAW+b,GAC7B1xB,EAAO0O,KAAK1O,EAAO0O,IAAIiH,eAAe,SAAU+K,GACpD1gB,EAAO2V,eAAe,MAAO4b,GAC7BvxB,EAAO2V,eAAe,QAAS4b,GAC/BvxB,EAAO2V,eAAe,SAAU+K,GAChC1gB,EAAO2V,eAAe,MAAOyK,GAC7BpgB,EAAO2V,eAAe,QAAStC,GAC/BrT,EAAO2V,eAAe,QAAS8K,E,oDCnGnC9rD,EAAAC,QAAiB,WACf,MAAM,IAAIuD,MAAM,gD,mDC8DlBxD,EAAAC,QAAiBg9D,E,6BAEbrmB,MACAsmB,EAA6BC,EAAe5W,2BAC5C6W,EAAwBD,EAAetH,sBACvCwH,EAAqCF,EAAeG,mCACpDC,EAA8BJ,EAAeK,4B,yBAMjD,SAASC,EAAe3U,EAAIhlD,GAC1B,IAAI45D,EAAKx8D,KAAKy8D,gBACdD,EAAGE,cAAe,EAClB,IAAItkB,EAAKokB,EAAGzG,QAEZ,GAAW,OAAP3d,EACF,OAAOp4C,KAAKg8C,KAAK,QAAS,IAAIkgB,GAGhCM,EAAGG,WAAa,KAChBH,EAAGzG,QAAU,KACD,MAARnzD,GACF5C,KAAKiB,KAAK2B,GACZw1C,EAAGwP,GACH,IAAIgV,EAAK58D,KAAKsnD,eACdsV,EAAGrW,SAAU,GAETqW,EAAGnW,cAAgBmW,EAAG57D,OAAS47D,EAAG5W,gBACpChmD,KAAKojD,MAAMwZ,EAAG5W,c,CAIlB,SAAS+V,EAAU7yB,GACjB,KAAMlpC,gBAAgB+7D,GAAY,OAAO,IAAIA,EAAU7yB,GACvD2zB,EAAOxhD,KAAKrb,KAAMkpC,GAClBlpC,KAAKy8D,gBAAkB,CACrBK,eAAgBP,EAAe1kB,KAAK73C,MACpC+8D,eAAe,EACfL,cAAc,EACd3G,QAAS,KACT4G,WAAY,KACZK,cAAe,MAGjBh9D,KAAKsnD,eAAeb,cAAe,EAInCzmD,KAAKsnD,eAAed,MAAO,EAEvBtd,IAC+B,mBAAtBA,EAAQzM,YAA0Bz8B,KAAKi9D,WAAa/zB,EAAQzM,WAC1C,mBAAlByM,EAAQg0B,QAAsBl9D,KAAKm9D,OAASj0B,EAAQg0B,QAIjEl9D,KAAK84C,GAAG,YAAaskB,E,CAGvB,SAASA,IACP,IAAIzR,EAAQ3rD,KAEe,mBAAhBA,KAAKm9D,QAA0Bn9D,KAAKsnD,eAAeN,UAK5DqW,EAAKr9D,KAAM,KAAM,MAJjBA,KAAKm9D,QAAO,SAAUvV,EAAIhlD,GACxBy6D,EAAK1R,EAAO/D,EAAIhlD,E,IA6DtB,SAASy6D,EAAKlzB,EAAQyd,EAAIhlD,GACxB,GAAIglD,EAAI,OAAOzd,EAAO6R,KAAK,QAAS4L,GAMpC,GALY,MAARhlD,GACFunC,EAAOlpC,KAAK2B,GAIVunC,EAAO0f,eAAe7oD,OAAQ,MAAM,IAAIq7D,EAC5C,GAAIlyB,EAAOsyB,gBAAgBC,aAAc,MAAM,IAAIP,EACnD,OAAOhyB,EAAOlpC,KAAK,K,CA9HrBc,cAAA,SAAoBg6D,EAAWc,GA+D/Bd,EAAUhtD,UAAU9N,KAAO,SAAU48C,EAAOv8B,GAE1C,OADAthB,KAAKy8D,gBAAgBM,eAAgB,EAC9BF,EAAO9tD,UAAU9N,KAAKoa,KAAKrb,KAAM69C,EAAOv8B,E,EAajDy6C,EAAUhtD,UAAUkuD,WAAa,SAAUpf,EAAOv8B,EAAU82B,GAC1DA,EAAG,IAAI4jB,EAA2B,gB,EAGpCD,EAAUhtD,UAAU6uC,OAAS,SAAUC,EAAOv8B,EAAU82B,GACtD,IAAIokB,EAAKx8D,KAAKy8D,gBAKd,GAJAD,EAAGzG,QAAU3d,EACbokB,EAAGG,WAAa9e,EAChB2e,EAAGQ,cAAgB17C,GAEdk7C,EAAGE,aAAc,CACpB,IAAIE,EAAK58D,KAAKsnD,gBACVkV,EAAGO,eAAiBH,EAAGnW,cAAgBmW,EAAG57D,OAAS47D,EAAG5W,gBAAehmD,KAAKojD,MAAMwZ,EAAG5W,c,GAO3F+V,EAAUhtD,UAAUq0C,MAAQ,SAAU19C,GACpC,IAAI82D,EAAKx8D,KAAKy8D,gBAEQ,OAAlBD,EAAGG,YAAwBH,EAAGE,aAOhCF,EAAGO,eAAgB,GANnBP,EAAGE,cAAe,EAElB18D,KAAKi9D,WAAWT,EAAGG,WAAYH,EAAGQ,cAAeR,EAAGM,gB,EAQxDf,EAAUhtD,UAAUy4C,SAAW,SAAUvS,EAAKmD,GAC5CykB,EAAO9tD,UAAUy4C,SAASnsC,KAAKrb,KAAMi1C,GAAK,SAAUqoB,GAClDllB,EAAGklB,E,sDCjKPx+D,EAAAC,QAAiBw+D,E,6BAMjB,SAASA,EAAYr0B,GACnB,KAAMlpC,gBAAgBu9D,GAAc,OAAO,IAAIA,EAAYr0B,GAC3Ds0B,EAAUniD,KAAKrb,KAAMkpC,E,CAJvBnnC,cAAA,SAAoBw7D,EAAaC,GAOjCD,EAAYxuD,UAAUkuD,WAAa,SAAUpf,EAAOv8B,EAAU82B,GAC5DA,EAAG,KAAMyF,E,mDCjCX,IAAI4f,E,6BAWA/nB,MACAgoB,EAAmBC,EAAeC,iBAClCC,EAAuBF,EAAe5I,qBAE1C,SAAS+I,EAAK7oB,GAEZ,GAAIA,EAAK,MAAMA,C,CAOjB,SAAS8oB,EAAU5zB,EAAQoc,EAASoP,EAAS/B,GAC3CA,EAvBF,SAAcA,GACZ,IAAI0H,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACT1H,EAAS51C,WAAM,EAAQ7H,W,EAkBd6nD,CAAKpK,GAChB,IAAIqK,GAAS,EACb9zB,EAAO2O,GAAG,SAAS,WACjBmlB,GAAS,C,SAEC1jD,IAARkjD,IAAmBA,EAAM17D,cAAA,UAC7B07D,EAAItzB,EAAQ,CACVod,SAAUhB,EACV73B,SAAUinC,IACT,SAAU1gB,GACX,GAAIA,EAAK,OAAO2e,EAAS3e,GACzBgpB,GAAS,EACTrK,G,IAEF,IAAI5M,GAAY,EAChB,OAAO,SAAU/R,GACf,IAAIgpB,IACAjX,EAGJ,OAFAA,GAAY,EAvBhB,SAAmB7c,GACjB,OAAOA,EAAO8P,WAAqC,mBAAjB9P,EAAO8R,K,CAwBnCiiB,CAAU/zB,GAAgBA,EAAO8R,QACP,mBAAnB9R,EAAO6T,QAA+B7T,EAAO6T,eACxD4V,EAAS3e,GAAO,IAAI4oB,EAAqB,Q,EAI7C,SAASM,EAAK9kD,GACZA,G,CAGF,SAAS+kD,EAAKt9D,EAAMu9D,GAClB,OAAOv9D,EAAKopD,KAAKmU,E,CAGnB,SAASC,EAAYC,GACnB,OAAKA,EAAQv9D,OAC8B,mBAAhCu9D,EAAQA,EAAQv9D,OAAS,GAA0B88D,EACvDS,EAAQ31B,MAFak1B,C,CAgC9Bh/D,EAAAC,QA3BA,WACE,IAAK,IAAIw8D,EAAOplD,UAAUnV,OAAQu9D,EAAU,IAAI19D,MAAM06D,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClF+C,EAAQ/C,GAAQrlD,UAAUqlD,GAG5B,IAOI57C,EAPAg0C,EAAW0K,EAAYC,GAG3B,GAFI19D,MAAM8hB,QAAQ47C,EAAQ,MAAKA,EAAUA,EAAQ,IAE7CA,EAAQv9D,OAAS,EACnB,MAAM,IAAI08D,EAAiB,WAI7B,IAAIc,EAAWD,EAAQt+C,KAAI,SAAUkqB,EAAQhmC,GAC3C,IAAIoiD,EAAUpiD,EAAIo6D,EAAQv9D,OAAS,EAEnC,OAAO+8D,EAAU5zB,EAAQoc,EADXpiD,EAAI,GACyB,SAAU8wC,GAC9Cr1B,IAAOA,EAAQq1B,GAChBA,GAAKupB,EAASh+D,QAAQ29D,GACtB5X,IACJiY,EAASh+D,QAAQ29D,GACjBvK,EAASh0C,G,OAGb,OAAO2+C,EAAQtpD,OAAOmpD,E,mDC7FxBt/D,EAAAC,QAIA,WAGI,IAFA,IAAI8b,EAAS,GAEJ1W,EAAI,EAAGA,EAAIgS,UAAUnV,OAAQmD,IAAK,CACvC,IAAI4iC,EAAS5wB,UAAUhS,GAEvB,IAAK,IAAI1D,KAAOsmC,EACR03B,EAAepjD,KAAK0rB,EAAQtmC,KAC5Boa,EAAOpa,GAAOsmC,EAAOtmC,G,CAKjC,OAAOoa,C,EAfX,IAAI4jD,EAAiB7/D,OAAOmQ,UAAUqM,c,kDCFtCtc,EAAAC,QAAiB,CACf,IAAO,WACP,IAAO,sBACP,IAAO,aACP,IAAO,KACP,IAAO,UACP,IAAO,WACP,IAAO,gCACP,IAAO,aACP,IAAO,gBACP,IAAO,kBACP,IAAO,eACP,IAAO,mBACP,IAAO,UACP,IAAO,mBACP,IAAO,oBACP,IAAO,QACP,IAAO,YACP,IAAO,eACP,IAAO,YACP,IAAO,qBACP,IAAO,qBACP,IAAO,cACP,IAAO,eACP,IAAO,mBACP,IAAO,YACP,IAAO,YACP,IAAO,qBACP,IAAO,iBACP,IAAO,gCACP,IAAO,kBACP,IAAO,WACP,IAAO,OACP,IAAO,kBACP,IAAO,sBACP,IAAO,oBACP,IAAO,eACP,IAAO,yBACP,IAAO,wBACP,IAAO,qBACP,IAAO,eACP,IAAO,sBACP,IAAO,uBACP,IAAO,SACP,IAAO,oBACP,IAAO,uBACP,IAAO,mBACP,IAAO,wBACP,IAAO,oBACP,IAAO,kCACP,IAAO,gCACP,IAAO,wBACP,IAAO,kBACP,IAAO,cACP,IAAO,sBACP,IAAO,kBACP,IAAO,6BACP,IAAO,0BACP,IAAO,uBACP,IAAO,gBACP,IAAO,2BACP,IAAO,eACP,IAAO,kC,kDCpCT,IAAA2/D,E,yIAOA,SAASC,IACP3+D,KAAK2zC,SAAW,KAChB3zC,KAAK4+D,QAAU,KACf5+D,KAAKg6C,KAAO,KACZh6C,KAAK04C,KAAO,KACZ14C,KAAK44C,KAAO,KACZ54C,KAAK24C,SAAW,KAChB34C,KAAKkZ,KAAO,KACZlZ,KAAKy4C,OAAS,KACdz4C,KAAK6+D,MAAQ,KACb7+D,KAAK8+D,SAAW,KAChB9+D,KAAKmwC,KAAO,KACZnwC,KAAK++D,KAAO,I,CAnBdL,EAAgBM,EA0BhB,IAAIC,EAAe,oBACfC,EAAW,WAGXC,EAAiB,qCAOjBC,EAAS,CAAC,IAAK,IAAK,IAAK,KAAM,IAAK,KAAKziD,OAHhC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,OAM/C0iD,EAAa,CAAC,KAAM1iD,OAAOyiD,GAK3BE,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,KAAK3iD,OAAO0iD,GAChDE,EAAkB,CAAC,IAAK,IAAK,KAE7BC,EAAmB,yBACnBC,EAAiB,+BAEjBC,EAAiB,CACfC,YAAc,EACd,eAAe,GAGjBC,EAAmB,CACjBD,YAAc,EACd,eAAe,GAGjBE,EAAkB,CAChB5sB,MAAQ,EACRC,OAAS,EACT4sB,KAAO,EACPC,QAAU,EACVC,MAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,G,yBAIf,SAAShB,EAASltB,EAAKmuB,EAAkBC,GACvC,GAAIpuB,GAAOquB,EAAAC,SAActuB,IAAQA,aAAe6sB,EAAK,OAAO7sB,EAE5D,IAAIzrC,EAAI,IAAIs4D,EAEZ,OADAt4D,EAAEkpC,MAAMuC,EAAKmuB,EAAkBC,GACxB75D,C,CAGTs4D,EAAI5vD,UAAUwgC,MAAQ,SAASuC,EAAKmuB,EAAkBC,GACpD,IAAKC,EAAAE,SAAcvuB,GACjB,MAAM,IAAI17B,UAAU,gDAAkD07B,GAMxE,IAAIwuB,EAAaxuB,EAAI3zB,QAAQ,KACzBoiD,GACoB,IAAhBD,GAAsBA,EAAaxuB,EAAI3zB,QAAQ,KAAQ,IAAM,IACjEqiD,EAAS1uB,EAAInxC,MAAM4/D,GAEvBC,EAAO,GAAKA,EAAO,GAAGt4C,QADR,MAC4B,KAG1C,IAAIu4C,EAFJ3uB,EAAM0uB,EAAOr/D,KAAKo/D,GAQlB,GAFAE,EAAOA,EAAKt4C,QAEP+3C,GAA+C,IAA1BpuB,EAAInxC,MAAM,KAAKK,OAAc,CAErD,IAAI0/D,EAAavB,EAAkBwB,KAAKF,GACxC,GAAIC,EAeF,OAdA1gE,KAAKmwC,KAAOswB,EACZzgE,KAAK++D,KAAO0B,EACZzgE,KAAK8+D,SAAW4B,EAAW,GACvBA,EAAW,IACb1gE,KAAKy4C,OAASioB,EAAW,GAEvB1gE,KAAK6+D,MADHoB,EACWW,EAAArxB,MAAkBvvC,KAAKy4C,OAAOvzB,OAAO,IAErCllB,KAAKy4C,OAAOvzB,OAAO,IAEzB+6C,IACTjgE,KAAKy4C,OAAS,GACdz4C,KAAK6+D,MAAQ,IAER7+D,I,CAIX,IAAI8mB,EAAQm4C,EAAgB0B,KAAKF,GACjC,GAAI35C,EAAO,CAET,IAAI+5C,GADJ/5C,EAAQA,EAAM,IACS1kB,cACvBpC,KAAK2zC,SAAWktB,EAChBJ,EAAOA,EAAKv7C,OAAO4B,EAAM9lB,O,CAO3B,GAAIk/D,GAAqBp5C,GAAS25C,EAAKzd,MAAK,wBAA0B,CACpE,IAAI4b,EAAgC,OAAtB6B,EAAKv7C,OAAO,EAAG,IACzB05C,GAAa93C,GAAS84C,EAAiB94C,KACzC25C,EAAOA,EAAKv7C,OAAO,GACnBllB,KAAK4+D,SAAU,E,CAInB,IAAKgB,EAAiB94C,KACjB83C,GAAY93C,IAAU+4C,EAAgB/4C,IAAU,CAmBnD,IADA,IASIkzB,EAAM8mB,EATNC,GAAU,EACL58D,EAAI,EAAGA,EAAIo7D,EAAgBv+D,OAAQmD,IAAK,EAEnC,KADR68D,EAAMP,EAAKtiD,QAAQohD,EAAgBp7D,QACR,IAAZ48D,GAAkBC,EAAMD,KACzCA,EAAUC,E,EAiBC,KATbF,GAFc,IAAZC,EAEON,EAAKv8C,YAAY,KAIjBu8C,EAAKv8C,YAAY,IAAK68C,MAM/B/mB,EAAOymB,EAAKv/D,MAAM,EAAG4/D,GACrBL,EAAOA,EAAKv/D,MAAM4/D,EAAS,GAC3B9gE,KAAKg6C,KAAOinB,mBAAmBjnB,IAIjC+mB,GAAU,EACV,IAAS58D,EAAI,EAAGA,EAAIm7D,EAAat+D,OAAQmD,IAAK,CAC5C,IAAI68D,GACQ,KADRA,EAAMP,EAAKtiD,QAAQmhD,EAAan7D,QACL,IAAZ48D,GAAkBC,EAAMD,KACzCA,EAAUC,E,EAGE,IAAZD,IACFA,EAAUN,EAAKz/D,QAEjBhB,KAAK04C,KAAO+nB,EAAKv/D,MAAM,EAAG6/D,GAC1BN,EAAOA,EAAKv/D,MAAM6/D,GAGlB/gE,KAAKkhE,YAILlhE,KAAK24C,SAAW34C,KAAK24C,UAAY,GAIjC,IAAIwoB,EAAoC,MAArBnhE,KAAK24C,SAAS,IACe,MAA5C34C,KAAK24C,SAAS34C,KAAK24C,SAAS33C,OAAS,GAGzC,IAAKmgE,EAEH,IADA,IAAIC,EAAYphE,KAAK24C,SAASh4C,MAAK,MACnB0E,GAAPlB,EAAI,EAAOi9D,EAAUpgE,QAAQmD,EAAIkB,EAAGlB,IAAK,CAChD,IAAIk9D,EAAOD,EAAUj9D,GACrB,GAAKk9D,IACAA,EAAKre,MAAMwc,GAAsB,CAEpC,IADA,IAAI8B,EAAU,GACLj2D,EAAI,EAAGpF,EAAIo7D,EAAKrgE,OAAQqK,EAAIpF,EAAGoF,IAClCg2D,EAAK97C,WAAWla,GAAK,IAIvBi2D,GAAW,IAEXA,GAAWD,EAAKh2D,GAIpB,IAAKi2D,EAAQte,MAAMwc,GAAsB,CACvC,IAAI+B,EAAaH,EAAUlgE,MAAM,EAAGiD,GAChCq9D,EAAUJ,EAAUlgE,MAAMiD,EAAI,GAC9B20B,EAAMuoC,EAAKre,MAAMyc,GACjB3mC,IACFyoC,EAAWtgE,KAAK63B,EAAI,IACpB0oC,EAAQ74B,QAAQ7P,EAAI,KAElB0oC,EAAQxgE,SACVy/D,EAAO,IAAMe,EAAQrgE,KAAK,KAAOs/D,GAEnCzgE,KAAK24C,SAAW4oB,EAAWpgE,KAAK,KAChC,K,GAMJnB,KAAK24C,SAAS33C,OAjND,IAkNfhB,KAAK24C,SAAW,GAGhB34C,KAAK24C,SAAW34C,KAAK24C,SAASv2C,cAG3B++D,IAKHnhE,KAAK24C,SAAW8oB,EAAAC,QAAiB1hE,KAAK24C,WAGxC,IAAIvyC,EAAIpG,KAAK44C,KAAO,IAAM54C,KAAK44C,KAAO,GAClCxzC,EAAIpF,KAAK24C,UAAY,GACzB34C,KAAK04C,KAAOtzC,EAAIgB,EAChBpG,KAAK++D,MAAQ/+D,KAAK04C,KAIdyoB,IACFnhE,KAAK24C,SAAW34C,KAAK24C,SAASzzB,OAAO,EAAGllB,KAAK24C,SAAS33C,OAAS,GAC/C,MAAZy/D,EAAK,KACPA,EAAO,IAAMA,G,CAOnB,IAAKf,EAAemB,GAKlB,IAAS18D,EAAI,EAAGkB,EAAIg6D,EAAWr+D,OAAQmD,EAAIkB,EAAGlB,IAAK,CACjD,IAAIw9D,EAAKtC,EAAWl7D,GACpB,IAAyB,IAArBs8D,EAAKtiD,QAAQwjD,GAAjB,CAEA,IAAIC,EAAMC,mBAAmBF,GACzBC,IAAQD,IACVC,EAAME,OAAOH,IAEflB,EAAOA,EAAK9/D,MAAMghE,GAAIxgE,KAAKygE,EALzB,C,CAWN,IAAI1oD,EAAOunD,EAAKtiD,QAAQ,MACX,IAATjF,IAEFlZ,KAAKkZ,KAAOunD,EAAKv7C,OAAOhM,GACxBunD,EAAOA,EAAKv/D,MAAM,EAAGgY,IAEvB,IAAI6oD,EAAKtB,EAAKtiD,QAAQ,KAoBtB,IAnBW,IAAP4jD,GACF/hE,KAAKy4C,OAASgoB,EAAKv7C,OAAO68C,GAC1B/hE,KAAK6+D,MAAQ4B,EAAKv7C,OAAO68C,EAAK,GAC1B9B,IACFjgE,KAAK6+D,MAAQ+B,EAAArxB,MAAkBvvC,KAAK6+D,QAEtC4B,EAAOA,EAAKv/D,MAAM,EAAG6gE,IACZ9B,IAETjgE,KAAKy4C,OAAS,GACdz4C,KAAK6+D,MAAQ,IAEX4B,IAAMzgE,KAAK8+D,SAAW2B,GACtBZ,EAAgBgB,IAChB7gE,KAAK24C,WAAa34C,KAAK8+D,WACzB9+D,KAAK8+D,SAAW,KAId9+D,KAAK8+D,UAAY9+D,KAAKy4C,OAAQ,CAC5BryC,EAAIpG,KAAK8+D,UAAY,GAAzB,IACI51D,EAAIlJ,KAAKy4C,QAAU,GACvBz4C,KAAKmwC,KAAO/pC,EAAI8C,C,CAKlB,OADAlJ,KAAK++D,KAAO/+D,KAAKgiE,SACVhiE,I,EAcT2+D,EAAI5vD,UAAUizD,OAAS,WACrB,IAAIhoB,EAAOh6C,KAAKg6C,MAAQ,GACpBA,IAEFA,GADAA,EAAO6nB,mBAAmB7nB,IACd9xB,QAAO,OAAS,KAC5B8xB,GAAQ,KAGV,IAAIrG,EAAW3zC,KAAK2zC,UAAY,GAC5BmrB,EAAW9+D,KAAK8+D,UAAY,GAC5B5lD,EAAOlZ,KAAKkZ,MAAQ,GACpBw/B,GAAO,EACPmmB,EAAQ,GAER7+D,KAAK04C,KACPA,EAAOsB,EAAOh6C,KAAK04C,KACV14C,KAAK24C,WACdD,EAAOsB,IAAuC,IAA/Bh6C,KAAK24C,SAASx6B,QAAQ,KACjCne,KAAK24C,SACL,IAAM34C,KAAK24C,SAAW,KACtB34C,KAAK44C,OACPF,GAAQ,IAAM14C,KAAK44C,OAInB54C,KAAK6+D,OACLsB,EAAAC,SAAcpgE,KAAK6+D,QACnBjgE,OAAOqB,KAAKD,KAAK6+D,OAAO79D,SAC1B69D,EAAQ+B,EAAAxwB,UAAsBpwC,KAAK6+D,QAGrC,IAAIpmB,EAASz4C,KAAKy4C,QAAWomB,GAAU,IAAMA,GAAW,GAsBxD,OApBIlrB,GAAoC,MAAxBA,EAASzuB,QAAO,KAAayuB,GAAY,KAIrD3zC,KAAK4+D,WACHjrB,GAAYksB,EAAgBlsB,MAAuB,IAAT+E,GAC9CA,EAAO,MAAQA,GAAQ,IACnBomB,GAAmC,MAAvBA,EAAS3/C,OAAO,KAAY2/C,EAAW,IAAMA,IACnDpmB,IACVA,EAAO,IAGLx/B,GAA2B,MAAnBA,EAAKiG,OAAO,KAAYjG,EAAO,IAAMA,GAC7Cu/B,GAA+B,MAArBA,EAAOt5B,OAAO,KAAYs5B,EAAS,IAAMA,GAOhD9E,EAAW+E,GALlBomB,EAAWA,EAAS52C,QAAO,SAAU,SAAS86B,GAC5C,OAAO6e,mBAAmB7e,E,MAE5BvK,EAASA,EAAOvwB,QAAQ,IAAK,QAEgBhP,C,EAO/CylD,EAAI5vD,UAAUqoC,QAAU,SAAS6qB,GAC/B,OAAOjiE,KAAKkiE,cAAclD,EAASiD,GAAU,GAAO,IAAOD,Q,EAQ7DrD,EAAI5vD,UAAUmzD,cAAgB,SAASD,GACrC,GAAI9B,EAAAE,SAAc4B,GAAW,CAC3B,IAAIE,EAAM,IAAIxD,EACdwD,EAAI5yB,MAAM0yB,GAAU,GAAO,GAC3BA,EAAWE,C,CAKb,IAFA,IAAI7hE,EAAS,IAAIq+D,EACbyD,EAAQxjE,OAAOqB,KAAKD,MACfqiE,EAAK,EAAGA,EAAKD,EAAMphE,OAAQqhE,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACjB/hE,EAAOgiE,GAAQtiE,KAAKsiE,E,CAQtB,GAHAhiE,EAAO4Y,KAAO+oD,EAAS/oD,KAGD,KAAlB+oD,EAASlD,KAEX,OADAz+D,EAAOy+D,KAAOz+D,EAAO0hE,SACd1hE,EAIT,GAAI2hE,EAASrD,UAAYqD,EAAStuB,SAAU,CAG1C,IADA,IAAI4uB,EAAQ3jE,OAAOqB,KAAKgiE,GACfO,EAAK,EAAGA,EAAKD,EAAMvhE,OAAQwhE,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACJ,aAATC,IACFniE,EAAOmiE,GAAQR,EAASQ,G,CAU5B,OANI5C,EAAgBv/D,EAAOqzC,WACvBrzC,EAAOq4C,WAAar4C,EAAOw+D,WAC7Bx+D,EAAO6vC,KAAO7vC,EAAOw+D,SAAW,KAGlCx+D,EAAOy+D,KAAOz+D,EAAO0hE,SACd1hE,C,CAGT,GAAI2hE,EAAStuB,UAAYsuB,EAAStuB,WAAarzC,EAAOqzC,SAAU,CAS9D,IAAKksB,EAAgBoC,EAAStuB,UAAW,CAEvC,IADA,IAAI1zC,EAAOrB,OAAOqB,KAAKgiE,GACdn3D,EAAI,EAAGA,EAAI7K,EAAKe,OAAQ8J,IAAK,CACpC,IAAI7E,EAAIhG,EAAK6K,GACbxK,EAAO2F,GAAKg8D,EAASh8D,E,CAGvB,OADA3F,EAAOy+D,KAAOz+D,EAAO0hE,SACd1hE,C,CAIT,GADAA,EAAOqzC,SAAWsuB,EAAStuB,SACtBsuB,EAASvpB,MAASknB,EAAiBqC,EAAStuB,UAS/CrzC,EAAOw+D,SAAWmD,EAASnD,aAT+B,CAE1D,IADA,IAAI4D,GAAWT,EAASnD,UAAY,IAAIn+D,MAAM,KACvC+hE,EAAQ1hE,UAAYihE,EAASvpB,KAAOgqB,EAAQ5rC,WAC9CmrC,EAASvpB,OAAMupB,EAASvpB,KAAO,IAC/BupB,EAAStpB,WAAUspB,EAAStpB,SAAW,IACzB,KAAf+pB,EAAQ,IAAWA,EAAQ/5B,QAAQ,IACnC+5B,EAAQ1hE,OAAS,GAAG0hE,EAAQ/5B,QAAQ,IACxCroC,EAAOw+D,SAAW4D,EAAQvhE,KAAK,I,CAWjC,GAPAb,EAAOm4C,OAASwpB,EAASxpB,OACzBn4C,EAAOu+D,MAAQoD,EAASpD,MACxBv+D,EAAOo4C,KAAOupB,EAASvpB,MAAQ,GAC/Bp4C,EAAO05C,KAAOioB,EAASjoB,KACvB15C,EAAOq4C,SAAWspB,EAAStpB,UAAYspB,EAASvpB,KAChDp4C,EAAOs4C,KAAOqpB,EAASrpB,KAEnBt4C,EAAOw+D,UAAYx+D,EAAOm4C,OAAQ,CACpC,IAAIryC,EAAI9F,EAAOw+D,UAAY,GACvB51D,EAAI5I,EAAOm4C,QAAU,GACzBn4C,EAAO6vC,KAAO/pC,EAAI8C,C,CAIpB,OAFA5I,EAAOs+D,QAAUt+D,EAAOs+D,SAAWqD,EAASrD,QAC5Ct+D,EAAOy+D,KAAOz+D,EAAO0hE,SACd1hE,C,CAGT,IAAIqiE,EAAeriE,EAAOw+D,UAA0C,MAA9Bx+D,EAAOw+D,SAAS3/C,OAAO,GACzDyjD,EACIX,EAASvpB,MACTupB,EAASnD,UAA4C,MAAhCmD,EAASnD,SAAS3/C,OAAO,GAElD0jD,EAAcD,GAAYD,GACXriE,EAAOo4C,MAAQupB,EAASnD,SACvCgE,EAAgBD,EAChBE,EAAUziE,EAAOw+D,UAAYx+D,EAAOw+D,SAASn+D,MAAM,MAAQ,GAE3DqiE,GADAN,EAAUT,EAASnD,UAAYmD,EAASnD,SAASn+D,MAAM,MAAQ,GACnDL,EAAOqzC,WAAaksB,EAAgBv/D,EAAOqzC,WA2B3D,GApBIqvB,IACF1iE,EAAOq4C,SAAW,GAClBr4C,EAAOs4C,KAAO,KACVt4C,EAAOo4C,OACU,KAAfqqB,EAAQ,GAAWA,EAAQ,GAAKziE,EAAOo4C,KACtCqqB,EAAQp6B,QAAQroC,EAAOo4C,OAE9Bp4C,EAAOo4C,KAAO,GACVupB,EAAStuB,WACXsuB,EAAStpB,SAAW,KACpBspB,EAASrpB,KAAO,KACZqpB,EAASvpB,OACQ,KAAfgqB,EAAQ,GAAWA,EAAQ,GAAKT,EAASvpB,KACxCgqB,EAAQ/5B,QAAQs5B,EAASvpB,OAEhCupB,EAASvpB,KAAO,MAElBmqB,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EAEFtiE,EAAOo4C,KAAOupB,EAAUvpB,MAA0B,KAAlBupB,EAASvpB,KAC3BupB,EAASvpB,KAAOp4C,EAAOo4C,KACrCp4C,EAAOq4C,SAAWspB,EAAUtpB,UAAkC,KAAtBspB,EAAStpB,SAC/BspB,EAAStpB,SAAWr4C,EAAOq4C,SAC7Cr4C,EAAOm4C,OAASwpB,EAASxpB,OACzBn4C,EAAOu+D,MAAQoD,EAASpD,MACxBkE,EAAUL,OAEL,GAAIA,EAAQ1hE,OAGZ+hE,IAASA,EAAU,IACxBA,EAAQn6B,MACRm6B,EAAUA,EAAQpmD,OAAO+lD,GACzBpiE,EAAOm4C,OAASwpB,EAASxpB,OACzBn4C,EAAOu+D,MAAQoD,EAASpD,WACnB,IAAKsB,EAAA8C,kBAAuBhB,EAASxpB,QAAS,CAInD,GAAIuqB,EACF1iE,EAAOq4C,SAAWr4C,EAAOo4C,KAAOqqB,EAAQjsC,SAIpCosC,KAAa5iE,EAAOo4C,MAAQp4C,EAAOo4C,KAAKv6B,QAAQ,KAAO,IAC1C7d,EAAOo4C,KAAK/3C,MAAM,QAEjCL,EAAO05C,KAAOkpB,EAAWpsC,QACzBx2B,EAAOo4C,KAAOp4C,EAAOq4C,SAAWuqB,EAAWpsC,SAW/C,OARAx2B,EAAOm4C,OAASwpB,EAASxpB,OACzBn4C,EAAOu+D,MAAQoD,EAASpD,MAEnBsB,EAAAgD,OAAY7iE,EAAOw+D,WAAcqB,EAAAgD,OAAY7iE,EAAOm4C,UACvDn4C,EAAO6vC,MAAQ7vC,EAAOw+D,SAAWx+D,EAAOw+D,SAAW,KACpCx+D,EAAOm4C,OAASn4C,EAAOm4C,OAAS,KAEjDn4C,EAAOy+D,KAAOz+D,EAAO0hE,SACd1hE,C,CAGT,IAAKyiE,EAAQ/hE,OAWX,OARAV,EAAOw+D,SAAW,KAEdx+D,EAAOm4C,OACTn4C,EAAO6vC,KAAO,IAAM7vC,EAAOm4C,OAE3Bn4C,EAAO6vC,KAAO,KAEhB7vC,EAAOy+D,KAAOz+D,EAAO0hE,SACd1hE,EAcT,IARA,IAAIwqB,EAAOi4C,EAAQ7hE,OAAM,GAAI,GACzBkiE,GACC9iE,EAAOo4C,MAAQupB,EAASvpB,MAAQqqB,EAAQ/hE,OAAS,KACxC,MAAT8pB,GAAyB,OAATA,IAA2B,KAATA,EAInCu4C,EAAK,EACAl/D,EAAI4+D,EAAQ/hE,OAAQmD,GAAK,EAAGA,IAEtB,OADb2mB,EAAOi4C,EAAQ5+D,IAEb4+D,EAAQzmD,OAAOnY,EAAG,GACA,OAAT2mB,GACTi4C,EAAQzmD,OAAOnY,EAAG,GAClBk/D,KACSA,IACTN,EAAQzmD,OAAOnY,EAAG,GAClBk/D,KAKJ,IAAKR,IAAeC,EAClB,KAAOO,IAAMA,EACXN,EAAQp6B,QAAQ,OAIhBk6B,GAA6B,KAAfE,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAG5jD,OAAO,IACpC4jD,EAAQp6B,QAAQ,IAGdy6B,GAAsD,MAAjCL,EAAQ5hE,KAAK,KAAK+jB,QAAO,IAChD69C,EAAQ9hE,KAAK,IAGf,IAUMiiE,EAVFI,EAA4B,KAAfP,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAG5jD,OAAO,GAGjC6jD,IACF1iE,EAAOq4C,SAAWr4C,EAAOo4C,KAAO4qB,EAAa,GACbP,EAAQ/hE,OAAS+hE,EAAQjsC,QAAU,IAI/DosC,KAAa5iE,EAAOo4C,MAAQp4C,EAAOo4C,KAAKv6B,QAAQ,KAAO,IAC1C7d,EAAOo4C,KAAK/3C,MAAM,QAEjCL,EAAO05C,KAAOkpB,EAAWpsC,QACzBx2B,EAAOo4C,KAAOp4C,EAAOq4C,SAAWuqB,EAAWpsC,UAyB/C,OArBA+rC,EAAaA,GAAeviE,EAAOo4C,MAAQqqB,EAAQ/hE,UAEhCsiE,GACjBP,EAAQp6B,QAAQ,IAGbo6B,EAAQ/hE,OAIXV,EAAOw+D,SAAWiE,EAAQ5hE,KAAK,MAH/Bb,EAAOw+D,SAAW,KAClBx+D,EAAO6vC,KAAO,MAMXgwB,EAAAgD,OAAY7iE,EAAOw+D,WAAcqB,EAAAgD,OAAY7iE,EAAOm4C,UACvDn4C,EAAO6vC,MAAQ7vC,EAAOw+D,SAAWx+D,EAAOw+D,SAAW,KACpCx+D,EAAOm4C,OAASn4C,EAAOm4C,OAAS,KAEjDn4C,EAAO05C,KAAOioB,EAASjoB,MAAQ15C,EAAO05C,KACtC15C,EAAOs+D,QAAUt+D,EAAOs+D,SAAWqD,EAASrD,QAC5Ct+D,EAAOy+D,KAAOz+D,EAAO0hE,SACd1hE,C,EAGTq+D,EAAI5vD,UAAUmyD,UAAY,WACxB,IAAIxoB,EAAO14C,KAAK04C,KACZE,EAAOsmB,EAAYyB,KAAKjoB,GACxBE,IAEW,OADbA,EAAOA,EAAK,MAEV54C,KAAK44C,KAAOA,EAAK1zB,OAAO,IAE1BwzB,EAAOA,EAAKxzB,OAAO,EAAGwzB,EAAK13C,OAAS43C,EAAK53C,SAEvC03C,IAAM14C,KAAK24C,SAAWD,E,oDCztB1B,SAAS6qB,GAGV,IAAIC,EAAczkE,IAChBA,EAAQ0kE,UAAY1kE,EAClB2kE,EAAa5kE,IACfA,EAAO2kE,UAAY3kE,EACjB6kE,EAA8B,iBAAVhoD,gBAAsBA,eAE7CgoD,EAAWhsB,SAAWgsB,GACtBA,EAAWjwC,SAAWiwC,GACtBA,EAAWpqD,OAASoqD,IAEpBJ,EAAOI,GAQR,IAAIC,EAiCJnjE,EA9BAojE,EAAS,WAGT5rD,EAAO,GAUP6rD,EAAa,QACbC,EAAa,eACbC,EAAe,4BAGfC,EAAS,CACRC,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBAKlBl5D,EAAQD,KAAKC,MACbm5D,EAAqB5/C,OAAOoC,aAa5B,SAAS/G,EAAMF,GACd,MAAMzB,WAAWgmD,EAAOvkD,G,CAWzB,SAASO,EAAIzC,EAAOnE,GAGnB,IAFA,IAAIrY,EAASwc,EAAMxc,OACfV,EAAS,GACNU,KACNV,EAAOU,GAAUqY,EAAGmE,EAAMxc,IAE3B,OAAOV,C,CAaR,SAAS8jE,EAAUllD,EAAQ7F,GAC1B,IAAI3Y,EAAQwe,EAAOve,MAAM,KACrBL,EAAS,GAWb,OAVII,EAAMM,OAAS,IAGlBV,EAASI,EAAM,GAAK,IACpBwe,EAASxe,EAAM,IAMTJ,EADO2f,GAFdf,EAASA,EAAOgJ,QAAQ87C,EAAiB,MACrBrjE,MAAM,KACA0Y,GAAIlY,KAAK,I,CAiBpC,SAASkjE,EAAWnlD,GAMnB,IALA,IAGIlgB,EACAslE,EAJA5yC,EAAS,GACT6yC,EAAU,EACVvjE,EAASke,EAAOle,OAGbujE,EAAUvjE,IAChBhC,EAAQkgB,EAAOqG,WAAWg/C,OACb,OAAUvlE,GAAS,OAAUulE,EAAUvjE,EAG3B,QAAX,OADbsjE,EAAQplD,EAAOqG,WAAWg/C,OAEzB7yC,EAAOzwB,OAAe,KAARjC,IAAkB,KAAe,KAARslE,GAAiB,QAIxD5yC,EAAOzwB,KAAKjC,GACZulE,KAGD7yC,EAAOzwB,KAAKjC,GAGd,OAAO0yB,C,CAWR,SAAS8yC,EAAWhnD,GACnB,OAAOyC,EAAIzC,GAAO,SAASxe,GAC1B,IAAI0yB,EAAS,GAOb,OANI1yB,EAAQ,QAEX0yB,GAAUyyC,GADVnlE,GAAS,SAC8B,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElB0yB,GAAUyyC,EAAmBnlE,E,IAE3BmC,KAAK,G,CAoCT,SAASsjE,EAAaC,EAAOC,GAG5B,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,E,CAQzD,SAASC,EAAM/iC,EAAOgjC,EAAWC,GAChC,IAAI7+D,EAAI,EAGR,IAFA47B,EAAQijC,EAAY95D,EAAM62B,EA1LpB,KA0LoCA,GAAS,EACnDA,GAAS72B,EAAM62B,EAAQgjC,GACOhjC,EAAQkjC,IAA2B9+D,GAAKgS,EACrE4pB,EAAQ72B,EAAM62B,EA3KA5pB,IA6Kf,OAAOjN,EAAM/E,EAAI,GAAsB47B,GAASA,EAhM1C,I,CA0MP,SAAS7lB,EAAOoT,GAEf,IAEIrpB,EAIAi/D,EACA35D,EACAuoB,EACAqxC,EACAvwC,EACAzuB,EACAy+D,EACAv5D,EAEA+5D,EArEiB/+C,EAsDjBuL,EAAS,GACTyzC,EAAc/1C,EAAMpuB,OAEpBmD,EAAI,EACJuB,EA7MM,IA8MN0/D,EA/MS,GAoOb,KALAJ,EAAQ51C,EAAMlL,YA7NH,MA8NC,IACX8gD,EAAQ,GAGJ35D,EAAI,EAAGA,EAAI25D,IAAS35D,EAEpB+jB,EAAM7J,WAAWla,IAAM,KAC1BuU,EAAM,aAEP8R,EAAOzwB,KAAKmuB,EAAM7J,WAAWla,IAM9B,IAAKuoB,EAAQoxC,EAAQ,EAAIA,EAAQ,EAAI,EAAGpxC,EAAQuxC,GAAwC,CAOvF,IAAKF,EAAO9gE,EAAGuwB,EAAI,EAAGzuB,EAAIgS,EAErB2b,GAASuxC,GACZvlD,EAAM,mBAGP8kD,GAxGmBv+C,EAwGEiJ,EAAM7J,WAAWqO,MAvGxB,GAAK,GACbzN,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEblO,IAgGQA,GAAQysD,EAAQ15D,GAAO64D,EAAS1/D,GAAKuwB,KACjD9U,EAAM,YAGPzb,GAAKugE,EAAQhwC,IAGTgwC,GAFJv5D,EAAIlF,GAAKm/D,EAvQL,EAuQoBn/D,GAAKm/D,EAtQzB,MAsQ8Cn/D,EAAIm/D,IAbHn/D,GAAKgS,EAoBpDyc,EAAI1pB,EAAM64D,GADdqB,EAAajtD,EAAO9M,KAEnByU,EAAM,YAGP8U,GAAKwwC,EAKNE,EAAOR,EAAMzgE,EAAI8gE,EADjBl/D,EAAM2rB,EAAO1wB,OAAS,EACc,GAARikE,GAIxBj6D,EAAM7G,EAAI4B,GAAO89D,EAASn+D,GAC7Bka,EAAM,YAGPla,GAAKsF,EAAM7G,EAAI4B,GACf5B,GAAK4B,EAGL2rB,EAAOpV,OAAOnY,IAAK,EAAGuB,E,CAIvB,OAAO8+D,EAAW9yC,E,CAUnB,SAAS3V,EAAOqT,GACf,IAAI1pB,EACAm8B,EACAwjC,EACAC,EACAF,EACA/5D,EACAzC,EACAsC,EACAjF,EACAkF,EACAo6D,EAGAJ,EAEAK,EACAN,EACAO,EANA/zC,EAAS,GAoBb,IARAyzC,GAHA/1C,EAAQi1C,EAAWj1C,IAGCpuB,OAGpB0E,EAvUU,IAwUVm8B,EAAQ,EACRujC,EA1Ua,GA6UR/5D,EAAI,EAAGA,EAAI85D,IAAe95D,GAC9Bk6D,EAAen2C,EAAM/jB,IACF,KAClBqmB,EAAOzwB,KAAKkjE,EAAmBoB,IAejC,IAXAF,EAAiBC,EAAc5zC,EAAO1wB,OAMlCskE,GACH5zC,EAAOzwB,KAzVG,KA6VJokE,EAAiBF,GAAa,CAIpC,IAAKv8D,EAAIi7D,EAAQx4D,EAAI,EAAGA,EAAI85D,IAAe95D,GAC1Ck6D,EAAen2C,EAAM/jB,KACD3F,GAAK6/D,EAAe38D,IACvCA,EAAI28D,GAcN,IAPI38D,EAAIlD,EAAIsF,GAAO64D,EAAShiC,IAD5B2jC,EAAwBH,EAAiB,KAExCzlD,EAAM,YAGPiiB,IAAUj5B,EAAIlD,GAAK8/D,EACnB9/D,EAAIkD,EAECyC,EAAI,EAAGA,EAAI85D,IAAe95D,EAO9B,IANAk6D,EAAen2C,EAAM/jB,IAEF3F,KAAOm8B,EAAQgiC,GACjCjkD,EAAM,YAGH2lD,GAAgB7/D,EAAG,CAEtB,IAAKwF,EAAI22B,EAAO57B,EAAIgS,IAEf/M,GADJC,EAAIlF,GAAKm/D,EAlYP,EAkYsBn/D,GAAKm/D,EAjY3B,MAiYgDn/D,EAAIm/D,IADTn/D,GAAKgS,EAKlDwtD,EAAUv6D,EAAIC,EACd+5D,EAAajtD,EAAO9M,EACpBumB,EAAOzwB,KACNkjE,EAAmBM,EAAat5D,EAAIs6D,EAAUP,EAAY,KAE3Dh6D,EAAIF,EAAMy6D,EAAUP,GAGrBxzC,EAAOzwB,KAAKkjE,EAAmBM,EAAav5D,EAAG,KAC/Ck6D,EAAOR,EAAM/iC,EAAO2jC,EAAuBH,GAAkBC,GAC7DzjC,EAAQ,IACNwjC,C,GAIFxjC,IACAn8B,C,CAGH,OAAOgsB,EAAOvwB,KAAK,G,CAuEpB,GA3BAyiE,EAAW,CAMVjkB,QAAW,QAQX+lB,KAAQ,CACP1pD,OAAUqoD,EACVtoD,OAAUyoD,GAEXxoD,OAAUA,EACVD,OAAUA,EACV2lD,QA/BD,SAAiBtyC,GAChB,OAAOg1C,EAAUh1C,GAAO,SAASlQ,GAChC,OAAO6kD,EAAc4B,KAAKzmD,GACvB,OAASnD,EAAOmD,GAChBA,C,KA4BJ0mD,UAnDD,SAAmBx2C,GAClB,OAAOg1C,EAAUh1C,GAAO,SAASlQ,GAChC,OAAO4kD,EAAc6B,KAAKzmD,GACvBlD,EAAOkD,EAAOhe,MAAM,GAAGkB,eACvB8c,C,MAsDa,mBAAV2mD,QACc,iBAAdA,OAAOC,KACdD,OAAOC,IAEPD,OAAO,YAAY,WAClB,OAAOjC,C,SAEF,GAAIJ,GAAeE,EACzB,GAAI5kE,EAAOC,SAAWykE,EACrBE,EAAW3kE,QAAU6kE,OAErB,IAAKnjE,KAAOmjE,EACXA,EAASxoD,eAAe3a,KAAS+iE,EAAY/iE,GAAOmjE,EAASnjE,SAI/D8iE,EAAKK,SAAWA,CAGjB,CAhhBC,CAghBA5jE,K,kDC/gBFlB,EAAAC,QAAiB,CACfshE,SAAU,SAASn/C,GACjB,MAAuB,iBAATA,C,EAEhBk/C,SAAU,SAASl/C,GACjB,MAAuB,iBAATA,GAA6B,OAARA,C,EAErCiiD,OAAQ,SAASjiD,GACf,OAAe,OAARA,C,EAET+hD,kBAAmB,SAAS/hD,GAC1B,OAAc,MAAPA,C,oDCXX,IAAiB6kD,EACAC,E,0KADAD,EAAgBhkE,cAAA,SAChBikE,EAAoBjkE,cAAA,Q,kDCuBrC,SAASkkE,EAAepmD,EAAKoyB,GAC3B,OAAOrzC,OAAOmQ,UAAUqM,eAAeC,KAAKwE,EAAKoyB,E,CAGnDnzC,EAAAC,QAAiB,SAASmnE,EAAIC,EAAKxjC,EAAIuG,GACrCi9B,EAAMA,GAAO,IACbxjC,EAAKA,GAAM,IACX,IAAI9iB,EAAM,GAEV,GAAkB,iBAAPqmD,GAAiC,IAAdA,EAAGllE,OAC/B,OAAO6e,EAGT,IAAIumD,EAAM,MACVF,EAAKA,EAAGvlE,MAAMwlE,GAEd,IAAIE,EAAU,IACVn9B,GAAsC,iBAApBA,EAAQm9B,UAC5BA,EAAUn9B,EAAQm9B,SAGpB,IAAIxnD,EAAMqnD,EAAGllE,OAETqlE,EAAU,GAAKxnD,EAAMwnD,IACvBxnD,EAAMwnD,GAGR,IAAK,IAAIliE,EAAI,EAAGA,EAAI0a,IAAO1a,EAAG,CAC5B,IAEImiE,EAAMC,EAAMtgE,EAAG6E,EAFf3F,EAAI+gE,EAAG/hE,GAAG+jB,QAAQk+C,EAAQ,OAC1BjmD,EAAMhb,EAAEgZ,QAAQwkB,GAGhBxiB,GAAO,GACTmmD,EAAOnhE,EAAE+f,OAAO,EAAG/E,GACnBomD,EAAOphE,EAAE+f,OAAO/E,EAAM,KAEtBmmD,EAAOnhE,EACPohE,EAAO,IAGTtgE,EAAIg7D,mBAAmBqF,GACvBx7D,EAAIm2D,mBAAmBsF,GAElBN,EAAepmD,EAAK5Z,GAEdugE,EAAQ3mD,EAAI5Z,IACrB4Z,EAAI5Z,GAAGhF,KAAK6J,GAEZ+U,EAAI5Z,GAAK,CAAC4Z,EAAI5Z,GAAI6E,GAJlB+U,EAAI5Z,GAAK6E,C,CAQb,OAAO+U,C,EAGT,IAAI2mD,EAAU3lE,MAAM8hB,SAAW,SAAUonC,GACvC,MAA8C,mBAAvCnrD,OAAOmQ,UAAU7O,SAASmb,KAAK0uC,E,mDC3DxC,IAAI0c,EAAqB,SAAS37D,GAChC,cAAeA,GACb,IAAK,SACH,OAAOA,EAET,IAAK,UACH,OAAOA,EAAI,OAAS,QAEtB,IAAK,SACH,OAAO2d,SAAS3d,GAAKA,EAAI,GAE3B,QACE,MAAO,G,EAIbhM,EAAAC,QAAiB,SAAS8gB,EAAKsmD,EAAKxjC,EAAI5iB,GAOtC,OANAomD,EAAMA,GAAO,IACbxjC,EAAKA,GAAM,IACC,OAAR9iB,IACFA,OAAMtF,GAGW,iBAARsF,EACF6mD,EAAIC,EAAW9mD,IAAM,SAAS5Z,GACnC,IAAI2gE,EAAK/E,mBAAmB4E,EAAmBxgE,IAAM08B,EACrD,OAAIkkC,EAAQhnD,EAAI5Z,IACPygE,EAAI7mD,EAAI5Z,IAAI,SAAS6E,GAC1B,OAAO87D,EAAK/E,mBAAmB4E,EAAmB37D,G,IACjD3J,KAAKglE,GAEDS,EAAK/E,mBAAmB4E,EAAmB5mD,EAAI5Z,I,IAEvD9E,KAAKglE,GAILpmD,EACE8hD,mBAAmB4E,EAAmB1mD,IAAS4iB,EAC/Ck/B,mBAAmB4E,EAAmB5mD,IAF3B,E,EAKpB,IAAIgnD,EAAUhmE,MAAM8hB,SAAW,SAAUonC,GACvC,MAA8C,mBAAvCnrD,OAAOmQ,UAAU7O,SAASmb,KAAK0uC,E,EAGxC,SAAS2c,EAAK3c,EAAIv7C,GAChB,GAAIu7C,EAAG9pC,IAAK,OAAO8pC,EAAG9pC,IAAIzR,GAE1B,IADA,IAAIyX,EAAM,GACD9hB,EAAI,EAAGA,EAAI4lD,EAAG/oD,OAAQmD,IAC7B8hB,EAAIhlB,KAAKuN,EAAEu7C,EAAG5lD,GAAIA,IAEpB,OAAO8hB,C,CAGT,IAAI0gD,EAAa/nE,OAAOqB,MAAQ,SAAU4f,GACxC,IAAIoG,EAAM,GACV,IAAK,IAAIxlB,KAAOof,EACVjhB,OAAOmQ,UAAUqM,eAAeC,KAAKwE,EAAKpf,IAAMwlB,EAAIhlB,KAAKR,GAE/D,OAAOwlB,C,mDCnFT,IAAA6gD,EAAA/kE,cAAA,S,yBAGIglE,EAAQjoE,EAAAC,QAEZ,IAAK,IAAIioE,KAAOF,EACVA,EAAK1rD,eAAe4rD,KAAMD,EAAMC,GAAOF,EAAKE,IAalD,SAASC,EAAgB/1B,GAOvB,GANsB,iBAAXA,IACTA,EAASmH,EAAA9I,MAAU2B,IAEhBA,EAAOyC,WACVzC,EAAOyC,SAAW,UAEI,WAApBzC,EAAOyC,SACT,MAAM,IAAIrxC,MAAM,aAAe4uC,EAAOyC,SAAW,sCAEnD,OAAOzC,C,CApBT61B,EAAMh2B,QAAU,SAAUG,EAAQkH,GAEhC,OADAlH,EAAS+1B,EAAe/1B,GACjB41B,EAAK/1B,QAAQ11B,KAAKrb,KAAMkxC,EAAQkH,E,EAGzC2uB,EAAMznE,IAAM,SAAU4xC,EAAQkH,GAE5B,OADAlH,EAAS+1B,EAAe/1B,GACjB41B,EAAKxnE,IAAI+b,KAAKrb,KAAMkxC,EAAQkH,E,mDCfrCx5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQsvC,aAAevvC,EAAAC,QAAQuvC,WAAaxvC,EAAAC,QAAQmoE,kBAAoBpoE,EAAAC,QAAQooE,yBAAsB,EACtG,MAAMC,UAA4B9kE,MAC9BlB,cACIC,MAAM,oH,EAGdvC,EAAAC,QAAQooE,oBAAsBC,EAC9B,MAAMC,UAA0B/kE,MAC5BlB,YAAYkmE,EAASC,EAASC,GAC1BnmE,MAAM,YAAYkmE,UAAgBD,yBAA+Bh4B,KAAKc,UAAUo3B,M,EAGxF1oE,EAAAC,QAAQmoE,kBAAoBG,EAC5B,MAAMI,UAAmBnlE,MACrBlB,YAAYqC,EAASic,EAAMkvC,GACvBvtD,MAAMoC,GACNzD,KAAK0f,KAAOA,GAAQ,eACpB1f,KAAK4uD,QAAUA,C,EAGvB9vD,EAAAC,QAAQuvC,WAAam5B,EAMrB3oE,EAAAC,QAAQsvC,aALR,MACIjtC,YAAYsmE,GACR1nE,KAAK0nE,gBAAkBA,C,oDCxB/B,IAAIC,EAAkB7oE,EAACC,SAAQD,EAAAC,QAAKqb,kBAAqBxb,OAAOyb,OAAU,SAASlU,EAAGyC,EAAG3C,EAAGqU,QAC7EC,IAAPD,IAAkBA,EAAKrU,GAC3BrH,OAAOC,eAAesH,EAAGmU,EAAI,CAAEjb,YAAY,EAAMC,IAAK,WAAa,OAAOsJ,EAAE3C,E,KAC1E,SAASE,EAAGyC,EAAG3C,EAAGqU,QACTC,IAAPD,IAAkBA,EAAKrU,GAC3BE,EAAEmU,GAAM1R,EAAE3C,E,GAEV2hE,EAAqB9oE,EAACC,SAAQD,EAAAC,QAAK0b,qBAAwB7b,OAAOyb,OAAU,SAASlU,EAAG2E,GACxFlM,OAAOC,eAAesH,EAAG,UAAW,CAAE9G,YAAY,EAAML,MAAO8L,G,EAC9D,SAAS3E,EAAG2E,GACb3E,EAAW,QAAI2E,C,GAEf+8D,EAAe/oE,EAACC,SAAQD,EAAAC,QAAKoc,cAAiB,SAAU3Z,GACxD,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAIlB,EAAS,GACb,GAAW,MAAPkB,EAAa,IAAK,IAAIyE,KAAKzE,EAAe,YAANyE,GAAmBrH,OAAOwc,eAAeC,KAAK7Z,EAAKyE,IAAI0hE,EAAgBrnE,EAAQkB,EAAKyE,GAE5H,OADA2hE,EAAmBtnE,EAAQkB,GACpBlB,C,EAEPwnE,EAAehpE,EAACC,SAAQD,EAAAC,QAAKgpE,cAAiB,SAASn/D,EAAG7J,GAC1D,IAAK,IAAIqH,KAAKwC,EAAa,YAANxC,GAAoBrH,EAAQqc,eAAehV,IAAIuhE,EAAgB5oE,EAAS6J,EAAGxC,E,EAEhG4hE,EAAkBlpE,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQuxC,6BAA+BxxC,EAAAC,QAAQkpE,YAAcnpE,EAAAC,QAAQmpE,iBAAmBppE,EAAAC,QAAQ4yC,mBAAgB,EAChH,MAAMw2B,EAAaH,EAAgBjmE,cAAA,UAC7BqmE,EAA0BJ,EAAgBjmE,cAAA,UAC1CsmE,EAAwBL,EAAgBjmE,cAAA,UACxCumE,EAAWT,EAAa9lE,cAAA,UAE9B+lE,EAAa/lE,cAAA,SAAyCjD,EAAAC,SACtD,MAAMwpE,UAA+BxmE,cAAA,SAAAk0C,aAErC,SAASuyB,EAAcC,GACnB,MAAMnoE,EAAS,GACTooE,EAAiBC,EAAYF,EAAUL,EAAwB1mE,QAAQ2d,OAAQ/e,EAAQ,IAEvFsf,EAAQ,IAAI0oD,EAASI,GAAgBE,EAAYF,EAAgBpoE,GAASooE,GAEhF,OADA9pE,OAAOiqE,OAAOjpD,EAAOtf,GACdsf,C,CAaX,SAASgpD,EAAYF,EAAgBI,GACjC,MAA6D,iBAAlDT,EAAsB3mE,QAAQgnE,GAC9BP,EAAWzmE,QAAQqnE,OAAOV,EAAsB3mE,QAAQgnE,GAAiBI,GAE7Ex5B,KAAKc,UAAU04B,E,CAU1B,SAASH,EAAYF,EAAUppD,EAAQ/e,EAAQ0oE,GAC3C,IAAIppD,EACAF,EACAupD,EACJ,IAAK,MAAMC,KAAa7pD,EAAQ,CAC5B,GA2DU3Z,EA3DG+iE,EAASS,GA4DmB,oBAAtCtqE,OAAOmQ,UAAU7O,SAASmb,KAAK3V,GA1D9B,OAAO+iE,EAASS,GAEpB,GAAIC,EAASV,EAASS,IAClBtpD,EAAQ6oD,EAASS,GACjBxpD,EAAOL,EAAO6pD,GACdD,EAAgBC,MAEf,KAAIC,EAASV,EAAShpD,QAAS0pD,EAASV,EAAShpD,KAAKypD,IAMvD,SALAtpD,EAAQ6oD,EAAShpD,KAAKypD,GACtBxpD,EAAOL,EAAO6pD,GACdD,EAAgBC,CAGhB,C,CA4CZ,IAAkBxjE,EAzCd,GAAIka,GAASF,EAAM,CACf,IAAK,MAAMuyB,KAAQrzC,OAAOqB,KAAKyf,EAAKw1B,OAChC50C,EAAO2xC,GAAQryB,EAAMqyB,GAEzB,OAAO02B,EAAY/oD,EAAOP,EAAQ/e,EAAQ2oE,E,CAK1C,OADA3oE,EAAOmf,KAAOgpD,EACPO,C,CAyBf,SAASG,EAASzjE,GACd,MAA6C,oBAAtC9G,OAAOmQ,UAAU7O,SAASmb,KAAK3V,E,CAnF1C5G,EAAAC,QAAQ4yC,cAAgB62B,EAUxB1pE,EAAAC,QAAQmpE,iBATR,SAA0B5nE,GACtB,MAAM8oE,EAAeZ,EAAcloE,EAAO6uC,OAAOk6B,SAC3CC,EAAkB,IAAIf,EAK5B,OAJA3pE,OAAOiqE,OAAOS,EAAiBF,GAC/BE,EAAgB5pD,KAAO0pD,EAAa1pD,KACpC4pD,EAAgB7lE,QAAU2lE,EAAa3lE,QACvC6lE,EAAgBC,oBAAsBjpE,EAAOipE,oBACtCD,C,EASXxqE,EAAAC,QAAQkpE,YAAcW,EA4DtB9pE,EAAAC,QAAQuxC,6BAjBR,SAAsCsB,GAElC,QAAQ,GACJ,IAAK,6CAA6C+zB,KAAK/zB,GAEvD,IAAK,8BAA8B+zB,KAAK/zB,GACpC,MAAO,sBACX,IAAK,gDAAgD+zB,KAAK/zB,GACtD,MAAO,wBACX,IAAK,0FAA0F+zB,KAAK/zB,GAChG,MAAO,mBACX,IAAK,6EAA6E+zB,KAAK/zB,GACnF,MAAO,eACX,QACI,MAAO,e,mDClHjB9yC,EAAAC,QAH+DD,EAAAC,QAGxD;;;;;AAOP,IAAIyqE,EAAiB5qE,OAAOmQ,UAAU7O,SAClCyiB,EAAU9hB,MAAM8hB,SAAW,SAA0BusC,GACvD,MAAuC,mBAAhCsa,EAAenuD,KAAK6zC,E,EAG7B,SAASua,EAAYva,GACnB,MAAyB,mBAAXA,C,CAOhB,SAASwa,EAAS7pD,GAChB,OAAO8C,EAAQ9C,GAAO,eAAiBA,C,CAGzC,SAAS8pD,EAAczqD,GACrB,OAAOA,EAAOgJ,QAAO,8BAAgC,O,CAOvD,SAAS0hD,EAAa/pD,EAAKgqD,GACzB,OAAc,MAAPhqD,GAA8B,iBAARA,GAAqBgqD,KAAYhqD,C,CAOhE,SAASiqD,EAAyBC,EAAWF,GAC3C,OACe,MAAbE,GACwB,iBAAdA,GACPA,EAAU3uD,gBACV2uD,EAAU3uD,eAAeyuD,E,CAMhC,IAAIG,EAAaC,OAAOl7D,UAAU42D,KAClC,SAASuE,EAAYjtC,EAAI/d,GACvB,OAAO8qD,EAAW3uD,KAAK4hB,EAAI/d,E,CAG7B,IAAIirD,EAAU,KACd,SAASC,EAAclrD,GACrB,OAAQgrD,EAAWC,EAAYjrD,E,CAGjC,IAAImrD,EAAY,CACd,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,UAGP,SAASC,EAAYprD,GACnB,OAAOqF,OAAOrF,GAAQgJ,QAAO,gBAAiB,SAAwBhf,GACpE,OAAOmhE,EAAUnhE,E,IAIrB,IAAIqhE,EAAO,MACPC,EAAO,MACPC,EAAQ,OACRC,EAAO,QACPC,EAAK,qBA4BT,SAASC,EAAeC,EAAUC,GAChC,IAAKD,EACH,MAAO,GACT,IAuBIE,EAAcC,EAAcC,EAvB5BC,GAAkB,EAClBC,EAAW,GACX5iC,EAAS,GACT6iC,EAAS,GACTC,GAAS,EACTC,GAAW,EACXC,EAAc,GACdC,EAAW,EAIf,SAASC,IACP,GAAIJ,IAAWC,EACb,KAAOF,EAAOpqE,eACLunC,EAAO6iC,EAAOxiC,YAEvBwiC,EAAS,GAGXC,GAAS,EACTC,GAAW,C,CAIb,SAASI,EAAaC,GAIpB,GAH6B,iBAAlBA,IACTA,EAAgBA,EAAchrE,MAAM6pE,EAAS,KAE1C7nD,EAAQgpD,IAA2C,IAAzBA,EAAc3qE,OAC3C,MAAM,IAAIsB,MAAM,iBAAmBqpE,GAErCZ,EAAe,IAAId,OAAON,EAAagC,EAAc,IAAM,QAC3DX,EAAe,IAAIf,OAAO,OAASN,EAAagC,EAAc,KAC9DV,EAAiB,IAAIhB,OAAO,OAASN,EAAa,IAAMgC,EAAc,I,CAGxED,EAAYZ,GAAQc,EAASd,MAK7B,IAHA,IAEIznD,EAAO3D,EAAM1gB,EAAO6sE,EAAKnjC,EAAOojC,EAFhCC,EAAU,IAAIC,EAAQnB,IAGlBkB,EAAQE,OAAO,CAMrB,GALA5oD,EAAQ0oD,EAAQ93D,IAGhBjV,EAAQ+sE,EAAQG,UAAUnB,GAGxB,IAAK,IAAI5mE,EAAI,EAAGgoE,EAAcntE,EAAMgC,OAAQmD,EAAIgoE,IAAehoE,EAGzDimE,EAFJyB,EAAM7sE,EAAMmgB,OAAOhb,KAGjBinE,EAAOnqE,KAAKsnC,EAAOvnC,QACnBuqE,GAAeM,IAEfP,GAAW,EACXJ,GAAkB,EAClBK,GAAe,KAGjBhjC,EAAOtnC,KAAK,CAAE,OAAQ4qE,EAAKxoD,EAAOA,EAAQ,IAC1CA,GAAS,EAGG,OAARwoD,IACFJ,IACAF,EAAc,GACdC,EAAW,EACXN,GAAkB,GAMxB,IAAKa,EAAQK,KAAKrB,GAChB,MAuBF,GArBAM,GAAS,EAGT3rD,EAAOqsD,EAAQK,KAAKzB,IAAU,OAC9BoB,EAAQK,KAAK7B,GAGA,MAAT7qD,GACF1gB,EAAQ+sE,EAAQG,UAAUzB,GAC1BsB,EAAQK,KAAK3B,GACbsB,EAAQG,UAAUlB,IACA,MAATtrD,GACT1gB,EAAQ+sE,EAAQG,UAAUjB,GAC1Bc,EAAQK,KAAK1B,GACbqB,EAAQG,UAAUlB,GAClBtrD,EAAO,KAEP1gB,EAAQ+sE,EAAQG,UAAUlB,IAIvBe,EAAQK,KAAKpB,GAChB,MAAM,IAAI1oE,MAAM,mBAAqBypE,EAAQ93D,KAU/C,GAPEy0B,EADU,KAARhpB,EACM,CAAEA,EAAM1gB,EAAOqkB,EAAO0oD,EAAQ93D,IAAKs3D,EAAaC,EAAUN,GAE1D,CAAExrD,EAAM1gB,EAAOqkB,EAAO0oD,EAAQ93D,KAExCu3D,IACAjjC,EAAOtnC,KAAKynC,GAEC,MAAThpB,GAAyB,MAATA,EAClByrD,EAASlqE,KAAKynC,QACT,GAAa,MAAThpB,EAAc,CAIvB,KAFAosD,EAAcX,EAASviC,OAGrB,MAAM,IAAItmC,MAAM,qBAAuBtD,EAAQ,QAAUqkB,GAE3D,GAAIyoD,EAAY,KAAO9sE,EACrB,MAAM,IAAIsD,MAAM,qBAAuBwpE,EAAY,GAAK,QAAUzoD,E,KAClD,SAAT3D,GAA4B,MAATA,GAAyB,MAATA,EAC5C4rD,GAAW,EACO,MAAT5rD,GAETgsD,EAAY1sE,E,CAShB,GALAysE,IAGAK,EAAcX,EAASviC,MAGrB,MAAM,IAAItmC,MAAM,qBAAuBwpE,EAAY,GAAK,QAAUC,EAAQ93D,KAE5E,OAAOo4D,EAAWC,EAAa/jC,G,CAOjC,SAAS+jC,EAAc/jC,GAIrB,IAHA,IAEIG,EAAO6jC,EAFPC,EAAiB,GAGZroE,EAAI,EAAGsoE,EAAYlkC,EAAOvnC,OAAQmD,EAAIsoE,IAAatoE,GAC1DukC,EAAQH,EAAOpkC,MAGI,SAAbukC,EAAM,IAAiB6jC,GAA8B,SAAjBA,EAAU,IAChDA,EAAU,IAAM7jC,EAAM,GACtB6jC,EAAU,GAAK7jC,EAAM,KAErB8jC,EAAevrE,KAAKynC,GACpB6jC,EAAY7jC,IAKlB,OAAO8jC,C,CAST,SAASH,EAAY9jC,GAMnB,IALA,IAIIG,EAJAgkC,EAAe,GACfC,EAAYD,EACZvB,EAAW,GAGNhnE,EAAI,EAAGsoE,EAAYlkC,EAAOvnC,OAAQmD,EAAIsoE,IAAatoE,EAG1D,QAFAukC,EAAQH,EAAOpkC,IAED,IACZ,IAAK,IACL,IAAK,IACHwoE,EAAU1rE,KAAKynC,GACfyiC,EAASlqE,KAAKynC,GACdikC,EAAYjkC,EAAM,GAAK,GACvB,MACF,IAAK,IACOyiC,EAASviC,MACX,GAAKF,EAAM,GACnBikC,EAAYxB,EAASnqE,OAAS,EAAImqE,EAASA,EAASnqE,OAAS,GAAG,GAAK0rE,EACrE,MACF,QACEC,EAAU1rE,KAAKynC,GAIrB,OAAOgkC,C,CAOT,SAASV,EAAS9sD,GAChBlf,KAAKkf,OAASA,EACdlf,KAAK+vD,KAAO7wC,EACZlf,KAAKiU,IAAM,C,CAyDb,SAAS24D,EAASC,EAAMC,GACtB9sE,KAAK6sE,KAAOA,EACZ7sE,KAAK+sE,MAAQ,CAAE,IAAK/sE,KAAK6sE,MACzB7sE,KAAKgtE,OAASF,C,CAuGhB,SAASG,IACPjtE,KAAKktE,cAAgB,CACnBC,OAAQ,GACRzlD,IAAK,SAAcjnB,EAAKzB,GACtBgB,KAAKmtE,OAAO1sE,GAAOzB,C,EAErBM,IAAK,SAAcmB,GACjB,OAAOT,KAAKmtE,OAAO1sE,E,EAErByrC,MAAO,WACLlsC,KAAKmtE,OAAS,E,GAvKpBnB,EAAQj9D,UAAUk9D,IAAM,WACtB,MAAqB,KAAdjsE,KAAK+vD,I,EAOdic,EAAQj9D,UAAUq9D,KAAO,SAAenvC,GACtC,IAAI+lB,EAAQhjD,KAAK+vD,KAAK/M,MAAM/lB,GAE5B,IAAK+lB,GAAyB,IAAhBA,EAAMpvB,MAClB,MAAO,GAET,IAAI1U,EAAS8jC,EAAM,GAKnB,OAHAhjD,KAAK+vD,KAAO/vD,KAAK+vD,KAAKpkB,UAAUzsB,EAAOle,QACvChB,KAAKiU,KAAOiL,EAAOle,OAEZke,C,EAOT8sD,EAAQj9D,UAAUm9D,UAAY,SAAoBjvC,GAChD,IAAkC+lB,EAA9BpvB,EAAQ5zB,KAAK+vD,KAAKtX,OAAOxb,GAE7B,OAAQrJ,GACN,KAAK,EACHovB,EAAQhjD,KAAK+vD,KACb/vD,KAAK+vD,KAAO,GACZ,MACF,KAAK,EACH/M,EAAQ,GACR,MACF,QACEA,EAAQhjD,KAAK+vD,KAAKpkB,UAAU,EAAG/X,GAC/B5zB,KAAK+vD,KAAO/vD,KAAK+vD,KAAKpkB,UAAU/X,GAKpC,OAFA5zB,KAAKiU,KAAO+uC,EAAMhiD,OAEXgiD,C,EAiBT4pB,EAAQ79D,UAAU9N,KAAO,SAAe4rE,GACtC,OAAO,IAAID,EAAQC,EAAM7sE,K,EAO3B4sE,EAAQ79D,UAAUq+D,OAAS,SAAiBrtD,GAC1C,IAEI/gB,EAFA+tE,EAAQ/sE,KAAK+sE,MAGjB,GAAIA,EAAM3xD,eAAe2E,GACvB/gB,EAAQ+tE,EAAMhtD,OACT,CAGL,IAFA,IAAoBstD,EAAmBC,EAAO15C,EAA1Cg7B,EAAU5uD,KAAuCutE,GAAY,EAE1D3e,GAAS,CACd,GAAI7uC,EAAK5B,QAAQ,KAAO,EAsBtB,IArBAkvD,EAAoBze,EAAQie,KAC5BS,EAAQvtD,EAAKpf,MAAM,KACnBizB,EAAQ,EAmBoB,MAArBy5C,GAA6Bz5C,EAAQ05C,EAAMtsE,QAC5C4yB,IAAU05C,EAAMtsE,OAAS,IAC3BusE,EACE3D,EAAYyD,EAAmBC,EAAM15C,KAClCk2C,EAAwBuD,EAAmBC,EAAM15C,KAGxDy5C,EAAoBA,EAAkBC,EAAM15C,WAG9Cy5C,EAAoBze,EAAQie,KAAK9sD,GAqBjCwtD,EAAY3D,EAAYhb,EAAQie,KAAM9sD,GAGxC,GAAIwtD,EAAW,CACbvuE,EAAQquE,EACR,K,CAGFze,EAAUA,EAAQoe,M,CAGpBD,EAAMhtD,GAAQ/gB,C,CAMhB,OAHIyqE,EAAWzqE,KACbA,EAAQA,EAAMqc,KAAKrb,KAAK6sE,OAEnB7tE,C,EA0BTiuE,EAAOl+D,UAAUy+D,WAAa,gBACM,IAAvBxtE,KAAKktE,eACdltE,KAAKktE,cAAchhC,O,EASvB+gC,EAAOl+D,UAAUwgC,MAAQ,SAAgBs7B,EAAUC,GACjD,IAAIiC,EAAQ/sE,KAAKktE,cACbO,EAAW5C,EAAW,KAAOC,GAAQc,EAASd,MAAM3pE,KAAK,KACzDusE,OAAkC,IAAVX,EACxBxkC,EAASmlC,EAAiBX,EAAMztE,IAAImuE,QAAYlzD,EAMpD,OAJcA,MAAVguB,IACFA,EAASqiC,EAAcC,EAAUC,GACjC4C,GAAkBX,EAAMrlD,IAAI+lD,EAAUllC,IAEjCA,C,EA0BT0kC,EAAOl+D,UAAUg6D,OAAS,SAAiB8B,EAAUgC,EAAMc,EAAUC,GACnE,IAAI9C,EAAO9qE,KAAK6tE,cAAcD,GAC1BrlC,EAASvoC,KAAKuvC,MAAMs7B,EAAUC,GAC9Blc,EAAUie,aAAiBD,EAAWC,EAAO,IAAID,EAAQC,OAAMtyD,GACnE,OAAOva,KAAK8tE,aAAavlC,EAAQqmB,EAAS+e,EAAU9C,EAAU+C,E,EAYhEX,EAAOl+D,UAAU++D,aAAe,SAAuBvlC,EAAQqmB,EAAS+e,EAAUI,EAAkBH,GAIlG,IAHA,IAEIllC,EAAOslC,EAAQhvE,EAFf8K,EAAS,GAGJ3F,EAAI,EAAGsoE,EAAYlkC,EAAOvnC,OAAQmD,EAAIsoE,IAAatoE,EAC1DnF,OAAQub,EAIO,OAFfyzD,GADAtlC,EAAQH,EAAOpkC,IACA,IAEKnF,EAAQgB,KAAKiuE,cAAcvlC,EAAOkmB,EAAS+e,EAAUI,EAAkBH,GACvE,MAAXI,EAAgBhvE,EAAQgB,KAAKkuE,eAAexlC,EAAOkmB,EAAS+e,EAAUI,EAAkBH,GAC7E,MAAXI,EAAgBhvE,EAAQgB,KAAKmuE,cAAczlC,EAAOkmB,EAAS+e,EAAUC,GAC1D,MAAXI,EAAgBhvE,EAAQgB,KAAKouE,eAAe1lC,EAAOkmB,GACxC,SAAXof,EAAmBhvE,EAAQgB,KAAKquE,aAAa3lC,EAAOkmB,EAASgf,GAClD,SAAXI,IAAmBhvE,EAAQgB,KAAKsuE,SAAS5lC,SAEpCnuB,IAAVvb,IACF8K,GAAU9K,GAGd,OAAO8K,C,EAGTmjE,EAAOl+D,UAAUk/D,cAAgB,SAAwBvlC,EAAOkmB,EAAS+e,EAAUI,EAAkBH,GACnG,IAAIr0D,EAAOvZ,KACP8J,EAAS,GACT9K,EAAQ4vD,EAAQwe,OAAO1kC,EAAM,IAIjC,SAAS6lC,EAAW1D,GAClB,OAAOtxD,EAAKwvD,OAAO8B,EAAUjc,EAAS+e,EAAUC,E,CAGlD,GAAK5uE,EAAL,CAEA,GAAI2jB,EAAQ3jB,GACV,IAAK,IAAIqM,EAAI,EAAG8gE,EAAcntE,EAAMgC,OAAQqK,EAAI8gE,IAAe9gE,EAC7DvB,GAAU9J,KAAK8tE,aAAaplC,EAAM,GAAIkmB,EAAQ3tD,KAAKjC,EAAMqM,IAAKsiE,EAAUI,EAAkBH,QAEvF,GAAqB,iBAAV5uE,GAAuC,iBAAVA,GAAuC,iBAAVA,EAC1E8K,GAAU9J,KAAK8tE,aAAaplC,EAAM,GAAIkmB,EAAQ3tD,KAAKjC,GAAQ2uE,EAAUI,EAAkBH,QAClF,GAAInE,EAAWzqE,GAAQ,CAC5B,GAAgC,iBAArB+uE,EACT,MAAM,IAAIzrE,MAAM,kEAKL,OAFbtD,EAAQA,EAAMqc,KAAKuzC,EAAQie,KAAMkB,EAAiB7sE,MAAMwnC,EAAM,GAAIA,EAAM,IAAK6lC,MAG3EzkE,GAAU9K,E,MAEZ8K,GAAU9J,KAAK8tE,aAAaplC,EAAM,GAAIkmB,EAAS+e,EAAUI,EAAkBH,GAE7E,OAAO9jE,CApBK,C,EAuBdmjE,EAAOl+D,UAAUm/D,eAAiB,SAAyBxlC,EAAOkmB,EAAS+e,EAAUI,EAAkBH,GACrG,IAAI5uE,EAAQ4vD,EAAQwe,OAAO1kC,EAAM,IAIjC,IAAK1pC,GAAU2jB,EAAQ3jB,IAA2B,IAAjBA,EAAMgC,OACrC,OAAOhB,KAAK8tE,aAAaplC,EAAM,GAAIkmB,EAAS+e,EAAUI,EAAkBH,E,EAG5EX,EAAOl+D,UAAUy/D,cAAgB,SAAwBC,EAASlD,EAAaL,GAG7E,IAFA,IAAIwD,EAAsBnD,EAAYrjD,QAAO,UAAY,IACrDymD,EAAcF,EAAQ9tE,MAAM,MACvBwD,EAAI,EAAGA,EAAIwqE,EAAY3tE,OAAQmD,IAClCwqE,EAAYxqE,GAAGnD,SAAWmD,EAAI,IAAM+mE,KACtCyD,EAAYxqE,GAAKuqE,EAAsBC,EAAYxqE,IAGvD,OAAOwqE,EAAYxtE,KAAK,K,EAG1B8rE,EAAOl+D,UAAUo/D,cAAgB,SAAwBzlC,EAAOkmB,EAAS+e,EAAUC,GACjF,GAAKD,EAAL,CACA,IAAI7C,EAAO9qE,KAAK6tE,cAAcD,GAE1B5uE,EAAQyqE,EAAWkE,GAAYA,EAASjlC,EAAM,IAAMilC,EAASjlC,EAAM,IACvE,GAAa,MAAT1pC,EAAe,CACjB,IAAIksE,EAAkBxiC,EAAM,GACxB8iC,EAAW9iC,EAAM,GACjB6iC,EAAc7iC,EAAM,GACpBkmC,EAAgB5vE,EACJ,GAAZwsE,GAAiBD,IACnBqD,EAAgB5uE,KAAKwuE,cAAcxvE,EAAOusE,EAAaL,IAEzD,IAAI3iC,EAASvoC,KAAKuvC,MAAMq/B,EAAe9D,GACvC,OAAO9qE,KAAK8tE,aAAavlC,EAAQqmB,EAAS+e,EAAUiB,EAAehB,E,CAbtD,C,EAiBjBX,EAAOl+D,UAAUq/D,eAAiB,SAAyB1lC,EAAOkmB,GAChE,IAAI5vD,EAAQ4vD,EAAQwe,OAAO1kC,EAAM,IACjC,GAAa,MAAT1pC,EACF,OAAOA,C,EAGXiuE,EAAOl+D,UAAUs/D,aAAe,SAAuB3lC,EAAOkmB,EAASgf,GACrE,IAAI9L,EAAS9hE,KAAK6uE,gBAAgBjB,IAAWhC,EAAS9J,OAClD9iE,EAAQ4vD,EAAQwe,OAAO1kC,EAAM,IACjC,GAAa,MAAT1pC,EACF,MAAyB,iBAAVA,GAAsB8iE,IAAW8J,EAAS9J,OAAUv9C,OAAOvlB,GAAS8iE,EAAO9iE,E,EAG9FiuE,EAAOl+D,UAAUu/D,SAAW,SAAmB5lC,GAC7C,OAAOA,EAAM,E,EAGfukC,EAAOl+D,UAAU8+D,cAAgB,SAAwBD,GACvD,OAAIjrD,EAAQirD,GACHA,EAEAA,GAA4B,iBAAXA,EACjBA,EAAO9C,UAGd,C,EAIJmC,EAAOl+D,UAAU8/D,gBAAkB,SAA0BjB,GAC3D,OAAIA,GAA4B,iBAAXA,IAAwBjrD,EAAQirD,GAC5CA,EAAO9L,YAGd,C,EAIJ,IAAI8J,EAAW,CACb7rD,KAAM,cACN4/B,QAAS,QACTmrB,KAAM,CAAE,KAAM,MACd0C,gBAAYjzD,EACZunD,YAAQvnD,EACRg1B,WAAOh1B,EACPwuD,YAAQxuD,EACRyxD,aAASzxD,EACTqyD,aAASryD,EACT0yD,YAAQ1yD,EAMJ2yD,kBAAeH,GACjB+B,EAAc5B,cAAgBH,C,EAK5BG,oBACF,OAAO4B,EAAc5B,a,GAKrB4B,EAAgB,IAAI7B,EAyCxB,OApCArB,EAAS4B,WAAa,WACpB,OAAOsB,EAActB,Y,EAQvB5B,EAASr8B,MAAQ,SAAgBs7B,EAAUC,GACzC,OAAOgE,EAAcv/B,MAAMs7B,EAAUC,E,EAOvCc,EAAS7C,OAAS,SAAiB8B,EAAUgC,EAAMc,EAAUC,GAC3D,GAAwB,iBAAb/C,EACT,MAAM,IAAIz0D,UAAU,wDACUszD,EAAQmB,GADlB,mFAKtB,OAAOiE,EAAc/F,OAAO8B,EAAUgC,EAAMc,EAAUC,E,EAKxDhC,EAAS9J,OAASwI,EAGlBsB,EAASI,QAAUA,EACnBJ,EAASgB,QAAUA,EACnBhB,EAASqB,OAASA,EAEXrB,C,CAhwByEmD,E,kDCDlFjwE,EAAAC,QAAiBuwC,KAAKC,MAAM,+lZ,kDCA5BzwC,EAAAC,QAAiBuwC,KAAKC,MAAM,woK,kDCC5B3wC,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQiwE,QAAUlwE,EAAAC,QAAQkwE,cAAgBnwE,EAAAC,QAAQmwE,OAASpwE,EAAAC,QAAQowE,qBAAuBrwE,EAAAC,QAAQqwE,eAAiBtwE,EAAAC,QAAQswE,aAAevwE,EAAAC,QAAQuwE,wBAA0BxwE,EAAAC,QAAQwwE,6BAA+BzwE,EAAAC,QAAQywE,mBAAqB1wE,EAAAC,QAAQ0wE,mBAAqB3wE,EAAAC,QAAQ2wE,iBAAmB5wE,EAAAC,QAAQ4wE,mCAAqC7wE,EAAAC,QAAQ6wE,iBAAmB9wE,EAAAC,QAAQ8wE,mBAAqB/wE,EAAAC,QAAQ+wE,mBAAqBhxE,EAAAC,QAAQgxE,oBAAsBjxE,EAAAC,QAAQixE,gBAAkBlxE,EAAAC,QAAQkxE,iBAAmBnxE,EAAAC,QAAQmxE,kBAAoBpxE,EAAAC,QAAQoxE,qBAAuBrxE,EAAAC,QAAQqxE,aAAetxE,EAAAC,QAAQsxE,sBAAwBvxE,EAAAC,QAAQuxE,uBAAyBxxE,EAAAC,QAAQwxE,aAAezxE,EAAAC,QAAQyxE,kBAAoB1xE,EAAAC,QAAQ0xE,4BAA8B3xE,EAAAC,QAAQ2xE,qCAAuC5xE,EAAAC,QAAQ4xE,oCAAsC7xE,EAAAC,QAAQ6xE,QAAU9xE,EAAAC,QAAQ8xE,wBAA0B/xE,EAAAC,QAAQ+xE,sBAAwBhyE,EAAAC,QAAQgyE,wBAA0BjyE,EAAAC,QAAQiyE,qBAAuBlyE,EAAAC,QAAQkyE,6BAA+BnyE,EAAAC,QAAQmyE,wBAA0BpyE,EAAAC,QAAQoyE,aAAeryE,EAAAC,QAAQqyE,qBAAuBtyE,EAAAC,QAAQsyE,uCAAyCvyE,EAAAC,QAAQuyE,+BAAiCxyE,EAAAC,QAAQwyE,oBAAsBzyE,EAAAC,QAAQyyE,kBAAoB1yE,EAAAC,QAAQ0yE,uBAAyB3yE,EAAAC,QAAQ2yE,oBAAsB5yE,EAAAC,QAAQ4yE,qBAAuB7yE,EAAAC,QAAQ6yE,kBAAoB9yE,EAAAC,QAAQ8yE,sBAAwB/yE,EAAAC,QAAQ+yE,eAAiBhzE,EAAAC,QAAQgzE,WAAajzE,EAAAC,QAAQizE,mBAAqBlzE,EAAAC,QAAQkzE,iBAAmBnzE,EAAAC,QAAQmzE,oBAAsBpzE,EAAAC,QAAQozE,YAAcrzE,EAAAC,QAAQqzE,uBAAyBtzE,EAAAC,QAAQszE,cAAgBvzE,EAAAC,QAAQuzE,2BAA6BxzE,EAAAC,QAAQwzE,mBAAqBzzE,EAAAC,QAAQyzE,cAAgB1zE,EAAAC,QAAQ0zE,4BAA8B3zE,EAAAC,QAAQ2zE,UAAY5zE,EAAAC,QAAQ4zE,iBAAmB7zE,EAAAC,QAAQ6zE,uBAAyB9zE,EAAAC,QAAQ8zE,qBAAuB/zE,EAAAC,QAAQ+zE,oCAAsCh0E,EAAAC,QAAQg0E,uBAAyBj0E,EAAAC,QAAQi0E,gBAAkBl0E,EAAAC,QAAQk0E,eAAiBn0E,EAAAC,QAAQm0E,uBAAyBp0E,EAAAC,QAAQo0E,gBAAkBr0E,EAAAC,QAAQq0E,mBAAqBt0E,EAAAC,QAAQs0E,kBAAoBv0E,EAAAC,QAAQu0E,sBAAwBx0E,EAAAC,QAAQw0E,OAASz0E,EAAAC,QAAQy0E,UAAY10E,EAAAC,QAAQ00E,kBAAoB30E,EAAAC,QAAQ20E,uBAAyB50E,EAAAC,QAAQ40E,kBAAoB70E,EAAAC,QAAQ60E,oBAAsB90E,EAAAC,QAAQ80E,iBAAmB/0E,EAAAC,QAAQ+0E,0BAA4Bh1E,EAAAC,QAAQg1E,oBAAsBj1E,EAAAC,QAAQi1E,kBAAoBl1E,EAAAC,QAAQk1E,qBAAuBn1E,EAAAC,QAAQm1E,iBAAmBp1E,EAAAC,QAAQo1E,uBAAyBr1E,EAAAC,QAAQq1E,gBAAkBt1E,EAAAC,QAAQs1E,YAAcv1E,EAAAC,QAAQu1E,+BAAiCx1E,EAAAC,QAAQw1E,kBAAoBz1E,EAAAC,QAAQy1E,WAAa11E,EAAAC,QAAQ01E,YAAc31E,EAAAC,QAAQ21E,iBAAmB51E,EAAAC,QAAQ41E,mBAAqB71E,EAAAC,QAAQ61E,YAAc91E,EAAAC,QAAQ81E,gBAAkB/1E,EAAAC,QAAQ+1E,qBAAuBh2E,EAAAC,QAAQg2E,gBAAkBj2E,EAAAC,QAAQi2E,aAAel2E,EAAAC,QAAQk2E,WAAan2E,EAAAC,QAAQm2E,qBAAuBp2E,EAAAC,QAAQo2E,iBAAmBr2E,EAAAC,QAAQq2E,iBAAmBt2E,EAAAC,QAAQs2E,yBAA2Bv2E,EAAAC,QAAQu2E,iCAAmCx2E,EAAAC,QAAQw2E,gBAAkBz2E,EAAAC,QAAQy2E,WAAa12E,EAAAC,QAAQ02E,eAAiB32E,EAAAC,QAAQ22E,SAAW52E,EAAAC,QAAQ42E,gBAAkB72E,EAAAC,QAAQ62E,QAAU92E,EAAAC,QAAQ82E,SAAW/2E,EAAAC,QAAQ+2E,UAAYh3E,EAAAC,QAAQg3E,kBAAoBj3E,EAAAC,QAAQi3E,YAAcl3E,EAAAC,QAAQk3E,iBAAmBn3E,EAAAC,QAAQk3C,iBAAc,E,6BAEjvG,MAAMigC,UAAoBxmC,EAAApB,YAE1BxvC,EAAAC,QAAQk3C,YAAcigC,EACtB,MAAMC,UAAyBD,GAE/Bp3E,EAAAC,QAAQk3E,iBAAmBE,EAC3B,MAAMC,UAAoBD,GAE1Br3E,EAAAC,QAAQi3E,YAAcI,EACtB,MAAMC,UAA0BD,GAEhCt3E,EAAAC,QAAQg3E,kBAAoBM,EAC5B,MAAMC,UAAkBD,GAExBv3E,EAAAC,QAAQ+2E,UAAYQ,EAGpBx3E,EAAAC,QAAQ82E,SAFR,cAAuBS,IAKvBx3E,EAAAC,QAAQ62E,QAFR,cAAsBU,IAKtBx3E,EAAAC,QAAQ42E,gBAFR,cAA8BW,IAG9B,MAAMC,UAAiBF,GAEvBv3E,EAAAC,QAAQ22E,SAAWa,EAGnBz3E,EAAAC,QAAQ02E,eAFR,cAA6Bc,IAG7B,MAAMC,UAAmB9mC,EAAApB,YAEzBxvC,EAAAC,QAAQy2E,WAAagB,EAGrB13E,EAAAC,QAAQw2E,gBAFR,cAA8BgB,IAK9Bz3E,EAAAC,QAAQu2E,iCAFR,cAA+CgB,IAK/Cx3E,EAAAC,QAAQs2E,yBAFR,cAAuCiB,IAGvC,MAAMG,UAAyBJ,GAE/Bv3E,EAAAC,QAAQq2E,iBAAmBqB,EAG3B33E,EAAAC,QAAQo2E,iBAFR,cAA+BsB,IAK/B33E,EAAAC,QAAQm2E,qBAFR,cAAmCoB,IAKnCx3E,EAAAC,QAAQk2E,WAFR,cAAyBqB,IAGzB,MAAMI,UAAqBD,GAE3B33E,EAAAC,QAAQi2E,aAAe0B,EAGvB53E,EAAAC,QAAQg2E,gBAFR,cAA8B2B,IAK9B53E,EAAAC,QAAQ+1E,qBAFR,cAAmC0B,IAKnC13E,EAAAC,QAAQ81E,gBAFR,cAA8ByB,IAK9Bx3E,EAAAC,QAAQ61E,YAFR,cAA0B0B,IAK1Bx3E,EAAAC,QAAQ41E,mBAFR,cAAiC+B,IAKjC53E,EAAAC,QAAQ21E,iBAFR,cAA+B4B,IAK/Bx3E,EAAAC,QAAQ01E,YAFR,cAA0B8B,IAK1Bz3E,EAAAC,QAAQy1E,WAFR,cAAyB8B,IAKzBx3E,EAAAC,QAAQw1E,kBAFR,cAAgCgC,IAKhCz3E,EAAAC,QAAQu1E,+BAFR,cAA6CiC,IAK7Cz3E,EAAAC,QAAQs1E,YAFR,cAA0BqC,IAK1B53E,EAAAC,QAAQq1E,gBAFR,cAA8BkC,IAK9Bx3E,EAAAC,QAAQo1E,uBAFR,cAAqCuC,IAKrC53E,EAAAC,QAAQm1E,iBAFR,cAA+BoC,IAK/Bx3E,EAAAC,QAAQk1E,qBAFR,cAAmCqC,IAKnCx3E,EAAAC,QAAQi1E,kBAFR,cAAgCsC,IAKhCx3E,EAAAC,QAAQg1E,oBAFR,cAAkCuC,IAKlCx3E,EAAAC,QAAQ+0E,0BAFR,cAAwCwC,IAKxCx3E,EAAAC,QAAQ80E,iBAFR,cAA+ByC,IAK/Bx3E,EAAAC,QAAQ60E,oBAFR,cAAkC0C,IAKlCx3E,EAAAC,QAAQ40E,kBAFR,cAAgC2C,IAKhCx3E,EAAAC,QAAQ20E,uBAFR,cAAqC4C,IAKrCx3E,EAAAC,QAAQ00E,kBAFR,cAAgC6C,IAKhCx3E,EAAAC,QAAQy0E,UAFR,cAAwB6C,IAKxBv3E,EAAAC,QAAQw0E,OAFR,cAAqBmD,IAKrB53E,EAAAC,QAAQu0E,sBAFR,cAAoCgD,IAKpCx3E,EAAAC,QAAQs0E,kBAFR,cAAgCkD,IAGhC,MAAMI,UAA2BN,GAEjCv3E,EAAAC,QAAQq0E,mBAAqBuD,EAG7B73E,EAAAC,QAAQo0E,gBAFR,cAA8BwD,IAK9B73E,EAAAC,QAAQm0E,uBAFR,cAAqCyD,IAKrC73E,EAAAC,QAAQk0E,eAFR,cAA6B0D,IAK7B73E,EAAAC,QAAQi0E,gBAFR,cAA8B2D,IAK9B73E,EAAAC,QAAQg0E,uBAFR,cAAqCwD,IAKrCz3E,EAAAC,QAAQ+zE,oCAFR,cAAkDwD,IAKlDx3E,EAAAC,QAAQ8zE,qBAFR,cAAmCyD,IAKnCx3E,EAAAC,QAAQ6zE,uBAFR,cAAqC0D,IAKrCx3E,EAAAC,QAAQ4zE,iBAFR,cAA+B2D,IAK/Bx3E,EAAAC,QAAQ2zE,UAFR,cAAwB8D,IAKxB13E,EAAAC,QAAQ0zE,4BAFR,cAA0C6D,IAK1Cx3E,EAAAC,QAAQyzE,cAFR,cAA4BkE,IAK5B53E,EAAAC,QAAQwzE,mBAFR,cAAiCiE,IAKjC13E,EAAAC,QAAQuzE,2BAFR,cAAyCoE,IAKzC53E,EAAAC,QAAQszE,cAFR,cAA4BkE,IAK5Bz3E,EAAAC,QAAQqzE,uBAFR,cAAqCkE,IAKrCx3E,EAAAC,QAAQozE,YAFR,cAA0BoE,IAK1Bz3E,EAAAC,QAAQmzE,oBAFR,cAAkCoE,IAKlCx3E,EAAAC,QAAQkzE,iBAFR,cAA+BoE,IAK/Bv3E,EAAAC,QAAQizE,mBAFR,cAAiCyE,IAKjC33E,EAAAC,QAAQgzE,WAFR,cAAyByE,IAGzB,MAAMI,UAAuBT,GAE7Br3E,EAAAC,QAAQ+yE,eAAiB8E,EACzB,MAAMC,UAA8BD,GAEpC93E,EAAAC,QAAQ8yE,sBAAwBgF,EAGhC/3E,EAAAC,QAAQ6yE,kBAFR,cAAgCiF,IAKhC/3E,EAAAC,QAAQ4yE,qBAFR,cAAmCyE,IAKnCt3E,EAAAC,QAAQ2yE,oBAFR,cAAkC0E,IAGlC,MAAMU,UAA+BpnC,EAAApB,YAErCxvC,EAAAC,QAAQ0yE,uBAAyBqF,EAGjCh4E,EAAAC,QAAQyyE,kBAFR,cAAgC4E,IAKhCt3E,EAAAC,QAAQwyE,oBAFR,cAAkC6E,IAKlCt3E,EAAAC,QAAQuyE,+BAFR,cAA6CwF,IAK7Ch4E,EAAAC,QAAQsyE,uCAFR,cAAqDyF,IAGrD,MAAMC,UAA6BrnC,EAAApB,YAEnCxvC,EAAAC,QAAQqyE,qBAAuB2F,EAG/Bj4E,EAAAC,QAAQoyE,aAFR,cAA2ByF,IAK3B93E,EAAAC,QAAQmyE,wBAFR,cAAsCkF,IAKtCt3E,EAAAC,QAAQkyE,6BAFR,cAA2CmF,IAK3Ct3E,EAAAC,QAAQiyE,qBAFR,cAAmCoF,IAKnCt3E,EAAAC,QAAQgyE,wBAFR,cAAsC+F,IAKtCh4E,EAAAC,QAAQ+xE,sBAFR,cAAoCsF,IAKpCt3E,EAAAC,QAAQ8xE,wBAFR,cAAsCgG,IAKtC/3E,EAAAC,QAAQ6xE,QAFR,cAAsBgG,IAKtB93E,EAAAC,QAAQ4xE,oCAFR,cAAkDmG,IAKlDh4E,EAAAC,QAAQ2xE,qCAFR,cAAmDoG,IAKnDh4E,EAAAC,QAAQ0xE,4BAFR,cAA0CqG,IAK1Ch4E,EAAAC,QAAQyxE,kBAFR,cAAgC4F,IAKhCt3E,EAAAC,QAAQwxE,aAFR,cAA2BqG,IAG3B,MAAMI,UAA+BtnC,EAAApB,YAErCxvC,EAAAC,QAAQuxE,uBAAyB0G,EAGjCl4E,EAAAC,QAAQsxE,sBAFR,cAAoC2G,IAKpCl4E,EAAAC,QAAQqxE,aAFR,cAA2BwG,IAK3B93E,EAAAC,QAAQoxE,qBAFR,cAAmC6G,IAKnCl4E,EAAAC,QAAQmxE,kBAFR,cAAgC0G,IAKhC93E,EAAAC,QAAQkxE,iBAFR,cAA+B2G,IAK/B93E,EAAAC,QAAQixE,gBAFR,cAA8B4G,IAK9B93E,EAAAC,QAAQgxE,oBAFR,cAAkCqG,IAKlCt3E,EAAAC,QAAQ+wE,mBAFR,cAAiC+G,IAKjC/3E,EAAAC,QAAQ8wE,mBAFR,cAAiCgH,IAKjC/3E,EAAAC,QAAQ6wE,iBAFR,cAA+BgH,IAK/B93E,EAAAC,QAAQ4wE,mCAFR,cAAiDyG,IAKjDt3E,EAAAC,QAAQ2wE,iBAFR,cAA+BmH,IAK/B/3E,EAAAC,QAAQ0wE,mBAFR,cAAiCoH,IAKjC/3E,EAAAC,QAAQywE,mBAFR,cAAiCoH,IAKjC93E,EAAAC,QAAQwwE,6BAFR,cAA2CuH,IAK3Ch4E,EAAAC,QAAQuwE,wBAFR,cAAsCwH,IAKtCh4E,EAAAC,QAAQswE,aAFR,cAA2B+G,IAK3Bt3E,EAAAC,QAAQqwE,eAFR,cAA6BgH,IAK7Bt3E,EAAAC,QAAQowE,qBAFR,cAAmC2H,IAKnCh4E,EAAAC,QAAQmwE,OAFR,cAAqBgH,IAKrBp3E,EAAAC,QAAQkwE,cAFR,cAA4BiH,IAK5Bp3E,EAAAC,QAAQiwE,QAFR,cAAsBkH,G,kDCzVtB,IAAIe,EAAkBn4E,EAACC,SAAQD,EAAAC,QAAKqb,kBAAqBxb,OAAOyb,OAAU,SAASlU,EAAGyC,EAAG3C,EAAGqU,QAC7EC,IAAPD,IAAkBA,EAAKrU,GAC3BrH,OAAOC,eAAesH,EAAGmU,EAAI,CAAEjb,YAAY,EAAMC,IAAK,WAAa,OAAOsJ,EAAE3C,E,KAC1E,SAASE,EAAGyC,EAAG3C,EAAGqU,QACTC,IAAPD,IAAkBA,EAAKrU,GAC3BE,EAAEmU,GAAM1R,EAAE3C,E,GAEVixE,EAAqBp4E,EAACC,SAAQD,EAAAC,QAAK0b,qBAAwB7b,OAAOyb,OAAU,SAASlU,EAAG2E,GACxFlM,OAAOC,eAAesH,EAAG,UAAW,CAAE9G,YAAY,EAAML,MAAO8L,G,EAC9D,SAAS3E,EAAG2E,GACb3E,EAAW,QAAI2E,C,GAEfqsE,EAAer4E,EAACC,SAAQD,EAAAC,QAAKoc,cAAiB,SAAU3Z,GACxD,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAIlB,EAAS,GACb,GAAW,MAAPkB,EAAa,IAAK,IAAIyE,KAAKzE,EAAe,YAANyE,GAAmBrH,OAAOwc,eAAeC,KAAK7Z,EAAKyE,IAAIgxE,EAAgB32E,EAAQkB,EAAKyE,GAE5H,OADAixE,EAAmB52E,EAAQkB,GACpBlB,C,EAEX1B,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQq4E,WAAat4E,EAAAC,QAAQ4C,eAAiB7C,EAAAC,QAAQqB,QAAUtB,EAAAC,QAAQ6C,UAAY9C,EAAAC,QAAQijE,OAASljE,EAAAC,QAAQs4E,MAAQv4E,EAAAC,QAAQu4E,IAAMx4E,EAAAC,QAAQ+a,UAAYhb,EAAAC,QAAQotC,QAAUrtC,EAAAC,QAAQw4E,cAAW,EAC5L,MAAMC,EAAWL,EAAap1E,cAAA,UAC9BjD,EAAAC,QAAQw4E,SAAWC,EACnB,MAAMC,EAAUN,EAAap1E,cAAA,UAC7BjD,EAAAC,QAAQotC,QAAUsrC,EAClB,MAAMC,EAAYP,EAAap1E,cAAA,UAC/BjD,EAAAC,QAAQ+a,UAAY49D,EACpB,MAAMC,EAAMR,EAAap1E,cAAA,UACzBjD,EAAAC,QAAQu4E,IAAMK,EACd,MAAMC,EAAQT,EAAap1E,cAAA,UAC3BjD,EAAAC,QAAQs4E,MAAQO,EAChB,MAAMC,EAASV,EAAap1E,cAAA,UAC5BjD,EAAAC,QAAQijE,OAAS6V,EACjB,MAAMC,EAAaX,EAAap1E,cAAA,UAChCjD,EAAAC,QAAQq4E,WAAaU,EAErBl5E,OAAOC,eAAeC,EAAAC,QAAS,YAAa,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOyC,cAAA,SAAAH,S,IAC1FhD,OAAOC,eAAeC,EAAAC,QAAS,UAAW,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOyC,cAAA,SAAA3B,O,IACxFxB,OAAOC,eAAeC,EAAAC,QAAS,iBAAkB,CAAEM,YAAY,EAAMC,IAAK,WAAc,OAAOyC,cAAA,SAAAJ,c,qDCtC/F/C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,G,kDCAtD,IAAI+4E,EAAkBj5E,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQi5E,gBAAkBl5E,EAAAC,QAAQk5E,iBAAmBn5E,EAAAC,QAAQm5E,gBAAkBp5E,EAAAC,QAAQo5E,yBAAsB,EAC7G,MAAMC,EAAUL,EAAgBh2E,cAAA,UAIhCjD,EAAAC,QAAQo5E,oBAAsB,GAI9Br5E,EAAAC,QAAQm5E,gBAAkB,IAAIE,EAAQ12E,QAAQ,KAAM,IAAIypB,IAAI,IAAIitD,EAAQ12E,QAAQ5C,EAAAC,QAAQo5E,oBAAqB,KAE7G,MAAME,EAAmB,GACnBC,EAAO,IAAIF,EAAQ12E,QAAQ,IACjC,IAAK,IAAIyC,EAAI,EAAGoa,EAAS,IAAI65D,EAAQ12E,QAAQ,GAAIyC,EAAIrF,EAAAC,QAAQo5E,oBAAqBh0E,IAAKoa,EAASA,EAAOwL,IAAIuuD,GACvGD,EAAiBl0E,GAAKoa,EAyB1Bzf,EAAAC,QAAQk5E,iBAfR,SAA0BM,EAASC,EAAa15E,EAAAC,QAAQo5E,qBACpD,MAAMM,EAAY,IAAIL,EAAQ12E,QAAQ62E,EAAS,IAC/C,GAAIC,IAAe15E,EAAAC,QAAQo5E,oBAAqB,CAE5C,MAAMO,EAAc55E,EAAAC,QAAQo5E,oBAAsBK,EAAa,EAC3DE,EAAc,GACdD,EAAUz/C,KAAKq/C,EAAiBK,G,CAIxC,MAAMC,GADNJ,EAAUE,EAAUv4E,YACKyrC,UAAU,EAAG4sC,EAAQv3E,OAASlC,EAAAC,QAAQo5E,sBAAwB,IACjFS,EAAcL,EAAQ5sC,UAAU4sC,EAAQv3E,OAASlC,EAAAC,QAAQo5E,qBAC1DU,SAAS/5E,EAAAC,QAAQo5E,oBAAqB,KAAKxsC,UAAU,EAAG6sC,GAC7D,MAA0B,GAyD9B,SAA0Bx5E,GACtB,MAAM85E,EAAO,iBACb,KAAOA,EAAQnT,KAAK3mE,IAChBA,EAAQA,EAAMkpB,QAAQ4wD,EAAS,SAEnC,OAAO95E,C,CA9DsB+5E,CAAiBJ,MAAaC,IAsC9C1wD,QAAO,SAAW,G,EAfnCppB,EAAAC,QAAQi5E,gBAbR,SAAyBgB,GACrB,IAAKA,EACD,OAAO,KAGX,MAAMr4E,GADNq4E,EAAoBA,EAgBN9wD,QAAO,KAAO,IAAIC,QAfdxnB,MAAM,KAClBs4E,EAAYt4E,EAAM,GAClBu4E,EAAWv4E,EAAM,IAAM,GAC7B,GAAIA,EAAMK,OAAS,GAAKk4E,EAASl4E,OAASlC,EAAAC,QAAQo5E,oBAC9C,MAAM,IAAI71E,MAAM,iBAAiB02E,qBAErC,MA0Bc,MADdh6E,GADuBA,EAxBEi6E,EAAYC,EAASC,OAAOr6E,EAAAC,QAAQo5E,oBAAqB,MAyBpEjwD,QAAO,MAAQ,KAElB,IAEJlpB,EALX,IAA2BA,C,uFCtFvBo6E,EAAkBt6E,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQs6E,gBAAkBv6E,EAAAC,QAAQu6E,kBAAoBx6E,EAAAC,QAAQw6E,OAASz6E,EAAAC,QAAQy6E,OAAS16E,EAAAC,QAAQ06E,kBAAoB36E,EAAAC,QAAQ26E,YAAc56E,EAAAC,QAAQ46E,UAAY76E,EAAAC,QAAQ66E,cAAgB96E,EAAAC,QAAQ86E,UAAY/6E,EAAAC,QAAQ+6E,OAASh7E,EAAAC,QAAQg7E,MAAQj7E,EAAAC,QAAQi7E,SAAWl7E,EAAAC,QAAQk7E,aAAen7E,EAAAC,QAAQm7E,eAAiBp7E,EAAAC,QAAQo7E,cAAgBr7E,EAAAC,QAAQq7E,cAAgBt7E,EAAAC,QAAQs7E,UAAYv7E,EAAAC,QAAQu7E,OAASx7E,EAAAC,QAAQw7E,MAAQz7E,EAAAC,QAAQy7E,SAAW17E,EAAAC,QAAQ07E,aAAe37E,EAAAC,QAAQ27E,eAAiB57E,EAAAC,QAAQ47E,cAAgB77E,EAAAC,QAAQ67E,QAAU97E,EAAAC,QAAQ87E,sBAAwB/7E,EAAAC,QAAQ+7E,cAAgBh8E,EAAAC,QAAQg8E,UAAYj8E,EAAAC,QAAQi8E,oBAAsBl8E,EAAAC,QAAQk8E,qBAAuBn8E,EAAAC,QAAQm8E,4BAAyB,EAC1qB,MAAMC,EAAc/B,EAAgBr3E,cAAA,U,+EAIpC,MAAMq5E,UAA+B54E,EAAAC,YAErC3D,EAAAC,QAAQm8E,uBAAyBE,EACjC,MAAMC,UAA6B74E,EAAAC,YAEnC3D,EAAAC,QAAQk8E,qBAAuBI,EAC/B,MAAMC,UAA4B94E,EAAAuoC,MAElCjsC,EAAAC,QAAQi8E,oBAAsBM,EAC9B,MAAMC,UAAkB/4E,EAAAC,YAExB3D,EAAAC,QAAQg8E,UAAYQ,EAIpBz8E,EAAAC,QAAQ+7E,cAHR,WACI,OAAO,IAAIS,EAAU,CAAE7jE,MAAO,EAAG8jE,WAAY,IAAIF,EAAoB,CAAEG,WAAY,IAAIJ,EAAqB,O,EAMhHv8E,EAAAC,QAAQ87E,sBAHR,SAA+Ba,EAAYC,EAAaC,GACpD,OAAO,IAAIL,EAAU,CAAE7jE,MAAO,EAAG8jE,WAAY,IAAIF,EAAoB,CAAErB,aAAc,IAAImB,EAAuB,C,WAAEM,E,UAAYE,E,YAAWD,O,EAG7I,MAAME,UAAgBr5E,EAAAC,YAEtB3D,EAAAC,QAAQ67E,QAAUiB,EAClB,MAAMC,UAAsBD,GAE5B/8E,EAAAC,QAAQ47E,cAAgBmB,EACxB,MAAMC,UAAuBF,GAE7B/8E,EAAAC,QAAQ27E,eAAiBqB,EACzB,MAAMC,UAAqBH,GAE3B/8E,EAAAC,QAAQ07E,aAAeuB,EACvB,MAAMC,UAAiBJ,GAEvB/8E,EAAAC,QAAQy7E,SAAWyB,EACnB,MAAMC,UAAcL,GAEpB/8E,EAAAC,QAAQw7E,MAAQ2B,EAChB,MAAMC,UAAeN,GAErB/8E,EAAAC,QAAQu7E,OAAS6B,EACjB,MAAMC,UAAkBP,GAExB/8E,EAAAC,QAAQs7E,UAAY+B,EACpB,MAAMC,UAAsBR,GAE5B/8E,EAAAC,QAAQq7E,cAAgBiC,EAIxBv9E,EAAAC,QAAQo7E,cAHR,WACI,OAAO,IAAImC,EAAO,CAAEnC,cAAe,IAAI2B,EAAc,K,EAMzDh9E,EAAAC,QAAQm7E,eAHR,SAAwBh8D,GACpB,OAAO,IAAIo+D,EAAO,CAAEpC,eAAgB,IAAI6B,EAAe,C,KAAE79D,K,EAkB7Dpf,EAAAC,QAAQk7E,aANR,SAAsBsC,EAAYx+D,EAAMy+D,EAAKC,GACzC,MAAMC,EAAU3+D,EAEV4+D,OADsCpiE,IAAvBmiE,EAAQv6D,YAA4Bu6D,EAAQv6D,aAAeu6D,EAAQ17E,OAClD+c,EAAO6+D,EAAO97E,KAAKwuC,KAAKc,UAAUryB,IACxE,OAAO,IAAIu+D,EAAO,CAAErC,aAAc,IAAI+B,EAAa,C,WAAEO,EAAYx+D,KAAM4+D,E,IAAgBH,E,QAAKC,K,EAMhG39E,EAAAC,QAAQi7E,SAHR,SAAkByC,GACd,OAAO,IAAIH,EAAO,CAAEtC,SAAU,IAAIiC,EAAS,C,QAAEQ,K,EAMjD39E,EAAAC,QAAQg7E,MAHR,SAAe8C,EAAOl5E,GAClB,OAAO,IAAI24E,EAAO,CAAEvC,MAAO,IAAImC,EAAM,CAAEnC,MAAA8C,E,UAAOl5E,K,EAMlD7E,EAAAC,QAAQ+6E,OAHR,SAAgBn2E,EAAWm5E,GACvB,OAAO,IAAIR,EAAO,CAAExC,OAAQ,IAAIqC,EAAO,C,UAAEx4E,E,UAAWm5E,K,EAMxDh+E,EAAAC,QAAQ86E,UAHR,SAAmBl2E,GACf,OAAO,IAAI24E,EAAO,CAAEzC,UAAW,IAAIuC,EAAU,C,UAAEz4E,K,EAMnD7E,EAAAC,QAAQ66E,cAHR,SAAuBmD,GACnB,OAAO,IAAIT,EAAO,CAAE1C,cAAe,IAAIyC,EAAc,C,cAAEU,K,EAG3D,MAAMC,UAAkBx6E,EAAAC,YAExB3D,EAAAC,QAAQ46E,UAAYqD,EACpB,MAAMC,UAAoBz6E,EAAAC,WACtBsZ,SACI,OAAOpC,EAAAG,UAAkBhb,EAAAC,QAAQw6E,OAAQv5E,K,CAE7C0C,cAAcuM,GACV,OAAO0K,EAAAI,YAAoBjb,EAAAC,QAAQw6E,OAAQ0D,EAAahuE,E,EAGhEnQ,EAAAC,QAAQ26E,YAAcuD,EACtB,MAAMC,UAA0B16E,EAAAC,WAC5BsZ,SACI,OAAOpC,EAAAG,UAAkBhb,EAAAC,QAAQw6E,OAAQv5E,K,CAE7C0C,cAAcuM,GACV,OAAO0K,EAAAI,YAAoBjb,EAAAC,QAAQw6E,OAAQ2D,EAAmBjuE,E,EAGtEnQ,EAAAC,QAAQ06E,kBAAoByD,EAI5B,MAAMZ,UAAe95E,EAAAuoC,MA4ErB,SAASoyC,EAAkBC,EAAUz5E,EAAW+3E,EAAYhkE,EAAO2lE,EAASC,GACxE,OAAO,IAAIL,EAAY,C,SAAEG,E,UAAUz5E,E,MAAW+T,E,WAAOgkE,E,QAAY2B,E,UAASC,G,CAU9E19E,eAAe29E,EAAsBC,EAAaC,EAAQ39E,EAAWD,GACjE,MAAM4D,EAAUkW,EAAAG,UAAkBhb,EAAAC,QAAQw6E,OAAQiE,GAC5CtkE,EAAO,IAAI1U,WAAW22E,EAAYz5E,QAAQg8E,OAAOlgE,MAAM/Z,IACvDI,QAAkB45E,EAAOE,YAAYl6E,EAAS3D,EAAWD,GAK/D,MAAO,CAACqZ,EAJS,IAAIgkE,EAAkB,C,YACnCM,EACA35E,UAAW,IAAIm5E,EAAU,CAAE76E,QAASq7E,EAAY75E,UAAUxB,QAASS,KAAMiB,EAAUA,c,CA3F3F/E,EAAAC,QAAQy6E,OAAS8C,EACjBx9E,EAAAC,QAAQw6E,OAAS,IAAIqE,IAAI,CACrB,CAACZ,EAAW,CAAEv9D,KAAM,SAAUO,OAAQ,CAC1B,CAAC,UAAW,MACZ,CAAC,OAAQ,CAAC,QAEtB,CAACk9D,EAAmB,CAAEz9D,KAAM,SAAUO,OAAQ,CAClC,CAAC,cAAei9D,GAChB,CAAC,YAAaD,MAE1B,CAACC,EAAa,CAAEx9D,KAAM,SAAUO,OAAQ,CAC5B,CAAC,WAAY,UACb,CAAC,YAAa7f,EAAAyB,WACd,CAAC,QAAS,OACV,CAAC,aAAc,UACf,CAAC,YAAa,CAAC,KACf,CAAC,UAAW,CAAC06E,OAEzB,CAACn8E,EAAAyB,UAAsB,CAAE6d,KAAM,SAAUO,OAAQ,CACrC,CAAC,UAAW,MACZ,CAAC,OAAQ,CAAC,QAEtB,CAACu7D,EAAW,CAAE97D,KAAM,SAAUO,OAAQ,CAC1B,CAAC,QAAS,OACV,CAAC,aAAcs7D,MAE3B,CAACA,EAAqB,CAAE77D,KAAM,OAAQS,MAAO,OAAQnf,OAAQ,CACjD,CAAC,eAAgBq6E,GACjB,CAAC,aAAcC,MAE3B,CAACD,EAAwB,CAAE37D,KAAM,SAAUO,OAAQ,CACvC,CAAC,YAAa,CAAEP,KAAM,SAAUC,KAAM,SACtC,CAAC,aAAc,UACf,CAAC,cAAe,CAAC,cAE7B,CAAC27D,EAAsB,CAAE57D,KAAM,SAAUO,OAAQ,KACjD,CAACs8D,EAAQ,CAAE78D,KAAM,OAAQS,MAAO,OAAQnf,OAAQ,CACpC,CAAC,gBAAiB+6E,GAClB,CAAC,iBAAkBC,GACnB,CAAC,eAAgBC,GACjB,CAAC,WAAYC,GACb,CAAC,QAASC,GACV,CAAC,SAAUC,GACX,CAAC,YAAaC,GACd,CAAC,gBAAiBC,MAE9B,CAACP,EAAe,CAAEr8D,KAAM,SAAUO,OAAQ,KAC1C,CAAC+7D,EAAgB,CAAEt8D,KAAM,SAAUO,OAAQ,CAC/B,CAAC,OAAQ,CAAC,UAEtB,CAACg8D,EAAc,CAAEv8D,KAAM,SAAUO,OAAQ,CAC7B,CAAC,aAAc,UACf,CAAC,OAAQ,CAAC,OACV,CAAC,MAAO,OACR,CAAC,UAAW,WAExB,CAACi8D,EAAU,CAAEx8D,KAAM,SAAUO,OAAQ,CACzB,CAAC,UAAW,WAExB,CAACk8D,EAAO,CAAEz8D,KAAM,SAAUO,OAAQ,CACtB,CAAC,QAAS,QACV,CAAC,YAAa7f,EAAAyB,cAE1B,CAACu6E,EAAQ,CAAE18D,KAAM,SAAUO,OAAQ,CACvB,CAAC,YAAa7f,EAAAyB,WACd,CAAC,YAAa25E,MAE1B,CAACa,EAAW,CAAE38D,KAAM,SAAUO,OAAQ,CAC1B,CAAC,YAAa7f,EAAAyB,cAE1B,CAACy6E,EAAe,CAAE58D,KAAM,SAAUO,OAAQ,CAC9B,CAAC,gBAAiB,eAMlClhB,EAAAC,QAAQu6E,kBAAoB6D,EA8B5Br+E,EAAAC,QAAQs6E,gBAZRz5E,kBAAkCme,GAC9B,GAAIA,EAAK,GAAG3c,cAAgB67E,EAAa,CACrC,MAAOO,EAAaC,EAAQ39E,EAAWD,GAAake,EACpD,OAAOw/D,EAAsBC,EAAaC,EAAQ39E,EAAWD,E,CAE5D,CACD,MAAO67E,EAAYhkE,EAAO2lE,EAASC,EAAWG,EAAQ39E,EAAWD,GAAake,EAG9E,OAAOw/D,EADaJ,EAAkBr9E,QADd29E,EAAO35E,aAAahE,EAAWD,GACK67E,EAAYhkE,EAAO2lE,EAASC,GAC9CG,EAAQ39E,EAAWD,E,+DC9NrE,IAAA+8C,OAAA76C,cAAA;;;;;;;;IAAC,WAGC,IAAI87E,MAAQ,wBACRC,OAA2B,iBAAXpqD,OAChB6vC,KAAOua,OAASpqD,OAAS,GACzB6vC,KAAKwa,sBACPD,QAAS,GAEX,IAAIE,YAAcF,QAA0B,iBAATvkE,KAC/B0kE,SAAW1a,KAAK2a,sBAA2C,iBAAZthC,QAAwBA,OAAQgD,UAAYhD,OAAQgD,SAASu+B,KAC5GF,QACF1a,KAAO5nD,eACEqiE,aACTza,KAAOhqD,MAET,IAAI6kE,WAAa7a,KAAK8a,wBAAwDv/E,OAAOC,QACjFu/E,IAAwB,mBAAXzY,QAAyBA,OAAOC,IAC7CyY,cAAgBhb,KAAKib,2BAAoD,oBAAhB58D,YACzD68D,UAAY,mBAAmB99E,MAAM,IACrC+9E,MAAQ,EAAC,WAAa,QAAS,MAAO,KACtCC,MAAQ,CAAC,GAAI,GAAI,EAAG,GACpBntE,EAAI,CACN,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAElFotE,aAAe,CAAC,MAAO,QAAS,SAAU,eAE1CC,QAAS,IAETtb,KAAK2a,sBAAyBr9E,MAAM8hB,UACtC9hB,MAAM8hB,QAAU,SAAU9C,GACxB,MAA+C,mBAAxCjhB,OAAOmQ,UAAU7O,SAASmb,KAAKwE,E,IAItC0+D,eAAiBhb,KAAKub,mCAAsCl9D,YAAYC,SAC1ED,YAAYC,OAAS,SAAUhC,GAC7B,MAAsB,iBAARA,GAAoBA,EAAI/V,QAAU+V,EAAI/V,OAAO1I,cAAgBwgB,W,GAI/E,IAAIm9D,mBAAqB,SAAUC,EAAYC,GAC7C,OAAO,SAAUx7E,GACf,OAAO,IAAIy7E,OAAOD,GAAO,GAAM50E,OAAO5G,GAASu7E,I,GAI/CG,aAAe,SAAUF,GAC3B,IAAIhuC,EAAS8tC,mBAAmB,MAAOE,GACnChB,UACFhtC,EAASmuC,SAASnuC,EAAQguC,IAE5BhuC,EAAO52B,OAAS,WACd,OAAO,IAAI6kE,OAAOD,E,EAEpBhuC,EAAO5mC,OAAS,SAAU5G,GACxB,OAAOwtC,EAAO52B,SAAShQ,OAAO5G,E,EAEhC,IAAK,IAAIU,EAAI,EAAGA,EAAIy6E,aAAa59E,SAAUmD,EAAG,CAC5C,IAAIub,EAAOk/D,aAAaz6E,GACxB8sC,EAAOvxB,GAAQq/D,mBAAmBr/D,EAAMu/D,E,CAE1C,OAAOhuC,C,EAGLmuC,SAAW,SAAUnuC,OAAQguC,OAC/B,IAAI3lE,OAAS+lE,KAAK,qBACd7rD,OAAS6rD,KAAK,4BACdC,UAAYL,MAAQ,SAAW,SAC/BM,WAAa,SAAU97E,GACzB,GAAuB,iBAAZA,EACT,OAAO6V,OAAOkmE,WAAWF,WAAWj1E,OAAO5G,EAAS,QAAQg8E,OAAO,OAEnE,GAAIh8E,QACF,MAAM,IAAInB,MAAMu7E,OAKpB,OAJap6E,EAAQrC,cAAgBwgB,cACjCne,EAAU,IAAIe,WAAWf,IAGzB5C,MAAM8hB,QAAQlf,IAAYme,YAAYC,OAAOpe,IAC/CA,EAAQrC,cAAgBoyB,OACjBla,OAAOkmE,WAAWF,WAAWj1E,OAAO,IAAImpB,OAAO/vB,IAAUg8E,OAAO,OAEhExuC,OAAOxtC,E,EAGlB,OAAO87E,U,EAGLG,uBAAyB,SAAUV,EAAYC,GACjD,OAAO,SAAUx+E,EAAKgD,GACpB,OAAO,IAAIk8E,WAAWl/E,EAAKw+E,GAAO,GAAM50E,OAAO5G,GAASu7E,I,GAIxDY,iBAAmB,SAAUX,GAC/B,IAAIhuC,EAASyuC,uBAAuB,MAAOT,GAC3ChuC,EAAO52B,OAAS,SAAU5Z,GACxB,OAAO,IAAIk/E,WAAWl/E,EAAKw+E,E,EAE7BhuC,EAAO5mC,OAAS,SAAU5J,EAAKgD,GAC7B,OAAOwtC,EAAO52B,OAAO5Z,GAAK4J,OAAO5G,E,EAEnC,IAAK,IAAIU,EAAI,EAAGA,EAAIy6E,aAAa59E,SAAUmD,EAAG,CAC5C,IAAIub,EAAOk/D,aAAaz6E,GACxB8sC,EAAOvxB,GAAQggE,uBAAuBhgE,EAAMu/D,E,CAE9C,OAAOhuC,C,EAGT,SAASiuC,OAAOD,EAAOY,GACjBA,GACFhB,QAAO,GAAKA,QAAO,IAAMA,QAAO,GAAKA,QAAO,GAAKA,QAAO,GACtDA,QAAO,GAAKA,QAAO,GAAKA,QAAO,GAAKA,QAAO,GAC3CA,QAAO,GAAKA,QAAO,GAAKA,QAAO,IAAMA,QAAO,IAC5CA,QAAO,IAAMA,QAAO,IAAMA,QAAO,IAAMA,QAAO,IAAM,EACtD7+E,KAAKgP,OAAS6vE,SAEd7+E,KAAKgP,OAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAG7DiwE,GACFj/E,KAAK6P,GAAK,WACV7P,KAAK8P,GAAK,UACV9P,KAAK+P,GAAK,UACV/P,KAAKgQ,GAAK,WACVhQ,KAAKiQ,GAAK,WACVjQ,KAAKkQ,GAAK,WACVlQ,KAAKmQ,GAAK,WACVnQ,KAAKoQ,GAAK,aAEVpQ,KAAK6P,GAAK,WACV7P,KAAK8P,GAAK,WACV9P,KAAK+P,GAAK,WACV/P,KAAKgQ,GAAK,WACVhQ,KAAKiQ,GAAK,WACVjQ,KAAKkQ,GAAK,WACVlQ,KAAKmQ,GAAK,UACVnQ,KAAKoQ,GAAK,YAGZpQ,KAAK8/E,MAAQ9/E,KAAKqjB,MAAQrjB,KAAKiP,MAAQjP,KAAK+/E,OAAS,EACrD//E,KAAKggF,UAAYhgF,KAAKigF,QAAS,EAC/BjgF,KAAK6qB,OAAQ,EACb7qB,KAAKi/E,MAAQA,C,CA4Qf,SAASU,WAAWl/E,EAAKw+E,EAAOY,GAC9B,IAAI17E,EAAGub,SAAcjf,EACrB,GAAa,WAATif,EAAmB,CACrB,IAAgDxB,EAA5CjP,EAAQ,GAAIjO,EAASP,EAAIO,OAAQ4yB,EAAQ,EAC7C,IAAKzvB,EAAI,EAAGA,EAAInD,IAAUmD,GACxB+Z,EAAOzd,EAAI8kB,WAAWphB,IACX,IACT8K,EAAM2kB,KAAW1V,EACRA,EAAO,MAChBjP,EAAM2kB,KAAY,IAAQ1V,GAAQ,EAClCjP,EAAM2kB,KAAY,IAAe,GAAP1V,GACjBA,EAAO,OAAUA,GAAQ,OAClCjP,EAAM2kB,KAAY,IAAQ1V,GAAQ,GAClCjP,EAAM2kB,KAAY,IAAQ1V,GAAS,EAAK,GACxCjP,EAAM2kB,KAAY,IAAe,GAAP1V,IAE1BA,EAAO,QAAoB,KAAPA,IAAiB,GAA6B,KAAtBzd,EAAI8kB,aAAaphB,IAC7D8K,EAAM2kB,KAAY,IAAQ1V,GAAQ,GAClCjP,EAAM2kB,KAAY,IAAQ1V,GAAS,GAAM,GACzCjP,EAAM2kB,KAAY,IAAQ1V,GAAS,EAAK,GACxCjP,EAAM2kB,KAAY,IAAe,GAAP1V,GAG9Bzd,EAAMwO,C,KACD,CACL,GAAa,WAATyQ,EAWF,MAAM,IAAIpd,MAAMu7E,OAVhB,GAAY,OAARp9E,EACF,MAAM,IAAI6B,MAAMu7E,OACX,GAAIU,cAAgB99E,EAAIW,cAAgBwgB,YAC7CnhB,EAAM,IAAI+D,WAAW/D,QAChB,KAAKI,MAAM8hB,QAAQliB,IACnB89E,cAAiB38D,YAAYC,OAAOphB,IACvC,MAAM,IAAI6B,MAAMu7E,M,CAQpBp9E,EAAIO,OAAS,KACfP,EAAM,IAAKy+E,OAAOD,GAAO,GAAO50E,OAAO5J,GAAK+c,SAG9C,IAAI0iE,EAAU,GAAIC,EAAU,GAC5B,IAAKh8E,EAAI,EAAGA,EAAI,KAAMA,EAAG,CACvB,IAAI2E,EAAIrI,EAAI0D,IAAM,EAClB+7E,EAAQ/7E,GAAK,GAAO2E,EACpBq3E,EAAQh8E,GAAK,GAAO2E,C,CAGtBo2E,OAAO7jE,KAAKrb,KAAMi/E,EAAOY,GAEzB7/E,KAAKqK,OAAO81E,GACZngF,KAAKkgF,QAAUA,EACflgF,KAAKogF,OAAQ,EACbpgF,KAAK6/E,aAAeA,C,CAjUtBX,OAAOnwE,UAAU1E,OAAS,SAAU5G,GAClC,IAAIzD,KAAKggF,UAAT,CAGA,IAAIK,EAAW3gE,SAAcjc,EAC7B,GAAa,WAATic,EAAmB,CACrB,GAAa,WAATA,EAWF,MAAM,IAAIpd,MAAMu7E,OAVhB,GAAgB,OAAZp6E,EACF,MAAM,IAAInB,MAAMu7E,OACX,GAAIU,cAAgB96E,EAAQrC,cAAgBwgB,YACjDne,EAAU,IAAIe,WAAWf,QACpB,KAAK5C,MAAM8hB,QAAQlf,IACnB86E,cAAiB38D,YAAYC,OAAOpe,IACvC,MAAM,IAAInB,MAAMu7E,OAMtBwC,GAAY,C,CAId,IAFA,IAAIniE,EAAiB/Z,EAAXyvB,EAAQ,EAAM5yB,EAASyC,EAAQzC,OAAQgO,EAAShP,KAAKgP,OAExD4kB,EAAQ5yB,GAAQ,CAUrB,GATIhB,KAAKigF,SACPjgF,KAAKigF,QAAS,EACdjxE,EAAO,GAAKhP,KAAK8/E,MACjB9wE,EAAO,IAAMA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC1CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC3CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,IAAMA,EAAO,IAC5CA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAM,GAGpDqxE,EACF,IAAKl8E,EAAInE,KAAKqjB,MAAOuQ,EAAQ5yB,GAAUmD,EAAI,KAAMyvB,EAC/C5kB,EAAO7K,GAAK,IAAMV,EAAQmwB,IAAU+qD,MAAY,EAANx6E,UAG5C,IAAKA,EAAInE,KAAKqjB,MAAOuQ,EAAQ5yB,GAAUmD,EAAI,KAAMyvB,GAC/C1V,EAAOza,EAAQ8hB,WAAWqO,IACf,IACT5kB,EAAO7K,GAAK,IAAM+Z,GAAQygE,MAAY,EAANx6E,KACvB+Z,EAAO,MAChBlP,EAAO7K,GAAK,KAAO,IAAQ+Z,GAAQ,IAAOygE,MAAY,EAANx6E,KAChD6K,EAAO7K,GAAK,KAAO,IAAe,GAAP+Z,IAAiBygE,MAAY,EAANx6E,MACzC+Z,EAAO,OAAUA,GAAQ,OAClClP,EAAO7K,GAAK,KAAO,IAAQ+Z,GAAQ,KAAQygE,MAAY,EAANx6E,KACjD6K,EAAO7K,GAAK,KAAO,IAAQ+Z,GAAS,EAAK,KAAUygE,MAAY,EAANx6E,KACzD6K,EAAO7K,GAAK,KAAO,IAAe,GAAP+Z,IAAiBygE,MAAY,EAANx6E,OAElD+Z,EAAO,QAAoB,KAAPA,IAAiB,GAAqC,KAA9Bza,EAAQ8hB,aAAaqO,IACjE5kB,EAAO7K,GAAK,KAAO,IAAQ+Z,GAAQ,KAAQygE,MAAY,EAANx6E,KACjD6K,EAAO7K,GAAK,KAAO,IAAQ+Z,GAAS,GAAM,KAAUygE,MAAY,EAANx6E,KAC1D6K,EAAO7K,GAAK,KAAO,IAAQ+Z,GAAS,EAAK,KAAUygE,MAAY,EAANx6E,KACzD6K,EAAO7K,GAAK,KAAO,IAAe,GAAP+Z,IAAiBygE,MAAY,EAANx6E,MAKxDnE,KAAKsgF,cAAgBn8E,EACrBnE,KAAKiP,OAAS9K,EAAInE,KAAKqjB,MACnBlf,GAAK,IACPnE,KAAK8/E,MAAQ9wE,EAAO,IACpBhP,KAAKqjB,MAAQlf,EAAI,GACjBnE,KAAKkZ,OACLlZ,KAAKigF,QAAS,GAEdjgF,KAAKqjB,MAAQlf,C,CAOjB,OAJInE,KAAKiP,MAAQ,aACfjP,KAAK+/E,QAAU//E,KAAKiP,MAAQ,YAAc,EAC1CjP,KAAKiP,MAAQjP,KAAKiP,MAAQ,YAErBjP,IAxEL,C,EA2EJk/E,OAAOnwE,UAAUwxE,SAAW,WAC1B,IAAIvgF,KAAKggF,UAAT,CAGAhgF,KAAKggF,WAAY,EACjB,IAAIhxE,EAAShP,KAAKgP,OAAQ7K,EAAInE,KAAKsgF,cACnCtxE,EAAO,IAAMhP,KAAK8/E,MAClB9wE,EAAO7K,GAAK,IAAMu6E,MAAU,EAAJv6E,GACxBnE,KAAK8/E,MAAQ9wE,EAAO,IAChB7K,GAAK,KACFnE,KAAKigF,QACRjgF,KAAKkZ,OAEPlK,EAAO,GAAKhP,KAAK8/E,MACjB9wE,EAAO,IAAMA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC1CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC3CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,IAAMA,EAAO,IAC5CA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAM,GAExDA,EAAO,IAAMhP,KAAK+/E,QAAU,EAAI//E,KAAKiP,QAAU,GAC/CD,EAAO,IAAMhP,KAAKiP,OAAS,EAC3BjP,KAAKkZ,MAnBH,C,EAsBJgmE,OAAOnwE,UAAUmK,KAAO,WACtB,IACqC7N,EAAGm1E,EAAIC,EAAIC,EAAKn3E,EAAYo3E,EAAIC,EAAIC,EAAIC,EADzEl2E,EAAI5K,KAAK6P,GAAI/G,EAAI9I,KAAK8P,GAAI5J,EAAIlG,KAAK+P,GAAIpK,EAAI3F,KAAKgQ,GAAIzB,EAAIvO,KAAKiQ,GAAIzB,EAAIxO,KAAKkQ,GAAIkB,EAAIpR,KAAKmQ,GACzF/K,EAAIpF,KAAKoQ,GAAIpB,EAAShP,KAAKgP,OAE7B,IAAK3D,EAAI,GAAIA,EAAI,KAAMA,EAGrBm1E,IADAj3E,EAAKyF,EAAO3D,EAAI,OACF,EAAM9B,GAAM,KAAQA,IAAQ,GAAOA,GAAM,IAAQA,IAAO,EAEtEk3E,IADAl3E,EAAKyF,EAAO3D,EAAI,MACF,GAAO9B,GAAM,KAAQA,IAAQ,GAAOA,GAAM,IAAQA,IAAO,GACvEyF,EAAO3D,GAAK2D,EAAO3D,EAAI,IAAMm1E,EAAKxxE,EAAO3D,EAAI,GAAKo1E,GAAM,EAI1D,IADAK,EAAKh4E,EAAI5C,EACJmF,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACnBrL,KAAK6qB,OACH7qB,KAAKi/E,OACP0B,EAAK,OAELv7E,GADAmE,EAAKyF,EAAO,GAAK,YACR,WAAa,EACtBrJ,EAAI4D,EAAK,UAAY,IAErBo3E,EAAK,UAELv7E,GADAmE,EAAKyF,EAAO,GAAK,WACR,YAAc,EACvBrJ,EAAI4D,EAAK,WAAa,GAExBvJ,KAAK6qB,OAAQ,IAEb21D,GAAM51E,IAAO,EAAMA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAAQA,IAAO,GAAOA,GAAK,IAG9E81E,GADAC,EAAK/1E,EAAI9B,GACG8B,EAAI1E,EAAK46E,EAIrB17E,EAAIO,GAFJ4D,EAAKnE,GAJLq7E,GAAMlyE,IAAO,EAAMA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAGzEA,EAAKC,GAAOD,EAAI6C,GACFI,EAAEnG,GAAK2D,EAAO3D,KAEnB,EACd1F,EAAI4D,GAFCi3E,EAAKE,IAEK,GAEjBF,GAAM76E,IAAO,EAAMA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAAQA,IAAO,GAAOA,GAAK,IAG9E+6E,GADAE,EAAKj7E,EAAIiF,GACGjF,EAAImD,EAAK63E,EAIrBvvE,EAAIlL,GAFJqD,EAAK6H,GAJLqvE,GAAMr7E,IAAO,EAAMA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAGzEA,EAAKmJ,GAAOnJ,EAAIoJ,GACFgD,EAAEnG,EAAI,GAAK2D,EAAO3D,EAAI,KAE3B,EAEdm1E,IADAt6E,EAAIqD,GAFCi3E,EAAKE,IAEK,KACF,EAAMx6E,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAAQA,IAAO,GAAOA,GAAK,IAG9Ew6E,GADAG,EAAK36E,EAAIP,GACGO,EAAI0E,EAAKg2E,EAIrBpyE,EAAI1F,GAFJS,EAAKiF,GAJLiyE,GAAMrvE,IAAO,EAAMA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAGzEA,EAAKhM,GAAOgM,EAAI7C,GACFiD,EAAEnG,EAAI,GAAK2D,EAAO3D,EAAI,KAE3B,EAEdm1E,IADA13E,EAAIS,GAFCi3E,EAAKE,IAEK,KACF,EAAM53E,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAAQA,IAAO,GAAOA,GAAK,IAG9E43E,GADAI,EAAKh4E,EAAI5C,GACG4C,EAAInD,EAAKk7E,EAIrBtyE,EAAI3D,GAFJrB,EAAKgF,GAJLkyE,GAAMjyE,IAAO,EAAMA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAAQA,IAAO,GAAOA,GAAK,KAGzEA,EAAK4C,GAAO5C,EAAIpJ,GACFoM,EAAEnG,EAAI,GAAK2D,EAAO3D,EAAI,KAE3B,EACdT,EAAIrB,GAFCi3E,EAAKE,IAEK,EAGjB1gF,KAAK6P,GAAK7P,KAAK6P,GAAKjF,GAAK,EACzB5K,KAAK8P,GAAK9P,KAAK8P,GAAKhH,GAAK,EACzB9I,KAAK+P,GAAK/P,KAAK+P,GAAK7J,GAAK,EACzBlG,KAAKgQ,GAAKhQ,KAAKgQ,GAAKrK,GAAK,EACzB3F,KAAKiQ,GAAKjQ,KAAKiQ,GAAK1B,GAAK,EACzBvO,KAAKkQ,GAAKlQ,KAAKkQ,GAAK1B,GAAK,EACzBxO,KAAKmQ,GAAKnQ,KAAKmQ,GAAKiB,GAAK,EACzBpR,KAAKoQ,GAAKpQ,KAAKoQ,GAAKhL,GAAK,C,EAG3B85E,OAAOnwE,UAAUgyE,IAAM,WACrB/gF,KAAKugF,WAEL,IAAI1wE,EAAK7P,KAAK6P,GAAIC,EAAK9P,KAAK8P,GAAIC,EAAK/P,KAAK+P,GAAIC,EAAKhQ,KAAKgQ,GAAIC,EAAKjQ,KAAKiQ,GAAIC,EAAKlQ,KAAKkQ,GAClFC,EAAKnQ,KAAKmQ,GAAIC,EAAKpQ,KAAKoQ,GAEtB2wE,EAAMtC,UAAU5uE,GAAO,GAAM,IAAQ4uE,UAAU5uE,GAAO,GAAM,IAC9D4uE,UAAU5uE,GAAO,GAAM,IAAQ4uE,UAAU5uE,GAAO,GAAM,IACtD4uE,UAAU5uE,GAAO,GAAM,IAAQ4uE,UAAU5uE,GAAO,EAAK,IACrD4uE,UAAU5uE,GAAO,EAAK,IAAQ4uE,UAAe,GAAL5uE,GACxC4uE,UAAU3uE,GAAO,GAAM,IAAQ2uE,UAAU3uE,GAAO,GAAM,IACtD2uE,UAAU3uE,GAAO,GAAM,IAAQ2uE,UAAU3uE,GAAO,GAAM,IACtD2uE,UAAU3uE,GAAO,GAAM,IAAQ2uE,UAAU3uE,GAAO,EAAK,IACrD2uE,UAAU3uE,GAAO,EAAK,IAAQ2uE,UAAe,GAAL3uE,GACxC2uE,UAAU1uE,GAAO,GAAM,IAAQ0uE,UAAU1uE,GAAO,GAAM,IACtD0uE,UAAU1uE,GAAO,GAAM,IAAQ0uE,UAAU1uE,GAAO,GAAM,IACtD0uE,UAAU1uE,GAAO,GAAM,IAAQ0uE,UAAU1uE,GAAO,EAAK,IACrD0uE,UAAU1uE,GAAO,EAAK,IAAQ0uE,UAAe,GAAL1uE,GACxC0uE,UAAUzuE,GAAO,GAAM,IAAQyuE,UAAUzuE,GAAO,GAAM,IACtDyuE,UAAUzuE,GAAO,GAAM,IAAQyuE,UAAUzuE,GAAO,GAAM,IACtDyuE,UAAUzuE,GAAO,GAAM,IAAQyuE,UAAUzuE,GAAO,EAAK,IACrDyuE,UAAUzuE,GAAO,EAAK,IAAQyuE,UAAe,GAALzuE,GACxCyuE,UAAUxuE,GAAO,GAAM,IAAQwuE,UAAUxuE,GAAO,GAAM,IACtDwuE,UAAUxuE,GAAO,GAAM,IAAQwuE,UAAUxuE,GAAO,GAAM,IACtDwuE,UAAUxuE,GAAO,GAAM,IAAQwuE,UAAUxuE,GAAO,EAAK,IACrDwuE,UAAUxuE,GAAO,EAAK,IAAQwuE,UAAe,GAALxuE,GACxCwuE,UAAUvuE,GAAO,GAAM,IAAQuuE,UAAUvuE,GAAO,GAAM,IACtDuuE,UAAUvuE,GAAO,GAAM,IAAQuuE,UAAUvuE,GAAO,GAAM,IACtDuuE,UAAUvuE,GAAO,GAAM,IAAQuuE,UAAUvuE,GAAO,EAAK,IACrDuuE,UAAUvuE,GAAO,EAAK,IAAQuuE,UAAe,GAALvuE,GACxCuuE,UAAUtuE,GAAO,GAAM,IAAQsuE,UAAUtuE,GAAO,GAAM,IACtDsuE,UAAUtuE,GAAO,GAAM,IAAQsuE,UAAUtuE,GAAO,GAAM,IACtDsuE,UAAUtuE,GAAO,GAAM,IAAQsuE,UAAUtuE,GAAO,EAAK,IACrDsuE,UAAUtuE,GAAO,EAAK,IAAQsuE,UAAe,GAALtuE,GAO1C,OANKnQ,KAAKi/E,QACR8B,GAAOtC,UAAUruE,GAAO,GAAM,IAAQquE,UAAUruE,GAAO,GAAM,IAC3DquE,UAAUruE,GAAO,GAAM,IAAQquE,UAAUruE,GAAO,GAAM,IACtDquE,UAAUruE,GAAO,GAAM,IAAQquE,UAAUruE,GAAO,EAAK,IACrDquE,UAAUruE,GAAO,EAAK,IAAQquE,UAAe,GAALruE,IAErC2wE,C,EAGT7B,OAAOnwE,UAAU7O,SAAWg/E,OAAOnwE,UAAUgyE,IAE7C7B,OAAOnwE,UAAU0wE,OAAS,WACxBz/E,KAAKugF,WAEL,IAAI1wE,EAAK7P,KAAK6P,GAAIC,EAAK9P,KAAK8P,GAAIC,EAAK/P,KAAK+P,GAAIC,EAAKhQ,KAAKgQ,GAAIC,EAAKjQ,KAAKiQ,GAAIC,EAAKlQ,KAAKkQ,GAClFC,EAAKnQ,KAAKmQ,GAAIC,EAAKpQ,KAAKoQ,GAEtBkG,EAAM,CACRzG,GAAO,GAAM,IAAMA,GAAO,GAAM,IAAMA,GAAO,EAAK,IAAW,IAALA,EACxDC,GAAO,GAAM,IAAMA,GAAO,GAAM,IAAMA,GAAO,EAAK,IAAW,IAALA,EACxDC,GAAO,GAAM,IAAMA,GAAO,GAAM,IAAMA,GAAO,EAAK,IAAW,IAALA,EACxDC,GAAO,GAAM,IAAMA,GAAO,GAAM,IAAMA,GAAO,EAAK,IAAW,IAALA,EACxDC,GAAO,GAAM,IAAMA,GAAO,GAAM,IAAMA,GAAO,EAAK,IAAW,IAALA,EACxDC,GAAO,GAAM,IAAMA,GAAO,GAAM,IAAMA,GAAO,EAAK,IAAW,IAALA,EACxDC,GAAO,GAAM,IAAMA,GAAO,GAAM,IAAMA,GAAO,EAAK,IAAW,IAALA,GAK1D,OAHKnQ,KAAKi/E,OACR3oE,EAAIrV,KAAKmP,GAAO,GAAM,IAAMA,GAAO,GAAM,IAAMA,GAAO,EAAK,IAAW,IAALA,GAE5DkG,C,EAGT4oE,OAAOnwE,UAAUyO,MAAQ0hE,OAAOnwE,UAAU0wE,OAE1CP,OAAOnwE,UAAUiyE,YAAc,WAC7BhhF,KAAKugF,WAEL,IAAIz2E,EAAS,IAAI8X,YAAY5hB,KAAKi/E,MAAQ,GAAK,IAC3CgC,EAAW,IAAIC,SAASp3E,GAW5B,OAVAm3E,EAASE,UAAU,EAAGnhF,KAAK6P,IAC3BoxE,EAASE,UAAU,EAAGnhF,KAAK8P,IAC3BmxE,EAASE,UAAU,EAAGnhF,KAAK+P,IAC3BkxE,EAASE,UAAU,GAAInhF,KAAKgQ,IAC5BixE,EAASE,UAAU,GAAInhF,KAAKiQ,IAC5BgxE,EAASE,UAAU,GAAInhF,KAAKkQ,IAC5B+wE,EAASE,UAAU,GAAInhF,KAAKmQ,IACvBnQ,KAAKi/E,OACRgC,EAASE,UAAU,GAAInhF,KAAKoQ,IAEvBtG,C,EA6DT61E,WAAW5wE,UAAY,IAAImwE,OAE3BS,WAAW5wE,UAAUwxE,SAAW,WAE9B,GADArB,OAAOnwE,UAAUwxE,SAASllE,KAAKrb,MAC3BA,KAAKogF,MAAO,CACdpgF,KAAKogF,OAAQ,EACb,IAAIgB,EAAYphF,KAAKwd,QACrB0hE,OAAO7jE,KAAKrb,KAAMA,KAAKi/E,MAAOj/E,KAAK6/E,cACnC7/E,KAAKqK,OAAOrK,KAAKkgF,SACjBlgF,KAAKqK,OAAO+2E,GACZlC,OAAOnwE,UAAUwxE,SAASllE,KAAKrb,K,GAInC,IAAIjB,QAAUogF,eACdpgF,QAAQ2+E,OAAS3+E,QACjBA,QAAQsiF,OAASlC,cAAa,GAC9BpgF,QAAQ2+E,OAAO4D,KAAO1B,mBACtB7gF,QAAQsiF,OAAOC,KAAO1B,kBAAiB,GAEnCxB,UACFt/E,OAAOC,QAAUA,SAEjBwkE,KAAKma,OAAS3+E,QAAQ2+E,OACtBna,KAAK8d,OAAStiF,QAAQsiF,OAClB/C,KACFzY,QAAO,WACL,OAAO9mE,O,IAId,EA5fA,E,kDCRD,IAAIwiF,EAAkBziF,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQyiF,oBAAsB1iF,EAAAC,QAAQ0iF,mBAAgB,EACtD,MAAMC,EAAUH,EAAgBx/E,cAAA,UAiChCjD,EAAAC,QAAQ0iF,cA3BR,SAAuBr0C,EAAYu0C,GAC/B,MAAMC,EAASx0C,EAAWntB,KAAInV,GAAK,IAAI42E,EAAQhgF,QAAQoJ,EAAEivE,MAAO,MAAK8H,MAAK,CAACj3E,EAAG9B,IAAM8B,EAAEwpB,IAAItrB,KACpFyM,EAAM,IAAImsE,EAAQhgF,QAAQigF,GAC1BG,EAAYF,EAAO3sE,QAAO,CAACrK,EAAG9B,IAAM8B,EAAEhK,IAAIkI,KAChD,GAAIg5E,EAAUv/C,GAAGhtB,GACb,MAAM,IAAIjT,MAAM,0BAGpB,IAAI4xB,EAAO,IAAIwtD,EAAQhgF,QAAQ,GAAIyyB,EAAQ2tD,EAAUlhF,IAAI,IAAI8gF,EAAQhgF,QAAQ,IAC7E,MAAQwyB,EAAKyO,GAAGxO,EAAM/G,IAAI,IAAIs0D,EAAQhgF,QAAQ,MAAM,CAChD,MAAMy3B,EAAMjF,EAAKtzB,IAAIuzB,GAAOoM,IAAI,IAAImhD,EAAQhgF,QAAQ,IACpD,IAAIijB,GAAQ,EACRo9D,EAAa,IAAIL,EAAQhgF,QAAQ,GACrC,IAAK,IAAIyC,EAAI,EAAGA,EAAIy9E,EAAO5gF,SAAUmD,EAEjC,GADA49E,EAAaA,EAAWnhF,IAAIghF,EAAOz9E,GAAGo8B,IAAIpH,IACtC4oD,EAAW1/C,IAAI9sB,GAAM,CACrB2e,EAAOiF,EACPxU,GAAQ,EACR,K,CAGHA,IACDwP,EAAQgF,E,CAGhB,OAAOjF,C,EAmBXp1B,EAAAC,QAAQyiF,oBAXR,SAA6BQ,EAAmBC,GAC5C,MAAMC,EAAgB,IAAItE,IAC1BoE,EAAkBxhF,SAAQsK,GAAKo3E,EAAcx6D,IAAI5c,EAAEq3E,WAAYr3E,KAC/D,MAAMs3E,EAAoB,IAAI7hF,IAAI0hF,EAAehiE,KAAInV,GAAKA,EAAEq3E,cAC5D,MAAO,CACHE,cAAeJ,EAAeztC,QAAO1pC,IAAMo3E,EAAcI,IAAIx3E,EAAEq3E,cAC/DI,kBAAmBP,EAAkBxtC,QAAO1pC,IAAMs3E,EAAkBE,IAAIx3E,EAAEq3E,cAC1EK,kBAAmBP,EAAeztC,QAAO1pC,GAAMo3E,EAAcI,IAAIx3E,EAAEq3E,aAAeD,EAAc5iF,IAAIwL,EAAEq3E,YAAYpI,OAASjvE,EAAEivE,QACxH95D,KAAInV,IAAM,CAAEq7B,QAAS+7C,EAAc5iF,IAAIwL,EAAEq3E,YAAav8C,KAAM96B,M,uFCpDrE23E,EAAkB3jF,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQmuC,aAAU,EAClB,MAAMw1C,EAAUD,EAAgB1gF,cAAA,UAC1B4gF,EAASF,EAAgB1gF,cAAA,U,0JAO/B,MAAM6gF,EAAwBH,EAAgB1gF,cAAA,UAOxC8gF,EAAwB,IAAIH,EAAQhhF,QAAQ,kBAOlD,SAASohF,EAAyBzxC,GAC9B,OAAO/B,KAAKC,MAAMwzC,EAAOjiF,KAAKuwC,GAAUnxC,W,CAK5C,MAAM8iF,EAMEC,YAGA,OAFkBN,EAAOjhF,QAAQ,kBACjCgvC,CAAU,oCACHyG,QAAQC,S,CAEnBx3C,mBACsB+iF,EAAOjhF,QAAQ,uBACjCgvC,CAAU,gC,CAMd9wC,cACI,aAAaI,KAAKwxC,WAAW0xC,SAASrkB,MAAM,WAAW7+D,KAAKF,YAAa,G,CAE7EqjF,qBAAqBC,EAAYC,GAC7B,IAAK,MAAM/iF,KAAU+iF,EACjBp8D,QAAQuL,IAAI,UAAUlyB,EAAOgjF,WAAWtiF,OAAS,EAAI,IAAM,OAAOV,EAAOgjF,WAAWniF,KAAK,SACzFnB,KAAKujF,UAAUH,EAAY9iF,EAAOkjF,KAAM,MACpCljF,EAAOmjF,SACPx8D,QAAQ4qB,KAAK,cAAcuxC,OAAgB9iF,EAAOmjF,U,CAI9DF,UAAUH,EAAYI,EAAM93C,EAAS,IACjC,IAAK,MAAMlZ,KAAOgxD,EACdv8D,QAAQuL,IAAI,GAAGkZ,SAAc03C,OAAgB5wD,I,CAGrD5yB,sBAAsB87E,EAAY2B,GAC9B,MAAMqG,QAAsB1jF,KAAK2jF,cAAcjI,EAAY2B,GAC3D,IAAKqG,EACD,MAAM,IAAIvvC,EAAA7F,WAAuB,yCAAyCtuC,KAAKF,wBAAwBE,KAAKwxC,WAAW3xC,4CAA4CG,KAAKwxC,WAAWisC,UAAW,eAElM,MAAMX,UAAEA,GAAc4G,EAEhBpG,SADct9E,KAAKwxC,WAAW0xC,SAASpD,MAAM,CAAEtvC,SAAU,WACvC2K,OAAOjiC,KACzBxB,IAAUolE,EAAUplE,MAC1B,aAAaksE,EAAAvK,gBAA8BqC,EAAYhkE,EAAO2lE,EAAS1jE,EAAAE,WAAmByjE,GAAYt9E,KAAKwxC,WAAWisC,OAAQz9E,KAAKF,UAAWE,KAAKwxC,WAAW3xC,U,CAOlKD,6BAA6B87E,EAAY2B,GACrC,IAAIntC,EAAQ2zC,EAEZ,MAAMvjF,QAAesiF,EAAsBlhF,QAhEvB,IAFE,GAIM,KA8DgG9B,WACvHswC,EAAQ2zC,SAAkB7jF,KAAKq5E,gBAAgBqC,EAAY2B,GAC5D,MAAM15E,EAAYkgF,EAASrG,YAAY75E,UACvC,IACI,aAAa3D,KAAKwxC,WAAW0xC,SAASY,gBAAgBD,E,CAE1D,MAAOjkE,GACH,GAAmB,iBAAfA,EAAMF,KAGN,OAFAuH,QAAQ4qB,KAAK,wBAAwB6pC,KAAc/hE,EAAAC,WAAmBs2B,6BAC/DlwC,KAAK+jF,0BAA0BpgF,EAAUzD,YACzC,KAGX,MADA0f,EAAMgvC,QAAU,IAAIza,EAAA9F,aAAyB10B,EAAAC,WAAmBs2B,IAC1DtwB,C,KAGd,IAAKtf,EAED,MAAM,IAAI6zC,EAAA7F,WAAuB,4HAA6H,mBAElK,MAAM01C,EAAW,CAAC1jF,EAAOipE,uBAAwBjpE,EAAO2jF,kBAAkBhvE,QAAO,CAAC+rB,EAAKkjD,IAC/EA,EAAGC,QAAQX,KAAKxiF,QACc,iBAAtBkjF,EAAGC,QAAQh1C,QAA4D,iBAA9B+0C,EAAGC,QAAQh1C,OAAOk6B,QAC5DroC,EAAIrkB,OAAO,CACd2mE,WAAcY,EAAGC,QAAQC,YACzBZ,KAAQU,EAAGC,QAAQX,KACnBC,aAA+C,IAA7BS,EAAGC,QAAQh1C,OAAOk6B,QAAyBh5B,EAAAsB,cAA2BuyC,EAAGC,QAAQh1C,OAAOk6B,SAAW,OAIlHroC,GACZ,IAEH,GADAhhC,KAAKmjF,qBAAqBU,EAASrG,YAAY9B,WAAYsI,GAC9B,iBAAlB1jF,EAAO6uC,QAAwD,iBAA1B7uC,EAAO6uC,OAAOk6B,QAE1D,MAAI/oE,EAAO6uC,OAAOk6B,QAAQ53B,eAAiBnxC,EAAO6uC,OAAOk6B,QAAQ33B,WACvD,IAAIyC,EAAA7F,WAAuB,eAAehuC,EAAOipE,oBAAoBp4B,cAAc7wC,EAAO6uC,OAAOk6B,QAAQ53B,gBAAiBnxC,EAAO6uC,OAAOk6B,QAAQ33B,YAGhJrB,EAAA63B,iBAA8B5nE,GAI5C,OAAOA,C,CAEXV,oBAAoB87E,EAAY2B,GAE5B,MAAM15E,QAAkB3D,KAAKwxC,WAAWisC,OAAO35E,aAAa9D,KAAKF,UAAWE,KAAKwxC,WAAW3xC,WAC5F,IAAK8D,EACD,OAAO,KAEX,MAAM0gF,EAAkBrkF,KAAK+jF,0BAA0BpgF,EAAUzD,YACjE,QAAwBqa,IAApB8pE,EACA,MAAO,C,UAAE1gF,EAAWm5E,UAAWuH,GAEnC,IACI,MAAMvH,QAAkB98E,KAAKwxC,WAAW0xC,SAASrkB,MAAM,cAAc7+D,KAAKF,aAAa6D,EAAUzD,aAAc,IAE/G,OADAF,KAAK+jF,0BAA0BpgF,EAAUzD,YAAc48E,EAChD,C,UAAEn5E,E,UAAWm5E,E,CAExB,MAAOvuE,GACH,GAAc,yBAAVA,EAAEmR,KACF,OAAO,KAEX,MAAMnR,C,EASd3O,8BAA8BwjF,EAAYz/E,EAAWf,EAAM0hF,GACvD,MAAMxH,EAAY8G,EAAA9I,sBACZ96E,KAAKukF,uBAAuBnB,EAAY,CAACQ,EAAAzJ,gBAA+ByJ,EAAA5J,SAAuBsK,GAASV,EAAA9J,OAAqB35E,EAAAyB,UAAqBd,KAAK6C,GAAYm5E,GAAY8G,EAAA1J,eAA6Bt3E,KAElN,OADwB,IAAIogF,EAAQhjF,KAAKwxC,WAAY4xC,E,CAQzDxjF,gBAAgB87E,EAAY4I,GACxB,OAAOtkF,KAAKukF,uBAAuB7I,EAAY,CAACkI,EAAA5J,SAAuBsK,I,CAO3E1kF,oBAAoB4kF,EAAc7gF,EAAW2gF,GACzC,MAAMxH,EAAY8G,EAAA9I,gBAClB,OAAO96E,KAAKukF,uBAAuBC,EAAc,CAACZ,EAAAzJ,gBAA+ByJ,EAAA5J,SAAuBsK,GAASV,EAAA9J,OAAqB35E,EAAAyB,UAAqBd,KAAK6C,GAAYm5E,I,CAMhLl9E,oBAAoBm9E,GAChB,OAAO/8E,KAAKukF,uBAAuBvkF,KAAKF,UAAW,CAAC8jF,EAAAhK,cAA4BmD,I,CAMpFn9E,qBAAqBgD,GACjB,OAAO5C,KAAKukF,uBAAuBvkF,KAAKF,UAAW,CAAC8jF,EAAA1J,eAA6Bt3E,I,CAWrFhD,mBAAmBwjF,EAAY7G,EAAYx+D,EAAMy+D,EAAK8H,GAGlD,OAFAvmE,EAAOA,GAAQ,GACf/d,KAAKykF,aAAa1mE,GACX/d,KAAKukF,uBAAuBnB,EAAY,CAACQ,EAAA3J,aAA2BsC,EAAYx+D,EAAMy+D,GAAOqG,EAAuByB,I,CAU/H1kF,aAAa+D,EAAWy/E,EAAYzH,EAAa2I,GAO7C,IAAIxH,EAOJ,OAbKnB,IACDA,EAAc,IAEb96E,MAAM8hB,QAAQg5D,KACfA,EAAc,CAACA,IAOfmB,EAJCsG,EAIWQ,EAAA/I,sBAAoCuI,EAAYzH,EAAa2I,GAH7DV,EAAA9I,gBAKT96E,KAAKukF,uBAAuBvkF,KAAKF,UAAW,CAAC8jF,EAAA9J,OAAqB35E,EAAAyB,UAAqBd,KAAK6C,GAAYm5E,I,CAMnHl9E,gBAAgB+D,GACZ,OAAO3D,KAAKukF,uBAAuBvkF,KAAKF,UAAW,CAAC8jF,EAAA/J,UAAwB15E,EAAAyB,UAAqBd,KAAK6C,K,CAO1G/D,YAAY+D,EAAW2gF,GACnB,OAAOtkF,KAAKukF,uBAAuBvkF,KAAKF,UAAW,CAAC8jF,EAAA7J,MAAoBuK,EAAQnkF,EAAAyB,UAAqBd,KAAK6C,K,CAE9G8gF,aAAa1mE,GAET,UADyCxD,IAApBwD,EAAKoE,YAA4BpE,EAAKoE,aAAepE,EAAK/c,UAI3EH,MAAM8hB,QAAQ5E,IAAyB,iBAATA,GAC9B,MAAM,IAAI2xB,EAAAy3B,mB,CASlBvnE,mBAAmBwjF,EAAY7G,EAAYx+D,GAAMwxB,MAAEA,EAAQuzC,GAA6B,IACpF/kE,EAAOA,GAAQ,GACf/d,KAAKykF,aAAa1mE,GAClB,MAAMzd,QAAeN,KAAKwxC,WAAW0xC,SAASrkB,MAAM,QAAQukB,KAAc7G,IAAc5iE,EAAAC,WAAmB01B,KAAKc,UAAUryB,KAI1H,OAHIzd,EAAOkjF,MACPxjF,KAAKujF,UAAUH,EAAY9iF,EAAOkjF,MAE/BljF,EAAOA,QAAUA,EAAOA,OAAOU,OAAS,GAAKuuC,EAAMwzC,EAAOjiF,KAAKR,EAAOA,Q,CAWjFV,gBAAgB8rC,EAAQ6E,GACpB,MAAME,QAAEA,EAAOD,SAAEA,GAAaD,GAAc,IACtCxvC,OAAEA,SAAiBf,KAAKwxC,WAAW0xC,SAASrkB,MAAM,CACpD6lB,aAAc,aACd/zC,SAAUF,EACVD,SAAUC,OAAUl2B,EAAYi2B,GAAY,aAC5C2xC,WAAYniF,KAAKF,UACjB6kF,cAAe5B,EAAOjiF,KAAK4qC,GAAQxrC,SAAS,YAEhD,OAAOa,EAAOkf,KAAI,EAACxf,IAAEA,EAAGzB,MAAEA,MAAa,CACnCyB,IAAKsiF,EAAOjiF,KAAKL,EAAK,UACtBzB,MAAO+jF,EAAOjiF,KAAK9B,EAAO,a,CAMlCY,sBACI,MAAMyxC,QAAiBrxC,KAAKwxC,WAAW0xC,SAASrkB,MAAM,cAAc7+D,KAAKF,YAAa,IAItF,OAAIe,MAAM8hB,QAAQ0uB,GACPA,EAEJA,EAASpxC,I,CAMpBL,0BAGI,MAAMglF,QAAmB5kF,KAAK6kF,gBACxBvkF,EAAS,CAAEwkF,eAAgB,GAAIz3C,aAAc,IAWnD,OAVAu3C,EAAW3kE,KAAKT,IACZ,QAAgDjF,IAA5CiF,EAAKulE,WAAWvJ,WAAWf,aAA4B,CACvD,MAAMuK,EAAOxlE,EAAKulE,WAAWvJ,WAAWf,aACxCn6E,EAAOwkF,eAAe7jF,KAAK,CACvBmiF,WAAY4B,EAAKC,YACjBX,OAAQU,EAAKpJ,UACbj4E,UAAW6b,EAAK0lE,Y,KAIrB5kF,C,CAMXV,0BACI,MAAMulF,QAAuBnlF,KAAKwxC,WAAW0xC,SAASkC,4BAA4B,CAAE50C,SAAU,UACxFqX,QAAc7nD,KAAK6nD,QACnBw9B,EAAc,IAAI3C,EAAQhhF,QAAQyjF,EAAeG,eAAeC,yBAChEC,EAAc,IAAI9C,EAAQhhF,QAAQmmD,EAAM49B,eAAe17D,IAAIs7D,GAC3DK,EAAS,IAAIhD,EAAQhhF,QAAQmmD,EAAM89B,QACnCC,EAAe,IAAIlD,EAAQhhF,QAAQmmD,EAAMy8B,QAAQ1jF,IAAI8kF,GACrDG,EAAmBD,EAAax4D,IAAIs1D,EAAQhhF,QAAQumB,IAAIy9D,EAAQF,IACtE,MAAO,CACHzwD,MAAO6wD,EAAa1lF,WACpBslF,YAAaA,EAAYtlF,WACzBwlF,OAAQA,EAAOxlF,WACf4lF,UAAWD,EAAiB3lF,W,CA1TpCkB,YAAYowC,EAAY1xC,GACpBE,KAAK+jF,0BAA4B,GACjC/jF,KAAKwxC,WAAaA,EAClBxxC,KAAKF,UAAYA,C,EA2TzBhB,EAAAC,QAAQmuC,QAAU81C,C,kDCjWlB,IAAArwC,EAAA5wC,cAAA,S,gCACIgkF,EAAoD,SAAUvkF,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQinF,WAAalnF,EAAAC,QAAQknF,gBAAkBnnF,EAAAC,QAAQmnF,yBAA2BpnF,EAAAC,QAAQonF,sBAAwBrnF,EAAAC,QAAQqnF,wBAA0BtnF,EAAAC,QAAQsnF,iBAAmBvnF,EAAAC,QAAQunF,aAAexnF,EAAAC,QAAQwnF,mBAAqBznF,EAAAC,QAAQynF,0BAAuB,EAClQ,MAAMC,EAAUV,EAAgBhkF,cAAA,U,0JAOhCjD,EAAAC,QAAQynF,qBAAuB,oBAC/B1nF,EAAAC,QAAQwnF,mBAAqB,IAAIE,EAAQ/kF,QAAQglF,EAAA1O,gBAAyB,MAC1El5E,EAAAC,QAAQunF,aAAe,IAAIG,EAAQ/kF,QAAQ,mBAC3C5C,EAAAC,QAAQsnF,iBAAmB,IAAII,EAAQ/kF,QAAQ,KAC/C5C,EAAAC,QAAQqnF,wBAA0B,CAAC,cAAe,0BAA2B,iBAAkB,WAC/FtnF,EAAAC,QAAQonF,sBAAwB,CAAC,oBAAqB,oBACtDrnF,EAAAC,QAAQmnF,yBAA2B,CAAC,WAGpC,IAAIS,EAAkB,CAClB,CAAC7nF,EAAAC,QAAQynF,sBAAuB,MAEpC,MAAMI,UAAwB/4C,EAAAX,QAO1BttC,wCAAwC87E,EAAY2B,GAChD,OAAOh8E,MAAMkjF,uBAAuB7I,EAAY2B,E,CAEpDz9E,6BAA6B87E,EAAY2B,GACrC,MAAMv9E,UAAEA,GAAcE,KACtB,GAAIA,KAAK6mF,eAAexJ,GACpB,aAAah8E,MAAMkjF,uBAAuBzkF,EAAWu9E,SAEnDr9E,KAAK8mF,4BACX,MAAMC,QAAkB/mF,KAAKgnF,kBAC7BhnF,KAAKinF,WAAW,C,UAAEnnF,E,UAAWinF,E,QAAW1J,IACxC,MAAMt/D,EAAOmpE,EAAOpmF,KAAKwuC,KAAKc,UAAU,CACpCW,QAAS,CACLk0C,YAAavJ,EACb2B,QAAS8J,EAAe9J,EAASv9E,EAAW47E,OAG9Cp7E,QAAee,MAAMkjF,uBAAuBzkF,EAAW,CACzD8jF,EAAA3J,aAA2B,0BAA2Bl8D,EAAMjf,EAAAC,QAAQunF,aAAcxnF,EAAAC,QAAQsnF,oBAK9F,OAHIrmF,KAAKonF,0BACCpnF,KAAKonF,mBAAmB9mF,GAE3BA,C,CAEXV,kCACI,MAAMynF,SAAEA,GAAarnF,KACfsnF,QAAoBtnF,KAAKunF,gBAC/B,IAAK,MAAMC,KAAcF,EACrB,UACUD,EAASI,eAAe,C,WAAED,G,CAEpC,MAAOj5E,GACH0Y,QAAQ4qB,KAAK,iF,EAKzBjyC,wBACI,OAAOI,KAAKqnF,SAASK,mB,CAEzB9nF,sBACI,OAAOI,KAAKqnF,SAASM,kB,CAEzBd,eAAexJ,GACX,OAAOA,GAAWA,EAAQ,IAAMA,EAAQ,GAAGpD,cAAuD,mBAAvCoD,EAAQ,GAAGpD,aAAasC,U,CAEvFqL,aACI,OAAI5nF,KAAK6nF,QACEv4C,KAAKC,MAAMvvC,KAAK6nF,QAAQv8C,QAAQxsC,EAAAC,QAAQynF,uBAAyB,MAErEG,EAAgB7nF,EAAAC,QAAQynF,qB,CAEnCS,WAAWrkF,GACP,GAAI5C,KAAK6nF,QACL,OAAO7nF,KAAK6nF,QAAQz8C,QAAQtsC,EAAAC,QAAQynF,qBAAsBl3C,KAAKc,UAAUxtC,IAE7E+jF,EAAgB7nF,EAAAC,QAAQynF,sBAAwB5jF,C,CA/DpDxB,YAAYowC,EAAY1xC,EAAWopC,GAC/B7nC,MAAMmwC,EAAY1xC,GAClBE,KAAK6nF,QAAU3+C,EAAQ2+C,QACvB7nF,KAAKonF,mBAAqBl+C,EAAQk+C,mBAClCpnF,KAAKqnF,SAAWS,EAAY9nF,K,EA8DpClB,EAAAC,QAAQknF,gBAAkBW,EA+I1B9nF,EAAAC,QAAQinF,WA9IR,cAAyBY,EAYrBhnF,6BAA6B87E,EAAY2B,SAC/Bh8E,MAAMkjF,uBAAuB7I,EAAY2B,SAEzCr9E,KAAK+nF,WACX,MAAMznF,QAAeN,KAAKgoF,kBAI1B,OAHIhoF,KAAKioF,uBACCjoF,KAAKioF,gBAAgB3nF,GAExBA,C,CAGXV,qBAAqBsoF,GACjB,MAAMpoF,UAAEA,GAAcE,KAChBmoF,SAAyBnoF,KAAKooF,sBAAsBxlF,KACrD4xC,QAAO,EAAC/0B,KAAEA,EAAI9b,UAAEA,MAA0B,WAAT8b,GAA8B,WAATA,IAAoC,OAAd9b,IAC5Esc,KAAKooE,GAAOA,EAAG1kF,YACd2kF,SAAiBtoF,KAAK6kF,iBACvBrwC,QAAO,EAAC0wC,WAAEA,EAAYH,YAAYvJ,WAAEA,MAAkC,eAAfA,IAAgC2M,EAAgB3/D,SAAS08D,KAChHjlE,KAAKsoE,GAAOA,EAAGrD,aACfjlE,IAAIuoE,GACHC,EAAiBD,SAAYxoF,KAAK0oF,eAAe,oBAAqB,C,UAAE5oF,KAAc6D,WACtFglF,EAAUzB,EAAOpmF,KAAKwuC,KAAKc,UAAU,CAAEw4C,kBAAqB,KAC5DvL,EAAU,IACTiL,EAAQroE,KAAKtL,GAAOivE,EAAA/J,UAAwBllE,QAC5C2zE,EAAQroE,KAAKtL,GAAOivE,EAAA9J,OAAqBnlE,EAAIivE,EAAA/I,sBAAoC/6E,EAAWhB,EAAAC,QAAQqnF,wBAAyB,SAChIxC,EAAA9J,OAAqB2O,EAAgB7E,EAAA/I,sBAAoC/6E,EAAWhB,EAAAC,QAAQmnF,yBAA0B,OACtHtC,EAAA1J,eAA6BgO,IAMjC,MAJuC,4CAA5BloF,KAAK6nD,SAASghC,WACrBxL,EAAQp8E,KAAK2iF,EAAA3J,aAA2B,MAAO0O,EAAS7pF,EAAAC,QAAQunF,aAAcxnF,EAAAC,QAAQsnF,mBAE1Fp/D,QAAQuL,IAAI,kCAAmC1yB,SAClCuB,MAAMynF,kCAAkChpF,EAAWu9E,E,CAEpEz9E,cAAcsoF,GACV,MAAMpoF,UAAEA,GAAcE,KAEhB+oF,SADmB/oF,KAAK6kF,iBACHrwC,QAAO,EAACuwC,WAAEA,KAAiBA,GAAcA,EAAWvJ,YAAcuJ,EAAWvJ,WAAWf,cAC/GsK,EAAWvJ,WAAWf,aAAawK,cAAgBnlF,GACnDilF,EAAWvJ,WAAWf,aAAauO,cACwB,IAA3DjE,EAAWvJ,WAAWf,aAAauO,aAAahoF,QAChD+jF,EAAWvJ,WAAWf,aAAauO,aAAaxgE,SAAS,6BACvDigE,EAAiBtoF,EAAAyB,UAAqBd,YAAYd,KAAK0oF,eAAe,oBAAqB,C,UAAE5oF,KAAc6D,WAC3G05E,EAAU,CACZuG,EAAA/J,UAAwB4O,MACrBM,EAAQ9oE,KAAI,EAACilE,WAAEA,KAAiBtB,EAAA/J,UAAwBqL,QACxD6D,EAAQ9oE,KAAI,EAACilE,WAAEA,KAAiBtB,EAAA9J,OAAqBoL,EAAY,QACpEtB,EAAA1J,eAA6BgO,IAGjC,OADAjhE,QAAQuL,IAAI,oBAAqB1yB,SACpBE,KAAKukF,uBAAuBzkF,EAAWu9E,E,CAExDz9E,wBACI,MAAME,UAAEA,GAAcE,MAChB+mF,UAAEA,EAAS1J,QAAEA,GAAYr9E,KAAK4nF,aACpC,GAAI5nF,KAAK6mF,eAAexJ,GACpB,OAEJ,MAAMpsC,QAAejxC,KAAKipF,eAM1B,aALMjpF,KAAK0oF,eAAe,YAAa,C,UACnC5oF,E,OACAmxC,E,UACA81C,IAEGA,C,CAEXnnF,qBAAqBqxC,GACjB,MAAM,IAAI3uC,MAAM,4K,CAEpB1C,wBACI,MAAMqxC,QAAejxC,KAAKipF,eACpBC,QAAqBlpF,KAAKmpF,QAAQl4C,GACxC,IAGI,aAFqBjxC,KAAKopF,WAAWF,E,CAIzC,MAAO36E,GAEH,GADA0Y,QAAQ4qB,KAAK,kCAAmCtjC,GAC5CA,EAAErO,WAAWsoB,SAAS,8BAAgCja,EAAErO,WAAWsoB,SAAS,sBAC5E,aAAaxoB,KAAKgoF,kBAEtB,MAAMz5E,C,EAGd3O,wBAAwBspF,GACpB,MAAMppF,UAAEA,GAAcE,KAChB+wC,EAAU/wC,KAAK4nF,aACrB,IAAK72C,EACD,MAAM,IAAIzuC,MAAM,sBAEpB,MAAMykF,UAAEA,GAAch2C,EACtB,aAAa/wC,KAAK0oF,eAAe,cAAe,C,UAC5C5oF,E,aACAopF,E,UACAnC,G,CAGRnnF,2BACI,MAAME,UAAEA,GAAcE,KACtB,MAAO,C,UACHF,EACA8C,WAAY5C,KAAK0oF,eAAe,2BAA4B,C,UAAE5oF,I,CAGtEF,qBACI,IAAIgD,KAAEA,SAAe5C,KAAKooF,qBAI1B,GAHIxlF,GAAQA,EAAK5B,SACb4B,EAAOA,EAAKymF,MAAMzgF,GAAiC,IAA3BA,EAAE6W,KAAKtB,QAAQ,YAEtCvb,EACD,OAAO,KACX,MAAM6c,KAAEA,EAAI6pE,OAAEA,GAAW1mF,EACzB,MAAO,C,KAAE6c,E,OAAM6pE,E,CAEnB1pF,qBACI,MAAME,UAAEA,GAAcE,KAEhBupF,SADcvpF,KAAKwxC,WAAW0xC,SAASpD,MAAM,CAAEtvC,SAAU,WACrC2K,OAAOquC,OAAOtpF,WAClCupF,QAAezpF,KAAKwxC,WAAWisC,OAAOE,YAAYuJ,EAAOpmF,KAAKyoF,GAAczpF,EAAWE,KAAKwxC,WAAW3xC,WAE7G,MAAO,C,YAAE0pF,E,qBADoBrC,EAAOpmF,KAAK2oF,EAAO5lF,WAAW3D,SAAS,U,CAGxEN,qBAAqBuwC,EAAM4D,GACvB,aAAazC,EAAAC,UAAgBvxC,KAAK0pF,UAAYv5C,EAAMb,KAAKc,WAAU,EAAAuC,EAAAjxC,SAAA,GAC5DqyC,QACO/zC,KAAK2pF,iB,CAzIvBvoF,YAAYowC,EAAY1xC,EAAWopC,GAC/B7nC,MAAMmwC,EAAY1xC,EAAWopC,GAC7BlpC,KAAK0pF,UAAY,kCACjB1pF,KAAK0pF,UAAYxgD,EAAQwgD,WAAa1pF,KAAK0pF,UAC3C1pF,KAAK6nF,QAAU3+C,EAAQ2+C,QACvB7nF,KAAK+nF,SAAW7+C,EAAQ6+C,UAAY/nF,KAAK4pF,gBACzC5pF,KAAKmpF,QAAUjgD,EAAQigD,SAAWnpF,KAAK6pF,eACvC7pF,KAAKopF,WAAalgD,EAAQkgD,YAAcppF,KAAK8pF,kBAC7C9pF,KAAKioF,gBAAkB/+C,EAAQ++C,gBAC/BjoF,KAAKqnF,SAAWS,EAAY9nF,K,GAsIpC,MAAMwoF,EAAQ7zE,GAAOxU,EAAAyB,UAAqBd,KAAK6T,GAEzCmzE,EAAez7C,GACV,IAAI6B,EAAAlB,SAAoBX,EAASA,EAAQvsC,UAAW,CACvDiqF,YAAajrF,EAAAC,QAAQonF,sBACrB6D,cAAelrF,EAAAC,QAAQqnF,0BAGzBe,EAAiB,CAAC9J,EAASv9E,EAAW47E,IAAe2B,EAAQp9D,KAAKrV,IACpE,MAAM8U,EAAO9U,EAAEqgC,MACTuxC,IAAEA,EAAG74E,UAAEA,EAAS44E,WAAEA,EAAUx+D,KAAEA,EAAI0+D,QAAEA,EAAOK,UAAEA,EAAS5+D,KAAEA,GAAStT,EAAE8U,GACnEuqE,EAAS,CACXvqE,KAAMA,EAAK,GAAGvc,cAAgBuc,EAAKwF,OAAO,GAC1Cs3D,IAAKA,GAAQA,EAAIt8E,iBAAeqa,EAChC2qE,WAAYvhF,IAbUgR,EAayBhR,EAblBgR,EAAGzU,WAAWgoB,QAAQ,WAAY,WAaD3N,EAC9D2vE,YAAa3N,EACbx+D,KAAMA,GAASmpE,EAAOpmF,KAAKid,GAAM7d,SAAS,gBAAcqa,EACxD2D,KAAMA,GAASgpE,EAAOpmF,KAAKod,GAAMhe,SAAS,gBAAcqa,EACxD+pE,OAAQ7H,GAAYA,EAAQv8E,iBAAeqa,EAC3CkiE,QAASA,GAAYA,EAAQv8E,YAAe,IAC5Cs7E,gBAAYjhE,GAnBS,IAAC5F,EAqB1B,GAAImoE,IACIpB,IAAe57E,GAA2C,eAA9Bg9E,EAAUtB,WAAWvwC,OACjDg/C,EAAOzO,WAAa,CAChByJ,YAAanlF,EACb87E,UAAW98E,EAAAC,QAAQwnF,mBAAmBrmF,WACtC8oF,aAAclqF,EAAAC,QAAQqnF,0BAGI,iBAA9BtJ,EAAUtB,WAAWvwC,MAAyB,CAC9C,MAAQywC,WAAYuJ,EAAatJ,YAAaqN,EAAYpN,UAAEA,GAAckB,EAAUtB,WAAWvB,aAC/FgQ,EAAOzO,WAAa,C,YAChByJ,EACArJ,UAAWA,GAAcA,EAAU17E,iBAAeqa,E,aAClDyuE,E,CAIZ,OAAOiB,CAAM,G,kDCnRjB,IAAIE,EAAkBrrF,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQiuC,cAAW,EACnB,MAAMo9C,EAAUD,EAAgBpoF,cAAA,U,sDAIhC,SAASsoF,EAAatqE,EAAMg0B,GACxB,MAAO,CACHh0B,CAACA,GAAK,IAAIhC,IACCg2B,KAAQh2B,IAErBgC,E,CAEN,MAAMuqE,EAAgBnlF,GAAMA,QAAsBoV,IAAjBpV,EAAEgd,YAA4Bhd,EAAEgd,aAAehd,EAAEnE,OAC5EupF,EAAYplF,GAA4C,oBAAtCvG,OAAOmQ,UAAU7O,SAASmb,KAAKlW,GAqCvDrG,EAAAC,QAAQiuC,SAjCR,MACI5rC,YAAYirC,EAAS+2C,EAAYoH,GAC7BxqF,KAAKqsC,QAAUA,EACfrsC,KAAKojF,WAAaA,EAClB,MAAM2G,YAAEA,EAAc,GAAEC,cAAEA,EAAgB,IAAOQ,EACjDT,EAAYvpF,SAAS+7E,IACjB39E,OAAOC,eAAemB,KAAMu8E,EAAY,CACpC7tD,UAAU,EACVrvB,YAAY,EACZL,MAAOqrF,EAAa9N,GAAY38E,MAAOme,EAAO,GAAImrB,EAAU,MAAOuhD,KAC/D,GAAIA,EAAQzpF,SAAYupF,EAASxsE,KAASusE,EAAavsE,KAAWwsE,EAASrhD,GACvE,MAAM,IAAIwG,EAAAy3B,oBAEd,OAAOnnE,KAAKqsC,QAAQq+C,aAAa1qF,KAAKojF,WAAY7G,EAAYx+D,EAAMmrB,EAAQ,KAElF,IAEN8gD,EAAcxpF,SAAS+7E,IACnB39E,OAAOC,eAAemB,KAAMu8E,EAAY,CACpC7tD,UAAU,EACVrvB,YAAY,EACZL,MAAOqrF,EAAa9N,GAAY38E,MAAOme,EAAO,GAAIy+D,EAAK8H,KAAWmG,KAC9D,GAAIA,EAAQzpF,SAAYupF,EAASxsE,KAASusE,EAAavsE,GACnD,MAAM,IAAI2xB,EAAAy3B,qBAgBlC,SAAwBwjB,GACpB,MAAMC,EAAS,+BACf,IAAK,MAAMtjB,KAAW1oE,OAAOqB,KAAK0qF,GAAS,CACvC,MAAMnjB,EAAWmjB,EAAOrjB,GACxB,GAAIE,IAAa4iB,EAAQ1oF,QAAQyxB,KAAKq0C,IAAaj1C,MAAMi1C,GACrD,MAAM,IAAI93B,EAAAw3B,kBAA2BI,EAASsjB,EAAQpjB,E,EAnB9CqjB,CAAe,C,IAAErO,E,OAAK8H,IACtB,MAAMwG,QAAkB9qF,KAAKqsC,QAAQ4tC,aAAaj6E,KAAKojF,WAAY7G,EAAYx+D,EAAMy+D,EAAK8H,GAC1F,OAAOnwC,EAAA5F,yBAAqCu8C,EAAU,KAE5D,G,oDClDdlsF,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQgsF,kBAAoBjsF,EAAAC,QAAQisF,oBAAsBlsF,EAAAC,QAAQksF,oBAAiB,E,6BAKnF,MAAMC,GAENpsF,EAAAC,QAAQksF,eAAiBC,EAiBzBpsF,EAAAC,QAAQisF,oBAhBR,cAAkCE,EAY9BtrF,oBAAoB4kF,EAAc7gF,SACxB3D,KAAKmrF,cAAchR,cAAcqK,EAAc7gF,EAAW3D,KAAKorF,e,CAZzEhqF,YAAY+pF,EAAeC,GACvB/pF,QACArB,KAAKmrF,cAAgBA,EACrBnrF,KAAKorF,eAAiBA,C,GA8B9BtsF,EAAAC,QAAQgsF,kBAjBR,cAAgCG,EAa5BtrF,oBAAoB4kF,EAAc7gF,SACxB2tC,EAAAC,UAAgB,GAAGvxC,KAAK0pF,oBAAqBp6C,KAAKc,UAAU,C,aAAEo0C,EAAc6G,oBAAqB1nF,EAAUzD,a,CAbrHkB,YAAYowC,EAAYk4C,GACpBroF,QACArB,KAAKwxC,WAAaA,EAClBxxC,KAAK0pF,UAAYA,C,oDC9BzB9qF,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQkuC,gBAAa,E,sDAgCrB,MAAMq+C,EASF5oF,kBAAkBkrE,GACd,MAAMsV,EAnCd,SAAqBtV,GACjB,OAAQA,EAAOluD,MACX,UAAKnF,EACD,OAAOqzD,EACX,IAAK,kBAAmB,OAAO,IAAIz5B,EAAA1F,gBAA4Bm/B,EAAO7vD,KAAK+zB,KAC3E,QAAS,MAAM,IAAIxvC,MAAM,yBAAyBsrE,EAAOluD,Q,CA8BxC6rE,CAAY3d,EAAOsV,UAC9BzF,EAxBd,SAAmB7P,GACf,OAAQA,EAAOluD,MACX,UAAKnF,EACD,OAAOqzD,EACX,IAAK,iBACD,OAAO,IAAI3/B,EAAAlB,eAAwB6gC,EAAO7hC,UAE9C,QAAS,MAAM,IAAIzpC,MAAM,uBAAuBsrE,EAAOluD,Q,CAiBxC8rE,CAAU5d,EAAO6P,QAChC,OAAO,IAAI6N,EAAW1d,EAAO/tE,UAAWqjF,EAAUzF,E,CAXtDr8E,YAAYvB,EAAWqjF,EAAUzF,GAC7Bz9E,KAAKH,UAAYA,EACjBG,KAAKkjF,SAAWA,EAChBljF,KAAKy9E,OAASA,C,EAWtB3+E,EAAAC,QAAQkuC,WAAaq+C,C,kDChDrB,IAAIG,EAAkB3sF,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQguC,eAAiBjuC,EAAAC,QAAQ+tC,YAAS,EAC1C,MAAM4+C,EAAcD,EAAgB1pF,cAAA,U,sDAMpC,MAAM4pF,GAEN7sF,EAAAC,QAAQ+tC,OAAS6+C,EAIjB,MAAMC,UAAuBD,EAczBjpF,yBAAyB7C,EAAWC,EAAWC,GAC3C,MAAMgsC,EAAW,IAAIvsC,EAAAL,iBAErB,aADM4sC,EAASD,OAAOjsC,EAAWC,EAAWC,GACrC,IAAI6rF,EAAe7/C,E,CAQ9BnsC,gBAAgBE,EAAWD,GACvB,MAAME,EAAUI,EAAAC,QAAmBiD,WAAW,WAE9C,aADMrD,KAAK+rC,SAASD,OAAOjsC,EAAWC,EAAWC,GAC1CA,EAAQ+D,c,CAQnBlE,mBAAmBE,EAAWD,GAC1B,MAAME,QAAgBC,KAAK+rC,SAASC,OAAOnsC,EAAWC,GACtD,OAAgB,OAAZC,EACO,KAEJA,EAAQ+D,c,CAQnBlE,kBAAkB6D,EAAS3D,EAAWD,GAClC,MAAMqZ,EAAO,IAAI1U,WAAWknF,EAAYhqF,QAAQg8E,OAAOlgE,MAAM/Z,IAC7D,IAAK3D,EACD,MAAM,IAAIwC,MAAM,+CAEpB,MAAMvC,QAAgBC,KAAK+rC,SAASC,OAAOnsC,EAAWC,GACtD,GAAgB,OAAZC,EACA,MAAM,IAAIuC,MAAM,WAAWxC,kBAA0BD,KAEzD,OAAOE,EAAQwD,KAAK2V,E,CAExBhZ,WACI,MAAO,kBAAkBF,KAAK+rC,W,CA5DlC3qC,YAAY2qC,GACR1qC,QACArB,KAAK+rC,SAAWA,C,EA6DxBjtC,EAAAC,QAAQguC,eAAiB6+C,C,kDCjFzB,IAAIC,EAAkB/sF,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQ8tC,UAAO,EACf,MAAMi/C,EAAUD,EAAgB9pF,cAAA,U,wGAoEhCjD,EAAAC,QAAQ8tC,KA/DR,MAyBIjtC,cAAcE,GAEV,OADgB,IAAI+tC,EAAAX,QAAkBltC,KAAKwxC,WAAY1xC,E,CAQ3DF,oBAAoBE,EAAW6D,GAC3B,IAAK3D,KAAKwtC,eACN,MAAM,IAAIlrC,MAAM,+FAGpB,aADMtC,KAAKwtC,eAAe2sC,cAAcr6E,EAAW6D,GAC5C,IAAIkqC,EAAAX,QAAkBltC,KAAKwxC,WAAY1xC,E,CAOlDF,mBAAmBwjF,EAAYl6C,GAC3B,MAAMmD,EAAU,IAAIwB,EAAAX,QAAkBltC,KAAKwxC,WAAYtI,EAAQ6iD,QAC/D,OAAO,IAAI79C,EAAAlB,SAAoBX,EAAS+2C,EAAYl6C,E,CAQxDtpC,iBAAiB0kF,EAAQ0H,EAAY7/B,GACjCllC,QAAQ4qB,KAAK,uEACb,MAAMxF,EAAU,IAAIwB,EAAAX,QAAkBltC,KAAKwxC,WAAYw6C,GAEvD,aADqB3/C,EAAQ4/C,UAAU9/B,EAAUm4B,IACnC/a,oBAAoBp4B,E,CA3DtC/vC,YAAYwsE,GAOR,GANA5tE,KAAK4tE,OAASA,EACd5tE,KAAKwxC,WAAaxD,EAAAf,WAAwBi/C,WAAW,CACjDrsF,UAAW+tE,EAAO/tE,UAClBqjF,SAAU,CAAExjE,KAAM,kBAAmB3B,KAAM,CAAE+zB,IAAK87B,EAAOue,UACzD1O,OAAQ7P,EAAO6P,QAAU,CAAE/9D,KAAM,iBAAkBqsB,SAAU6hC,EAAO7hC,UAAY6hC,EAAOwe,KAAKrgD,YAE5F6hC,EAAOud,cAAe,CAGtB,MAAMC,EAAiBxd,EAAOwd,eAAiB,IAAIU,EAAQpqF,QAAQksE,EAAOwd,gBAAkB,IAAIU,EAAQpqF,QAAQ,+BAChH1B,KAAKwtC,eAAiB,IAAI6+C,EAAArB,oBAAsC,IAAIn9C,EAAAX,QAAkBltC,KAAKwxC,WAAYo8B,EAAOud,eAAgBC,E,MAEzHxd,EAAO8b,UACZ1pF,KAAKwtC,eAAiB,IAAI6+C,EAAAtB,kBAAoC/qF,KAAKwxC,WAAYo8B,EAAO8b,WAGtF1pF,KAAKwtC,eAAiB,I,wFC5B9B8+C,EAAkBxtF,EAACC,SAAQD,EAAAC,QAAKwC,iBAAoB,SAAUC,GAC9D,OAAOA,GAAQA,EAAIC,WAAcD,EAAM,CAAEE,QAAWF,E,EAExD5C,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQ6tC,uBAAyB9tC,EAAAC,QAAQ4tC,cAAgB7tC,EAAAC,QAAQ2tC,sBAAmB,EACpF,MAAM6/C,EAASD,EAAgBvqF,cAAA,U,iIAM/B,MAGMyqF,EAA4B,cAClC,MAAMC,EAoBFC,aACI,QAAS1sF,KAAK2sF,UAAU7sF,S,CAO5B8sF,eACI,OAAO5sF,KAAK2sF,UAAU7sF,WAAa,E,CAevCF,oBAAoBitF,EAAsB,GAAIttC,EAAOutC,EAAYC,GAC7D,IAAI7jD,EACJ,GAAmC,iBAAxB2jD,EAAkC,CACvBN,EAAO7qF,QAAQ,mCACjCgvC,CAAU,wFACVxH,EAAU,CAAEk6C,WAAYyJ,E,WAAqBC,E,WAAYC,E,MAGzD7jD,EAAU2jD,EAEd,MAAMG,EAAa,IAAIt5C,IAAIhgB,OAAO8kB,SAASumB,MACrCkuB,EAAS,IAAIv5C,IAAI1zC,KAAKktF,eA3DJ,WA8DxB,GAFAD,EAAOE,aAAazlE,IAAI,cAAewhB,EAAQ4jD,YAAcE,EAAWjuB,MACxEkuB,EAAOE,aAAazlE,IAAI,cAAewhB,EAAQ6jD,YAAcC,EAAWjuB,MACpE71B,EAAQk6C,WAAY,CACpB6J,EAAOE,aAAazlE,IAAI,cAAewhB,EAAQk6C,YAC/C,MAAMtG,EAAYsQ,EAAAhtF,QAAgBiD,WAAW,WAC7C4pF,EAAOE,aAAazlE,IAAI,aAAco1D,EAAUh5E,eAAe5D,kBACzDF,KAAKqtF,UAAUvhD,OAAO9rC,KAAKstF,WAAYd,EAA4B1P,EAAUh5E,eAAgBg5E,E,CAEvGppD,OAAO8kB,SAASqwB,OAAOokB,EAAO/sF,W,CAOlCN,8BAA8BytC,EAAckgD,GACxC,MAAMP,EAAa,IAAIt5C,IAAIhgB,OAAO8kB,SAASumB,MACrCkuB,EAAS,IAAIv5C,IAAI,OAAQ1zC,KAAKktF,gBACpCD,EAAOE,aAAazlE,IAAI,eAAgB2lB,EACnCptB,KAAIu9D,GAAe7jE,EAAAG,UAAkB8pE,EAAArK,OAAsBiE,KAC3Dv9D,KAAIutE,GAAcC,EAAO3sF,KAAK0sF,GAAYttF,SAAS,YACnDiB,KAAK,MACV8rF,EAAOE,aAAazlE,IAAI,cAAe6lE,GAAeP,EAAWjuB,MACjErrC,OAAO8kB,SAASqwB,OAAOokB,EAAO/sF,W,CAKlCN,qCACI,MAAMotF,EAAa,IAAIt5C,IAAIhgB,OAAO8kB,SAASumB,MACrCp7D,EAAYqpF,EAAWG,aAAa7tF,IAAI,eAAiB,GACzDouF,GAAWV,EAAWG,aAAa7tF,IAAI,aAAe,IAAIqB,MAAM,KAChEb,EAAYktF,EAAWG,aAAa7tF,IAAI,eAAiB,GAE3DQ,IACAE,KAAK2sF,UAAY,C,UACb7sF,E,QACA4tF,GAEJh6D,OAAOyX,aAAaC,QAAQprC,KAAK2tF,aAAcr+C,KAAKc,UAAUpwC,KAAK2sF,YAC/DhpF,SACM3D,KAAK4tF,4BAA4B9tF,EAAW6D,IAG1DqpF,EAAWG,aAAaU,OAAO,cAC/Bb,EAAWG,aAAaU,OAAO,YAC/Bb,EAAWG,aAAaU,OAAO,cAC/Bn6D,OAAOo6D,QAAQC,aAAa,GAAIC,SAASzuC,MAAOytC,EAAW9sF,W,CAO/DN,kCAAkCE,EAAW6D,GACzC,MAAM5D,QAAgBC,KAAKqtF,UAAUrhD,OAAOhsC,KAAKstF,WAAYd,EAA4B7oF,SACnF3D,KAAKqtF,UAAUvhD,OAAO9rC,KAAKstF,WAAYxtF,EAAWC,SAClDC,KAAKqtF,UAAUphD,UAAUjsC,KAAKstF,WAAYd,EAA4B7oF,E,CAOhFsqF,UACIjuF,KAAK2sF,UAAY,GACjBj5D,OAAOyX,aAAaI,WAAWvrC,KAAK2tF,a,CAKxCthD,UAII,OAHKrsC,KAAKkuF,oBACNluF,KAAKkuF,kBAAoB,IAAIC,EAAuBnuF,KAAMA,KAAKouF,MAAM58C,WAAYxxC,KAAK2sF,UAAU7sF,YAE7FE,KAAKkuF,iB,CAlIhB9sF,YAAYitF,EAAMC,GACdtuF,KAAKouF,MAAQC,EACb,MAAME,EAAcD,EALK,mBAMnBE,EAAWl/C,KAAKC,MAAM7b,OAAOyX,aAAaG,QAAQijD,IACxDvuF,KAAKstF,WAAae,EAAKzgB,OAAO/tE,UAC9BG,KAAKktF,eAAiBmB,EAAKzgB,OAAO6gB,UAClCH,EAAeA,GAAgBD,EAAKzgB,OAAO8gB,cAAgB,UAC3D1uF,KAAKqtF,UAAYgB,EAAK78C,WAAWisC,OAAO1xC,SACxC/rC,KAAK2sF,UAAY6B,GAAY,CAAEd,QAAS,IACxC1tF,KAAK2tF,aAAeY,EACfvuF,KAAK0sF,cACN1sF,KAAK2uF,8B,EA0HjB7vF,EAAAC,QAAQ2tC,iBAAmB+/C,EAC3B3tF,EAAAC,QAAQ4tC,cAAgB8/C,EAIxB,MAAM0B,UAA+BtgD,EAAAX,QAMjCttC,6BAA6B87E,EAAY2B,GACrC,MAAMuR,QAAiB5uF,KAAKwxC,WAAWisC,OAAO35E,aAAa9D,KAAKF,UAAWE,KAAKwxC,WAAW3xC,WAC3F,IAAIi9E,QAAkB98E,KAAK6uF,wBAAwBnT,EAAY2B,EAASuR,GACxE,IAAK9R,EACD,MAAM,IAAIx6E,MAAM,oDAAoDo5E,KAExE,GAAIkT,GAAYA,EAAS1uF,aAAe48E,EAAUoI,WAC9C,IACI,aAAa7jF,MAAMkjF,uBAAuB7I,EAAY2B,E,CAE1D,MAAO9uE,GACH,GAAe,qBAAXA,EAAEmR,KAIF,MAAMnR,EAHNuuE,QAAkB98E,KAAK6uF,wBAAwBnT,EAAY2B,E,CAOvE,MAAMyC,QAAc9/E,KAAKwxC,WAAW0xC,SAASpD,MAAM,CAAEtvC,SAAU,UACzD8sC,EAAY3jE,EAAAE,WAAmBimE,EAAM3kC,OAAOjiC,MAC5CvV,EAAYypF,EAAAxrF,UAAkBd,KAAKg8E,EAAUoI,YAE7CxtE,EAAQolE,EAAUiI,WAAWrtE,MAAQ,EACrC8lE,EAAcoG,EAAAtK,kBAAgCt5E,KAAKF,UAAW6D,EAAW+3E,EAAYhkE,EAAO2lE,EAASC,GAE3G,aADMt9E,KAAK8uF,iBAAiBC,wBAAwB,CAACvR,GAAc9pD,OAAO8kB,SAASumB,MAC5E,IAAI5nB,SAAQ,CAACC,EAASiL,KACzBhL,YAAW,KACPgL,EAAO,IAAI//C,MAAM,0CAA0C,GAC5D,IAAK,G,CAWhB1C,kCAAkCk9E,EAAWpB,EAAY2B,GACrD,MAAQ0H,YAAYvJ,WAAEA,IAAiBsB,EACvC,GAAmB,eAAftB,EACA,OAAO,EAEX,GAAIA,EAAWf,aAAc,CACzB,MAAQwK,YAAa+J,EAAmBhG,aAAciG,GAAmBzT,EAAWf,aAKpF,GAAIuU,IAAsBhvF,KAAKF,WAAamvF,EAAezmE,SAvM3C,2BAwMZ,OAAO,EAEX,GAAIwmE,IAAsBtT,EAAY,CAClC,GAAuB,IAAnB2B,EAAQr8E,OACR,OAAO,EAEX,OAAOi5E,aAAEA,IAAkBoD,EAC3B,OAAOpD,KACDA,EAAawC,SAA+C,MAApCxC,EAAawC,QAAQv8E,cACpB,IAA1B+uF,EAAejuF,QAAgBiuF,EAAezmE,SAASyxD,EAAasC,Y,EAKjF,OAAO,C,CASX38E,8BAA8B87E,EAAY2B,EAASuR,GAC/C,MAAMhK,QAAmB5kF,KAAK6kF,gBAC9B,GAAI+J,EAAU,CACV,MAAM9R,EAAY8H,EAAWyE,MAAK5oF,GAAOA,EAAIykF,aAAe0J,EAAS1uF,aACrE,GAAI48E,SAAmB98E,KAAKkvF,4BAA4BpS,EAAWpB,EAAY2B,GAC3E,OAAOP,C,CAGf,MAAMqS,EAAanvF,KAAK8uF,iBAAiBnC,UAAUe,QACnD,IAAK,MAAM5Q,KAAa8H,EACpB,IAAiD,IAA7CuK,EAAWhxE,QAAQ2+D,EAAUoI,mBAA4BllF,KAAKkvF,4BAA4BpS,EAAWpB,EAAY2B,GACjH,OAAOP,EAGf,OAAO,I,CA9FX17E,YAAY0tF,EAAkBt9C,EAAY1xC,GACtCuB,MAAMmwC,EAAY1xC,GAClBE,KAAK8uF,iBAAmBA,C,EA+FhChwF,EAAAC,QAAQ6tC,uBAAyBuhD,C,kDC5PjCvvF,OAAOC,eAAeC,EAAAC,QAAS,aAAc,CAAEC,OAAO,IACtDF,EAAAC,QAAQqwF,aAAU,E,6BAQlBtwF,EAAAC,QAAQqwF,QAHRxvF,eAAuBguE,GACnB,OAAO,IAAIz/B,EAAAtB,KAAY+gC,E,mDCR3B7rE,cAAA,S,IAIIstF,E,yBAEAA,EADAC,EAAW,2BACAvtF,cAAA,SACNutF,EAAW,yBACLvtF,cAAA,SAEAA,cAAA,SAEfjD,EAAAC,QAAiBswF,G,kDCZjBttF,cAAA,SAAAwtF,MAAmB,M,kDCAnBxtF,cAAA,SACAjD,EAAAC,QAAiBgD,cAAA,Q,kDCDjB,IAAAytF,EAAAztF,cAAA,SACI0tF,EAASD,EAAA3pB,OACT6pB,EAAOF,EAAA7pB,KAEX8pB,EAAO,eAAe,WAClB,YAAiBl1E,IAATva,I,IAGZyvF,EAAO,2BAA2B,WAC9B,IACI,OAAO,WACC,OAAOt5E,UAAUw5E,OAAOC,M,CADzB,KAEMz5E,UAAUw5E,M,CACzB,MAAOE,GACL,OAAO,C,KAIfJ,EAAO,OAAO,WACV,OAAOC,EAAK,4BACRA,EAAK,wBACLA,EAAK,4BACLA,EAAK,kBACLA,EAAK,4BACLA,EAAK,0BACLA,EAAK,kC,IAGbD,EAAO,2BAA2B,WAC9B,OAAO5uF,MAAMkO,UAAUvO,O,IAG3BivF,EAAO,uBAAuB,WAC1B,OAAO5uF,MAAMkO,UAAUkR,G,IAG3BwvE,EAAO,2BAA2B,WAC9B,OAAOrjC,SAASr9C,UAAU8oC,I,IAG9B43C,EAAO,iBAAiB,WACpB,OAAO7wF,OAAOyb,M,IAGlBo1E,EAAO,2BAA2B,WAC9B,OAAO7wF,OAAO4xD,gB,IAGlBi/B,EAAO,yBAAyB,WAC5B,OAAO7wF,OAAOC,c,IAGlB4wF,EAAO,mCAAmC,WACtC,OAAO7wF,OAAOmQ,UAAUqM,c,IAG5Bq0E,EAAO,2BAA2B,WAC9B,OAAOntF,MAAM+yC,iB,IAGjBo6C,EAAO,yBAAyB,WAC5B,IACI,MAAM,IAAIntF,K,CAEd,MAAOiM,GACH,OAAOA,EAAEogB,OAASpgB,EAAEuhF,U,sDCjE5B,IAEIC,EAAW,IAFfhuF,cAAA,UAIIiuF,EAAa,SAAUjwE,GACvB,OAAOgwE,EAASpqB,KAAK5lD,E,EAEzBiwE,EAAWnqB,OAAS,SAAU9lD,EAAM4lD,GAChCoqB,EAASlqB,OAAO9lD,EAAM4lD,E,EAE1BqqB,EAAWT,MAAQ,SAAUxvE,GACzBgwE,EAASR,MAAMxvE,E,EAEnBiwE,EAAWrqB,KAAOqqB,EAElBlxF,EAAAC,QAAiBixF,C,kDCfjB,IAAIC,EAAqB,WACrBjwF,KAAKkwF,MAAQ,GACblwF,KAAK+sE,MAAQ,E,EAEjBkjB,EAAmBlhF,UAAY,CAC3B3N,YAAa6uF,EACbpqB,OAAQ,SAAU9lD,EAAM4lD,GACpB,GAAqB,iBAAT5lD,KAAuB4lD,aAAgBvZ,UAC/C,MAAM,IAAI9pD,MAAM,kCACpB,GAAItC,KAAKkwF,MAAMnwE,GACX,MAAM,IAAIzd,MAAM,wCAA0Cyd,EAAO,MACrE/f,KAAKkwF,MAAMnwE,GAAQ4lD,C,EAEvB4pB,MAAO,SAAUxvE,GACb,IAAK/f,KAAK2lE,KAAK5lD,GACX,MAAM,IAAIzd,MAAM,6CAA+Cyd,EAAO,mC,EAE9E4lD,KAAM,SAAU5lD,GACZ,QAAyBxF,IAArBva,KAAK+sE,MAAMhtD,GACX,OAAO/f,KAAK+sE,MAAMhtD,GACtB,IAAK/f,KAAKkwF,MAAMnwE,GACZ,MAAM,IAAIzd,MAAM,iCAAmCyd,EAAO,MAC9D,IAAI4lD,EAAO3lE,KAAKkwF,MAAMnwE,GAEtB,OADA/f,KAAK+sE,MAAMhtD,KAAU4lD,IACd3lE,KAAK+sE,MAAMhtD,E,GAI1BjhB,EAAAC,QAAiBkxF,C,kDC5BjB,IAAAE,EAAApuF,cAAA,SAEAjD,EAAAC,QAAiB,WAKb,OAJAuD,MAAM8tF,cAAgB,SAAUC,GAC5B,OAAOA,EAAU1hE,K,EAGd,CACH2hE,kBAAmBH,E,mDCQ3BrxF,EAAAC,QAhBwB,SAAUsxF,EAAWE,EAAQC,GACjD,IAAItxE,EAAS,GAGb,GAFAA,GAAUmxE,EAAUtwE,MAAQ,QAC5Bb,GAAU,MAAQmxE,EAAU5sF,SAAW,IACnC+sF,aAAoB3vF,MACpB,IAAK,IAAI4vF,KAAgBD,EAAU,CAE/BtxE,GAAU,UADIsxE,EAASC,E,CAG/B,IAAK,IAAIC,KAAcH,EAAQ,CAE3BrxE,GAAU,WADEqxE,EAAOG,GACUxwF,U,CAEjC,OAAOgf,C,mDCbX,IAAAyxE,EAAA5uF,cAAA,S,kDAEIgrE,M,yBAGJjuE,EAAAC,QAAiB,WAgEb,OA9DAuD,MAAM+yC,kBAAoB,SAASA,EAAkBg7C,EAAWO,GAC5D,IACIC,EAAc,CACdx7C,GAEAu7C,GAGAC,EAAY5vF,KAAK2vF,GAErB,IAAIE,EAAWH,EAAAI,cAAgCC,oBAAoBH,GACnEjyF,OAAO4xD,iBAAiB6/B,EAAW,CAC/B1hE,MAAO,CACHF,cAAc,EACdnvB,IAAK2xF,GAAM,WACP,IAAIV,EAASW,EAAAH,cAAgCI,UAAUL,EAASM,aAAcN,EAASO,gBACvF,OAAQ/uF,MAAMguF,mBAAqBH,GAAmBE,EAAWE,EAfzEC,U,KAkBAc,YAAa,CACT7iE,cAAc,EACdC,UAAU,EACVrvB,YAAY,EACZL,OAAO,I,EAKnBsD,MAAM8tF,cAAgB,SAAUC,GAC5B,GAAIA,EAAUiB,YACV,OAAOjB,EAAU1hE,MACrB,IAEI6hE,EAFAY,EAAeT,EAAAI,cAAgCQ,gBAAgBlB,GAC/DE,EAAS,GAETa,EACAb,EAASW,EAAAH,cAAgCI,UAAUC,EAAc,IAEjEZ,EAAW,CACP,qEAER,IAAI7hE,GAASrsB,MAAMguF,mBAAqBH,GAAmBE,EAAWE,EAAQC,GAC9E,GAAIY,EACA,IACIxyF,OAAO4xD,iBAAiB6/B,EAAW,CAC/B1hE,MAAO,CACHF,cAAc,EACdC,UAAU,EACVrvB,YAAY,EACZL,MAAO2vB,GAEX2iE,YAAa,CACT7iE,cAAc,EACdC,UAAU,EACVrvB,YAAY,EACZL,OAAO,IAGY,CAA7B,MAAOwyF,GAAsB,CAEnC,OAAO7iE,C,EAGJ,CACH2hE,kBAAmBH,E,mDCtE3B,I,EAAApuF,cAAA,SAAI0vF,M,yBACAC,e,yBACAC,gB,yBACA5kB,M,yBAGA6kB,EAA4BC,EAAMjzF,OAAQ,CAC1CmQ,UAAW,CACPiiF,oBAAqB,SAAUH,GAC3B,IAAIjxE,EAAQ5f,KAAK8xF,cACjBjB,EAAYloD,QAAQ3oC,KAAKgxF,qBACzBH,EAAYloD,QAAQ3oC,KAAK8xF,aACzB,IAAIC,EAAuB/xF,KAAKuxF,gBAAgB3xE,GAE5CwxE,EAAeW,EAAqB7wF,MAAM2vF,EAAY7vF,QACtDqwF,EAAiB,GAErB,GAAI/B,EAAW,2BAA4B,CACvC,IAAI0C,EAAyB,CACzBhyF,KAAK8xF,YACL9xF,KAAKgxF,qBAET,IAEI,IADA,IAAIiB,EAAU97E,UAAUw5E,OACjBsC,EAAUA,EAAQrC,QACrBoC,EAAuB/wF,KAAKgxF,EAEb,CAAvB,MAAOC,GAAgB,CAEvBb,EAAiBW,EAAuB9wF,MAAM2vF,EAAY7vF,O,CAE9D,MAAO,CACHowF,aAAcA,EACdC,eAAgBA,E,EAGxBE,gBAAiB,SAAU3xE,GACvB,IAAInc,EAAUmc,EAAMnc,SAAW,GAC3Bsc,EAAOH,EAAMG,MAAQ,GACrBoyE,EAAcnyF,KAAKoyF,eAAexyE,GACtC,QAAoBrF,IAAhB43E,EAAJ,CAEA,IAAIE,EAAoBF,EAAYxxF,MAAM,MACtC2xF,EAAe,EACfC,EAAaF,EAAkBrxF,OAKnC,OAJIhB,KAAKwyF,YACLF,GAAgBvyE,EAAKpf,MAAM,MAAMK,OAASyC,EAAQ9C,MAAM,MAAMK,OAAS,GACvEhB,KAAKyyF,YACLF,GAAc,GACXF,EAAkBnxF,MAAMoxF,EAAcC,EARzC,C,EAURT,YAAWY,EACXN,eAAcM,EACdF,eAAWj4E,EACXk4E,eAAWl4E,KAIfo4E,EAA8Bd,EAAMjzF,OAAQ,CAC5CmQ,UAAW,CACP6jF,eAAgB,SAAUC,GACtB,OAAO7yF,KAAK8yF,iBAAiBD,IAAsB7yF,KAAK+yF,kBAAkBF,E,EAE9EC,iBAAkB,SAAUD,GACxB,IACIG,EAAgB,CAAC,CACb,SAAUvvF,GACN,OAAO,IAAInB,MAAMmB,E,EAErB,SAAUA,GACN,IACI,MAAM,IAAInB,MAAMmB,E,CAEpB,MAAOmc,GACH,OAAOA,C,IAGhB,CACC,SAAUA,GACN,OAAOA,EAAM+O,K,EAEjB,SAAU/O,GACN,OAAOA,EAAMkwE,U,KAEjB,SAAUgC,EAAaM,GACvB,GAAIA,EAAeN,KACf,KAAM,CACFM,eAAgBA,EAChBN,YAAaA,E,IAG3B,MAAOmB,GAIL,OAHApB,EAAMqB,MAAM73E,KAAKw3E,EAAmB,CAChC9jF,UAAWkkF,KAER,C,CAEX,OAAO,C,EAEXF,kBAAmB,SAAUF,GACzB,IAGIM,GADwBf,EAFPS,EAAkB9jF,UAAUqjF,iBAENN,EADzBe,EAAkB9jF,UAAU+iF,aACS,WACJnxF,MAAM,MAOzD,OANAkxF,EAAMqB,MAAM73E,KAAKw3E,EAAmB,CAChC9jF,UAAW,CACPyjF,UAAW,SAAS7sB,KAAKwtB,EAAuB,IAChDV,UAAyE,KAA9DU,EAAuBA,EAAuBnyF,OAAS,OAGnE,C,KAMnBlC,EAAAC,QAAiB,CACbq0F,SAAUC,GAAM,WACZ,IAAIR,EACJ,GAAIA,EACA,OAAOA,EAGX,GAFAA,EAAoBhB,EAAMD,EAA2B,MACpC,IAAIe,GACLC,eAAeC,GAC3B,MAAM,IAAIvwF,MAAM,0DACpB,OAAOuwF,C,IAEX9B,YAAasC,GAAM,WAGf,OADe,IADSrzF,KAAKozF,W,sDChIrCrxF,cAAA,SAEAjD,EAAAC,QAAiBgD,cAAA,Q,kDCFjBjD,EAAAC,QAAiB,CACb0yF,MAAO1vF,cAAA,SACP2vF,eAAgB3vF,cAAA,S,kDCFpB,IAAIuxF,EAAQ,WACR,IAAIpqD,EAAUtqC,OAAOyb,OAAO,CACxBk5E,OAAQ30F,OACRgvE,OAAQ,GACR4lB,UAAW,KAGf,SAASC,EAAYC,GACjB,IAAIjzF,EAAM,SACV,GAAIizF,aAAkBtnC,SAClB3rD,EAAM,cACL,GAAIizF,aAAkB7yF,MACvBJ,EAAM,gBACL,MAAIizF,aAAkB90F,QAGvB,MAAM,IAAI0D,MAAM,iCAFhB7B,EAAM,QAE0C,CACpD,GAAIyoC,EAAQ9tB,eAAe3a,GACvB,MAAM,IAAI6B,MAAM,oCAAsC7B,EAAM,KAChEyoC,EAAQzoC,GAAOizF,C,CAGnB,IAAK,IAAI9/D,EAAQ,EAAG5yB,EAASmV,UAAUnV,OAAQ4yB,EAAQ5yB,IAAU4yB,EAC7D6/D,EAAYt9E,UAAUyd,IAE1B,IAAI2/D,EAASrqD,EAAQqqD,OACjB3lB,EAAS1kC,EAAQ0kC,OACjB4lB,EAAYtqD,EAAQsqD,UAExB,OAAQD,EAAOI,QAAUL,EAAMK,QAAQt4E,KAAKk4E,EAAQ3lB,EAAQ4lB,E,EAGhEF,EAAMvkB,QAAU,WAEZ,OAAO,WACH,IAAInf,EAAW5vD,KACX4vD,EAASgkC,iBAAiBxnC,UAC1BwD,EAASgkC,MAAM51E,MAAM4xC,EAAUz5C,WAC/By5C,EAAS1rD,gBAAgBkoD,UACzBwD,EAAS1rD,KAAK8Z,MAAM4xC,EAAUz5C,U,GAI1Cm9E,EAAMK,OAAS,SAAU/lB,EAAQ4lB,GAC7B,IAGIK,EAHAN,EAASvzF,KAUb,OATK4tE,IACDA,EAAS,IAETA,EAAQ7+D,qBAAqBnQ,QAAWgvE,EAAO7+D,UAAU3N,cAAgBxC,OACzEi1F,EAAUjmB,EAAO7+D,UAAU3N,YACtBwsE,EAAOmB,mBAAmB3iB,WAC/BynC,EAAUjmB,EAAOmB,QAAQ1zD,KAAKk4E,MAClCM,GAAWN,EAAOn+D,OAASk+D,EAAMl+D,OAAO/Z,KAAKk4E,EAAQM,EAASL,IACrDN,OAASI,EAAMJ,OAAO73E,KAAKw4E,EAASjmB,GACtCimB,C,EAGXP,EAAMvkF,UAAU4kF,OAAS,SAAU/lB,EAAQ4lB,GACvC,IACI5jC,GADU5vD,KACUo1B,OAASk+D,EAAMvkF,UAAUqmB,OAAOpX,MAD1Che,KACyDwzF,GAEvE,OADC5jC,EAASsjC,OAASI,EAAMvkF,UAAUmkF,OAAO73E,KAAKu0C,EAAUge,GAClDhe,C,EAGX0jC,EAAMl+D,MAAQ,SAAUy+D,EAASL,GAC7B,IAAID,EAASvzF,KAKb,IAAK,IAAI8zF,KAJHD,aAAmBznC,WACrBynC,GAAWN,EAAOxkB,SAAWukB,EAAMvkB,SAAS1zD,KAAKk4E,IACrDM,EAAQ9kF,WAAawkF,EAAOxkF,UAAUqmB,OAASk+D,EAAMvkF,UAAUqmB,OAAOpX,MAAMu1E,EAAOxkF,UAAWykF,GAAa,IAC3GK,EAAQ9kF,UAAU3N,YAAcyyF,EACLN,EACA,cAAnBO,IACAD,EAAQC,GAAkBP,EAAOO,IACzC,OAAOD,C,EAGXP,EAAMvkF,UAAUqmB,MAAQ,WACpB,IAAI2+D,EAAU/zF,KACV4vD,EAAWhxD,OAAOyb,OAAO05E,GAG7B,OAFInkC,EAASgkC,iBAAiBxnC,UAC1BwD,EAASgkC,MAAM51E,MAAM4xC,EAAUz5C,WAC5By5C,C,EAGX0jC,EAAMJ,MAAQ,SAAUtlB,GACpB,IAAIimB,EAAU7zF,KACd,IAAK,IAAI8zF,KAAkBlmB,EACA,cAAnBkmB,IACAD,EAAQC,GAAkBlmB,EAAOkmB,IAGzC,OAFIlmB,EAAO7+D,qBAAqBnQ,SAC3Bi1F,EAAQ9kF,UAAUmkF,OAASI,EAAMvkF,UAAUmkF,OAAO73E,KAAKw4E,EAAQ9kF,UAAW6+D,EAAO7+D,WAC/E8kF,C,EAGXP,EAAMvkF,UAAUmkF,MAAQ,SAAUtlB,GAE9B,IAAK,IAAIl7B,KAAYk7B,EACA,gBAAbl7B,IAFM1yC,KAGE0yC,GAAYk7B,EAAOl7B,IACnC,OAJc1yC,I,EAOlBszF,EAAMU,OAAS,SAAUpmB,GACrB,IAAIimB,EAAU7zF,KACd,IAAK,IAAI8zF,KAAkBlmB,EACA,cAAnBkmB,QAA+Dv5E,IAA5Bs5E,EAAQC,IAAiCD,EAAQC,KAAoB1nC,SAASr9C,UAAU+kF,KAC3HD,EAAQC,GAAkBlmB,EAAOkmB,IAGzC,OAFIlmB,EAAO7+D,qBAAqBnQ,SAC3Bi1F,EAAQ9kF,UAAUilF,QAAUV,EAAMvkF,UAAUilF,QAAQ34E,KAAKw4E,EAAQ9kF,UAAW6+D,EAAO7+D,WACjF8kF,C,EAGXP,EAAMvkF,UAAUilF,OAAS,SAAUpmB,GAC/B,IAAImmB,EAAU/zF,KACd,IAAK,IAAI0yC,KAAYk7B,EACA,gBAAbl7B,QAAqDn4B,IAAtBw5E,EAAQrhD,IAA2BqhD,EAAQrhD,KAAc9zC,OAAOmQ,UAAU2jC,KACzGqhD,EAAQrhD,GAAYk7B,EAAOl7B,IACnC,OAAOqhD,C,EAGXT,EAAMW,YAAc,WAChB,IAAIV,EAASvzF,KACb,GAAIuzF,IAAWA,EAAOxkF,UAAU3N,YAC5B,OAAOmyF,EAAOxkF,UAAU3N,W,EAGhCkyF,EAAMY,YAAc,WAChB,IAAIL,EAAU7zF,KACV4vD,EAAWhxD,OAAOyb,OAAOra,KAAK+O,WAElC,OADA8kF,EAAQ71E,MAAM4xC,EAAUz5C,WACjBy5C,C,EAGX9wD,EAAAC,QAAiBu0F,C,kDCrIjBx0F,EAAAC,QAAiB,WACb,MAAM,IAAIuD,MAAM,mB,mDCDpBxD,EAAAC,QAAiBgD,cAAA,Q,kDCAjBjD,EAAAC,QAAiB,CACbguE,MAAOhrE,cAAA,SACP4vF,gBAAiB5vF,cAAA,S,kDCkBrBjD,EAAAC,QApBY,SAAUsa,GAClB,IACI86E,EADA74B,GAAS,EASb,OANMjiD,aAAc+yC,WAChBkP,GAAS,EACT64B,EAAQ96E,EACRA,EAAK,MAGF,WAMH,OALKiiD,IACDA,GAAS,EACT64B,EAAQ96E,EAAG2E,MAAMhe,KAAMmW,WACvBkD,EAAK,MAEF86E,C,oDChBfr1F,EAAAC,QAAiB,SAAS4yF,EAAgByC,EAAyBxgC,EAAUygC,GAGzE,GAFKA,IACDA,EAAc,IACdA,EAAYrzF,OAASozF,EAAwBpzF,OAAQ,CACrD,IAAIszF,EAAeF,EAAwBC,EAAYrzF,QACvD,IAAK,IAAI4yB,KAAS0gE,EACdD,EAAYA,EAAYrzF,QAAUszF,EAAa1gE,GAC/C+9D,EAAgByC,EAAyBxgC,EAAUygC,KACjDA,EAAYrzF,M,MAIlB4yD,EAAS51C,MAAM,KAAMq2E,E,mDCZ7B,I,EAAAtyF,cAAA,SAAI0vF,M,kDAEA1kB,MAEAwnB,EAAoBC,EAAM51F,OAAQ,CAClCmQ,UAAW,CACP0lF,YAAa,KACbC,YAAa,KACbC,gBAAiB,KACjBvzF,YAAa,SAAU8nC,GACnBsrD,EAAMzlF,UAAUmkF,MAAM73E,KAAKrb,KAAMkpC,E,EAErCioD,UAAW,SAAUC,EAAcC,GAE/B,IADA,IAAId,EAAS,GACJ38D,EAAQ,EAAG5yB,EAASowF,EAAapwF,OAAQ4yB,EAAQ5yB,IAAU4yB,EAChE28D,EAAO38D,GAAS5zB,KAAK40F,SAASxD,EAAax9D,GAAQy9D,EAAez9D,IACtE,OAAO28D,C,EAEXqE,SAAU,SAAUC,EAAaC,GAK7B,OAAO,IAAIC,EAJE,CACTF,YAAaA,EACbC,cAAeA,G,KAO/Bh2F,EAAAC,QAAiB,CACbq0F,SAAU4B,GAAM,WACZ,OAAOT,C,IAEXxD,YAAaiE,GAAM,WAGf,OADe,IADSh1F,KAAKozF,W,sDCjCrC,I,EAAArxF,cAAA,SAAI0vF,M,yBACAC,eAEAuD,EAAQC,EAAMt2F,OAAQ,CACtBmQ,UAAW,CACP7K,KAAMgxF,EAAMnmF,UAAUmkF,MACtB2B,iBAAat6E,EACbra,SAAU,WACN,OAAOF,KAAK60F,W,EAEhBC,mBAAev6E,EACf46E,QAAOC,EACPC,YAAWD,EACXE,YAAa,WACT,OAAOt1F,KAAK80F,a,EAEhBS,gBAAeH,EACfI,cAAaJ,EACbK,YAAWL,EACXM,cAAaN,EACbO,gBAAeP,EACfQ,cAAaR,EACbS,WAAUT,EACVU,OAAMV,EACNW,SAAQX,EACRY,cAAaZ,KAIrBt2F,EAAAC,QAAiBk2F,C,kDC7BjB,I,EAAAlzF,cAAA,SAAIgrE,M,yBAGJjuE,EAAAC,QAAiB,WA2Cb,OAzCAuD,MAAM+yC,kBAAoB,SAAUg7C,EAAWO,GAC3ChyF,OAAO4xD,iBAAiB6/B,EAAW,CAC/B1hE,MAAO,CACHF,cAAc,EACdnvB,IAAK22F,GAAM,WACP,OAAQ3zF,MAAMguF,mBAAqBH,GAAmBE,EAAW,G,KAGzEiB,YAAa,CACT7iE,cAAc,EACdC,UAAU,EACVrvB,YAAY,EACZL,OAAO,I,EAKnBsD,MAAM8tF,cAAgB,SAAUC,GAC5B,GAAIA,EAAUiB,YACV,OAAOjB,EAAU1hE,MACrB,IAAIA,GAASrsB,MAAMguF,mBAAqBH,GAAmBE,EAAW,IACtE,IACIzxF,OAAO4xD,iBAAiB6/B,EAAW,CAC/B1hE,MAAO,CACHF,cAAc,EACdC,UAAU,EACVrvB,YAAY,EACZL,MAAO2vB,GAEX2iE,YAAa,CACT7iE,cAAc,EACdC,UAAU,EACVrvB,YAAY,EACZL,OAAO,IAGY,CAA7B,MAAOwyF,GAAsB,CAE/B,OAAO7iE,C,EAGJ,CACH2hE,kBAAmBH,E,KC/C3B,IAAAx9C,OAAA5wC,cAAA,SCAA,SAASm0F,8BAAQhnC,EAAQC,GACvB,IAAIlvD,EAAOrB,OAAOqB,KAAKivD,GACvB,GAAItwD,OAAO21C,sBAAuB,CAChC,IAAI6a,EAAUxwD,OAAO21C,sBAAsB2a,GACvCC,IACFC,EAAUA,EAAQ5a,QAAO,SAAUlmB,GACjC,OAAO1vB,OAAOmc,yBAAyBm0C,EAAQ5gC,GAAKjvB,U,KAGxDY,EAAKgB,KAAK+c,MAAM/d,EAAMmvD,E,CAExB,OAAOnvD,C,CAGM,SAAAk2F,yCAA4Bt7E,EAAQksB,GAcjD,OAbAA,EAAmB,MAAVA,EAAiBA,EAAS,GAC/BnoC,OAAO2xD,0BACT3xD,OAAO4xD,iBAAiB31C,EAAQjc,OAAO2xD,0BAA0BxpB,IAEjEmvD,8BAAQt3F,OAAOmoC,IAASvmC,SAAQ,SAAUC,GACxC7B,OAAOC,eACLgc,EACApa,EACA7B,OAAOmc,yBAAyBgsB,EAAQtmC,G,IAKvCoa,C,kCC3BLu7E,sCAAkBC,2BAASA,0BAAKj8E,kBAAqBxb,OAAOyb,OAAU,SAASlU,EAAGyC,EAAG3C,EAAGqU,QAC7EC,IAAPD,IAAkBA,EAAKrU,GAC3BrH,OAAOC,eAAesH,EAAGmU,EAAI,CAAEjb,YAAY,EAAMC,IAAK,WAAa,OAAOsJ,EAAE3C,E,KAC1E,SAASE,EAAGyC,EAAG3C,EAAGqU,QACTC,IAAPD,IAAkBA,EAAKrU,GAC3BE,EAAEmU,GAAM1R,EAAE3C,E,GAEVqwF,yCAAqBD,2BAASA,0BAAK57E,qBAAwB7b,OAAOyb,OAAU,SAASlU,EAAG2E,GACxFlM,OAAOC,eAAesH,EAAG,UAAW,CAAE9G,YAAY,EAAML,MAAO8L,G,EAC9D,SAAS3E,EAAG2E,GACb3E,EAAW,QAAI2E,C,GAEfyrF,mCAAeF,2BAASA,0BAAKl7E,cAAiB,SAAU3Z,GACxD,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAIlB,EAAS,GACb,GAAW,MAAPkB,EAAa,IAAK,IAAIyE,KAAKzE,EAAe,YAANyE,GAAmBrH,OAAOwc,eAAeC,KAAK7Z,EAAKyE,IAAImwF,sCAAgB91F,EAAQkB,EAAKyE,GAE5H,OADAqwF,yCAAmBh2F,EAAQkB,GACpBlB,C,EAEPk2F,mCAAeH,2BAASA,0BAAKtuB,cAAiB,SAASn/D,EAAG7J,GAC1D,IAAK,IAAIqH,KAAKwC,EAAa,YAANxC,GAAoBrH,EAAQqc,eAAehV,IAAIgwF,sCAAgBr3F,EAAS6J,EAAGxC,E,EAEpGxH,OAAOC,eAAew3F,0BAAS,aAAc,CAAEr3F,OAAO,IACtDq3F,0BAAQxqD,UAAY0qD,mCAAax0F,cAAA,UACjCy0F,mCAAaz0F,cAAA,SAA2Bs0F,2BACxCG,mCAAaz0F,cAAA,SAA8Bs0F,2B,iCC1B3CI,0BAAiB10F,cAAA,SCAV,MAAM20F,0CAAwB,qBACxBC,0CAA4B,mBAC5BC,yCAAgC,2BAChCC,0CAAoC,sBACpCC,0CAA2B,2BAElCC,wCAAoB,UACpBC,sCAAkB,+BAClBC,wCAAoB,0BACpBC,wCAAoB,kCACpBC,0CAAsB,oCAEtBC,wCAAoB,UACpBC,sCAAkB,+BAClBC,wCAAoB,kCACpBC,wCAAoB,kCACpBC,0CAAsB,oCAEfC,0CAAMV,wCA8BZ,SAASW,0CAAUj4C,GACxB,OAAQA,GAER,IAAK,aACL,IAAK,UACH,MAAO,CACLk4C,mBAAoB,mBACpBC,kBAAmB,4FACnB/3F,UAAWk3F,wCACX5K,QAAS6K,sCACTa,oBAAqBnB,0CACrBoB,uBAAwBnB,0CACxBlI,UAAWwI,wCACXvN,UAAWwN,wCACXa,YAAaZ,0CACba,aAASz9E,EACT4wE,mBAAc5wE,EACd09E,MAAS,CACP,CACErkE,MAAO,EACPskE,SAAU,SACVC,SAAW,QAGXzJ,aAAc,wBAEd0J,kBAAmB,gEAOrB,CACExkE,MAAO,EACPskE,SAAU,SACVC,SAAW,QAGXzJ,aAAc,uBAEd0J,kBAAmB,uBAOrB,CACExkE,MAAO,EACPskE,SAAU,SACVC,SAAW,MAGXzJ,aAAc,sBAEd0J,kBAAmB,6BAOrB,CACExkE,MAAO,EACPskE,SAAU,SACVC,SAAW,SAGXzJ,aAAc,uBAEd0J,kBAAmB,kBAOrB,CACExkE,MAAO,EACPskE,SAAU,SACVC,SAAW,SAGXzJ,aAAc,0BAEd0J,kBAAmB,qBAOrB,CACExkE,MAAO,EACPskE,SAAU,SACVC,SAAW,OAGXzJ,aAAc,uBAEd0J,kBAAmBtB,2CAOrB,CACEljE,MAAO,EACPskE,SAAU,SACVC,SAAW,UAGXzJ,aAAc,0BAEd0J,kBAAmB1B,2CAOrB,CACE9iE,MAAO,EACPskE,SAAU,SACVC,SAAW,UAGXzJ,aAAc,4BAEd0J,kBAAmBtB,2CAOrB,CACEljE,MAAO,EACPskE,SAAU,WACVC,SAAW,qBACXzJ,aAAc,0BACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,EACPskE,SAAU,WACVC,SAAW,eACXzJ,aAAc,uBACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,GACPskE,SAAU,WACVC,SAAW,eACXzJ,aAAc,wBACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,GACPskE,SAAU,WACVC,SAAW,eACXzJ,aAAc,wBACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,GACPskE,SAAU,SACVC,SAAU,qBACVzJ,aAAc,4BACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,GACPskE,SAAU,WACVC,SAAU,cACVzJ,aAAc,sBACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,GACPskE,SAAU,WACVC,SAAU,iBACVzJ,aAAc,yBACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,GACPskE,SAAU,MACVC,SAAU,WACVE,WAAY,CAAC,gGACb3J,aAAc,2BACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,GACPskE,SAAU,MACVC,SAAU,aACVE,WAAY,CAAC,wCACb3J,aAAc,4BACd0J,kBAAmB1B,2CAErB,CACE9iE,MAAO,GACPskE,SAAU,MACVC,SAAU,qBACVE,WAAY,CAAC,wCACb3J,aAAc,8BACd0J,kBAAmB1B,0CACnB9oB,OAAQ,CAAE0qB,KAAM,iGAElB,CACE1kE,MAAO,GACPskE,SAAU,MACVC,SAAU,SACVE,WAAY,CAAC,4FACb3J,aAAc,yBACd0J,kBAAmB1B,0CACnB9oB,OAAQ,CAAE2qB,SAAS,IAErB,CACE3kE,MAAO,GACPskE,SAAU,MACVC,SAAU,YACVE,WAAY,CAAC,wCACb3J,aAAc,4BACd0J,kBAAmB1B,0CACnB9oB,OAAQ,CAAE2qB,SAAS,IAErB,CACE3kE,MAAO,GACPskE,SAAU,MACVC,SAAU,SACVE,WAAY,CAAC,4FACb3J,aAAc,0BACd0J,kBAAmB1B,0CACnB9oB,OAAQ,CAAE2qB,SAAS,IAErB,CACE3kE,MAAO,GACPskE,SAAU,MACVC,SAAW,eACXE,WAAY,CAAC,wCACb3J,aAAc,8BACd0J,kBAAmB1B,6CAa3B,IAAK,cACL,IAAK,UACH,MAAO,CACLiB,mBAAoB,sBACpBC,kBAAmB,4FACnB/3F,UAAWu3F,wCACXjL,QAASkL,sCACTQ,oBAAqBjB,yCACrBkB,uBAAwBjB,0CACxBpI,UAAW6I,wCACX5N,UAAW6N,wCACXQ,YAAaP,0CACbQ,aAASz9E,EACT4wE,mBAAc5wE,EACd09E,MAAS,CACP,CACErkE,MAAO,EACPskE,SAAU,WACVC,SAAW,KACXzJ,aAAc,wBACd0J,kBAAmB,8BAErB,CACExkE,MAAO,EACPskE,SAAU,SACVC,SAAW,SACXzJ,aAAc,0BACd0J,kBAAmB,wBAErB,CACExkE,MAAO,EACPskE,SAAU,SACVC,SAAW,SACXzJ,aAAc,6BACd0J,kBAAmB,qBAErB,CACExkE,MAAO,EACPskE,SAAU,SACVC,SAAW,MACXzJ,aAAc,yBACd0J,kBAAmB,qBAErB,CACExkE,MAAO,EACPskE,SAAU,MACVC,SAAW,oBACXzJ,aAAc,6BACd0J,kBAAmB,2BACnBC,WAAY,CACV,mGAMV,QACE,MAAM/1F,MAAM,wBAAwBm9C,2C,CCtWxC,MAAM+4C,oCAAc,kBAMb,MAAMC,0CAIT1J,wBAAwB1hD,EAAmBkgD,EAAmBmL,GAC1D,OAAOvhD,QAAQC,S,CAGnBw1C,eAAuB,OAAO4L,mC,CAC9BG,0BACI,OAAO34F,KAAK4sF,c,CAGhBhtF,wBAAwBE,GAAwC,MAAO,G,CAEvE84F,aAAc,OAAOJ,mC,CAErBK,WAAW75F,GAAe,MAAMsD,MAAM,uB,CAMtCw2F,cAAgB,OAAO,C,CAEvBC,aAAY,CAEZC,iBAAkBtlE,OAAO/b,KAAK,2B,CAKiBshF,iBAE/C,MAAA32F,MAAAk2F,oC,CAWI54F,WAAWynF,EAACp2C,EAAAlzB,GACf,MAAAzb,MAAAk2F,oCAED,CAOA54F,WAAAynF,EAAAp2C,EAAAlzB,EAAAy+D,EAAA0c,GAII,MAAM52F,MAAMk2F,oC,iOCrEPW,0CAAY,MAAM,IAAIvxD,OAAO,IAOnC,MAAMwxD,0CAIT12F,kBAAkB6S,GACd,MAAM+H,EAAI/H,EAAIrV,WAAW24E,SAAS,EAAE,KACpC,OAAO,IAAIugB,0CAAOv0E,OAAOvH,EAAIpc,MAAM,EAAE,IAAK2jB,OAAOvH,EAAIpc,MAAM,EAAE,IAAK2jB,OAAOvH,EAAIpc,MAAM,EAAE,I,CAGzFg1B,WAAkB,OAAkB,IAAXl2B,KAAKq5F,MAAuB,IAAXr5F,KAAKs5F,MAAYt5F,KAAK2/C,O,CAEhEz/C,WAAW,MAAO,GAAGF,KAAKq5F,SAASr5F,KAAKs5F,SAASt5F,KAAK2/C,S,CATtDv+C,YAAoBi4F,EAAqBC,EAAqB35C,G,KAA1C05C,Q,KAAqBC,Q,KAAqB35C,S,kECE3D,MAAM45C,0CAOT3M,eACI,OAAO5sF,KAAK8uF,iBAAiBlC,c,CAGjC+L,0BACI,MAAMa,EAAUx5F,KAAK4sF,eACrB,OAAO4M,EAAQx4F,OAAS,GAAKw4F,EAAQt4F,MAAM,EAAG,IAAM,KAAOs4F,EAAQt4F,OAAM,IAAOs4F,C,CAGpF55F,wBAAwBE,GAEpB,aADmBE,KAAK8uF,iBAAiBziD,UAAUotD,qBACvC1kE,K,CAGhB6jE,aAAc,OAAO54F,KAAK8uF,iBAAiBV,MAAM58C,WAAW3xC,S,CAE5Dg5F,WAAW75F,GAAe,MAAMsD,MAAM,yB,CAEtCw2F,cACI,OAAO94F,KAAK8uF,iBAAiBpC,Y,CAGjCqM,aACI/4F,KAAK8uF,iBAAiBb,S,CAG1B+K,iBACItlE,OAAO/b,KAAK,2B,CAUfshF,iBAED,IAAAj5F,KAAA8uF,iBAAApC,aAAA,MAAApqF,MAGA,0B,CAQI1C,WAAAynF,EAAAp2C,EAAAlzB,GACA,OAAO/d,KAAA8uF,iBAAqBziD,UAAQq+C,aAASrD,EAASp2C,EAAAlzB,E,CAK1Dne,WAAAynF,EAAAp2C,EAAAlzB,EAAAy+D,EAAA0c,GAKIxlE,OAAMo6D,QAAMC,aAAA,CAAiB,EAAE,GAAAv1C,SAAAsmB,UAClC,MAAA46B,QAAA15F,KAAA8uF,iBAAAziD,UAAA4tC,aAAAoN,EAAAp2C,EAAAlzB,EAAA,IAAA47E,uBAAAC,QAAA,CAAApd,GAAA2c,2CAAA,IAAAQ,uBAAAC,QAAA,CAAAV,GAAA,MAED,SAAA/kD,OAAA5F,0BAAAmrD,E,CArEA95F,YACWi6F,GAET,MAAAv3F,MAAA,kBA0EL,C,kJC3FD,IAAA8xC,OAAAryC,cAAA,SCSO,MAAM+3F,yCAMTC,QAAQv6E,GACJxf,KAAKg6F,MAAM/4F,KAAKue,E,CALpBpe,YACW+qD,G,KAAAA,W,KAFX6tC,MAAuB,E,EAYpB,MAAMC,0CACT74F,YACW6oF,EACAiQ,EAAuB,K,KADvBjQ,S,KACAiQ,U,EAIR,MAAMC,kDAAqBF,0CAE9B74F,YACW6vC,EACAlzB,EACPy+D,EACA0d,GAEA74F,MAAM,OAAO64F,G,KALNjpD,S,KACAlzB,OAKP/d,KAAKw8E,IAAMA,GAAK2c,yC,EAKjB,MAAMiB,kDAAiBH,0CAC1B74F,YACI84F,GAEA74F,MAAM,WAAW64F,E,EDnClB,MAAMG,0CAQTzN,eACI,OAAO5sF,KAAKs6F,U,CAGhB3B,0BACI,MAAMa,EAAUx5F,KAAK4sF,eACrB,OAAO4M,EAAQx4F,OAAS,GAAKw4F,EAAQt4F,MAAM,EAAG,IAAM,KAAOs4F,EAAQt4F,OAAM,IAAOs4F,C,CAGpF55F,wBAAwBE,GAEpB,OAAOy6F,0CADc,CAACtmE,KAAK,MAAO/V,KAAK,sBAAuBpe,UAAUA,GAAWE,KAAKs6F,Y,CAI5F1B,aAAc,OAAO54F,KAAKw6F,Q,CAC1B3B,WAAW75F,GAAegB,KAAKw6F,SAAWx7F,C,CAE1Cy7F,mBAAmBC,GAAgB16F,KAAK26F,iBAAmBD,C,CAK3D5B,cAAe,OAAO94F,KAAK46F,Y,CAE3B7B,aAEI/K,SAAS6M,cAAc,IAAIC,YAAY,wBACnC96F,KAAK46F,cAAclnE,OAAOqnE,YAAY,CAAC9mE,KAAK,MAAM/V,KAAK,cAAc,KACzEle,KAAK46F,cAAe,EACpB56F,KAAKs6F,WAAa,GAClBt6F,KAAK2/C,QAAU,IAAIy5C,0CAAO,EAAE,EAAE,E,CAGlCJ,iBACItlE,OAAO/b,KAAK,oD,CAUfshF,iBAED,IAAAj5F,KAAA46F,aAAA,MAAAt4F,MAAA,qF,YAM2C+kF,EAAMp2C,EAAAlzB,GAS7C,OAAGw8E,0CAT4E,CAAEtmE,KAAK,MAAK/V,KAAA,OAC3FmpE,SAAOA,EACVp2C,SAEDlzB,Q,CAcIne,WAAAynF,EAAAp2C,EAAAlzB,EAAAy+D,EAAA0c,GACA,MAAAW,EAAA,IAAAC,yCAAAzS,G,OACAwS,EAAAE,QAAM,IAAAI,0CAAelpD,EAAAlzB,EAAAy+D,EAAA0c,IAACl5F,KAAKge,MAAK67E,E,CAChCj6F,YAAOi6F,G,OAOqEU,0CAAvD,CAACtmE,KAAK,MAAO/V,KAAK,QAAY7J,GAAAwlF,G,CAtFvDj6F,iBAAAqxC,EAAAlzB,G,OAI4Bw8E,0CAH5B,CACAtmE,KAAA,MAAmB/V,KAAA,WACnB+yB,SAAqClzB,Q,CAuFxC3c,eAIU,EAAAgzC,OAAA1yC,SAAA1B,KAAA,gBAA0B,IAK9B,EAASo0C,OAAA1yC,SAAA1B,KAAwE,kBACpF,EAAAo0C,OAAA1yC,SAAA1B,KAAA,uBAEA,EAAAo0C,OAAA1yC,SAAA1B,KAAA,uBAAAo5F,0CAAA,SAOG,EAAShlD,OAAA1yC,SAAA1B,KAAA,cAAAo5F,0CAAA,O,gDAKiC,IAAAiB,0C,SACrCW,0CAAAC,EAA6BC,G,2CAIxCC,0CAAAF,GAEMG,0CAASF,E,UAEfG,2CAEM3nE,OAAS46B,iBAAA,oBAAAlD,GAEfA,EAAArkB,QAAArT,QAE8B,QAA/B03B,EAAAxoD,KAAAqxB,MACAqnE,mDAAqClwC,EAAwBxoD,KAEzD,M,UAGIu4F,0CAAoBjxD,G,SAKhBokB,iBAC6C,mBAAApkB,E,UAJjDkxD,0CAAsBlxD,G,SACtBokB,iBAAe,sBAAApkB,E,6DAAmDzyB,G,GAA8C,W,EAANyG,KAAM,C,IAACq9E,EAAAC,EAEjH,MAAIC,EAAQC,0CAAE9C,aAIVvnD,EAAA,CAEJpd,KAAA,MACI/V,KAAA,YACAy9E,QAAA,aACAh8C,QAAS,MACTxT,QAAOsvD,EACPxmD,IAAA,I,IAGA,QAAAsmD,EAAA9jF,EAAA7U,YAAA,IAAA24F,OAAsC,EAAAA,EAAA57C,SAAA+7C,0CAAA/7C,QAAAy5C,0CAAAwC,WAAA,QAAAJ,EAAA/jF,EAAA7U,YAAA,IAAA44F,OAAA,EAAAA,EAAA77C,SACtC+7C,0CAAuC/7C,QAAC,IAAcy5C,0CAAW,OAEjEsC,0CAAO/7C,QAAAzpB,WAAAwlE,0CAAAf,iBAAAzkE,WAIX,OAFAmb,EAAA4D,IAAA,qCAAyBymD,0CAAAf,iBAAAz6F,gBACzBwzB,OAAAqnE,YAAA1pD,EAAA,KAGA,GAAAoqD,KAAmBhkF,EAAQ7U,MAAK6U,EAAA7U,KAAAupC,SAAAsvD,GAQ/B,OALGpqD,EAAA4D,IAAA,2BAAWwmD,EACX,gBAEJ/nE,OAAOqnE,YAAA1pD,EAAA,KAQXqqD,0CAAAd,cAAA,EACAc,0CAAApB,WAA+C7iF,EAAA7U,KAAA9C,UAE/C4zB,OAAMqnE,YACE1pD,EAAW,I,KAET,IAAO,cAAD55B,EAACyG,K,YACLw9E,0CAAY5C,eAAA4C,0CAAA3C,cAEA,oBAATthF,EAAEyG,M,6CAEJzG,EAAA,CAGb,IAAAokF,EAASC,oCAAyBrkF,EAAAyG,MACrC,MAAA69E,EAAA,IAAAjB,YAAAe,EAAA,CAEDvS,OAAS,CACEviD,OAAI,MACP7oB,KAAKzG,EAASyG,KAAE+2B,IAAAx9B,EAAOw9B,IACvBryC,KAAK6U,EAAA7U,Q,SAERi4F,cAAAkB,E,CAGL,SAAAD,oCAAyC59E,GACzC,OAASA,GAED,IAAG,UACA,MAAI,mBACP,iBACI,MAAE,sBACN,QACI,MAAO,e,CAiCnB,SAAM89E,6CAA0BvkF,GAC5B,IAAAwkF,EAAAC,+BAAaC,WAAAtjD,KAAwBkuC,WAAAtvE,EAAAsvE,YAUlC,GAAAkV,GAAS,GAER,IAAA73F,EAAM83F,+BAAsB5/E,OAAA2/E,EAAA,M,OAAwBxkF,EAAAw9B,IAAS7wC,EAAAi+C,OAAc//C,MAAAmV,EAAAw9B,MAAS7wC,EAAAgzC,QAAM3/B,EAAA7U,K,SAASgd,MAAC,uBAAOnI,E,sCAClG,G,oCACgB,E,SACzB8iF,0CAAyC6B,G,OACzC,IAAAjlD,SAAA,CAAAC,EAAAiL,KACA,MAAMtR,EAAC,CACTg2C,YAAAsV,gCACLC,QAAAF,E,2JEhRD,MAAMG,6BAASpzE,OAAO,IACtB,SAASqzE,0BAAI92F,GAAa,OAAO62F,8BAAUpzE,OAAOzjB,E,CAClD,MAAM+2F,4BAAQD,0BAAI,IACZE,4BAAQF,0BAAI,IACZG,4BAAQH,0BAAI,IAGX,SAASI,yCAAKC,GACnB,OAAQ1zE,OAAO0zE,GAAQJ,6BAAOv8F,U,CAGzB,SAAS48F,0CAAKzO,GACnB,OAAQllE,OAAOpe,KAAK4yB,MAAa,IAAP0wD,IAAesO,6BAAOz8F,U,CAQ3C,SAAS68F,0CAAKC,GACnB,IAEE,GAAcziF,OADdyiF,EAASA,EAAO98F,YACS,OAAO,EAChC,MAAM+8F,EAAW,EAEXC,EAAYC,2CADPh0E,OAAO6zE,GAAU7zE,OAAO,GAAM,KAAO,GAAK8zE,KACvB/8F,YAAYgB,MAAM,EAAI+7F,EAAW,IAC/D,OAAOp4E,OAAOq4E,E,CAEhB,MAAOE,GAEL,OADAn2E,QAAQuL,IAAI,aAAcwqE,EAAQ,IAAKI,GAChC/qE,G,EASH,SAASgrE,0CAASL,GACxB,IACE,GAAcziF,MAAVyiF,EAAqB,OAAO,EAChC,MAAMC,EAAW,EAEXC,EAAYC,2CADPh0E,OAAO6zE,GAAU7zE,OAAO,GAAM,KAAO,GAAK8zE,KACvB/8F,YAAYgB,MAAM,EAAI+7F,EAAW,IAC/D,OAAOp4E,OAAOq4E,E,CAEhB,MAAOE,GAEL,OADAn2E,QAAQuL,IAAI,aAAcwqE,EAAQ,IAAKI,GAChC/qE,G,EAOJ,SAAS8qE,0CAASG,GACvB,IAAIh9F,GAAUg9F,EAAc,IAAIzkB,SAAS,GAAI,KAE7C,OADAv4E,EAASA,EAAOY,MAAM,GAAG,IAAO,IAAMZ,EAAOY,OAAM,IAC5CZ,C,CAkBF,SAASi9F,0CAAkBjgF,EAAmB2/E,EAAkBO,GACrElgF,EAAMA,EAAIpd,WAEV,IAAIiE,EAAI,EACR,KAAMA,EAAEmZ,EAAItc,QAAkB,KAARsc,EAAInZ,KAAWA,GAGrC,GAFS,GAALA,IACFmZ,EAAMA,EAAIquB,UAAUxnC,IACX,KAAPmZ,EACF,MAAO,IAGT,GAAe,GAAZ2/E,EACD,OAAO3/E,EAMT,IAAImgF,GAFJngF,EAAMiH,OAAOjH,GAAKu7D,SAASokB,EAAW,EAAG,MAEvB/7F,MAAM,GAAI+7F,GACxBS,EAAapgF,EAAIpc,MAAMu8F,EAAQz8F,QAInC,MAHc,IAAXy8F,IACDA,EAAU,KAEK,IAAdC,EACMD,EACOljF,MAAZijF,EACKC,EAAU,IAAMC,EAEjB74E,OAAO64E,GAAc,EACpBD,EAAU,IAAMC,EAAW/xD,UAAU,EAAG6xD,GAE1CC,C,CAYF,SAASE,0CAAcj4F,EAAUu3F,GACtC,IAAIW,EAAa/4E,OAAOo4E,GAEpB94F,EAAI,EACR,KAAMA,EAAEuB,EAAE1E,QAAgB,KAAN0E,EAAEvB,KAAWA,GACxB,GAALA,IACFuB,EAAIA,EAAEimC,UAAUxnC,IAElB,IAAI05F,EAASn4F,EAAEyY,QAAQ,KACvB,GAAI0/E,EAAS,EACX,OAAOn4F,EAAI,IAAIyzE,OAAO8jB,EAAU,KAElC,IAAIQ,EAAU/3F,EAAEimC,UAAU,EAAGkyD,GAC7B,GAAiB,GAAdD,EACD,OAAOH,EAET,IAAIC,EAAah4F,EAAEimC,UAAUkyD,EAAS,EAAGA,EAAS,EAAIZ,GAAU9jB,OAAO8jB,EAAU,KACjF,OAAsB,GAAlBQ,EAAQz8F,OACH08F,EACFD,EAAUC,C,CAOZ,SAASI,0CAASxgF,GACvB,MAAMhd,EAASukB,OAAOvH,EAAI4K,QAAO,KAAO,KACxC,OAAIqK,MAAMjyB,GAAgB,EACnBA,C,CAOF,SAASy9F,0CAAkBr4F,GAChC,MACMs4F,EAAYjzF,KAAK4yB,MAAMj4B,EAAI,IADhB,GACgCxF,WAAW24E,SAASokB,EAAc,KACnF,OAAOe,EAAU98F,MAAM,GAFN,GAEsB,IAAM88F,EAAU98F,OAFtC,E,CAQZ,SAAS+8F,0CAAgBv4F,GAC9B,MACMs4F,EAAYjzF,KAAK4yB,MAAMj4B,EAAI,IADhB,GACgCxF,WAAW24E,SAASokB,EAAc,KACnF,OAAOiB,0CAAUF,EAAU98F,MAAM,GAFhB,GAEgC,IAAM88F,EAAU98F,OAFhD,G,CASX,SAASi9F,0CAAsBz4F,GAInC,OADcu4F,0CADDZ,0CADE33F,EAAExF,Y,CASd,SAASk+F,0CAAY14F,GAC1B,OAAOw4F,0CAAUH,0CAAkBr4F,G,CAO9B,SAAS24F,0CAAgBC,GAC9B,IAAIC,EAAcD,EAAangF,QAAQ,KACvC,GAAIogF,GAAe,EAAG,OAAOD,EAC7B,IAAIrB,EAAWqB,EAAat9F,OAASu9F,EAAc,EACnD,KAAOD,EAAaE,SAAS,MAAQvB,KAAa,GAAGqB,EAAeA,EAAap9F,MAAM,GAAG,GAG1F,OAFIo9F,EAAaE,SAAS,QAAOF,EAAeA,EAAap9F,MAAM,GAAG,IAClEo9F,EAAaE,SAAS,SAAQF,EAAeA,EAAap9F,MAAM,GAAG,IAChEo9F,C,CAMF,SAASG,0CAAe/4F,GAC7B,OAAOw4F,0CAAUG,0CAAgBN,0CAAkBr4F,I,CAM9C,SAASw4F,0CAAU5gF,GACxB,IAAI5X,EAAI4X,EAAIa,QAAQ,KAGpB,KAFS,GAALzY,IAASA,EAAI4X,EAAItc,QACrB0E,GAAK,EACEA,GAAK,GACV4X,EAAMA,EAAIpc,MAAM,EAAGwE,EAAI,GAAK,IAAM4X,EAAIpc,MAAMwE,EAAI,GAChDA,GAAQ,EAEV,OAAO4X,C,CCjOF,SAASohF,yCAAGC,GAAkB,OAAO3Q,SAAS4Q,cAAcD,E,CAE5D,SAASE,0CAAIF,GAAkB,OAAO3Q,SAAS4Q,cAAcD,E,CAE7D,SAASG,0CAAIH,GAAkB,OAAO3Q,SAAS+Q,iBAAiBJ,E,CAGhE,SAASK,0CAAaL,EAAiBM,GAC1CjR,SAAS+Q,iBAAiBJ,GAAUn+F,SAAQ+N,IACpCA,aAAa2wF,cAAa3wF,EAAE0wF,UAAYA,EAAS,G,CAKtD,SAASE,0CAAaR,EAAiBS,EAAsBC,GAChErR,SAAS+Q,iBAAiBJ,GAAUn+F,SAAQ+N,IACpCA,aAAa2wF,aAAa3wF,EAAE+wF,aAAaF,EAAcC,EAAe,G,CAK3E,SAASE,yCAAYZ,EAAiBM,GACzCjR,SAAS4Q,cAAcD,GAAWa,UAAYP,C,CAI3C,SAASQ,0CAAKC,EAAYC,GAAc,GAC3CD,EAAoBE,MAAMC,QAAUF,EAAM,GAAG,M,CAE1C,SAASG,0CAAKJ,GACjBA,EAAoBE,MAAMC,QAAQ,M,CAG/B,SAASE,0CAAUpB,EAAiBlnF,EAAa8nC,GACpDygD,kCAAW,EACX,MAAMN,EAAKhB,yCAAGC,GACRsB,EAAsBvB,yCAAG,aAE/BuB,EAAQlB,iBAAiB,cAAcv+F,QAASs/F,2CAGhD,MAAMI,EAAYR,EAAGd,cAAc,UAC7BuB,EAAST,EAAGd,cAAc,QAC5BuB,GAAW1oF,IAAK0oF,EAAQX,UAAU/nF,GAClCyoF,GAAa3gD,IAAO2gD,EAAUjB,UAAU1/C,GAC5CkgD,0CAAKC,GAELD,0CAAKQ,E,CAEF,SAASG,0CAAUzB,GACtBmB,0CAAKpB,yCAAGC,G,CAEL,SAAS0B,4CACZL,kCAAW,EACXF,0CAAKpB,yCAAG,a,CAGZ,IAAI4B,qCACAN,kCAAmB,EAChB,SAASO,0CAAS9oF,EAAa8nC,GAClCygD,kCAAW,EACXM,qCAAiBjpD,YAAW,KACnB2oD,kCAAYD,0CAAU,YAAYtoF,EAAI8nC,EAAM,GAClD,I,CAEA,SAASihD,4CACZR,kCAAW,EACPM,uCACAviD,aAAauiD,sCACbA,0CAAe/lF,GAEnB6lF,0CAAU,Y,CAGP,SAASK,0CAAYhpF,EAAW8nC,GACnCwgD,0CAAU,eAAetoF,EAAI8nC,E,CAE1B,SAASmhD,0CAAYjpF,EAAW8nC,GACnCt4B,QAAQuL,IAAI/a,EAAM,IAAM8nC,GACxBwgD,0CAAU,eAAetoF,EAAI8nC,E,CAG1B,SAASohD,0CAAUlpF,EAAW8nC,GAEjCwgD,0CAAU,aAAatoF,EADvB8nC,EAAgB,mCAAR9nC,EAA6C,uBAAyB8nC,E,CAG3E,SAASqhD,0CAAQxD,GACpBn2E,QAAQuL,IAAI4qE,GACZuD,0CAAUvD,EAAG35F,Q,iEC7EjB,SAASo9F,0CACP,IAAIC,EAAMptE,OAAO8kB,SAASt4C,WAC1B,GAAI4gG,EAAI3iF,QAAQ,KAAO,EAAG,CACtB,IAAI4iF,EAAYD,EAAIn1D,UAAU,EAAGm1D,EAAI3iF,QAAQ,MAC7CuV,OAAOo6D,QAAQC,aAAa,GAAIC,SAASzuC,MAAOwhD,E,EAI/CnhG,eAAeohG,0CAA2BlS,EAAmCmS,GAGlF,I,IA8BM1F,EAA4BC,EA7BhC,MAAM0F,EAAY,IAAIC,gBAAgBztE,OAAO8kB,SAASC,QACtDooD,0CACA,MAAM3wD,EAASgxD,EAAU5hG,IAAI,qBACvB8hG,EAAYF,EAAU5hG,IAAI,aAEhC,GAAI8hG,EAAW,CAEb,MAAMC,EAAW,sBAAwBD,EAEzC,OADAn6E,QAAQrH,MAAMyhF,GACP,CACLpsD,IAAKosD,E,CAIT,IAAKnxD,EAAQ,MAAO,GAEpB,GAAIA,EAAO1nB,SAAS,KAAM,CAExB,MAAM64E,EAAW,gCAAkCnxD,EAEnD,OADAjpB,QAAQrH,MAAMyhF,GACP,CACLpsD,IAAKosD,E,CAIT,MAAMC,EAAgBjL,0BAAA/oD,MAAMxzB,UAAUhX,YAAYotC,GAC5CwpD,QAAyB5K,EAAiBziD,UAAUmF,WAAW0xC,SAASqe,SAAUD,EAAexS,EAAiBlC,gBAExH,IAAI37C,EACJ,GAAgC,QAA5BsqD,EAAA7B,EAAiBlc,mBAAW,IAA5B+d,GAAqC,QAArCC,EAAAD,EAA8Ble,eAAO,IAAAme,OAArC,EAAqCA,EAAEx6F,OAAO,CAChD,MAAMq8E,EAAQqc,EAAiBlc,YAAYH,QAE3C,IAAI,IAAI33E,EAAE,EAAEA,EAAE23E,EAAQr8E,OAAO0E,IAAK,CAChC,IAAI8Z,EAAO69D,EAAQ33E,GACnB,GAAI,iBAAkB8Z,EAAM,CAE1ByxB,EAASzxB,EAAKi7D,aAAayP,YAC3B,K,GAMN,IAAIzG,EAAYiW,EAAiBvqD,OAAOk6B,QACxC,GAAIoa,EAAS,CACXx8D,QAAQrH,MAAM,kCAAmC6jE,GAIjD,MAAO,CACLxuC,IAJsC,iBAAZwuC,GAAuB,EAAApzC,OAAAsB,eAAc8xC,GAASvjF,WACpE,wBAAwB+gG,kBAAgCvH,EAAiBlc,YAAYtkE,SAASwgF,EAAiBlc,YAAYtkE,kBAI/H+3B,OAAOA,E,CAIX,MAAO,CACLruC,MAAM,EAAAuxC,OAAA5F,0BAAyBmrD,GAC/BzoD,OAAOA,EACPuwD,sBAAuB9H,E,CAI3B,MAAM0D,GAEJ,OADAn2E,QAAQrH,MAAMw9E,EAAG35F,SACV,CAAEwxC,IAAKmoD,EAAG35F,Q,EAIZ7D,eAAe6hG,0CAAmC3S,EAAmCmS,GAG5F,IACE,MAAMC,EAAY,IAAIC,gBAAgBztE,OAAO8kB,SAASC,QACtDooD,0CACA,MAAM3wD,EAAsBgxD,EAAU5hG,IAAI,qBACpC8hG,EAAYF,EAAU5hG,IAAI,aAEhC,GAAI8hG,EAAW,CAEb,MAAMC,EAAW,sBAAwBD,EAEzC,OADAn6E,QAAQrH,MAAMyhF,GACP,CAAC,CACNpsD,IAAKosD,G,CAIT,IAAKnxD,EAAQ,MAAO,GAEpB,IAAIwxD,EAIFA,EAFExxD,EAAO1nB,SAAS,KAEC0nB,EAAOvvC,MAAM,KAOb,CAAEuvC,GAGvB,MAAMyxD,EAAqBD,EAAiBzhF,KAAI/G,GAAQm9E,0BAAA/oD,MAAMxzB,UAAUhX,YAAYoW,KAC9E0oF,QAA8BzqD,QAAQ0qD,IAAIF,EAAmB1hF,KAAIrgB,MAAO0hG,SAC/DxS,EAAiBziD,UAAUmF,WAAW0xC,SAASqe,SAAUD,EAAexS,EAAiBlC,mBAGxG,IAAIl7D,EAAS,GAEb,IAAI,IAAIvtB,EAAI,EAAGA,EAAIy9F,EAAsB5gG,OAAQmD,IAAK,C,IAGhDo3F,EAA4BuG,EAFhC,IAAI7wD,EACJ,MAAMyoD,EAAmBkI,EAAsBz9F,GAC/C,GAAgC,QAA5Bo3F,EAAA7B,EAAiBlc,mBAAW,IAA5B+d,GAAqC,QAArCuG,EAAAvG,EAA8Ble,eAAO,IAAAykB,OAArC,EAAqCA,EAAE9gG,OAAO,CAChD,MAAMq8E,EAAQqc,EAAiBlc,YAAYH,QAE3C,IAAI,IAAI33E,EAAE,EAAEA,EAAE23E,EAAQr8E,OAAO0E,IAAK,CAChC,IAAI8Z,EAAO69D,EAAQ33E,GACnB,GAAI,iBAAkB8Z,EAAM,CAE1ByxB,EAASzxB,EAAKi7D,aAAayP,YAC3B,K,GAMN,IAAIzG,EAAYiW,EAAiBvqD,OAAOk6B,QACxC,GAAIoa,EAAS,CACXx8D,QAAQrH,MAAM,kCAAmC6jE,GACjD,MAAM7xC,EAAkC,iBAAZ6xC,GAAuB,EAAApzC,OAAAsB,eAAc8xC,GAASvjF,WACpE,wBAAwB+gG,kBAAgCvH,EAAiBlc,YAAYtkE,SAASwgF,EAAiBlc,YAAYtkE,kBACjIwY,EAAOzwB,KACL,CACEg0C,IAAKrD,EACLX,OAAOA,G,MAIXvf,EAAOzwB,KACL,CACE2B,MAAM,EAAAuxC,OAAA5F,0BAAyBmrD,GAC/BzoD,OAAOA,EACPuwD,sBAAuB9H,G,CAM/B,OAAOhoE,C,CAET,MAAM0rE,GAEJ,OADAn2E,QAAQrH,MAAMw9E,EAAG35F,SACV,CAAC,CAAEwxC,IAAKmoD,EAAG35F,S,iHCrKf,MAAMs+F,yCAiBTniG,yBAAyBqxC,EAAgBlzB,EAAY,IACjD,IACI,MAAMikF,EAAe1yD,KAAKc,UAAUryB,GACpC,IAAIkkF,EAAaC,iCAAOphG,KAAKkhG,GAAc9hG,SAAS,UACpD,MAAM4qF,QAAkB9qF,KAAKkjF,SAASrkB,MAAM,CACxC6lB,aAAc,gBACdvC,WAAYniF,KAAKojF,WACjB8G,YAAaj5C,EACbkxD,YAAaF,EACbzxD,SAAU,eAKd,OADYlB,KAAKC,MAAM2yD,iCAAOphG,KAAKgqF,EAAUxqF,QAAQJ,W,CAEvD,MAAM+0C,GACJhuB,QAAQrH,MAAM,0BAA0BqxB,mBAAwBjxC,KAAKojF,0BAA0B9zC,KAAKc,UAAUryB,KAASk3B,E,EAK/H43B,KAAK57B,EAAelzB,GAChB,IAAK/d,KAAKoiG,OAAQ,MAAM9/F,MAAM,gCAAgCtC,KAAKojF,6BAA6BnyC,KAChG,OAAOjxC,KAAKoiG,OAAOv1B,KAAK7sE,KAAKojF,WAAWnyC,EAAOlzB,E,CAGnD1C,KAAK41B,EAAelzB,EAAUy+D,EAAgB0c,GAE1C,IAAKl5F,KAAKoiG,OAAQ,MAAM9/F,MAAM,gCAAgCtC,KAAKojF,6BAA6BnyC,KAChG,OAAOjxC,KAAKoiG,OAAO/mF,KAAKrb,KAAKojF,WAAYnyC,EAAQlzB,EAAMy+D,EAAK0c,E,CAGhEmJ,gBAAgBpxD,EAAelzB,EAAUy+D,EAAgB0c,GAErD,IAAKl5F,KAAKsiG,WAAY,MAAMhgG,MAAM,gCAAgCtC,KAAKojF,6BAA6BnyC,KACpG,OAAOjxC,KAAKsiG,WAAWjnF,KAAKrb,KAAKojF,WAAYnyC,EAAQlzB,EAAMy+D,EAAK0c,E,CAGpEH,aACI/4F,KAAKoiG,OAASG,yC,CAjDlBnhG,YACWgiF,G,KAAAA,aAGPpjF,KAAKoiG,OAASG,0CACdviG,KAAKsiG,WAAa,IAAIjM,0BAAA1pD,cAAsB61D,0CAAM,MAClDxiG,KAAKqsC,QAAUrsC,KAAKsiG,WAAWj2D,UAC/BrsC,KAAKkjF,SAAW,IAAI,EAAA/uC,OAAA1F,iBAAgBg0D,0CAAWtW,Q,oCCFhD,MAAMuW,kDAAoBX,yCAE7BniG,kBAAkBqlF,EAAoBX,EAAmBqe,GACrD,OAAO3iG,KAAKqb,KAAK,cAAc,CAAC4pE,YAAYA,EAAaX,OAAOA,EAAQqe,KAAKA,GAAM/F,yCAAK,KAAK,I,CAGjGh9F,uBAAuBqlF,EAAoBX,EAAmB7sE,EAAYkrF,GACtE,OAAO3iG,KAAKqb,KAAK,mBAAmB,CAAC4pE,YAAYA,EAAaX,OAAOA,EAAQqe,KAAKA,EAAMlrF,IAAIA,GAAKmlF,yCAAK,KAAK,I,CAG/Gh9F,oCAAoCqlF,EAAoBX,EAAmB7sE,EAAc,WACrF,OAAO4+E,0BAAAhpD,aAAqB4sC,aACxB,mBACA,CACIgL,YAAaA,EACbX,OAAQA,E,IACR7sE,GAEJ,IAAI,EAAAmiF,OAAA5mE,IAAG,mBAEP,IAAI,EAAA4mE,OAAA5mE,IAAG,G,CAIfpzB,2BAA2B8oC,EAAc47C,GACrC,OAAO+R,0BAAAhpD,aAAqB4sC,aACxB,UACA,C,MACIvxC,E,OACA47C,GAEJ,IAAI,EAAAsV,OAAA5mE,IAAG,mBAEP,IAAI,EAAA4mE,OAAA5mE,IAAG,G,CAIfpzB,wBACI,OAAOI,KAAK4iG,mBAAmB,kB,CAGnChjG,oBAAoBE,GAChB,OAAOE,KAAK4iG,mBAAmB,gBAAiB,CAAEzgB,WAAWriF,G,CAGjEF,oBACI,OAAOI,KAAK4iG,mBAAmB,c,CAGnChjG,UAAUijG,EAAkBC,GACxB,OAAO9iG,KAAKqb,KAAK,MAAM,CAACwnF,SAASA,EAAUC,aAAaA,G,CAI5DC,eAAejjG,GACb,OAAOE,KAAK4iG,mBAAmB,qBAAsB,CAAEzgB,WAAYriF,GAAaE,KAAKoiG,OAAOxV,gB,CAI9FoW,iBACE,OAAOhjG,KAAKqb,KAAK,kBAAmB,GAAIuhF,yCAAK,IAAK,yB,CAGpDh9F,kCACI,OAAOy2F,0BAAAhpD,aAAa4sC,aAChB,kBACA,GACA,IAAI,EAAA2f,OAAA5mE,IAAG,mBACP,IAAI,EAAA4mE,OAAA5mE,IAAG,0B,EC5FnB,IAAAohB,OAAAryC,cAAA,SCAAqyC,OAAAryC,cAAA,SCAO,SAASkhG,0CAAgBj1B,GAC5B,MAAO,CACHk1B,KAAM,GACNnjF,KAAM,O,OACNiuD,EACAm1B,cAAen1B,EACfo1B,KAAM,qmBACNC,UAAW,GACXC,eAAgB,GAChBrG,SAAU,G,mCCWX,MAAMsG,kDAAsBxB,yCAG/ByB,sBACI,OAAOxjG,KAAK4iG,mBAAmB,sBAAuB,G,CAI1DzzD,OAAOrvC,GACH,OAAGE,KAAKoiG,SAAWG,0CACRprD,QAAQC,QAAQ,CAAC,IAAK,IAAK,MAE/Bp3C,KAAK4iG,mBAAmB,SAAU,CAAEzgB,WAAYriF,GAAaE,KAAKoiG,OAAOxV,gB,CAIpFmW,eAAejjG,GACX,OAAOE,KAAK4iG,mBAAmB,qBAAsB,CAAEzgB,WAAYriF,GAAaE,KAAKoiG,OAAOxV,gB,CAIhGoW,iBACI,OAAOhjG,KAAKqb,KAAK,kBAAmB,GAAIuhF,yCAAK,IAAK,0B,CAItDh9F,kCACI,OAAOy2F,0BAAAhpD,aAAa4sC,aAChB,kBACA,GACA,IAAI,EAAA2f,OAAA5mE,IAAG,mBACP,IAAI,EAAA4mE,OAAA5mE,IAAG,2B,CAKf+mD,MAAMuK,GACF,OAAOtkF,KAAKqb,KAAK,QAAS,GAAIuhF,yCAAK,IAAKtY,EAAOpkF,W,CAOnDujG,QAAQnf,GACJ,OAAOtkF,KAAKqb,KAAK,UAAW,CAAEipE,OAAQA,GAAUsY,yCAAK,KAAM,I,CAY/Dp6C,QACI,OAAOxiD,KAAKqb,KAAK,QAAS,GAAIuhF,yCAAK,IAAK,I,CAG5C8G,gBACI,OAAO1jG,KAAKqb,KAAK,gBAAiB,GAAIuhF,yCAAK,K,oCC3D5C,MAAM+G,kDAAsB5B,yCAG/ByB,sBACI,OAAOxjG,KAAK4iG,mBAAmB,sB,CAInCzzD,OAAOrvC,GACH,OAAOE,KAAK4iG,mBAAmB,SAAU,CAAEzgB,WAAYriF,GAAaE,KAAKoiG,OAAOxV,gB,CAIpFmW,eAAejjG,GACX,OAAOE,KAAK4iG,mBAAmB,qBAAsB,CAAEzgB,WAAYriF,GAAaE,KAAKoiG,OAAOxV,gB,CAIhGoW,iBACI,OAAOhjG,KAAKqb,KAAK,kBAAmB,GAAIuhF,yCAAK,IAAK,0B,CAItDh9F,kCACI,OAAOy2F,0BAAAhpD,aAAa4sC,aAChB,kBACA,GACA,IAAI,EAAA2f,OAAA5mE,IAAG,mBACP,IAAI,EAAA4mE,OAAA5mE,IAAG,2B,CAKf4wE,iBAAiBtf,GACb,OAAOtkF,KAAKqb,KAAK,mBAAoB,GAAIuhF,yCAAK,IAAKtY,E,CAGvDuf,aAAa5e,GACT,OAAOjlF,KAAKqb,KAAK,eAAe,CAAC4pE,YAAYA,GAAa2X,yCAAK,KAAK,I,CAOxE6G,QAAQ/6D,EAAe47C,GACnB,OAAOtkF,KAAKqb,KAAK,UAAW,CAAEqtB,MAAOA,EAAO47C,OAAQA,GAAUsY,yCAAK,KAAM,I,CAQ7Ep6C,QACI,OAAOxiD,KAAKqb,KAAK,QAAS,GAAIuhF,yCAAK,IAAK,I,CAG5C8G,gBACI,OAAO1jG,KAAKqb,KAAK,gBAAiB,GAAIuhF,yCAAK,K,EClFnD,IAAAxoD,OAAAryC,cAAA,SAMO,MAAM+hG,0CAET1iG,eAIA,EAAAgzC,OAAA1yC,SAAA1B,KAAA,WAAmB,KACnB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,eAAyB,KACzB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,cAA4B,KAC5B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,qBAAiC,KACjC,EAAAo0C,OAAA1yC,SAAA1B,KAAA,cAAwB,KACxB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,mBAAiC,KACjC,EAAAo0C,OAAA1yC,SAAA1B,KAAA,aAAqB,IACrB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,gBAAwB,IACxB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,cAAsB,IACtB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,eAA6B,KAC7B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,eAA6B,KAC7B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,WAAmB,IACnB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,sBAA8B,E,EAI3B,MAAM+jG,0CAWT3iG,YAAY4iG,EAA4B,EAAGC,EAA2B,IATtE,EAAA7vD,OAAA1yC,SAAA1B,KAAA,eAA6B,KAC7B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,QAAoB,KACpB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,eAA2B,KAE3B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,gBAA8B,KAC9B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,aAAqB,KACrB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,YAAoB,GAIhBA,KAAKkkG,aAAe,IAAIrjG,MAAMmjG,GAAmB78E,KAAK,KACtDnnB,KAAKmkG,cAAgB,IAAItjG,MAAMojG,GAAkB98E,KAAK,I,EAIvD,MAAMi9E,0CAWThjG,YAAY4iG,EAA4B,EAAGC,EAA2B,IATtE,EAAA7vD,OAAA1yC,SAAA1B,KAAA,eAA2B,KAC3B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,QAAoB,KACpB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,eAA2B,KAE3B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,gBAA8B,KAC9B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,aAAqB,KACrB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,YAAoB,GAIhBA,KAAKkkG,aAAe,IAAIrjG,MAAMmjG,GAAmB78E,KAAK,IACtDnnB,KAAKmkG,cAAgB,IAAItjG,MAAMojG,GAAkB98E,KAAK,I,EAMvD,MAAMk9E,0C,eACT,EAAAjwD,OAAA1yC,SAAA1B,KAAA,WAAmB,OACnB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,OAAe,KACf,EAAAo0C,OAAA1yC,SAAA1B,KAAA,OAAe,KACf,EAAAo0C,OAAA1yC,SAAA1B,KAAA,YAAoB,KACpB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,iBAAyB,KACzB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,OAAe,KACf,EAAAo0C,OAAA1yC,SAAA1B,KAAA,SAAiB,G,EAGd,MAAMskG,0CAITljG,YAAYstF,EAAsBpK,GAC9BtkF,KAAK0uF,aAAeA,EACpB1uF,KAAKskF,OAASA,C,EJlEf1kF,eAAe2kG,0CAAqBnC,EAAwBoC,GAC/D,IAAIC,EAAoB,GACxB,IAAI,IAAItgG,EAAI,EAAGA,EAAIqgG,EAAkBxjG,OAAQmD,IAAK,CAC9C,MAAMi0F,EAAoBoM,EAAkBrgG,GAC5CsgG,EAAkBxjG,KAAK,IAAIyjG,0CAAkBtC,EAAQhK,EAAmB,I,CAE5E,OAAOqM,C,CAGJ,MAAME,0CAuBTC,cACI5kG,KAAK6kG,sBAAwB7kG,KAAKqnF,SAASmc,sBACxCxjG,KAAKqnF,SAAS+a,OAAOtJ,gBACpB94F,KAAK8kG,kBAAoB9kG,KAAKqnF,SAASl4C,UAE3CnvC,KAAK+kG,oBAAiBxqF,EACtBva,KAAKglG,gBAAazqF,C,CAGtB3a,0BAII,YAH2B2a,IAAxBva,KAAK+kG,iBACJ/kG,KAAK+kG,qBAAuB/kG,KAAK6kG,uBAE9B7kG,KAAK+kG,c,CAGhBE,4BACI,OAAOjlG,KAAK+kG,c,CAGhBnlG,sBACI,QAAuB2a,IAApBva,KAAKglG,aACJhlG,KAAKglG,iBAAmBhlG,KAAK8kG,kBACP,MAAnB9kG,KAAKglG,YAAoB,CACxB,MAAMD,QAAuB/kG,KAAKklG,oBAClCllG,KAAKglG,WAAa,IAAIjB,0CAAagB,EAAeb,aAAaljG,OAAQ+jG,EAAeI,YAAYnkG,O,CAG1G,OAAOhB,KAAKglG,U,CAGhBplG,yCACI,MAAMmlG,QAAuB/kG,KAAKklG,oBAClC,OAAOX,0CAAqBvkG,KAAKqnF,SAAS+a,OAAQ2C,EAAeb,a,CAGrEtkG,kCAMI,OALyC,GAAtCI,KAAKolG,uBAAuBpkG,SAC3BhB,KAAKolG,6BAA+BplG,KAAKqlG,+BAItCrlG,KAAKolG,sB,CAGhBxlG,iCACI,GAAwC,GAArCI,KAAKslG,sBAAsBtkG,OAAa,CACvC,MAAM+jG,QAAuB/kG,KAAKklG,oBAClCllG,KAAKslG,4BAA8Bf,0CAAqBvkG,KAAKqnF,SAAS+a,OAAQ2C,EAAeI,Y,CAEjG,OAAOnlG,KAAKslG,qB,CAzDhBlkG,YAAYghG,EAAyBhf,IAHrC,EAAAhvC,OAAA1yC,SAAA1B,KAAQ,yBAA8C,KACtD,EAAAo0C,OAAA1yC,SAAA1B,KAAQ,wBAA6C,IAGjDA,KAAKqnF,SAAW,IAAIsc,0CAAcvgB,GAClCpjF,KAAKqnF,SAAS+a,OAASA,EACvBpiG,KAAK4kG,cACL5kG,KAAKqlG,8BAAgCrlG,KAAKulG,kC,EAyD3C,MAAMC,0CAoBTZ,cACI5kG,KAAK6kG,sBAAwB7kG,KAAKqnF,SAASmc,sBAC3CxjG,KAAK8kG,kBAAoB9kG,KAAKqnF,SAASl4C,SACvCnvC,KAAK+kG,oBAAiBxqF,EACtBva,KAAKglG,gBAAazqF,C,CAGtB3a,0BAUI,YAT2B2a,IAAxBva,KAAK+kG,iBACJ/kG,KAAK+kG,qBAAuB/kG,KAAK6kG,4BAEGtqF,IAArCva,KAAK+kG,eAAeU,eAEnBzlG,KAAK+kG,eAAeU,aAAezlG,KAAK+kG,eAAeW,YACvD1lG,KAAK+kG,eAAeY,aAAe3lG,KAAK+kG,eAAea,gBACvD5lG,KAAK+kG,eAAec,aAAe7lG,KAAK+kG,eAAee,eAEpD9lG,KAAK+kG,c,CAGhBE,4BACI,OAAOjlG,KAAK+kG,c,CAGhBnlG,sBACI,GAAGI,KAAKqnF,SAAS+a,QAAUG,0CACvBviG,KAAKglG,WAAa,IAAIe,+CACnB,QAAuBxrF,IAApBva,KAAKglG,WAA0B,CACrC,MAAMA,QAAmBhlG,KAAK8kG,kBAC9B9kG,KAAKglG,WAAa,IAAIe,0CAAaf,E,CAEvC,OAAOhlG,KAAKglG,U,CAIhBplG,kCACI,OAAOI,KAAKolG,sB,CA9ChBhkG,YAAYghG,EAAyBhf,EAAoB4iB,EAA8B7N,GACnFn4F,KAAKqnF,SAAW,IAAIkc,0CAAcngB,GAClCpjF,KAAKqnF,SAAS+a,OAASA,EACvBpiG,KAAK4kG,cAEL5kG,KAAKolG,uBAAyB,CAAC,IAAIV,0CAAkBtC,EAAQ4D,EAAsB7N,G,EA6CpF,MAAMuM,0CAuBT9kG,oBASI,OARII,KAAKimG,WACLjmG,KAAKimG,eAAiBjmG,KAAKkmG,gBACxBlmG,KAAKimG,SAAUj4B,OAAOxlD,SAAS,KAC9BxoB,KAAKimG,SAAU9C,cAAgBnjG,KAAKimG,SAAUj4B,OAAO9lD,QAAQ,IAAK,IAElEloB,KAAKimG,SAAU9C,cAAgBnjG,KAAKimG,SAAUj4B,QAG/ChuE,KAAKimG,Q,CAGhBE,kBACI,OAAOnmG,KAAKimG,Q,CAGhBrmG,mB,IACO27F,EAKH,OALgB,QAAbA,EAAAv7F,KAAKqnF,gBAAQ,IAAbkU,OAAA,EAAAA,EAAe6G,SAAUG,0CACxBviG,KAAKu4E,QAAU,IACRv4E,KAAKu4E,UACZv4E,KAAKu4E,cAAgBv4E,KAAKomG,gBAEvBpmG,KAAKu4E,O,CAGhB8tB,iBAEI,OAAOrmG,KAAKu4E,O,CAGhBqsB,cACI5kG,KAAKu4E,aAAUh+D,EACZva,KAAKqnF,SACJrnF,KAAKomG,eAAiBpmG,KAAKqnF,SAASif,cAActmG,KAAKoiG,OAAOxV,gBAE9D5sF,KAAKomG,eAAiBpmG,KAAKoiG,OAAO3I,mB,CAlD1Cr4F,YAAYghG,EAAyBhf,EAAoB+U,EAAmB,IACxEn4F,KAAKoiG,OAASA,EACXhf,IAAe0T,2CACd92F,KAAKqnF,SAAW,IAAIqb,0CAAYtf,GAChCpjF,KAAKqnF,SAAS+a,OAASA,EAEvBpiG,KAAKkmG,gBAAkBlmG,KAAKqnF,SAASkf,cAElCnE,EAAOtJ,gBAAe94F,KAAKomG,eAAiBpmG,KAAKqnF,SAASif,cAAclE,EAAOxV,mBAElF5sF,KAAKimG,SAAWhD,0CAAgB9K,GAChCn4F,KAAKomG,eAAiBhE,EAAO3I,oB,ED1KlC,MAAM+M,0CAITplG,YAAY+vC,GACRnxC,KAAKmxC,GAAKA,EAAG,aACbnxC,KAAKymG,OAASt1D,C,EAIf,MAAM40D,0CAqBTW,kBACI,OAAO1mG,KAAK0lF,OAAS,E,CAGzBihB,yBACI,OAAOpJ,0CAAkBv9F,KAAK4mG,SAAS1mG,WAAY,GAAI,E,CAG3D2mG,2BACI,OAAOtJ,0CAAkBv9F,KAAK8mG,KAAK5mG,WAAY,GAAI,E,CAGvD6mG,sCACI,OAAOxJ,0CAAkBv9F,KAAK4mG,SAAS1mG,WAAY,GAAI,E,CAG3D8mG,4BACI,OAAOhnG,KAAKw5F,QAAQx4F,OAAS,GAAKhB,KAAKw5F,QAAQt4F,MAAM,EAAG,IAAM,KAAOlB,KAAKw5F,QAAQt4F,OAAM,IAAOlB,KAAKw5F,O,CAGxGyN,UAAU3iB,GACNtkF,KAAK0lF,OAAS1lF,KAAK0lF,OAASv8D,OAAOm7D,E,CA7BvCljF,YAAY4jG,IAXZ,EAAA5wD,OAAA1yC,SAAA1B,KAAA,uBAA+B,KAC/B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,OAAe,IACf,EAAAo0C,OAAA1yC,SAAA1B,KAAA,SAAiB,KACjB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,OAAe,KAEf,EAAAo0C,OAAA1yC,SAAA1B,KAAA,WAAmB,KACnB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,gBAAwB,KACxB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,oBAA4B,IAC5B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,gBAAwB,IACxB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,UAAkB,IAGXglG,IACChlG,KAAK0lF,OAASv8D,OAAO67E,EAAW,IAChChlG,KAAK8mG,KAAO39E,OAAO67E,EAAW,IAC9BhlG,KAAKknG,kBAAoBriF,OAAOmgF,EAAW,I,EA6BhD,MAAMmC,0CA0CTvnG,4BACI,MAAMwnG,QAAqCpnG,KAAKqnG,oBAAoBC,gBACpE,OAAOziF,OAAOuiF,EAAe1hB,QAAU,C,CAG3C9lF,2BAA2Bw4F,GACvB,MAAO,CAAC,IAAIsM,0CAAkB1kG,KAAKoiG,OAAQhK,EAAmBp4F,KAAKm4F,U,CAGvEv4F,oBAIuE,SAAAI,KAAAm4F,SAAA,UAAAn4F,KAAAm4F,SAAAxsD,UAAA,GAEtE,aADyB3rC,KAAAolG,uBAAA,GAAAmC,eACzBv5B,MAED,C,uCACmCo3B,uBAAW,OAA4BplG,KAAAwnG,4BAG1E,C,iCAECxnG,KAAAslG,4BAAAtlG,KAAAynG,qBAAAznG,KAAA0nG,gBAAAtkB,WAED,C,8BAEUpjF,KAAK2nG,kCACd3nG,KAAA4nG,0BAED,CAIAhoG,4BAA4B,C,+BAExB,MAAMioG,QAAsB7nG,KAAO0nG,gBAAgBnB,cACnD12E,EAAOg4E,EAAAzE,KAAAyE,EAAAzE,KAAAyE,EAAA9nF,K,MAAC,C,CAEJ+nF,MAAKj4E,EAAGrH,SAAA,QACRqH,MACHk4E,UAAAF,EAAA9nF,MAGL,C,6BAGI,IAAAioF,EAAM,GACN,MAAMC,SAA8BjoG,KAAAqnG,oBAAuBa,6BAAA,GACrDC,QAAiBnoG,KAAAooG,QAAWH,GAC5BlD,QAAiB/kG,KAAAqnG,oBAAuBnC,oBACxCmD,QAAcJ,EAAAV,cAEpBe,EAAe/K,0CAAAwH,EAAAU,aAAA4C,EAAApL,SAAA,GAMlB,O,OALO,CACAkL,SAASA,EACXt/C,QAAAy/C,IAGLN,CAED,C,8BAEI,IAAAA,EAAM,GACN,MAAMjD,QAAuB/kG,KAAKqnG,oBAAoBnC,oBAEhDkC,QAAoBpnG,KAAKqnG,oBAAuBC,gBAChDiB,EAAiBvoG,KAAKslG,sBAAyB,GAC/C6C,QAAiBnoG,KAA0BooG,QAAMG,GACjDC,QAAYD,EAAsBhB,cAClCQ,EAAAS,EAAyBzoF,KAEzB0oF,EAAelL,0CADC,IAAAp0E,OAAA47E,EAAAY,cAAA,IACgC6C,EAAcvL,SAAiB,GAC/EyL,EAAAnL,0CAAuBwH,EAAkBc,aAAoB2C,EAAYvL,SAAiB,GAEhG0L,EAAepL,0CAAA6J,EAAAN,KAAA5mG,WAAAsoG,EAAAvL,SAAA,GASlB,O,OARO,C,qCAGAwL,E,eAEFE,yBAGLX,CAED,C,cACUY,GACN,MAAMP,QAAeO,EAAerB,cACpC13E,EAAOw4E,EAAAjF,KAAAiF,EAAAjF,KAAAiF,EAAAtoF,K,MACH,CACA+nF,MAAKj4E,EAAGrH,SAAA,QACRqH,MACHk4E,UAAAM,EAAAtoF,KAAAsoF,EAAAtoF,KAAA,SAGL,C,kCAEC,WAAA2kF,0CAAA1kG,KAAAoiG,OAAApiG,KAAA6oG,mBAAAzlB,WAAApjF,KAAAm4F,SAED,C,iCAEC,WAAAuM,0CAAA1kG,KAAAoiG,OAAApiG,KAAA0nG,gBAAAtkB,WAED,C,2BAEC,aAAApjF,KAAA6oG,mBAAAvC,cAAAtmG,KAAAoiG,OAAAxV,eA/HD,C,YALAwV,EAAA0G,EAAAC,IACA,EAAA30D,OAAA1yC,SAAA1B,KAAA,yBAA6C,KAKzC,EAAIo0C,OAAO1yC,SAAG1B,KAAA,4BACdA,KAAKoiG,OAAOA,EACZpiG,KAAK0f,KAAOopF,EAAI5Q,SAChBl4F,KAAKgpG,KAAA,IAAWxC,0CAAiBsC,EAAA3Q,UACjCn4F,KAAKm4F,SAAS2Q,EAAS3Q,SAEvBn4F,KAAK4tE,OAAAk7B,EAAkBl7B,OAASk7B,EAAAl7B,OAAY,GAC5C5tE,KAAKipG,gBAAkBH,EAASI,YAEhClpG,KAAKmpG,gBAAAL,EAA0BK,gBAC/BnpG,KAAKqnG,oBAAoB,IAAQ7B,0CAAApD,EAAA0G,EAAApa,aAAAoa,EAAA1Q,kBAAA0Q,EAAA3Q,UAEjCn4F,KAAKqnG,oBAAiBhgB,SACtBrnF,KAAK0nG,gBAAkB,IAAOhF,0CAAAqG,GAC9B/oG,KAAK6oG,mBAAqB,IAA4BnG,0CAAAoG,EAAA1Q,mBAEtDp4F,KAAKopG,mBAAgB,CAAM,EAC3BppG,KAAK0nG,gBAAAtF,OAAyBA,EACjCpiG,KAAA6oG,mBAAAzG,QA6GJ,EMtND,IAAAhuD,OAAAryC,cAAA,S,8BCMOnC,eAAeypG,0CAAwBC,EAAmCjiB,GAC7E,IAAIkiB,EAAW,GACf,IAAI,IAAIplG,EAAI,EAAGA,EAAImlG,EAAetoG,OAAQmD,IACtColG,EAAStoG,KAAKqoG,EAAenlG,GAAGw2D,SAEpC,MAAM6uC,QAAuBryD,QAAQ0qD,IAAI0H,GACzC,IAAIE,EAA2C,GAC/C,IAAI,IAAItlF,EAAI,EAAGA,EAAIqlF,EAAexoG,OAAQmjB,IACtCslF,EAAaxoG,WACHyoG,sCACFJ,EAAenlF,GAAGuqE,aAClB,CAAC8a,EAAerlF,IAChBkjE,UAKNA,EAASib,WAAWvT,wBACtB0a,EACA/1E,OAAO8kB,SAASumB,K,CAIxBn/D,eAAe8pG,sCACXhuB,EACA2B,EACAgK,EACAsiB,EAAc,GAEd,MAAO7sB,EAAWgD,SAAe3oC,QAAQ0qD,IAAI,CACzCxa,EAASh7C,QAAQwiD,wBAAwBnT,EAAY2B,GACrDmlB,0CAAKhxD,WAAW0xC,SAASpD,MAAM,CAAEtvC,SAAU,YAG/C,IAAKssC,EACD,MAAM,IAAIx6E,MAAM,oDAAoDo5E,KAGxE,MAAM4B,GAAY,EAAA3jE,OAAAE,YAAWimE,EAAM3kC,OAAOjiC,MAEpCvV,EAAY0yF,0BAAA/oD,MAAM1rC,UAAUd,KAAKg8E,EAAUoI,YAC3CxtE,EAAQolE,EAAUiI,WAAWrtE,MAAQiyF,EAE3C,OAAOtT,0BAAAhpD,aAAaisC,kBAChB+N,EAAS+a,OAAOxV,eAChBjpF,EACA+3E,EACAhkE,EACA2lE,EACAC,E,mCC1CD,MAAMssB,kDAAoB7H,yCAU7BniG,wBAAwBqlF,EAAoB4kB,GACxC,OAAO7pG,KAAKqb,KAAK,oBAAoB,CAAC4pE,YAAYA,EAAa4kB,SAASA,EAAUpyF,IAAI,YAAYmlF,yCAAK,KAAK,I,CAGhHh9F,qCAAqCqlF,EAAoB4kB,GACrD,OAAOxT,0BAAAhpD,aAAqB4sC,aACxB,oBACA,C,YACIgL,E,SACA4kB,EACApyF,IAAK,WAET,IAAI,EAAAmiF,OAAA5mE,IAAG4pE,yCAAK,KACZ,IAAI,EAAAhD,OAAA5mE,IAAG,G,CAIfpzB,2BAA2BE,GACvB,OAAOE,KAAK6sE,KAAK,uBAAwB,CAACsV,WAAYriF,EAAWgqG,WAAY,IAAK38E,MAAS,M,CAG/FvtB,qBACI,OAAOI,KAAK4iG,mBAAmB,e,CAGnChjG,gBAAgBmqG,GACZ,OAAO/pG,KAAK4iG,mBAAmB,YAAa,CAACiH,SAAUE,G,CAlC3D3oG,YACWgiF,EACA4mB,GAGP3oG,MAAM+hF,G,KAJCA,a,KACA4mB,S,ECjBf,IAAA51D,OAAAryC,cAAA,S,8BCwBO,MAAMkoG,kDAAuBlI,yCAGhCyB,sBACI,OAAOxjG,KAAK4iG,mBAAmB,sB,CAInCzzD,OAAOrvC,GACH,OAAOE,KAAK4iG,mBAAmB,SAAU,CAAEzgB,WAAYriF,GAAaE,KAAKoiG,OAAOxV,gB,CAIpFmW,eAAejjG,GACX,OAAOE,KAAK4iG,mBAAmB,qBAAsB,CAAEzgB,WAAYriF,GAAaE,KAAKoiG,OAAOxV,gB,CAIhGoW,iBACI,OAAOhjG,KAAKqb,KAAK,kBAAmB,GAAIuhF,yCAAK,IAAK,0B,CAItDh9F,kCACI,OAAOy2F,0BAAAhpD,aAAa4sC,aAChB,kBACA,GACA,IAAI,EAAA2f,OAAA5mE,IAAG,mBACP,IAAI,EAAA4mE,OAAA5mE,IAAG,2B,CAKf4wE,iBAAiBtf,GACb,OAAOtkF,KAAKqb,KAAK,mBAAoB,GAAIuhF,yCAAK,IAAKtY,E,CAGvDuf,aAAa5e,GACT,OAAOjlF,KAAKqb,KAAK,eAAe,CAAC4pE,YAAYA,GAAa2X,yCAAK,KAAK,I,CAGxEh9F,2BAA2BsqG,EAAwBL,GAC/C,OAAOxT,0BAAAhpD,aAAqB4sC,aACxB,UACA,C,gBACIiwB,E,SACAL,GAEJ,IAAI,EAAAjQ,OAAA5mE,IAAG4pE,yCAAK,MACZ,IAAI,EAAAhD,OAAA5mE,IAAG,G,CAQfywE,QAAQyG,EAAyBL,GAC7B,OAAO7pG,KAAKqb,KAAK,qBAAsB,GAAmCuhF,yCAAK,KAAM,I,CAQzFp6C,QACI,OAAOxiD,KAAKqb,KAAK,QAAS,GAAIuhF,yCAAK,IAAK,I,CAG5C8G,gBACI,OAAO1jG,KAAKqb,KAAK,gBAAiB,GAAIuhF,yCAAK,K,EDtFnDh9F,eAAeuqG,yCAAmB/H,EAAwBoC,EAA6BnM,GACnF,IAAI+R,EAAkB,GACtB,IAAI,IAAIjmG,EAAI,EAAGA,EAAIqgG,EAAkBxjG,OAAQmD,IAAK,CAC9C,MAAMkmG,EAAkB7F,EAAkBrgG,GAC1CimG,EAAgBnpG,KAAK,IAAIqpG,0CAAgBlI,EAAQiI,EAAiBhS,EAAWl0F,GAAI,I,CAErF,OAAOimG,C,CAIJ,MAAMG,0CA6BT3F,cACI5kG,KAAK6kG,sBAAwB7kG,KAAKqnF,SAASmc,sBACxCxjG,KAAKqnF,SAAS+a,OAAOtJ,gBACpB94F,KAAK8kG,kBAAoB9kG,KAAKqnF,SAASl4C,UAE3CnvC,KAAK+kG,oBAAiBxqF,EACtBva,KAAKglG,gBAAazqF,C,CAGtB3a,0BAII,YAH2B2a,IAAxBva,KAAK+kG,iBACJ/kG,KAAK+kG,qBAAuB/kG,KAAK6kG,uBAE9B7kG,KAAK+kG,c,CAGhBE,4BACI,OAAOjlG,KAAK+kG,c,CAGhBnlG,sBACI,QAAuB2a,IAApBva,KAAKglG,aACJhlG,KAAKglG,iBAAmBhlG,KAAK8kG,kBACP,MAAnB9kG,KAAKglG,YAAoB,CACxB,MAAMD,QAAuB/kG,KAAKklG,oBAClCllG,KAAKglG,WAAa,IAAIZ,0CAAoBW,EAAeb,aAAaljG,OAAQ+jG,EAAeI,YAAYnkG,O,CAGjH,OAAOhB,KAAKglG,U,CAGhBplG,yCACI,MAAMmlG,QAAuB/kG,KAAKklG,oBAElC,OAAOX,0CAAqBvkG,KAAKqnF,SAAS+a,OAAQ,CAAC2C,EAAeyF,S,CAGtE5qG,qCAA6Cy4F,GACzC,MAAM0M,QAAuB/kG,KAAKklG,oBAElC,OAAOiF,yCAAmBnqG,KAAKqnF,SAAS+a,OAAQ2C,EAAeb,aAAc7L,E,CAGjFz4F,kCAMI,OALyC,GAAtCI,KAAKolG,uBAAuBpkG,SAC3BhB,KAAKolG,6BAA+BplG,KAAKqlG,+BAItCrlG,KAAKolG,sB,CAGhBxlG,iCACI,GAAwC,GAArCI,KAAKslG,sBAAsBtkG,OAAa,CACvC,MAAM+jG,QAAuB/kG,KAAKklG,oBAClCllG,KAAKslG,4BAA8Bf,0CAAqBvkG,KAAKqnF,SAAS+a,OAAQ2C,EAAeI,Y,CAEjG,OAAOnlG,KAAKslG,qB,CAGhB1lG,gCAMI,OALuC,GAApCI,KAAKyqG,qBAAqBzpG,SACzBhB,KAAKyqG,2BAA6BzqG,KAAK0qG,6BAIpC1qG,KAAKyqG,oB,CA3EhBrpG,YAAYghG,EAAyBhf,EAAoBiV,IAJzD,EAAAjkD,OAAA1yC,SAAA1B,KAAQ,yBAA8C,KACtD,EAAAo0C,OAAA1yC,SAAA1B,KAAQ,uBAA0C,KAClD,EAAAo0C,OAAA1yC,SAAA1B,KAAQ,wBAA6C,IAGjDA,KAAKqnF,SAAW,IAAI4iB,0CAAe7mB,GACnCpjF,KAAKqnF,SAAS+a,OAASA,EACvBpiG,KAAKq4F,WAAaA,EAClBr4F,KAAK4kG,cACL5kG,KAAKqlG,8BAAgCrlG,KAAKulG,mCAC1CvlG,KAAK0qG,4BAA8B1qG,KAAK2qG,+BAA+BtS,E,EA0ExE,MAAMiS,0CAsBT1qG,0BAII,OAHII,KAAK4qG,iBACL5qG,KAAK4qG,qBAAuB5qG,KAAK6qG,uBAE9B7qG,KAAK4qG,c,CAGhBE,wBACI,OAAO9qG,KAAK4qG,c,CAGhBhG,cACI5kG,KAAK4qG,oBAAiBrwF,EAEtBva,KAAK6qG,sBAAwB7qG,KAAKqnF,SAAS0jB,qBAAqB/qG,KAAKoiG,OAAOxV,e,CAGhFhtF,oBAII,OAHII,KAAKqoG,WACLroG,KAAKqoG,SAAWroG,KAAKqnF,SAAS2jB,gBAE3BhrG,KAAKqoG,Q,CAlChBjnG,YAAYghG,EAAyBhf,EAAoBiV,EAAoBF,EAAmB,IAC5Fn4F,KAAKoiG,OAASA,EAEdpiG,KAAKqnF,SAAW,IAAIuiB,0CAAYxmB,EAAYiV,GAC5Cr4F,KAAKqnF,SAAS+a,OAASA,EACpBpiG,KAAKoiG,OAAOtJ,gBACX94F,KAAK6qG,sBAAwB7qG,KAAKqnF,SAAS0jB,qBAAqB3I,EAAOxV,gBACvE5sF,KAAKqoG,SAAWroG,KAAKqnF,SAAS2jB,e,EHvHnC,MAAMC,0CAiCTrrG,4BACI,MAAMwnG,QAA4CpnG,KAAKqnG,oBAAoBC,gBAC3E,IAAIZ,GAAkB,EACtB,IAAI,IAAIviG,EAAI,EAAGA,EAAIijG,EAAelD,aAAaljG,OAAQmD,IACnDuiG,MAAoBU,EAAelD,aAAa//F,GAAG+mG,MAAKxiE,GAASA,EAAM1nC,OAAS,KAEpF,OAAO0lG,C,CAGX9mG,oBACI,OAAOI,KAAKgpG,KAAKvC,M,CAKrB7mG,wBAAwB,CAGxBA,4BAA4B,CAG5BA,sBACI,MACMmqG,SAD4C/pG,KAAKqnG,oBAAoBC,iBACpC6D,WAAWxqG,MAAM,KAAK,GAC7D,OAAOX,KAAKqnG,oBAAoBhgB,SAASoc,QAAQzjG,KAAKorG,uBAAuBhoB,WAAY2mB,E,CAG7FnqG,wBACI,MAAMmlG,QAAuB/kG,KAAKqnG,oBAAoBnC,oBAChDwC,SAAyB1nG,KAAKqnG,oBAAoBa,6BAA6B,GAAG7gB,SAClF/C,EAASygB,EAAesG,aAY9B,MAL4B,C,QANZ3D,EAAgB4D,8BAC5BtrG,KAAKqnG,oBAAoBhgB,SAASjE,WAClCkB,EACA,iBAKAoK,aAAcgZ,EAAgBtkB,W,CAMtCmoB,YAAYC,EAAmCpoB,EAAoB2mB,GAU/D,MAJ4B,C,QALZyB,EAAiBnkB,SAASokB,+BACtCzrG,KAAKqnG,oBAAoBhgB,SAASjE,WAClC2mB,GAKArb,aAActL,E,CAMtBxjF,uBAAuB8rG,GACnB,IAAIC,EAAM,GACV,IAAI,IAAKvoB,EAAYwoB,KAAqBF,EAAqB,CAC3D,MAEMF,SAFgDxrG,KAAKqnG,oBAAoBwE,2BAEhBxiB,MAAKz+E,GAAKA,EAAEy8E,SAASjE,YAAcA,IAElG,IAAI,IAAIj/E,EAAI,EAAGA,EAAIynG,EAAiBE,YAAY9qG,OAAQmD,IAAK,CACzDwnG,EAAI1qG,WAAWjB,KAAK+rG,mBAEpB,MAAMhC,EAAU6B,EAAiBE,YAAY3nG,GAE7CwnG,EAAI1qG,KAAKjB,KAAKurG,YAAYC,EAAkBpoB,EAAY2mB,G,CAG5D,IAAI,IAAI5lF,EAAI,EAAGA,EAAIynF,EAAiBI,cAAchrG,OAAQmjB,IAAK,CAC3D,MAAM4lF,EAAU6B,EAAiBI,cAAc7nF,GAMzC8nF,EAAsB,C,QALZjsG,KAAKqnG,oBAAoBhgB,SAAS6kB,qBAC9C9oB,EACA2mB,GAKArb,aAAc1uF,KAAKqnG,oBAAoBhgB,SAASjE,YAGpDuoB,EAAI1qG,KAAKgrG,E,EAGdN,EAAI3qG,OAAS,SAASqoG,0CAAwBsC,EAAK3rG,KAAKqnG,oBAAoBhgB,S,CAInFznF,6BACI,IAAIooG,EAAyB,GAC7B,MAAMjD,QAAuB/kG,KAAKqnG,oBAAoBnC,oBAChDE,QAA+BplG,KAAKqnG,oBAAoBa,4BAE9D,IAAI,IAAI/jG,EAAI,EAAGA,EAAIihG,EAAuBpkG,OAAQmD,IAAK,CACnD,MAAM0kG,EAAqBzD,EAAuBjhG,GAC5CgkG,QAAiBnoG,KAAKooG,QAAQS,GAC9BsD,QAA2BtD,EAAmBtB,cAC9Ce,EAAc/K,0CAAkBwH,EAAeU,aAAathG,GAAIgoG,EAAmBlP,SAAU,GAEnG+K,EAAU/mG,KAAK,C,SACXknG,EACAt/C,QAASy/C,G,CAGjB,OAAON,C,CAGXpoG,8BACI,IAAIooG,EAAgC,GACpC,MAAMjD,QAAuB/kG,KAAKqnG,oBAAoBnC,oBAChDkC,QAAuBpnG,KAAKqnG,oBAAoBC,gBAChDhC,QAA8BtlG,KAAKqnG,oBAAoB+E,2BAE7D,IAAI,IAAIjoG,EAAI,EAAGA,EAAImhG,EAAsBtkG,OAAQmD,IAAK,CAClD,MAAMokG,EAAoBjD,EAAsBnhG,GAC1CgkG,QAAiBnoG,KAAKooG,QAAQG,GAC9BC,QAAiDD,EAAkBhB,cACnEQ,EAAYS,EAAkBzoF,KAE9BssF,EAAkBljF,OAAO47E,EAAeuH,oBAAsBnjF,OAAO47E,EAAewH,iBAAiBpoG,IAAM,IAAM,IAAOglB,OAAO,KAAOA,OAAO,IAC7Is/E,EAAgBlL,0CAAkB8O,EAAiB7D,EAAkBvL,SAAU,GAC/EyL,EAAenL,0CAAkBwH,EAAec,aAAa1hG,GAAIqkG,EAAkBvL,SAAU,GAC7F0L,EAAuBpL,0CAAkB6J,EAAejD,cAAchgG,GAAIqkG,EAAkBvL,SAAU,GAE5G+K,EAAU/mG,KAAK,C,SACXknG,E,UACAJ,E,gBACAsE,E,cACA5D,E,aACAC,E,qBACAC,G,CAGR,OAAOX,C,CAGXpoG,cAAcgpG,GACV,MAAMP,QAAiBO,EAAarB,cAC9B13E,EAAMw4E,EAASjF,KAAOiF,EAASjF,KAAOiF,EAAStoF,KACrD,MAAO,CACH+nF,MAAOj4E,EAAIrH,SAAS,QACpBqH,IAAKA,EACLk4E,UAAWM,EAAStoF,KAAOsoF,EAAStoF,KAAO,S,CAInDngB,+BACI,IAAIooG,EAA6B,GACjC,MAAM1C,QAA8BtlG,KAAKqnG,oBAAoB+E,2BAC7D,IAAI,IAAIjoG,EAAI,EAAGA,EAAImhG,EAAsBtkG,OAAQmD,IAAK,CAClD,MAAMokG,EAAoBjD,EAAsBnhG,GAC1CqkG,QAA0BD,EAAkBhB,cAC5C13E,EAAM24E,EAAkBpF,KAAOoF,EAAkBpF,KAAOoF,EAAkBzoF,KAC1End,EAAO,CACTklG,MAAOj4E,EAAIrH,SAAS,QACpBqH,IAAKA,EACLk4E,UAAWS,EAAkBzoF,KAAOyoF,EAAkBzoF,KAAO,UAEjEioF,EAAU/mG,KAAK2B,E,CAEnB,OAAOolG,C,CAIXpoG,2BACI,IAAI4sG,EAAgC,GACpC,MAAMpH,QAA+BplG,KAAKqnG,oBAAoBa,4BAC9D,IAAI,IAAI/jG,EAAI,EAAGA,EAAIihG,EAAuBpkG,OAAQmD,IAAK,CACnD,MAAMykG,EAAexD,EAAuBjhG,GACtCo0E,QAAgBqwB,EAAa6D,aACnCD,EAAgBvrG,KAAKs3E,E,CAEzB,OAAOi0B,C,CAjMXprG,YAAYghG,EAAyB0G,EAAoB4D,EAAqBC,IAL9E,EAAAv4D,OAAA1yC,SAAA1B,KAAA,wBAA6C,IAMzCA,KAAKoiG,OAASA,EACdpiG,KAAK0f,KAAOopF,EAAS5Q,SAErBl4F,KAAKipG,gBAAkBH,EAASI,YAChClpG,KAAKmpG,gBAAkBL,EAASK,gBAChCnpG,KAAK4tE,OAASk7B,EAASl7B,OAASk7B,EAASl7B,OAAS,GAElD5tE,KAAKgpG,KAAO,IAAIxC,0CAAesC,EAAS3Q,UACxCn4F,KAAKqnG,oBAAsB,IAAIkD,0CAAuBnI,EAAQ0G,EAASpa,aAAcoa,EAASzQ,YAG9Fr4F,KAAKorG,uBAAyB,IAAIxB,0CAAY8C,EAAaC,GAC3D3sG,KAAKorG,uBAAuBhJ,OAASpiG,KAAKoiG,M,EK9ClD,IAAAhuD,OAAAryC,cAAA,SAYO,MAAM6qG,0CAITxrG,YAAY+vC,GACRnxC,KAAKmxC,GAAKA,EAAG,aACbnxC,KAAKymG,OAASt1D,C,EAIf,MAAM07D,0CAkBT7F,4BACI,OAAOhnG,KAAKw5F,QAAQx4F,OAAS,GAAKhB,KAAKw5F,QAAQt4F,MAAM,EAAG,IAAM,KAAOlB,KAAKw5F,QAAQt4F,OAAM,IAAOlB,KAAKw5F,O,CAGxGyN,UAAU6F,GACN,IAAK,IAAI3oG,EAAI,EAAGA,EAAI2oG,EAAY9rG,OAAQmD,IACpCnE,KAAK0lF,OAAOvhF,IAAMglB,OAAOnpB,KAAK0lF,OAAOvhF,IAAM2oG,EAAY3oG,IAAIjE,U,CAbnEkB,YAAY2rG,EAA4BC,IATxC,EAAA54D,OAAA1yC,SAAA1B,KAAA,SAAuB,KACvB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,cAA0B,MAC1B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,SAAuB,KAEvB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,qBAA6B,IAC7B,EAAAo0C,OAAA1yC,SAAA1B,KAAA,gBAAwB,IACxB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,UAAkB,KAClB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,aAAqB,IAGjBA,KAAK0lF,OAAS,IAAI7kF,MAAMksG,GAAoB5lF,KAAK,KACjDnnB,KAAKitG,OAAS,IAAIpsG,MAAMmsG,GAAoB7lF,KAAK,I,EAgBlD,MAAM+lF,0CA+BTttG,4BACI,MAAMwnG,QAAuBpnG,KAAKqnG,oBAAoBC,gBACtD,IAAIZ,GAAkB,EACtB,IAAI,IAAIviG,EAAI,EAAGA,EAAIijG,EAAelD,aAAaljG,OAAQmD,IACnDuiG,MAAoBv9E,OAAOi+E,EAAelD,aAAa//F,IAAM,IAEjE,OAAOuiG,C,CAGX9mG,oBACI,IAAIutG,EAAuB,GAC3B,MAAM/H,QAAoDplG,KAAKqnG,oBAAoBa,4BAEnF,IACIkF,EADAC,GAAa,EAEjB,IAAI,IAAIlpG,EAAI,EAAGA,EAAIihG,EAAuBpkG,OAAQmD,IAAK,CACnD,MAAMmpG,EAAoBlI,EAAuBjhG,GAC3CopG,QAAsBD,EAAkB/F,cACxCiG,EAAkD,WAAtCD,EAAcv/B,OAAO7qE,cACvCkqG,EAAaA,GAAcG,EACvBA,EAGAJ,EAAgBG,EAAcv/B,OAF9Bm/B,EAAWlsG,KAAKssG,EAAcv/B,O,CAKnCq/B,GACCF,EAAWlsG,KAAKmsG,GAGpB,MAAM9/B,EAAQ6/B,EAAWhsG,KAAK,OAC9B,OAAGmsE,EAAMtsE,OAAS,GACPssE,EAAM3hC,UAAU,EAAG,GAAK,MAAQ2hC,EAAM3hC,UAAU2hC,EAAMtsE,OAAS,GAE/DssE,C,CAMf1tE,wBAAwB,CAGxBA,4BAA4B,CAG5BA,YAAY6tG,GACR,IAAI9B,EAAM,GACV,MAAMvG,QAA+BplG,KAAKqnG,oBAAoBa,4BAC9D,IAAI,IAAI/jG,EAAI,EAAGA,EAAIihG,EAAuBpkG,OAAQmD,IAAK,CACnD,MAAM0kG,EAAqBzD,EAAuBjhG,GAAGkjF,SACrD,GAAiB,IAAdomB,EAAQtpG,GAAU,CACjB,MAIM8nG,EAAsB,C,QAJZpD,EAAmByC,8BAC/BtrG,KAAKqnG,oBAAoBhgB,SAASjE,WAClCqqB,EAAQtpG,GAAGjE,YAIXwuF,aAAcma,EAAmBzlB,YAGrCuoB,EAAI1qG,KAAKgrG,E,QAGX5C,0CAAwBsC,EAAK3rG,KAAKqnG,oBAAoBhgB,S,CAGhEznF,cAAc6tG,GACV,IAAI9B,EAAM,GACV,MAAMvG,QAA+BplG,KAAKqnG,oBAAoBa,4BAC9D,IAAI,IAAI/jG,EAAI,EAAGA,EAAIihG,EAAuBpkG,OAAQmD,IAC9C,GAAiB,IAAdspG,EAAQtpG,GAAU,CACjB,MAAMupG,EAAgBtI,EAAuBjhG,GAAGkjF,SAK1C4kB,EAAsB,C,QAJZyB,EAAcxB,qBAC1BwB,EAActqB,WACdqqB,EAAQtpG,GAAGjE,YAIXwuF,aAAc1uF,KAAKqnG,oBAAoBhgB,SAASjE,YAGpDuoB,EAAI1qG,KAAKgrG,E,OAGX5C,0CAAwBsC,EAAK3rG,KAAKqnG,oBAAoBhgB,S,CAGhEznF,6BACI,IAAIooG,EAAyB,GAC7B,MAAMjD,QAAuB/kG,KAAKqnG,oBAAoBnC,oBAChDE,QAA+BplG,KAAKqnG,oBAAoBa,4BAE9D,IAAI,IAAI/jG,EAAI,EAAGA,EAAIihG,EAAuBpkG,OAAQmD,IAAK,CACnD,MAAM0kG,EAAqBzD,EAAuBjhG,GAC5CgkG,QAAiBnoG,KAAKooG,QAAQS,GAC9BsD,QAA2BtD,EAAmBtB,cAC9Ce,EAAc/K,0CAAkBwH,EAAeU,aAAathG,GAAIgoG,EAAmBlP,SAAU,GAEnG+K,EAAU/mG,KAAK,C,SACXknG,EACAt/C,QAASy/C,G,CAGjB,OAAON,C,CAGXpoG,8BACI,IAAIooG,EAAgC,GACpC,MAAMjD,QAAuB/kG,KAAKqnG,oBAAoBnC,oBAChDkC,QAAuBpnG,KAAKqnG,oBAAoBC,gBAChDhC,QAA8BtlG,KAAKqnG,oBAAoB+E,2BAE7D,IAAI,IAAIjoG,EAAI,EAAGA,EAAImhG,EAAsBtkG,OAAQmD,IAAK,CAClD,MAAMokG,EAAoBjD,EAAsBnhG,GAC1CgkG,QAAiBnoG,KAAKooG,QAAQG,GAC9BC,QAAiDD,EAAkBhB,cACnEQ,EAAYS,EAAkBzoF,KAE9BssF,EAAkBljF,OAAO47E,EAAeuH,oBAAsBnjF,OAAO47E,EAAewH,iBAAiBpoG,IAAM,IAAM,IAAOglB,OAAO,KAAOA,OAAO,IAC7Is/E,EAAgBlL,0CAAkB8O,EAAiB7D,EAAkBvL,SAAU,GAC/EyL,EAAenL,0CAAkBwH,EAAec,aAAa1hG,GAAIqkG,EAAkBvL,SAAU,GAC7F0L,EAAuBpL,0CAAkB6J,EAAejD,cAAchgG,GAAIqkG,EAAkBvL,SAAU,GAE5G+K,EAAU/mG,KAAK,C,SACXknG,E,UACAJ,E,gBACAsE,E,cACA5D,E,aACAC,E,qBACAC,G,CAGR,OAAOX,C,CAGXpoG,cAAcgpG,GACV,MAAMP,QAAiBO,EAAarB,cAC9B13E,EAAMw4E,EAASjF,KAAOiF,EAASjF,KAAOiF,EAAStoF,KACrD,MAAO,CACH+nF,MAAOj4E,EAAIrH,SAAS,QACpBqH,IAAKA,EACLk4E,UAAWM,EAAStoF,KAAOsoF,EAAStoF,KAAO,S,CAInDngB,+BACI,IAAIooG,EAA6B,GACjC,MAAM1C,QAA8BtlG,KAAKqnG,oBAAoB+E,2BAC7D,IAAI,IAAIjoG,EAAI,EAAGA,EAAImhG,EAAsBtkG,OAAQmD,IAAK,CAClD,MAAMokG,EAAoBjD,EAAsBnhG,GAC1CqkG,QAA0BD,EAAkBhB,cAC5C13E,EAAM24E,EAAkBpF,KAAOoF,EAAkBpF,KAAOoF,EAAkBzoF,KAC1End,EAAO,CACTklG,MAAOj4E,EAAIrH,SAAS,QACpBqH,IAAKA,EACLk4E,UAAWS,EAAkBzoF,KAAOyoF,EAAkBzoF,KAAO,UAEjEioF,EAAU/mG,KAAK2B,E,CAEnB,OAAOolG,C,CAIXpoG,2BACI,IAAI4sG,EAAgC,GACpC,MAAMpH,QAA+BplG,KAAKqnG,oBAAoBa,4BAC9D,IAAI,IAAI/jG,EAAI,EAAGA,EAAIihG,EAAuBpkG,OAAQmD,IAAK,CACnD,MAAMykG,EAAexD,EAAuBjhG,GACtCo0E,QAAgBqwB,EAAa6D,aACnCD,EAAgBvrG,KAAKs3E,E,CAEzB,OAAOi0B,C,CA3LXprG,YAAYghG,EAAyB0G,EAAoB4D,EAAqBrU,IAN9E,EAAAjkD,OAAA1yC,SAAA1B,KAAA,yBAA8C,KAC9C,EAAAo0C,OAAA1yC,SAAA1B,KAAA,wBAA6C,IAMzCA,KAAKoiG,OAASA,EACdpiG,KAAK0f,KAAOopF,EAAS5Q,SACrBl4F,KAAK4tE,OAASk7B,EAASl7B,OAASk7B,EAASl7B,OAAS,GAElD5tE,KAAKipG,gBAAkBH,EAASI,YAChClpG,KAAKmpG,gBAAkBL,EAASK,gBAEhCnpG,KAAKgpG,KAAO,IAAI4D,0CAAe9D,EAAS3Q,UACxCn4F,KAAKqnG,oBAAsB,IAAI1C,0CAAsBvC,EAAQ0G,EAASpa,cAEtE1uF,KAAKorG,uBAAyB,IAAIxB,0CAAY8C,EAAarU,GAC3Dr4F,KAAKorG,uBAAuBhJ,OAASpiG,KAAKoiG,M,ECrElD,IAAIuL,+BCPAC,qCDSJhuG,eAAeiuG,uCAAiBzL,GAC5BuL,+BAAW,GACX,IAAI5qF,EAAO0/E,0CAAWxK,MAAMj3F,OAC5B,IAAI,IAAImD,EAAI,EAAGA,EAAI4e,EAAM5e,IAAK,CACZs+F,0CAAWxK,MAAM9zF,GAAGyvB,MACrB6uE,0CAAWxK,MAAM9zF,GAAG+zF,SAChB,IAAIsO,0CAAe/D,0CAAWxK,MAAM9zF,GAAGg0F,UAC5B,IAAIuK,0CAAYD,0CAAW5K,qBAC7B,IAAI6K,0CAAYD,0CAAWxK,MAAM9zF,GAAGi0F,mBAC9D,IAAI/Q,EACAymB,EACJ,GAAmC,YAAhCrL,0CAAWxK,MAAM9zF,GAAG+zF,SAGnB4V,EAAa,IAAIZ,0CAAa9K,EAAQK,0CAAWxK,MAAM9zF,GAAIs+F,0CAAW9K,mBAAoB8K,0CAAW7K,wBAClG,GAAmC,UAAhC6K,0CAAWxK,MAAM9zF,GAAG+zF,SAC1B7Q,EAAW,IAAIkc,0CAAcd,0CAAWxK,MAAM9zF,GAAGuqF,cACjDof,EAAa,IAAI3G,0CAAW/E,EAAQK,0CAAWxK,MAAM9zF,GAAIs+F,0CAAW5K,yBAGjE,IAAmC,OAAhC4K,0CAAWxK,MAAM9zF,GAAG+zF,SAI1B,SAHA7Q,EAAW,IAAIkc,0CAAcd,0CAAWxK,MAAM9zF,GAAGuqF,cACjDof,EAAa,IAAI7C,0CAAc7I,EAAQK,0CAAWxK,MAAM9zF,GAAIs+F,0CAAW3K,uBAAwB2K,0CAAW7K,kBAE1G,OAEEkW,EAAWC,kBAEjBJ,+BAAS1sG,KAAK6sG,E,EAIfluG,eAAeouG,0CAAY5L,GAW9B,OAVIuL,gCAA+B,GAAnBA,+BAAS3sG,eACf6sG,uCAAiBzL,SACjBjrD,QAAQ0qD,IACV8L,+BAAS1tF,KAAIrgB,eAAequG,GACxB,aAAaA,EAAK5G,oBAAoBnC,mB,KAG9CyI,+BAAWA,+BAAS9rB,MAAK,CAACj3E,EAAG9B,IAAMA,EAAEu+F,oBAAoBpC,4BAA4BiJ,YAActjG,EAAEy8F,oBAAoBpC,4BAA4BiJ,eAGlJP,8B,CCnDX,IAAIQ,wCAAoB,CAAC,SAAU,OAEnCvuG,eAAewuG,yCACX,MACM/8D,QAAiBuC,MADX,gDAGNC,QAAaxC,EAASwC,OAC5B+5D,qCAAiB/5D,C,CAGdj0C,eAAeyuG,0CAAa3lE,EAAe4lE,GAAsB,GAEpE,OADIV,uCAAkBU,SAAkBF,yCACjCG,uCAAiB7lE,E,CAG5B,SAAS6lE,uCAAiBC,GAWtB,IAAI98E,EAMJ,GAhBA88E,EAAcA,EAAYpsG,cAEhB,WAAPq1F,2CAAoB0W,wCAAkB3lF,SAASgmF,KAG9CA,EAAc,MAAMpsG,eAEN,QAAfosG,GAAwC,WAAfA,IACxBA,EAAc,SAGlBZ,qCAAeptG,SAAQiuG,IAChBA,EAAUzgC,OAAO5rE,gBAAkBosG,IAClC98E,EAAS+8E,EAAS,SAGZl0F,IAAXmX,EACC,OAAOA,EAEX,MAAMpvB,MAAM,qBAAqBksG,c,CAG9B5uG,eAAe8uG,0CAAkBC,EAAsBL,GAAsB,GAC5EV,uCAAkBU,SAAkBF,yCAExC,IAAI18E,EAAoC,IAAIksD,IAK5C,OAJA+wB,EAAWnuG,SAAQguG,IACfA,EAAcA,EAAYpsG,cAC1BsvB,EAAOhK,IAAI8mF,EAAaD,uCAAiBC,GAAa,IAEnD98E,C,CC5BJ,SAASk9E,yCAAO7E,EAAiBC,EAAiB5mB,GACrD,MAAO,CACHyrB,YAAazrB,EACb0rB,SAAU9E,EACVH,SAAUE,EACVlH,SAAU,GACVwF,SAAU,CACN9oD,MAAO,GACP2pD,YAAa,GACb6F,MAAOhF,EAAU,OACjBiF,WAAY,GACZC,OAAQ,KACRC,UAAW,GACXC,WAAY,GACZC,UAAW,GACXC,WAAY,GACZ/qC,MAAO,GACP++B,UAAW,GACXC,eAAgB,IAEpBgM,qBAAsB,G,mCCxC1BC,8BAAmB,GACnBC,8BAAmB,GACnBC,8BAAkC,KAClCC,6BAAS,KACTC,8BAA2C,KAC3CC,2BAAO,KACPC,6BAAS,EACTC,gCAAY,GACZC,gCAAY,GACZC,8BAAU,IACVC,sCAAiB,EACjBC,6BAAS,EACTC,6BAAS,EACTC,gCAAY,EACZC,gCAAY,EACZC,iCAAa,EACbC,iCAAa,EACbC,sCAAkB,EAClBC,sCAAkB,EAClBC,kCAAc,EACdC,kCAAc,EAElB,SAASC,qCAAeriG,GAEhBiiG,sCADAN,6BAAS3hG,EAAEsiG,MACO,EACbX,6BAAS3hG,EAAEsiG,OACE,EAEA,EAGlBJ,sCADAN,6BAAS5hG,EAAEuiG,MACO,EACbX,6BAAS5hG,EAAEuiG,OACE,EAEA,EAEtBZ,6BAAS3hG,EAAEsiG,MACXV,6BAAS5hG,EAAEuiG,MAEXV,gCAAaF,8BAAST,yCAAA,EAAAA,8BAASsB,wBAAwB78E,MACvDm8E,gCAAaF,8BAASV,yCAAA,EAAAA,8BAASsB,wBAAwBC,I,CAK3D,SAASC,mCACLP,kCAAcR,6BAASI,iCACvBK,kCAAcR,6BAASI,iCAEvBD,iCAAaJ,6BACbK,iCAAaJ,6BAEb94D,WAAW45D,iCAAY,G,CAGpB,SAASC,4CAEZD,mCACA,IAAIE,EAAsBzS,yCAAG,eAEzB0S,EAAcD,EAAOJ,wBAAwBz5E,MAAQ,GACrD+5E,EAAeF,EAAOJ,wBAAwBvnB,OAGlDimB,8BAAUzhB,SAASsjB,cAAc,UACjCH,EAAOI,OAAO9B,+BAGdA,8BAAQn4E,MAAQ85E,EAAY,GAC5B3B,8BAAQjmB,OAAS6nB,EAAa,GAC9B1B,8BAAUF,8BAAQ+B,WAAW,MAK7B,IADA,IAAIrsG,EAAIksG,EAAa,EACbhmG,EAAI,EAAGA,EAAIwkG,6BAAQxkG,IACvBomG,gCAAWtsG,GAAIisG,EAAYC,GAAcxB,6BAAQxkG,EAAI,GAEzDomG,gCAAUL,EAAYC,EAAa,EAAG,GACtCI,gCAAUL,EAAYC,EAAa,GAAIA,EAAa,GACpDI,gCAAUL,EAAYC,EAAa,EAAGA,GACtC,IAAQhmG,EAAIwkG,6BAAO,EAAGxkG,EAAI,EAAGA,IACzBomG,gCAAWtsG,GAAIisG,EAAYC,GAAcxB,6BAAQxkG,EAAIgmG,GAEzDI,gCAAUJ,EAAa,EAAGA,GAE1BI,iCAAWJ,EAAa,GAAIA,EAAa,GACzCI,gCAAUJ,EAAa,EAAG,GAQ1BK,oC,CAQA,SAAAD,gCAAiBtsG,EAAAK,GACpB+pG,8BAAAtuG,KAAA,IAAA0wG,4BAAAxsG,EAAAK,EAAA,IAEDgqG,8BAAWvuG,KAAA,IAAA0wG,4BAAAxsG,EAAAK,EAAA,G,CA/DXwoF,SAAS1/B,iBAAiB,YAAasiD,sC,yCA6F/B5wG,KAAI4xG,KAAK5xG,KAAO6xG,GAAG7xG,KAAAmF,IAAA2qG,gCACA9vG,KAAA8xG,OACnB9xG,KAAI+xG,KAAO/xG,KAAKgyG,GAAKhyG,KAAKwF,IAAOsqG,gCAAiB9vG,KAAA8xG,OAElD,IAAAG,EAASjyG,KAAA6xG,GAAAzB,gCAAA8B,EAAAlyG,KAAAgyG,GAAA3B,gCACL8B,EAAC,EAAApnG,KAAAk5B,KAAAguE,IAAAC,EAAeA,GAAQnC,iCAI3BS,sCAAA,GAAAJ,gCAAApwG,KAAAmF,GAAAqrG,sCAAA,GAAAJ,gCAAApwG,KAAAmF,IACMgtG,EAAS,GAAAA,EAAA,IAAAnyG,KAAA4xG,GAASlB,kCAAA,EAAAyB,GAGzBnyG,KAAA4xG,IAAS,EAAA5B,8BACThwG,KAAKmF,GAAAnF,KAAA4xG,IAIJnB,sCAAA,GAAAJ,gCAAArwG,KAAAwF,GAAAirG,sCAAA,GAAAJ,gCAAArwG,KAAAwF,IACM2sG,EAAS,GAAAA,EAAA,IAAAnyG,KAAA+xG,GAASpB,kCAAA,EAAAwB,GAE5BnyG,KAAA+xG,IAAA,EAAA/B,8BArCDhwG,KAAAwF,GAAqBxF,KAAa+xG,E,aAExB5sG,EAAGK,EAAKssG,GACd9xG,KAAKmF,EAAEnF,KAAK6xG,GAAA,GAAA1sG,EACZnF,KAAKwF,EAAExF,KAAKgyG,GAAA,GAAAxsG,EACZxF,KAAK4xG,GAAG,EACR5xG,KAAK+xG,GAAG,EACR/xG,KAAKoyG,IAAM,EACXpyG,KAAKqyG,IAAM,EACXryG,KAAKsyG,IAAK,EACbtyG,KAAAuyG,IAAA,EA4BJvyG,KAAA8xG,OACD,EA+CI,SAAAJ,qCAEAc,sBAASd,oCAGT/B,8BAAqB8C,UAAA,IAAAhD,8BAAyBsB,wBAAAz5E,MAAAm4E,8BAAAsB,wBAAAvnB,Q,8BAC1CkpB,UAAe,c,8BACfC,SAAW,EAAI,EAAGlD,8BAAAsB,wBAAAz5E,MAAAm4E,8BAAAsB,wBAAAvnB,QAGtB,IAAI,IAAArlF,EAAA,EAAUA,GAAYorG,8BAASvuG,OAAA,EAAAmD,IAE/BorG,8BAAeprG,GAAA6vB,OACfw7E,8BAA6BrrG,GAAA6vB,O,IAE/B4+E,EAAAnD,8BAAAsB,wBACF8B,EACID,EAAgB5B,IAAKt9E,OAAQo/E,QADjCD,EAEID,EAAiB1+E,KAAIR,OAASq/E,QAIlCC,EAASjoG,KAAY2O,IAAI3O,KAAAkd,IAASioF,6BAAE2C,EAAA,GAAApD,8BAAAsB,wBAAAz5E,OACpC27E,EAASloG,KAAY2O,IAAI3O,KAAAkd,IAASkoF,6BAAE0C,EAAA,GAAApD,8BAAAsB,wBAAAvnB,QAEpC0pB,EAAcnoG,KAAAk5B,KAAAl5B,KAAAogB,IAAA6nF,EAAAvD,8BAAAsB,wBAAAz5E,MAAA,KAAAvsB,KAAAogB,IAAA8nF,EAAAxD,8BAAAsB,wBAAAvnB,OAAA,MAAAz+E,KAAAk5B,KAAAl5B,KAAAogB,IAAAskF,8BAAAsB,wBAAAz5E,MAAA,KAAAvsB,KAAAogB,IAAAskF,8BAAAsB,wBAAAvnB,OAAA,MACV2pB,EAASxD,8BAAAyD,qBAAAJ,EAAAC,EAAA,QAAAC,EAAAF,EAAAC,EAAA,G,EAACI,aAAA,a,EAASA,aAAA,a,IAEvB,IAAKC,EAAS,CACV/D,8BAEAC,+B,EAII,EAAAnkG,GAAA,EAAAA,IAAA,CACA,IAAAkoG,EAAAD,EAAAjoG,GAIJskG,8BAAS+C,UADT,GAAArnG,EACgB,UAGM8nG,E,8BACOK,Y,8BACGC,OAAAF,EAAA,GAAApuG,EAAAouG,EAAA,GAAA/tG,G,IAExBrB,EAAA,EAAKA,EAAIovG,EAASvyG,OAAEmD,IAAA,C,IACpBiC,EAAEmtG,EAAUpvG,GACZuvG,EAAQH,EAAKpvG,EAAK,GAEToW,MAATm5F,GAEAttG,EAAAgsG,KAAAhsG,EAAAjB,EAAAuuG,EAAAvuG,GAAA,EACHiB,EAAAisG,KAAMjsG,EAAAZ,EAAAkuG,EAAAluG,GAAA,EACHY,EAAAksG,KAAQlsG,EAAAjB,EAAMuuG,EAAIvuG,GAAA,EAClBiB,EAAEmsG,KAAOnsG,EAAEZ,EAAEkuG,EAAMluG,GAAG,EACtBmqG,8BAAwBgE,cAAAvtG,EAAAjB,EAAAiB,EAAAZ,EAAAY,EAAAgsG,IAAAhsG,EAAAisG,IAAAjsG,EAAAgsG,IAAAhsG,EAAAisG,OAG3BqB,EAAAH,EAAA,GACJntG,EAAAgsG,KAAAhsG,EAAAjB,EAAAuuG,EAAAvuG,GAAA,EACDiB,EAAAisG,KAAAjsG,EAAAZ,EAAAkuG,EAAOluG,GAAM,EAChBmqG,8BAAAgE,cAAAvtG,EAAAjB,EAAAiB,EAAAZ,EAAAY,EAAAgsG,IAAAhsG,EAAAisG,IAAAjsG,EAAAgsG,IAAAhsG,EAAAisG,KAGG,CACA1C,8BAASxoF,M,IAET8oF,qCAAoB,C,8BAGhByC,UAAiB,O,8BACpBc,YACD,IAAArvG,EAAA,EAAAA,EAAAorG,8BAAgBvuG,OAAAmD,IAAA,CAEhBiC,EAAAmpG,8BAAgBprG,GAChBwrG,8BAASiE,KAASxtG,EAAAjB,EAAG,EAAMiB,EAACZ,EAAA,MAC5B,CACAmqG,8BAAoBxoF,O,8BAGhBurF,UAAgB,O,8BAChBc,Y,IACHrvG,EAAA,EAAAA,EAAAorG,8BAAAvuG,OAAAmD,IAAA,CACDiC,EAAAmpG,8BAAgBprG,GACnBwrG,8BAAAiE,KAAAxtG,EAAAgsG,IAAA,EAAAhsG,EAAAisG,IAAA,OAGE1C,8BAAAiE,KAAAxtG,EAAAksG,IAAA,EAAAlsG,EAAAmsG,IAAA,MACP,C,sCC3SA,IAAAn+D,OAAAryC,cAAA,SAGA,MAAM8xG,oCAAgB,GAChBC,kCAAc,GAGdC,sCAAkB,GAClBC,qCAAiB,IACjBC,mCAAe,KACfC,kCAAc,IACdC,uCAAmB,EA+BzB,IAAIC,6BAASpmB,SAAS4Q,cAAc,oBACpC,IAAIyV,gCAAW,EACf,IAAIC,6BACAC,0BAoBJ,MAAMC,6BAAS,CACb,CAAEC,MAAQ,UAAWC,KAAM,WAC3B,CAAED,MAAQ,UAAWC,KAAM,WAC3B,CAAED,MAAQ,UAAWC,KAAM,YAIvBC,kCAAc,CAACj7F,EAAauO,IAAgBld,KAAK6pG,UAAY3sF,EAAMvO,GAAOA,EAI1Em7F,2CAAuB,CAACC,EAAyBC,KACrD,MAAM5vG,EAAIwvG,kCAAYG,EAAO,GAAIA,EAAO,IAClChmF,EAAQimF,EAAO,GAAKA,EAAO,GAAK,EACtC,IAAIvvG,EAAIuvG,EAAO,GAAKhqG,KAAKwkB,IAAIolF,kCAAY,EAAG7lF,GAAS6lF,kCAAY,EAAG7lF,GAASA,GAK7E,OAJItpB,GAAKuvG,EAAO,GAAK,IAEnBvvG,GAAKuF,KAAM6pG,SAAW,IAAOD,kCAAY,EAAG,GAAK,GAE5C,CAACxvG,EAAGA,EAAGK,GAAIA,EAAE,EAGf,MAAMwvG,0CAmBXC,YACE,IAAK,IAAI9wG,EAAI,EAAGA,EAAI0vG,oCAAe1vG,IACjCnE,KAAKk1G,SAASj0G,KAAK,IAAIk0G,+BAASn1G,KAAKo1G,eAAgBp1G,KAAKq1G,SAE5D,IAAK,IAAIlxF,EAAI,EAAGA,EAAI2vF,kCAAa3vF,IAC/BnkB,KAAKs1G,QAAQr0G,KAAK,IAAIs0G,6BAAOv1G,KAAKo1G,eAAgBp1G,KAAKq1G,Q,CAK3DtsC,OAAOqsC,EAAmCI,EAA2BN,EAAsBI,EAAmBvsC,GAC5G,MAAM0sC,EAAMD,EAAOhE,WAAW,MAC9BiE,EAAKhD,UAAU,EAAG,EAAG+C,EAAOl+E,MAAOk+E,EAAOhsB,QAE1C0rB,EAAS10G,SAAQ,CAACk1G,EAAU9hF,KAC1B,IAAI0D,EAASo+E,EAASC,WAAWxwG,EAAIuwG,EAASE,MAAMzwG,EAChDqkF,EAAUksB,EAASC,WAAWnwG,EAAIkwG,EAASE,MAAMpwG,EAGrDiwG,EAAKI,UAAUH,EAAS7+E,SAAS1xB,EAAGuwG,EAAS7+E,SAASrxB,GACtDiwG,EAAKK,OAAOJ,EAASK,UAGrBL,EAASrrG,SAGTorG,EAAK/C,UAAYgD,EAASE,MAAMpwG,EAAI,EAAIkwG,EAASM,MAAMvB,MAAQiB,EAASM,MAAMtB,KAG9Ee,EAAK9C,UAAUr7E,EAAQ,GAAIkyD,EAAS,EAAGlyD,EAAOkyD,GAG9CisB,EAAKQ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAG7BP,EAASQ,SAAS1wG,EAAI,GACxBiwG,EAAKhD,UAAU+C,EAAOl+E,MAAM,EAAI89E,EAAee,YAAY,EAAGX,EAAOhsB,OAAO,EAAI4rB,EAAegB,aAAa,EAAGhB,EAAee,YAAaf,EAAegB,aAAa,IAI3Kd,EAAQ90G,SAAQ,CAAC61G,EAAQziF,KAEvB6hF,EAAKI,UAAUQ,EAAOx/E,SAAS1xB,EAAGkxG,EAAOx/E,SAASrxB,GAGlD6wG,EAAOhsG,SAGPorG,EAAK/C,UAAY2D,EAAOL,MAGxBP,EAAKjC,YACLiC,EAAKa,IAAI,EAAG,EAAGD,EAAOE,OAAQ,EAAG,EAAIxrG,KAAK6xB,IAC1C64E,EAAKtuF,OAGLsuF,EAAKQ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAG7BI,EAAOH,SAAS1wG,EAAI,GACtBiwG,EAAKhD,UAAU+C,EAAOl+E,MAAM,EAAI89E,EAAee,YAAY,EAAGX,EAAOhsB,OAAO,EAAI4rB,EAAegB,aAAa,EAAGhB,EAAee,YAAaf,EAAegB,aAAa,IAM3KlB,EAAS10G,SAAQ,CAACk1G,EAAU9hF,KACtB8hF,EAAS7+E,SAASrxB,GAAKgwG,EAAOhsB,QAAQ0rB,EAAS54F,OAAOsX,EAAO,EAAE,IAErE0hF,EAAQ90G,SAAQ,CAAC61G,EAAQziF,KACnByiF,EAAOx/E,SAASrxB,GAAKgwG,EAAOhsB,QAAQ8rB,EAAQh5F,OAAOsX,EAAO,EAAE,IAGlE,IAAIxvB,EAAI2kE,GAAkB/oE,KAAK+oE,OAC/Br1C,OAAO8+E,sBAAsBpuG,EAAEyzC,KAAK,KAAMu9D,EAAgBI,EAAQN,EAAUI,EAASlxG,G,CAIvFoyG,2BAA2BC,GACpBpC,iCACHqC,eAAetrE,QAAQ,2BAA4BqrE,GAGnDz2G,KAAKo1G,eAAeuB,UAAU/1G,IAAI,WAClCZ,KAAKo1G,eAAeuB,UAAUC,OAAO,S,CAkBzCC,mBACExC,gCAAW,EAEXr0G,KAAKo1G,eAAeuB,UAAU/1G,IAAI,WAClCZ,KAAKo1G,eAAeuB,UAAUC,OAAO,SACrCv/D,YAAW,KAETr3C,KAAKo1G,eAAeuB,UAAU/1G,IAAI,YAClCZ,KAAKo1G,eAAeuB,UAAUC,OAAO,WACrCv/D,YAAW,KACTr3C,KAAKi1G,YACL59D,YAAW,KAETg9D,gCAAW,EACXr0G,KAAKo1G,eAAeuB,UAAU/1G,IAAI,SAClCZ,KAAKo1G,eAAeuB,UAAUC,OAAO,WAAW,GAC/C,IAAK,GACP,IAAI,GACN,K,CAGLE,gCACOzC,iCACHA,gCAAW,EAEXr0G,KAAKo1G,eAAeuB,UAAU/1G,IAAI,WAClCZ,KAAKo1G,eAAeuB,UAAUC,OAAO,SACrCv/D,YAAW,KAETr3C,KAAKo1G,eAAeuB,UAAU/1G,IAAI,YAClCZ,KAAKo1G,eAAeuB,UAAUC,OAAO,WACrCv/D,YAAW,KACTr3C,KAAKi1G,YACL59D,YAAW,KAETg9D,gCAAW,EACXr0G,KAAKo1G,eAAeuB,UAAU/1G,IAAI,SAClCZ,KAAKo1G,eAAeuB,UAAUC,OAAO,WAAW,GAC/C,IAAK,GACP,IAAI,GACN,M,CAKPG,eACEzC,6BAAOh9E,MAAQ5D,OAAOsjF,WACtB1C,6BAAO9qB,OAAS91D,OAAOujF,W,CAhKzB71G,YAAY6sG,IAHZ,EAAA75D,OAAA1yC,SAAA1B,KAAA,WAAsB,KACtB,EAAAo0C,OAAA1yC,SAAA1B,KAAA,UAAoB,IAGlBA,KAAKo1G,eAAiBnH,EAAKrP,cAAc,oBACzC5+F,KAAKq1G,OAASpH,EAAKrP,cAAc,+BAGjClrE,OAAO46B,iBAAiB,UAAU,KAChCtuD,KAAK+2G,cAAc,G,EAqKzB,MAAM5B,+BA2BF9qG,SAEErK,KAAKk2G,SAAS/wG,GAAKnF,KAAKk2G,SAAS/wG,EAAI8uG,mCACrCj0G,KAAKk2G,SAAS1wG,EAAIuF,KAAK2O,IAAI1Z,KAAKk2G,SAAS1wG,EAAIuuG,sCAAiBI,wCAC9Dn0G,KAAKk2G,SAAS/wG,GAAK4F,KAAK6pG,SAAW,GAAM7pG,KAAK6pG,UAAY7pG,KAAK6pG,SAG/D50G,KAAK62B,SAAS1xB,GAAKnF,KAAKk2G,SAAS/wG,EACjCnF,KAAK62B,SAASrxB,GAAKxF,KAAKk2G,SAAS1wG,EAGjCxF,KAAK41G,MAAMpwG,EAAIuF,KAAK4xB,IAA8C,KAAzC38B,KAAK62B,SAASrxB,EAAIxF,KAAKk3G,gB,CA7BlD91G,YAAY+1G,EAA2BC,GACrCp3G,KAAKk3G,eAAiBvC,kCAAY,EAAG,IACrC30G,KAAKg2G,MAAQxB,6BAAOzpG,KAAKC,MAAM2pG,kCAAY,EAAGH,6BAAOxzG,UACrDhB,KAAK21G,WAAa,CAChBxwG,EAAGwvG,kCAAY,EAAG,GAClBnvG,EAAGmvG,kCAAY,EAAG,KAEpB30G,KAAK62B,SAAW,CACd1xB,EAAGwvG,kCAAYyC,EAAO9/E,MAAM,EAAI6/E,EAAOhB,YAAY,EAAGiB,EAAO9/E,MAAM,EAAI6/E,EAAOhB,YAAY,GAC1F3wG,EAAGmvG,kCAAYyC,EAAO5tB,OAAO,EAAI2tB,EAAOf,aAAa,EAAI,EAAGgB,EAAO5tB,OAAO,EAAK,IAAM2tB,EAAOf,aAAgB,IAE9Gp2G,KAAK+1G,SAAWpB,kCAAY,EAAG,EAAI5pG,KAAK6xB,IACxC58B,KAAK41G,MAAQ,CACXzwG,EAAG,EACHK,EAAG,GAELxF,KAAKk2G,SAAWrB,2CAAqB,EAAC,EAAI,GAAI,CAAC,EAAG,I,EAmBxD,MAAMU,6BAkBFlrG,SAEIrK,KAAKk2G,SAAS/wG,GAAKnF,KAAKk2G,SAAS/wG,EAAI+uG,kCACrCl0G,KAAKk2G,SAAS1wG,EAAIxF,KAAKk2G,SAAS1wG,EAAIwuG,qCAGpCh0G,KAAK62B,SAAS1xB,GAAKnF,KAAKk2G,SAAS/wG,EACjCnF,KAAK62B,SAASrxB,GAAKxF,KAAKk2G,SAAS1wG,C,CAnBrCpE,YAAYi2G,EAA2BC,GACrCt3G,KAAKg2G,MAAQxB,6BAAOzpG,KAAKC,MAAM2pG,kCAAY,EAAGH,6BAAOxzG,UAAU0zG,KAC/D10G,KAAKu2G,OAAS5B,kCAAY,EAAG,GAC7B30G,KAAK62B,SAAW,CACZ1xB,EAAGwvG,kCAAY2C,EAAOhgF,MAAM,EAAI+/E,EAAOlB,YAAY,EAAGmB,EAAOhgF,MAAM,EAAI+/E,EAAOlB,YAAY,GAC1F3wG,EAAGmvG,kCAAY2C,EAAO9tB,OAAO,EAAI6tB,EAAOjB,aAAa,EAAI,EAAGkB,EAAO9tB,OAAO,EAAK,IAAM6tB,EAAOjB,aAAgB,IAE9Gp2G,KAAKk2G,SAAW,CACZ/wG,EAAGwvG,mCAAY,EAAI,GACnBnvG,EAAGmvG,mCAAY,GAAI,I,E/B5RxB,IAAIlS,0CAAa/K,0CAAUD,2CACvB+K,0CAEA+U,0CAA0BhV,0CAEjCiV,8CACAC,iDACAC,kCACAC,gCAAW,EACXC,4CAAuB,EAG3B,MAAMC,8BAAU,IACVC,8BAAU,GAAKD,8BACfE,4BAAQ,GAAKD,8BAEnB,IAAIE,0CACJ,MAAMC,kCAAc,GAAKJ,8BAEnBK,+BAAW/uF,OAAO,KAAOA,OAAO,IAMtC21E,0CAAI,wBAAwBt+F,SAAQgO,GAAKA,EAAyB2pG,QAAW/sD,IAAYA,EAAMgtD,iBAAkB/X,2CAAa,IAO9H3B,yCAAG,aAAayZ,QACdv4G,eAAgBwrD,GACdA,EAAMgtD,iBACFb,0CAAOze,eACTuf,kCAAY,mBACZC,gCAAU,UAGVC,qC,EAIN7Z,yCAAG,SAASyZ,QACVv4G,eAAgBwrD,GACdA,EAAMgtD,iBACFb,0CAAOze,cACT0f,mCAAajB,2CAGbgB,qC,EAIN7Z,yCAAG,eAAeyZ,QAChBv4G,eAAgBwrD,GACdA,EAAMgtD,iBACFb,0CAAOze,eACT7xE,QAAQuL,IAAI,aACZgmF,mCAAajB,6CAEbtwF,QAAQuL,IAAI,gBACZimF,2C,EAKN,IAAIC,sCAAkBha,yCAAG,mBACzBga,sCAAgBpqD,iBAAiB,QAASqqD,8CAE1C,IAAIC,qCAAiBla,yCAAG,sBAGxB,SAASia,6CACP,OAAO,WACwBja,yCAAG,yBACTiY,UAAUkC,OAAO,QAEdna,yCAAG,0BAETiY,UAAUkC,OAAO,kCACrCH,sCAAgB9Z,cAAc,OAAQ+X,UAAUkC,OAAO,U,EAK3D,SAASC,mDAA6B1tD,G,IAIhBmwC,EAHpBnwC,EAAMgtD,iBACFb,0CAAOze,cAETuf,kCAAY,KAAgD,QAA1C9c,EAAAnwC,EAAOvwC,OAAuBk+F,QAAQ,YAAI,IAA1Cxd,OAAA,EAAAA,EAA4CpqD,MAG9DknE,kCAAY,SACZI,2C,CAWJ,SAASO,kCACPvY,0CAAY,oCAAqC,gB,CAiBnD,SAASwY,kCAAYpjE,GACnB,OAAO,SAAUuV,GACf8tD,0CAAoB9tD,GACpB+tD,qCAGAC,wCAFgBta,0CAAI,IAAIjpD,KAEKA,E,EAIjC,SAASqjE,0CAAqB9tD,GACD0zC,0CAAI,uBACTt+F,SAAQ2wG,IAC5BA,EAAOwF,UAAUC,OAAO,qBAAqB,IAE3BxrD,EAAMvwC,OACZ87F,UAAU/1G,IAAI,qB,CAG9B,SAASu4G,qCACQnrB,SAAS+Q,iBAAiB,mBAChCv+F,SAAQytG,IACfA,EAAK0I,UAAU/1G,IAAI,SAAS,G,CAIhC,SAASw4G,wCAAkBC,EAAoCxjE,GAC1DwjE,EAAcr4G,OAAS,GACxB09F,yCAAG,sBAAsBiY,UAAU/1G,IAAI,UAEvCy4G,EAAc74G,SAAQytG,IACpBA,EAAK0I,UAAUC,OAAO,SAAS,KAGX,eAAb/gE,GACT6oD,yCAAG,sBAAsBiY,UAAUC,OAAO,S,CAW9C,SAAS0C,sCAAgBxL,EAAmDG,GAC1E,OAAOruG,eAAgBwrD,GACrBA,EAAMgtD,iBACN,IAAIzM,EAAyB,GAE7B,MAAM4N,QAAuBzL,EAAWzG,oBAAoBa,4BAC5D,IAAI,IAAI/jG,EAAI,EAAGA,EAAIo1G,EAAev4G,OAAQmD,IAAK,CAC7C,MAAMq1G,EAAgBD,EAAep1G,GAAGkjF,eACHoyB,0CAAoBD,IAEvD7N,EAAI1qG,KAAK,CACP05D,QAAS6+C,EAAcE,4BACvBhrB,aAAc8qB,EAAcp2B,Y,OAKGq2B,0CAAoB3L,EAAWzG,oBAAoBhgB,WAEtFskB,EAAI1qG,KAAK,CACP05D,QAASmzC,EAAWzG,oBAAoBhgB,SAASqyB,4BACjDhrB,aAAcof,EAAWzG,oBAAoBhgB,SAASjE,mBAGpDimB,0CAAwBsC,EAAKmC,EAAWzG,oBAAoBhgB,UAElE4mB,EAAKrP,cAAc,YAAa+X,UAAUC,OAAO,UACjD3I,EAAKrP,cAAc,cAAe+X,UAAU/1G,IAAI,S,EAIpDhB,eAAe65G,0CAAoBpyB,GACjC,IAAIkwB,0CAAOze,cAAe,OAAO,EACjC,MAAM6gB,QAAmCtyB,EAAS0b,iBAClD,GAAiC,MAA9B4W,EAAoC,OAAO,EAE9C,OADiC,IAAI,EAAA/f,OAAA5mE,IAAG2mF,EAA2B5kF,OAClCqN,KAAK,E,CAGxCxiC,eAAeg6G,qDAA+B9L,GAC5C,MACM+L,QAAsCxL,0CADxB,WAEdpI,QAAiB6H,EAAWpG,gBAAgBnB,cAG5CuT,EAA4Bvc,iDAFLuQ,EAAWzG,oBAAoBC,iBACdR,KACsBb,EAAShJ,SAAU,GACvF,OAAO8c,WAAWF,EAAgBG,OAASD,WAAWD,E,CAkBtDl6G,eAAMq6G,2CAAsDxV,EAAAyV,SAG1D/iE,QAAM0qD,IAAQ4C,EAAiBxkF,KAAAu5F,GAAiBA,EAAAjS,iB,MAChD4S,EAAe1V,EAAexkF,KAAAu5F,KAAArT,kBAAAn4B,SAC9BosC,QAAgC1L,0CAAAyL,G,IAEhCE,EAAA,E,SACM75G,SAAA,CAAAg5G,EAA4B5lF,KAClC,MAAMqyE,EAASuT,EAAGrT,kBAClBn4B,EAAei4B,EAAAj4B,OAIlB8rC,EAAAvc,0CAHG2c,EAAAtmF,GAGHqyE,EAAAhJ,SAAA,GAGQwR,EAAA2L,EAAc96G,IAAA0uE,EAAwB5rE,eAC7Ci4G,GAAON,WAA6BtL,EAAAuL,OAAAD,WAAAD,EAAA,IAElCO,EAAAC,QAAA,E,UAGAC,oCAAuCzM,EAAA0M,G,OAEvC56G,eAAIwrD,G,SACsCA,EAAQgtD,iBAChD7X,0CAA4D,c,IAE5Dka,EAAA,G,IAEA,IAAIC,GAAgB,IAAAC,MAAWC,UAAC,IAEhC,MAAM7V,QAAE+I,EAAczG,oBAAqBnC,oBAM3C,KADYwV,EAAA3V,EAAAmJ,aACN,MAAkB5rG,MAAK,oBAE7B,MAAMu4G,eAAiBA,EAAaC,kBAAAC,EAAAC,gCAAAC,SAAAC,2CAAApN,EAAA0M,EAAA,SACpCC,EAAII,EACF1b,0CAAY,+B,SAMZ2O,EAAA/zB,MAAAghC,GACAnD,2CAA4C,CAG7C,QAAAzzG,EAAA,EAAAA,EAAAs2G,EAAAz5G,OAAAmD,IAAAs2G,EAAAt2G,GAAAnF,MAAA,GAKF8uG,EAAAzG,oBAAAzC,cACDlE,0CAAA,UAAAua,EAAA95G,KAAA,SACA,CAGD,C,MAFQi8F,GACJwD,0CAAAxD,EACJ,CAGHqd,EAASj6G,SAAA4uB,IACAA,EAAA+rF,gBAA6B,c,WAKlCC,sCAAuCtN,EAAA0M,G,OAEvC56G,eAAIwrD,G,SACsCA,EAAQgtD,iBAChD7X,0CAA4D,gB,IAE5Dka,EAAA,G,KAEA,IAAAE,MAAAC,gBAEQ9M,EAAczG,oBAAqBnC,oBAA3C,MAQM2V,eAAkBA,EAAcC,kBAAAC,EAAAC,gCAAAK,SAAAH,2CAAApN,EAAA0M,EAAA,WACtCC,EAAII,EACF1b,0CAAY,+B,SAMZ2O,EAAWrK,QAAAsX,GAEXnD,2CAAA,CAIJ,IAAS,IAAEzzG,EAAA,EAAAA,EAAAs2G,EAAAz5G,OAAAmD,IAAAs2G,EAAAt2G,GAAAnF,MAAA,GAEV8uG,EAAAzG,oBAAAzC,cACDlE,0CAAA,UAAA2a,EAAAl6G,KAAA,SACA,CAGD,C,MAFQi8F,GACJwD,0CAAAxD,EACJ,CAGHqd,EAAej6G,SAAA4uB,IACTA,EAAA+rF,gBAAuC,cAE3C,C,gBAGMD,2CAA0CpN,EAAA0M,EAAoBvwB,GACpE,IAAI4wB,EAAkB,GACnBC,EACD,G,EAC6B,GAC7BQ,EAAoBd,EAASzb,iBAAW,SAAA9U,sB,MACxCmb,QAA0B0I,EAAYzG,oBAAAa,4B,IACvCqT,EAID,GAAa,SAATtxB,EAAesxB,QAAmBzN,EAAa0N,yBACjD,IAAI,WAAAvxB,EAGJ,MAAI3nF,MAAS,UAAW2nF,mBADxBsxB,SAD2BzN,EAAazG,oBAA+BC,iBAC7CpD,YACU,C,IAEpC,IAAI//F,EAAA,EAAMA,EAAAm3G,EACIt6G,OAAAmD,IAAA,CAEd,IACAirB,EADAksF,EAAAn3G,GACMy6F,cAAkC,WAExCic,EAAM55G,KAAamuB,GACnB,IAAAk1D,EAAay1B,WAAW3qF,EAAGpwB,OAC3B,GAAGuzB,MAAM+xD,GAAS,MAAIhiF,MAAG,0B,MAEvBm5G,QAAoBrW,EAAsBjhG,GAAAojG,cAC3CmU,EAAAvyF,OAAAw0E,0CAAArZ,EAAApkF,WAAAu7G,EAAAxe,SAAA/8F,aAGD,GADA+mB,QAAAuL,IAAAruB,EAAAo3G,EAAuBp3G,IACvBglB,OAAAoyF,EAAAp3G,IAAAu3G,EAAoC,CACrC,MAAAC,EAAApe,0CAAAge,EAAAp3G,GAAAs3G,EAAAxe,SAAA,GACM,MAAA36F,MAAA,QAAAq5G,KAAAF,EAAAztC,uBAAAic,K,QAELyxB,GACAE,EAAA36G,KAAiC,GAAAqjF,KAAAm3B,EAA2BztC,S,CAE/D,OAED6sC,eAASA,EACPC,kBAAuBA,EACrBE,gCAAKY,E,UAMLC,kCAAI/N,EAAA0M,G,sBACFpvD,G,SACAA,EAAAgtD,iBACA7X,0CAAA,c,IACAub,EAAAtB,EAAA5b,cAAA,qB,IAUAkd,EAAMxc,aAAkB,WAAM,YAC9B,IAAIyc,EAAchC,WAAW+B,EAAA98G,OAG7B,GAAAuzB,MAAMwpF,GAAW,MAAAz5G,MAAmB,0BASpC,MAAAkqG,QAA8BsB,EAAA0N,qBAC9B,GAAAO,EAAiBhC,WAAAvN,GAAA,MAAAlqG,MAAA,QAAAkqG,KAAAsB,EAAA1E,mBAAAp7B,8BACjB,MAAA66B,SAA0BiF,EAAAzG,oBAAAa,6BAAA,GAC1BiE,QAAAtD,EAAAtB,oBACAuG,EAAAjF,mBAAAjF,iBAAAkK,EAAAzG,oBAAAhgB,SAAyFjE,WAAAua,0CAAAoe,EAAA77G,WAAAisG,EAAAlP,SAAA/8F,YAAA,UAe/F,CAHG,MAAAk9F,GACFwD,0CAAAxD,EAED,CAEE0e,EAAOX,gBAA8B,W,WAInCa,2CAAyBlO,EAAA0M,G,OAEzB56G,eAAAwrD,GACA,IAAAmwC,EAEAnwC,WAAAgtD,iBACD,IAAA3B,EAAA3I,EAAA9E,KAAA73D,GACF,QAAAoqD,EAAAuS,EAAAsH,sBAAA,IAAA7Z,KAAAib,2BAAAC,GAEQlW,0CAAc,uBACduN,EAAAzG,oBAA8BhgB,SAAAqc,gBAInChD,0CAAyB,yB,WADzBub,oCAA+BnO,EAAA0M,G,OAC/B56G,eAAWwrD,GAEX,IAAAmwC,EAEAnwC,SAA4BA,EAAwBgtD,iBAEpD7X,0CAAqC,iBAErC,IAAAkW,EAAA3I,EAAuB9E,KAAK73D,GACJ,QAAxBoqD,EAAAuS,EAAesH,sBAAS,IAAA7Z,KAAAib,2BAAAC,GACxB,MAAArP,QAAA0G,EAAAzG,oBAAAC,gBAEA,IAAAhjB,EAAA8iB,EAAAP,iCACDiH,EAAAzG,oBAAAhgB,SAAAqc,gBACF0D,EAAAR,SAAA,GAEDQ,EAASN,KAAA,GAELpG,0CAAqB,YAAEjC,0CAAAsb,WAAAz1B,IAAA,W,WAIvB43B,oCAAkCpO,EAAW0M,G,OAC7C56G,eAAMwrD,GAENA,SAAyCA,EAAAgtD,iBAErC7X,0CAAA,gB,MACF6G,QAAyB0G,EAAWzG,oBAAaC,gBACjDuB,SAA8BiF,EAACzG,oBAAmBa,6BAAA,GAClDiE,QAA6BtD,EAAOtB,c,IACpC4U,EAAM3B,EAAiB5b,cAAU,uB,IAMjCud,EAAI7c,aAAgB,WAAiB,YACrC,IAAA8c,EAAiBrC,WAAAoC,EAAoBn9G,OAOrC,MAAA0mF,EAAA0hB,EAA8B1hB,OAC9B22B,EAAiBx3F,OAAA04E,0CAAA7X,EAAAxlF,WAAAisG,EAAAlP,SAAA,IACjB,GAAA1qE,MAAA6pF,GAA4B,MAAA95G,MAAA,0BAE5B,GAAA85G,EAAuBC,EAAA,MAAA/5G,MAAA,QAAA+5G,KAAAlQ,EAAAn+B,sCACvB8/B,EAAAzG,oBAAyChgB,SAAAoc,QAAA9F,0CAAAye,EAAAl8G,WAAAisG,EAAAlP,SAAA/8F,YAgB/C,CAHG,MAAAk9F,GACFwD,0CAAAxD,EAED,CAEI+e,EAAMhB,gBAAgB,W,WAGzBmB,2CAED,OAAS18G,eAAAwrD,GACPA,EAAAgtD,iBAIDrY,0CAAA,eAED,C,UAKCwc,wCAAAC,GACD9b,0CAAwC,gDAAAtC,0CAAAoe,iBAAA,UACxC,CACA,SAAAC,gDAA6BC,GACvBhc,0CAAM,wDAOTtC,0CAAArB,0CAAA2f,kBAAA,gB,gBAKDC,oCACApF,qFAA2Bze,a,UAIvBuf,kCAAS1Z,GAEXG,0CAAkB,gBAAAt+F,QAAAs/F,2CAGpB,MAAA8c,EAAoBle,yCAAA,QAAAE,cAAAD,GACpBie,IACAnd,0CAAAmd,GACDtE,gCAAA3Z,IAGCD,yCAAK,kBAAAiY,UAAAC,OAAA,yBACLlY,yCAAe,iBAAIiY,UAASC,OAAA,kB,UAEK0B,gCAAjC3Z,GACD,IAAApD,EAGQuD,0CAAiC,SACpCt+F,SAAY+N,KAAAooG,UAAAC,OAAA,cACZ,QAAJrb,EAAImD,yCAAA,OAAAE,cAAAD,UAAA,IAAApD,KAAAob,UAAA/1G,IAAA,W,UAGFi8G,+C,IACAv8G,EAAA,G,UAGEw8G,EAAAje,0CAA8B,wC,EAC9Bie,EAA4B99G,MAC5BsB,MAAa6qC,aAAWG,QAAS,eAClChrC,IAEMu+F,0CAAE,qBAAA7/F,MAAAsB,EACDw8G,EAAA99G,MAAA,GAEHmsC,aAAOI,WAAA,UAKd,CAFF,MAAA6xD,GAEE,CACA,OAAA98F,CACA,CAGFV,eAAA24G,sCACAC,mCAAejW,0C,gBAKJiW,mCAAgBuE,G,qCACvB,mB,gCACA,S,+CAGAA,EAAGjkB,cAAkB,CAOrB,IAEAkkB,EAFAC,EAAAF,EAAiBpkB,0BAIjBqkB,EAAAC,EAAAj8G,OAAA,GAAmDi8G,EAE9CA,EAAA/7G,MAAA,YACL,IAAAg8G,EAAAxe,yCAAyB,0BACzBwe,EAAeje,UAAA+d,EACfE,EAAA39D,MAAA09D,C,MAIHve,yCAAA,sBAAAiY,UAAAC,OAAA,UAIKlY,yCAAe,0BAAIO,UAAe8d,EAAAnwB,c,UAKnCuwB,uCACDC,GAAA,G,MAE2Bte,0CAC3B,e,EAEsBA,0CACA,gBACtB,MAAA1zC,EAAA,IAAAiyD,MAAA,SAIAD,EAAA1e,yCAAG,gBAAsC7D,cAAAzvC,GAE5CkyD,EAAAt8G,OAAA,EAAA09F,yCAAA,sBAAA7D,cAAAzvC,GAEDmyD,EAAAv8G,OAAA,EACA09F,yCAA6C,gBAAA7D,cAAAzvC,GAG3CszC,yCAAmB,iBAAA7D,cAAezvC,E,gBAAwEoyD,oDAC1G,MAAAC,QAAA,EAAApnB,0BAAqCjH,SAAAxwF,OAAAiqE,OAAA,CACrCujB,KAAA,CACArgD,SAAA,IAAAsqD,0BAA6BxqD,UAAI3sC,8BAElCujG,4CAIC+U,8CAAwB,MAASnhB,0BAAA3pD,kBAAA+wE,EAAA,MACjChG,iDAAS,MAAAphB,0BAAAzpD,wBAAkB4qE,8CAAAiG,EAAAjsE,WAAAgmE,8CAAA5qB,e,UAI5B8wB,4CAEDlG,8CAA2BvpB,UACzBspB,0CAAAhV,0CAEA7uE,OAAA8kB,SAAAtwB,QAAAwL,OAAA8kB,SAAmCmlE,OAAAjqF,OAAA8kB,SAAAsmB,S,UAEnC25C,2CAOAjB,8CAAYoG,cAAAnb,0CAAoDxK,MAAA,GAAAvJ,a,CAGlE,SAASmvB,wCAORnqF,OAAA/b,KAAA,oDAED,C,SACMmmG,0CAA+BC,EAAcrgG,GAE9CqgG,EAAe,EAAArgG,EAAAi5F,UAAAC,OAAA,UAChBl5F,EAAAi5F,UAAA/1G,IAAoB,S,UAErBo9G,qDAAMlQ,EAAA0M,EAAAyD,G,IACLC,EAAqB1D,EAAU5b,cAAO,mCACtCqf,GACDC,EAAAvH,UAAAC,OAAA,WAEGsH,EAAAvH,UAA8B/1G,IAAI,YAEtCs9G,EAAAvH,UAAmCC,OAAA,UACjCsH,EAAmBvH,UAAG/1G,IAAA,Y,IAEtBu9G,EAA8B,EAC7BC,EAAA5D,EAAAzb,iBAAA,iDAGHqf,EAAuB59G,SAAQ69G,IAC3B,IAAAC,EAAqBD,EAAWzf,cAAc,YAC/Cta,EAAAz/D,OAAAy5F,EAAmC9e,WACpC2e,GAAmC75B,CAAA,I,IAEnCi6B,EAAA/D,EAA2B5b,cAAQ,sB,EACjC4b,EAAsB5b,cAAiB,gCACtC,G,GACJ2f,EAAM5H,UAAAC,OAAA,cACL4H,EAAkB7H,UAAcC,OAAA,cAChCwH,EAAuB59G,SAAc69G,IACrCA,EAA0B1H,UAASC,OAAA,mBAGpC2H,EAAA5H,UAAA/1G,IAAA,cACF49G,EAAA7H,UAAA/1G,IAAA,cAEDw9G,EAAe59G,SAAA69G,IACPA,EAAW1H,UAAqB/1G,IAAA,iB,gBAI0B69G,4CAA2B3Q,EAAA0M,SAAG1M,EAAc4Q,sBAC5G,MAAA3Z,QAAA+I,EAAAzG,oBAAAnC,oBACMyZ,QAAA7Q,EAAYzG,oBAAoBC,sBAA6CsX,mCAAoCpE,EAAE1M,EAAA1I,uBAAA,CAAIL,EAAAU,cAC7H,sBAAiGmZ,mCAAApE,EAAA1M,EAAAxI,sBAAAuZ,0CAAA,CAAC9Z,EAAeY,aAAazlG,aAAK,yBAE7H4+G,6CAA6ChR,EAAA0M,EAAA,OACnD1M,EAAAiR,4BACA,CACAJ,EAAM7X,KAAA5mG,Y,2BAA4F8+G,QAAA7nE,QAAA0qD,IAAAiM,EAAA1I,uBAAAnlF,KAAAg/F,KAAAxS,gB,mDAkB5DqB,EAAA0M,EAAA,aAAAwE,SAfpCE,0CAAsCpR,EAAA0M,EAAA,gBACtCmE,EAAIj5B,OAAAxlF,aAGe,IAAnBy+G,EAAej5B,OAAI,C,IACjB6V,EAAAC,E,EACAmb,UAAMC,OAAA,c,IACNuI,QAAI1F,0CACwB3L,EAAAjF,oB,MAE7B0Q,EAAAzL,EAAA1I,uBAED,IAAG,IAACjhG,EAAA,EAAAA,EAAAo1G,EAAuBv4G,SAAiBm+G,EAAUh7G,IAAe,C,MAGjCq1G,EAA1BD,EAAcp1G,GAAAkjF,eAEzBoyB,0CAAAD,KAE4B2F,GAAA,EAC7B,EACIA,GACF3E,EAAA7D,UAAAyI,SAAA,iBAA6C,QAAT7jB,EAAAif,EAAS5b,cAAA,oBAA0B,IAAHrD,GAAGA,EAAAob,UAAA/1G,IAAA,UAG1C,QAA/B46F,EAAAgf,EAAA5b,cAAA,oBAAoD,IAATpD,GAAuBA,EAAAmb,UAAAC,OAAA,SACnE,CAED,MAAAyI,EAAe1E,KAAA0E,MAAA,IACPpB,EAAWlZ,EAAmBua,cAAED,KAAAta,EAAAmJ,YACtC+P,GAAoBsB,8CAAwCzR,EAAiB0M,EAAEiE,6CAAA,GAC/ET,qDAAwClQ,EAAoB0M,EAAayD,E,gBAEnEuB,mDAAyC1R,EAAoB0M,SAEhE1M,EAAU4Q,sB,MAEN3Z,QAAa+I,EAAYzG,oBAAAnC,oBAGhCkC,QAAA0G,EAAAzG,oBAAAC,gBACMlC,QAA8B0I,EAAWzG,oBAAqBa,4BAC9D5C,QAAgBwI,EAAyBzG,oBAAc+E,2BAC7D0B,aAAMZ,gDAA4D0R,mCAAkBpE,QAAApV,EAAAL,EAAAU,aAAA,gBAC9EqI,aAAA7C,4CAA6CuP,EAA8B5b,cAAA,2BAAoBY,UAAA,GAAAuF,EAAAU,sBAGrG,MAEGgD,SAFiCqF,EAAC2R,yBAEZx/F,KAAArd,KAAAypG,gBAAAnsG,mBACvB0+G,mCAAoCpE,EAAIlV,EAA2BmD,EAAW,yBAC9EmW,mCAAMpE,EAAAlV,EAAyC8B,EAAcjD,cAAc,qB,MAC3Ekb,EAAA1E,KAAA0E,MAAA,IACApB,EAAMlZ,EAAAua,cAAoBD,KAAYta,EAASmJ,Y,GAE/CJ,aACEZ,0CAA6C,CAEhD,MAAM8R,QAAa7nE,QAAY0qD,IAAAuD,EAAAnlF,KAAAg/F,KAAAxS,sBAC1ByS,0CACFpR,EAAA0M,EAAqB,aAAmBwE,SAI5CE,0CAA4BpR,EAAQ0M,EAAA,eAAApT,EAAAlD,cAEpC+Z,GAAAyB,gDAAkD5R,EAAE0M,EAAcgF,oDAAA,EACnE,MAAA1R,aAAA7C,4CAEDgT,GAAe0B,2CAAyD7R,EAAsB0M,EAAmBgF,oDAAuB,IAEtII,sCAAqC9R,EAAW0M,GAChDwD,qDAA2ClQ,EAAA0M,EAAAyD,E,gBAEnCiB,0CAA8DpR,EAAE0M,EAAA3kE,EAAA43D,G,MACtEgN,EAAaD,EAAUzb,iBAAG,IAAAlpD,4BAC1BuvD,QAAuB0I,EAAkBzG,oBAAaa,4B,IACtD,IAAA/jG,EAAM,EAAAA,EAAAs2G,EAAkBz5G,OAAGmD,IAAA,CAC3B,MAAMirB,EAAAqrF,EAAct2G,GAEdmpG,EAAkBlI,EAAcjhG,GAGzCw3G,EAAApe,0CAFGkQ,EAAAtpG,UACDmpG,EAAA/F,eACFtK,SAAA,GAED7tE,EAASwvE,cAAA,UAAAY,UAAmBmc,EAC1B,MAAOkE,EAAczwF,EAAKwvE,cAAe,eAC1Ckf,0CAAAj5F,OAAA82F,GAAAkE,EAED,C,UAEEhB,0CAAiCiB,GACjC,OAAOA,EAAC7/F,KAAA8/F,IAA4B,IAAV52F,OAAA42F,GAAkB,KAAA7/G,Y,gBAEnC0+G,mCAAqCpE,EAAOwF,EAAAC,EAAAC,G,MAEnDC,QAAmBlG,2CAAsC+F,EAAAC,G,EACzDrhB,cAAgB,IAAAshB,yBAAA1gB,UAAA,KAAkB2gB,I,MAClCC,EAAkB5F,EAAazb,iBAAmB,IAAAmhB,gC,IACnD,IAAA/7G,EAAA,EAAAA,EAAAi8G,EAAAp/G,OAAAmD,IAAA,CACF,MAAAk8G,EAAAD,EAAAj8G,GAEDopG,QAAeyS,EAAA77G,GAAAojG,cACT1+C,EAAmB00C,0CAAuC0iB,EAAC97G,GAAAopG,EAAoBtQ,SAAS,GAE5FojB,EAAMzhB,cAAc,YAAcY,UAAA32C,CAClC,C,gBAEQi2D,6CAAoChR,EAAA0M,EAAAwF,EAAoBC,EAAAC,G,IAC9Df,QAAI1F,0CACwB3L,EAAAzG,oBAAAhgB,U,MAE7BkyB,EAAAzL,EAAA1I,uBAED,IAAI,IAACjhG,EAAA,EAAAA,EAAAo1G,EACGv4G,SAAAm+G,EAAYh7G,IAAC,CAEtB,MAAAq1G,EAAAD,EAAAp1G,GAAAkjF,eAGcoyB,0CAAuDD,KACrC2F,GAAA,EAC7B,CACCA,SAAAP,mCAAApE,EAAAwF,EAAAC,EAAAC,E,CAGLtgH,eAAA0gH,gDAAAC,GACAA,EAAS//G,SAAAstG,IAAA,G,CAMT,SAAA0S,yCAAAh1D,GACA+rD,0CAA8B7b,0CAC5Bkc,4CAAuB,EACvBY,mCAAAjB,0C,CAKF,SAASkJ,4CAAAj1D,GACRosD,4CAA0C,EAC1CL,0CAAoBhV,0CACpBgW,qCAED,C,SACCmI,gDAAmDC,EAAcr8B,EAAMs8B,EAAAC,GAEtE,OAD8Bv8B,EAAAq8B,EAAAE,GAAiCF,EAAWC,E,CAK5E,SAASE,6CAAAH,EAA6CrY,EAAuBhkB,EAAgBy8B,EAAEC,GAC9F,MACOC,GAD+B3Y,EAAGyY,GAAYz8B,GACbq8B,EAAAI,GAAmCJ,EAAWK,GAAmB1Y,EAAW0Y,GACnH,OAAOC,EAAc,GAAMA,EAAK,E,CAGlC,SAASC,+CAAoBP,EAA2CrY,EAAsBhkB,EAAA68B,EAAyBC,GACrH,MAAAC,EAAqC/Y,EAAA6Y,GAAA78B,EACnC5yD,EAAM42E,EAAgB8Y,GAAAC,EAAAV,EAAAQ,GAAAR,EAAAS,G,OACtB1vF,EAAY,GAAIA,EAAM,E,UAEtB4vF,0CAAqCxT,EAAWG,EAAAsT,EAAoBC,G,OACpE5hH,eAAMwrD,GACNA,EAAMgtD,iBACN,MAAMqJ,EAAAr2D,EAAcvwC,OAAG7b,MAGnBomG,QAA8D0I,EAAYzG,oBAA0Ca,4BAClHwZ,QAA2Btc,EAAkCoc,GAAkBja,cAC/Eoa,EAAoBx4F,OAAew0E,0CAAwC8jB,EAAAC,EAAAzkB,SAAA/8F,aAC7E6kG,QAAwB+I,EAAEzG,oBAA0BnC,oBAEpDkC,QAAI0G,EAA2BzG,oBAAAC,gB,IAC/Bsa,EAAG3T,EAAUlP,iBAAU,GAAUwiB,W,QAG/Bxc,EAAA8c,YAA8B5hG,KAAA8/F,GAAA52F,OAAA42F,KAGhC+B,EAAM1a,EAA4BlD,aAAMjkF,KAAA8U,GAAuB5L,OAAA4L,K,IAC/D,IAAAgtF,EAAM,EAAAA,EAAyBH,EAAA5gH,OAAA+gH,IAAA,GAAAA,GAAkBP,EAAA,CACjD,IAAAQ,EACmCA,EAAnCT,EAAY/4F,SAAA,WAAgD04F,+CAAAP,EAAAmB,EAAAH,EAAAH,EAAAO,GAC7DjB,6CAAAH,EAAAmB,EAAAH,EAAAH,EAAAO,GAEJ,MACFE,EAAA1kB,0CAAAykB,SADE5c,EAAA2c,GAAAxa,eACFtK,SAAA,GAGO2kB,EAAApiG,KAAcuiG,GAAyB/iH,MAAWijH,CACxD,CACA,C,gBAIIC,oCAA4BpU,EAA0B0M,GAC1D,MAAIzV,QAAmB+I,EAAiBzG,oBAAAnC,oBACxCF,QAAyB8I,EAAAzG,oBAAAC,gBACvBW,QAAkC6F,EAAWtG,4BAC5C2a,QAAArU,EAAAiR,2BAEH,IAAA9Y,QAAM6H,EAAA1I,uBAAkB,GAAAmC,cAClBiT,EAAAzb,iBAAS,6BAETv+F,SAAA4iG,IAEFA,EAAA9D,aAAgB,MAAS2G,EAAA7C,MAAA,aAGvBgf,+BAAsB5H,EAAevS,EAAW,eAElDma,+BAAiC5H,EACnCvS,EAAsB,UAAAjD,EAAAtf,OAA+BxlF,kBAChDmiH,gCAA6BvU,EAAgB0M,G,YAG5BZ,qDAAkD9L,GAI1E,MAAqDmQ,EAA/CtD,KAAA0E,MAAmB,IAAkDta,EAAAmJ,YAAG,GAAArpF,OAAA05F,EAAAjE,QAAA,IAAAE,EAAA5b,cAAA,gCAAAY,UAAA,KAAA+e,EAAAjE,QAAA,GAAAp6G,aAA4B,GAA3B2kB,OAAA05F,EAA2BjE,QAAA,KAAA2D,EAAAzD,EAAA5b,cAAA,gCAAAY,UAAA,MAAEgb,EAAA5b,cAAA,gCAAAY,UAAA,MAC5G,MAAM8iB,QAAqBrI,2CAAM,CAAsBhS,GAAwB,CAAElD,EAAOU,eAExF8c,QAAsBtI,2CAA6C,CACnEkI,GAEA,EACqC,IAArCh5F,OAAQ47E,EAAcY,cAA4B,KAAKzlG,aAGxDs6G,EAAA5b,cAAA,2BAAAY,UAAA,KAAA8iB,IAED9H,EAAS5b,cAAA,8BAAaY,UAA0B,KAAA+iB,IAC9C,MAAIC,EAAAC,mCACQH,EAAAC,EAAAtE,G,EAEVrf,cAAc,cAAOY,UAAsB,GAAAgjB,KAG9CE,6CAAA5U,EAAA0M,EAED,C,SACMiI,mCAA2CH,EAAAC,EAAAtE,GAC/C,OAAGA,GAGD,IAAAp5F,OAAA09F,GAA0C19F,OAAAy9F,GAAoB,KAAAhI,QAAA,GAHvC,G,gBAMnBqI,wCAAqC7U,EAAA3yD,GAC3C,IAAAynE,EAESA,EAAL9U,aAAK3G,0CAAA2G,EAAA1I,6BACwB0I,EAAazG,oBAAAa,4B,MAE5C2a,EAAY1nE,EAAAyjD,cAAA,yB,EACJY,UAAS,G,IAEjBr7F,EAAA,E,KACDA,EAAAy+G,EAAA5hH,OAAAmD,IAAA,CACD,MAAA2+G,EAAwBF,EAAYz+G,GACrC,IAAA8hG,EAEDA,QAAe6c,EAAAvb,cACbwb,8BAAA9c,EAAA4c,EAAA1+G,EACA,CACA0+G,EAAclM,UAAS/1G,IAAK,QAAAgiH,EAAA5hH,kB,gBAGxBgiH,qCAAuClV,EAA8B3yD,GAGzE,MAAA0nE,EAAA1nE,EAAAyjD,cAAA,yBACAikB,EAAMrjB,UAAoB,GAG1B,IAAIyjB,EAFgCvkB,yCAAqC,2BAE/CwkB,WAAA,GAK1B,MAAAzY,QAAAqD,EAAAzG,oBAAAwE,0BAEAxD,QAAAoC,EAAmB,GAAAlD,cACnB,IAAA4b,EAAA9a,EAAoBjF,KACpB+f,IAAaA,EAAQrV,EAAAlgC,OAAmB0qB,MAExC2qB,SAA8CA,EAAA3jB,aAAA,MAAA6jB,GAC/CF,WAAA3jB,aAAA,MAAA+I,EAAAtoF,MAEDqjG,yCAAeH,GACbA,EAAatM,UAAY/1G,IAAA,qB,EAEf2wG,OAAU0R,GAGrBJ,EAAAlM,UAAA/1G,IAAA,kBAED,C,eACQyiH,kCAAgBvV,EAAA3yD,GACtB2yD,aAAkB3G,2CAA4C2G,aAAAZ,0CAAAyV,wCAAA7U,EAAA3yD,GAExD2yD,aAAA7C,2CAAkC+X,qCAAAlV,EAAA3yD,E,gBAGlCknE,gCAAkCvU,EAAc0M,GAGtD,MAEA8I,EAFsB5kB,yCAAU,4BAEhCwkB,WAAmB,SACbG,kCAA8BvV,EAA8BwV,GAClE,MAAAC,EAAA/I,EAAwB5b,cAAQ,mBACjC4kB,EAAAhJ,EAAA5b,cAAA,qBAED2kB,EAAe96E,QAAA66E,G,yCAkBWA,GACxB,MACAG,EAAwCH,EAAAJ,WAAA,GAnBxCM,EAAA/6E,QAAAg7E,E,gBAEMC,+CAA0C5V,EAAoB0M,GACpE,IAAIjf,E,EACFooB,E,4CACwC7V,EAAY0M,G,IACpDoJ,EAAa,G,MACdxe,QAAA0I,EAAAzG,oBAAAa,4BAED,IAAyC,IAAzC/jG,EAAA,EAAQA,EAAAihG,EAAcpkG,OAAmBmD,IAAA,CAGpC,MAAKykG,EAAQxD,EAAyBjhG,GACzCs3G,QAAsC7S,EAAcrB,cACpDqc,EAAQ3iH,KAAA,GAAaw6G,EAAmBtY,cAAgB/gG,gB,CAIpB,QAAtCm5F,EAAsCif,EAA/B5b,cAAc,2BAAiB,IAAtCrD,KAAwCjtC,iBAAiB,QAAS0tD,2CAAclO,EAAmB0M,IACnG,QAAAr2F,EAAA,EAAQA,EAAAy/F,EAAc5iH,OAAAmjB,IAEtBq2F,EAAA5b,cAAA,gBAAAglB,EAA8Bz/F,kBAAQmqC,iBAAA,QAAAgzD,0CAAAxT,EAAA0M,EAAA,cAAAr2F,IACtCq2F,EAAA5b,cAAA,kBAAuCglB,EAAAz/F,kBAAAmqC,iBAAA,QAAAgzD,0CAAAxT,EAAA0M,EAAA,gBAAAr2F,IAEC,QAAxC29E,EAAM0Y,EAAA5b,cAAuB,wBAA+B,IAAAkD,GAAmBA,EAAAxzC,iBAAA,QAAAisD,oCAAAzM,EAAA0M,IAC1B,QAArDmJ,EAAMnJ,EAAA5b,cAAgB,0BAA4C,IAAN+kB,GAAqBA,EAAWr1D,iBAAA,QAAA8sD,sCAAAtN,EAAA0M,IAC5FqJ,oDAA0BrJ,GAK1B,MAAA6E,EAAA1E,KAAA0E,MAAA,IACIta,QAAsB+I,EAAczG,oBAAiCnC,oBAEzE,IAAA4e,GAAY,EADQ/e,EAAcua,cAAAD,KAAAta,EAAAmJ,aAGnBx6E,OAAAqwF,YAAAvE,mDAAA3nE,KAAA,KAAAi2D,EAAA0M,GAAAvC,mCAEf,IAAA+L,EAAAxJ,EAAA5b,cAAA,iBACAqlB,EAAAD,EAAA7yE,GACA6yE,EAAA11D,iBAAA,QAAA41D,kCAAyCpW,EAAgBmW,IAE1DE,sDAAA3J,EAAA,gB,sDAW0CA,EAAA,mBARzC2J,sDAAgC3J,EAAS,iBACzC2J,sDAAqB3J,EAAA,oB,gBAEZ4J,0CAA0CtW,EAAC0M,G,IAClDjf,E,4CACwCuS,EAAY0M,G,IACpDoJ,EAAa,G,MACdxe,QAAA0I,EAAAzG,oBAAAa,4BACD,IAAyC,IAAzC/jG,EAAA,EAAQA,EAAAihG,EAAcpkG,OAAmBmD,IAAA,CAErC,MAAAykG,EAAqBxD,EAAWjhG,GAChCs3G,QAA0B7S,EAAwBrB,cACtDqc,EAAA3iH,KAAsB,GAAAw6G,EAA0BtY,cAAiB/gG,gB,CAEhB,Q,EAA/Co4G,EAAA5b,cAAsB,2BAAyB,IAAArD,KAAAjtC,iBAAA,QAAA0tD,2CAAAlO,EAAA0M,I,IAC/C6J,EAAM7J,EAAA5b,cAAA,sBACN0lB,EAAsBD,EAAiBlzE,G,EACvCmd,iBAAkC,SAAA1uD,iBACjCykH,EAAAE,UAAA,EAEHF,EAAA7kB,UAAA,mBACSglB,8CAAoB1W,EAAAwW,GAC7BD,EAAuBE,UAAM,EAC7BF,EAAsB7kB,UAAe,eACrC,IAKA,MAAA6f,EAAA1E,KAAA0E,MAAA,IACIta,QAAsB+I,EAAczG,oBAAiCnC,oBAEzE,IAAA4e,GAAY,EADQ/e,EAAcua,cAAAD,KAAAta,EAAAmJ,aAGnBx6E,OAAAqwF,YAAAvE,mDAAA3nE,KAAA,KAAAi2D,EAAA0M,GAAAvC,mCAEf,IAAA+L,EAAAxJ,EAAA5b,cAAA,iBACAqlB,EAAAD,EAAA7yE,GACA6yE,EAAA11D,iBAAA,QAAA41D,kCAAyCpW,EAAgBmW,IAE1DE,sDAAA3J,EAAA,gBAGC2J,sDAA8C3J,EAA8B,mBAC5E2J,sDAA6C3J,EAAA,iBAC7C2J,sDACmB3J,EAAY,oB,UAG3BiK,+CACejK,EAAM1M,G,MAGrB4W,EAAgBlK,EAAS5b,cAAiB,gB,IAC1C+lB,EAAA7W,EAAyB7E,gB,GAC1B1uF,MAAAoqG,EAAA,QAAAxgH,EAAA,EAAAA,EAAAwgH,EAAA3jH,OAAAmD,IAAA,CAEJ,MAAAygH,EAAA9W,EAAA3E,gBAEc5uF,MAAfqqG,IAAeD,EAAWxgH,IAA2B,YAAqCygH,EAAAzgH,uCACxFugH,EAAMllB,WAA6CmlB,EAAMxgH,GACrDugH,EAAc/N,UAAmCC,OAAU,SAE/D,C,gBAGMiO,iCAAsC/W,EAAY0M,GACxD,MAAMlV,QAA2BwI,EAAAzG,oBAAA+E,2BACjC,IAAArH,QAAsB+I,EAAAzG,oBAA+BnC,0BAEjDmd,gCACFvU,EAAQ0M,G,MAER/R,SADKqF,EAAA2R,yBACiBx/F,KAAArd,KAAmCypG,gBAAcnsG,aACvEqiH,QAA0CtI,2CAAkC3U,EAAAmD,G,KAC5E7J,cAAe,8BAA+BY,UAAA,KAAA+iB,IAC/CzU,EAAAlgC,OAAA2qB,QACD,CAEAiiB,EAAA5b,cAAA,kCAAsC+X,UAAA/1G,IAAA,UACtC45G,EAAA5b,cAAA,oBAEiBgB,MAAQklB,eAAI,QAC7B,MAPCtK,EAAA5b,cAAA,iBAAA+X,UAAAC,OAAA,UASD4D,EAAI5b,cAAkB,+BAAS+X,UAAA/1G,IAAA,UAG/B,MACAq9G,EADUtD,KAAA0E,MAAA,IACYta,EAAemJ,YAErC,IAKDsU,EAAAC,yCALCxI,2CAAoC3U,EAAAP,EAAAwH,mBAEI,IAAxC1nF,OAAAkgF,EAAoBU,aAAY,KAGjCvlG,WAAA+9G,GAEDzD,EAAA5b,cAAe,cAAAY,UAAe,GAACgjB,KAC7B5C,sCAA6B9R,EAAW0M,GACxC4J,0CAAwCtW,EAAA0M,GACxCgF,mDAAgD1R,EAAA0M,E,gBAE1CuK,sCAAoBjX,EAAU0M,GACpC,MAAIzV,QAAiB+I,EAAAzG,oBAAAnC,oBACfkC,QAAW0G,EAAoBzG,oBAAAC,gBACjClC,QAAa0I,EAA6BzG,oBAAMa,4BAClD5C,QAAqBwI,EAAsBzG,oBAAG+E,iCAC9CiW,gCAAuBvU,EAAa0M,G,IAEpCoJ,EAAM,SACN9V,EAAM0N,qB,IAEN,IAAAr3G,EAAA,EAAAA,EAAaihG,EAAiBpkG,OAAcmD,IAAA,CAC7C,MAAAykG,EAAAxD,EAAAjhG,GAED8hG,QAAA2C,EAAArB,oBACQ6a,+BAAgC5H,EAAU5R,EAAe,eACzDwZ,+BAAc5H,EAAA5R,EAA0C,UAAYxB,EAAClD,aAAA//F,IAG7Ey/G,EAAM3iH,KAAgB,GAAGglG,EAAO9C,cAAM/gG,gBACtC,CAGAo4G,EAAM5b,cAAgB,iBAAM+X,UAAeC,OAAW,UAEtD4D,EAAI5b,cAAO,+BACF+X,UAAC/1G,IAAa,U,MAChB29G,EAAY15F,aAAiBo1F,2CAC1B3U,EAAc8B,EAAAjD,gBAOxB8Z,EAFMtD,KAAA0E,MAA2B,IAExBta,EAAAmJ,YACuB,GAAhCrpF,OAAM05F,EAAkBjE,QAAQ,IAAcE,EAAA5b,cAA8B,gCAAAY,UAAA,KAAA+e,EAAAjE,QAAA,GAAAp6G,aAC/B,GAAzC2kB,OAAW05F,EAAcjE,QAAA,KAAgB2D,EAAAzD,EAAA5b,cAAA,gCAAAY,UAAA,MAC1Cgb,EAAA5b,cAAe,gCACCY,UAAoB,M,MACnC8iB,QAAyBrI,2CAA2B7U,EAAAL,EAAAU,cAMpDif,EAAgBlK,EAAS5b,cAAgB,gB,IACzC+lB,EAAA7W,EAAyB7E,gB,GAC1B1uF,MAAAoqG,EAAA,QAAAhzF,EAAA,EAAAA,EAAAgzF,EAAA3jH,OAAA2wB,IAAA,CAIH,MAAMizF,EAAqB9W,EAAS3E,gBACd5uF,MAAhBqqG,IAAgBD,EAA0BhzF,IAAQ,YAAKizF,EAA2BjzF,kCACxF+yF,EAAMllB,WAA2BmlB,EAAAhzF,GAAA,QACjC+yF,EAAQ/N,UAAcC,OAAA,SACtB,CACA,MAEMnO,SAFgBqF,EAAA2R,yBAEVx/F,KAAard,KAAAypG,gBAAkBnsG,aAC3CqiH,QAAsBtI,2CAAoC3U,EAAAmD,GAE1D+R,EAAA5b,cAAA,6CAAoCY,UAAA,KAAA8iB,IAGrC9H,EAAA5b,cAAA,8BAAAY,UAAA,KAAA+iB,IAED,MAAAC,EAAeC,mCAAAH,EAAwDC,EAAsBtE,GAC3FzD,EAAM5b,cAAc,cAA+CY,UAAW,GAAAgjB,KAC9E5C,sCAAgB9R,EAAA0M,GAChBkJ,+CACE5V,EAAe0M,E,gBAIjBoF,sCAAiD9R,EAAA0M,GACjD,MAAGpT,QAAc0G,EAAAzG,oBAAAC,gB,IACf0d,EACsBA,EAAtB,eAAQ5d,EAA0D,IAArBA,EAAY+D,WACpD,IAAA/D,EAAA6d,WAELD,GACDxK,EAAA5b,cAAA,qBAAAU,aAAA,gBACFkb,EAAA5b,cAAA,sBAAAY,UAAA,YAGCgb,EAAO5b,cAAuB,qBAAAU,aAAA,iBAC5Bkb,EAAK5b,cAAL,sBAAqBY,UAAd,Q,UAGV0lB,oCAAA91F,GAED,gBAAeg8B,GAcbA,SAAoDA,EAAAgtD,eAbhDhpF,EAAAunF,UAAckC,OAAG,UACrB,C,gBAEIuJ,+BAAqC5H,EAAA5R,EAAc3e,EAAkBk7B,GACzE,IAAI5pB,EAGJ,IAAA6pB,EADuB1mB,yCAA0B,kCACdwkB,WAAA,GACnC,IAAAmC,EAAkBD,EAAcxmB,cAAwB,oBACxD0mB,EAAkBF,EAAiBxmB,cAAS,mBAC5CxvE,EAAAg2F,EAA4BxmB,cAAgB,SAE5C,MAAAqH,QAAkB2C,EAAcrB,cAChC6d,EAAAzO,UAAkBC,OAAA,iCAElBwO,EAAOzO,UAAiB/1G,IAAS,yBACjCwkH,EAAOzO,UAAiB/1G,IAAQ,GAAAqlG,EAAA9C,cAAA/gG,uBAEhCgjH,EAAIzO,UAAqBC,OAAA,UACzBwO,EAAIxmB,cAAuB,wBAAkBY,UAAc,gBAAAvV,IACiB,QAA5EsR,EAAI6pB,EAAYxmB,cAAiB,4BAA2C,IAAArD,KAAAob,UAAA/1G,IAAAqpF,GAE5E76D,EAAIk/B,iBAAiB,QAAK42D,oCAAAG,I,EACxB/2D,iBAAiB,OAAA42D,oCAA0BG,I,MACrCD,EAAmBxmB,cAAkB,gC,EACzBwmB,EAAhBxmB,cAAgB,4B,EAChB0mB,EAAkB1mB,cAAlB,e,GACQ,M,EAAHwE,M,GACL6C,EAAI7C,KAAA33D,WAAmB,cAAiB,CACxC,IAAA85E,EAAkBH,EAAqBxmB,cAAI,kBAC3C2mB,SAA4CA,EAAAjmB,aAAA,MAAA2G,EAAA7C,MAC7CoiB,WAAA7O,UAAAC,OAAA,SACF,MAAM,GAAA3Q,EAAA7C,KAAA33D,WAAA,SACL,IAAA85E,EAAmBH,EAAuBxmB,cAAM,gCAChD2mB,EAAkB/lB,UAAlByG,EAAA7C,KACDmiB,EAAA5O,UAAAC,OAAA,SAED,O,EAGoBpX,UAClB,GAAAyG,EAAAlmF,OAEFylG,SAA2BA,EAAkB7O,UAASC,OAAS,UAI/D,MAAAr+B,QAAsBqwB,EAAS6D,aAChC,SAAAxiB,EAAAw7B,EAAAjmB,UAAAjC,0CAAAhlB,EAAA0tB,EAAAhJ,SAAA,GAEc,WAAfhT,IAAew7B,EAAAjmB,UAAiCjC,0CAAoD4nB,EAAAlf,EAAAhJ,SAAA,IAClG,MAAI0e,EAA2Bpe,0CAAgDhlB,EAAA0tB,EAAAhJ,SAAA,GAC/E6gB,0CAAAj5F,OAAA82F,GAAAkE,GACArF,EAAI5b,cAAA,SAAyB3U,KAAWsnB,OAAA6T,E,gBAExCM,sDAA2ClL,EAAAmL,GAC5C,IAAAC,EAAApL,EAAA5b,cAAA,kBAGCinB,EAA6BrL,EAAQ5b,cAAgB,cACrD+mB,EAAMr3D,iBAAuB,QAAcw3D,kCAA8CF,IACzFD,EAAAr3D,iBAAqB,QAAiBy3D,oCAAaF,G,UAEnD1B,sDAA2C3J,EAAA3kE,GAC3C,MAAAmwE,EAA6BxL,EAAC5b,cAAY,IAAA/oD,eAC3CowE,EAAAzL,EAAA5b,cAAA,IAAA/oD,oBAEDmwE,EAAS13D,iBAAA,YAAuB43D,oCAAsBD,IACpDD,EAAQ13D,iBAAiB,WAAA43D,oCAA8CD,I,EAChE33D,iBAAc,YAAS63D,kCAAAF,I,EAC5B33D,iBAAA,WAAA83D,kCAAAH,G,CAGJ,SAAAI,6CAAe7L,GACbA,EAAIzb,iBAAmB,4BAAcv+F,SAAAkd,IACjCA,EAAAi5F,UAAY/1G,IAAO,SAAC,G,gBAId0lH,4CAA6BxY,EAAA0M,GAEvC,IAqBE+L,EArBFC,EAAAhM,EAAA5b,cAAA,gDAEA6nB,EAAAjM,EAAA5b,cAAA,qB,GACA4nB,EAAAl4D,iBAAA,YAAgC63D,kCAAAM,IAChCA,EAAAn4D,iBAAA,YAAA63D,kCAAyCM,IACzCA,EAAAn4D,iBAAA,WAAA83D,kCAAyCK,IAiBvCF,IAAAzY,aAAkB3G,kDAClBsS,0CAAA3L,EAAAzG,oBAAkChgB,YAElCymB,aAAyB7C,2CAAYsb,GAAA/L,EAAgE7D,UAAAyI,SAAqB,mBAE1H,IAAIsH,EAAAlM,EAA4B5b,cAAW,wBAC3C8nB,SAAsCA,EAAiB/P,UAAAC,OAA+B,eACtF8P,SAAqCA,EAAiB/P,UAAA/1G,IAA6B,2CACpF45G,EAAAlsD,iBAAA,YAAAq4D,4CAAA,0CAAAD,IACFlM,EAAAlsD,iBAAA,WAAAq4D,4CAAA,0CAAAD,IAED,IAAAE,EAAepM,EAAA5b,cAAuB,kBAKpC4b,EAIAlsD,iBAEA,YAAwBu4D,uCAAAD,IACcpM,EACElsD,iBAAA,WAAAu4D,uCAAAD,GAZxC,C,gBAEMlE,6CAAgC5U,EAA2B0M,GACjE,IAAAjf,EAAMurB,EACNC,EAAyCC,EACzCV,4CAAAxY,EAAA0M,GAEA,MAAA5R,QAAqBkF,EAAgBtG,4BACIvB,QAAjC2C,EAAcrB,cAGgB,QAAtChM,EAAsCif,EAA/B5b,cAAc,2BAAiB,IAAtCrD,KAAwCjtC,iBAAiB,QAAS2tD,oCAAYnO,EAAY0M,IAG1F,GACAv5G,KAAA,GAAAglG,EAAAj4B,OAAA5rE,iBAC6B,QAA7B0kH,EAAMtM,EAAU5b,cAAa,+BAAAkoB,KAAAx4D,iBAAA,QAAA2tD,oCAAAnO,EAAA0M,IACW,QAAxCuM,EAAMvM,EAAA5b,cAAuB,wBAA+B,IAAAmoB,GAAmBA,EAAAz4D,iBAAA,QAAAutD,kCAAA/N,EAAA0M,IAC1B,QAArDwM,EAAMxM,EAAA5b,cAAgB,0BAA4C,IAANooB,GAAqBA,EAAW14D,iBAAA,QAAA4tD,oCAAApO,EAAA0M,IAC5FqJ,oDAA0BrJ,GAM1B,MAAA6E,EAAA1E,KAAe0E,MAAA,IACfta,QAAA+I,EAAAzG,oBAAgCnC,oBAEhC,IAAA4e,GAAA,EADA/e,EAAAua,cAAkDD,KAAAta,EAAAmJ,aAElDx6E,OAAAqwF,YAAgCtF,4CAAyB5mE,KAAA,KAAAi2D,EAAA0M,GAAAvC,mCAE1DkM,sDAAA3J,EAAA,gBAGC2J,sDAAwC3J,EAAoB,mBAC5D2J,sDAAiD3J,EAAA,iBACjD2J,sDAA+B3J,EAAA,oB,gBAG/B+E,8CAAmCzR,EAAQG,EAAAgZ,EAAAnD,GAC3C,MAAG/e,QAAkB+I,EAASzG,oBAC5BnC,oB,MAEA+I,EAAAiV,WAAA,G,GAEFmD,6CAA4B7L,G,uCACM1M,EAAA0M,G,6CACH1M,EAAA0M,GAC7BA,EAAM7D,UAAAyI,SAAgB,iBAAe8H,8CAA4C1M,GACjF2M,wCAAsBrZ,EAAA0M,IAEpB,GADFsJ,EACE,CAGHsD,cAAAtD,GAEG,MAACzE,EAAW1E,KAAC0E,MAAQ,IAGzByE,GAAA,EADwB/e,EAAQua,cAAAD,KAAAta,EAAAmJ,cAEjC4V,EAAApwF,OAAAqwF,YAAAkD,EAAApvE,KAAA,KAAAi2D,EAAA0M,GAAA,KAED,CACEvM,EAAIoZ,YAAU7M,GACd,MAAApvD,EAAA,IAAAiyD,MAAA,SACA3e,yCAAiB,uBAAA7D,cAAAzvC,E,gBAGPs0D,gDACR5R,EAAAG,EAAAgZ,EAAuBnD,G,MAEvB7V,EAAAiV,WAAA,G,GAEFmD,6CAA4B7L,G,uCACM1M,EAAA0M,G,+CACH1M,EAAA0M,GAC7BA,EAAM7D,UAAAyI,SAAiB,iBAAiB8H,8CAAuC1M,GAC/E2M,wCAAqCrZ,EAAgB0M,IAC/B,GAAtBsJ,EAAsB,CACtBsD,cAAGtD,GAIJ,MAAAzE,EAAA1E,KAAA0E,MAAA,IAEIta,QAAoB+I,EAAAzG,oBAAAnC,oBAGzB4e,GAAA,EADwB/e,EAAQua,cAAAD,KAAAta,EAAAmJ,cAEjC4V,EAAApwF,OAAAqwF,YAAAkD,EAAApvE,KAAA,KAAAi2D,EAAA0M,GAAA,KAED,CACEvM,EAAIoZ,YAAU7M,GACd,MAAApvD,EAAA,IAAAiyD,MAAA,SACA3e,yCAAiB,uBAAA7D,cAAAzvC,E,gBAGjBu0D,2CAAA7R,EAAAG,EAAAgZ,EAAAnD,GACA,IAAAtJ,EAAAvM,EAAAiV,WAAA,G,GACAmD,6CAA2C7L,G,uCAGzC1M,EAAkB0M,GAEpB4J,0CAA4BtW,EAAA0M,GAG1BvM,EAAA0I,UAAMyI,SAAiB,iBAAiBkI,6CAAuC9M,EAAAvM,GAC/EkZ,wCAAqCrZ,EAAgB0M,IAC/B,GAAtBsJ,EAAsB,CACtBsD,cAAGtD,GAIJ,MAAAzE,EAAA1E,KAAA0E,MAAA,IAEIta,QAAoB+I,EAAAzG,oBAAAnC,oBAGzB4e,GAAA,EADA/e,EAAmCua,cAAAD,KAAAta,EAAAmJ,cAEpC4V,EAAApwF,OAAAqwF,YAAAkD,EAAApvE,KAAA,KAAAi2D,EAAA0M,GAAA,KAED,CACEvM,EAAAoZ,YAAA7M,E,gBAC8C+M,uCAAezZ,EAAA0M,GAC7C,CAEhB,aACA,cACA,iBAGAh6G,SAAAq1C,GAAA2kE,EAAA7D,UAAAC,OAAA/gE,KACA,MAQDooE,EARUtD,KAAA0E,MAAW,WAIVvR,EAAazG,oBAAenC,qBAIvCgJ,kBAGKJ,EAAA0Z,uBAAqBhN,EAAA7D,UAAA/1G,IAAA,cACrBq9G,EAAAzD,EAA4B7D,UAAA/1G,IAAA,eAC5B45G,EAAA7D,UAAgC/1G,IAAA,gB,gBAI5B6mH,8BAA8B3Z,GAEtC,IAAA4Z,EAEAC,EACA,IAAAnN,EAJyB9b,yCAAS,2BAI5BwkB,WAAA,GACN1I,EAAMlb,aAAA,KAAAwO,EAAA9E,KAAA73D,GAAA/uC,cAA+B8lB,QAAS,IAAC,MAC/CsyF,EAAM7D,UAAAC,OAAA,UACN4D,EAAM7D,UAAA/1G,IAAA,kBACN2mH,uCAAMzZ,EAAA0M,SACFoN,0CAAsB9Z,EAAA0M,SACxBqN,2CAA6B/Z,EAAA0M,SAC7BsN,6CAAoBha,EAAgB0M,SACrCuN,4CAAgCja,EAAA0M,SAC/BwN,gDAA+Bla,EAAA0M,GAC/B1M,aAAM3G,2CAAoC,UAAA2G,EAAApuF,MAC3CgoG,EAAmB5Z,QAIpBoU,oCAAwBwF,EAAUlN,IAGvB1M,aAAAZ,2CAAA,YAAAY,EAAApuF,MACPioG,EAAoB7Z,QACpBiX,sCAAwC4C,EAAgBnN,IACtD1M,aAAuB7C,2CAAgD,OAAA6C,EAAApuF,YAAAmlG,iCAAA/W,EAAA0M,GAE7EiK,+CAAyCjK,EAAA1M,GAGzC,IAAAma,EAAmBzN,EAAY5b,cAAS,mBACxCspB,EAAiB1N,EAAY5b,cAAS,iBAEtC,MAAMmG,QAAiB+I,EAAWzG,oBAAanC,oBAC/CijB,EAAyBpjB,EAAeqjB,oB,EACtCxpB,cAAiB,kCAAWY,UAAA,GAAA2oB,a,EAC5B3oB,UAAA,IAAAmb,KAAA,IAAA5V,EAAAua,eAAAx3F,iBAEFogG,EAAW1oB,UAAU,IAASmb,KAC5B,IAD4B5V,EAC5BmJ,aAAApmF,iB,MAEAqwE,QAAM2V,EAAAua,cAIR7N,EAAAzb,iBAAA,eAAAv+F,SAAA8nH,IAEIA,EAAA9oB,UAAoBrH,CAAO,IAE/BqiB,EAAM7D,UAAgByI,SAAA,iBAAgB8H,8CAA0B1M,SAChE2M,wCAAArZ,EAAyC0M,GAqB1C,GAPCwD,qDAAkDlQ,EAAA0M,GAV1C,IAAcG,MAAAC,UAAqB,IAIzC7V,EAAWmJ,aAQVxP,yCAA6B,cAAA6S,OAAAiJ,G,EAC1B5b,cAAa,sBAAqBY,UAASuF,EAAawjB,SAAAxjB,EAAAwjB,SAAA,a,EAC5DnT,eAAA,IAAAJ,0CAA8CwF,G,EAC9CpF,eAAiBrsC,OAAA+kC,EAAAsH,8BAA8BtH,EAASsH,eAAWC,OAAAvH,EAAAsH,eAAAF,SAAApH,EAAAsH,eAAAE,SAEtE,MADEoB,eAAAprE,QAAA,mCACF,CAEQkvE,EAAA7D,UAAAyI,SAAA,eAEYoJ,oDAAqDhO,EAAA1M,EACxE,C,UAGG0a,oDAA2BhO,EAAA1M,G,GAKH0M,EAAArpE,IAJVulE,eAAcprE,QAC3B,4BAKwB,CAE7B,IADE,IAAAiwD,EACF,YAAAvN,SAAA7wC,YAAA9F,YAAA,aAEQ,QAAAkkD,EAAAuS,EAAAsH,sBAA4C,IAArB7Z,GAAuBA,EAAAsb,mBACrDH,eAAmBnrE,WAAW,4BAC3BmrE,eAAenrE,WAAA,kC,WAIhB27E,8CAA2C1M,G,GACnCA,EAAc7D,UAAAyI,SAAA,cACT,CACbqJ,gDAAsBjO,GACvBkO,6CAAAlO,GACFA,EAAA5b,cAAA,oBAAA+X,UAAAC,OAAA,UAED4D,EAAS5b,cAAA,yCAAgEU,aAAA,uBACvE,MAAMl0C,EAAA,IAAgBiyD,MAAK,SACxB7C,EAAA5b,cAAe,2CAAA/D,cAAAzvC,E,WAGjBk8D,6CAAA9M,EAAAvM,GACFA,EAAA0I,UAAAyI,SAAA,gBAGK5E,EAAA5b,cAAmB,sBAAsB+X,UAAAC,OAAkC,UAC3E4D,EAAA5b,cAAgB,oBAAsB+X,UAAAC,OAAkC,U,UAG5E6R,gDAA+BjO,GAChC,IAAAoL,EAAApL,EAAA5b,cAAA,kBAED2kB,EAAS/I,EAAA5b,cAAA,mBACPgnB,EAAIjP,UAAiBC,OAAQ,UAC7B8O,sDAA6ClL,EAA8B+I,GAC3EmC,sDAAmElL,EAAAoL,E,UAE/D8C,6CAAoClO,GACxC,IAAImO,EAAgBnO,EAAQ5b,cAAc,YAE1CgqB,EAAiBpO,EAAA5b,cAA0B,cAC3CiqB,EAAArO,EAAiB5b,cAAiB,eAClCkqB,EAAgBtO,EAAC5b,cAAiB,iBAClCmqB,EAAiBvO,EAAA5b,cAAiB,iBACnCoqB,EAAAxO,EAAA5b,cAAA,mBAEDgqB,EAASt6D,iBAAA,QAAgB26D,6CAAyEH,EAAED,IAClGD,EAAGt6D,iBAAqB,QAAA26D,6CAAAD,EAAAD,I,EACtBz6D,iBAAA,QAAA46D,sC,EACW56D,iBAAkB,QAAC66D,wCACrBR,G,UAGTS,uCAAuC5O,EAAS6O,EAAAC,G,GACjDD,EAAA,CAGH,GAAS7O,EAAA7D,UAAAyI,SAAA,mBAAyCkK,EAAA,OAExB9O,EAAA5b,cAAA,sBACtB+X,UAAAC,OAAA,S,WAIM2S,yCAAoC/O,EAA+B6O,G,GACnEA,EAAgB,CAChBZ,gDAAwCjO,GACxC,IAAImO,EAAgBnO,EAAQ5b,cAAc,YAE1CgqB,EAAApO,EAAA5b,cAAuB,cAEvBiqB,EAAcrO,EAAC5b,cAAiB,eAChCkqB,EAAetO,EAAA5b,cAAiB,iBAChCmqB,EAAevO,EAAA5b,cAAwB,iBACvCoqB,EAAexO,EAAA5b,cAA0B,mBAChD8pB,6CAAAlO,GACFmO,EAAAr6D,iBAAA,QAAA26D,6CAAAJ,EAAAC,IAEDH,EAAer6D,iBAAA,QAAA26D,6CAA2FF,EAAAC,IACpGL,EAAAr6D,iBAA0B,QAAQ46D,sCAClCP,EAAcr6D,iBAAW,QAAc66D,wCAA2BP,GACtE,C,gBAGMzB,wCAAwCrZ,EAAA0M,G,IAE5CgP,EAAyBhP,EAAA5b,cAAA,a,EACvB4b,EAAA5b,cAAkC,a,EAClC4b,EAAe5b,cAAiB,oB,8CAEW2D,0CAAqC,C,MAC5D,YAAAuL,EAAAzG,oBAAAhgB,SAAA0b,iB,UAEnB4T,UAAAC,OAAA,UACF6S,EAAAn7D,iBAAA,QAAAgrD,sCAAAxL,EAAA0M,IAEwB,WAAtB1M,EAAU9E,KAAAvC,QAAY,WAAAqH,EAAA9E,KAAAvC,QAAA,CAIlB,IAAGijB,EAAU,kFAClBlP,EAAM5b,cAAiB,mBAAiBY,UAAAkqB,CACxC,C,GAEA5b,aAAA3G,2CAA+D2G,aAAAZ,0CAAAqc,yCAAA/O,EAAA6O,QAEhE,GAAAvb,aAAA7C,0CAAA,CACF,MAAA7D,QAAA0G,EAAAzG,oBAAAC,gBAIC8hB,uCAAsC5O,EAAS6O,EAD/BjiB,EAAAlD,aAAAgH,MAAAn2E,KAAA/zB,OAAA,UAAAomG,EAAArtB,MAEhB,C,CAEDygC,EAAA7D,UAAAyI,SAAA,gBAGHoK,EAAS7S,UAAQ/1G,IAAA,UACX6oH,EAAAnqB,aAAgC,uBAEhCqqB,EAAahT,UAAYC,OAAA,U,wCAGA3Q,EAAA2jB,EAAAh2F,EAAA,G,SAEzB,M,EAAAwvE,MAAA,IAAmB6C,EAAA7C,K,GAEnB6C,EAAM7C,KAAA33D,WAAmB,eAEzBw3E,EADsBvkB,yCAA+C,2BACpCwkB,WAAa,GAC/CD,SAAMA,EAAA3jB,aAAA,MAAA2G,EAAA7C,K,MACL,GAAM6C,EAAA7C,KAAA33D,WAAmB,SAEzBw3E,EADsBvkB,yCAA+C,qCAClCwkB,WAAc,GAClDD,EAAAzjB,UAAAyG,EAAA7C,IACF,KAAM,CAEL6f,EADyBvkB,yCAAA,4BACcwkB,WAAc,GACrDD,EAAqBzjB,UAAc,GAAAyG,EAAalmF,MACjD,KACD,CAEAkjG,EADiCvkB,yCAAqB,4BACjBwkB,WAAA,GACtCD,EAAAzjB,UAAA,GAAAyG,EAAAlmF,MAED,CACEqjG,yCAAkDH,GAClDA,EAAkBtM,UAAQ/1G,IAAA,qBAE1BgpH,EAASrY,OAAO0R,E,gBAGV2E,0CAAc9Z,EAAe0M,G,MACjCqP,QAA6B/b,EAAAgc,yBAC9BF,EAAApP,EAAA5b,cAAA,4BACF,QAAAz6F,EAAA,EAAAA,EAAA0lH,EAAA7oH,OAAAmD,IAAA,CAGC,IAAM4lH,EAAAC,qCADOH,EAAA1lH,IAETylH,EAAArY,OAAewY,E,iBAGlBlC,2CAAA/Z,EAAA0M,GAED,MAAIyP,QAAenc,EAA0Boc,uB,IAC3CC,EAAkB,CAClBC,YAAY,8B,KACV,I,QAEDjmH,EAAA,EAAAA,EAAA8lH,EAAAjpH,OAAAmD,IAAA,CAED,IAAAkmH,EAAqBJ,EAAS9lH,GAC/B,MAAAk8G,EAAA,CAEDlY,SAAAkiB,EAAAliB,SACDt/C,QAAAwhE,EAAAxhE,SAGCshE,EAAAG,KAAArpH,KAAAo/G,EACD,CAEDkK,oCAAA/P,EAAA2P,EACA,CACAvqH,eAAIkoH,6CAAAha,EAAA0M,GAEJgQ,kDAAe1c,EAA4B0M,EAAiD,iCAA0D,gB,gBAKnJgQ,kDAAA1c,EAAA0M,EAAA4P,EAAA3pH,GACD,MAAIgqH,QAAe3c,EAA4B2R,wB,IAC7CiL,EAAoB,CACpBN,YAAYA,E,KACV,I,QAEDjmH,EAAA,EAAOA,EAAEsmH,EAAqBzpH,OAAAmD,IAAA,C,IAC9BwmH,EAAAF,EAAAtmH,GAED,MAAAk8G,EAAA,CACDlY,SAAAwiB,EAAAxiB,SAEFt/C,QAAA8hE,EAAAlqH,IAGCiqH,EAAAJ,KAAArpH,KAAAo/G,EACD,CAEDkK,oCAAS/P,EAAckQ,E,gBAEf3C,4CAAaja,EAAA0M,GACnBgQ,kDAA0B1c,EAAA0M,EAAA,2C,UAGxB+P,oCAAoC/P,EAAoBoQ,G,MACxDC,EAAiBrQ,EAAA5b,cAAA,IAAAgsB,EAAAR,eACjBU,EAAOpsB,yCAAkD,uBAEzD4rB,EAAMM,EAAAN,K,IAEN,IAAInmH,EAAA,EAAAA,EAAWmmH,EAAGtpH,OAAAmD,IAAA,CAElB,MAAA4mH,EAAcD,EAAO5H,WAAY,GACjC,IAAA7C,EAAAiK,EAAAnmH,GACA4mH,EAAOnsB,cAAc,YAAYY,UAAW6gB,EAAAx3D,QAC5C,MAAAmiE,EAAqBD,EAAOnsB,cAAA,SAE7B,IAAAmrB,EAAAC,qCAAA3J,EAAAlY,UACF6iB,EAAAzZ,OAAAwY,GAED3G,yCAAe2H,GACbA,EAAApU,UAAA/1G,IAAAy/G,EAAAlY,SAAAJ,UAAA3lG,cAAwC8lB,QAAO,KAAE,MAClD2iG,EAAAtZ,OAAAwZ,EAED,C,gBAEY/C,gDAAmBla,EAAA0M,GAC7BgQ,kDAA4B1c,EAAA0M,EAAA,0D,UAExBwP,qCAAiC7hB,G,MACjC8iB,EAAiBvsB,yCAAgB,sB,IAElCqrB,EADCmB,EAAA,IAAYC,UAEZhjB,EAAAL,OAEAiiB,EADAmB,EAAYE,gBAAoBjjB,EAASt4E,IAAI,iBACjCw7F,iBACb1U,UAAA/1G,IAAA,uBAEDmpH,EAAAkB,EAAA/H,WAAA,IACO5jB,aAAW,MAAA6I,EAAAt4E,KACrBk6F,EAAAzqB,aAAA,MAAA6I,EAAAJ,YAKD,OADAqb,yCAA0C2G,GAC1CA,CACA,C,kDAO4CzB,G,QACtCnkH,EAAA,EAAOA,EAACmkH,EAAU3R,UAAO31G,OAAWmD,IAAA,C,IACrC0xC,EAAAyyE,EAAA3R,UAAAxyG,GACF,GAAA0xC,EAAArtB,SAAA,aAEO,MAAA8iG,EAAiBz1E,EAASlK,UAAA,GACnC28E,EAAA3R,UAAAC,OAAA,GAAA/gE,KAEQyyE,EAAA3R,UAAA/1G,IAAA,GAAA0qH,IACP,CACA,C,EACM3U,UAAAC,OAAiB,S,UAErBiN,oDAA2BrJ,G,MAC5B+Q,EAAA/Q,EAAAzb,iBAAA,0BACF,QAAA56F,EAAA,EAAAA,EAAAonH,EAAAvqH,OAAAmD,IAAA,CAED,IAASqnH,EAAAD,EAAApnH,GACP,MAAO07G,EAAsB2L,EAAE5sB,cAAA,eAC7BihB,SAAsBA,EAAAvxD,iBAAA,QAAAm9D,4CAAAD,G,WAItBC,4CAAqCrG,G,OAErC,SAAWh6D,GACXA,EAAMgtD,iBACP,IAAAhpF,EAAAg2F,EAAAxmB,cAAA,SACF,MAAAta,EAAA8gC,EAAAxmB,cAAA,UAAAY,UAGDksB,EAAe,IAAArO,MAAA,SACbjuF,EAAApwB,MAAAslF,EAAApkF,WACKkvB,EAAKyrE,cAAU6wB,EAIpB,C,gBAMSC,kCAA8BpL,GAEvC7hB,yCAAiB,cAAAc,UAAA,GAClB,QAAAr7F,EAAA,EAAAA,EAAAo8G,EAAAv/G,OAAAmD,UAAAsjH,8BAAAlH,EAAAp8G,IAEGu6F,yCAAoB,cAAAkB,MAAAC,QAAA,OAEf,GAAAnB,yCAAA,cAAAktB,oBAAAltB,yCAAA,cAAAc,UAAA,qE,gCAEL,C,CAv4DJoZ,qCAAetqD,iBAAiB,QAASqqD,8CA4BzCja,yCAAG,kBAAkByZ,QAAUW,mDAC/Bpa,yCAAG,kBAAkByZ,QAAUW,mDAC/Bpa,yCAAG,mBAAmByZ,QAAUW,mDAEhCpa,yCAAG,YAAYyZ,QAAU,KAAQE,kCAAY,OAAO,EAQpD3Z,yCAAG,aAAayZ,QACdv4G,eAAgBwrD,GACdA,EAAMgtD,iBAENb,0CAAOxe,aACPwe,0CAAShV,0CAETgW,qC,EA8CJ7Z,yCAAG,gBAAgByZ,QAAQc,kCAAY,eACvCva,yCAAG,iBAAiByZ,QAAQc,kCAAY,iBACxCva,yCAAG,sBAAsByZ,QAASc,kCAAY,c,+CA2yDAva,yCAAA,oB,SAE1CmtB,oD,OACA,WAEAC,2CAAanV,UAAA/1G,IAAA,UACQ89F,yCAAwB,wBAE/BiY,UAAA/1G,IAAA,UACQ89F,yCAAwB,yBAC/CiY,UAAA/1G,IAAA,yBACF89F,yCAAA,UAEQiY,UAAA/1G,IAAA,yBACa89F,yCAAsC,YACtDiY,UAAgB/1G,IAAI,wBACxB,C,UAEKmrH,qCACL,IAAIC,EAAW,IAAArR,KAAc,6BAI3Bh1G,GAFCqmH,EAAc,IAAArR,KAAAqR,EAAApR,UAAA,IAAAoR,EAAAC,qBAEf,IAAQtR,MAENzH,GADHvtG,EAAA,IAAAg1G,KAAAh1G,EAAAi1G,UAAA,IAAAj1G,EAAAsmH,qBACcD,EAAOpR,UAA+Bj1G,EAAGi1G,WACpD1H,EAAQ,IACRkU,cAAcpP,2CACdhqB,SAAOk+B,eAAe,SAAY1sB,UAAmB,IAG1D,IAAA2sB,EAAAphH,KAAAC,MAAAkoG,EAAA,OAEMkZ,EAASrhH,KAAAC,MAAAkoG,EAAkB,YAC5BmZ,EAAAthH,KAAAC,MAAAkoG,EAAA,UACFoZ,EAAUvhH,KAAAC,MAAAkoG,EAAA,S,SAAGgZ,eAAA,SAAA1sB,UAAA,oGAAA2sB,SAAAC,c,SAEFE,iB,gBAsJFC,kCAAWC,G,IAClB/oH,EAAK,WACNgpH,EAAA,GAEH,MAAIlM,QACcvS,0CAA4DuJ,2CAG9E,IAAAtJ,E,IACE,IAAA9pG,EAAA,EAAAA,EAAAo8G,EAAAv/G,OAAAmD,IAAA,GAAAqoH,EAAA,GAAAvnC,aAAAs7B,EAAAp8G,GAAAkjG,oBAAgGhgB,SAAAjE,WAAA,CAChG6qB,EAAIsS,EAAQp8G,GACZ,K,OAGE,MAAM,IAAA7B,MAAA,kCAAoCkqH,EAAoB,GAAAvnC,qB,QAC9D4c,IAAQ2qB,EAASvsG,KAAArgB,MAAAme,EAAA6V,KAEnB,IAAGy0E,EAED,GAAA4F,aAAgB9G,0CAA2CkB,QAAA4F,EAAApF,mBAAAtC,mBAE7D,GAAM0H,aAASf,0CAA6B,CAC5C,MAAA9H,QACe6I,EAAQ5G,oBACtBa,4BACAG,QAAAjD,EAAAxxE,GAAAyzD,SAAAkf,aACH,CACA,IAAA8B,EACD,UAAA/lG,MAAA,4CAQD,MAAAgiF,EAAeiZ,0CAAiFx/E,EAAAumE,OAAA+jB,EAAApL,SAAA,GAC1FwvB,EAAUxrH,KAAY,GAAAqjF,KAAA+jB,EAAAr6B,SAAA,K,GAGhBy+C,EAAsBtrH,KAAE,OAChCu/F,0CAAwCj9F,EAAA,Q,gBAGtCipH,oCAAyBF,G,MACrB,a,uBACWA,EAAG,GAAA/oH,GAAA,yBAAM+oH,EAAAxrH,sC,GAExB,UAAMwrH,EAAW,GAAM,C,IACvBG,EAAa,G,IACb,IAAAxoH,EAAM,EAAAA,EAASqoH,EAAAxrH,OAAAmD,IAAA,CACf,MAAA4Z,EAAAyuG,EAAsBroH,GAGvB,IAAAkjF,EAAA,IAAAqb,0CAAA3kF,EAAA2qB,OACD2+C,EAAW+a,OAAAmV,0CACZ,MAAAtR,QAAA5e,EAAAkf,cAEFjiB,EAAAiZ,0CAAAx/E,EAAAumE,OAAA2hB,EAAAhJ,SAAA,GAEU0vB,EAAA1rH,KAAA,GAAAqjF,KAAA2hB,EAAAj4B,SACX,CACEvqE,GAAOkpH,EAAwBxrH,KAAA,M,CAG7Bu/F,0CAA4Dj9F,EAAG,U,8CAGjCmpH,G,gBAASxhE,G,IAAEk9D,EAAMl9D,EAAAvwC,OAAO,K,EAALgyG,QAAKzqH,eAAAgpD,EAAAgtD,iB,MAAEyU,EAAKvE,EAAAuE,QAAAzqH,cAAQ,CAAE,SAAI,QAEvE,OAGL,MACF,MAEQ,OACA,KAGWomB,SAAWqkG,KAASvE,EAAU3R,UAAAyI,SAAiB,mBAAAwN,EAAAjW,UAAAkC,OAAA,S,6CAGjCiU,G,gBAAS1hE,G,IAAEk9D,EAAMl9D,EAAAvwC,OAAO,K,EAALgyG,QAAKzqH,eAAAgpD,EAAAgtD,iB,MAAEyU,EAAKvE,EAAAuE,QAAAzqH,cAAQ,CAAE,SAAW,QAAI,OAElF,MAGL,MACF,OAGQ,UACA,KAESomB,SAAUqkG,KAAevE,EAAE3R,UAAAyI,SAAA,mBAAA0N,EAAAnW,UAAAkC,OAAA,U,EAI7C,SAASqN,oCAAA0G,GACP,OAAO,SAAUxhE,GACfA,EAAMgtD,iBACNwU,EAAcjW,UAAUkC,OAAO,S,WAGlC8N,4CAAAoG,EAAAC,GAED,OAAS,SAAA5hE,GACPA,EAAOgtD,iBACL4U,EAAMrW,UAAgBkC,OAAA,eACtBmU,EAAArW,UAAmBkC,OAAUkU,E,EAIjC,SAASlG,uCAAYoG,GACnB,OAAO,SAAU7hE,GACfA,EAAMgtD,iBACN6U,EAActW,UAAUkC,OAAO,Q,EAInC,SAASsN,kCAAYyG,GACnB,OAAO,SAAUxhE,GACfA,EAAMgtD,iBACNwU,EAAcjW,UAAUC,OAAI,S,EAIhC,SAASwP,kCAAA8G,GACP,OAAO,SAAU9hE,GACfA,EAAMgtD,iBACN8U,EAAcvW,UAAU/1G,IAAA,S,WAG3BqoH,6CAAA2D,EAAAM,GAED,OAAS,SAAA9hE,GACHA,EAAAgtD,iBACJwU,EAAkBjW,UAAIC,OAAU,UACjCsW,EAAAvW,UAAA/1G,IAAA,SAED,C,UAEIsoH,qCAAuB99D,GACvBA,EAAAvwC,OACD87F,UAAA/1G,IAAA,S,CAGH,SAAAuoH,wCAAegE,GACb,OAAM,SAAA/hE,GACNA,EAAAgtD,iBAEG+U,EAAsBxW,UAAAC,OAAA,S,iBAIvBwW,sCAA8Ctf,EAAUuf,GAK3D,SAJGC,+BAA6Bxf,EAAiBuf,GAC/C3uB,yCAAA,sBAAAiY,UAAAC,OAAA,UAGF9I,aAAA7C,0CAAA,CAGD,IAASsiB,EAAAC,qCAAmD5uB,cAAA,0BACpD6uB,EAAiBD,qCAAA5uB,cAAG,yBAEtB2uB,EAA4Bj/D,iBAAe,QAAAo/D,0DAAiE5f,IAEhH2f,EAAgCn/D,iBAAiB,QAACq/D,oCAClD,C,CAGF,SAASC,sDAAwCC,GAC/C,MAAAC,EAA8BpvB,yCAAA,sB,IAC5BqvB,EAAsBD,EAAA/uB,iBAAA,+BAAA/9F,OAEE8sH,EAAAlvB,cAAA,qCAClBY,WAAwBuuB,EAAiCF,GAAW3tH,U,0DAGpC+pF,EAAA4jC,G,OACnC,SAAAziE,GAEHA,EAAMgtD,iBACN,MAAA4V,EAA4BtvB,yCAAY,sBAEIsvB,EAAAjvB,iBAAA,aAExBv+F,SAElB8nH,I,EAIA3R,UAAAC,OAAsB,eAOxB,IAAAqX,EAHqB7iE,EAAAvwC,OACnB87F,UAAA/1G,IAAA,YAGHqtH,EAAA,SAAAhkC,EAAA+jC,EAAAjvB,iBAAA,sBACFivB,EAAAjvB,iBAAA,oBAEDkvB,EAAeztH,SAAA0tH,IACPA,EAAAvX,UAA2C/1G,IAAA,WAAM,IAEvDgtH,sDAA0BC,EAE1B,C,gBAGArJ,8CAAsD1W,EAAAuf,GAEtD,MAGMQ,EAAe9wB,iDAHC+Q,EAAAzG,oBAAAnC,qBAGEmG,cACxB3M,yCAAuC,qCAAAc,UAAAquB,EAAA3tH,WAEVw+F,yCAAA,2BACRiY,UAAiBC,OAAO,UAErBlY,yCAAG,0BAC3BiY,UAAmBC,OAAA,UAEnBlY,yCAA0C,yBAEpCiY,UAAAC,OAAA,UACPlY,yCAAA,2BAEQpwC,iBAAW,QAAC6/D,gDAA0D,UAAAN,IACpDnvB,yCAAA,yBACvBpwC,iBAAA,QAAgB6/D,gDAAoB,QAAAN,I,sDACrCA,SACFT,sCAAAtf,EAAAuf,EAED,C,SACEnJ,kCAAqBpW,EAAAuf,GACrB,OAAAztH,iBAEAwtH,sCAAoCtf,EAAcuf,EAClD,C,gBAEAC,+BAAAxf,EAAAuf,GACA,MAAIe,EAAA1vB,yCAAoD,aACxD0vB,EAAI5uB,UAAyD,GAC7D,MAAI1/F,EAAaguG,EAAiB1L,OAAAxV,eAClC,IAAG8f,EACD2hB,EAAyB,GAEzBC,EAAkD,G,QACzCxgB,EAAAzG,oBAAAC,gB,GAEL,E,GACA,iB,EAAqB,C,EACtBwG,EAAA1C,uB,MAEHmjB,SADE7hB,EAAA3B,qBAAAjrG,IAC2BmgB,KAAAuuG,GAC7Br4B,0CAA0E,EAAAxjD,OAAAjxC,SAAA,GAAA8sH,GAAA,CACtE3f,YAAenC,EAAAtpB,WAChB0rB,SAAYpC,EAAc1C,Y,IAK3BD,E,QAFKv3E,IAAA,EAAA+7F,EAAAvtH,Q,EACsBstH,EAAgB3xG,OAAA4xG,GAE5C,eAAAvpB,GACDypB,EAAA,IAAAzpB,EAAAmG,WACGpB,EAAA/E,EAAemG,aAGlBsjB,EAAyC,IAAnCzpB,EAAwBigB,WAC1Blb,EAAS/E,EAAMigB,YAGjBwJ,GAAMJ,EAAyCptH,KAAA2tG,yCAA+B7E,EAAA2C,EAAA1C,QAAA0C,EAAAtpB,Y,WAC/D,sBAAfiqC,GAAkCvf,aAAQ7C,2C,MAwC1C,IAAA3oG,MAAA,iBAAAwrG,0CAxC0C,C,MAC1C4gB,QAAuB5gB,EAASzG,oBAAOwE,0B,IACvC,IAAA1nG,EAAA,EAAAA,EAAAuqH,EAA+B1tH,OAAAmD,IAAA,C,MAC7BkjF,EAAOqnC,EAAAvqH,GAAAkjF,S,EAEMA,EAAU2jB,e,QACJ3jB,EAAA0jB,qBAAAjrG,G,aAClB6uH,GAAAC,SACA5kB,MAAA3iB,EAAA2iB,SAEJskB,IAAA3xG,OAAAkyG,EAAA5uG,KAAAuuG,GACer4B,0CAA0C,EAAAxjD,OAAAjxC,SAAA,GAAA8sH,GAAA,CAClD3f,YAAgBxnB,EAAGjE,WACnB0rB,SAAwB9E,M,GAOxBhF,EAAAd,aAAkCgH,MAAQtgG,GAAIA,EAAA5J,OAAA,I,IACpD,IAAA4yB,EAAA,EAAAA,EAAmBoxE,EAAed,aAAAljG,OAAA4yB,IAAA,C,MAChCyzD,EAAAqnC,EAA0B96F,GAAKyzD,S,MAEhB2d,EAASd,aAAUtwE,G,EACb,G,QACnBm2E,KAAA+kB,EAAAC,EAAA9tH,KAAAomF,EAAA2nC,UAAAjlB,WACF5yD,QAAA0qD,IAAAktB,IAEHvuH,SAAAguH,IAEDH,EAA0BptH,KAAOk1F,0CAAW,EAAAxjD,OAAAjxC,SAAA,GAAA8sH,GAAA,CAG3C3f,YAAAxnB,EAA6BjE,WAC1B0rB,SAAcznB,EAAA2iB,UACf,G,EAIsD,C,GACrB,G,EAAThpG,QAASytH,EAenCJ,EAAArtH,OAAA,GAAAqtH,EAAA7tH,SAAAguH,IACJS,6BAAAnhB,EAAAsgB,EAAAI,EAAAC,EAAA,GAAApB,EAAA,UAICiB,EAAwB9tH,SAASguH,IAE7BvnG,QAAAuL,IAAA,EAAcg8F,GACdS,6BAAenhB,EAAgBsgB,EAAiBI,EAAWC,EAAM,GAAApB,EAAA,c,KAtBjEtlB,EAAY,G,GACb+F,aAAAZ,0CAAAnF,EAAA,cACD,CACA,MAAM2mB,QAAA5gB,EAAAzG,oBAAAwE,0BAIJ9D,SADF2mB,EAAA,GAAAnnB,eACSxnF,KAAY3d,aACnB,CAGJgsH,EAAA5uB,UAA6B,sBAAeuI,O,WAgBxCmnB,sEAEJ,MAAGlB,EAAkBhgC,SAAA4Q,cAAsB,sB,MAG1BovB,EAAiBjvB,iBAAW,aAAA/9F,OAGzCmkH,EAAA6I,EAAmBjvB,iBAAA,WAAA/9F,OAEpBmuH,EAAgBnB,EAAwBjvB,iBAAiB,sBACzC/9F,O,EAEAgtH,EAAiBjvB,iBAAW,oBAAA/9F,OAEhDouH,EAAA1wB,yCAAA,yBAED2wB,GAASF,GAAgC,GAAhCE,EAAuDD,EAAqBzY,UAAA/1G,IAAA,YACnFwuH,EAAmBzY,UAAAC,OAAA,Y,IACjB0Y,EAAqB5wB,yCAAkB,2BAEvCymB,GAAAoK,GAAA,GAAApK,EAAAmK,EAA+C3Y,UAAA/1G,IAAA,YAE/C0uH,EAAA3Y,UAAAC,OAAA,W,UAEH4Y,qDAAAC,EAAA5B,GAED,OAAS,WACP4B,EAAO9Y,UAAgBkC,OAAc,YACnCqW,sEACAtB,sDAAuBC,E,qEAGf/f,G,OACPluG,eAAAwrD,G,GACDA,EAAIgtD,iBAEqBtZ,0CAAqC,uBAAA99F,OAAA,E,IAQ5D,MAAG+jG,QAAiB+I,EAAAzG,oBAClBnC,oBAIF,IAAAwqB,EAA8B1hC,SAAK4Q,cAAA,oBAE/B+wB,EAAgB1qG,SAAUyqG,EAAkBlwB,WAChDowB,EAAsC5hC,SAAA4Q,cAAe,qCAGrD+wB,EAFsB1qG,SAAiB2qG,EAA+BpwB,YAEtBmB,0CAAA,6CAEhD,MAAM+K,QAAKmkB,+CAAA/hB,GACXgiB,EAAAjvH,MAAAC,KAAA4qG,EAAA3qG,UAAQmqG,MAAah7C,KAAA47C,YAAA9qG,OAAA,IACtB,IAAA05G,GAAA,IAAAC,MAAAC,UAAA,IAGJ,KADEF,EAAA3V,EAAAmJ,cACF4hB,EAAA,MAAAxtH,MAAA,oBAODwrG,EAAelC,iBAAAF,EAGb,CAFA,MAAAz2D,GACA2rD,0CAAqC3rD,EACrC,MAlCQ0rD,0CAAmC,mCAmC3C,C,gBAEQkvB,+CAAwD/hB,G,cAGzCA,EAAAzG,oBAAAwE,0B,MAEpB,IAAAjuB,IAkCH,O,EAjCEp9E,SAAAuvH,IAEE,MAAA3sC,EAAkB2sC,EAAA1oC,SAAAjE,WACtB1xD,EAAAhK,IAAe07D,EAAS,CAClB0oB,YAAA,GACAE,cAAU,IAEd,IAEIwhB,qCAAuEzuB,iBAAA,sBAE3Ev+F,SAAAguH,IACA,IACAwB,EADAxB,EAAA5vB,cAAA,aACAY,UACAywB,EAAAzB,EAAA5vB,cAAA,qBACGxb,EAACorC,EAAA0B,aAA0B,eAC9BC,EAAAz+F,EAAApyB,IAAA8jF,GAQK+sC,KAKDF,aAA+B,EAAcA,EAAmCtZ,UAAAyI,SAAA,WAAA+Q,EAAAnkB,cAAA/qG,KAAA+uH,GAChFG,EAA0BrkB,YAAA7qG,KAAA+uH,GAAA,IAGhCt+F,C,UAGA0+F,8DAAwCX,EAAA1G,EAA8BC,EAAa6E,GACpF,MAAAwC,EAAA7C,qCAAA5uB,cAAA,qBAEQ8wB,EAAAlC,qCAAiC5uB,cAAwC,8BAEhFyxB,EAAM1Z,UAAAC,OAAwB,UAE9B8Y,EAAA/Y,UAAAC,OAAA,UACAmS,EACEz6D,iBAAA,QAAsBkhE,qDAA0BC,EAAA5B,IAGlD7E,EAAW16D,iBAAX,QAAWkhE,qDAAmBC,EAAS5B,G,UAKpCyC,uDACqCxiB,EAAW2gB,EAAA/oC,EAAA+pC,EAAAtrH,EAAA4kH,EAAAC,G,MAEjDuH,EAAa/C,qCAA2B5uB,cAAA,kBAI5Cz6F,EAAA,GAAeosH,EAAA5Z,UAAOC,OAAsC,UAC1DmS,SAAuBA,EAAAz6D,iBAAG,QAAAkiE,+BAAoB1iB,EAAA2hB,IAC9C/pC,GAAMsjC,EAAa16D,iBAAwB,QAAqBmiE,iCAAA3iB,EAAA2hB,IAEhEhB,EAAW1F,EAAazpB,aAAmB,WAAY,YAElDypB,EAAI5N,gBAAA,W,gBAEE8T,6BAA4BnhB,EAAa8b,EAClD4E,EAAAC,EAAWp2B,EAAiBg1B,EAAcjqC,EAAWsC,GAAU,GAGjE,MAEA+pC,EAF2B/wB,yCAAiB,qBAEZwkB,WAAY,GAE5CuM,EAAInwB,aAAa,cAAWkvB,EAAc3f,aAC1C,IAAA1qG,EAAA,EAEA,MAAM6rH,GAA8C,GAAtCxB,EAAc3kB,SAAS1rF,QAAO,KAAYqwG,EAAM3kB,SAAOlpG,MAAQ,KAAC,GAAM6tH,EAAM3kB,SAC1F,KAAI1lG,EAAGsrH,EAAA1wB,iBAAA,aAAA/9F,OAAAmD,IAAAsrH,EAAA1wB,iBAAA,aAAA56F,GAAAq7F,UAAAwwB,EACsBxC,qCAAS5uB,cAAA,kBAC1B+X,UAAW/1G,IAAW,U,MAGtB6uH,EAAW7wB,cAAc,0BAGrC,MAAA8xB,GAAmD,GAAvClC,EAAAnmB,SAAkB0G,MAAM5wF,QAAS,KAAMqwG,EAAAnmB,SAAA0G,MAAApuG,MAAA,QAAA6tH,EAAAnmB,SAAA0G,MAGnD,IAAIl/E,EACJ5I,QAAIuL,IAAA,EAAAk+F,EAAgBlC,EAAA1f,UACTj/E,EAAR6gG,EAAQjlF,WAAA,YAAAilF,EACTlC,EAAA1f,SAAe,IAAU4hB,E,SACWC,EAAArxB,aAAA,MAAAzvE,G,EAEjCyvE,aAAY,MAAAkvB,EAAAnmB,SAAoB0G,O,MACvB0gB,EAAW7wB,cAAa,qB,EACvB6wB,EAAU7wB,cAAO,uBAsBhC,G,GAnBCoqB,EAAMrS,UAAAC,OAAA,UACLmS,EAAApS,UAAe/1G,IAAU,UACZ,qBAAbysH,IAEGoC,EAAQ9Y,UAAI/1G,IAAA,UACb6uH,EAAW9Y,UAAUC,OAAI,eAG5BoS,EAAArS,UAAA/1G,IAAA,UAGEmoH,EAAQpS,UAAKC,OACd,UACgB,qBAAXyW,IACLoC,EAAM9Y,UAAiB/1G,IAAM,YAC7B6uH,EAAe9Y,UAAGC,OAAA,YAIH,iBAAjByW,EAA4BiD,uDAAAxiB,EAAA2gB,EAAA/oC,EAAA+pC,EAAAtrH,EAAA4kH,EAAAC,QAC5B,yBAAAqE,GAAmBvf,aAAW7C,0CAAA,CAI9BmlB,8DAAoCX,EAAA1G,EAAAC,EAD7BjsB,iDAFR+Q,EAAAzG,oBAAAnC,qBAE2EmG,c,GAGtEkG,OAAMke,G,yCACNA,E,yCAGiB3hB,EAAuBogB,G,sBACxC9iE,G,IAGAA,EAAAgtD,iBACE7X,0CAAsB,kB,MACrBwJ,EAAAmkB,EAAAtvB,cAAA,aAAAY,gBAEEsO,EAAA1C,uBAAoCwlB,kBAAc9iB,EAASzG,oBAAAhgB,SAAAjE,WAAA2mB,GAE5DrJ,0CAAmC,2BACzB5B,0CAA2B,aACzCt+F,SAAcqwH,IACdA,EAAWjyB,cAAA,qBAAAU,aAAA,0BAEZ4uB,EAAAtvB,cAAA,qBAAA+X,UAAA/1G,IAAA,UACF,IAAAooH,EAAAkF,EAAAtvB,cAAA,uBACFoqB,EAAA7N,gBAAA,YAEQ6N,EAAA16D,iBAAW,QAAsCmiE,iCAAqB3iB,EAAAogB,G,CAC7E,MAAOj5E,GACD2rD,0CAAA3rD,E,6CAMkB64D,EAAYogB,G,sBAGhC9iE,G,IAGAA,EAAAgtD,iBACE7X,0CAAgC,oBAChCuN,aAAsBZ,gDAASY,EAAAzG,oBAAAhgB,SAAAwc,aAAAiK,EAAA1L,OAAAxV,gBACjCkhB,aAAA7C,iDAAA6C,EAAAgjB,gBACApwB,0CAAA,6BACAwtB,EAAAtvB,cAAA,uBAA0C+X,UAAA/1G,IAAA,UAC1Ck+F,0CAAoE,qBAAAt+F,SAAAkd,IACpEA,EAASy9F,gBAAE,YACXz9F,EAAAi5F,UAAAC,OAAA,YAaL,CALO,MAAA3hE,GAEM2rD,0CAAsC3rD,EAGnD,CAED,C,UAGM87E,8CAGL,MAAAC,EAAAxD,qCAAAzuB,iBAAA,oBAED,QAAS56F,EAAA,EAAAA,EAAA6sH,EAAchwH,OAAAmD,IAAA6sH,EAAA7sH,GAAAwyG,UAAA/1G,IAAA,S,UAEnBqwH,8C,MAEAC,EAAyC1D,qCAAAzuB,iBAAA,6B,IAEzC,IAAI56F,EAAA,EAAOA,EAAC+sH,EAAsBlwH,OAAAmD,IAAA+sH,EAA+B/sH,GAAAwyG,UAAkBC,OAAI,W,8DAIrFxrD,G,EACAgtD,iB,IACDkQ,EAAAl9D,EAAAvwC,OACF,qBAAAytG,EAAA4H,aAAA,+BAAA5H,EAAA4H,aAAA,QACFxxB,yCAAA,aAAAc,UAAA,GAEKd,yCAAiB,sBAAAiY,UAAE/1G,IAAC,UAC1BmwH,8CAEAE,8CAEA,C,eAvxBkBrxH,iB,IAEH63F,2CAOXgL,0CAAqB5iG,YAAiB4iG,0CAAS/K,0CAA8BD,4CAC7E+K,gDAAAnM,0BAAyDjH,QAAAxwF,OAAAiqE,OAAA,CACzDujB,KAAA,CAEIrgD,SAAA,IAAAsqD,0BAAuCxqD,UAAA3sC,8BAE3CujG,4CAGAqpB,2CAAex9D,iBAAA,QAAAu9D,qDAEfC,2CAAmBltB,cAAA,QAAAtwC,iBAAA,QAAAu9D,qDACnB,IAAAsF,EAAYzyB,yCAAA,mCAIZ0yB,EAAAvsG,cAA2BwpF,0CAAA,YAAA2L,OAAAM,QAAA,GAC3B6W,EAAA3xB,UAAA,KAAA4xB,IAOA11B,0CAAM7C,WAAA4J,0CAAA5iG,WACFm7F,0CAAuBwlB,yCAAAC,6CAI3BsD,YAAMpH,kCAAsB,GAAA7E,qCAGxB0F,oDAEJ,IAAAJ,GAAA,EAEIlM,4C,MAEFxJ,EAAA,IAAAhF,0CADwC,WAAxCjL,0CAAwCf,0CAAAE,0C,IAExCy6B,QAAA3pB,EAAM4pB,kB,GAENtjC,SAAA4Q,cAA6C,6BAC7CY,UAA8BpB,0CAAArB,0CAAAs0B,IAAA1wH,MAAA,QAE9B62G,8CAAc9qB,aAAA,CAId6qB,0CAAyB,IAAAhe,0CAAOie,+CAGhCE,kCAAAH,0CAAY3qB,eACZ2S,yCAAY,cAAAmY,yCACZc,mCAAAjB,2CAGA7P,EAAAtF,OAAAmV,0CACA,MAAAoY,QAAAjoB,EAAApB,cAAoDoR,mCAEhDnY,yCAAmB,gCADjBnB,0CAAgCrB,gDAAkCwa,0CAAoC9d,uBAExG8F,yCAAG,+BAAAhC,0CAAAoyB,EAAA,OACHpwB,yCAAS,iEAAAhC,0CAAAoyB,EAAA,O,MAGX4B,QAAc9vB,0CAAA+V,8CAAA/U,0CAAA1K,aAAA,Y,QACT,G,EAEJ,G,EAECv3F,SAASgxH,IAGX,MAAIv8E,IAAAw8E,EAAqB7uH,KAAEA,EAAAquC,OAAAygF,EAAAlwB,yBAAAgwB,E,GACzBC,EACAx8E,EAAGw8E,O,OAGOxgF,EAAQygF,G,EACF,C,WACPniF,MAAMoiF,KAAGnwB,EAAShkB,YAAiBH,QAAA,GAAA5C,aAAA18D,O,GACtCxD,M,QAAK,C,MACNmzF,EAAAlM,EAAAhkB,YAAAyH,Y,IACF,IAAA9gF,EAAA,EAAAA,EAAAs+F,0CAAAxK,MAAAj3F,OAAAmD,IAAA,CACF,MAAA2kG,EAAArG,0CAAAxK,MAAA9zF,GACI,GAAK2kG,EAAIpa,cAAAgf,EAAA,CACfxsF,EAAAwnB,MAAAogE,EAAA1Q,kBAEA,KAGD,CACQ,CAEF,CACDr6E,EAAG9c,KAAMigB,EAEd,K,EAKQy/E,0CAA4B1rD,EAAA,iBAAAhE,GACrB,oBAAfA,QACAs7E,kCAAAxuG,GACc,WAATkzB,QACLy7E,oCAA8B3uG,GAC9B,qBAAAkzB,EAAAyvD,0CAAY,uCACP,mBAAAzvD,GACLmsE,GAAY,EACZ1c,0CAAoC,sCACrC,iBAAAzvD,GAIDvd,OAAAgjF,eAAgBtrE,QAAA,yCACVs1D,0CAAgB,mCAElBz5E,QAAQuL,IAAG,SAAMye,GACjBhqB,QAAAuL,IAAA,OAAAzU,EAAA5c,KAAA,OAGR,YACEo3G,sCAEA,MAAAgI,QAAAvS,0CAA2BuJ,iDAC5BoU,kCAAApL,GACFpD,uCAAAC,EAMC,CAJF,MAAAhgB,GACMwD,0CAAoBxD,EACxB,SACMsB,yCAAiB,WAAAkB,MAAAC,QAAY,MACnC,C,6CA4oBoBnB,yCAAA,sB,qCACjBpwC,iBAAA,QAAAq/D,qCAGL,MAAMiE,qCAAkB9yB,0CAAM,kB,qCACPt+F,SAAAqxH,IACrBA,EAAMvjE,iBAAW,cAEjBwjE,uCAA2C,GAC3C,I","sources":["node_modules/near-api-js/lib/key_stores/browser-index.js","node_modules/near-api-js/lib/key_stores/keystore.js","node_modules/near-api-js/lib/key_stores/in_memory_key_store.js","node_modules/near-api-js/lib/utils/key_pair.js","node_modules/tweetnacl/nacl-fast.js","node_modules/near-api-js/lib/utils/serialize.js","node_modules/borsh/lib/index.js","node_modules/buffer/index.js","node_modules/base64-js/index.js","node_modules/ieee754/index.js","node_modules/bn.js/lib/bn.js","node_modules/bs58/index.js","node_modules/base-x/src/index.js","node_modules/safe-buffer/index.js","node_modules/text-encoding-utf-8/lib/encoding.lib.js","node_modules/near-api-js/lib/utils/enums.js","node_modules/near-api-js/lib/key_stores/browser_local_storage_key_store.js","node_modules/near-api-js/lib/key_stores/merge_key_store.js","node_modules/near-api-js/lib/common-index.js","node_modules/near-api-js/lib/providers/index.js","node_modules/near-api-js/lib/providers/provider.js","node_modules/near-api-js/lib/providers/json-rpc-provider.js","node_modules/depd/lib/browser/index.js","node_modules/near-api-js/lib/utils/web.js","node_modules/@swc/helpers/src/_object_spread.mjs","node_modules/@swc/helpers/src/_define_property.mjs","node_modules/http-errors/index.js","node_modules/http-errors/node_modules/depd/lib/browser/index.js","node_modules/setprototypeof/index.js","node_modules/statuses/index.js","node_modules/statuses/codes.json","node_modules/inherits/inherits_browser.js","node_modules/toidentifier/index.js","node_modules/near-api-js/lib/utils/exponential-backoff.js","node_modules/node-fetch/browser.js","node_modules/stream-http/index.js","node_modules/stream-http/lib/request.js","node_modules/process/browser.js","node_modules/stream-http/lib/capability.js","node_modules/stream-http/lib/response.js","node_modules/readable-stream/readable-browser.js","node_modules/readable-stream/lib/_stream_readable.js","node_modules/events/events.js","node_modules/readable-stream/lib/internal/streams/stream-browser.js","node_modules/readable-stream/lib/internal/streams/buffer_list.js","node_modules/readable-stream/lib/internal/streams/destroy.js","node_modules/readable-stream/lib/internal/streams/state.js","node_modules/readable-stream/errors-browser.js","node_modules/readable-stream/lib/_stream_duplex.js","node_modules/readable-stream/lib/_stream_writable.js","node_modules/util-deprecate/browser.js","node_modules/string_decoder/lib/string_decoder.js","node_modules/readable-stream/lib/internal/streams/async_iterator.js","node_modules/readable-stream/lib/internal/streams/end-of-stream.js","node_modules/readable-stream/lib/internal/streams/from-browser.js","node_modules/readable-stream/lib/_stream_transform.js","node_modules/readable-stream/lib/_stream_passthrough.js","node_modules/readable-stream/lib/internal/streams/pipeline.js","node_modules/xtend/immutable.js","node_modules/builtin-status-codes/browser.js","node_modules/url/url.js","node_modules/punycode/punycode.js","node_modules/url/util.js","node_modules/querystring-es3/index.js","node_modules/querystring-es3/decode.js","node_modules/querystring-es3/encode.js","node_modules/https-browserify/index.js","node_modules/near-api-js/lib/utils/errors.js","node_modules/near-api-js/lib/utils/rpc_errors.js","node_modules/mustache/mustache.js","node_modules/near-api-js/lib/generated/rpc_error_schema.json","node_modules/near-api-js/lib/res/error_messages.json","node_modules/near-api-js/lib/generated/rpc_error_types.js","node_modules/near-api-js/lib/utils/index.js","node_modules/near-api-js/lib/utils/network.js","node_modules/near-api-js/lib/utils/format.js","node_modules/near-api-js/lib/transaction.js","node_modules/js-sha256/src/sha256.js","node_modules/near-api-js/lib/validators.js","node_modules/near-api-js/lib/account.js","node_modules/near-api-js/lib/account_multisig.js","node_modules/near-api-js/lib/contract.js","node_modules/near-api-js/lib/account_creator.js","node_modules/near-api-js/lib/connection.js","node_modules/near-api-js/lib/signer.js","node_modules/near-api-js/lib/near.js","node_modules/near-api-js/lib/wallet-account.js","node_modules/near-api-js/lib/browser-connect.js","node_modules/error-polyfill/lib/index.js","node_modules/capability/es5.js","node_modules/capability/index.js","node_modules/capability/lib/definitions.js","node_modules/capability/lib/index.js","node_modules/capability/lib/CapabilityDetector.js","node_modules/error-polyfill/lib/v8.js","node_modules/error-polyfill/lib/prepareStackTrace.js","node_modules/error-polyfill/lib/non-v8/index.js","node_modules/error-polyfill/lib/non-v8/FrameStringSource.js","node_modules/o3/index.js","node_modules/o3/lib/index.js","node_modules/o3/lib/Class.js","node_modules/o3/lib/abstractMethod.js","node_modules/u3/index.js","node_modules/u3/lib/index.js","node_modules/u3/lib/cache.js","node_modules/u3/lib/eachCombination.js","node_modules/error-polyfill/lib/non-v8/FrameStringParser.js","node_modules/error-polyfill/lib/non-v8/Frame.js","node_modules/error-polyfill/lib/unsupported.js","src/index.ts","node_modules/@swc/helpers/src/_object_spread_props.mjs","node_modules/near-api-js/lib/browser-index.js","node_modules/error-polyfill/index.js","src/config.ts","src/wallet-api/disconnected-wallet.ts","src/wallet-api/util.ts","src/wallet-api/near-web-wallet/near-web-wallet.ts","src/wallet-api/narwallets/narwallets.ts","src/wallet-api/batch-transaction.ts","src/util/conversions.ts","src/util/document.ts","src/wallet-api/near-web-wallet/checkRedirectSearchParams.ts","src/wallet-api/base-smart-contract.ts","src/contracts/NEP141.ts","src/entities/poolParams.ts","src/entities/PoolEntities.ts","src/contracts/nearHardcodedObjects.ts","src/contracts/p2-staking.ts","src/contracts/p3-staking.ts","src/contracts/p3-structures.ts","src/entities/poolParamsNFT.ts","src/contracts/multipleCall.ts","src/contracts/NFTContract.ts","src/entities/PoolEntitiesNFT.ts","src/contracts/nft-staking.ts","src/entities/poolParamsP3.ts","src/entities/poolList.ts","src/util/oracle.ts","src/contracts/nft-structs.ts","src/util/animations/liquidityButton.ts","src/util/animations/new-confetti-button.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.BrowserLocalStorageKeyStore = exports.InMemoryKeyStore = exports.KeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nconst in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nconst browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\nconst merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\n/**\n * Key store interface for `InMemorySigner`.\n */\nclass KeyStore {\n}\nexports.KeyStore = KeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nconst key_pair_1 = require(\"../utils/key_pair\");\n/**\n * Simple in-memory keystore for testing purposes.\n */\nclass InMemoryKeyStore extends keystore_1.KeyStore {\n constructor() {\n super();\n this.keys = {};\n }\n /**\n * Sets an in-memory storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n this.keys[`${accountId}:${networkId}`] = keyPair.toString();\n }\n /**\n * Gets a key from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n async getKey(networkId, accountId) {\n const value = this.keys[`${accountId}:${networkId}`];\n if (!value) {\n return null;\n }\n return key_pair_1.KeyPair.fromString(value);\n }\n /**\n * Removes a key from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n delete this.keys[`${accountId}:${networkId}`];\n }\n /**\n * Sets all in-memory keys to empty objects\n */\n async clear() {\n this.keys = {};\n }\n /**\n * Get the network(s) from in-memory storage\n * @returns {Promise}\n */\n async getNetworks() {\n const result = new Set();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n result.add(parts[1]);\n });\n return Array.from(result.values());\n }\n /**\n * Gets the account(s) from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise}\n */\n async getAccounts(networkId) {\n const result = new Array();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n if (parts[parts.length - 1] === networkId) {\n result.push(parts.slice(0, parts.length - 1).join(':'));\n }\n });\n return result;\n }\n toString() {\n return 'InMemoryKeyStore';\n }\n}\nexports.InMemoryKeyStore = InMemoryKeyStore;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.KeyType = void 0;\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nconst serialize_1 = require(\"./serialize\");\nconst enums_1 = require(\"./enums\");\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends enums_1.Assignable {\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new PublicKey({ keyType: KeyType.ED25519, data: serialize_1.base_decode(parts[0]) });\n }\n else if (parts.length === 2) {\n return new PublicKey({ keyType: str_to_key_type(parts[0]), data: serialize_1.base_decode(parts[1]) });\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n toString() {\n return `${key_type_to_str(this.keyType)}:${serialize_1.base_encode(this.data)}`;\n }\n}\nexports.PublicKey = PublicKey;\nclass KeyPair {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n}\nexports.KeyPair = KeyPair;\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends KeyPair {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param {string} secretKey\n */\n constructor(secretKey) {\n super();\n const keyPair = tweetnacl_1.default.sign.keyPair.fromSecretKey(serialize_1.base_decode(secretKey));\n this.publicKey = new PublicKey({ keyType: KeyType.ED25519, data: keyPair.publicKey });\n this.secretKey = secretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const newKeyPair = tweetnacl_1.default.sign.keyPair();\n return new KeyPairEd25519(serialize_1.base_encode(newKeyPair.secretKey));\n }\n sign(message) {\n const signature = tweetnacl_1.default.sign.detached(message, serialize_1.base_decode(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n verify(message, signature) {\n return tweetnacl_1.default.sign.detached.verify(message, signature, this.publicKey.data);\n }\n toString() {\n return `ed25519:${this.secretKey}`;\n }\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar borsh_1 = require(\"borsh\");\nObject.defineProperty(exports, \"base_encode\", { enumerable: true, get: function () { return borsh_1.baseEncode; } });\nObject.defineProperty(exports, \"base_decode\", { enumerable: true, get: function () { return borsh_1.baseDecode; } });\nObject.defineProperty(exports, \"serialize\", { enumerable: true, get: function () { return borsh_1.serialize; } });\nObject.defineProperty(exports, \"deserialize\", { enumerable: true, get: function () { return borsh_1.deserialize; } });\nObject.defineProperty(exports, \"BorshError\", { enumerable: true, get: function () { return borsh_1.BorshError; } });\nObject.defineProperty(exports, \"BinaryWriter\", { enumerable: true, get: function () { return borsh_1.BinaryWriter; } });\nObject.defineProperty(exports, \"BinaryReader\", { enumerable: true, get: function () { return borsh_1.BinaryReader; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst TextDecoder = (typeof global.TextDecoder !== 'function') ? encoding.TextDecoder : global.TextDecoder;\nconst textDecoder = new TextDecoder('utf-8', { fatal: true });\nfunction baseEncode(value) {\n if (typeof (value) === 'string') {\n value = Buffer.from(value, 'utf8');\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + ': ' + this.fieldPath.join('.');\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 16)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([Buffer.from(this.buf.subarray(0, this.length)), buffer, Buffer.alloc(INITIAL_LENGTH)]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, 'utf8');\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if (['ERR_BUFFER_OUT_OF_BOUNDS', 'ERR_OUT_OF_RANGE'].indexOf(code) >= 0) {\n throw new BorshError('Reached the end of buffer when deserializing');\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, 'le');\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, 'le');\n }\n readBuffer(len) {\n if ((this.offset + len) > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === 'string') {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === 'number') {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else {\n writer.writeArray(value, (item) => { serializeField(schema, fieldName, item, fieldType[0], writer); });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case 'option': {\n if (value === null) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n default: throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === 'struct') {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === 'enum') {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj) {\n const writer = new BinaryWriter();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === 'string') {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === 'number') {\n return reader.readFixedArray(fieldType[0]);\n }\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === 'struct') {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === 'enum') {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer) {\n const reader = new BinaryReader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexports.TextEncoder = TextEncoder;\nexports.TextDecoder = TextDecoder;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = exports.Enum = void 0;\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nexports.Enum = Enum;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nconst key_pair_1 = require(\"../utils/key_pair\");\nconst LOCAL_STORAGE_KEY_PREFIX = 'near-api-js:keystore:';\nclass BrowserLocalStorageKeyStore extends keystore_1.KeyStore {\n constructor(localStorage = window.localStorage, prefix = LOCAL_STORAGE_KEY_PREFIX) {\n super();\n this.localStorage = localStorage;\n this.prefix = prefix;\n }\n /**\n * Sets a local storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n this.localStorage.setItem(this.storageKeyForSecretKey(networkId, accountId), keyPair.toString());\n }\n /**\n * Gets a key from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n async getKey(networkId, accountId) {\n const value = this.localStorage.getItem(this.storageKeyForSecretKey(networkId, accountId));\n if (!value) {\n return null;\n }\n return key_pair_1.KeyPair.fromString(value);\n }\n /**\n * Removes a key from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n this.localStorage.removeItem(this.storageKeyForSecretKey(networkId, accountId));\n }\n /**\n * Removes all items from local storage\n */\n async clear() {\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n this.localStorage.removeItem(key);\n }\n }\n }\n /**\n * Get the network(s) from local storage\n * @returns {Promise}\n */\n async getNetworks() {\n const result = new Set();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n result.add(parts[1]);\n }\n }\n return Array.from(result.values());\n }\n /**\n * Gets the account(s) from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise}\n */\n async getAccounts(networkId) {\n const result = new Array();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n if (parts[1] === networkId) {\n result.push(parts[0]);\n }\n }\n }\n return result;\n }\n /**\n * Helper function to retrieve a local storage key\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the storage keythat's sought\n * @returns {string} An example might be: `near-api-js:keystore:near-friend:default`\n */\n storageKeyForSecretKey(networkId, accountId) {\n return `${this.prefix}${accountId}:${networkId}`;\n }\n *storageKeys() {\n for (let i = 0; i < this.localStorage.length; i++) {\n yield this.localStorage.key(i);\n }\n }\n}\nexports.BrowserLocalStorageKeyStore = BrowserLocalStorageKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\n/**\n * Keystore which can be used to merge multiple key stores into one virtual key store.\n */\nclass MergeKeyStore extends keystore_1.KeyStore {\n /**\n * @param keyStores first keystore gets all write calls, read calls are attempted from start to end of array\n */\n constructor(keyStores) {\n super();\n this.keyStores = keyStores;\n }\n /**\n * Sets a storage item to the first index of a key store array\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n await this.keyStores[0].setKey(networkId, accountId, keyPair);\n }\n /**\n * Gets a key from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n async getKey(networkId, accountId) {\n for (const keyStore of this.keyStores) {\n const keyPair = await keyStore.getKey(networkId, accountId);\n if (keyPair) {\n return keyPair;\n }\n }\n return null;\n }\n /**\n * Removes a key from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n for (const keyStore of this.keyStores) {\n await keyStore.removeKey(networkId, accountId);\n }\n }\n /**\n * Removes all items from each key store\n */\n async clear() {\n for (const keyStore of this.keyStores) {\n await keyStore.clear();\n }\n }\n /**\n * Get the network(s) from the array of key stores\n * @returns {Promise}\n */\n async getNetworks() {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const network of await keyStore.getNetworks()) {\n result.add(network);\n }\n }\n return Array.from(result);\n }\n /**\n * Gets the account(s) from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise}\n */\n async getAccounts(networkId) {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const account of await keyStore.getAccounts(networkId)) {\n result.add(account);\n }\n }\n return Array.from(result);\n }\n toString() {\n return `MergeKeyStore(${this.keyStores.join(', ')})`;\n }\n}\nexports.MergeKeyStore = MergeKeyStore;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.WalletAccount = exports.ConnectedWalletAccount = exports.Near = exports.KeyPair = exports.Signer = exports.InMemorySigner = exports.Contract = exports.Connection = exports.Account = exports.multisig = exports.validators = exports.transactions = exports.utils = exports.providers = exports.accountCreator = void 0;\nconst providers = __importStar(require(\"./providers\"));\nexports.providers = providers;\nconst utils = __importStar(require(\"./utils\"));\nexports.utils = utils;\nconst transactions = __importStar(require(\"./transaction\"));\nexports.transactions = transactions;\nconst validators = __importStar(require(\"./validators\"));\nexports.validators = validators;\nconst account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nconst multisig = __importStar(require(\"./account_multisig\"));\nexports.multisig = multisig;\nconst accountCreator = __importStar(require(\"./account_creator\"));\nexports.accountCreator = accountCreator;\nconst connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nconst signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signer_1.InMemorySigner; } });\nconst contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nconst key_pair_1 = require(\"./utils/key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nconst near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\n// TODO: Deprecate and remove WalletAccount\nconst wallet_account_1 = require(\"./wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletAccount\", { enumerable: true, get: function () { return wallet_account_1.WalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.getTransactionLastResult = exports.FinalExecutionStatusBasic = exports.JsonRpcProvider = exports.Provider = void 0;\nconst provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return provider_1.getTransactionLastResult; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return provider_1.FinalExecutionStatusBasic; } });\nconst json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return json_rpc_provider_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return json_rpc_provider_1.ErrorContext; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = exports.Provider = exports.IdType = exports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\nclass Provider {\n}\nexports.Provider = Provider;\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = exports.ErrorContext = exports.TypedError = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst provider_1 = require(\"./provider\");\nconst web_1 = require(\"../utils/web\");\nconst errors_1 = require(\"../utils/errors\");\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return errors_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return errors_1.ErrorContext; } });\nconst borsh_1 = require(\"borsh\");\nconst exponential_backoff_1 = __importDefault(require(\"../utils/exponential-backoff\"));\nconst rpc_errors_1 = require(\"../utils/rpc_errors\");\n// Default number of retries before giving up on a request.\nconst REQUEST_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst REQUEST_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst REQUEST_RETRY_WAIT_BACKOFF = 1.5;\n/// Keep ids unique across all connections.\nlet _nextId = 123;\nclass JsonRpcProvider extends provider_1.Provider {\n constructor(url) {\n super();\n this.connection = { url };\n }\n /**\n * Get the current network (ex. test, beta, etc…)\n * @returns {Promise}\n */\n async getNetwork() {\n return {\n name: 'test',\n chainId: 'test'\n };\n }\n /**\n * Gets the RPC's status\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n * @returns {Promise}\n */\n async status() {\n return this.sendJsonRpc('status', []);\n }\n /**\n * Sends a signed transaction to the RPC\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n async sendTransaction(signedTransaction) {\n const bytes = signedTransaction.encode();\n return this.sendJsonRpc('broadcast_tx_commit', [Buffer.from(bytes).toString('base64')]);\n }\n /**\n * Gets a transaction's status from the RPC\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @returns {Promise}\n */\n async txStatus(txHash, accountId) {\n return this.sendJsonRpc('tx', [borsh_1.baseEncode(txHash), accountId]);\n }\n /**\n * Query the RPC as [shown in the docs](https://docs.near.org/docs/develop/front-end/rpc#accounts--contracts)\n */\n async query(...args) {\n let result;\n if (args.length === 1) {\n result = await this.sendJsonRpc('query', args[0]);\n }\n else {\n const [path, data] = args;\n result = await this.sendJsonRpc('query', [path, data]);\n }\n if (result && result.error) {\n throw new errors_1.TypedError(`Querying ${args} failed: ${result.error}.\\n${JSON.stringify(result, null, 2)}`, rpc_errors_1.getErrorTypeFromErrorMessage(result.error));\n }\n return result;\n }\n /**\n * Query for block info from the RPC\n * See [docs for more info](https://docs.near.org/docs/interaction/rpc#block)\n */\n async block(blockQuery) {\n const { finality } = blockQuery;\n let { blockId } = blockQuery;\n if (typeof blockQuery !== 'object') {\n const deprecate = depd_1.default('JsonRpcProvider.block(blockId)');\n deprecate('use `block({ blockId })` or `block({ finality })` instead');\n blockId = blockQuery;\n }\n return this.sendJsonRpc('block', { block_id: blockId, finality });\n }\n /**\n * Queries for details of a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * See [docs for more info](https://docs.near.org/docs/interaction/rpc#chunk)\n * @param chunkId Hash of a chunk ID or shard ID\n * @returns {Promise}\n */\n async chunk(chunkId) {\n return this.sendJsonRpc('chunk', [chunkId]);\n }\n /**\n * Query validators of the epoch defined by given block id.\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#detailed-validator-status)\n * @param blockId Block hash or height, or null for latest.\n */\n async validators(blockId) {\n return this.sendJsonRpc('validators', [blockId]);\n }\n /**\n * Gets EXPERIMENTAL_genesis_config from RPC\n * @returns {Promise}\n */\n async experimental_genesisConfig() {\n const deprecate = depd_1.default('JsonRpcProvider.experimental_protocolConfig({ sync_checkpoint: \\'genesis\\' })');\n deprecate('use `experimental_protocolConfig` to fetch the up-to-date or genesis protocol config explicitly');\n return await this.sendJsonRpc('EXPERIMENTAL_protocol_config', { sync_checkpoint: 'genesis' });\n }\n /**\n * Gets EXPERIMENTAL_protocol_config from RPC\n * @returns {Promise}\n */\n async experimental_protocolConfig(blockReference) {\n return await this.sendJsonRpc('EXPERIMENTAL_protocol_config', blockReference);\n }\n /**\n * Gets light_client_proof from RPC (https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n * @returns {Promise}\n * @deprecated Use `lightClientProof` instead\n */\n async experimental_lightClientProof(request) {\n const deprecate = depd_1.default('JsonRpcProvider.experimental_lightClientProof(request)');\n deprecate('use `lightClientProof` instead');\n return await this.lightClientProof(request);\n }\n /**\n * Gets light_client_proof from RPC (https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n * @returns {Promise}\n */\n async lightClientProof(request) {\n return await this.sendJsonRpc('EXPERIMENTAL_light_client_proof', request);\n }\n /**\n * Directly call the RPC specifying the method and params\n * @param method RPC method\n * @param params Parameters to the method\n */\n async sendJsonRpc(method, params) {\n const result = await exponential_backoff_1.default(REQUEST_RETRY_WAIT, REQUEST_RETRY_NUMBER, REQUEST_RETRY_WAIT_BACKOFF, async () => {\n try {\n const request = {\n method,\n params,\n id: (_nextId++),\n jsonrpc: '2.0'\n };\n const response = await web_1.fetchJson(this.connection, JSON.stringify(request));\n if (response.error) {\n if (typeof response.error.data === 'object') {\n if (typeof response.error.data.error_message === 'string' && typeof response.error.data.error_type === 'string') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n throw new errors_1.TypedError(response.error.data.error_message, response.error.data.error_type);\n }\n throw rpc_errors_1.parseRpcError(response.error.data);\n }\n else {\n const errorMessage = `[${response.error.code}] ${response.error.message}: ${response.error.data}`;\n // NOTE: All this hackery is happening because structured errors not implemented\n // TODO: Fix when https://github.com/nearprotocol/nearcore/issues/1839 gets resolved\n if (response.error.data === 'Timeout' || errorMessage.includes('Timeout error')\n || errorMessage.includes('query has timed out')) {\n throw new errors_1.TypedError(errorMessage, 'TimeoutError');\n }\n throw new errors_1.TypedError(errorMessage, rpc_errors_1.getErrorTypeFromErrorMessage(response.error.data));\n }\n }\n return response.result;\n }\n catch (error) {\n if (error.type === 'TimeoutError') {\n console.warn(`Retrying request to ${method} as it has timed out`, params);\n return null;\n }\n throw error;\n }\n });\n if (!result) {\n throw new errors_1.TypedError(`Exceeded ${REQUEST_RETRY_NUMBER} attempts for request to ${method}.`, 'RetriesExceeded');\n }\n return result;\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#gas-price)\n * @param blockId Block hash or height, or null for latest.\n */\n async gasPrice(blockId) {\n return await this.sendJsonRpc('gas_price', [blockId]);\n }\n}\nexports.JsonRpcProvider = JsonRpcProvider;\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nconst http_errors_1 = __importDefault(require(\"http-errors\"));\nconst exponential_backoff_1 = __importDefault(require(\"./exponential-backoff\"));\nconst providers_1 = require(\"../providers\");\nconst START_WAIT_TIME_MS = 1000;\nconst BACKOFF_MULTIPLIER = 1.5;\nconst RETRY_NUMBER = 10;\n// TODO: Move into separate module and exclude node-fetch kludge from browser build\nlet fetch;\nif (typeof window === 'undefined' || window.name === 'nodejs') {\n /* eslint-disable @typescript-eslint/no-var-requires */\n const nodeFetch = require('node-fetch');\n const http = require('http');\n const https = require('https');\n /* eslint-enable @typescript-eslint/no-var-requires */\n const httpAgent = new http.Agent({ keepAlive: true });\n const httpsAgent = new https.Agent({ keepAlive: true });\n function agent(_parsedURL) {\n if (_parsedURL.protocol === 'http:') {\n return httpAgent;\n }\n else {\n return httpsAgent;\n }\n }\n fetch = function (resource, init) {\n return nodeFetch(resource, { agent: agent(new URL(resource)), ...init });\n };\n}\nelse {\n fetch = window.fetch;\n}\nasync function fetchJson(connection, json) {\n let url = null;\n if (typeof (connection) === 'string') {\n url = connection;\n }\n else {\n url = connection.url;\n }\n const response = await exponential_backoff_1.default(START_WAIT_TIME_MS, RETRY_NUMBER, BACKOFF_MULTIPLIER, async () => {\n try {\n const response = await fetch(url, {\n method: json ? 'POST' : 'GET',\n body: json ? json : undefined,\n headers: { 'Content-Type': 'application/json; charset=utf-8' }\n });\n if (!response.ok) {\n if (response.status === 503) {\n console.warn(`Retrying HTTP request for ${url} as it's not available now`);\n return null;\n }\n throw http_errors_1.default(response.status, await response.text());\n }\n return response;\n }\n catch (error) {\n if (error.toString().includes('FetchError') || error.toString().includes('Failed to fetch')) {\n console.warn(`Retrying HTTP request for ${url} because of error: ${error}`);\n return null;\n }\n throw error;\n }\n });\n if (!response) {\n throw new providers_1.TypedError(`Exceeded ${RETRY_NUMBER} attempts for ${url}.`, 'RetriesExceeded');\n }\n return await response.json();\n}\nexports.fetchJson = fetchJson;\n","import defineProperty from './_define_property.mjs';\n\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","/*!\n * http-errors\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar deprecate = require('depd')('http-errors')\nvar setPrototypeOf = require('setprototypeof')\nvar statuses = require('statuses')\nvar inherits = require('inherits')\nvar toIdentifier = require('toidentifier')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = createError\nmodule.exports.HttpError = createHttpErrorConstructor()\nmodule.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError)\n\n// Populate exports for all constructors\npopulateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)\n\n/**\n * Get the code class of a status code.\n * @private\n */\n\nfunction codeClass (status) {\n return Number(String(status).charAt(0) + '00')\n}\n\n/**\n * Create a new HTTP Error.\n *\n * @returns {Error}\n * @public\n */\n\nfunction createError () {\n // so much arity going on ~_~\n var err\n var msg\n var status = 500\n var props = {}\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n if (arg instanceof Error) {\n err = arg\n status = err.status || err.statusCode || status\n continue\n }\n switch (typeof arg) {\n case 'string':\n msg = arg\n break\n case 'number':\n status = arg\n if (i !== 0) {\n deprecate('non-first-argument status code; replace with createError(' + arg + ', ...)')\n }\n break\n case 'object':\n props = arg\n break\n }\n }\n\n if (typeof status === 'number' && (status < 400 || status >= 600)) {\n deprecate('non-error status code; use only 4xx or 5xx status codes')\n }\n\n if (typeof status !== 'number' ||\n (!statuses[status] && (status < 400 || status >= 600))) {\n status = 500\n }\n\n // constructor\n var HttpError = createError[status] || createError[codeClass(status)]\n\n if (!err) {\n // create error\n err = HttpError\n ? new HttpError(msg)\n : new Error(msg || statuses[status])\n Error.captureStackTrace(err, createError)\n }\n\n if (!HttpError || !(err instanceof HttpError) || err.status !== status) {\n // add properties to generic error\n err.expose = status < 500\n err.status = err.statusCode = status\n }\n\n for (var key in props) {\n if (key !== 'status' && key !== 'statusCode') {\n err[key] = props[key]\n }\n }\n\n return err\n}\n\n/**\n * Create HTTP error abstract base class.\n * @private\n */\n\nfunction createHttpErrorConstructor () {\n function HttpError () {\n throw new TypeError('cannot construct abstract class')\n }\n\n inherits(HttpError, Error)\n\n return HttpError\n}\n\n/**\n * Create a constructor for a client error.\n * @private\n */\n\nfunction createClientErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ClientError (message) {\n // create the error object\n var msg = message != null ? message : statuses[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ClientError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ClientError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ClientError, HttpError)\n nameFunc(ClientError, className)\n\n ClientError.prototype.status = code\n ClientError.prototype.statusCode = code\n ClientError.prototype.expose = true\n\n return ClientError\n}\n\n/**\n * Create function to test is a value is a HttpError.\n * @private\n */\n\nfunction createIsHttpErrorFunction (HttpError) {\n return function isHttpError (val) {\n if (!val || typeof val !== 'object') {\n return false\n }\n\n if (val instanceof HttpError) {\n return true\n }\n\n return val instanceof Error &&\n typeof val.expose === 'boolean' &&\n typeof val.statusCode === 'number' && val.status === val.statusCode\n }\n}\n\n/**\n * Create a constructor for a server error.\n * @private\n */\n\nfunction createServerErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ServerError (message) {\n // create the error object\n var msg = message != null ? message : statuses[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ServerError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ServerError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ServerError, HttpError)\n nameFunc(ServerError, className)\n\n ServerError.prototype.status = code\n ServerError.prototype.statusCode = code\n ServerError.prototype.expose = false\n\n return ServerError\n}\n\n/**\n * Set the name of a function, if possible.\n * @private\n */\n\nfunction nameFunc (func, name) {\n var desc = Object.getOwnPropertyDescriptor(func, 'name')\n\n if (desc && desc.configurable) {\n desc.value = name\n Object.defineProperty(func, 'name', desc)\n }\n}\n\n/**\n * Populate the exports object with constructors for every error class.\n * @private\n */\n\nfunction populateConstructorExports (exports, codes, HttpError) {\n codes.forEach(function forEachCode (code) {\n var CodeError\n var name = toIdentifier(statuses[code])\n\n switch (codeClass(code)) {\n case 400:\n CodeError = createClientErrorConstructor(HttpError, name, code)\n break\n case 500:\n CodeError = createServerErrorConstructor(HttpError, name, code)\n break\n }\n\n if (CodeError) {\n // export the constructor\n exports[code] = CodeError\n exports[name] = CodeError\n }\n })\n\n // backwards-compatibility\n exports[\"I'mateapot\"] = deprecate.function(exports.ImATeapot,\n '\"I\\'mateapot\"; use \"ImATeapot\" instead')\n}\n\n/**\n * Get a class name from a name identifier.\n * @private\n */\n\nfunction toClassName (name) {\n return name.substr(-5) !== 'Error'\n ? name + 'Error'\n : name\n}\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","'use strict'\n/* eslint no-proto: 0 */\nmodule.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)\n\nfunction setProtoOf (obj, proto) {\n obj.__proto__ = proto\n return obj\n}\n\nfunction mixinProperties (obj, proto) {\n for (var prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n obj[prop] = proto[prop]\n }\n }\n return obj\n}\n","/*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar codes = require('./codes.json')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = status\n\n// status code to message map\nstatus.STATUS_CODES = codes\n\n// array of status codes\nstatus.codes = populateStatusesMap(status, codes)\n\n// status codes for redirects\nstatus.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n}\n\n// status codes for empty bodies\nstatus.empty = {\n 204: true,\n 205: true,\n 304: true\n}\n\n// status codes for when you should retry the request\nstatus.retry = {\n 502: true,\n 503: true,\n 504: true\n}\n\n/**\n * Populate the statuses map for given codes.\n * @private\n */\n\nfunction populateStatusesMap (statuses, codes) {\n var arr = []\n\n Object.keys(codes).forEach(function forEachCode (code) {\n var message = codes[code]\n var status = Number(code)\n\n // Populate properties\n statuses[status] = message\n statuses[message] = status\n statuses[message.toLowerCase()] = status\n\n // Add to array\n arr.push(status)\n })\n\n return arr\n}\n\n/**\n * Get the status code.\n *\n * Given a number, this will throw if it is not a known status\n * code, otherwise the code will be returned. Given a string,\n * the string will be parsed for a number and return the code\n * if valid, otherwise will lookup the code assuming this is\n * the status message.\n *\n * @param {string|number} code\n * @returns {number}\n * @public\n */\n\nfunction status (code) {\n if (typeof code === 'number') {\n if (!status[code]) throw new Error('invalid status code: ' + code)\n return code\n }\n\n if (typeof code !== 'string') {\n throw new TypeError('code must be a number or string')\n }\n\n // '403'\n var n = parseInt(code, 10)\n if (!isNaN(n)) {\n if (!status[n]) throw new Error('invalid status code: ' + n)\n return n\n }\n\n n = status[code.toLowerCase()]\n if (!n) throw new Error('invalid status message: \"' + code + '\"')\n return n\n}\n","{\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"103\": \"Early Hints\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"306\": \"(Unused)\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * toidentifier\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = toIdentifier\n\n/**\n * Trasform the given string into a JavaScript identifier\n *\n * @param {string} str\n * @returns {string}\n * @public\n */\n\nfunction toIdentifier (str) {\n return str\n .split(' ')\n .map(function (token) {\n return token.slice(0, 1).toUpperCase() + token.slice(1)\n })\n .join('')\n .replace(/[^ _0-9a-z]/gi, '')\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nasync function exponentialBackoff(startWaitTime, retryNumber, waitBackoff, getResult) {\n // TODO: jitter?\n let waitTime = startWaitTime;\n for (let i = 0; i < retryNumber; i++) {\n const result = await getResult();\n if (result) {\n return result;\n }\n await sleep(waitTime);\n waitTime *= waitBackoff;\n i++;\n }\n return null;\n}\nexports.default = exponentialBackoff;\n// Sleep given number of millis.\nfunction sleep(millis) {\n return new Promise(resolve => setTimeout(resolve, millis));\n}\n","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar global = getGlobal();\n\nmodule.exports = exports = global.fetch;\n\n// Needed for TypeScript and Webpack.\nif (global.fetch) {\n\texports.default = global.fetch.bind(global);\n}\n\nexports.Headers = global.Headers;\nexports.Request = global.Request;\nexports.Response = global.Response;","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n body = new Blob(self._body, {\n type: (headersObj['content-type'] || {}).value || ''\n });\n }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = void 0;\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"../generated/rpc_error_schema.json\"));\nconst error_messages_json_1 = __importDefault(require(\"../res/error_messages.json\"));\nconst CLASSMAP = __importStar(require(\"../generated/rpc_error_types\"));\nconst rpc_error_types_1 = require(\"../generated/rpc_error_types\");\n__exportStar(require(\"../generated/rpc_error_types\"), exports);\nclass ServerTransactionError extends rpc_error_types_1.ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new CLASSMAP[errorClassName](formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], errorData);\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return 'UntypedError';\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Mustache = factory());\n}(this, (function () { 'use strict';\n\n /*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\n var objectToString = Object.prototype.toString;\n var isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n };\n\n function isFunction (object) {\n return typeof object === 'function';\n }\n\n /**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\n function typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n }\n\n function escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n /**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\n function hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n }\n\n /**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\n function primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n }\n\n // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n // See https://github.com/janl/mustache.js/issues/189\n var regExpTest = RegExp.prototype.test;\n function testRegExp (re, string) {\n return regExpTest.call(re, string);\n }\n\n var nonSpaceRe = /\\S/;\n function isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n }\n\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n function escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n }\n\n var whiteRe = /\\s*/;\n var spaceRe = /\\s+/;\n var equalsRe = /\\s*=/;\n var curlyRe = /\\s*\\}/;\n var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n /**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\n function parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n }\n\n /**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\n function squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n }\n\n /**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\n function nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n }\n\n /**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\n function Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n }\n\n /**\n * Returns `true` if the tail is empty (end of string).\n */\n Scanner.prototype.eos = function eos () {\n return this.tail === '';\n };\n\n /**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\n Scanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n };\n\n /**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\n Scanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n };\n\n /**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\n function Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n }\n\n /**\n * Creates a new context using the given view with this context\n * as the parent.\n */\n Context.prototype.push = function push (view) {\n return new Context(view, this);\n };\n\n /**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\n Context.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n };\n\n /**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\n function Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n }\n\n /**\n * Clears all cached templates in this writer.\n */\n Writer.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n };\n\n /**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\n Writer.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n };\n\n /**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `config` argument is given here, then it should be an\n * object with a `tags` attribute or an `escape` attribute or both.\n * If an array is passed, then it will be interpreted the same way as\n * a `tags` attribute on a `config` object.\n *\n * The `tags` attribute of a `config` object must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n *\n * The `escape` attribute of a `config` object must be a function which\n * accepts a string as input and outputs a safely escaped string.\n * If an `escape` function is not provided, then an HTML-safe string\n * escaping function is used as the default.\n */\n Writer.prototype.render = function render (template, view, partials, config) {\n var tags = this.getConfigTags(config);\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, config);\n };\n\n /**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\n Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, config) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, config);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context, config);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n };\n\n Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate, config) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials, config);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);\n }\n return buffer;\n };\n\n Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate, config) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate, config);\n };\n\n Writer.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n };\n\n Writer.prototype.renderPartial = function renderPartial (token, context, partials, config) {\n if (!partials) return;\n var tags = this.getConfigTags(config);\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n var tokens = this.parse(indentedValue, tags);\n return this.renderTokens(tokens, context, partials, indentedValue, config);\n }\n };\n\n Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n };\n\n Writer.prototype.escapedValue = function escapedValue (token, context, config) {\n var escape = this.getConfigEscape(config) || mustache.escape;\n var value = context.lookup(token[1]);\n if (value != null)\n return (typeof value === 'number' && escape === mustache.escape) ? String(value) : escape(value);\n };\n\n Writer.prototype.rawValue = function rawValue (token) {\n return token[1];\n };\n\n Writer.prototype.getConfigTags = function getConfigTags (config) {\n if (isArray(config)) {\n return config;\n }\n else if (config && typeof config === 'object') {\n return config.tags;\n }\n else {\n return undefined;\n }\n };\n\n Writer.prototype.getConfigEscape = function getConfigEscape (config) {\n if (config && typeof config === 'object' && !isArray(config)) {\n return config.escape;\n }\n else {\n return undefined;\n }\n };\n\n var mustache = {\n name: 'mustache.js',\n version: '4.2.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n };\n\n // All high-level mustache.* functions use this writer.\n var defaultWriter = new Writer();\n\n /**\n * Clears all cached templates in the default writer.\n */\n mustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n };\n\n /**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\n mustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n };\n\n /**\n * Renders the `template` with the given `view`, `partials`, and `config`\n * using the default writer.\n */\n mustache.render = function render (template, view, partials, config) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, config);\n };\n\n // Export the escaping function so that the user may override it.\n // See https://github.com/janl/mustache.js/issues/244\n mustache.escape = escapeHtml;\n\n // Export these mainly for testing, but also for advanced usage.\n mustache.Scanner = Scanner;\n mustache.Context = Context;\n mustache.Writer = Writer;\n\n return mustache;\n\n})));\n","{\n \"schema\": {\n \"BadUTF16\": {\n \"name\": \"BadUTF16\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"BadUTF8\": {\n \"name\": \"BadUTF8\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"BalanceExceeded\": {\n \"name\": \"BalanceExceeded\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"BreakpointTrap\": {\n \"name\": \"BreakpointTrap\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CacheError\": {\n \"name\": \"CacheError\",\n \"subtypes\": [\n \"ReadError\",\n \"WriteError\",\n \"DeserializationError\",\n \"SerializationError\"\n ],\n \"props\": {}\n },\n \"CallIndirectOOB\": {\n \"name\": \"CallIndirectOOB\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CannotAppendActionToJointPromise\": {\n \"name\": \"CannotAppendActionToJointPromise\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CannotReturnJointPromise\": {\n \"name\": \"CannotReturnJointPromise\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CodeDoesNotExist\": {\n \"name\": \"CodeDoesNotExist\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"CompilationError\": {\n \"name\": \"CompilationError\",\n \"subtypes\": [\n \"CodeDoesNotExist\",\n \"PrepareError\",\n \"WasmerCompileError\"\n ],\n \"props\": {}\n },\n \"ContractSizeExceeded\": {\n \"name\": \"ContractSizeExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"size\": \"\"\n }\n },\n \"Deprecated\": {\n \"name\": \"Deprecated\",\n \"subtypes\": [],\n \"props\": {\n \"method_name\": \"\"\n }\n },\n \"Deserialization\": {\n \"name\": \"Deserialization\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"DeserializationError\": {\n \"name\": \"DeserializationError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"EmptyMethodName\": {\n \"name\": \"EmptyMethodName\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"FunctionCallError\": {\n \"name\": \"FunctionCallError\",\n \"subtypes\": [\n \"CompilationError\",\n \"LinkError\",\n \"MethodResolveError\",\n \"WasmTrap\",\n \"WasmUnknownError\",\n \"HostError\",\n \"EvmError\"\n ],\n \"props\": {}\n },\n \"GasExceeded\": {\n \"name\": \"GasExceeded\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"GasInstrumentation\": {\n \"name\": \"GasInstrumentation\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"GasLimitExceeded\": {\n \"name\": \"GasLimitExceeded\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"GenericTrap\": {\n \"name\": \"GenericTrap\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"GuestPanic\": {\n \"name\": \"GuestPanic\",\n \"subtypes\": [],\n \"props\": {\n \"panic_msg\": \"\"\n }\n },\n \"HostError\": {\n \"name\": \"HostError\",\n \"subtypes\": [\n \"BadUTF16\",\n \"BadUTF8\",\n \"GasExceeded\",\n \"GasLimitExceeded\",\n \"BalanceExceeded\",\n \"EmptyMethodName\",\n \"GuestPanic\",\n \"IntegerOverflow\",\n \"InvalidPromiseIndex\",\n \"CannotAppendActionToJointPromise\",\n \"CannotReturnJointPromise\",\n \"InvalidPromiseResultIndex\",\n \"InvalidRegisterId\",\n \"IteratorWasInvalidated\",\n \"MemoryAccessViolation\",\n \"InvalidReceiptIndex\",\n \"InvalidIteratorIndex\",\n \"InvalidAccountId\",\n \"InvalidMethodName\",\n \"InvalidPublicKey\",\n \"ProhibitedInView\",\n \"NumberOfLogsExceeded\",\n \"KeyLengthExceeded\",\n \"ValueLengthExceeded\",\n \"TotalLogLengthExceeded\",\n \"NumberPromisesExceeded\",\n \"NumberInputDataDependenciesExceeded\",\n \"ReturnedValueLengthExceeded\",\n \"ContractSizeExceeded\",\n \"Deprecated\"\n ],\n \"props\": {}\n },\n \"IllegalArithmetic\": {\n \"name\": \"IllegalArithmetic\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"IncorrectCallIndirectSignature\": {\n \"name\": \"IncorrectCallIndirectSignature\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"Instantiate\": {\n \"name\": \"Instantiate\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"IntegerOverflow\": {\n \"name\": \"IntegerOverflow\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InternalMemoryDeclared\": {\n \"name\": \"InternalMemoryDeclared\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidAccountId\": {\n \"name\": \"InvalidAccountId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidIteratorIndex\": {\n \"name\": \"InvalidIteratorIndex\",\n \"subtypes\": [],\n \"props\": {\n \"iterator_index\": \"\"\n }\n },\n \"InvalidMethodName\": {\n \"name\": \"InvalidMethodName\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidPromiseIndex\": {\n \"name\": \"InvalidPromiseIndex\",\n \"subtypes\": [],\n \"props\": {\n \"promise_idx\": \"\"\n }\n },\n \"InvalidPromiseResultIndex\": {\n \"name\": \"InvalidPromiseResultIndex\",\n \"subtypes\": [],\n \"props\": {\n \"result_idx\": \"\"\n }\n },\n \"InvalidPublicKey\": {\n \"name\": \"InvalidPublicKey\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidReceiptIndex\": {\n \"name\": \"InvalidReceiptIndex\",\n \"subtypes\": [],\n \"props\": {\n \"receipt_index\": \"\"\n }\n },\n \"InvalidRegisterId\": {\n \"name\": \"InvalidRegisterId\",\n \"subtypes\": [],\n \"props\": {\n \"register_id\": \"\"\n }\n },\n \"IteratorWasInvalidated\": {\n \"name\": \"IteratorWasInvalidated\",\n \"subtypes\": [],\n \"props\": {\n \"iterator_index\": \"\"\n }\n },\n \"KeyLengthExceeded\": {\n \"name\": \"KeyLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"LinkError\": {\n \"name\": \"LinkError\",\n \"subtypes\": [],\n \"props\": {\n \"msg\": \"\"\n }\n },\n \"Memory\": {\n \"name\": \"Memory\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MemoryAccessViolation\": {\n \"name\": \"MemoryAccessViolation\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MemoryOutOfBounds\": {\n \"name\": \"MemoryOutOfBounds\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MethodEmptyName\": {\n \"name\": \"MethodEmptyName\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MethodInvalidSignature\": {\n \"name\": \"MethodInvalidSignature\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MethodNotFound\": {\n \"name\": \"MethodNotFound\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MethodResolveError\": {\n \"name\": \"MethodResolveError\",\n \"subtypes\": [\n \"MethodEmptyName\",\n \"MethodUTF8Error\",\n \"MethodNotFound\",\n \"MethodInvalidSignature\"\n ],\n \"props\": {}\n },\n \"MethodUTF8Error\": {\n \"name\": \"MethodUTF8Error\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"MisalignedAtomicAccess\": {\n \"name\": \"MisalignedAtomicAccess\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"NumberInputDataDependenciesExceeded\": {\n \"name\": \"NumberInputDataDependenciesExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"number_of_input_data_dependencies\": \"\"\n }\n },\n \"NumberOfLogsExceeded\": {\n \"name\": \"NumberOfLogsExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\"\n }\n },\n \"NumberPromisesExceeded\": {\n \"name\": \"NumberPromisesExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"number_of_promises\": \"\"\n }\n },\n \"PrepareError\": {\n \"name\": \"PrepareError\",\n \"subtypes\": [\n \"Serialization\",\n \"Deserialization\",\n \"InternalMemoryDeclared\",\n \"GasInstrumentation\",\n \"StackHeightInstrumentation\",\n \"Instantiate\",\n \"Memory\"\n ],\n \"props\": {}\n },\n \"ProhibitedInView\": {\n \"name\": \"ProhibitedInView\",\n \"subtypes\": [],\n \"props\": {\n \"method_name\": \"\"\n }\n },\n \"ReadError\": {\n \"name\": \"ReadError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"ReturnedValueLengthExceeded\": {\n \"name\": \"ReturnedValueLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"Serialization\": {\n \"name\": \"Serialization\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"SerializationError\": {\n \"name\": \"SerializationError\",\n \"subtypes\": [],\n \"props\": {\n \"hash\": \"\"\n }\n },\n \"StackHeightInstrumentation\": {\n \"name\": \"StackHeightInstrumentation\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"StackOverflow\": {\n \"name\": \"StackOverflow\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"TotalLogLengthExceeded\": {\n \"name\": \"TotalLogLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"Unreachable\": {\n \"name\": \"Unreachable\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"ValueLengthExceeded\": {\n \"name\": \"ValueLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"WasmTrap\": {\n \"name\": \"WasmTrap\",\n \"subtypes\": [\n \"Unreachable\",\n \"IncorrectCallIndirectSignature\",\n \"MemoryOutOfBounds\",\n \"CallIndirectOOB\",\n \"IllegalArithmetic\",\n \"MisalignedAtomicAccess\",\n \"BreakpointTrap\",\n \"StackOverflow\",\n \"GenericTrap\"\n ],\n \"props\": {}\n },\n \"WasmUnknownError\": {\n \"name\": \"WasmUnknownError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"WasmerCompileError\": {\n \"name\": \"WasmerCompileError\",\n \"subtypes\": [],\n \"props\": {\n \"msg\": \"\"\n }\n },\n \"WriteError\": {\n \"name\": \"WriteError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"AccessKeyNotFound\": {\n \"name\": \"AccessKeyNotFound\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"public_key\": \"\"\n }\n },\n \"AccountAlreadyExists\": {\n \"name\": \"AccountAlreadyExists\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"AccountDoesNotExist\": {\n \"name\": \"AccountDoesNotExist\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"ActionError\": {\n \"name\": \"ActionError\",\n \"subtypes\": [\n \"AccountAlreadyExists\",\n \"AccountDoesNotExist\",\n \"CreateAccountOnlyByRegistrar\",\n \"CreateAccountNotAllowed\",\n \"ActorNoPermission\",\n \"DeleteKeyDoesNotExist\",\n \"AddKeyAlreadyExists\",\n \"DeleteAccountStaking\",\n \"LackBalanceForState\",\n \"TriesToUnstake\",\n \"TriesToStake\",\n \"InsufficientStake\",\n \"FunctionCallError\",\n \"NewReceiptValidationError\",\n \"OnlyImplicitAccountCreationAllowed\"\n ],\n \"props\": {\n \"index\": \"\"\n }\n },\n \"ActionsValidationError\": {\n \"name\": \"ActionsValidationError\",\n \"subtypes\": [\n \"DeleteActionMustBeFinal\",\n \"TotalPrepaidGasExceeded\",\n \"TotalNumberOfActionsExceeded\",\n \"AddKeyMethodNamesNumberOfBytesExceeded\",\n \"AddKeyMethodNameLengthExceeded\",\n \"IntegerOverflow\",\n \"InvalidAccountId\",\n \"ContractSizeExceeded\",\n \"FunctionCallMethodNameLengthExceeded\",\n \"FunctionCallArgumentsLengthExceeded\",\n \"UnsuitableStakingKey\",\n \"FunctionCallZeroAttachedGas\"\n ],\n \"props\": {}\n },\n \"ActorNoPermission\": {\n \"name\": \"ActorNoPermission\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"actor_id\": \"\"\n }\n },\n \"AddKeyAlreadyExists\": {\n \"name\": \"AddKeyAlreadyExists\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"public_key\": \"\"\n }\n },\n \"AddKeyMethodNameLengthExceeded\": {\n \"name\": \"AddKeyMethodNameLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"AddKeyMethodNamesNumberOfBytesExceeded\": {\n \"name\": \"AddKeyMethodNamesNumberOfBytesExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"total_number_of_bytes\": \"\"\n }\n },\n \"BalanceMismatchError\": {\n \"name\": \"BalanceMismatchError\",\n \"subtypes\": [],\n \"props\": {\n \"final_accounts_balance\": \"\",\n \"final_postponed_receipts_balance\": \"\",\n \"incoming_receipts_balance\": \"\",\n \"incoming_validator_rewards\": \"\",\n \"initial_accounts_balance\": \"\",\n \"initial_postponed_receipts_balance\": \"\",\n \"new_delayed_receipts_balance\": \"\",\n \"other_burnt_amount\": \"\",\n \"outgoing_receipts_balance\": \"\",\n \"processed_delayed_receipts_balance\": \"\",\n \"slashed_burnt_amount\": \"\",\n \"tx_burnt_amount\": \"\"\n }\n },\n \"CostOverflow\": {\n \"name\": \"CostOverflow\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"CreateAccountNotAllowed\": {\n \"name\": \"CreateAccountNotAllowed\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"predecessor_id\": \"\"\n }\n },\n \"CreateAccountOnlyByRegistrar\": {\n \"name\": \"CreateAccountOnlyByRegistrar\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"predecessor_id\": \"\",\n \"registrar_account_id\": \"\"\n }\n },\n \"DeleteAccountStaking\": {\n \"name\": \"DeleteAccountStaking\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"DeleteActionMustBeFinal\": {\n \"name\": \"DeleteActionMustBeFinal\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"DeleteKeyDoesNotExist\": {\n \"name\": \"DeleteKeyDoesNotExist\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"public_key\": \"\"\n }\n },\n \"DepositWithFunctionCall\": {\n \"name\": \"DepositWithFunctionCall\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"Expired\": {\n \"name\": \"Expired\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"FunctionCallArgumentsLengthExceeded\": {\n \"name\": \"FunctionCallArgumentsLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"FunctionCallMethodNameLengthExceeded\": {\n \"name\": \"FunctionCallMethodNameLengthExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"length\": \"\",\n \"limit\": \"\"\n }\n },\n \"FunctionCallZeroAttachedGas\": {\n \"name\": \"FunctionCallZeroAttachedGas\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InsufficientStake\": {\n \"name\": \"InsufficientStake\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"minimum_stake\": \"\",\n \"stake\": \"\"\n }\n },\n \"InvalidAccessKeyError\": {\n \"name\": \"InvalidAccessKeyError\",\n \"subtypes\": [\n \"AccessKeyNotFound\",\n \"ReceiverMismatch\",\n \"MethodNameMismatch\",\n \"RequiresFullAccess\",\n \"NotEnoughAllowance\",\n \"DepositWithFunctionCall\"\n ],\n \"props\": {}\n },\n \"InvalidChain\": {\n \"name\": \"InvalidChain\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidDataReceiverId\": {\n \"name\": \"InvalidDataReceiverId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidNonce\": {\n \"name\": \"InvalidNonce\",\n \"subtypes\": [],\n \"props\": {\n \"ak_nonce\": \"\",\n \"tx_nonce\": \"\"\n }\n },\n \"InvalidPredecessorId\": {\n \"name\": \"InvalidPredecessorId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidReceiverId\": {\n \"name\": \"InvalidReceiverId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidSignature\": {\n \"name\": \"InvalidSignature\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InvalidSignerId\": {\n \"name\": \"InvalidSignerId\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"InvalidTxError\": {\n \"name\": \"InvalidTxError\",\n \"subtypes\": [\n \"InvalidAccessKeyError\",\n \"InvalidSignerId\",\n \"SignerDoesNotExist\",\n \"InvalidNonce\",\n \"InvalidReceiverId\",\n \"InvalidSignature\",\n \"NotEnoughBalance\",\n \"LackBalanceForState\",\n \"CostOverflow\",\n \"InvalidChain\",\n \"Expired\",\n \"ActionsValidation\"\n ],\n \"props\": {}\n },\n \"LackBalanceForState\": {\n \"name\": \"LackBalanceForState\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"amount\": \"\"\n }\n },\n \"MethodNameMismatch\": {\n \"name\": \"MethodNameMismatch\",\n \"subtypes\": [],\n \"props\": {\n \"method_name\": \"\"\n }\n },\n \"NotEnoughAllowance\": {\n \"name\": \"NotEnoughAllowance\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"allowance\": \"\",\n \"cost\": \"\",\n \"public_key\": \"\"\n }\n },\n \"NotEnoughBalance\": {\n \"name\": \"NotEnoughBalance\",\n \"subtypes\": [],\n \"props\": {\n \"balance\": \"\",\n \"cost\": \"\",\n \"signer_id\": \"\"\n }\n },\n \"OnlyImplicitAccountCreationAllowed\": {\n \"name\": \"OnlyImplicitAccountCreationAllowed\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"ReceiptValidationError\": {\n \"name\": \"ReceiptValidationError\",\n \"subtypes\": [\n \"InvalidPredecessorId\",\n \"InvalidReceiverId\",\n \"InvalidSignerId\",\n \"InvalidDataReceiverId\",\n \"ReturnedValueLengthExceeded\",\n \"NumberInputDataDependenciesExceeded\",\n \"ActionsValidation\"\n ],\n \"props\": {}\n },\n \"ReceiverMismatch\": {\n \"name\": \"ReceiverMismatch\",\n \"subtypes\": [],\n \"props\": {\n \"ak_receiver\": \"\",\n \"tx_receiver\": \"\"\n }\n },\n \"RequiresFullAccess\": {\n \"name\": \"RequiresFullAccess\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"SignerDoesNotExist\": {\n \"name\": \"SignerDoesNotExist\",\n \"subtypes\": [],\n \"props\": {\n \"signer_id\": \"\"\n }\n },\n \"TotalNumberOfActionsExceeded\": {\n \"name\": \"TotalNumberOfActionsExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"total_number_of_actions\": \"\"\n }\n },\n \"TotalPrepaidGasExceeded\": {\n \"name\": \"TotalPrepaidGasExceeded\",\n \"subtypes\": [],\n \"props\": {\n \"limit\": \"\",\n \"total_prepaid_gas\": \"\"\n }\n },\n \"TriesToStake\": {\n \"name\": \"TriesToStake\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\",\n \"balance\": \"\",\n \"locked\": \"\",\n \"stake\": \"\"\n }\n },\n \"TriesToUnstake\": {\n \"name\": \"TriesToUnstake\",\n \"subtypes\": [],\n \"props\": {\n \"account_id\": \"\"\n }\n },\n \"TxExecutionError\": {\n \"name\": \"TxExecutionError\",\n \"subtypes\": [\n \"ActionError\",\n \"InvalidTxError\"\n ],\n \"props\": {}\n },\n \"UnsuitableStakingKey\": {\n \"name\": \"UnsuitableStakingKey\",\n \"subtypes\": [],\n \"props\": {\n \"public_key\": \"\"\n }\n },\n \"Closed\": {\n \"name\": \"Closed\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"InternalError\": {\n \"name\": \"InternalError\",\n \"subtypes\": [],\n \"props\": {}\n },\n \"ServerError\": {\n \"name\": \"ServerError\",\n \"subtypes\": [\n \"TxExecutionError\",\n \"Timeout\",\n \"Closed\",\n \"InternalError\"\n ],\n \"props\": {}\n },\n \"Timeout\": {\n \"name\": \"Timeout\",\n \"subtypes\": [],\n \"props\": {}\n }\n }\n}\n","{\n \"GasLimitExceeded\": \"Exceeded the maximum amount of gas allowed to burn per contract\",\n \"MethodEmptyName\": \"Method name is empty\",\n \"WasmerCompileError\": \"Wasmer compilation error: {{msg}}\",\n \"GuestPanic\": \"Smart contract panicked: {{panic_msg}}\",\n \"Memory\": \"Error creating Wasm memory\",\n \"GasExceeded\": \"Exceeded the prepaid gas\",\n \"MethodUTF8Error\": \"Method name is not valid UTF8 string\",\n \"BadUTF16\": \"String encoding is bad UTF-16 sequence\",\n \"WasmTrap\": \"WebAssembly trap: {{msg}}\",\n \"GasInstrumentation\": \"Gas instrumentation failed or contract has denied instructions.\",\n \"InvalidPromiseIndex\": \"{{promise_idx}} does not correspond to existing promises\",\n \"InvalidPromiseResultIndex\": \"Accessed invalid promise result index: {{result_idx}}\",\n \"Deserialization\": \"Error happened while deserializing the module\",\n \"MethodNotFound\": \"Contract method is not found\",\n \"InvalidRegisterId\": \"Accessed invalid register id: {{register_id}}\",\n \"InvalidReceiptIndex\": \"VM Logic returned an invalid receipt index: {{receipt_index}}\",\n \"EmptyMethodName\": \"Method name is empty in contract call\",\n \"CannotReturnJointPromise\": \"Returning joint promise is currently prohibited\",\n \"StackHeightInstrumentation\": \"Stack instrumentation failed\",\n \"CodeDoesNotExist\": \"Cannot find contract code for account {{account_id}}\",\n \"MethodInvalidSignature\": \"Invalid method signature\",\n \"IntegerOverflow\": \"Integer overflow happened during contract execution\",\n \"MemoryAccessViolation\": \"MemoryAccessViolation\",\n \"InvalidIteratorIndex\": \"Iterator index {{iterator_index}} does not exist\",\n \"IteratorWasInvalidated\": \"Iterator {{iterator_index}} was invalidated after its creation by performing a mutable operation on trie\",\n \"InvalidAccountId\": \"VM Logic returned an invalid account id\",\n \"Serialization\": \"Error happened while serializing the module\",\n \"CannotAppendActionToJointPromise\": \"Actions can only be appended to non-joint promise.\",\n \"InternalMemoryDeclared\": \"Internal memory declaration has been found in the module\",\n \"Instantiate\": \"Error happened during instantiation\",\n \"ProhibitedInView\": \"{{method_name}} is not allowed in view calls\",\n \"InvalidMethodName\": \"VM Logic returned an invalid method name\",\n \"BadUTF8\": \"String encoding is bad UTF-8 sequence\",\n \"BalanceExceeded\": \"Exceeded the account balance\",\n \"LinkError\": \"Wasm contract link error: {{msg}}\",\n \"InvalidPublicKey\": \"VM Logic provided an invalid public key\",\n \"ActorNoPermission\": \"Actor {{actor_id}} doesn't have permission to account {{account_id}} to complete the action\",\n \"LackBalanceForState\": \"The account {{account_id}} wouldn't have enough balance to cover storage, required to have {{amount}} yoctoNEAR more\",\n \"ReceiverMismatch\": \"Wrong AccessKey used for transaction: transaction is sent to receiver_id={{tx_receiver}}, but is signed with function call access key that restricted to only use with receiver_id={{ak_receiver}}. Either change receiver_id in your transaction or switch to use a FullAccessKey.\",\n \"CostOverflow\": \"Transaction gas or balance cost is too high\",\n \"InvalidSignature\": \"Transaction is not signed with the given public key\",\n \"AccessKeyNotFound\": \"Signer \\\"{{account_id}}\\\" doesn't have access key with the given public_key {{public_key}}\",\n \"NotEnoughBalance\": \"Sender {{signer_id}} does not have enough balance {{balance}} for operation costing {{cost}}\",\n \"NotEnoughAllowance\": \"Access Key {account_id}:{public_key} does not have enough balance {{allowance}} for transaction costing {{cost}}\",\n \"Expired\": \"Transaction has expired\",\n \"DeleteAccountStaking\": \"Account {{account_id}} is staking and can not be deleted\",\n \"SignerDoesNotExist\": \"Signer {{signer_id}} does not exist\",\n \"TriesToStake\": \"Account {{account_id}} tries to stake {{stake}}, but has staked {{locked}} and only has {{balance}}\",\n \"AddKeyAlreadyExists\": \"The public key {{public_key}} is already used for an existing access key\",\n \"InvalidSigner\": \"Invalid signer account ID {{signer_id}} according to requirements\",\n \"CreateAccountNotAllowed\": \"The new account_id {{account_id}} can't be created by {{predecessor_id}}\",\n \"RequiresFullAccess\": \"The transaction contains more then one action, but it was signed with an access key which allows transaction to apply only one specific action. To apply more then one actions TX must be signed with a full access key\",\n \"TriesToUnstake\": \"Account {{account_id}} is not yet staked, but tries to unstake\",\n \"InvalidNonce\": \"Transaction nonce {{tx_nonce}} must be larger than nonce of the used access key {{ak_nonce}}\",\n \"AccountAlreadyExists\": \"Can't create a new account {{account_id}}, because it already exists\",\n \"InvalidChain\": \"Transaction parent block hash doesn't belong to the current chain\",\n \"AccountDoesNotExist\": \"Can't complete the action because account {{account_id}} doesn't exist\",\n \"MethodNameMismatch\": \"Transaction method name {{method_name}} isn't allowed by the access key\",\n \"DeleteAccountHasRent\": \"Account {{account_id}} can't be deleted. It has {{balance}}, which is enough to cover the rent\",\n \"DeleteAccountHasEnoughBalance\": \"Account {{account_id}} can't be deleted. It has {{balance}}, which is enough to cover it's storage\",\n \"InvalidReceiver\": \"Invalid receiver account ID {{receiver_id}} according to requirements\",\n \"DeleteKeyDoesNotExist\": \"Account {{account_id}} tries to remove an access key that doesn't exist\",\n \"Timeout\": \"Timeout exceeded\",\n \"Closed\": \"Connection closed\"\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Timeout = exports.InternalError = exports.Closed = exports.UnsuitableStakingKey = exports.TriesToUnstake = exports.TriesToStake = exports.TotalPrepaidGasExceeded = exports.TotalNumberOfActionsExceeded = exports.SignerDoesNotExist = exports.RequiresFullAccess = exports.ReceiverMismatch = exports.OnlyImplicitAccountCreationAllowed = exports.NotEnoughBalance = exports.NotEnoughAllowance = exports.MethodNameMismatch = exports.LackBalanceForState = exports.InvalidSignerId = exports.InvalidSignature = exports.InvalidReceiverId = exports.InvalidPredecessorId = exports.InvalidNonce = exports.InvalidDataReceiverId = exports.ReceiptValidationError = exports.InvalidChain = exports.InsufficientStake = exports.FunctionCallZeroAttachedGas = exports.FunctionCallMethodNameLengthExceeded = exports.FunctionCallArgumentsLengthExceeded = exports.Expired = exports.DepositWithFunctionCall = exports.DeleteKeyDoesNotExist = exports.DeleteActionMustBeFinal = exports.DeleteAccountStaking = exports.CreateAccountOnlyByRegistrar = exports.CreateAccountNotAllowed = exports.CostOverflow = exports.BalanceMismatchError = exports.AddKeyMethodNamesNumberOfBytesExceeded = exports.AddKeyMethodNameLengthExceeded = exports.AddKeyAlreadyExists = exports.ActorNoPermission = exports.ActionsValidationError = exports.AccountDoesNotExist = exports.AccountAlreadyExists = exports.AccessKeyNotFound = exports.InvalidAccessKeyError = exports.InvalidTxError = exports.WriteError = exports.WasmerCompileError = exports.WasmUnknownError = exports.ValueLengthExceeded = exports.Unreachable = exports.TotalLogLengthExceeded = exports.StackOverflow = exports.StackHeightInstrumentation = exports.SerializationError = exports.Serialization = exports.ReturnedValueLengthExceeded = exports.ReadError = exports.ProhibitedInView = exports.NumberPromisesExceeded = exports.NumberOfLogsExceeded = exports.NumberInputDataDependenciesExceeded = exports.MisalignedAtomicAccess = exports.MethodUTF8Error = exports.MethodNotFound = exports.MethodInvalidSignature = exports.MethodEmptyName = exports.MethodResolveError = exports.MemoryOutOfBounds = exports.MemoryAccessViolation = exports.Memory = exports.LinkError = exports.KeyLengthExceeded = exports.IteratorWasInvalidated = exports.InvalidRegisterId = exports.InvalidReceiptIndex = exports.InvalidPublicKey = exports.InvalidPromiseResultIndex = exports.InvalidPromiseIndex = exports.InvalidMethodName = exports.InvalidIteratorIndex = exports.InvalidAccountId = exports.InternalMemoryDeclared = exports.IntegerOverflow = exports.Instantiate = exports.IncorrectCallIndirectSignature = exports.IllegalArithmetic = exports.GuestPanic = exports.GenericTrap = exports.GasLimitExceeded = exports.GasInstrumentation = exports.GasExceeded = exports.EmptyMethodName = exports.DeserializationError = exports.Deserialization = exports.PrepareError = exports.Deprecated = exports.ContractSizeExceeded = exports.CodeDoesNotExist = exports.CompilationError = exports.CannotReturnJointPromise = exports.CannotAppendActionToJointPromise = exports.CallIndirectOOB = exports.CacheError = exports.BreakpointTrap = exports.WasmTrap = exports.BalanceExceeded = exports.BadUTF8 = exports.BadUTF16 = exports.HostError = exports.FunctionCallError = exports.ActionError = exports.TxExecutionError = exports.ServerError = void 0;\nconst errors_1 = require(\"../utils/errors\");\nclass ServerError extends errors_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass TxExecutionError extends ServerError {\n}\nexports.TxExecutionError = TxExecutionError;\nclass ActionError extends TxExecutionError {\n}\nexports.ActionError = ActionError;\nclass FunctionCallError extends ActionError {\n}\nexports.FunctionCallError = FunctionCallError;\nclass HostError extends FunctionCallError {\n}\nexports.HostError = HostError;\nclass BadUTF16 extends HostError {\n}\nexports.BadUTF16 = BadUTF16;\nclass BadUTF8 extends HostError {\n}\nexports.BadUTF8 = BadUTF8;\nclass BalanceExceeded extends HostError {\n}\nexports.BalanceExceeded = BalanceExceeded;\nclass WasmTrap extends FunctionCallError {\n}\nexports.WasmTrap = WasmTrap;\nclass BreakpointTrap extends WasmTrap {\n}\nexports.BreakpointTrap = BreakpointTrap;\nclass CacheError extends errors_1.TypedError {\n}\nexports.CacheError = CacheError;\nclass CallIndirectOOB extends WasmTrap {\n}\nexports.CallIndirectOOB = CallIndirectOOB;\nclass CannotAppendActionToJointPromise extends HostError {\n}\nexports.CannotAppendActionToJointPromise = CannotAppendActionToJointPromise;\nclass CannotReturnJointPromise extends HostError {\n}\nexports.CannotReturnJointPromise = CannotReturnJointPromise;\nclass CompilationError extends FunctionCallError {\n}\nexports.CompilationError = CompilationError;\nclass CodeDoesNotExist extends CompilationError {\n}\nexports.CodeDoesNotExist = CodeDoesNotExist;\nclass ContractSizeExceeded extends HostError {\n}\nexports.ContractSizeExceeded = ContractSizeExceeded;\nclass Deprecated extends HostError {\n}\nexports.Deprecated = Deprecated;\nclass PrepareError extends CompilationError {\n}\nexports.PrepareError = PrepareError;\nclass Deserialization extends PrepareError {\n}\nexports.Deserialization = Deserialization;\nclass DeserializationError extends CacheError {\n}\nexports.DeserializationError = DeserializationError;\nclass EmptyMethodName extends HostError {\n}\nexports.EmptyMethodName = EmptyMethodName;\nclass GasExceeded extends HostError {\n}\nexports.GasExceeded = GasExceeded;\nclass GasInstrumentation extends PrepareError {\n}\nexports.GasInstrumentation = GasInstrumentation;\nclass GasLimitExceeded extends HostError {\n}\nexports.GasLimitExceeded = GasLimitExceeded;\nclass GenericTrap extends WasmTrap {\n}\nexports.GenericTrap = GenericTrap;\nclass GuestPanic extends HostError {\n}\nexports.GuestPanic = GuestPanic;\nclass IllegalArithmetic extends WasmTrap {\n}\nexports.IllegalArithmetic = IllegalArithmetic;\nclass IncorrectCallIndirectSignature extends WasmTrap {\n}\nexports.IncorrectCallIndirectSignature = IncorrectCallIndirectSignature;\nclass Instantiate extends PrepareError {\n}\nexports.Instantiate = Instantiate;\nclass IntegerOverflow extends HostError {\n}\nexports.IntegerOverflow = IntegerOverflow;\nclass InternalMemoryDeclared extends PrepareError {\n}\nexports.InternalMemoryDeclared = InternalMemoryDeclared;\nclass InvalidAccountId extends HostError {\n}\nexports.InvalidAccountId = InvalidAccountId;\nclass InvalidIteratorIndex extends HostError {\n}\nexports.InvalidIteratorIndex = InvalidIteratorIndex;\nclass InvalidMethodName extends HostError {\n}\nexports.InvalidMethodName = InvalidMethodName;\nclass InvalidPromiseIndex extends HostError {\n}\nexports.InvalidPromiseIndex = InvalidPromiseIndex;\nclass InvalidPromiseResultIndex extends HostError {\n}\nexports.InvalidPromiseResultIndex = InvalidPromiseResultIndex;\nclass InvalidPublicKey extends HostError {\n}\nexports.InvalidPublicKey = InvalidPublicKey;\nclass InvalidReceiptIndex extends HostError {\n}\nexports.InvalidReceiptIndex = InvalidReceiptIndex;\nclass InvalidRegisterId extends HostError {\n}\nexports.InvalidRegisterId = InvalidRegisterId;\nclass IteratorWasInvalidated extends HostError {\n}\nexports.IteratorWasInvalidated = IteratorWasInvalidated;\nclass KeyLengthExceeded extends HostError {\n}\nexports.KeyLengthExceeded = KeyLengthExceeded;\nclass LinkError extends FunctionCallError {\n}\nexports.LinkError = LinkError;\nclass Memory extends PrepareError {\n}\nexports.Memory = Memory;\nclass MemoryAccessViolation extends HostError {\n}\nexports.MemoryAccessViolation = MemoryAccessViolation;\nclass MemoryOutOfBounds extends WasmTrap {\n}\nexports.MemoryOutOfBounds = MemoryOutOfBounds;\nclass MethodResolveError extends FunctionCallError {\n}\nexports.MethodResolveError = MethodResolveError;\nclass MethodEmptyName extends MethodResolveError {\n}\nexports.MethodEmptyName = MethodEmptyName;\nclass MethodInvalidSignature extends MethodResolveError {\n}\nexports.MethodInvalidSignature = MethodInvalidSignature;\nclass MethodNotFound extends MethodResolveError {\n}\nexports.MethodNotFound = MethodNotFound;\nclass MethodUTF8Error extends MethodResolveError {\n}\nexports.MethodUTF8Error = MethodUTF8Error;\nclass MisalignedAtomicAccess extends WasmTrap {\n}\nexports.MisalignedAtomicAccess = MisalignedAtomicAccess;\nclass NumberInputDataDependenciesExceeded extends HostError {\n}\nexports.NumberInputDataDependenciesExceeded = NumberInputDataDependenciesExceeded;\nclass NumberOfLogsExceeded extends HostError {\n}\nexports.NumberOfLogsExceeded = NumberOfLogsExceeded;\nclass NumberPromisesExceeded extends HostError {\n}\nexports.NumberPromisesExceeded = NumberPromisesExceeded;\nclass ProhibitedInView extends HostError {\n}\nexports.ProhibitedInView = ProhibitedInView;\nclass ReadError extends CacheError {\n}\nexports.ReadError = ReadError;\nclass ReturnedValueLengthExceeded extends HostError {\n}\nexports.ReturnedValueLengthExceeded = ReturnedValueLengthExceeded;\nclass Serialization extends PrepareError {\n}\nexports.Serialization = Serialization;\nclass SerializationError extends CacheError {\n}\nexports.SerializationError = SerializationError;\nclass StackHeightInstrumentation extends PrepareError {\n}\nexports.StackHeightInstrumentation = StackHeightInstrumentation;\nclass StackOverflow extends WasmTrap {\n}\nexports.StackOverflow = StackOverflow;\nclass TotalLogLengthExceeded extends HostError {\n}\nexports.TotalLogLengthExceeded = TotalLogLengthExceeded;\nclass Unreachable extends WasmTrap {\n}\nexports.Unreachable = Unreachable;\nclass ValueLengthExceeded extends HostError {\n}\nexports.ValueLengthExceeded = ValueLengthExceeded;\nclass WasmUnknownError extends FunctionCallError {\n}\nexports.WasmUnknownError = WasmUnknownError;\nclass WasmerCompileError extends CompilationError {\n}\nexports.WasmerCompileError = WasmerCompileError;\nclass WriteError extends CacheError {\n}\nexports.WriteError = WriteError;\nclass InvalidTxError extends TxExecutionError {\n}\nexports.InvalidTxError = InvalidTxError;\nclass InvalidAccessKeyError extends InvalidTxError {\n}\nexports.InvalidAccessKeyError = InvalidAccessKeyError;\nclass AccessKeyNotFound extends InvalidAccessKeyError {\n}\nexports.AccessKeyNotFound = AccessKeyNotFound;\nclass AccountAlreadyExists extends ActionError {\n}\nexports.AccountAlreadyExists = AccountAlreadyExists;\nclass AccountDoesNotExist extends ActionError {\n}\nexports.AccountDoesNotExist = AccountDoesNotExist;\nclass ActionsValidationError extends errors_1.TypedError {\n}\nexports.ActionsValidationError = ActionsValidationError;\nclass ActorNoPermission extends ActionError {\n}\nexports.ActorNoPermission = ActorNoPermission;\nclass AddKeyAlreadyExists extends ActionError {\n}\nexports.AddKeyAlreadyExists = AddKeyAlreadyExists;\nclass AddKeyMethodNameLengthExceeded extends ActionsValidationError {\n}\nexports.AddKeyMethodNameLengthExceeded = AddKeyMethodNameLengthExceeded;\nclass AddKeyMethodNamesNumberOfBytesExceeded extends ActionsValidationError {\n}\nexports.AddKeyMethodNamesNumberOfBytesExceeded = AddKeyMethodNamesNumberOfBytesExceeded;\nclass BalanceMismatchError extends errors_1.TypedError {\n}\nexports.BalanceMismatchError = BalanceMismatchError;\nclass CostOverflow extends InvalidTxError {\n}\nexports.CostOverflow = CostOverflow;\nclass CreateAccountNotAllowed extends ActionError {\n}\nexports.CreateAccountNotAllowed = CreateAccountNotAllowed;\nclass CreateAccountOnlyByRegistrar extends ActionError {\n}\nexports.CreateAccountOnlyByRegistrar = CreateAccountOnlyByRegistrar;\nclass DeleteAccountStaking extends ActionError {\n}\nexports.DeleteAccountStaking = DeleteAccountStaking;\nclass DeleteActionMustBeFinal extends ActionsValidationError {\n}\nexports.DeleteActionMustBeFinal = DeleteActionMustBeFinal;\nclass DeleteKeyDoesNotExist extends ActionError {\n}\nexports.DeleteKeyDoesNotExist = DeleteKeyDoesNotExist;\nclass DepositWithFunctionCall extends InvalidAccessKeyError {\n}\nexports.DepositWithFunctionCall = DepositWithFunctionCall;\nclass Expired extends InvalidTxError {\n}\nexports.Expired = Expired;\nclass FunctionCallArgumentsLengthExceeded extends ActionsValidationError {\n}\nexports.FunctionCallArgumentsLengthExceeded = FunctionCallArgumentsLengthExceeded;\nclass FunctionCallMethodNameLengthExceeded extends ActionsValidationError {\n}\nexports.FunctionCallMethodNameLengthExceeded = FunctionCallMethodNameLengthExceeded;\nclass FunctionCallZeroAttachedGas extends ActionsValidationError {\n}\nexports.FunctionCallZeroAttachedGas = FunctionCallZeroAttachedGas;\nclass InsufficientStake extends ActionError {\n}\nexports.InsufficientStake = InsufficientStake;\nclass InvalidChain extends InvalidTxError {\n}\nexports.InvalidChain = InvalidChain;\nclass ReceiptValidationError extends errors_1.TypedError {\n}\nexports.ReceiptValidationError = ReceiptValidationError;\nclass InvalidDataReceiverId extends ReceiptValidationError {\n}\nexports.InvalidDataReceiverId = InvalidDataReceiverId;\nclass InvalidNonce extends InvalidTxError {\n}\nexports.InvalidNonce = InvalidNonce;\nclass InvalidPredecessorId extends ReceiptValidationError {\n}\nexports.InvalidPredecessorId = InvalidPredecessorId;\nclass InvalidReceiverId extends InvalidTxError {\n}\nexports.InvalidReceiverId = InvalidReceiverId;\nclass InvalidSignature extends InvalidTxError {\n}\nexports.InvalidSignature = InvalidSignature;\nclass InvalidSignerId extends InvalidTxError {\n}\nexports.InvalidSignerId = InvalidSignerId;\nclass LackBalanceForState extends ActionError {\n}\nexports.LackBalanceForState = LackBalanceForState;\nclass MethodNameMismatch extends InvalidAccessKeyError {\n}\nexports.MethodNameMismatch = MethodNameMismatch;\nclass NotEnoughAllowance extends InvalidAccessKeyError {\n}\nexports.NotEnoughAllowance = NotEnoughAllowance;\nclass NotEnoughBalance extends InvalidTxError {\n}\nexports.NotEnoughBalance = NotEnoughBalance;\nclass OnlyImplicitAccountCreationAllowed extends ActionError {\n}\nexports.OnlyImplicitAccountCreationAllowed = OnlyImplicitAccountCreationAllowed;\nclass ReceiverMismatch extends InvalidAccessKeyError {\n}\nexports.ReceiverMismatch = ReceiverMismatch;\nclass RequiresFullAccess extends InvalidAccessKeyError {\n}\nexports.RequiresFullAccess = RequiresFullAccess;\nclass SignerDoesNotExist extends InvalidTxError {\n}\nexports.SignerDoesNotExist = SignerDoesNotExist;\nclass TotalNumberOfActionsExceeded extends ActionsValidationError {\n}\nexports.TotalNumberOfActionsExceeded = TotalNumberOfActionsExceeded;\nclass TotalPrepaidGasExceeded extends ActionsValidationError {\n}\nexports.TotalPrepaidGasExceeded = TotalPrepaidGasExceeded;\nclass TriesToStake extends ActionError {\n}\nexports.TriesToStake = TriesToStake;\nclass TriesToUnstake extends ActionError {\n}\nexports.TriesToUnstake = TriesToUnstake;\nclass UnsuitableStakingKey extends ActionsValidationError {\n}\nexports.UnsuitableStakingKey = UnsuitableStakingKey;\nclass Closed extends ServerError {\n}\nexports.Closed = Closed;\nclass InternalError extends ServerError {\n}\nexports.InternalError = InternalError;\nclass Timeout extends ServerError {\n}\nexports.Timeout = Timeout;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rpc_errors = exports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.format = exports.enums = exports.web = exports.serialize = exports.network = exports.key_pair = void 0;\nconst key_pair = __importStar(require(\"./key_pair\"));\nexports.key_pair = key_pair;\nconst network = __importStar(require(\"./network\"));\nexports.network = network;\nconst serialize = __importStar(require(\"./serialize\"));\nexports.serialize = serialize;\nconst web = __importStar(require(\"./web\"));\nexports.web = web;\nconst enums = __importStar(require(\"./enums\"));\nexports.enums = enums;\nconst format = __importStar(require(\"./format\"));\nexports.format = format;\nconst rpc_errors = __importStar(require(\"./rpc_errors\"));\nexports.rpc_errors = rpc_errors;\nconst key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return key_pair_1.PublicKey; } });\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_1.KeyPairEd25519; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = new bn_js_1.default('10', 10).pow(new bn_js_1.default(exports.NEAR_NOMINATION_EXP, 10));\n// Pre-calculate offests used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = new bn_js_1.default(10);\nfor (let i = 0, offset = new bn_js_1.default(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset.mul(BN10)) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n const balanceBN = new bn_js_1.default(balance, 10);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN.iadd(ROUNDING_OFFSETS[roundingExp]);\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || '0';\n const fractionStr = balance.substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, '0').substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split('.');\n const wholePart = split[0];\n const fracPart = split[1] || '';\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, '0'));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, '').trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, '');\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, '');\n if (value === '') {\n return '0';\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, '$1,$2');\n }\n return value;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signTransaction = exports.createTransaction = exports.SCHEMA = exports.Action = exports.SignedTransaction = exports.Transaction = exports.Signature = exports.deleteAccount = exports.deleteKey = exports.addKey = exports.stake = exports.transfer = exports.functionCall = exports.deployContract = exports.createAccount = exports.DeleteAccount = exports.DeleteKey = exports.AddKey = exports.Stake = exports.Transfer = exports.FunctionCall = exports.DeployContract = exports.CreateAccount = exports.IAction = exports.functionCallAccessKey = exports.fullAccessKey = exports.AccessKey = exports.AccessKeyPermission = exports.FullAccessPermission = exports.FunctionCallPermission = void 0;\nconst js_sha256_1 = __importDefault(require(\"js-sha256\"));\nconst enums_1 = require(\"./utils/enums\");\nconst borsh_1 = require(\"borsh\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nclass FunctionCallPermission extends enums_1.Assignable {\n}\nexports.FunctionCallPermission = FunctionCallPermission;\nclass FullAccessPermission extends enums_1.Assignable {\n}\nexports.FullAccessPermission = FullAccessPermission;\nclass AccessKeyPermission extends enums_1.Enum {\n}\nexports.AccessKeyPermission = AccessKeyPermission;\nclass AccessKey extends enums_1.Assignable {\n}\nexports.AccessKey = AccessKey;\nfunction fullAccessKey() {\n return new AccessKey({ nonce: 0, permission: new AccessKeyPermission({ fullAccess: new FullAccessPermission({}) }) });\n}\nexports.fullAccessKey = fullAccessKey;\nfunction functionCallAccessKey(receiverId, methodNames, allowance) {\n return new AccessKey({ nonce: 0, permission: new AccessKeyPermission({ functionCall: new FunctionCallPermission({ receiverId, allowance, methodNames }) }) });\n}\nexports.functionCallAccessKey = functionCallAccessKey;\nclass IAction extends enums_1.Assignable {\n}\nexports.IAction = IAction;\nclass CreateAccount extends IAction {\n}\nexports.CreateAccount = CreateAccount;\nclass DeployContract extends IAction {\n}\nexports.DeployContract = DeployContract;\nclass FunctionCall extends IAction {\n}\nexports.FunctionCall = FunctionCall;\nclass Transfer extends IAction {\n}\nexports.Transfer = Transfer;\nclass Stake extends IAction {\n}\nexports.Stake = Stake;\nclass AddKey extends IAction {\n}\nexports.AddKey = AddKey;\nclass DeleteKey extends IAction {\n}\nexports.DeleteKey = DeleteKey;\nclass DeleteAccount extends IAction {\n}\nexports.DeleteAccount = DeleteAccount;\nfunction createAccount() {\n return new Action({ createAccount: new CreateAccount({}) });\n}\nexports.createAccount = createAccount;\nfunction deployContract(code) {\n return new Action({ deployContract: new DeployContract({ code }) });\n}\nexports.deployContract = deployContract;\n/**\n * Constructs {@link Action} instance representing contract method call.\n *\n * @param methodName the name of the method to call\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n */\nfunction functionCall(methodName, args, gas, deposit) {\n const anyArgs = args;\n const isUint8Array = anyArgs.byteLength !== undefined && anyArgs.byteLength === anyArgs.length;\n const serializedArgs = isUint8Array ? args : Buffer.from(JSON.stringify(args));\n return new Action({ functionCall: new FunctionCall({ methodName, args: serializedArgs, gas, deposit }) });\n}\nexports.functionCall = functionCall;\nfunction transfer(deposit) {\n return new Action({ transfer: new Transfer({ deposit }) });\n}\nexports.transfer = transfer;\nfunction stake(stake, publicKey) {\n return new Action({ stake: new Stake({ stake, publicKey }) });\n}\nexports.stake = stake;\nfunction addKey(publicKey, accessKey) {\n return new Action({ addKey: new AddKey({ publicKey, accessKey }) });\n}\nexports.addKey = addKey;\nfunction deleteKey(publicKey) {\n return new Action({ deleteKey: new DeleteKey({ publicKey }) });\n}\nexports.deleteKey = deleteKey;\nfunction deleteAccount(beneficiaryId) {\n return new Action({ deleteAccount: new DeleteAccount({ beneficiaryId }) });\n}\nexports.deleteAccount = deleteAccount;\nclass Signature extends enums_1.Assignable {\n}\nexports.Signature = Signature;\nclass Transaction extends enums_1.Assignable {\n encode() {\n return borsh_1.serialize(exports.SCHEMA, this);\n }\n static decode(bytes) {\n return borsh_1.deserialize(exports.SCHEMA, Transaction, bytes);\n }\n}\nexports.Transaction = Transaction;\nclass SignedTransaction extends enums_1.Assignable {\n encode() {\n return borsh_1.serialize(exports.SCHEMA, this);\n }\n static decode(bytes) {\n return borsh_1.deserialize(exports.SCHEMA, SignedTransaction, bytes);\n }\n}\nexports.SignedTransaction = SignedTransaction;\n/**\n * Contains a list of the valid transaction Actions available with this API\n */\nclass Action extends enums_1.Enum {\n}\nexports.Action = Action;\nexports.SCHEMA = new Map([\n [Signature, { kind: 'struct', fields: [\n ['keyType', 'u8'],\n ['data', [64]]\n ] }],\n [SignedTransaction, { kind: 'struct', fields: [\n ['transaction', Transaction],\n ['signature', Signature]\n ] }],\n [Transaction, { kind: 'struct', fields: [\n ['signerId', 'string'],\n ['publicKey', key_pair_1.PublicKey],\n ['nonce', 'u64'],\n ['receiverId', 'string'],\n ['blockHash', [32]],\n ['actions', [Action]]\n ] }],\n [key_pair_1.PublicKey, { kind: 'struct', fields: [\n ['keyType', 'u8'],\n ['data', [32]]\n ] }],\n [AccessKey, { kind: 'struct', fields: [\n ['nonce', 'u64'],\n ['permission', AccessKeyPermission],\n ] }],\n [AccessKeyPermission, { kind: 'enum', field: 'enum', values: [\n ['functionCall', FunctionCallPermission],\n ['fullAccess', FullAccessPermission],\n ] }],\n [FunctionCallPermission, { kind: 'struct', fields: [\n ['allowance', { kind: 'option', type: 'u128' }],\n ['receiverId', 'string'],\n ['methodNames', ['string']],\n ] }],\n [FullAccessPermission, { kind: 'struct', fields: [] }],\n [Action, { kind: 'enum', field: 'enum', values: [\n ['createAccount', CreateAccount],\n ['deployContract', DeployContract],\n ['functionCall', FunctionCall],\n ['transfer', Transfer],\n ['stake', Stake],\n ['addKey', AddKey],\n ['deleteKey', DeleteKey],\n ['deleteAccount', DeleteAccount],\n ] }],\n [CreateAccount, { kind: 'struct', fields: [] }],\n [DeployContract, { kind: 'struct', fields: [\n ['code', ['u8']]\n ] }],\n [FunctionCall, { kind: 'struct', fields: [\n ['methodName', 'string'],\n ['args', ['u8']],\n ['gas', 'u64'],\n ['deposit', 'u128']\n ] }],\n [Transfer, { kind: 'struct', fields: [\n ['deposit', 'u128']\n ] }],\n [Stake, { kind: 'struct', fields: [\n ['stake', 'u128'],\n ['publicKey', key_pair_1.PublicKey]\n ] }],\n [AddKey, { kind: 'struct', fields: [\n ['publicKey', key_pair_1.PublicKey],\n ['accessKey', AccessKey]\n ] }],\n [DeleteKey, { kind: 'struct', fields: [\n ['publicKey', key_pair_1.PublicKey]\n ] }],\n [DeleteAccount, { kind: 'struct', fields: [\n ['beneficiaryId', 'string']\n ] }],\n]);\nfunction createTransaction(signerId, publicKey, receiverId, nonce, actions, blockHash) {\n return new Transaction({ signerId, publicKey, nonce, receiverId, actions, blockHash });\n}\nexports.createTransaction = createTransaction;\n/**\n * Signs a given transaction from an account with given keys, applied to the given network\n * @param transaction The Transaction object to sign\n * @param signer The {Signer} object that assists with signing keys\n * @param accountId The human-readable NEAR account name\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\nasync function signTransactionObject(transaction, signer, accountId, networkId) {\n const message = borsh_1.serialize(exports.SCHEMA, transaction);\n const hash = new Uint8Array(js_sha256_1.default.sha256.array(message));\n const signature = await signer.signMessage(message, accountId, networkId);\n const signedTx = new SignedTransaction({\n transaction,\n signature: new Signature({ keyType: transaction.publicKey.keyType, data: signature.signature })\n });\n return [hash, signedTx];\n}\nasync function signTransaction(...args) {\n if (args[0].constructor === Transaction) {\n const [transaction, signer, accountId, networkId] = args;\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n else {\n const [receiverId, nonce, actions, blockHash, signer, accountId, networkId] = args;\n const publicKey = await signer.getPublicKey(accountId, networkId);\n const transaction = createTransaction(accountId, publicKey, receiverId, nonce, actions, blockHash);\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n}\nexports.signTransaction = signTransaction;\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","'use strict';\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diffEpochValidators = exports.findSeatPrice = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @params validators: current or next epoch validators.\n * @params numSeats: number of seats.\n */\nfunction findSeatPrice(validators, numSeats) {\n const stakes = validators.map(v => new bn_js_1.default(v.stake, 10)).sort((a, b) => a.cmp(b));\n const num = new bn_js_1.default(numSeats);\n const stakesSum = stakes.reduce((a, b) => a.add(b));\n if (stakesSum.lt(num)) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = new bn_js_1.default(1), right = stakesSum.add(new bn_js_1.default(1));\n while (!left.eq(right.sub(new bn_js_1.default(1)))) {\n const mid = left.add(right).div(new bn_js_1.default(2));\n let found = false;\n let currentSum = new bn_js_1.default(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum.add(stakes[i].div(mid));\n if (currentSum.gte(num)) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\nexports.findSeatPrice = findSeatPrice;\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @params currentValidators: list of current validators.\n * @params nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","'use strict';\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst transaction_1 = require(\"./transaction\");\nconst providers_1 = require(\"./providers\");\nconst borsh_1 = require(\"borsh\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst errors_1 = require(\"./utils/errors\");\nconst rpc_errors_1 = require(\"./utils/rpc_errors\");\nconst exponential_backoff_1 = __importDefault(require(\"./utils/exponential-backoff\"));\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nconst DEFAULT_FUNC_CALL_GAS = new bn_js_1.default('30000000000000');\n// Default number of retries with different nonce before giving up on a transaction.\nconst TX_NONCE_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst TX_NONCE_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst TX_NONCE_RETRY_WAIT_BACKOFF = 1.5;\nfunction parseJsonFromRawResponse(response) {\n return JSON.parse(Buffer.from(response).toString());\n}\n/**\n * More information on [the Account spec](https://nomicon.io/DataStructures/Account.html)\n */\nclass Account {\n constructor(connection, accountId) {\n this.accessKeyByPublicKeyCache = {};\n this.connection = connection;\n this.accountId = accountId;\n }\n get ready() {\n const deprecate = depd_1.default('Account.ready()');\n deprecate('not needed anymore, always ready');\n return Promise.resolve();\n }\n async fetchState() {\n const deprecate = depd_1.default('Account.fetchState()');\n deprecate('use `Account.state()` instead');\n }\n /**\n * Returns the state of a NEAR account\n * @returns {Promise}\n */\n async state() {\n return await this.connection.provider.query(`account/${this.accountId}`, '');\n }\n printLogsAndFailures(contractId, results) {\n for (const result of results) {\n console.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n this.printLogs(contractId, result.logs, '\\t');\n if (result.failure) {\n console.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n }\n printLogs(contractId, logs, prefix = '') {\n for (const log of logs) {\n console.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n }\n async signTransaction(receiverId, actions) {\n const accessKeyInfo = await this.findAccessKey(receiverId, actions);\n if (!accessKeyInfo) {\n throw new providers_1.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair found in ${this.connection.signer}.`, 'KeyNotFound');\n }\n const { accessKey } = accessKeyInfo;\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const nonce = ++accessKey.nonce;\n return await transaction_1.signTransaction(receiverId, nonce, actions, borsh_1.baseDecode(blockHash), this.connection.signer, this.accountId, this.connection.networkId);\n }\n /**\n * @param receiverId NEAR account receiving the transaction\n * @param actions The transaction [Action as described in the spec](https://nomicon.io/RuntimeSpec/Actions.html).\n * @returns {Promise}\n */\n async signAndSendTransaction(receiverId, actions) {\n let txHash, signedTx;\n // TODO: TX_NONCE (different constants for different uses of exponentialBackoff?)\n const result = await exponential_backoff_1.default(TX_NONCE_RETRY_WAIT, TX_NONCE_RETRY_NUMBER, TX_NONCE_RETRY_WAIT_BACKOFF, async () => {\n [txHash, signedTx] = await this.signTransaction(receiverId, actions);\n const publicKey = signedTx.transaction.publicKey;\n try {\n return await this.connection.provider.sendTransaction(signedTx);\n }\n catch (error) {\n if (error.type === 'InvalidNonce') {\n console.warn(`Retrying transaction ${receiverId}:${borsh_1.baseEncode(txHash)} with new nonce.`);\n delete this.accessKeyByPublicKeyCache[publicKey.toString()];\n return null;\n }\n error.context = new providers_1.ErrorContext(borsh_1.baseEncode(txHash));\n throw error;\n }\n });\n if (!result) {\n // TODO: This should have different code actually, as means \"transaction not submitted for sure\"\n throw new providers_1.TypedError('nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.', 'RetriesExceeded');\n }\n const flatLogs = [result.transaction_outcome, ...result.receipts_outcome].reduce((acc, it) => {\n if (it.outcome.logs.length ||\n (typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object')) {\n return acc.concat({\n 'receiptIds': it.outcome.receipt_ids,\n 'logs': it.outcome.logs,\n 'failure': typeof it.outcome.status.Failure != 'undefined' ? rpc_errors_1.parseRpcError(it.outcome.status.Failure) : null\n });\n }\n else\n return acc;\n }, []);\n this.printLogsAndFailures(signedTx.transaction.receiverId, flatLogs);\n if (typeof result.status === 'object' && typeof result.status.Failure === 'object') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n if (result.status.Failure.error_message && result.status.Failure.error_type) {\n throw new providers_1.TypedError(`Transaction ${result.transaction_outcome.id} failed. ${result.status.Failure.error_message}`, result.status.Failure.error_type);\n }\n else {\n throw rpc_errors_1.parseResultError(result);\n }\n }\n // TODO: if Tx is Unknown or Started.\n return result;\n }\n async findAccessKey(receiverId, actions) {\n // TODO: Find matching access key based on transaction (i.e. receiverId and actions)\n const publicKey = await this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n if (!publicKey) {\n return null;\n }\n const cachedAccessKey = this.accessKeyByPublicKeyCache[publicKey.toString()];\n if (cachedAccessKey !== undefined) {\n return { publicKey, accessKey: cachedAccessKey };\n }\n try {\n const accessKey = await this.connection.provider.query(`access_key/${this.accountId}/${publicKey.toString()}`, '');\n this.accessKeyByPublicKeyCache[publicKey.toString()] = accessKey;\n return { publicKey, accessKey };\n }\n catch (e) {\n if (e.type == 'AccessKeyDoesNotExist') {\n return null;\n }\n throw e;\n }\n }\n /**\n * @param contractId NEAR account where the contract is deployed\n * @param publicKey The public key to add while signing and sending the transaction\n * @param data The compiled contract code\n * @returns {Promise}\n */\n async createAndDeployContract(contractId, publicKey, data, amount) {\n const accessKey = transaction_1.fullAccessKey();\n await this.signAndSendTransaction(contractId, [transaction_1.createAccount(), transaction_1.transfer(amount), transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey), transaction_1.deployContract(data)]);\n const contractAccount = new Account(this.connection, contractId);\n return contractAccount;\n }\n /**\n * @param receiverId NEAR account receiving Ⓝ\n * @param amount Amount to send in yoctoⓃ\n * @returns {Promise}\n */\n async sendMoney(receiverId, amount) {\n return this.signAndSendTransaction(receiverId, [transaction_1.transfer(amount)]);\n }\n /**\n * @param newAccountId NEAR account name to be created\n * @param publicKey A public key created from the masterAccount\n * @returns {Promise}\n */\n async createAccount(newAccountId, publicKey, amount) {\n const accessKey = transaction_1.fullAccessKey();\n return this.signAndSendTransaction(newAccountId, [transaction_1.createAccount(), transaction_1.transfer(amount), transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey)]);\n }\n /**\n * @param beneficiaryId The NEAR account that will receive the remaining Ⓝ balance from the account being deleted\n * @returns void\n */\n async deleteAccount(beneficiaryId) {\n return this.signAndSendTransaction(this.accountId, [transaction_1.deleteAccount(beneficiaryId)]);\n }\n /**\n * @param data The compiled contract code\n * @returns {Promise}\n */\n async deployContract(data) {\n return this.signAndSendTransaction(this.accountId, [transaction_1.deployContract(data)]);\n }\n /**\n * @param contractId NEAR account where the contract is deployed\n * @param methodName The method name on the contract as it is written in the contract code\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n * @returns {Promise}\n */\n async functionCall(contractId, methodName, args, gas, amount) {\n args = args || {};\n this.validateArgs(args);\n return this.signAndSendTransaction(contractId, [transaction_1.functionCall(methodName, args, gas || DEFAULT_FUNC_CALL_GAS, amount)]);\n }\n /**\n * @param publicKey A public key to be associated with the contract\n * @param contractId NEAR account where the contract is deployed\n * @param methodNames The method names on the contract that should be allowed to be called. Pass null for no method names and '' or [] for any method names.\n * @param amount Payment in yoctoⓃ that is sent to the contract during this function call\n * @returns {Promise}\n * TODO: expand this API to support more options.\n */\n async addKey(publicKey, contractId, methodNames, amount) {\n if (!methodNames) {\n methodNames = [];\n }\n if (!Array.isArray(methodNames)) {\n methodNames = [methodNames];\n }\n let accessKey;\n if (!contractId) {\n accessKey = transaction_1.fullAccessKey();\n }\n else {\n accessKey = transaction_1.functionCallAccessKey(contractId, methodNames, amount);\n }\n return this.signAndSendTransaction(this.accountId, [transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey)]);\n }\n /**\n * @param publicKey The public key to be deleted\n * @returns {Promise}\n */\n async deleteKey(publicKey) {\n return this.signAndSendTransaction(this.accountId, [transaction_1.deleteKey(key_pair_1.PublicKey.from(publicKey))]);\n }\n /**\n * @param publicKey The public key for the account that's staking\n * @param amount The account to stake in yoctoⓃ\n * @returns {Promise}\n */\n async stake(publicKey, amount) {\n return this.signAndSendTransaction(this.accountId, [transaction_1.stake(amount, key_pair_1.PublicKey.from(publicKey))]);\n }\n validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new errors_1.PositionalArgsError();\n }\n }\n /**\n * @param contractId NEAR account where the contract is deployed\n * @param methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param args Any arguments to the view contract method, wrapped in JSON\n * @returns {Promise}\n */\n async viewFunction(contractId, methodName, args, { parse = parseJsonFromRawResponse } = {}) {\n args = args || {};\n this.validateArgs(args);\n const result = await this.connection.provider.query(`call/${contractId}/${methodName}`, borsh_1.baseEncode(JSON.stringify(args)));\n if (result.logs) {\n this.printLogs(contractId, result.logs);\n }\n return result.result && result.result.length > 0 && parse(Buffer.from(result.result));\n }\n /**\n * See https://docs.near.org/docs/develop/front-end/rpc#view-contract-state\n *\n * Returns the state (key value pairs) of this account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n *\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\n async viewState(prefix, blockQuery) {\n const { blockId, finality } = blockQuery || {};\n const { values } = await this.connection.provider.query({\n request_type: 'view_state',\n block_id: blockId,\n finality: blockId ? undefined : finality || 'optimistic',\n account_id: this.accountId,\n prefix_base64: Buffer.from(prefix).toString('base64')\n });\n return values.map(({ key, value }) => ({\n key: Buffer.from(key, 'base64'),\n value: Buffer.from(value, 'base64')\n }));\n }\n /**\n * @returns array of {access_key: AccessKey, public_key: PublicKey} items.\n */\n async getAccessKeys() {\n const response = await this.connection.provider.query(`access_key/${this.accountId}`, '');\n // A breaking API change introduced extra information into the\n // response, so it now returns an object with a `keys` field instead\n // of an array: https://github.com/nearprotocol/nearcore/pull/1789\n if (Array.isArray(response)) {\n return response;\n }\n return response.keys;\n }\n /**\n * Returns account details in terms of authorized apps and transactions\n * @returns {Promise}\n */\n async getAccountDetails() {\n // TODO: update the response value to return all the different keys, not just app keys.\n // Also if we need this function, or getAccessKeys is good enough.\n const accessKeys = await this.getAccessKeys();\n const result = { authorizedApps: [], transactions: [] };\n accessKeys.map((item) => {\n if (item.access_key.permission.FunctionCall !== undefined) {\n const perm = item.access_key.permission.FunctionCall;\n result.authorizedApps.push({\n contractId: perm.receiver_id,\n amount: perm.allowance,\n publicKey: item.public_key,\n });\n }\n });\n return result;\n }\n /**\n * Returns calculated account balance\n * @returns {Promise}\n */\n async getAccountBalance() {\n const protocolConfig = await this.connection.provider.experimental_protocolConfig({ finality: 'final' });\n const state = await this.state();\n const costPerByte = new bn_js_1.default(protocolConfig.runtime_config.storage_amount_per_byte);\n const stateStaked = new bn_js_1.default(state.storage_usage).mul(costPerByte);\n const staked = new bn_js_1.default(state.locked);\n const totalBalance = new bn_js_1.default(state.amount).add(staked);\n const availableBalance = totalBalance.sub(bn_js_1.default.max(staked, stateStaked));\n return {\n total: totalBalance.toString(),\n stateStaked: stateStaked.toString(),\n staked: staked.toString(),\n available: availableBalance.toString()\n };\n }\n}\nexports.Account = Account;\n","'use strict';\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account2FA = exports.AccountMultisig = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_VIEW_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst account_1 = require(\"./account\");\nconst contract_1 = require(\"./contract\");\nconst format_1 = require(\"./utils/format\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst transaction_1 = require(\"./transaction\");\nconst web_1 = require(\"./utils/web\");\nexports.MULTISIG_STORAGE_KEY = '__multisigRequest';\nexports.MULTISIG_ALLOWANCE = new bn_js_1.default(format_1.parseNearAmount('1'));\nexports.MULTISIG_GAS = new bn_js_1.default('100000000000000');\nexports.MULTISIG_DEPOSIT = new bn_js_1.default('0');\nexports.MULTISIG_CHANGE_METHODS = ['add_request', 'add_request_and_confirm', 'delete_request', 'confirm'];\nexports.MULTISIG_VIEW_METHODS = ['get_request_nonce', 'list_request_ids'];\nexports.MULTISIG_CONFIRM_METHODS = ['confirm'];\n;\n// in memory request cache for node w/o localStorage\nlet storageFallback = {\n [exports.MULTISIG_STORAGE_KEY]: null\n};\nclass AccountMultisig extends account_1.Account {\n constructor(connection, accountId, options) {\n super(connection, accountId);\n this.storage = options.storage;\n this.onAddRequestResult = options.onAddRequestResult;\n this.contract = getContract(this);\n }\n async signAndSendTransactionWithAccount(receiverId, actions) {\n return super.signAndSendTransaction(receiverId, actions);\n }\n async signAndSendTransaction(receiverId, actions) {\n const { accountId } = this;\n if (this.isDeleteAction(actions)) {\n return await super.signAndSendTransaction(accountId, actions);\n }\n await this.deleteUnconfirmedRequests();\n const requestId = await this.getRequestNonce();\n this.setRequest({ accountId, requestId, actions });\n const args = Buffer.from(JSON.stringify({\n request: {\n receiver_id: receiverId,\n actions: convertActions(actions, accountId, receiverId)\n }\n }));\n const result = await super.signAndSendTransaction(accountId, [\n transaction_1.functionCall('add_request_and_confirm', args, exports.MULTISIG_GAS, exports.MULTISIG_DEPOSIT)\n ]);\n if (this.onAddRequestResult) {\n await this.onAddRequestResult(result);\n }\n return result;\n }\n async deleteUnconfirmedRequests() {\n const { contract } = this;\n const request_ids = await this.getRequestIds();\n for (const request_id of request_ids) {\n try {\n await contract.delete_request({ request_id });\n }\n catch (e) {\n console.warn(\"Attempt to delete an earlier request before 15 minutes failed. Will try again.\");\n }\n }\n }\n // helpers\n async getRequestNonce() {\n return this.contract.get_request_nonce();\n }\n async getRequestIds() {\n return this.contract.list_request_ids();\n }\n isDeleteAction(actions) {\n return actions && actions[0] && actions[0].functionCall && actions[0].functionCall.methodName === 'delete_request';\n }\n getRequest() {\n if (this.storage) {\n return JSON.parse(this.storage.getItem(exports.MULTISIG_STORAGE_KEY) || `{}`);\n }\n return storageFallback[exports.MULTISIG_STORAGE_KEY];\n }\n setRequest(data) {\n if (this.storage) {\n return this.storage.setItem(exports.MULTISIG_STORAGE_KEY, JSON.stringify(data));\n }\n storageFallback[exports.MULTISIG_STORAGE_KEY] = data;\n }\n}\nexports.AccountMultisig = AccountMultisig;\nclass Account2FA extends AccountMultisig {\n constructor(connection, accountId, options) {\n super(connection, accountId, options);\n this.helperUrl = 'https://helper.testnet.near.org';\n this.helperUrl = options.helperUrl || this.helperUrl;\n this.storage = options.storage;\n this.sendCode = options.sendCode || this.sendCodeDefault;\n this.getCode = options.getCode || this.getCodeDefault;\n this.verifyCode = options.verifyCode || this.verifyCodeDefault;\n this.onConfirmResult = options.onConfirmResult;\n this.contract = getContract(this);\n }\n async signAndSendTransaction(receiverId, actions) {\n await super.signAndSendTransaction(receiverId, actions);\n // TODO: Should following override onRequestResult in superclass instead of doing custom signAndSendTransaction?\n await this.sendCode();\n const result = await this.promptAndVerify();\n if (this.onConfirmResult) {\n await this.onConfirmResult(result);\n }\n return result;\n }\n // default helpers for CH deployments of multisig\n async deployMultisig(contractBytes) {\n const { accountId } = this;\n const seedOrLedgerKey = (await this.getRecoveryMethods()).data\n .filter(({ kind, publicKey }) => (kind === 'phrase' || kind === 'ledger') && publicKey !== null)\n .map((rm) => rm.publicKey);\n const fak2lak = (await this.getAccessKeys())\n .filter(({ public_key, access_key: { permission } }) => permission === 'FullAccess' && !seedOrLedgerKey.includes(public_key))\n .map((ak) => ak.public_key)\n .map(toPK);\n const confirmOnlyKey = toPK((await this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const newArgs = Buffer.from(JSON.stringify({ 'num_confirmations': 2 }));\n const actions = [\n ...fak2lak.map((pk) => transaction_1.deleteKey(pk)),\n ...fak2lak.map((pk) => transaction_1.addKey(pk, transaction_1.functionCallAccessKey(accountId, exports.MULTISIG_CHANGE_METHODS, null))),\n transaction_1.addKey(confirmOnlyKey, transaction_1.functionCallAccessKey(accountId, exports.MULTISIG_CONFIRM_METHODS, null)),\n transaction_1.deployContract(contractBytes),\n ];\n if ((await this.state()).code_hash === '11111111111111111111111111111111') {\n actions.push(transaction_1.functionCall('new', newArgs, exports.MULTISIG_GAS, exports.MULTISIG_DEPOSIT));\n }\n console.log('deploying multisig contract for', accountId);\n return await super.signAndSendTransactionWithAccount(accountId, actions);\n }\n async disable(contractBytes) {\n const { accountId } = this;\n const accessKeys = await this.getAccessKeys();\n const lak2fak = accessKeys.filter(({ access_key }) => access_key && access_key.permission && access_key.permission.FunctionCall &&\n access_key.permission.FunctionCall.receiver_id === accountId &&\n access_key.permission.FunctionCall.method_names &&\n access_key.permission.FunctionCall.method_names.length === 4 &&\n access_key.permission.FunctionCall.method_names.includes('add_request_and_confirm'));\n const confirmOnlyKey = key_pair_1.PublicKey.from((await this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const actions = [\n transaction_1.deleteKey(confirmOnlyKey),\n ...lak2fak.map(({ public_key }) => transaction_1.deleteKey(public_key)),\n ...lak2fak.map(({ public_key }) => transaction_1.addKey(public_key, null)),\n transaction_1.deployContract(contractBytes),\n ];\n console.log('disabling 2fa for', accountId);\n return await this.signAndSendTransaction(accountId, actions);\n }\n async sendCodeDefault() {\n const { accountId } = this;\n const { requestId, actions } = this.getRequest();\n if (this.isDeleteAction(actions)) {\n return;\n }\n const method = await this.get2faMethod();\n await this.postSignedJson('/2fa/send', {\n accountId,\n method,\n requestId,\n });\n return requestId;\n }\n async getCodeDefault(method) {\n throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is \"email\" or \"phone\".');\n }\n async promptAndVerify() {\n const method = await this.get2faMethod();\n const securityCode = await this.getCode(method);\n try {\n const result = await this.verifyCode(securityCode);\n // TODO: Parse error from result for real (like in normal account.signAndSendTransaction)\n return result;\n }\n catch (e) {\n console.warn('Error validating security code:', e);\n if (e.toString().includes('invalid 2fa code provided') || e.toString().includes('2fa code not valid')) {\n return await this.promptAndVerify();\n }\n throw e;\n }\n }\n async verifyCodeDefault(securityCode) {\n const { accountId } = this;\n const request = this.getRequest();\n if (!request) {\n throw new Error('no request pending');\n }\n const { requestId } = request;\n return await this.postSignedJson('/2fa/verify', {\n accountId,\n securityCode,\n requestId\n });\n }\n async getRecoveryMethods() {\n const { accountId } = this;\n return {\n accountId,\n data: await this.postSignedJson('/account/recoveryMethods', { accountId })\n };\n }\n async get2faMethod() {\n let { data } = await this.getRecoveryMethods();\n if (data && data.length) {\n data = data.find((m) => m.kind.indexOf('2fa-') === 0);\n }\n if (!data)\n return null;\n const { kind, detail } = data;\n return { kind, detail };\n }\n async signatureFor() {\n const { accountId } = this;\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockNumber = block.header.height.toString();\n const signed = await this.connection.signer.signMessage(Buffer.from(blockNumber), accountId, this.connection.networkId);\n const blockNumberSignature = Buffer.from(signed.signature).toString('base64');\n return { blockNumber, blockNumberSignature };\n }\n async postSignedJson(path, body) {\n return await web_1.fetchJson(this.helperUrl + path, JSON.stringify({\n ...body,\n ...(await this.signatureFor())\n }));\n }\n}\nexports.Account2FA = Account2FA;\n// helpers\nconst toPK = (pk) => key_pair_1.PublicKey.from(pk);\nconst convertPKForContract = (pk) => pk.toString().replace('ed25519:', '');\nconst getContract = (account) => {\n return new contract_1.Contract(account, account.accountId, {\n viewMethods: exports.MULTISIG_VIEW_METHODS,\n changeMethods: exports.MULTISIG_CHANGE_METHODS,\n });\n};\nconst convertActions = (actions, accountId, receiverId) => actions.map((a) => {\n const type = a.enum;\n const { gas, publicKey, methodName, args, deposit, accessKey, code } = a[type];\n const action = {\n type: type[0].toUpperCase() + type.substr(1),\n gas: (gas && gas.toString()) || undefined,\n public_key: (publicKey && convertPKForContract(publicKey)) || undefined,\n method_name: methodName,\n args: (args && Buffer.from(args).toString('base64')) || undefined,\n code: (code && Buffer.from(code).toString('base64')) || undefined,\n amount: (deposit && deposit.toString()) || undefined,\n deposit: (deposit && deposit.toString()) || '0',\n permission: undefined,\n };\n if (accessKey) {\n if (receiverId === accountId && accessKey.permission.enum !== 'fullAccess') {\n action.permission = {\n receiver_id: accountId,\n allowance: exports.MULTISIG_ALLOWANCE.toString(),\n method_names: exports.MULTISIG_CHANGE_METHODS,\n };\n }\n if (accessKey.permission.enum === 'functionCall') {\n const { receiverId: receiver_id, methodNames: method_names, allowance } = accessKey.permission.functionCall;\n action.permission = {\n receiver_id,\n allowance: (allowance && allowance.toString()) || undefined,\n method_names\n };\n }\n }\n return action;\n});\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst providers_1 = require(\"./providers\");\nconst errors_1 = require(\"./utils/errors\");\n// Makes `function.name` return given name\nfunction nameFunction(name, body) {\n return {\n [name](...args) {\n return body(...args);\n }\n }[name];\n}\nconst isUint8Array = (x) => x && x.byteLength !== undefined && x.byteLength === x.length;\nconst isObject = (x) => Object.prototype.toString.call(x) === '[object Object]';\n/**\n * Defines a smart contract on NEAR including the mutable and non-mutable methods\n */\nclass Contract {\n constructor(account, contractId, options) {\n this.account = account;\n this.contractId = contractId;\n const { viewMethods = [], changeMethods = [] } = options;\n viewMethods.forEach((methodName) => {\n Object.defineProperty(this, methodName, {\n writable: false,\n enumerable: true,\n value: nameFunction(methodName, async (args = {}, options = {}, ...ignored) => {\n if (ignored.length || !(isObject(args) || isUint8Array(args)) || !isObject(options)) {\n throw new errors_1.PositionalArgsError();\n }\n return this.account.viewFunction(this.contractId, methodName, args, options);\n })\n });\n });\n changeMethods.forEach((methodName) => {\n Object.defineProperty(this, methodName, {\n writable: false,\n enumerable: true,\n value: nameFunction(methodName, async (args = {}, gas, amount, ...ignored) => {\n if (ignored.length || !(isObject(args) || isUint8Array(args))) {\n throw new errors_1.PositionalArgsError();\n }\n validateBNLike({ gas, amount });\n const rawResult = await this.account.functionCall(this.contractId, methodName, args, gas, amount);\n return providers_1.getTransactionLastResult(rawResult);\n })\n });\n });\n }\n}\nexports.Contract = Contract;\n/**\n * Validation on arguments being a big number from bn.js\n * Throws if an argument is not in BN format or otherwise invalid\n * @param argMap\n */\nfunction validateBNLike(argMap) {\n const bnLike = 'number, decimal string or BN';\n for (const argName of Object.keys(argMap)) {\n const argValue = argMap[argName];\n if (argValue && !bn_js_1.default.isBN(argValue) && isNaN(argValue)) {\n throw new errors_1.ArgumentTypeError(argName, bnLike, argValue);\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nconst web_1 = require(\"./utils/web\");\n/**\n * Account creator provides an interface for implementations to actually create accounts\n */\nclass AccountCreator {\n}\nexports.AccountCreator = AccountCreator;\nclass LocalAccountCreator extends AccountCreator {\n constructor(masterAccount, initialBalance) {\n super();\n this.masterAccount = masterAccount;\n this.initialBalance = initialBalance;\n }\n /**\n * Creates an account using a masterAccount, meaning the new account is created from an existing account\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n async createAccount(newAccountId, publicKey) {\n await this.masterAccount.createAccount(newAccountId, publicKey, this.initialBalance);\n }\n}\nexports.LocalAccountCreator = LocalAccountCreator;\nclass UrlAccountCreator extends AccountCreator {\n constructor(connection, helperUrl) {\n super();\n this.connection = connection;\n this.helperUrl = helperUrl;\n }\n /**\n * Creates an account using a helperUrl\n * This is [hosted here](https://helper.nearprotocol.com) or set up locally with the [near-contract-helper](https://github.com/nearprotocol/near-contract-helper) repository\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n async createAccount(newAccountId, publicKey) {\n await web_1.fetchJson(`${this.helperUrl}/account`, JSON.stringify({ newAccountId, newAccountPublicKey: publicKey.toString() }));\n }\n}\nexports.UrlAccountCreator = UrlAccountCreator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nconst providers_1 = require(\"./providers\");\nconst signer_1 = require(\"./signer\");\n/**\n * @param config Contains connection info details\n * @returns {Provider}\n */\nfunction getProvider(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'JsonRpcProvider': return new providers_1.JsonRpcProvider(config.args.url);\n default: throw new Error(`Unknown provider type ${config.type}`);\n }\n}\n/**\n * @param config Contains connection info details\n * @returns {Signer}\n */\nfunction getSigner(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'InMemorySigner': {\n return new signer_1.InMemorySigner(config.keyStore);\n }\n default: throw new Error(`Unknown signer type ${config.type}`);\n }\n}\n/**\n * Connects an account to a given network via a given provider\n */\nclass Connection {\n constructor(networkId, provider, signer) {\n this.networkId = networkId;\n this.provider = provider;\n this.signer = signer;\n }\n /**\n * @param config Contains connection info details\n */\n static fromConfig(config) {\n const provider = getProvider(config.provider);\n const signer = getSigner(config.signer);\n return new Connection(config.networkId, provider, signer);\n }\n}\nexports.Connection = Connection;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemorySigner = exports.Signer = void 0;\nconst js_sha256_1 = __importDefault(require(\"js-sha256\"));\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst in_memory_key_store_1 = require(\"./key_stores/in_memory_key_store\");\n/**\n * General signing interface, can be used for in memory signing, RPC singing, external wallet, HSM, etc.\n */\nclass Signer {\n}\nexports.Signer = Signer;\n/**\n * Signs using in memory key store.\n */\nclass InMemorySigner extends Signer {\n constructor(keyStore) {\n super();\n this.keyStore = keyStore;\n }\n /**\n * Creates a single account Signer instance with account, network and keyPair provided.\n *\n * Intended to be useful for temporary keys (e.g. claiming a Linkdrop).\n *\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account to assign the key pair to\n * @param keyPair The keyPair to use for signing\n */\n static async fromKeyPair(networkId, accountId, keyPair) {\n const keyStore = new in_memory_key_store_1.InMemoryKeyStore();\n await keyStore.setKey(networkId, accountId, keyPair);\n return new InMemorySigner(keyStore);\n }\n /**\n * Creates a public key for the account given\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n async createKey(accountId, networkId) {\n const keyPair = key_pair_1.KeyPair.fromRandom('ed25519');\n await this.keyStore.setKey(networkId, accountId, keyPair);\n return keyPair.getPublicKey();\n }\n /**\n * Gets the existing public key for a given account\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise} Returns the public key or null if not found\n */\n async getPublicKey(accountId, networkId) {\n const keyPair = await this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n return null;\n }\n return keyPair.getPublicKey();\n }\n /**\n * @param message A message to be signed, typically a serialized transaction\n * @param accountId the NEAR account signing the message\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n async signMessage(message, accountId, networkId) {\n const hash = new Uint8Array(js_sha256_1.default.sha256.array(message));\n if (!accountId) {\n throw new Error('InMemorySigner requires provided account id');\n }\n const keyPair = await this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n throw new Error(`Key for ${accountId} not found in ${networkId}`);\n }\n return keyPair.sign(hash);\n }\n toString() {\n return `InMemorySigner(${this.keyStore})`;\n }\n}\nexports.InMemorySigner = InMemorySigner;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst account_1 = require(\"./account\");\nconst connection_1 = require(\"./connection\");\nconst contract_1 = require(\"./contract\");\nconst account_creator_1 = require(\"./account_creator\");\nclass Near {\n constructor(config) {\n this.config = config;\n this.connection = connection_1.Connection.fromConfig({\n networkId: config.networkId,\n provider: { type: 'JsonRpcProvider', args: { url: config.nodeUrl } },\n signer: config.signer || { type: 'InMemorySigner', keyStore: config.keyStore || config.deps.keyStore }\n });\n if (config.masterAccount) {\n // TODO: figure out better way of specifiying initial balance.\n // Hardcoded number below must be enough to pay the gas cost to dev-deploy with near-shell for multiple times\n const initialBalance = config.initialBalance ? new bn_js_1.default(config.initialBalance) : new bn_js_1.default('500000000000000000000000000');\n this.accountCreator = new account_creator_1.LocalAccountCreator(new account_1.Account(this.connection, config.masterAccount), initialBalance);\n }\n else if (config.helperUrl) {\n this.accountCreator = new account_creator_1.UrlAccountCreator(this.connection, config.helperUrl);\n }\n else {\n this.accountCreator = null;\n }\n }\n /**\n *\n * @param accountId near accountId used to interact with the network.\n */\n async account(accountId) {\n const account = new account_1.Account(this.connection, accountId);\n return account;\n }\n /**\n *\n * @param accountId\n * @param publicKey\n */\n async createAccount(accountId, publicKey) {\n if (!this.accountCreator) {\n throw new Error('Must specify account creator, either via masterAccount or helperUrl configuration settings.');\n }\n await this.accountCreator.createAccount(accountId, publicKey);\n return new account_1.Account(this.connection, accountId);\n }\n /**\n * @deprecated Use `new nearApi.Contract(yourAccount, contractId, { viewMethods, changeMethods })` instead.\n * @param contractId\n * @param options\n */\n async loadContract(contractId, options) {\n const account = new account_1.Account(this.connection, options.sender);\n return new contract_1.Contract(account, contractId, options);\n }\n /**\n * @deprecated Use `yourAccount.sendMoney` instead.\n * @param amount\n * @param originator\n * @param receiver\n */\n async sendTokens(amount, originator, receiver) {\n console.warn('near.sendTokens is deprecated. Use `yourAccount.sendMoney` instead.');\n const account = new account_1.Account(this.connection, originator);\n const result = await account.sendMoney(receiver, amount);\n return result.transaction_outcome.id;\n }\n}\nexports.Near = Near;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectedWalletAccount = exports.WalletAccount = exports.WalletConnection = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst account_1 = require(\"./account\");\nconst transaction_1 = require(\"./transaction\");\nconst utils_1 = require(\"./utils\");\nconst borsh_1 = require(\"borsh\");\nconst borsh_2 = require(\"borsh\");\nconst LOGIN_WALLET_URL_SUFFIX = '/login/';\nconst MULTISIG_HAS_METHOD = 'add_request_and_confirm';\nconst LOCAL_STORAGE_KEY_SUFFIX = '_wallet_auth_key';\nconst PENDING_ACCESS_KEY_PREFIX = 'pending_key'; // browser storage key for a pending access key (i.e. key has been generated but we are not sure it was added yet)\nclass WalletConnection {\n constructor(near, appKeyPrefix) {\n this._near = near;\n const authDataKey = appKeyPrefix + LOCAL_STORAGE_KEY_SUFFIX;\n const authData = JSON.parse(window.localStorage.getItem(authDataKey));\n this._networkId = near.config.networkId;\n this._walletBaseUrl = near.config.walletUrl;\n appKeyPrefix = appKeyPrefix || near.config.contractName || 'default';\n this._keyStore = near.connection.signer.keyStore;\n this._authData = authData || { allKeys: [] };\n this._authDataKey = authDataKey;\n if (!this.isSignedIn()) {\n this._completeSignInWithAccessKey();\n }\n }\n /**\n * Returns true, if this WalletAccount is authorized with the wallet.\n * @example\n * walletAccount.isSignedIn();\n */\n isSignedIn() {\n return !!this._authData.accountId;\n }\n /**\n * Returns authorized Account ID.\n * @example\n * walletAccount.getAccountId();\n */\n getAccountId() {\n return this._authData.accountId || '';\n }\n /**\n * Redirects current page to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * walletAccount.requestSignIn('account-with-deploy-contract.near', {\n * successUrl: \"https://example.com/success.html\",\n * failureUrl: \"https://example.com/error.html\"\n * });\n */\n async requestSignIn(contractIdOrOptions = {}, title, successUrl, failureUrl) {\n let options;\n if (typeof contractIdOrOptions === 'string') {\n const deprecate = depd_1.default('requestSignIn(contractId, title)');\n deprecate('`title` ignored; use `requestSignIn({ contractId, successUrl, failureUrl })` instead');\n options = { contractId: contractIdOrOptions, successUrl, failureUrl };\n }\n else {\n options = contractIdOrOptions;\n }\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL(this._walletBaseUrl + LOGIN_WALLET_URL_SUFFIX);\n newUrl.searchParams.set('success_url', options.successUrl || currentUrl.href);\n newUrl.searchParams.set('failure_url', options.failureUrl || currentUrl.href);\n if (options.contractId) {\n newUrl.searchParams.set('contract_id', options.contractId);\n const accessKey = utils_1.KeyPair.fromRandom('ed25519');\n newUrl.searchParams.set('public_key', accessKey.getPublicKey().toString());\n await this._keyStore.setKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + accessKey.getPublicKey(), accessKey);\n }\n window.location.assign(newUrl.toString());\n }\n /**\n * Requests the user to quickly sign for a transaction or batch of transactions\n * @param transactions Array of Transaction objects that will be requested to sign\n * @param callbackUrl The url to navigate to after the user is prompted to sign\n */\n async requestSignTransactions(transactions, callbackUrl) {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL('sign', this._walletBaseUrl);\n newUrl.searchParams.set('transactions', transactions\n .map(transaction => borsh_2.serialize(transaction_1.SCHEMA, transaction))\n .map(serialized => Buffer.from(serialized).toString('base64'))\n .join(','));\n newUrl.searchParams.set('callbackUrl', callbackUrl || currentUrl.href);\n window.location.assign(newUrl.toString());\n }\n /**\n * Complete sign in for a given account id and public key. To be invoked by the app when getting a callback from the wallet.\n */\n async _completeSignInWithAccessKey() {\n const currentUrl = new URL(window.location.href);\n const publicKey = currentUrl.searchParams.get('public_key') || '';\n const allKeys = (currentUrl.searchParams.get('all_keys') || '').split(',');\n const accountId = currentUrl.searchParams.get('account_id') || '';\n // TODO: Handle errors during login\n if (accountId) {\n this._authData = {\n accountId,\n allKeys\n };\n window.localStorage.setItem(this._authDataKey, JSON.stringify(this._authData));\n if (publicKey) {\n await this._moveKeyFromTempToPermanent(accountId, publicKey);\n }\n }\n currentUrl.searchParams.delete('public_key');\n currentUrl.searchParams.delete('all_keys');\n currentUrl.searchParams.delete('account_id');\n window.history.replaceState({}, document.title, currentUrl.toString());\n }\n /**\n *\n * @param accountId The NEAR account owning the given public key\n * @param publicKey The public key being set to the key store\n */\n async _moveKeyFromTempToPermanent(accountId, publicKey) {\n const keyPair = await this._keyStore.getKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n await this._keyStore.setKey(this._networkId, accountId, keyPair);\n await this._keyStore.removeKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n }\n /**\n * Sign out from the current account\n * @example\n * walletAccount.signOut();\n */\n signOut() {\n this._authData = {};\n window.localStorage.removeItem(this._authDataKey);\n }\n /**\n * Returns the current connected wallet account\n */\n account() {\n if (!this._connectedAccount) {\n this._connectedAccount = new ConnectedWalletAccount(this, this._near.connection, this._authData.accountId);\n }\n return this._connectedAccount;\n }\n}\nexports.WalletConnection = WalletConnection;\nexports.WalletAccount = WalletConnection;\n/**\n * {@link Account} implementation which redirects to wallet using (@link WalletConnection) when no local key is available.\n */\nclass ConnectedWalletAccount extends account_1.Account {\n constructor(walletConnection, connection, accountId) {\n super(connection, accountId);\n this.walletConnection = walletConnection;\n }\n // Overriding Account methods\n async signAndSendTransaction(receiverId, actions) {\n const localKey = await this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n let accessKey = await this.accessKeyForTransaction(receiverId, actions, localKey);\n if (!accessKey) {\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`);\n }\n if (localKey && localKey.toString() === accessKey.public_key) {\n try {\n return await super.signAndSendTransaction(receiverId, actions);\n }\n catch (e) {\n if (e.type === 'NotEnoughBalance') {\n accessKey = await this.accessKeyForTransaction(receiverId, actions);\n }\n else {\n throw e;\n }\n }\n }\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockHash = borsh_1.baseDecode(block.header.hash);\n const publicKey = utils_1.PublicKey.from(accessKey.public_key);\n // TODO: Cache & listen for nonce updates for given access key\n const nonce = accessKey.access_key.nonce + 1;\n const transaction = transaction_1.createTransaction(this.accountId, publicKey, receiverId, nonce, actions, blockHash);\n await this.walletConnection.requestSignTransactions([transaction], window.location.href);\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new Error('Failed to redirect to sign transaction'));\n }, 1000);\n });\n // TODO: Aggregate multiple transaction request with \"debounce\".\n // TODO: Introduce TrasactionQueue which also can be used to watch for status?\n }\n /**\n * Check if given access key allows the function call or method attempted in transaction\n * @param accessKey Array of {access_key: AccessKey, public_key: PublicKey} items\n * @param receiverId The NEAR account attempting to have access\n * @param actions The action(s) needed to be checked for access\n */\n async accessKeyMatchesTransaction(accessKey, receiverId, actions) {\n const { access_key: { permission } } = accessKey;\n if (permission === 'FullAccess') {\n return true;\n }\n if (permission.FunctionCall) {\n const { receiver_id: allowedReceiverId, method_names: allowedMethods } = permission.FunctionCall;\n /********************************\n Accept multisig access keys and let wallets attempt to signAndSendTransaction\n If an access key has itself as receiverId and method permission add_request_and_confirm, then it is being used in a wallet with multisig contract: https://github.com/near/core-contracts/blob/671c05f09abecabe7a7e58efe942550a35fc3292/multisig/src/lib.rs#L149-L153\n ********************************/\n if (allowedReceiverId === this.accountId && allowedMethods.includes(MULTISIG_HAS_METHOD)) {\n return true;\n }\n if (allowedReceiverId === receiverId) {\n if (actions.length !== 1) {\n return false;\n }\n const [{ functionCall }] = actions;\n return functionCall &&\n (!functionCall.deposit || functionCall.deposit.toString() === '0') && // TODO: Should support charging amount smaller than allowance?\n (allowedMethods.length === 0 || allowedMethods.includes(functionCall.methodName));\n // TODO: Handle cases when allowance doesn't have enough to pay for gas\n }\n }\n // TODO: Support other permissions than FunctionCall\n return false;\n }\n /**\n * Helper function returning the access key (if it exists) to the receiver that grants the designated permission\n * @param receiverId The NEAR account seeking the access key for a transaction\n * @param actions The action(s) sought to gain access to\n * @param localKey A local public key provided to check for access\n * @returns Promise\n */\n async accessKeyForTransaction(receiverId, actions, localKey) {\n const accessKeys = await this.getAccessKeys();\n if (localKey) {\n const accessKey = accessKeys.find(key => key.public_key === localKey.toString());\n if (accessKey && await this.accessKeyMatchesTransaction(accessKey, receiverId, actions)) {\n return accessKey;\n }\n }\n const walletKeys = this.walletConnection._authData.allKeys;\n for (const accessKey of accessKeys) {\n if (walletKeys.indexOf(accessKey.public_key) !== -1 && await this.accessKeyMatchesTransaction(accessKey, receiverId, actions)) {\n return accessKey;\n }\n }\n return null;\n }\n}\nexports.ConnectedWalletAccount = ConnectedWalletAccount;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connect = void 0;\nconst near_1 = require(\"./near\");\n/**\n * Initialize connection to Near network.\n */\nasync function connect(config) {\n return new near_1.Near(config);\n}\nexports.connect = connect;\n","require(\"capability/es5\");\r\n\r\nvar capability = require(\"capability\");\r\n\r\nvar polyfill;\r\nif (capability(\"Error.captureStackTrace\"))\r\n polyfill = require(\"./v8\");\r\nelse if (capability(\"Error.prototype.stack\"))\r\n polyfill = require(\"./non-v8/index\");\r\nelse\r\n polyfill = require(\"./unsupported\");\r\n\r\nmodule.exports = polyfill();","require(\".\").check(\"es5\");","require(\"./lib/definitions\");\r\nmodule.exports = require(\"./lib\");\r\n","var capability = require(\".\"),\r\n define = capability.define,\r\n test = capability.test;\r\n\r\ndefine(\"strict mode\", function () {\r\n return (this === undefined);\r\n});\r\n\r\ndefine(\"arguments.callee.caller\", function () {\r\n try {\r\n return (function () {\r\n return arguments.callee.caller;\r\n })() === arguments.callee;\r\n } catch (strictModeIsEnforced) {\r\n return false;\r\n }\r\n});\r\n\r\ndefine(\"es5\", function () {\r\n return test(\"Array.prototype.forEach\") &&\r\n test(\"Array.prototype.map\") &&\r\n test(\"Function.prototype.bind\") &&\r\n test(\"Object.create\") &&\r\n test(\"Object.defineProperties\") &&\r\n test(\"Object.defineProperty\") &&\r\n test(\"Object.prototype.hasOwnProperty\");\r\n});\r\n\r\ndefine(\"Array.prototype.forEach\", function () {\r\n return Array.prototype.forEach;\r\n});\r\n\r\ndefine(\"Array.prototype.map\", function () {\r\n return Array.prototype.map;\r\n});\r\n\r\ndefine(\"Function.prototype.bind\", function () {\r\n return Function.prototype.bind;\r\n});\r\n\r\ndefine(\"Object.create\", function () {\r\n return Object.create;\r\n});\r\n\r\ndefine(\"Object.defineProperties\", function () {\r\n return Object.defineProperties;\r\n});\r\n\r\ndefine(\"Object.defineProperty\", function () {\r\n return Object.defineProperty;\r\n});\r\n\r\ndefine(\"Object.prototype.hasOwnProperty\", function () {\r\n return Object.prototype.hasOwnProperty;\r\n});\r\n\r\ndefine(\"Error.captureStackTrace\", function () {\r\n return Error.captureStackTrace;\r\n});\r\n\r\ndefine(\"Error.prototype.stack\", function () {\r\n try {\r\n throw new Error();\r\n }\r\n catch (e) {\r\n return e.stack || e.stacktrace;\r\n }\r\n});","var CapabilityDetector = require(\"./CapabilityDetector\");\r\n\r\nvar detector = new CapabilityDetector();\r\n\r\nvar capability = function (name) {\r\n return detector.test(name);\r\n};\r\ncapability.define = function (name, test) {\r\n detector.define(name, test);\r\n};\r\ncapability.check = function (name) {\r\n detector.check(name);\r\n};\r\ncapability.test = capability;\r\n\r\nmodule.exports = capability;","var CapabilityDetector = function () {\r\n this.tests = {};\r\n this.cache = {};\r\n};\r\nCapabilityDetector.prototype = {\r\n constructor: CapabilityDetector,\r\n define: function (name, test) {\r\n if (typeof (name) != \"string\" || !(test instanceof Function))\r\n throw new Error(\"Invalid capability definition.\");\r\n if (this.tests[name])\r\n throw new Error('Duplicated capability definition by \"' + name + '\".');\r\n this.tests[name] = test;\r\n },\r\n check: function (name) {\r\n if (!this.test(name))\r\n throw new Error('The current environment does not support \"' + name + '\", therefore we cannot continue.');\r\n },\r\n test: function (name) {\r\n if (this.cache[name] !== undefined)\r\n return this.cache[name];\r\n if (!this.tests[name])\r\n throw new Error('Unknown capability with name \"' + name + '\".');\r\n var test = this.tests[name];\r\n this.cache[name] = !!test();\r\n return this.cache[name];\r\n }\r\n};\r\n\r\nmodule.exports = CapabilityDetector;","var prepareStackTrace = require(\"./prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n Error.getStackTrace = function (throwable) {\r\n return throwable.stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","var prepareStackTrace = function (throwable, frames, warnings) {\r\n var string = \"\";\r\n string += throwable.name || \"Error\";\r\n string += \": \" + (throwable.message || \"\");\r\n if (warnings instanceof Array)\r\n for (var warningIndex in warnings) {\r\n var warning = warnings[warningIndex];\r\n string += \"\\n # \" + warning;\r\n }\r\n for (var frameIndex in frames) {\r\n var frame = frames[frameIndex];\r\n string += \"\\n at \" + frame.toString();\r\n }\r\n return string;\r\n};\r\n\r\nmodule.exports = prepareStackTrace;","var FrameStringSource = require(\"./FrameStringSource\"),\r\n FrameStringParser = require(\"./FrameStringParser\"),\r\n cache = require(\"u3\").cache,\r\n prepareStackTrace = require(\"../prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n\r\n Error.captureStackTrace = function captureStackTrace(throwable, terminator) {\r\n var warnings;\r\n var frameShifts = [\r\n captureStackTrace\r\n ];\r\n if (terminator) {\r\n // additional frames can come here if arguments.callee.caller is supported\r\n // otherwise it is hard to identify the terminator\r\n frameShifts.push(terminator);\r\n }\r\n var captured = FrameStringSource.getInstance().captureFrameStrings(frameShifts);\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n get: cache(function () {\r\n var frames = FrameStringParser.getInstance().getFrames(captured.frameStrings, captured.functionValues);\r\n return (Error.prepareStackTrace || prepareStackTrace)(throwable, frames, warnings);\r\n })\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n };\r\n\r\n Error.getStackTrace = function (throwable) {\r\n if (throwable.cachedStack)\r\n return throwable.stack;\r\n var frameStrings = FrameStringSource.getInstance().getFrameStrings(throwable),\r\n frames = [],\r\n warnings;\r\n if (frameStrings)\r\n frames = FrameStringParser.getInstance().getFrames(frameStrings, []);\r\n else\r\n warnings = [\r\n \"The stack is not readable by unthrown errors in this environment.\"\r\n ];\r\n var stack = (Error.prepareStackTrace || prepareStackTrace)(throwable, frames, warnings);\r\n if (frameStrings)\r\n try {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: stack\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n } catch (nonConfigurableError) {\r\n }\r\n return stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","var Class = require(\"o3\").Class,\r\n abstractMethod = require(\"o3\").abstractMethod,\r\n eachCombination = require(\"u3\").eachCombination,\r\n cache = require(\"u3\").cache,\r\n capability = require(\"capability\");\r\n\r\nvar AbstractFrameStringSource = Class(Object, {\r\n prototype: {\r\n captureFrameStrings: function (frameShifts) {\r\n var error = this.createError();\r\n frameShifts.unshift(this.captureFrameStrings);\r\n frameShifts.unshift(this.createError);\r\n var capturedFrameStrings = this.getFrameStrings(error);\r\n\r\n var frameStrings = capturedFrameStrings.slice(frameShifts.length),\r\n functionValues = [];\r\n\r\n if (capability(\"arguments.callee.caller\")) {\r\n var capturedFunctionValues = [\r\n this.createError,\r\n this.captureFrameStrings\r\n ];\r\n try {\r\n var aCaller = arguments.callee;\r\n while (aCaller = aCaller.caller)\r\n capturedFunctionValues.push(aCaller);\r\n }\r\n catch (useStrictError) {\r\n }\r\n functionValues = capturedFunctionValues.slice(frameShifts.length);\r\n }\r\n return {\r\n frameStrings: frameStrings,\r\n functionValues: functionValues\r\n };\r\n },\r\n getFrameStrings: function (error) {\r\n var message = error.message || \"\";\r\n var name = error.name || \"\";\r\n var stackString = this.getStackString(error);\r\n if (stackString === undefined)\r\n return;\r\n var stackStringChunks = stackString.split(\"\\n\");\r\n var fromPosition = 0;\r\n var toPosition = stackStringChunks.length;\r\n if (this.hasHeader)\r\n fromPosition += name.split(\"\\n\").length + message.split(\"\\n\").length - 1;\r\n if (this.hasFooter)\r\n toPosition -= 1;\r\n return stackStringChunks.slice(fromPosition, toPosition);\r\n },\r\n createError: abstractMethod,\r\n getStackString: abstractMethod,\r\n hasHeader: undefined,\r\n hasFooter: undefined\r\n }\r\n});\r\n\r\nvar FrameStringSourceCalibrator = Class(Object, {\r\n prototype: {\r\n calibrateClass: function (FrameStringSource) {\r\n return this.calibrateMethods(FrameStringSource) && this.calibrateEnvelope(FrameStringSource);\r\n },\r\n calibrateMethods: function (FrameStringSource) {\r\n try {\r\n eachCombination([[\r\n function (message) {\r\n return new Error(message);\r\n },\r\n function (message) {\r\n try {\r\n throw new Error(message);\r\n }\r\n catch (error) {\r\n return error;\r\n }\r\n }\r\n ], [\r\n function (error) {\r\n return error.stack;\r\n },\r\n function (error) {\r\n return error.stacktrace;\r\n }\r\n ]], function (createError, getStackString) {\r\n if (getStackString(createError()))\r\n throw {\r\n getStackString: getStackString,\r\n createError: createError\r\n };\r\n });\r\n } catch (workingImplementation) {\r\n Class.merge.call(FrameStringSource, {\r\n prototype: workingImplementation\r\n });\r\n return true;\r\n }\r\n return false;\r\n },\r\n calibrateEnvelope: function (FrameStringSource) {\r\n var getStackString = FrameStringSource.prototype.getStackString;\r\n var createError = FrameStringSource.prototype.createError;\r\n var calibratorStackString = getStackString(createError(\"marker\"));\r\n var calibratorFrameStrings = calibratorStackString.split(\"\\n\");\r\n Class.merge.call(FrameStringSource, {\r\n prototype: {\r\n hasHeader: /marker/.test(calibratorFrameStrings[0]),\r\n hasFooter: calibratorFrameStrings[calibratorFrameStrings.length - 1] === \"\"\r\n }\r\n });\r\n return true;\r\n }\r\n }\r\n});\r\n\r\n\r\nmodule.exports = {\r\n getClass: cache(function () {\r\n var FrameStringSource;\r\n if (FrameStringSource)\r\n return FrameStringSource;\r\n FrameStringSource = Class(AbstractFrameStringSource, {});\r\n var calibrator = new FrameStringSourceCalibrator();\r\n if (!calibrator.calibrateClass(FrameStringSource))\r\n throw new Error(\"Cannot read Error.prototype.stack in this environment.\");\r\n return FrameStringSource;\r\n }),\r\n getInstance: cache(function () {\r\n var FrameStringSource = this.getClass();\r\n var instance = new FrameStringSource();\r\n return instance;\r\n })\r\n};","require(\"capability/es5\");\r\n\r\nmodule.exports = require(\"./lib\");","module.exports = {\r\n Class: require(\"./Class\"),\r\n abstractMethod: require(\"./abstractMethod\")\r\n};","var Class = function () {\r\n var options = Object.create({\r\n Source: Object,\r\n config: {},\r\n buildArgs: []\r\n });\r\n\r\n function checkOption(option) {\r\n var key = \"config\";\r\n if (option instanceof Function)\r\n key = \"Source\";\r\n else if (option instanceof Array)\r\n key = \"buildArgs\";\r\n else if (option instanceof Object)\r\n key = \"config\";\r\n else\r\n throw new Error(\"Invalid configuration option.\");\r\n if (options.hasOwnProperty(key))\r\n throw new Error(\"Duplicated configuration option: \" + key + \".\");\r\n options[key] = option;\r\n }\r\n\r\n for (var index = 0, length = arguments.length; index < length; ++index)\r\n checkOption(arguments[index]);\r\n\r\n var Source = options.Source,\r\n config = options.config,\r\n buildArgs = options.buildArgs;\r\n\r\n return (Source.extend || Class.extend).call(Source, config, buildArgs);\r\n};\r\n\r\nClass.factory = function () {\r\n var Source = this;\r\n return function () {\r\n var instance = this;\r\n if (instance.build instanceof Function)\r\n instance.build.apply(instance, arguments);\r\n if (instance.init instanceof Function)\r\n instance.init.apply(instance, arguments);\r\n };\r\n};\r\n\r\nClass.extend = function (config, buildArgs) {\r\n var Source = this;\r\n if (!config)\r\n config = {};\r\n var Subject;\r\n if ((config.prototype instanceof Object) && config.prototype.constructor !== Object)\r\n Subject = config.prototype.constructor;\r\n else if (config.factory instanceof Function)\r\n Subject = config.factory.call(Source);\r\n Subject = (Source.clone || Class.clone).call(Source, Subject, buildArgs);\r\n (Subject.merge || Class.merge).call(Subject, config);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.extend = function (config, buildArgs) {\r\n var subject = this;\r\n var instance = (subject.clone || Class.prototype.clone).apply(subject, buildArgs);\r\n (instance.merge || Class.prototype.merge).call(instance, config);\r\n return instance;\r\n};\r\n\r\nClass.clone = function (Subject, buildArgs) {\r\n var Source = this;\r\n if (!(Subject instanceof Function))\r\n Subject = (Source.factory || Class.factory).call(Source);\r\n Subject.prototype = (Source.prototype.clone || Class.prototype.clone).apply(Source.prototype, buildArgs || []);\r\n Subject.prototype.constructor = Subject;\r\n for (var staticProperty in Source)\r\n if (staticProperty !== \"prototype\")\r\n Subject[staticProperty] = Source[staticProperty];\r\n return Subject;\r\n};\r\n\r\nClass.prototype.clone = function () {\r\n var subject = this;\r\n var instance = Object.create(subject);\r\n if (instance.build instanceof Function)\r\n instance.build.apply(instance, arguments);\r\n return instance;\r\n};\r\n\r\nClass.merge = function (config) {\r\n var Subject = this;\r\n for (var staticProperty in config)\r\n if (staticProperty !== \"prototype\")\r\n Subject[staticProperty] = config[staticProperty];\r\n if (config.prototype instanceof Object)\r\n (Subject.prototype.merge || Class.prototype.merge).call(Subject.prototype, config.prototype);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.merge = function (config) {\r\n var subject = this;\r\n for (var property in config)\r\n if (property !== \"constructor\")\r\n subject[property] = config[property];\r\n return subject;\r\n};\r\n\r\nClass.absorb = function (config) {\r\n var Subject = this;\r\n for (var staticProperty in config)\r\n if (staticProperty !== \"prototype\" && (Subject[staticProperty] === undefined || Subject[staticProperty] === Function.prototype[staticProperty]))\r\n Subject[staticProperty] = config[staticProperty];\r\n if (config.prototype instanceof Object)\r\n (Subject.prototype.absorb || Class.prototype.absorb).call(Subject.prototype, config.prototype);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.absorb = function (config) {\r\n var subject = this;\r\n for (var property in config)\r\n if (property !== \"constructor\" && (subject[property] === undefined || subject[property] === Object.prototype[property]))\r\n subject[property] = config[property];\r\n return subject;\r\n};\r\n\r\nClass.getAncestor = function () {\r\n var Source = this;\r\n if (Source !== Source.prototype.constructor)\r\n return Source.prototype.constructor;\r\n};\r\n\r\nClass.newInstance = function () {\r\n var Subject = this;\r\n var instance = Object.create(this.prototype);\r\n Subject.apply(instance, arguments);\r\n return instance;\r\n};\r\n\r\nmodule.exports = Class;","module.exports = function () {\r\n throw new Error(\"Not implemented.\");\r\n};","module.exports = require(\"./lib\");","module.exports = {\r\n cache: require(\"./cache\"),\r\n eachCombination: require(\"./eachCombination\")\r\n};","var cache = function (fn) {\r\n var called = false,\r\n store;\r\n\r\n if (!(fn instanceof Function)) {\r\n called = true;\r\n store = fn;\r\n fn = null;\r\n }\r\n\r\n return function () {\r\n if (!called) {\r\n called = true;\r\n store = fn.apply(this, arguments);\r\n fn = null;\r\n }\r\n return store;\r\n };\r\n};\r\n\r\nmodule.exports = cache;","module.exports = function eachCombination(alternativesByDimension, callback, combination) {\r\n if (!combination)\r\n combination = [];\r\n if (combination.length < alternativesByDimension.length) {\r\n var alternatives = alternativesByDimension[combination.length];\r\n for (var index in alternatives) {\r\n combination[combination.length] = alternatives[index];\r\n eachCombination(alternativesByDimension, callback, combination);\r\n --combination.length;\r\n }\r\n }\r\n else\r\n callback.apply(null, combination);\r\n};","var Class = require(\"o3\").Class,\r\n Frame = require(\"./Frame\"),\r\n cache = require(\"u3\").cache;\r\n\r\nvar FrameStringParser = Class(Object, {\r\n prototype: {\r\n stackParser: null,\r\n frameParser: null,\r\n locationParsers: null,\r\n constructor: function (options) {\r\n Class.prototype.merge.call(this, options);\r\n },\r\n getFrames: function (frameStrings, functionValues) {\r\n var frames = [];\r\n for (var index = 0, length = frameStrings.length; index < length; ++index)\r\n frames[index] = this.getFrame(frameStrings[index], functionValues[index]);\r\n return frames;\r\n },\r\n getFrame: function (frameString, functionValue) {\r\n var config = {\r\n frameString: frameString,\r\n functionValue: functionValue\r\n };\r\n return new Frame(config);\r\n }\r\n }\r\n});\r\n\r\nmodule.exports = {\r\n getClass: cache(function () {\r\n return FrameStringParser;\r\n }),\r\n getInstance: cache(function () {\r\n var FrameStringParser = this.getClass();\r\n var instance = new FrameStringParser();\r\n return instance;\r\n })\r\n};","var Class = require(\"o3\").Class,\r\n abstractMethod = require(\"o3\").abstractMethod;\r\n\r\nvar Frame = Class(Object, {\r\n prototype: {\r\n init: Class.prototype.merge,\r\n frameString: undefined,\r\n toString: function () {\r\n return this.frameString;\r\n },\r\n functionValue: undefined,\r\n getThis: abstractMethod,\r\n getTypeName: abstractMethod,\r\n getFunction: function () {\r\n return this.functionValue;\r\n },\r\n getFunctionName: abstractMethod,\r\n getMethodName: abstractMethod,\r\n getFileName: abstractMethod,\r\n getLineNumber: abstractMethod,\r\n getColumnNumber: abstractMethod,\r\n getEvalOrigin: abstractMethod,\r\n isTopLevel: abstractMethod,\r\n isEval: abstractMethod,\r\n isNative: abstractMethod,\r\n isConstructor: abstractMethod\r\n }\r\n});\r\n\r\nmodule.exports = Frame;","var cache = require(\"u3\").cache,\r\n prepareStackTrace = require(\"./prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n\r\n Error.captureStackTrace = function (throwable, terminator) {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n get: cache(function () {\r\n return (Error.prepareStackTrace || prepareStackTrace)(throwable, []);\r\n })\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n };\r\n\r\n Error.getStackTrace = function (throwable) {\r\n if (throwable.cachedStack)\r\n return throwable.stack;\r\n var stack = (Error.prepareStackTrace || prepareStackTrace)(throwable, []);\r\n try {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: stack\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n } catch (nonConfigurableError) {\r\n }\r\n return stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","import { connect, keyStores, WalletConnection, ConnectedWalletAccount } from 'near-api-js'\r\n\r\nimport { ENV, CHEDDAR_CONTRACT_NAME, TESTNET_CHEDDAR_CONTRACT_NAME, getConfig } from './config'\r\n\r\nimport { WalletInterface } from './wallet-api/wallet-interface';\r\nimport { disconnectedWallet } from './wallet-api/disconnected-wallet';\r\nimport { NearWebWallet } from './wallet-api/near-web-wallet/near-web-wallet';\r\nimport { narwallets, addNarwalletsListeners } from './wallet-api/narwallets/narwallets';\r\nimport { yton, toStringDec, toStringDecMin, convertToDecimals, convertToBase } from './util/conversions';\r\n\r\n//qs/qsa are shortcut for document.querySelector/All\r\nimport { qs, qsa, qsi, showWait, showErr, showSuccess, showMessage, show, hide, hideOverlay, showError, showPopup, qsInnerText, qsaAttribute } from './util/document';\r\nimport { checkRedirectSearchParamsMultiple } from './wallet-api/near-web-wallet/checkRedirectSearchParams';\r\nimport { FungibleTokenMetadata, NEP141Trait } from './contracts/NEP141';\r\nimport { PoolParams, UserStatusP2 } from './entities/poolParams';\r\nimport { getPoolList } from './entities/poolList';\r\nimport { PoolParamsP3 } from './entities/poolParamsP3';\r\nimport { U128String } from './wallet-api/util';\r\nimport {DetailRowElements, HTMLTokenInputData, TokenIconData, UnclaimedRewardsData, RewardsTokenData} from './entities/genericData';\r\n\r\nimport * as nearAPI from \"near-api-js\"\r\nimport { getTokenData, getTokenDataArray } from './util/oracle';\r\nimport { RefTokenData } from './entities/refResponse';\r\nimport { ContractParams, TransactionData } from './contracts/contract-structs';\r\nimport { P3ContractParams, PoolUserStatusP3, PoolUserStatusP3NFT } from './contracts/p3-structures';\r\nimport { NFTContract } from './contracts/NFTContract';\r\nimport { newNFT, NFT, NFTMetadata, NFTWithMetadata } from './contracts/nft-structs';\r\nimport { BN } from 'bn.js';\r\nimport { StakingPoolP3 } from './contracts/p3-staking';\r\nimport { StakingPoolP1 } from './contracts/p2-staking';\r\nimport { callMulipleTransactions } from './contracts/multipleCall';\r\nimport { TokenContractData } from './entities/PoolEntities';\r\nimport { PoolParamsNFT } from './entities/poolParamsNFT';\r\nimport { NFTContractData, StakingContractDataNFT } from './entities/PoolEntitiesNFT';\r\nimport { NFTStakingContractParams } from './contracts/nft-structures';\r\nimport { StakingPoolNFT } from './contracts/nft-staking';\r\nimport { initButton as initLiquidButton } from './util/animations/liquidityButton';\r\nimport { ConfettiButton } from './util/animations/new-confetti-button';\r\n\r\n//get global config\r\n//const nearConfig = getConfig(process.env.NODE_ENV || 'testnet')\r\nexport let nearConfig = getConfig(ENV); //default testnet, can change according to URL on window.onload\r\nexport let near: nearAPI.Near\r\n// global variables used throughout\r\nexport let wallet: WalletInterface = disconnectedWallet;\r\n\r\nlet nearWebWalletConnection: WalletConnection;\r\nlet nearConnectedWalletAccount: ConnectedWalletAccount;\r\nlet accountName;\r\nlet isPaused = false;\r\nlet loggedWithNarwallets = false\r\n\r\n//time in ms\r\nconst SECONDS = 1000\r\nconst MINUTES = 60 * SECONDS\r\nconst HOURS = 60 * MINUTES\r\n\r\nlet countDownIntervalId: number\r\nconst refreshTime = 60 * SECONDS\r\n\r\nconst ONE_NEAR = BigInt(10) ** BigInt(24);\r\n//------------------------------\r\n//--- connect buttons->code ----\r\n//------------------------------\r\n\r\n//all popup \"cancel\" buttons\r\nqsa('.popup button#cancel').forEach(f => (f as HTMLButtonElement).onclick = (event) => { event.preventDefault(); hideOverlay() })\r\n\r\n//connect wallet selection boxes\r\n// qs('#near-web-wallet-box').onclick = loginNearWebWallet\r\n// qs('#narwallets-wallet-box').onclick = loginNarwallets\r\n\r\n//nav my-account \"home\"\r\nqs('nav #home').onclick =\r\n async function (event) {\r\n event.preventDefault()\r\n if (wallet.isConnected()) {\r\n showSection(\"#home-connected\")\r\n selectNav(\"#home\")\r\n }\r\n else {\r\n signedOutFlow();\r\n }\r\n }\r\n\r\nqs('#logo').onclick =\r\n async function (event) {\r\n event.preventDefault()\r\n if (wallet.isConnected()) {\r\n signedInFlow(wallet)\r\n }\r\n else {\r\n signedOutFlow();\r\n }\r\n }\r\n\r\nqs('#my-account').onclick =\r\n async function (event) {\r\n event.preventDefault()\r\n if (wallet.isConnected()) {\r\n console.log(\"Connected\")\r\n signedInFlow(wallet)\r\n } else {\r\n console.log(\"Disconnected\")\r\n loginNearWebWallet();\r\n }\r\n }\r\n\r\n\r\nlet moreGamesButton = qs(\".games-dropdown\") as HTMLElement\r\nmoreGamesButton.addEventListener(\"click\", gamesDropdownHandler())\r\n\r\nlet noLivePoolsMsg = qs(\".no-live-pools-msg\") as HTMLElement\r\nnoLivePoolsMsg.addEventListener(\"click\", gamesDropdownHandler())\r\n\r\nfunction gamesDropdownHandler() {\r\n return function(){\r\n let gamesDropdownContainer = qs(\".games-dropdown-items\") as HTMLElement\r\n gamesDropdownContainer.classList.toggle(\"down\")\r\n\r\n let gamesLinksContainer = qs(\".games-links-container\") as HTMLElement\r\n \r\n gamesLinksContainer.classList.toggle(\"games-dropdown-hidden-position\")\r\n moreGamesButton.querySelector(\"svg\")!.classList.toggle(\"flipped\") \r\n }\r\n}\r\n\r\n//generic nav handler\r\nfunction navClickHandler_ConnectFirst(event: Event) {\r\n event.preventDefault()\r\n if (wallet.isConnected()) {\r\n //show section with same id as the link\r\n showSection(\"#\" + (event.target as HTMLElement).closest(\"a\")?.id)\r\n }\r\n else {\r\n showSection(\"#home\")\r\n loginNearWebWallet()\r\n // sayChoose()\r\n }\r\n}\r\n\r\nqs('nav #unstake-m').onclick = navClickHandler_ConnectFirst\r\nqs('nav #liquidity').onclick = navClickHandler_ConnectFirst\r\nqs('nav #my-account').onclick = navClickHandler_ConnectFirst\r\n\r\nqs('nav #faq').onclick = () => { showSection(\"#faq\") }\r\n\r\nfunction sayChoose() {\r\n showMessage(\"Please choose a wallet to connect\", \"Connect first\");\r\n}\r\n\r\n\r\n//button sign-out\r\nqs('#sign-out').onclick =\r\n async function (event) {\r\n event.preventDefault();\r\n \r\n wallet.disconnect();\r\n wallet = disconnectedWallet;\r\n\r\n signedOutFlow();\r\n }\r\n\r\n\r\n//New filters\r\nfunction filterPools(className: string){\r\n return function (event: Event){\r\n filterButtonClicked(event)\r\n hideAllPools()\r\n let livePools = qsa(`.${className}`)\r\n // let livePools = qsa(\"test-no-live-pools-msg\")\r\n showSelectedPools(livePools, className)\r\n }\r\n}\r\n\r\nfunction filterButtonClicked (event: Event){\r\n let previousFilterClicked= qsa(\".activeFilterButton\")\r\n previousFilterClicked.forEach(button => {\r\n button.classList.remove(\"activeFilterButton\")\r\n })\r\n let buttonClicked = event.target as HTMLElement\r\n buttonClicked.classList.add(\"activeFilterButton\")\r\n}\r\n\r\nfunction hideAllPools() {\r\n let allPools = document.querySelectorAll(\".pool-container\")\r\n allPools.forEach(pool => {\r\n pool.classList.add(\"hidden\")\r\n });\r\n}\r\n\r\nfunction showSelectedPools(selectedPools: NodeListOf, className: string) {\r\n if(selectedPools.length > 0){\r\n qs(\".no-live-pools-msg\").classList.add(\"hidden\")\r\n\r\n selectedPools.forEach(pool => {\r\n pool.classList.remove(\"hidden\")\r\n });\r\n\r\n } else if (className == \"active-pool\") {\r\n qs(\".no-live-pools-msg\").classList.remove(\"hidden\")\r\n }\r\n}\r\n\r\n\r\n//Events on filter buttons\r\nqs(\"#live-filter\").onclick=filterPools(\"active-pool\")\r\nqs(\"#ended-filter\").onclick=filterPools(\"inactive-pool\")\r\nqs('#your-farms-filter').onclick= filterPools(\"your-farms\")\r\n\r\n\r\nfunction activateClicked(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, pool: HTMLElement) {\r\n return async function (event: Event) {\r\n event.preventDefault()\r\n let TXs: TransactionData[] = []\r\n\r\n const stakeTokenList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenList.length; i++) {\r\n const tokenContract = stakeTokenList[i].contract!\r\n const doesNeedStorageDeposit = await needsStorageDeposit(tokenContract)\r\n if (doesNeedStorageDeposit) {\r\n TXs.push({\r\n promise: tokenContract.storageDepositWithoutSend(),\r\n contractName: tokenContract.contractId\r\n })\r\n }\r\n }\r\n\r\n const doesNeedStorageDeposit = await needsStorageDeposit(poolParams.stakingContractData.contract)\r\n if (doesNeedStorageDeposit) {\r\n TXs.push({\r\n promise: poolParams.stakingContractData.contract.storageDepositWithoutSend(),\r\n contractName: poolParams.stakingContractData.contract.contractId\r\n })\r\n }\r\n await callMulipleTransactions(TXs, poolParams.stakingContractData.contract)\r\n\r\n pool.querySelector(\"#deposit\")!.classList.remove(\"hidden\")\r\n pool.querySelector(\"#activated\")!.classList.add(\"hidden\")\r\n }\r\n}\r\n\r\nasync function needsStorageDeposit(contract: NEP141Trait|StakingPoolP1|StakingPoolP3|StakingPoolNFT): Promise {\r\n if(!wallet.isConnected()) return false\r\n const contractStorageBalanceData = await contract.storageBalance()\r\n if(contractStorageBalanceData == null) return true\r\n const contractStorageBalanceBN = new BN(contractStorageBalanceData.total)\r\n return !contractStorageBalanceBN.gten(0)\r\n}\r\n\r\nasync function getUnclaimedRewardsInUSDSingle(poolParams: PoolParams): Promise {\r\n const rewardToken = \"cheddar\"\r\n const rewardTokenData: RefTokenData = await getTokenData(rewardToken)\r\n const metaData = await poolParams.cheddarContract.ft_metadata()\r\n const userPoolParams = await poolParams.stakingContractData.getUserStatus()\r\n const currentRewards: bigint = userPoolParams.real\r\n const currentRewardsDisplayable = convertToDecimals(currentRewards, metaData.decimals, 5)\r\n return parseFloat(rewardTokenData.price) * parseFloat(currentRewardsDisplayable)\r\n}\r\n\r\n/**\r\n * \r\n * @param tokenContractList \r\n * @param amountList array containing the amounts to be converted with the metadata decimals included\r\n * @returns \r\n */\r\nasync function convertToUSDMultiple(tokenContractList: TokenContractData[], amountList: U128String[]): Promise {\r\n // const stakeTokenContractList = poolParams.stakeTokenContractList\r\n //TODO DANI make better. Avoid calling the promise\r\n await Promise.all(\r\n tokenContractList.map(\r\n (tokenContract: TokenContractData) => tokenContract.getMetadata()\r\n )\r\n )\r\n const rewardTokenArray = tokenContractList.map(tokenContract => tokenContract.getMetadataSync().symbol)\r\n const rewardTokenDataMap: Map = await getTokenDataArray(rewardTokenArray)\r\n let amountInUsd: number = 0\r\n tokenContractList.forEach((tokenContract: TokenContractData, index: number) => {\r\n const metaData = tokenContract.getMetadataSync()\r\n const symbol = metaData.symbol\r\n const amount = amountList[index]\r\n \r\n // console.log(unclaimedRewards)\r\n const currentRewardsDisplayable = convertToDecimals(amount, metaData.decimals, 5)\r\n const tokenData = rewardTokenDataMap.get(symbol.toLowerCase())\r\n amountInUsd += parseFloat(tokenData!.price) * parseFloat(currentRewardsDisplayable)\r\n })\r\n\r\n return amountInUsd.toFixed(5)\r\n}\r\n\r\n\r\nfunction stakeMultiple(poolParams: PoolParamsP3, newPool: HTMLElement) {\r\n return async function (event: Event){\r\n event?.preventDefault()\r\n showWait(\"Staking...\")\r\n \r\n // let stakeContainerList = newPool.querySelectorAll(\".main-stake .input-container\") \r\n let inputArray: HTMLInputElement[] = []\r\n\r\n try {\r\n let unixTimestamp = new Date().getTime() / 1000; //unix timestamp (seconds)\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n // const contractParams = poolParams.contractParams\r\n // const isDateInRange = contractParams.farming_start < unixTimestamp && unixTimestamp < contractParams.farming_end\r\n const isDateInRange = unixTimestamp < contractParams.farming_end\r\n if (!isDateInRange) throw Error(\"Pools is Closed.\")\r\n \r\n const { htmlInputArray, amountValuesArray: amountValues, transferedAmountWithSymbolArray: stakedAmountWithSymbol } = await getInputDataMultiple(poolParams, newPool, \"stake\")\r\n inputArray = htmlInputArray\r\n \r\n qsaAttribute(\"input\", \"disabled\", \"disabled\")\r\n\r\n //get amount\r\n const min_deposit_amount = 1;\r\n \r\n await poolParams.stake(amountValues)\r\n if (loggedWithNarwallets) {\r\n //clear form\r\n for(let i = 0; i < inputArray.length; i++) {\r\n inputArray[i].value = \"\" \r\n }\r\n \r\n // const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n // poolUserStatus.addStaked(amountValues)\r\n poolParams.stakingContractData.refreshData()\r\n\r\n showSuccess(`Staked ${stakedAmountWithSymbol.join(\" - \")}`)\r\n }\r\n\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n }\r\n // re-enable the form, whether the call succeeded or failed\r\n inputArray.forEach(input => {\r\n input.removeAttribute(\"disabled\")\r\n });\r\n }\r\n}\r\n\r\nfunction unstakeMultiple(poolParams: PoolParamsP3, newPool: HTMLElement) {\r\n return async function (event: Event){\r\n event?.preventDefault()\r\n showWait(\"Unstaking...\")\r\n \r\n // let stakeContainerList = newPool.querySelectorAll(\".main-stake .input-container\") \r\n let inputArray: HTMLInputElement[] = []\r\n\r\n try {\r\n let unixTimestamp = new Date().getTime() / 1000; //unix timestamp (seconds)\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n // const contractParams = poolParams.contractParams\r\n // const isDateInRange = contractParams.farming_start < unixTimestamp && unixTimestamp < contractParams.farming_end\r\n // const isDateInRange = unixTimestamp > contractParams.farming_start\r\n // if (!isDateInRange) throw Error(\"Pools is not open yet.\")\r\n \r\n const { htmlInputArray, amountValuesArray: amountValues, transferedAmountWithSymbolArray: unstakedAmountWithSymbol } = await getInputDataMultiple(poolParams, newPool, \"unstake\")\r\n inputArray = htmlInputArray\r\n \r\n qsaAttribute(\"input\", \"disabled\", \"disabled\")\r\n\r\n //get amount\r\n const min_deposit_amount = 1;\r\n \r\n await poolParams.unstake(amountValues)\r\n if (loggedWithNarwallets) {\r\n //clear form\r\n for(let i = 0; i < inputArray.length; i++) {\r\n inputArray[i].value = \"\" \r\n }\r\n \r\n // poolParams.poolUserStatus.addStaked(amountValues.map(value => -value))\r\n poolParams.stakingContractData.refreshData()\r\n \r\n showSuccess(`Staked ${unstakedAmountWithSymbol.join(\" - \")}`)\r\n }\r\n\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n }\r\n // re-enable the form, whether the call succeeded or failed\r\n inputArray.forEach(input => {\r\n input.removeAttribute(\"disabled\")\r\n });\r\n }\r\n}\r\n\r\nasync function getInputDataMultiple(poolParams: PoolParamsP3, newPool: HTMLElement, action: string): Promise {\r\n let htmlInputArray: HTMLInputElement[] = []\r\n let amountValuesArray: bigint[] = []\r\n let stakedAmountWithSymbolArray: string[] = []\r\n\r\n let inputContainerList = newPool.querySelectorAll(`.main-${action} .input-container`) \r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n let boundary: string[]\r\n if(action == \"stake\") {\r\n boundary = await poolParams.getWalletAvailable()\r\n } else if(action == \"unstake\") {\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n boundary = poolUserStatus.stake_tokens\r\n } else {\r\n throw Error(`Action ${action} not available`)\r\n }\r\n \r\n for(let i = 0; i < inputContainerList.length; i++) {\r\n let stakeContainer = inputContainerList[i]\r\n let input = stakeContainer.querySelector(\".amount\") as HTMLInputElement\r\n htmlInputArray.push(input)\r\n let amount = parseFloat(input.value)\r\n \r\n if (isNaN(amount)) {\r\n throw Error(\"Please Input a Number.\")\r\n }\r\n // const metaData = stakeTokenContractList[i].metaData\r\n const currentStakeTokenMetadata = await stakeTokenContractList[i].getMetadata()\r\n\r\n const stakeAmountBN: bigint = BigInt(convertToBase(amount.toString(), currentStakeTokenMetadata.decimals.toString()))\r\n console.log(i, boundary[i])\r\n if(BigInt(boundary[i]) < stakeAmountBN) {\r\n const balanceDisplayable = convertToDecimals(boundary[i], currentStakeTokenMetadata.decimals, 5)\r\n throw Error(`Only ${balanceDisplayable} ${currentStakeTokenMetadata.symbol} Available to ${action}.`)\r\n }\r\n \r\n amountValuesArray.push(stakeAmountBN)\r\n stakedAmountWithSymbolArray.push(`${amount} ${currentStakeTokenMetadata.symbol}`)\r\n }\r\n return {\r\n htmlInputArray,\r\n amountValuesArray,\r\n transferedAmountWithSymbolArray: stakedAmountWithSymbolArray,\r\n }\r\n}\r\n\r\nfunction stakeSingle(poolParams: PoolParams, newPool: HTMLElement) {\r\n return async function (event: Event){\r\n event?.preventDefault()\r\n showWait(\"Staking...\")\r\n \r\n let stakeInput = newPool.querySelector(\".main-stake input\") as HTMLInputElement\r\n \r\n\r\n try {\r\n // let unixTimestamp = new Date().getTime() / 1000; //unix timestamp (seconds)\r\n // const contractParams = await poolParams.stakingContractData.getContractParams()\r\n // const isDateInRange = contractParams.farming_start < unixTimestamp && unixTimestamp < contractParams.farming_end\r\n // if (!isDateInRange) throw Error(\"Pools is Closed.\")\r\n \r\n stakeInput.setAttribute(\"disabled\", \"disabled\")\r\n let stakeAmount = parseFloat(stakeInput.value)\r\n //get amount\r\n const min_deposit_amount = 1;\r\n if (isNaN(stakeAmount)) {\r\n throw Error(\"Please Input a Number.\")\r\n }\r\n\r\n const walletAvailable = await poolParams.getWalletAvailable()\r\n if (stakeAmount > parseFloat(walletAvailable)) throw Error(`Only ${walletAvailable} ${poolParams.stakeTokenMetaData.symbol} Available to Stake.`);\r\n const stakeTokenContract = (await poolParams.stakingContractData.getStakeTokenContractList())[0]\r\n const stakeTokenMetadata = await stakeTokenContract.getMetadata()\r\n await poolParams.stakeTokenContract.ft_transfer_call(\r\n poolParams.stakingContractData.contract.contractId, \r\n convertToBase(\r\n stakeAmount.toString(), \r\n stakeTokenMetadata.decimals.toString()\r\n ), \r\n \"to farm\"\r\n )\r\n\r\n // if (loggedWithNarwallets) {\r\n // //clear form\r\n // stakeInput.value = \"\"\r\n // poolParams.resultParams.addStaked(ntoy(stakeAmount))\r\n // refreshPoolInfo(poolParams, newPool)//Question: shouldnt this be in refreshPoolInfo?\r\n \r\n // showSuccess(\"Staked \" + toStringDecMin(stakeAmount) + poolParams.stakeTokenMetaData.symbol)\r\n // }\r\n\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n }\r\n\r\n // re-enable the form, whether the call succeeded or failed\r\n stakeInput.removeAttribute(\"disabled\")\r\n }\r\n}\r\n\r\n// TODO DANI - implement\r\nfunction harvestMultipleOrNFT(poolParams: PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n return async function (event: Event) {\r\n event?.preventDefault()\r\n\r\n let poolID = poolParams.html.id\r\n poolParams.confettiButton?.clickButtonWithRedirection(poolID)\r\n\r\n showWait(\"Harvesting...\")\r\n await poolParams.stakingContractData.contract.withdraw_crop()\r\n\r\n showSuccess(\"Harvested successfully\")\r\n }\r\n}\r\n\r\nfunction harvestSingle(poolParams: PoolParams, newPool: HTMLElement){\r\n return async function (event: Event) {\r\n event?.preventDefault() \r\n showWait(\"Harvesting...\")\r\n let poolID = poolParams.html.id\r\n poolParams.confettiButton?.clickButtonWithRedirection(poolID)\r\n\r\n const poolUserStatus: UserStatusP2 = await poolParams.stakingContractData.getUserStatus()\r\n \r\n let amount = poolUserStatus.getCurrentCheddarRewards()\r\n\r\n await poolParams.stakingContractData.contract.withdraw_crop()\r\n\r\n poolUserStatus.computed = 0n\r\n poolUserStatus.real = 0n\r\n // newPool.querySelector(\".unclaimed-rewards-value\")!.innerHTML = \"0\"\r\n\r\n showSuccess(\"Harvested\" + toStringDecMin(parseFloat(amount)) + \" CHEDDAR\")\r\n }\r\n}\r\n\r\nfunction unstakeSingle(poolParams: PoolParams, newPool: HTMLElement){\r\n return async function (event: Event){\r\n event?.preventDefault()\r\n showWait(\"Unstaking...\")\r\n\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n const stakeTokenContract = (await poolParams.stakingContractData.getStakeTokenContractList())[0]\r\n const stakeTokenMetadata = await stakeTokenContract.getMetadata()\r\n\r\n let unstakeInput = newPool.querySelector(\".main-unstake input\") as HTMLInputElement\r\n\r\n try { \r\n unstakeInput.setAttribute(\"disabled\", \"disabled\")\r\n let unstakeAmount = parseFloat(unstakeInput.value)\r\n const staked = poolUserStatus.staked\r\n const stakedDisplayable = Number(convertToDecimals(staked.toString(), stakeTokenMetadata.decimals, 5))\r\n if (isNaN(unstakeAmount)) {\r\n throw Error(\"Please Input a Number.\")\r\n }\r\n \r\n \r\n if (unstakeAmount > stakedDisplayable) throw Error(`Only ${stakedDisplayable} ${stakeTokenMetadata.symbol} Available to Unstake.`);\r\n await poolParams.stakingContractData.contract.unstake(\r\n convertToBase(\r\n unstakeAmount.toString(), \r\n stakeTokenMetadata.decimals.toString()\r\n )\r\n )\r\n \r\n // if (loggedWithNarwallets) {\r\n // //clear form\r\n // unstakeInput.value = \"\"\r\n \r\n // //refresh acc info\r\n // refreshPoolInfo(poolParams, newPool)\r\n\r\n // poolUserStatus.addStaked(ntoy(unstakeAmount))\r\n // // refreshPoolInfoSingle(poolParams, newPool) //Esta línea la agregué porque pensé que corresponde pero realmente estoy confundido.\r\n // showSuccess(\"Unstaked \" + toStringDecMin(unstakeAmount) + poolParams.stakeTokenMetaData.symbol)\r\n // }\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n }\r\n\r\n // re-enable the form, whether the call succeeded or failed\r\n unstakeInput.removeAttribute(\"disabled\")\r\n }\r\n}\r\n\r\nfunction termsOfUseListener() {\r\n return async function (event: Event) {\r\n event.preventDefault()\r\n showPopup(\"#terms.popup\")\r\n }\r\n}\r\n\r\nfunction showUnstakeResult(unstaked: number) {\r\n showSuccess(\r\n `
Unstaked
${toStringDec(unstaked)}
`\r\n , \"Unstake\"\r\n )\r\n}\r\n\r\nfunction showRemoveLiquidityResult(yoctoCheddar: string) {\r\n showSuccess(\r\n `
cheddar received
${toStringDec(yton(yoctoCheddar))}
`\r\n , \"Withdraw crop\"\r\n )\r\n}\r\n//--------------------------------------\r\n// AutoRefresh\r\nasync function autoRefresh() {\r\n if (wallet && wallet.isConnected()) {\r\n try {\r\n //await refreshPoolInfo()\r\n }\r\n catch (ex) {\r\n //console.log(\"auto-refresh: \" + ex.message)\r\n }\r\n }\r\n}\r\n\r\n//--------------------------------------\r\nfunction showSection(selector: string) {\r\n //hide all sections\r\n qsa(\"main section\").forEach(hide);\r\n \r\n //show section\r\n const section = qs(\"main\").querySelector(selector)\r\n if (section) {\r\n show(section)\r\n selectNav(selector);\r\n }\r\n\r\n //hide burger button\r\n qs(\".burger-button\").classList.remove(\"burger-button--toggle\")\r\n qs(\".navbar-links\").classList.remove(\"show-right__nav\")\r\n}\r\n\r\nfunction selectNav(selector: string) {\r\n //nav\r\n const allNav = qsa(\"nav a\");\r\n allNav.forEach(e => (e as HTMLElement).classList.remove(\"selected\"))\r\n qs(\"nav\").querySelector(selector)?.classList.add(\"selected\")\r\n}\r\n\r\n//after connecting, preserve the amount the user typed on home screen\r\nfunction takeUserAmountFromHome(): string {\r\n let result = \"\";\r\n try {\r\n //move amount typed while not-connected\r\n const notConnectedStakeInput = qsi(\"#stake-form-not-connected input.near\")\r\n result = notConnectedStakeInput.value;\r\n //check also local storage\r\n if (!result) result = localStorage.getItem(\"amount\") || \"\"\r\n if (result) {\r\n qsi(\"#stake input.near\").value = result\r\n notConnectedStakeInput.value = \"\" //clear.- move only once\r\n localStorage.removeItem(\"amount\")\r\n }\r\n }\r\n catch (ex) {\r\n //ignore\r\n }\r\n return result;\r\n}\r\n\r\n// Display the signed-out-flow container\r\nasync function signedOutFlow() {\r\n signedInFlow(disconnectedWallet)\r\n // showSection(\"#home\")\r\n // await refreshAccountInfo();\r\n}\r\n\r\n// Displaying the signed in flow container and fill in account-specific data\r\nasync function signedInFlow(wallet: WalletInterface) {\r\n showSection(\"#home-connected\")\r\n selectNav(\"#home\")\r\n takeUserAmountFromHome()\r\n // await refreshAccountInfoGeneric(poolList)\r\n if(wallet.isConnected()) {\r\n // const poolList = await getPoolList(wallet); \r\n // qs(\".user-info #account-id\").innerText = poolList[0].wallet.getAccountId()\r\n let walletID = wallet.getDisplayableAccountId();\r\n let walletDisplayableID: string\r\n if(walletID.length < 15){\r\n walletDisplayableID = walletID\r\n } else {\r\n walletDisplayableID = walletID.slice(0, 12) + \"...\"\r\n }\r\n\r\n let accountIdElement = qs(\".user-info #account-id\") as HTMLSpanElement\r\n accountIdElement.innerText = walletDisplayableID\r\n\r\n accountIdElement.title = walletID\r\n\r\n // qs(\".not-connected-msg\").classList.add(\"hidden\")\r\n\r\n } else {\r\n qs(\".not-connected-msg\").classList.remove(\"hidden\")\r\n // initButton()\r\n // If user is disconnected it, account Id is the default disconnected message\r\n qs(\".user-info #account-id\").innerText = wallet.getAccountId()\r\n\r\n }\r\n}\r\n\r\nfunction setDefaultFilter (didJustActivate: boolean = false){\r\n let allYourFarmsPools = qsa(\".your-farms\")\r\n let allLivePools = qsa(\".active-pool\")\r\n\r\n const event= new Event (\"click\")\r\n\r\n //If you don´t have farms show live pools as default. If you just activate a pool show live pools as default.\r\n if(didJustActivate){\r\n qs(\"#live-filter\")!.dispatchEvent(event)\r\n\r\n } else if (allYourFarmsPools.length > 0){ /*console.log(\"Your farms\")*/\r\n qs(\"#your-farms-filter\").dispatchEvent(event)\r\n\r\n } else if (allLivePools.length > 0){\r\n // console.log(\"Live\")\r\n qs(\"#live-filter\")!.dispatchEvent(event)\r\n\r\n } else {\r\n // console.log(\"Ended\")\r\n qs(\"#ended-filter\")!.dispatchEvent(event)\r\n }\r\n}\r\n\r\n// Initialize contract & set global variables\r\nasync function initNearWebWalletConnection() {\r\n\r\n // Initialize connection to the NEAR network\r\n const near = await connect(Object.assign({ deps: { keyStore: new keyStores.BrowserLocalStorageKeyStore() } }, nearConfig))\r\n // Initializing Wallet based Account.\r\n nearWebWalletConnection = new WalletConnection(near, null)\r\n nearConnectedWalletAccount = new ConnectedWalletAccount(nearWebWalletConnection, near.connection, nearWebWalletConnection.getAccountId())\r\n //console.log(nearConnectedWalletAccount)\r\n}\r\n\r\nfunction logoutNearWebWallet() {\r\n\r\n nearWebWalletConnection.signOut()\r\n wallet = disconnectedWallet\r\n\r\n // reload page\r\n window.location.replace(window.location.origin + window.location.pathname)\r\n}\r\n\r\nfunction loginNearWebWallet() {\r\n // Allow the current app to make calls to the specified contract on the user's behalf.\r\n // This works by creating a new access key for the user's account and storing\r\n // the private key in localStorage.\r\n //save what the user typed before navigating out\r\n // localStorage.setItem(\"amount\", qsi(\"#stake-form-not-connected input.near\").value)\r\n nearWebWalletConnection.requestSignIn(nearConfig.farms[0].contractName)\r\n}\r\n\r\nfunction loginNarwallets() {\r\n //login is initiated from the chrome-extension\r\n //show step-by-step instructions\r\n window.open(\"http://www.narwallets.com/help/connect-to-web-app\")\r\n}\r\n\r\nfunction showOrHideMaxButton(walletBalance: number, elem: HTMLElement) {\r\n if (walletBalance > 0) {\r\n elem.classList.remove(\"hidden\")\r\n }\r\n else {\r\n elem.classList.add(\"hidden\")\r\n }\r\n}\r\n\r\nfunction setDateInRangeVisualIndication(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT,newPool: HTMLElement, isDateInRange: boolean) {\r\n let dateInRangeIndicator = newPool.querySelector(\".date-in-range-indicator circle\") as HTMLElement\r\n\r\n if(isDateInRange) {\r\n dateInRangeIndicator.classList.remove(\"offDate\")\r\n dateInRangeIndicator.classList.add(\"onDate\")\r\n } else {\r\n dateInRangeIndicator.classList.remove(\"onDate\")\r\n dateInRangeIndicator.classList.add(\"offDate\")\r\n }\r\n \r\n let allUnclaimedRewardsTotalAmount = 0\r\n let allUnclaimedRewardsDetails = newPool.querySelectorAll(\".unclaimed-rewards-info-container .detail-row\") as NodeListOf\r\n allUnclaimedRewardsDetails.forEach(unclaimedRewardDetail => {\r\n let amountContainer = unclaimedRewardDetail.querySelector(\".content\")! as HTMLElement\r\n let amount = Number(amountContainer.innerHTML)\r\n allUnclaimedRewardsTotalAmount += amount\r\n });\r\n\r\n \r\n let unclaimedRewards = newPool.querySelector(\".unclaimed-rewards\")\r\n let unclaimedRewardsValue = newPool.querySelector(\".unclaimed-rewards-value-usd\")\r\n if(allUnclaimedRewardsTotalAmount == 0){\r\n unclaimedRewards!.classList.remove(\"no-opacity\")\r\n unclaimedRewardsValue!.classList.remove(\"no-opacity\")\r\n allUnclaimedRewardsDetails.forEach(unclaimedRewardDetail => {\r\n unclaimedRewardDetail.classList.remove(\"no-opacity\")\r\n });\r\n } else {\r\n unclaimedRewards!.classList.add(\"no-opacity\")\r\n unclaimedRewardsValue!.classList.add(\"no-opacity\")\r\n allUnclaimedRewardsDetails.forEach(unclaimedRewardDetail => {\r\n unclaimedRewardDetail.classList.add(\"no-opacity\")\r\n });\r\n }\r\n}\r\n\r\nasync function refreshPoolInfoSingle(poolParams: PoolParams, newPool: HTMLElement){\r\n await poolParams.refreshAllExtraData()\r\n\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const userPoolParams = await poolParams.stakingContractData.getUserStatus()\r\n await updateDetail(newPool, poolParams.stakeTokenContractList, [contractParams.total_staked], \"total-staked\")\r\n // updateDetail(newPool, poolParams.farmTokenContractList, [poolParams.contractParams.total_farmed], \"apr\")\r\n await updateDetail(newPool, poolParams.farmTokenContractList, convertRewardsRates([contractParams.farming_rate.toString()]), \"rewards-per-day\")\r\n await uptadeDetailIfNecesary(poolParams, newPool, [await poolParams.getFarmTokenContractData()], [userPoolParams.real.toString()], \"unclaimed-rewards\")\r\n\r\n const stakeBalances = await Promise.all(poolParams.stakeTokenContractList.map(stakeCD => stakeCD.getBalance()))\r\n // const stakeBalances = poolParams.stakeTokenContractList.map(stakeCD => stakeCD.getBalanceSync())\r\n await refreshInputAmounts(poolParams, newPool, \"main-stake\", stakeBalances)\r\n await refreshInputAmounts(poolParams, newPool, \"main-unstake\", [userPoolParams.staked.toString()])\r\n\r\n if(userPoolParams.staked == 0n) {\r\n newPool.classList.remove(\"your-farms\")\r\n let doesPoolNeedDeposit = await needsStorageDeposit(poolParams.stakeTokenContract)\r\n \r\n const stakeTokenList = poolParams.stakeTokenContractList\r\n for(let i = 0; i < stakeTokenList.length && !doesPoolNeedDeposit; i++) {\r\n const tokenContract = stakeTokenList[i].contract!\r\n const doesTokenNeedStorageDeposit = await needsStorageDeposit(tokenContract)\r\n if (doesTokenNeedStorageDeposit) {\r\n doesPoolNeedDeposit = true\r\n }\r\n }\r\n\r\n if(!doesPoolNeedDeposit && newPool.classList.contains(\"inactive-pool\")) {\r\n newPool.querySelector(\"#activate\")?.classList.add(\"hidden\")\r\n } else {\r\n newPool.querySelector(\"#activate\")?.classList.remove(\"hidden\")\r\n }\r\n }\r\n\r\n const now = Date.now() / 1000\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n if(!isDateInRange) { \r\n resetSinglePoolListener(poolParams, newPool, refreshPoolInfoSingle, -1)\r\n }\r\n\r\n setDateInRangeVisualIndication(poolParams, newPool, isDateInRange)\r\n}\r\n\r\nasync function refreshNFTOrMultiplePoolInfo(poolParams: PoolParamsP3|PoolParamsNFT, newPool: HTMLElement){\r\n await poolParams.refreshAllExtraData()\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n const farmTokenContractList = await poolParams.stakingContractData.getFarmTokenContractList()\r\n\r\n if(poolParams instanceof PoolParamsP3) {\r\n await updateDetail(newPool, await stakeTokenContractList, contractParams.total_staked, \"total-staked\")\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n newPool.querySelector(\".total-staked-value-usd\")!.innerHTML = `${contractParams.total_staked} NFT's`\r\n }\r\n // updateDetail(newPool, poolParams.farmTokenContractList, poolParams.contractParams.total_farmed, \"apr\")\r\n const rewardsTokenDataArray = await poolParams.getRewardsTokenDetail()\r\n const rewardsPerDay = rewardsTokenDataArray.map(data => data.rewardsPerDayBN!.toString())\r\n await updateDetail(newPool, farmTokenContractList, rewardsPerDay, \"rewards-per-day\")\r\n await updateDetail(newPool, farmTokenContractList, poolUserStatus.farmed_tokens, \"unclaimed-rewards\")\r\n\r\n const now = Date.now() / 1000\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n\r\n if(poolParams instanceof PoolParamsP3) {\r\n const stakeBalances = await Promise.all(stakeTokenContractList.map(stakeCD => stakeCD.getBalance()))\r\n await refreshInputAmounts(poolParams, newPool, \"main-stake\", stakeBalances)\r\n // On PoolParamsP3 the poolUserStatus.stake_tokens is always a string[]\r\n await refreshInputAmounts(poolParams, newPool, \"main-unstake\", poolUserStatus.stake_tokens as string[])\r\n\r\n if(!isDateInRange) {\r\n resetMultiplePoolListener(poolParams, newPool, refreshNFTOrMultiplePoolInfo, -1)\r\n }\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n if(!isDateInRange) {\r\n resetNFTPoolListener(poolParams, newPool, refreshNFTOrMultiplePoolInfo, -1)\r\n }\r\n }\r\n\r\n setBoostDisplay(poolParams, newPool)\r\n\r\n setDateInRangeVisualIndication(poolParams, newPool, isDateInRange)\r\n}\r\n\r\nasync function refreshInputAmounts(poolParams: PoolParams|PoolParamsP3, newPool: HTMLElement, className: string, amounts: U128String[]) {\r\n const inputArray = newPool.querySelectorAll(`.${className} .token-input-container`)\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < inputArray.length; i++) {\r\n const input = inputArray[i]\r\n const tokenContractData: TokenContractData = stakeTokenContractList[i]\r\n const balance = amounts[i]\r\n const metadata = await tokenContractData.getMetadata()\r\n const balanceDisplayable = convertToDecimals(balance, metadata.decimals, 5)\r\n input.querySelector(\".value\")!.innerHTML = balanceDisplayable\r\n\r\n const maxButton = input.querySelector(\".max-button\") as HTMLElement\r\n showOrHideMaxButton(Number(balanceDisplayable), maxButton)\r\n }\r\n}\r\n\r\nfunction convertRewardsRates(rates: string[]) {\r\n return rates.map(rate => (BigInt(rate) * 60n * 24n).toString())\r\n}\r\n\r\nasync function updateDetail(newPool: HTMLElement, contractList: TokenContractData[], totals: string[], baseClass: string) {\r\n // CHECK 2\r\n const totalInUsd: string = await convertToUSDMultiple(contractList, totals)\r\n newPool.querySelector(`.${baseClass}-row .${baseClass}-value-usd`)!.innerHTML = `$ ${totalInUsd}`\r\n const totalDetailsElements: NodeListOf = newPool.querySelectorAll(`.${baseClass}-info-container .detail-row`)\r\n for(let i = 0; i < totalDetailsElements.length; i++) {\r\n const row = totalDetailsElements[i]\r\n const tokenMetadata = await contractList[i].getMetadata()\r\n const content = convertToDecimals(totals[i], tokenMetadata.decimals, 5)\r\n row.querySelector(\".content\")!.innerHTML = content\r\n }\r\n}\r\n\r\nasync function uptadeDetailIfNecesary(poolParams: PoolParams|PoolParamsP3, newPool: HTMLElement, contractList: TokenContractData[], totals: string[], baseClass: string) {\r\n let doesPoolNeedDeposit = await needsStorageDeposit(poolParams.stakingContractData.contract)\r\n \r\n const stakeTokenList = poolParams.stakeTokenContractList\r\n for(let i = 0; i < stakeTokenList.length && !doesPoolNeedDeposit; i++) {\r\n const tokenContract = stakeTokenList[i].contract!\r\n const doesTokenNeedStorageDeposit = await needsStorageDeposit(tokenContract)\r\n if (doesTokenNeedStorageDeposit) {\r\n doesPoolNeedDeposit = true\r\n }\r\n }\r\n\r\n if (!doesPoolNeedDeposit) {\r\n await updateDetail(newPool, contractList, totals, baseClass)\r\n }\r\n}\r\n\r\n\r\nasync function refreshAccountInfoGeneric(poolList: Array) {\r\n poolList.forEach(poolParams => {\r\n //refreshPoolInfo(poolParams)\r\n });\r\n}\r\n\r\n/// when the user chooses \"connect to web-page\" in the narwallets-chrome-extension\r\nfunction narwalletConnected(ev: CustomEvent) {\r\n wallet = narwallets;\r\n loggedWithNarwallets = true\r\n signedInFlow(wallet)\r\n}\r\n\r\n/// when the user chooses \"disconnect from web-page\" in the narwallets-chrome-extension\r\nfunction narwalletDisconnected(ev: CustomEvent) {\r\n loggedWithNarwallets = false\r\n wallet = disconnectedWallet;\r\n\r\n signedOutFlow()\r\n}\r\n\r\nfunction calculateAmountHaveStaked(stakeRates: bigint[], amount: bigint, amountIndex: number, newAmountIndex: number) {\r\n\tconst amountToStake = amount * stakeRates[newAmountIndex] / stakeRates[amountIndex]\r\n\treturn amountToStake\r\n}\r\n\r\nfunction calculateAmountToStake(stakeRates: bigint[], totalStaked: bigint[], amount: bigint, inputIndex: number, outputIndex: number): bigint {\r\n\tconst totalAmountStakedWithThisStake = totalStaked[inputIndex] + amount\r\n const amountToStake: bigint = totalAmountStakedWithThisStake * stakeRates[inputIndex] / stakeRates[outputIndex] - totalStaked[outputIndex]\r\n return amountToStake > 0n ? amountToStake : 0n\r\n}\r\n\r\n\r\nfunction calculateAmountToUnstake(stakeRates: bigint[], totalStaked: bigint[], amount: bigint, alreadySetIndex: number, newIndex: number) {\r\n\tconst totalAmountStakedWithThisUnstake = totalStaked[alreadySetIndex] - amount\r\n const output = totalStaked[newIndex] - totalAmountStakedWithThisUnstake * stakeRates[alreadySetIndex] / stakeRates[newIndex]\r\n return output > 0n ? output : 0n\r\n}\r\n\r\nfunction autoFillStakeAmount(poolParams: PoolParamsP3, pool: HTMLElement, inputRoute: string, indexInputToken: number) {\r\n return async function (event: Event) {\r\n event.preventDefault()\r\n const value1 = (event.target as HTMLInputElement).value\r\n // const amountToStake = BigInt(value1)\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n const inputTokenMetadata = await stakeTokenContractList[indexInputToken].getMetadata()\r\n const amountToStakingOrUnstaking = BigInt(convertToBase(value1, inputTokenMetadata.decimals.toString()))\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n\r\n let inputs: NodeListOf = pool.querySelectorAll(`${inputRoute} input`)! as NodeListOf\r\n const stakeRates = contractParams.stake_rates.map((rate: U128String) => BigInt(rate)) \r\n const totalStakedByUser = poolUserStatus.stake_tokens.map(total => BigInt(total))\r\n for(let indexOutputToken = 0; indexOutputToken < inputs.length; indexOutputToken++) {\r\n if(indexOutputToken != indexInputToken) {\r\n let amountToTransferSecondaryBN\r\n if(inputRoute.includes(\"unstake\")) {\r\n amountToTransferSecondaryBN = calculateAmountToUnstake(stakeRates, totalStakedByUser, amountToStakingOrUnstaking, indexInputToken, indexOutputToken)\r\n } else {\r\n amountToTransferSecondaryBN = calculateAmountToStake(stakeRates, totalStakedByUser, amountToStakingOrUnstaking, indexInputToken, indexOutputToken)\r\n \r\n }\r\n const currentStakeTokenMetadata = await stakeTokenContractList[indexOutputToken].getMetadata()\r\n const amountToStakeSecondary = convertToDecimals(amountToTransferSecondaryBN, currentStakeTokenMetadata.decimals, 5)\r\n // const amountToStakeSecondary\r\n inputs.item(indexOutputToken).value = amountToStakeSecondary\r\n }\r\n }\r\n }\r\n}\r\n\r\nasync function addPoolSingle(poolParams: PoolParams, newPool: HTMLElement): Promise {\r\n const contractParams: ContractParams = await poolParams.stakingContractData.getContractParams()\r\n const userStatus = await poolParams.stakingContractData.getUserStatus()\r\n const stakeTokenContractData: TokenContractData = await poolParams.getStakeTokenContractData();\r\n const farmTokenContractData: TokenContractData = await poolParams.getFarmTokenContractData();\r\n\r\n\r\n var metaData = await poolParams.stakeTokenContractList[0].getMetadata()\r\n let iconElem = newPool.querySelectorAll(\"#token-logo-container img\")\r\n iconElem.forEach(icon => {\r\n icon!.setAttribute(\"src\", metaData.icon || \"\");\r\n });\r\n \r\n await addInput(newPool, stakeTokenContractData, \"stake\")\r\n await addInput(newPool, stakeTokenContractData, \"unstake\", userStatus.staked.toString())\r\n\r\n await addHeader(poolParams, newPool)\r\n \r\n let unclaimedRewards = await getUnclaimedRewardsInUSDSingle(poolParams)\r\n\r\n const now = Date.now() / 1000\r\n const isDateInRange = now < contractParams.farming_end\r\n\r\n if (Number(unclaimedRewards.toFixed(7)) != 0) {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ ${unclaimedRewards.toFixed(7).toString()}`\r\n } else if ((Number(unclaimedRewards.toFixed(7)) != 0) && isDateInRange) {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ 0`\r\n } else {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ -`\r\n }\r\n\r\n\r\n const totalStakedInUsd = await convertToUSDMultiple([stakeTokenContractData], [contractParams.total_staked])\r\n const rewardsPerDayInUsd = await convertToUSDMultiple([farmTokenContractData], [(BigInt(contractParams.farming_rate) * 60n * 24n).toString()])\r\n\r\n newPool.querySelector(\".total-staked-value-usd\")!.innerHTML = `$ ${totalStakedInUsd}`\r\n newPool.querySelector(\".rewards-per-day-value-usd\")!.innerHTML = `$ ${rewardsPerDayInUsd}`\r\n \r\n const apr = calculateAPR(totalStakedInUsd, rewardsPerDayInUsd, isDateInRange)\r\n newPool.querySelector(\".apr-value\")!.innerHTML = `${apr}%`\r\n\r\n addSinglePoolListeners(poolParams, newPool)\r\n}\r\n\r\nfunction calculateAPR(totalStakedInUsd: string, rewardsPerDayInUsd: string, isDateInRange: boolean): string {\r\n if(!isDateInRange) {\r\n return \"-\"\r\n } else {\r\n return (365 * Number(rewardsPerDayInUsd) / Number(totalStakedInUsd) * 100).toFixed(2)\r\n }\r\n\r\n}\r\n\r\nasync function addTokenFarmLogos(poolParams: PoolParams|PoolParamsP3, header: HTMLElement) {\r\n let tokenContractDataArray: TokenContractData[]\r\n if(poolParams instanceof PoolParams) {\r\n tokenContractDataArray = poolParams.stakeTokenContractList\r\n } else {\r\n tokenContractDataArray = await poolParams.stakingContractData.getStakeTokenContractList()\r\n } \r\n // tokenContractDataArray: TokenContractData[] = poolParams.stakingContractData\r\n const logoContainer = header.querySelector(\".token-logo-container\")! as HTMLElement\r\n logoContainer.innerHTML = \"\"\r\n\r\n let i = 0\r\n for(; i < tokenContractDataArray.length; i++) {\r\n const tokenIconData = tokenContractDataArray[i]\r\n let metaData \r\n metaData = await tokenIconData.getMetadata()\r\n \r\n addLogo(metaData, logoContainer, i)\r\n }\r\n logoContainer.classList.add(`have-${tokenContractDataArray.length}-elements`)\r\n}\r\n\r\nasync function addNFTFarmLogo(poolParams: PoolParamsNFT, header: HTMLElement) { \r\n // NFTContractData: TokenContractData[] = poolParams.stakingContractData\r\n const logoContainer = header.querySelector(\".token-logo-container\")! as HTMLElement\r\n logoContainer.innerHTML = \"\"\r\n\r\n const tokenLogoElement = qs(\".generic-token-logo-img\")\r\n let newTokenLogoElement = tokenLogoElement.cloneNode(true) as HTMLElement\r\n\r\n // For the time being there is only one token\r\n // const baseUrl = poolParams.stakingContractData.nftBaseUrl[0]\r\n const stakeNFTContractList = await poolParams.stakingContractData.getStakeNFTContractList()\r\n const metadata: NFTMetadata = await stakeNFTContractList[0].getMetadata()\r\n \r\n let imgUrl = metadata.icon\r\n if(!imgUrl) {\r\n imgUrl = poolParams.config.logo\r\n }\r\n newTokenLogoElement?.setAttribute(\"src\", imgUrl)\r\n newTokenLogoElement?.setAttribute(\"alt\", metadata.name)\r\n\r\n toggleGenericClass(newTokenLogoElement)\r\n newTokenLogoElement.classList.add(`farmed-token-logo`)\r\n logoContainer.append(newTokenLogoElement)\r\n \r\n logoContainer.classList.add(`have-1-elements`)\r\n}\r\n\r\nasync function addAllLogos(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, header: HTMLElement) {\r\n if(poolParams instanceof PoolParams || poolParams instanceof PoolParamsP3) {\r\n addTokenFarmLogos(poolParams, header)\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n addNFTFarmLogo(poolParams, header)\r\n }\r\n}\r\n\r\nasync function addHeader(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n const genericHeader = qs(\".generic-new-pool-header\")\r\n const newHeader = genericHeader.cloneNode(true) as HTMLElement\r\n\r\n await addAllLogos(poolParams, newHeader)\r\n\r\n const poolContainer = newPool.querySelector(\"#pool-container\") as HTMLElement\r\n const tokenPoolStatsContainer = newPool.querySelector(\"#token-pool-stats\") as HTMLElement\r\n\r\n \r\n poolContainer.prepend(newHeader)\r\n \r\n toggleGenericClass(newHeader)\r\n const newTokenPoolStats = newHeader.cloneNode(true) as HTMLElement\r\n tokenPoolStatsContainer.prepend(newTokenPoolStats)\r\n}\r\n\r\nasync function addMultiplePoolListeners(poolParams: PoolParamsP3, newPool: HTMLElement) {\r\n addAllCommonListeners(poolParams, newPool)\r\n let tokenSymbols = []\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n for(let i=0; i < stakeTokenContractList.length; i++){ // Harvest button listener\r\n const contractData = stakeTokenContractList[i]\r\n const currentStakeTokenMetadata = await contractData.getMetadata()\r\n tokenSymbols.push(`${currentStakeTokenMetadata.symbolForHtml.toLowerCase()}`)\r\n }\r\n\r\n newPool.querySelector(\".confetti-button\")?.addEventListener(\"click\", harvestMultipleOrNFT(poolParams, newPool))\r\n\r\n\r\n for (let i=0; i < tokenSymbols.length; i++){ // Autofill inputs with correct rates\r\n newPool.querySelector(`.main-stake .${tokenSymbols[i]}-input input`)!.addEventListener(\"input\", autoFillStakeAmount(poolParams, newPool, `.main-stake`, i))\r\n newPool.querySelector(`.main-unstake .${tokenSymbols[i]}-input input`)!.addEventListener(\"input\", autoFillStakeAmount(poolParams, newPool, `.main-unstake`, i))\r\n }\r\n\r\n // Stake/unstake buttons\r\n newPool.querySelector(\"#stake-button\")?.addEventListener(\"click\", stakeMultiple(poolParams, newPool))\r\n newPool.querySelector(\"#unstake-button\")?.addEventListener(\"click\", unstakeMultiple(poolParams, newPool))\r\n \r\n setAllInputMaxButtonListeners(newPool)\r\n // Refresh every 5 seconds if it's live\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n let refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshNFTOrMultiplePoolInfo.bind(null, poolParams, newPool), refreshTime)\r\n } \r\n \r\n //Info to transfer so we can check what pool is loading the NFTs\r\n let boostButton = newPool.querySelector(\".boost-button\")! as HTMLElement;\r\n let boostButtonId = boostButton.id\r\n boostButton.addEventListener(\"click\", showNFTGrid(poolParams, boostButtonId))\r\n\r\n // Hover events\r\n standardHoverToDisplayExtraInfo(newPool, \"total-staked\")\r\n // standardHoverToDisplayExtraInfo(newPool, \"apr\")\r\n standardHoverToDisplayExtraInfo(newPool, \"rewards-per-day\")\r\n standardHoverToDisplayExtraInfo(newPool, \"reward-tokens\")\r\n standardHoverToDisplayExtraInfo(newPool, \"unclaimed-rewards\")\r\n}\r\n\r\nasync function addNFTPoolListeners(poolParams: PoolParamsNFT, newPool: HTMLElement) {\r\n addAllCommonListeners(poolParams, newPool)\r\n let tokenSymbols = []\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n for(let i=0; i < stakeTokenContractList.length; i++){ // Harvest button listener\r\n const contractData = stakeTokenContractList[i]\r\n const currentStakeTokenMetadata = await contractData.getMetadata()\r\n tokenSymbols.push(`${currentStakeTokenMetadata.symbolForHtml.toLowerCase()}`)\r\n }\r\n newPool.querySelector(\".confetti-button\")?.addEventListener(\"click\", harvestMultipleOrNFT(poolParams, newPool))\r\n\r\n let stakeUnstakeNftButton = newPool.querySelector(\"#stake-unstake-nft\")! as HTMLButtonElement\r\n let stakeUnstakeNftButtonId = stakeUnstakeNftButton.id\r\n stakeUnstakeNftButton.addEventListener(\"click\", async function() {\r\n stakeUnstakeNftButton.disabled = true;\r\n stakeUnstakeNftButton.innerHTML = \"Loading...\";\r\n await showStakeUnstakeNFTGrid(poolParams, stakeUnstakeNftButtonId);\r\n stakeUnstakeNftButton.disabled = false;\r\n stakeUnstakeNftButton.innerHTML = \"STAKE/UNSTAKE\";\r\n });\r\n\r\n // Refresh every 60 seconds if it's live\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n let refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshNFTOrMultiplePoolInfo.bind(null, poolParams, newPool), refreshTime)\r\n } \r\n \r\n //Info to transfer so we can check what pool is loading the NFTs\r\n let boostButton = newPool.querySelector(\".boost-button\")! as HTMLElement;\r\n let boostButtonId = boostButton.id\r\n boostButton.addEventListener(\"click\", showNFTGrid(poolParams, boostButtonId))\r\n\r\n // Hover events\r\n standardHoverToDisplayExtraInfo(newPool, \"total-staked\")\r\n // standardHoverToDisplayExtraInfo(newPool, \"apr\")\r\n standardHoverToDisplayExtraInfo(newPool, \"rewards-per-day\")\r\n standardHoverToDisplayExtraInfo(newPool, \"reward-tokens\")\r\n standardHoverToDisplayExtraInfo(newPool, \"unclaimed-rewards\")\r\n}\r\n\r\nfunction addPoolTokensDescription (newPool: HTMLElement, poolParams: PoolParams|PoolParamsP3|PoolParamsNFT) {\r\n const legendContainer = newPool.querySelector(\".pool-legend\") as HTMLElement\r\n let poolLegends = poolParams.poolDescription;\r\n if(poolLegends != undefined){\r\n for(let i=0; i < poolLegends.length; i++){\r\n const descriptionLinks = poolParams.descriptionLink;\r\n \r\n if(descriptionLinks != undefined){\r\n poolLegends[i] += ` here.
`\r\n }\r\n\r\n legendContainer.innerHTML += poolLegends[i]\r\n legendContainer.classList.remove(\"hidden\")\r\n }\r\n }\r\n}\r\n\r\nasync function addNFTPool(poolParams: PoolParamsNFT, newPool: HTMLElement): Promise {\r\n const farmTokenContractList: TokenContractData[] = await poolParams.stakingContractData.getFarmTokenContractList()\r\n let contractParams: NFTStakingContractParams = await poolParams.stakingContractData.getContractParams()\r\n\r\n await addHeader(poolParams, newPool)\r\n\r\n const rewardsTokenDataArray = await poolParams.getRewardsTokenDetail()\r\n const rewardsPerDay = rewardsTokenDataArray.map(data => data.rewardsPerDayBN!.toString())\r\n const rewardsPerDayInUsd = await convertToUSDMultiple(farmTokenContractList, rewardsPerDay)\r\n newPool.querySelector(\".rewards-per-day-value-usd\")!.innerHTML = `$ ${rewardsPerDayInUsd}`\r\n\r\n if(!poolParams.config.noBoost) {\r\n newPool.querySelector(\".boost-button\")!.classList.remove(\"hidden\")\r\n } else {\r\n newPool.querySelector(\".equal-width-than-boost-button\")!.classList.add(\"hidden\")\r\n let harvestSection: HTMLElement = newPool.querySelector(\".harvest-section\")!\r\n harvestSection.style.justifyContent = \"center\"\r\n }\r\n newPool.querySelector(\".structural-in-simple-pools\")!.classList.add(\"hidden\")\r\n\r\n //TODO DANI check apr and staked value\r\n // let farmTokenContractList = await poolParams.stakingContractData.getFarmTokenContractList()\r\n \r\n const now = Date.now() / 1000\r\n const isDateInRange = now < contractParams.farming_end\r\n \r\n let farmTokenRateInUSD = await convertToUSDMultiple(farmTokenContractList, contractParams.farm_token_rates)\r\n let NFTDepositedx100 = Number(contractParams.total_staked[0]) * 100\r\n // const apr = rewards. emission_rate * minutes * hours * 365 / * 100\r\n let apr = calculateAPR(farmTokenRateInUSD, NFTDepositedx100.toString(), isDateInRange)\r\n newPool.querySelector(\".apr-value\")!.innerHTML = `${apr}%`\r\n\r\n setBoostDisplay(poolParams, newPool)\r\n\r\n addNFTPoolListeners(poolParams, newPool) \r\n\r\n refreshNFTOrMultiplePoolInfo(poolParams, newPool)\r\n}\r\n\r\nasync function addPoolMultiple(poolParams: PoolParamsP3, newPool: HTMLElement): Promise {\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n const stakeTokenContractList = await poolParams.stakingContractData.getStakeTokenContractList()\r\n const farmTokenContractList = await poolParams.stakingContractData.getFarmTokenContractList()\r\n await addHeader(poolParams, newPool)\r\n let tokenSymbols = []\r\n await poolParams.getWalletAvailable()\r\n for(let i=0; i < stakeTokenContractList.length; i++){\r\n const contractData = stakeTokenContractList[i]\r\n const metaData = await contractData.getMetadata()\r\n\r\n await addInput(newPool, contractData, \"stake\")\r\n await addInput(newPool, contractData, \"unstake\", poolUserStatus.stake_tokens[i])\r\n \r\n tokenSymbols.push(`${metaData.symbolForHtml.toLowerCase()}`)\r\n }\r\n\r\n //Show boost button patch (since simple pools will disapear and they have problems with the boost button)\r\n newPool.querySelector(\".boost-button\")!.classList.remove(\"hidden\")\r\n newPool.querySelector(\".structural-in-simple-pools\")!.classList.add(\"hidden\")\r\n\r\n \r\n const unclaimedRewards = Number(await convertToUSDMultiple(farmTokenContractList, poolUserStatus.farmed_tokens))\r\n // const unclaimedRewards = Number(await convertToUSDMultiple(poolParams.farmTokenContractList, poolParams.resultParams.farmed))\r\n\r\n const now = Date.now() / 1000\r\n const isDateInRange = now < contractParams.farming_end\r\n\r\n if (Number(unclaimedRewards.toFixed(7)) != 0) {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ ${unclaimedRewards.toFixed(7).toString()}`\r\n } else if ((Number(unclaimedRewards.toFixed(7)) != 0) && isDateInRange) {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ 0`\r\n } else {\r\n newPool.querySelector(\".unclaimed-rewards-value-usd\")!.innerHTML = `$ -`\r\n }\r\n \r\n const totalStakedInUsd: string = await convertToUSDMultiple(stakeTokenContractList, contractParams.total_staked)\r\n \r\n // CHECK!\r\n const legendContainer = newPool.querySelector(\".pool-legend\") as HTMLElement\r\n let poolLegends = poolParams.poolDescription;\r\n if(poolLegends != undefined){\r\n for(let i=0; i < poolLegends.length; i++){\r\n const descriptionLinks = poolParams.descriptionLink;\r\n \r\n if(descriptionLinks != undefined){\r\n poolLegends[i] += ` here.`\r\n }\r\n\r\n legendContainer.innerHTML += poolLegends[i] + \"
\"\r\n legendContainer.classList.remove(\"hidden\")\r\n }\r\n }\r\n\r\n\r\n const rewardsTokenDataArray = await poolParams.getRewardsTokenDetail()\r\n const rewardsPerDay = rewardsTokenDataArray.map(data => data.rewardsPerDayBN!.toString())\r\n const rewardsPerDayInUsd = await convertToUSDMultiple(farmTokenContractList, rewardsPerDay)\r\n newPool.querySelector(\".total-staked-row .total-staked-value-usd\")!.innerHTML = `$ ${totalStakedInUsd}`\r\n // newPool.querySelector(\".apr-row .apr-value\")!.innerHTML = `$ ${totalFarmedInUsd}`\r\n newPool.querySelector(\".rewards-per-day-value-usd\")!.innerHTML = `$ ${rewardsPerDayInUsd}`\r\n\r\n const apr = calculateAPR(totalStakedInUsd, rewardsPerDayInUsd, isDateInRange)\r\n newPool.querySelector(\".apr-value\")!.innerHTML = `${apr}%`\r\n\r\n setBoostDisplay(poolParams, newPool)\r\n\r\n addMultiplePoolListeners(poolParams, newPool)\r\n}\r\n\r\nasync function setBoostDisplay(poolParams: PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n const poolUserStatus: PoolUserStatusP3|PoolUserStatusP3NFT = await poolParams.stakingContractData.getUserStatus()\r\n let hasNFTStaked\r\n if(\"boost_nfts\" in poolUserStatus) {\r\n hasNFTStaked = poolUserStatus.boost_nfts != ''\r\n } else {\r\n hasNFTStaked = poolUserStatus.cheddy_nft != ''\r\n }\r\n // hasNFTStaked = poolUserStatus.cheddy_nft != ''\r\n if(hasNFTStaked) {\r\n newPool.querySelector(\".boost-button svg\")!.setAttribute(\"class\", \"full\")\r\n newPool.querySelector(\".boost-button span\")!.innerHTML = \"BOOSTED\"\r\n } else {\r\n newPool.querySelector(\".boost-button svg\")!.setAttribute(\"class\", \"empty\")\r\n newPool.querySelector(\".boost-button span\")!.innerHTML = \"BOOST\"\r\n }\r\n}\r\n\r\nfunction addFocusClass(input:HTMLElement) {\r\n return function (event:Event) {\r\n event?.preventDefault\r\n input.classList.toggle(\"focused\")\r\n }\r\n}\r\n\r\nasync function addInput(newPool: HTMLElement, contractData: TokenContractData, action: string, stakedAmount?: U128String) {\r\n let inputContainer = qs(\".generic-token-input-container\")\r\n var newInputContainer = inputContainer.cloneNode(true) as HTMLElement\r\n let inputRowContainer = newInputContainer.querySelector(\".input-container\") as HTMLElement\r\n let infoRowContainer = newInputContainer.querySelector(\".available-info\") as HTMLElement\r\n let input = newInputContainer.querySelector(\"input\") as HTMLElement\r\n \r\n const metaData = await contractData.getMetadata()\r\n newInputContainer.classList.remove(\"generic-token-input-container\")\r\n newInputContainer.classList.add(\"token-input-container\")\r\n newInputContainer.classList.add(`${metaData.symbolForHtml.toLowerCase()}-input`)\r\n newInputContainer.classList.remove(`hidden`)\r\n\r\n newInputContainer.querySelector(\".available-info span\")!.innerHTML = `Available to ${action}`\r\n newInputContainer.querySelector(\".amount-available\")?.classList.add(action)\r\n\r\n input!.addEventListener(\"focus\", addFocusClass(inputRowContainer!))\r\n input!.addEventListener(\"blur\", addFocusClass(inputRowContainer!))\r\n \r\n let inputLogoContainer = newInputContainer.querySelector(\".input-container .token-logo\") as HTMLElement\r\n let amountAvailableValue = newInputContainer.querySelector(\".amount-available .value\")\r\n let maxButton = infoRowContainer.querySelector(\".max-button\") as HTMLElement\r\n\r\n if (metaData.icon != null){\r\n if(metaData.icon.startsWith(\"data:image\")) {\r\n let tokenLogoElement = newInputContainer.querySelector(\"img.token-logo\")\r\n tokenLogoElement?.setAttribute(\"src\", metaData.icon)\r\n inputLogoContainer?.classList.remove(\"hidden\")\r\n } else if(metaData.icon.startsWith(\" {\r\n elem.classList.add(\"hidden\")\r\n })\r\n}\r\n\r\nasync function addAllCommonListeners(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n let infoIcon = newPool.querySelector(\".new-pool-header .information-icon-container\")! as HTMLElement;\r\n let poolStats = newPool.querySelector(\"#token-pool-stats\")! as HTMLElement;\r\n \r\n infoIcon.addEventListener(\"mouseover\", showElement(poolStats));\r\n poolStats.addEventListener(\"mouseover\", showElement(poolStats));\r\n poolStats.addEventListener(\"mouseout\", hideElement(poolStats));\r\n\r\n // let harvestButton = newPool.querySelector(\".confetti-button\") as HTMLButtonElement\r\n\r\n // //You can check how to configure it in https://party.js.org/\r\n // let confettiConfiguration = {\r\n // count: party.variation.range(25,30),\r\n // spread: party.variation.range(20,25)\r\n // }\r\n\r\n // harvestButton.addEventListener(\"click\", function () {\r\n // party.confetti(harvestButton, confettiConfiguration);\r\n // });\r\n\r\n let doesNeedStorageDeposit : boolean\r\n if(poolParams instanceof PoolParams) {\r\n doesNeedStorageDeposit = false\r\n } else {\r\n doesNeedStorageDeposit = await needsStorageDeposit(poolParams.stakingContractData.contract)\r\n }\r\n // Displays staking/unstaking when hovering on the pool(only in Live and Your Farms)\r\n \r\n if(!(poolParams instanceof PoolParamsNFT) && !doesNeedStorageDeposit && !newPool.classList.contains(\"inactive-pool\")) {\r\n let vanishingIndicator = newPool.querySelector(\"#vanishing-indicator\") as HTMLElement\r\n vanishingIndicator?.classList.remove(\"transparent\")\r\n vanishingIndicator?.classList.add(\"visual-tool-expanding-indication-hidden\")\r\n newPool.addEventListener(\"mouseover\", paintOrUnPaintElement(\"visual-tool-expanding-indication-hidden\", vanishingIndicator));\r\n newPool.addEventListener(\"mouseout\", paintOrUnPaintElement(\"visual-tool-expanding-indication-hidden\",vanishingIndicator)); \r\n\r\n let expandButtonStakingUnstaking = newPool.querySelector(\".expand-button\") as HTMLElement\r\n newPool.addEventListener(\"mouseover\", makeBlinkElement(expandButtonStakingUnstaking));\r\n newPool.addEventListener(\"mouseout\", makeBlinkElement(expandButtonStakingUnstaking));\r\n }\r\n}\r\n\r\nasync function addSinglePoolListeners(poolParams: PoolParams, newPool: HTMLElement) {\r\n addAllCommonListeners(poolParams, newPool)\r\n // Harvest button listener\r\n const contractData = await poolParams.getStakeTokenContractData()\r\n const metaData = await contractData.getMetadata()\r\n newPool.querySelector(\".confetti-button\")?.addEventListener(\"click\", harvestSingle(poolParams, newPool))\r\n // Token symbols is done this way to emulate multiple case. Single case will be removed shortly\r\n let tokenSymbols = []\r\n tokenSymbols.push(`${metaData.symbol.toLowerCase()}`)\r\n newPool.querySelector(\".confetti-button\")?.addEventListener(\"click\", harvestSingle(poolParams, newPool))\r\n\r\n // Stake/unstake buttons\r\n newPool.querySelector(\"#stake-button\")?.addEventListener(\"click\", stakeSingle(poolParams, newPool))\r\n newPool.querySelector(\"#unstake-button\")?.addEventListener(\"click\", unstakeSingle(poolParams, newPool))\r\n \r\n setAllInputMaxButtonListeners(newPool)\r\n // Refresh every 5 seconds if it's live\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n let refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshPoolInfoSingle.bind(null, poolParams, newPool), refreshTime)\r\n }\r\n \r\n\r\n // Hover events\r\n standardHoverToDisplayExtraInfo(newPool, \"total-staked\")\r\n // standardHoverToDisplayExtraInfo(newPool, \"apr\")\r\n standardHoverToDisplayExtraInfo(newPool, \"rewards-per-day\")\r\n standardHoverToDisplayExtraInfo(newPool, \"reward-tokens\")\r\n standardHoverToDisplayExtraInfo(newPool, \"unclaimed-rewards\")\r\n}\r\n\r\nasync function resetSinglePoolListener(poolParams: PoolParams, pool: HTMLElement, refreshFunction: (pp: PoolParams, np: HTMLElement) => void, refreshIntervalId: number) {\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n let newPool = pool.cloneNode(true) as HTMLElement\r\n hideAllDynamicElements(newPool)\r\n addFilterClasses(poolParams, newPool)\r\n \r\n addSinglePoolListeners(poolParams, newPool)\r\n if(newPool.classList.contains(\"inactive-pool\")) {\r\n displayInactiveP2P3Pool(newPool)\r\n } else {\r\n displayActivePool(poolParams, newPool)\r\n }\r\n if(refreshIntervalId != -1) {\r\n clearInterval(refreshIntervalId)\r\n const now = Date.now() / 1000\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshFunction.bind(null, poolParams, newPool), 5000)\r\n }\r\n \r\n }\r\n\r\n pool.replaceWith(newPool)\r\n\r\n const event = new Event('click')\r\n qs(\".activeFilterButton\").dispatchEvent(event)\r\n}\r\n\r\nasync function resetMultiplePoolListener(poolParams: PoolParamsP3, pool: HTMLElement, refreshFunction: (pp: PoolParamsP3, np: HTMLElement) => void, refreshIntervalId: number) {\r\n let newPool = pool.cloneNode(true) as HTMLElement\r\n hideAllDynamicElements(newPool)\r\n addFilterClasses(poolParams, newPool)\r\n addMultiplePoolListeners(poolParams, newPool)\r\n \r\n if(newPool.classList.contains(\"inactive-pool\")) {\r\n displayInactiveP2P3Pool(newPool)\r\n } else {\r\n displayActivePool(poolParams, newPool)\r\n }\r\n if(refreshIntervalId != -1) {\r\n clearInterval(refreshIntervalId)\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshFunction.bind(null, poolParams, newPool), 5000)\r\n }\r\n \r\n }\r\n\r\n pool.replaceWith(newPool)\r\n\r\n const event = new Event('click')\r\n qs(\".activeFilterButton\").dispatchEvent(event)\r\n}\r\n\r\nasync function resetNFTPoolListener(poolParams: PoolParamsNFT, pool: HTMLElement, refreshFunction: (pp: PoolParamsNFT, np: HTMLElement) => void, refreshIntervalId: number) {\r\n let newPool = pool.cloneNode(true) as HTMLElement\r\n hideAllDynamicElements(newPool)\r\n addFilterClasses(poolParams, newPool)\r\n addNFTPoolListeners(poolParams, newPool)\r\n \r\n // For some reason, newPool.classList.contains(\"inactive-pool\") returns false when it has that class from time to time\r\n // So we're putting just pool. This should make the refresh to be bad on a first scenario, but good on a second one.\r\n if(pool.classList.contains(\"inactive-pool\")) {\r\n displayInactiveNFTPool(newPool, pool)\r\n } else {\r\n displayActivePool(poolParams, newPool)\r\n }\r\n if(refreshIntervalId != -1) {\r\n clearInterval(refreshIntervalId)\r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const isDateInRange = contractParams.farming_start < now && now < contractParams.farming_end\r\n refreshIntervalId = -1\r\n if(isDateInRange) {\r\n refreshIntervalId = window.setInterval(refreshFunction.bind(null, poolParams, newPool), 5000)\r\n }\r\n \r\n }\r\n\r\n pool.replaceWith(newPool)\r\n\r\n // const event = new Event('click')\r\n // qs(\".activeFilterButton\").dispatchEvent(event)\r\n}\r\n\r\nasync function addFilterClasses(poolParams: PoolParams | PoolParamsP3 | PoolParamsNFT, newPool: HTMLElement) {\r\n // Cleaning classes in case of reset\r\n const classes = [\"your-farms\", \"active-pool\", \"inactive-pool\"]\r\n classes.forEach(className => newPool.classList.remove(className))\r\n \r\n const now = Date.now() / 1000\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n // const isDateInRange = poolParams.contractParams.farming_start < now && now < poolParams.contractParams.farming_end\r\n const isDateInRange = now < contractParams.farming_end\r\n \r\n // const poolUserStatus: PoolUserStatus|[string, string, string] = await poolParams.stakingContractData.getUserStatus()\r\n if(await poolParams.userHasStakedTokens()){\r\n newPool.classList.add(\"your-farms\")\r\n }\r\n if(isDateInRange) {\r\n newPool.classList.add(\"active-pool\")\r\n } else {\r\n newPool.classList.add(\"inactive-pool\")\r\n }\r\n}\r\n\r\nasync function addPool(poolParams: PoolParams | PoolParamsP3 | PoolParamsNFT): Promise {\r\n var genericPoolElement = qs(\"#generic-pool-container\") as HTMLElement;\r\n let singlePoolParams: PoolParams\r\n let multiplePoolParams: PoolParamsP3\r\n \r\n var newPool = genericPoolElement.cloneNode(true) as HTMLElement;\r\n \r\n newPool.setAttribute(\"id\", poolParams.html.id.toLowerCase().replace(\" \", \"_\"))\r\n newPool.classList.remove(\"hidden\")\r\n newPool.classList.add(\"pool-container\")\r\n\r\n addFilterClasses(poolParams, newPool)\r\n await addRewardTokenIcons(poolParams, newPool)\r\n await addTotalStakedDetail(poolParams, newPool)\r\n await addRewardsPerDayDetail(poolParams, newPool)\r\n await addRewardsTokenDetail(poolParams, newPool)\r\n await addUnclaimedRewardsDetail(poolParams, newPool)\r\n if (poolParams instanceof PoolParams && poolParams.type == \"single\") {\r\n singlePoolParams = poolParams\r\n await addPoolSingle(singlePoolParams, newPool)\r\n } else if (poolParams instanceof PoolParamsP3 && poolParams.type == \"multiple\"){\r\n multiplePoolParams = poolParams\r\n await addPoolMultiple(multiplePoolParams, newPool)\r\n } else if(poolParams instanceof PoolParamsNFT && poolParams.type == \"nft\") {\r\n await addNFTPool(poolParams, newPool)\r\n }\r\n\r\n addPoolTokensDescription(newPool, poolParams)\r\n \r\n \r\n // New code\r\n let showContractStart = newPool.querySelector(\"#contract-start\")\r\n let showContractEnd = newPool.querySelector(\"#contract-end\")\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n\r\n const accountRegistered = contractParams.accounts_registered\r\n newPool.querySelector(\".accounts-registered-value-usd\")!.innerHTML = `${accountRegistered} accounts`\r\n \r\n showContractStart!.innerHTML = new Date(contractParams.farming_start * 1000).toLocaleString()\r\n showContractEnd!.innerHTML = new Date(contractParams.farming_end * 1000).toLocaleString()\r\n\r\n const poolName = await poolParams.getPoolName()\r\n newPool.querySelectorAll(\".token-name\").forEach(element => {\r\n element.innerHTML = poolName\r\n })\r\n\r\n if(newPool.classList.contains(\"inactive-pool\")) {\r\n displayInactiveP2P3Pool(newPool)\r\n } else {\r\n await displayActivePool(poolParams, newPool)\r\n }\r\n \r\n \r\n // await addTotalFarmedDetail(poolParams, newPool)\r\n \r\n let unixTimestamp = new Date().getTime() / 1000;\r\n // const isDateInRange = contractParams.farming_start < unixTimestamp && unixTimestamp < contractParams.farming_end\r\n const isDateInRange = unixTimestamp < contractParams.farming_end\r\n setDateInRangeVisualIndication(poolParams, newPool, isDateInRange)\r\n \r\n qs(\"#pool_list\").append(newPool)\r\n\r\n newPool.querySelector(\".deposit-fee-value\")!.innerHTML = (contractParams.fee_rate) ? contractParams.fee_rate / 100 + \"%\" : \"0%\"\r\n\r\n poolParams.confettiButton = new ConfettiButton(newPool)\r\n poolParams.confettiButton.render(\r\n poolParams.confettiButton.confettiButton,\r\n poolParams.confettiButton.canvas,\r\n poolParams.confettiButton.confetti,\r\n poolParams.confettiButton.sequins\r\n )\r\n\r\n let harvestedSuccesfully = sessionStorage.getItem(\"cheddarFarmHarvestedSuccesfully\")\r\n \r\n if(harvestedSuccesfully != null){\r\n let isUserFarming = newPool.classList.contains(\"your-farms\")\r\n // console.log(\"isUserFarming\", isUserFarming)\r\n isUserFarming && showSuccessOnHarvestAnimation(newPool, poolParams)\r\n }\r\n}\r\n\r\nfunction showSuccessOnHarvestAnimation(newPool: HTMLElement, poolParams: PoolParams|PoolParamsP3|PoolParamsNFT) {\r\n let poolID = newPool.id\r\n let harvestedPoolID = sessionStorage.getItem(\"cheddarFarmJustHarvested\")\r\n // console.log(\"poolID\", poolID)\r\n // console.log(\"harvestedPoolID\", harvestedPoolID)\r\n \r\n if(poolID == harvestedPoolID) {\r\n while(document.readyState != \"complete\"){\r\n setTimeout(() => {\r\n }, 1000);\r\n }\r\n poolParams.confettiButton?.successAnimation()\r\n sessionStorage.removeItem(\"cheddarFarmJustHarvested\")\r\n sessionStorage.removeItem(\"cheddarFarmHarvestedSuccesfully\") \r\n }\r\n}\r\n\r\nfunction displayInactiveP2P3Pool(newPool: HTMLElement) {\r\n const isUserFarming = newPool.classList.contains(\"your-farms\")\r\n if(isUserFarming) {\r\n toggleStakeUnstakeSection(newPool)\r\n setUnstakeTabListeners(newPool)\r\n\r\n newPool.querySelector(\".harvest-section\")!.classList.remove(\"hidden\")\r\n newPool.querySelector(\"#staking-unstaking-container .staking\")!.setAttribute(\"disabled\", \"disabled\")\r\n const event= new Event (\"click\")\r\n newPool.querySelector(\"#staking-unstaking-container .unstaking\")!.dispatchEvent(event)\r\n }\r\n}\r\n\r\nfunction displayInactiveNFTPool(newPool: HTMLElement, pool: HTMLElement) {\r\n const isUserFarming = pool.classList.contains(`your-farms`)\r\n if(isUserFarming) {\r\n newPool.querySelector(\"#stake-unstake-nft\")!.classList.remove(\"hidden\")\r\n newPool.querySelector(\".harvest-section\")!.classList.remove(\"hidden\")\r\n }\r\n}\r\n\r\nfunction toggleStakeUnstakeSection(newPool: HTMLElement) {\r\n let expandPoolButton = newPool.querySelector(\".expand-button\")! as HTMLElement;\r\n let poolContainer = newPool.querySelector(\"#pool-container\")! as HTMLElement\r\n expandPoolButton.classList.remove(\"hidden\")\r\n toggleExpandStakeUnstakeSection(newPool, poolContainer)\r\n toggleExpandStakeUnstakeSection(newPool, expandPoolButton)\r\n}\r\n\r\nfunction setUnstakeTabListeners(newPool: HTMLElement) {\r\n let stakeTabButton = newPool.querySelector(\".staking\")! as HTMLElement;\r\n let unstakeTabButton = newPool.querySelector(\".unstaking\")! as HTMLElement;\r\n let staking = newPool.querySelector(\".main-stake\")! as HTMLElement;\r\n let unstaking = newPool.querySelector(\".main-unstake\")! as HTMLElement;\r\n let stakeButton = newPool.querySelector(\"#stake-button\")! as HTMLElement;\r\n let unstakeButton = newPool.querySelector(\"#unstake-button\")! as HTMLElement;\r\n\r\n unstakeTabButton.addEventListener(\"click\", showElementHideAnother(unstaking, staking));\r\n unstakeTabButton.addEventListener(\"click\", showElementHideAnother(unstakeButton, stakeButton));\r\n unstakeTabButton.addEventListener(\"click\", setActiveColor);\r\n unstakeTabButton.addEventListener(\"click\", cancelActiveColor(stakeTabButton));\r\n}\r\n\r\nfunction displayIfNftPool(newPool: HTMLElement, isAccountRegistered: boolean,hasUserStaked:boolean) {\r\n if(isAccountRegistered) {\r\n // if the pool has ended and user doesn't has any NFT staked don't show the stake/unstake btn\r\n if(newPool.classList.contains(\"inactive-pool\") && !hasUserStaked){\r\n return;\r\n } \r\n let stakeUnstakeNftButton = newPool.querySelector(\"#stake-unstake-nft\")! as HTMLButtonElement;\r\n stakeUnstakeNftButton.classList.remove(\"hidden\")\r\n }\r\n}\r\n\r\nfunction displayIfTokenPool(newPool: HTMLElement, isAccountRegistered: boolean){\r\n\r\n if(isAccountRegistered) {\r\n toggleStakeUnstakeSection(newPool)\r\n \r\n let stakeTabButton = newPool.querySelector(\".staking\")! as HTMLElement;\r\n let unstakeTabButton = newPool.querySelector(\".unstaking\")! as HTMLElement;\r\n let staking = newPool.querySelector(\".main-stake\")! as HTMLElement;\r\n let unstaking = newPool.querySelector(\".main-unstake\")! as HTMLElement;\r\n let stakeButton = newPool.querySelector(\"#stake-button\")! as HTMLElement;\r\n let unstakeButton = newPool.querySelector(\"#unstake-button\")! as HTMLElement;\r\n \r\n setUnstakeTabListeners(newPool)\r\n \r\n stakeTabButton.addEventListener(\"click\", showElementHideAnother(staking, unstaking));\r\n stakeTabButton.addEventListener(\"click\", showElementHideAnother(stakeButton, unstakeButton));\r\n stakeTabButton.addEventListener(\"click\", setActiveColor);\r\n stakeTabButton.addEventListener(\"click\", cancelActiveColor(unstakeTabButton));\r\n }\r\n}\r\n\r\nasync function displayActivePool(poolParams: PoolParams|PoolParamsP3|PoolParamsNFT, newPool: HTMLElement) {\r\n let activateButtonContainer = newPool.querySelector(\"#activate\") as HTMLElement\r\n let activateButton = newPool.querySelector(\".activate\") as HTMLElement\r\n let harvestSection = newPool.querySelector(\".harvest-section\") as HTMLElement\r\n\r\n if(wallet != disconnectedWallet) {\r\n let isAccountRegistered = (await poolParams.stakingContractData.contract.storageBalance()) != null;\r\n\r\n if(!isAccountRegistered) {\r\n activateButtonContainer.classList.remove(\"hidden\")\r\n activateButton.addEventListener(\"click\", activateClicked(poolParams, newPool))\r\n\r\n if (poolParams.html.formId == \"nearcon\" || poolParams.html.formId == \"cheddar\") {\r\n let warningText = \"ONLY ACTIVATE IF PREVIOUSLY STAKED
0.06 NEAR storage deposit, gets refunded.\"\r\n newPool.querySelector(\"#depositWarning\")!.innerHTML = warningText \r\n }\r\n }\r\n \r\n if(poolParams instanceof PoolParams || poolParams instanceof PoolParamsP3){\r\n\r\n displayIfTokenPool(newPool, isAccountRegistered)\r\n\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n const poolUserStatus = await poolParams.stakingContractData.getUserStatus()\r\n // check for user stake \r\n const hasUserStakedNFT = poolUserStatus.stake_tokens.some(total => total.length > 0) && poolUserStatus.stake != \"0\"\r\n displayIfNftPool(newPool, isAccountRegistered,hasUserStakedNFT)\r\n\r\n }\r\n }\r\n\r\n const isUserFarming = newPool.classList.contains(\"your-farms\")\r\n if(isUserFarming) {\r\n activateButtonContainer.classList.add(\"hidden\")\r\n activateButton.setAttribute(\"disabled\", \"disabled\")\r\n harvestSection.classList.remove(\"hidden\")\r\n }\r\n}\r\n\r\nfunction addLogo(metaData: FungibleTokenMetadata, container: HTMLElement, index: number = 0) {\r\n let newTokenLogoElement: HTMLElement\r\n\r\n if (metaData.icon != null && metaData.icon != ''){\r\n // inputLogoContainer.innerHTML= `${metaData.icon}`\r\n if(metaData.icon.startsWith(\"data:image\")) { // icon is img\r\n const tokenLogoElement = qs(\".generic-token-logo-img\")\r\n newTokenLogoElement = tokenLogoElement.cloneNode(true) as HTMLElement\r\n newTokenLogoElement?.setAttribute(\"src\", metaData.icon)\r\n } else if(metaData.icon.startsWith(\") {\r\n qs(\"#pool_list\").innerHTML = \"\"\r\n for (let i = 0; i < poolList.length; i++) {\r\n await addPool(poolList[i]);\r\n }\r\n\r\n qs(\"#pool_list\").style.display = \"grid\"\r\n\r\n if (qs(\"#pool_list\").childElementCount == 0) {\r\n qs(\"#pool_list\").innerHTML = `

New Pools SoonTM...⚙️ Try our games!🕹️

`\r\n }\r\n\r\n // qs(\".loader\").style.display = \"none\"\r\n\r\n isPaused = false;\r\n}\r\n\r\nlet closePublicityButton = qs(\".close-publicity\") as HTMLElement\r\n\r\nfunction closePublicityButtonHandler() {\r\n return function () {\r\n closePublicityButton.classList.add(\"hidden\")\r\n\r\n let publicityContainer = qs(\".publicity-container\") as HTMLElement\r\n publicityContainer.classList.add(\"hidden\")\r\n\r\n let publicityDecoration = qs(\".publicity-decoration\") as HTMLElement\r\n publicityDecoration.classList.add(\"no-publicity-position\")\r\n\r\n let header = qs(\"header\") as HTMLElement\r\n header.classList.add(\"no-publicity-position\")\r\n\r\n let burguer = qs(\"#burguer\") as HTMLElement\r\n burguer.classList.add(\"no-publicity-position\")\r\n }\r\n}\r\n\r\nfunction setCountdown() {\r\n var countDownDate = new Date(\"Aug 22, 2022 12:00:00 UTC\");\r\n var countDownDate = new Date(countDownDate.getTime() - countDownDate.getTimezoneOffset() * 60000)\r\n // Time calculations for days, hours, minutes and seconds\r\n var d = new Date();\r\n var d = new Date(d.getTime() - d.getTimezoneOffset() * 60000)\r\n var distance = countDownDate.getTime() - d.getTime();\r\n\r\n if(distance < 0) {\r\n clearInterval(countDownIntervalId)\r\n document.getElementById(\"timer\")!.innerHTML = \"\";\r\n }\r\n var days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n document.getElementById(\"timer\")!.innerHTML = `

New Pools Start In: ${days} d : ${hours} h : \r\n ${minutes} m : ${seconds} s

`;\r\n}\r\n\r\nwindow.onload = async function () {\r\n try {\r\n let env = ENV //default\r\n\r\n if (env != nearConfig.networkId)\r\n nearConfig = getConfig(ENV);\r\n\r\n near = await nearAPI.connect(\r\n Object.assign(\r\n {\r\n deps: {\r\n keyStore: new nearAPI.keyStores.BrowserLocalStorageKeyStore()\r\n }\r\n },\r\n nearConfig\r\n )\r\n )\r\n\r\n \r\n closePublicityButton.addEventListener(\"click\", closePublicityButtonHandler())\r\n //Path tag is part of the svg tag and also need the event\r\n closePublicityButton.querySelector(\"path\")!.addEventListener(\"click\", closePublicityButtonHandler())\r\n\r\n let headerCheddarValueDisplayerContainer = qs(\".header-extension_cheddar-value\") as HTMLElement\r\n let cheddarValue = Number((await getTokenData(\"cheddar\")).price).toFixed(7)\r\n headerCheddarValueDisplayerContainer.innerHTML = `$ ${cheddarValue}`\r\n\r\n\r\n // initButton()\r\n // countDownIntervalId = window.setInterval(function(){\r\n // setCountdown()\r\n // }, 1000);\r\n \r\n\r\n\r\n //init narwallets listeners\r\n narwallets.setNetwork(nearConfig.networkId); //tell the wallet which network we want to operate on\r\n addNarwalletsListeners(narwalletConnected, narwalletDisconnected) //listen to narwallets events\r\n\r\n //set-up auto-refresh loop (10 min)\r\n setInterval(autoRefresh, 10 * MINUTES)\r\n\r\n //check if signed-in with NEAR Web Wallet\r\n await initNearWebWalletConnection()\r\n let didJustActivate = false\r\n initLiquidButton()\r\n\r\n const cheddarContractName = (ENV == 'mainnet') ? CHEDDAR_CONTRACT_NAME : TESTNET_CHEDDAR_CONTRACT_NAME\r\n const cheddarContract = new NEP141Trait(cheddarContractName);\r\n\r\n let circulatingSupply = await cheddarContract.ft_total_supply()\r\n let allSuplyTextContainersToFill = document.querySelector(\".circulatingSupply.supply\") as HTMLElement\r\n\r\n allSuplyTextContainersToFill.innerHTML = toStringDec(yton(circulatingSupply)).split('.')[0];\r\n\r\n if (nearWebWalletConnection.isSignedIn()) {\r\n //already signed-in with NEAR Web Wallet\r\n //make the contract use NEAR Web Wallet\r\n wallet = new NearWebWallet(nearWebWalletConnection);\r\n \r\n // const poolList = await getPoolList(wallet)\r\n // await addPoolList(poolList)\r\n\r\n accountName = wallet.getAccountId()\r\n qsInnerText(\"#account-id\", accountName) \r\n \r\n await signedInFlow(wallet)\r\n cheddarContract.wallet = wallet;\r\n const cheddarBalance = await cheddarContract.ft_balance_of(accountName)\r\n const amountAvailable = toStringDec(yton(await wallet.getAccountBalance()))\r\n qsInnerText(\"#my-account #wallet-available\", amountAvailable)\r\n qsInnerText(\"#my-account #cheddar-balance\", convertToDecimals(cheddarBalance, 24, 5))\r\n qsInnerText(\"#nft-pools-section .cheddar-balance-container .cheddar-balance\", convertToDecimals(cheddarBalance, 24, 5))\r\n\r\n\r\n //check if we're re-spawning after a wallet-redirect\r\n //show transaction result depending on method called\r\n const searchParamsResultArray = await checkRedirectSearchParamsMultiple(nearWebWalletConnection, nearConfig.explorerUrl || \"explorer\");\r\n let method: string = \"\"\r\n let err\r\n let args = []\r\n searchParamsResultArray.forEach(searchParamsResult => {\r\n const { err: errResult, data, method: methodResult, finalExecutionOutcome } = searchParamsResult\r\n if(errResult) {\r\n err = errResult\r\n return\r\n }\r\n if(methodResult) {\r\n method = methodResult \r\n }\r\n \r\n if (finalExecutionOutcome) {\r\n let arg = JSON.parse(atob(finalExecutionOutcome.transaction.actions[0].FunctionCall.args))\r\n if(arg.token == undefined) {\r\n const stakeContract = finalExecutionOutcome.transaction.receiver_id\r\n for(let i = 0; i < nearConfig.farms.length; i++) {\r\n const farmData = nearConfig.farms[i]\r\n if(farmData.contractName == stakeContract) {\r\n arg.token = farmData.tokenContractName\r\n break\r\n }\r\n }\r\n }\r\n args.push(arg)\r\n }\r\n \r\n });\r\n\r\n if (err) {\r\n showError(err, \"Transaction - \" + method || \"\");\r\n } else if(method == \"ft_transfer_call\") {\r\n // @ts-ignore\r\n await stakeResult(args)\r\n } else if(method == \"unstake\"){\r\n // @ts-ignore\r\n await unstakeResult(args)\r\n } else if(method == \"nft_transfer_call\"){\r\n showSuccess(\"NFT staked successfully\", \"Stake NFT\")\r\n // @ts-ignore\r\n // await nftStakeResult(args)\r\n } else if(method == \"storage_deposit\"){\r\n didJustActivate = true\r\n showSuccess(\"Successfully activated\", \"Activate\")\r\n } else if(method == \"withdraw_crop\") {\r\n window.sessionStorage.setItem(\"cheddarFarmHarvestedSuccesfully\", \"yes\")\r\n showSuccess(\"Tokens harvested successfully\")\r\n } else {\r\n console.log(\"Method\", method)\r\n console.log(\"Args\", args.join(\"\\n\"))\r\n }\r\n \r\n }\r\n else {\r\n //not signed-in \r\n await signedOutFlow() //show home-not-connected -> select wallet page\r\n }\r\n const poolList = await getPoolList(wallet)\r\n await addPoolList(poolList)\r\n setDefaultFilter(didJustActivate)\r\n }\r\n catch (ex) {\r\n showErr(ex as Error)\r\n } finally {\r\n qs(\".loader\").style.display = \"none\"\r\n }\r\n}\r\n\r\nasync function stakeResult(argsArray: [{amount: string, msg: string, receiver_id: string}]) {\r\n let message = \"Staked: \"\r\n let tokensStakedMessage: string[] = []\r\n const poolList = await getPoolList(wallet)\r\n let pool: PoolParams | PoolParamsP3 | undefined\r\n for(let i = 0; i < poolList.length; i++) {\r\n if(argsArray[0].receiver_id == poolList[i].stakingContractData.contract.contractId) {\r\n pool = poolList[i]\r\n break\r\n }\r\n }\r\n if(!pool) {\r\n throw new Error(`No pool found with contract id ${argsArray[0].receiver_id}`)\r\n }\r\n\r\n await Promise.all(argsArray.map(async (args, index) => {\r\n // const args = JSON.parse(atob(finalExecutionOutcome.transaction.actions[0].FunctionCall.args))\r\n let metadata\r\n if(pool instanceof PoolParams) {\r\n metadata = await pool.stakeTokenContract.ft_metadata()\r\n } else if(pool instanceof PoolParamsP3) {\r\n const stakeTokenContractList = await pool.stakingContractData.getStakeTokenContractList()\r\n metadata = await stakeTokenContractList[index].contract!.ft_metadata()\r\n }\r\n if(!metadata) {\r\n // This if should never be true\r\n throw new Error(\"Error obtaining metadata on stake result\")\r\n }\r\n const amount = convertToDecimals(args.amount, metadata.decimals, 5)\r\n tokensStakedMessage.push(\r\n `${amount} ${metadata.symbol}`\r\n )\r\n }))\r\n message += tokensStakedMessage.join(\" - \")\r\n showSuccess(message, \"Stake\")\r\n}\r\n\r\ninterface NFTUnstakeResult {\r\n nft_contract_id: string\r\n token: string\r\n token_id: string\r\n}\r\n\r\nasync function unstakeResult(argsArray: [{amount: string, token: string}] | NFTUnstakeResult[]) {\r\n let message = \"Unstaked: \"\r\n if(\"nft_contract_id\" in argsArray[0]) {\r\n message += `deposited cheddar and ${argsArray.length} NFTs have been refunded`\r\n } else if(\"token\" in argsArray[0]){\r\n let tokensUnstakedMessage: string[] = []\r\n \r\n for(let i = 0; i < argsArray.length; i++) {\r\n const args = argsArray[i]\r\n let contract = new NEP141Trait(args.token)\r\n contract.wallet = wallet\r\n\r\n const metaData = await contract.ft_metadata()\r\n // @ts-ignore\r\n const amount = convertToDecimals(args.amount, metaData.decimals, 5)\r\n tokensUnstakedMessage.push(\r\n `${amount} ${metaData.symbol}`\r\n )\r\n }\r\n message += tokensUnstakedMessage.join(\" - \")\r\n }\r\n showSuccess(message, \"Unstake\")\r\n}\r\n\r\n// NEW CODE\r\nfunction toggleActions(elementToShow: HTMLElement) {\r\n return function (event: Event) {\r\n let element = event.target as HTMLElement\r\n\r\n element.tagName.toLowerCase() != \"a\" && event.preventDefault();\r\n \r\n const tagName = element.tagName.toLowerCase()\r\n const tagsToIgnore = [\"button\", \"input\", \"span\", \"img\", \"svg\", \"path\", \"a\"]\r\n\r\n if (!tagsToIgnore.includes(tagName) || element.classList.contains(\"toggle-display\")) {\r\n elementToShow.classList.toggle(\"hidden\")\r\n } \r\n }\r\n}\r\n\r\nfunction flipElement(elementToFlip: HTMLElement) {\r\n return function (event: Event){\r\n let element = event.target as HTMLElement\r\n\r\n element.tagName.toLowerCase() != \"a\" && event.preventDefault();\r\n \r\n const tagName = element.tagName.toLowerCase()\r\n const tagsToIgnore = [\"button\", \"input\", \"span\", \"img\", \"svg\", \"path\", \"polygon\", \"a\"]\r\n\r\n if (!tagsToIgnore.includes(tagName) || element.classList.contains(\"toggle-display\")) {\r\n elementToFlip.classList.toggle(\"flipped\")\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction toggleElement(elementToShow: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToShow.classList.toggle(\"hidden\");\r\n }\r\n}\r\n\r\nfunction paintOrUnPaintElement(previousColoringClass: string, elementToPaint: HTMLElement){\r\n return function (event: Event){\r\n event.preventDefault()\r\n elementToPaint.classList.toggle(\"transparent\")\r\n elementToPaint.classList.toggle(previousColoringClass)\r\n }\r\n}\r\n\r\nfunction makeBlinkElement(elementToMakeBlink: HTMLElement){\r\n return function (event: Event){\r\n event.preventDefault()\r\n elementToMakeBlink.classList.toggle(\"blink\")\r\n }\r\n}\r\n\r\nfunction showElement(elementToShow: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToShow.classList.remove(\"hidden\");\r\n }\r\n}\r\n\r\nfunction hideElement(elementToHide: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToHide.classList.add(\"hidden\");\r\n }\r\n}\r\n\r\nfunction showElementHideAnother(elementToShow: HTMLElement, elementToHide: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToShow.classList.remove(\"hidden\");\r\n elementToHide.classList.add(\"hidden\");\r\n }\r\n}\r\n\r\nfunction setActiveColor(event: Event) {\r\n let element = event.target as HTMLElement\r\n element.classList.add(\"active\");\r\n}\r\n\r\nfunction cancelActiveColor(elementToDisplayAsNotActive: HTMLElement) {\r\n return function (event: Event) {\r\n event.preventDefault();\r\n elementToDisplayAsNotActive.classList.remove(\"active\");\r\n }\r\n}\r\n\r\nasync function loadAndShowNfts(poolParams: PoolParamsP3|PoolParamsNFT, buttonId: string) {\r\n await loadNFTs(poolParams, buttonId)\r\n qs(\"#nft-pools-section\").classList.remove(\"hidden\")\r\n\r\n if(poolParams instanceof PoolParamsNFT) {\r\n let confirmStakeUnstakeNFTButton = NFTPoolSection.querySelector(\"#confirm-stake-unstake\")\r\n let cancelStakeUnstakeNFTButton = NFTPoolSection.querySelector(\"#cancel-stake-unstake\")\r\n\r\n confirmStakeUnstakeNFTButton!.addEventListener(\"click\", confirmStakeUnstakeNFTButtonHandler(poolParams))\r\n cancelStakeUnstakeNFTButton!.addEventListener(\"click\", quitNFTFlex())\r\n }\r\n\r\n \r\n}\r\n\r\n\r\nfunction displayCheddarNeededToStakeNFTs(stakeRate: number) {\r\n const nftPoolSection = qs(\"#nft-pools-section\") as HTMLElement\r\n\r\n let countSelectedToStakeNfts = (nftPoolSection.querySelectorAll(\".nft-card.selected.unstaked\")).length as number\r\n\r\n const amountNeededToStakeAllNfts = nftPoolSection.querySelector(\".cheddar-needed-to-stake-all-nfts\") as HTMLElement\r\n amountNeededToStakeAllNfts.innerHTML = (countSelectedToStakeNfts * stakeRate).toString()\r\n}\r\n\r\nfunction selectAllActionNftButtons(action: string, stakeRate: number){\r\n return function(event: Event) {\r\n event.preventDefault()\r\n\r\n const nftPoolsSection = qs(\"#nft-pools-section\")\r\n const allSelectedPreviously = nftPoolsSection.querySelectorAll(\".selected\")\r\n\r\n allSelectedPreviously.forEach(element => {\r\n element.classList.remove(\"selected\")\r\n });\r\n\r\n const clickedElement = event.target! as HTMLElement\r\n clickedElement.classList.add(\"selected\")\r\n\r\n let allNFTCardsByAction: NodeListOf\r\n\r\n if(action == \"stake\"){\r\n\r\n allNFTCardsByAction = nftPoolsSection.querySelectorAll(\".nft-card.unstaked\")\r\n\r\n } else {\r\n\r\n allNFTCardsByAction = nftPoolsSection.querySelectorAll(\".nft-card.staked\")\r\n }\r\n\r\n allNFTCardsByAction.forEach(card => {\r\n card.classList.add(\"selected\") \r\n })\r\n\r\n displayCheddarNeededToStakeNFTs(stakeRate)\r\n }\r\n}\r\n\r\nasync function showStakeUnstakeNFTGrid(poolParams: PoolParamsNFT, buttonId: string) {\r\n const contractParams: NFTStakingContractParams = await poolParams.stakingContractData.getContractParams()\r\n // const stakeRateStr: string = contractParams.stake_rates[0] \r\n const stakeRate: number = yton(contractParams.cheddar_rate)\r\n\r\n qs(\".needed-to-stake-each-nft .amount\")!.innerHTML = stakeRate.toString()\r\n\r\n const multipleNftSelectionButtons = qs(\".multiple-nft-selection\") as HTMLElement\r\n multipleNftSelectionButtons.classList.remove(\"hidden\")\r\n\r\n const confirmButton = qs(\"#confirm-stake-unstake\") as HTMLButtonElement\r\n confirmButton.classList.remove(\"hidden\")\r\n\r\n const cancelButton = qs(\"#cancel-stake-unstake\") as HTMLButtonElement\r\n cancelButton.classList.remove(\"hidden\")\r\n\r\n const unstakeAllNftsButton = qs(\".unstake-all-nft-button\") as HTMLButtonElement\r\n unstakeAllNftsButton.addEventListener(\"click\", selectAllActionNftButtons(\"unstake\", stakeRate))\r\n\r\n const stakeAllNftsButton = qs(\".stake-all-nft-button\") as HTMLButtonElement\r\n stakeAllNftsButton.addEventListener(\"click\", selectAllActionNftButtons(\"stake\", stakeRate))\r\n\r\n displayCheddarNeededToStakeNFTs(stakeRate)\r\n\r\n await loadAndShowNfts(poolParams, buttonId)\r\n}\r\n\r\nfunction showNFTGrid(poolParams: PoolParamsP3|PoolParamsNFT, buttonId: string) {\r\n return async function () {\r\n loadAndShowNfts(poolParams,buttonId)\r\n }\r\n}\r\n\r\nasync function loadNFTs(poolParams: PoolParamsP3|PoolParamsNFT, buttonId: string) {\r\n const NFTContainer = qs(\".nft-flex\") as HTMLElement\r\n NFTContainer.innerHTML = \"\"\r\n \r\n const accountId = poolParams.wallet.getAccountId()\r\n let nftContract: NFTContract\r\n let stakedOrBoostingNFTsToAdd: NFTWithMetadata[] = []\r\n //Use conditional to check if the pressed button was boost or stake/unstake so the correct nft are loaded\r\n let userUnstakedNFTsWithMetadata: NFTWithMetadata[] = []\r\n let userStatus: PoolUserStatusP3|PoolUserStatusP3NFT = await poolParams.stakingContractData.getUserStatus()\r\n let poolHasStaked: boolean = false\r\n if(buttonId === \"boost-button\"){\r\n nftContract = poolParams.nftContractForBoosting\r\n const userUnstakedNFTs: NFT[] = await nftContract.nft_tokens_for_owner(accountId)\r\n const mapped: NFTWithMetadata[] = userUnstakedNFTs.map((nft: NFT) => {\r\n return {\r\n ...nft,\r\n contract_id: nftContract.contractId,\r\n base_url: nftContract.baseUrl\r\n }\r\n })\r\n console.log(1, mapped.length)\r\n userUnstakedNFTsWithMetadata = userUnstakedNFTsWithMetadata.concat(mapped)\r\n let tokenId: string\r\n if(\"boost_nfts\" in userStatus) {\r\n poolHasStaked = userStatus.boost_nfts != ''\r\n tokenId = userStatus.boost_nfts\r\n } else {\r\n poolHasStaked = userStatus.cheddy_nft != ''\r\n tokenId = userStatus.cheddy_nft\r\n }\r\n // poolHasStaked = userStatus.cheddy_nft != '' || userStatus.boost_nfts != ''\r\n if(poolHasStaked) stakedOrBoostingNFTsToAdd.push(newNFT(tokenId, nftContract.baseUrl, nftContract.contractId))\r\n \r\n } else if (buttonId === \"stake-unstake-nft\" && poolParams instanceof PoolParamsNFT) {\r\n const nftContractList = await poolParams.stakingContractData.getStakeNFTContractList()\r\n for(let i = 0; i < nftContractList.length; i++) {\r\n const contract = nftContractList[i].contract\r\n const nftMetadata: Promise = contract.nft_metadata()\r\n const userUnstakedNFTs: NFT[] = await contract.nft_tokens_for_owner(accountId)\r\n let baseUrl = (await nftMetadata).base_uri\r\n if(!baseUrl) baseUrl = contract.baseUrl\r\n userUnstakedNFTsWithMetadata = userUnstakedNFTsWithMetadata.concat(userUnstakedNFTs.map((nft: NFT) => {\r\n return {\r\n ...nft,\r\n contract_id: contract.contractId,\r\n base_url: baseUrl\r\n }\r\n }))\r\n \r\n }\r\n poolHasStaked = userStatus.stake_tokens.some(a => a.length > 0)\r\n for(let index = 0; index < userStatus.stake_tokens.length; index++) {\r\n const contract: NFTContract = nftContractList[index].contract\r\n let contractTokens = userStatus.stake_tokens[index]\r\n\r\n let thisUserStakedNFTsPromises: Promise[] = []\r\n for(let tokenId of contractTokens) {\r\n thisUserStakedNFTsPromises.push(contract.nft_token(tokenId))\r\n }\r\n const thisUserStakedNFTs: NFT[] = await Promise.all(thisUserStakedNFTsPromises)\r\n thisUserStakedNFTs.forEach(nft => {\r\n stakedOrBoostingNFTsToAdd.push({\r\n ...nft,\r\n contract_id: contract.contractId,\r\n base_url: contract.baseUrl\r\n })\r\n })\r\n\r\n }\r\n } else {\r\n throw new Error(`Object ${typeof poolParams} is not implemented for loading NFT's`)\r\n }\r\n \r\n if(userUnstakedNFTsWithMetadata.length == 0 && !poolHasStaked) {\r\n let tokenName = \"\"\r\n if(poolParams instanceof PoolParamsP3) {\r\n tokenName = \"cheddar\"\r\n } else {\r\n const nftContractList = await poolParams.stakingContractData.getStakeNFTContractList()\r\n // It will be assumed there is only one NFT for staking\r\n const nftContractMetadata = await nftContractList[0].getMetadata()\r\n tokenName = nftContractMetadata.name.toLowerCase()\r\n } \r\n NFTContainer.innerHTML = `You don't have any ${tokenName} NFT`\r\n return\r\n }\r\n if(stakedOrBoostingNFTsToAdd.length > 0) {\r\n stakedOrBoostingNFTsToAdd.forEach((nft: NFTWithMetadata) => {\r\n addNFT(poolParams, NFTContainer, nft, poolHasStaked, \"\", buttonId, \"\", true)\r\n })\r\n \r\n }\r\n userUnstakedNFTsWithMetadata.forEach(nft => {\r\n console.log(4, nft)\r\n addNFT(poolParams, NFTContainer, nft, poolHasStaked, \"\", buttonId, \"\", false)\r\n });\r\n}\r\n\r\n\r\nfunction checkIfMultipleSelectionButtonsMustBeSelected() {\r\n const nftPoolsSection = document.querySelector(\"#nft-pools-section\") as HTMLElement\r\n\r\n let unstakedAmount = nftPoolsSection.querySelectorAll(\".unstaked\").length\r\n let stakedAmount = nftPoolsSection.querySelectorAll(\".staked\").length\r\n\r\n let unstakedSelectedAmount = nftPoolsSection.querySelectorAll(\".unstaked.selected\").length\r\n let stakedSelectedAmount = nftPoolsSection.querySelectorAll(\".staked.selected\").length\r\n \r\n let stakeAllButton = qs(\".stake-all-nft-button\") as HTMLElement\r\n \r\n if(unstakedAmount == unstakedSelectedAmount && unstakedAmount != 0) {\r\n stakeAllButton.classList.add(\"selected\")\r\n } else {\r\n stakeAllButton.classList.remove(\"selected\")\r\n }\r\n\r\n let unstakeAllButton = qs(\".unstake-all-nft-button\") as HTMLElement\r\n\r\n if(stakedAmount == stakedSelectedAmount && stakedAmount != 0) {\r\n unstakeAllButton.classList.add(\"selected\")\r\n } else {\r\n unstakeAllButton.classList.remove(\"selected\")\r\n }\r\n}\r\n\r\nfunction stakeAndUstakeNFTButtonHandler (newNFTCard: HTMLElement, stakeRate: number) {\r\n return function () { \r\n newNFTCard.classList.toggle(\"selected\")\r\n\r\n checkIfMultipleSelectionButtonsMustBeSelected()\r\n\r\n displayCheddarNeededToStakeNFTs(stakeRate)\r\n }\r\n}\r\n\r\nfunction confirmStakeUnstakeNFTButtonHandler(poolParams: PoolParamsNFT) {\r\n return async function (event: Event) {\r\n event.preventDefault()\r\n let isAnyNFTSelected = qsa(\".nft-flex .selected\").length > 0\r\n if(!isAnyNFTSelected) {\r\n showError(\"Select NFT's to stake or unstake\")\r\n return\r\n }\r\n try {\r\n\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n //If used don´t have enough cheddar to stake all the selected NFTs show error msg and return\r\n let cheddarBalanceContainer = document.querySelector(\".cheddar-balance\") as HTMLElement\r\n let cheddarBalance = parseInt(cheddarBalanceContainer.innerHTML) as number\r\n\r\n let cheddarNeededToStakeNFTsContainer = document.querySelector(\".cheddar-needed-to-stake-all-nfts\") as HTMLElement\r\n let cheddarNeededToStakeNFTs = parseInt(cheddarNeededToStakeNFTsContainer.innerHTML) as number\r\n\r\n if(cheddarBalance < cheddarNeededToStakeNFTs) {\r\n showError(\"Not enough cheddar to stake selected NFTs\")\r\n }\r\n\r\n const stakeUnstakeNFTsMap = await getNFTsToStakeAndUnstake(poolParams)\r\n const haveNftsToStake = Array.from(stakeUnstakeNFTsMap.values()).some((entry: NFTStakeUnstakeData) => entry.nftsToStake.length > 0)\r\n \r\n let unixTimestamp = new Date().getTime() / 1000; \r\n const isDateInRange = unixTimestamp < contractParams.farming_end\r\n if (!isDateInRange && haveNftsToStake) throw Error(\"Pools is Closed.\")\r\n\r\n poolParams.stakeUnstakeNFTs(stakeUnstakeNFTsMap)\r\n \r\n } catch(err) {\r\n showErr(err as Error)\r\n }\r\n \r\n }\r\n}\r\n\r\nexport interface NFTStakeUnstakeData {\r\n nftsToStake: string[]\r\n nftsToUnstake: string[]\r\n}\r\n\r\nasync function getNFTsToStakeAndUnstake(poolParams: PoolParamsNFT): Promise> {\r\n // let nftsToStake = [] as string[]\r\n // let nftsToUnstake = [] as string[]\r\n const stakeNFTContractList: NFTContractData[] = await poolParams.stakingContractData.getStakeNFTContractList()\r\n let output: Map = new Map()\r\n stakeNFTContractList.forEach((nftContractData: NFTContractData) => {\r\n const contractId: string = nftContractData.contract.contractId\r\n output.set(contractId, {\r\n nftsToStake: [],\r\n nftsToUnstake: []\r\n }\r\n )\r\n })\r\n\r\n let allSelectedNfts = NFTPoolSection.querySelectorAll(\".nft-card.selected\")\r\n allSelectedNfts.forEach(nft => {\r\n let nftNameContainer = nft.querySelector(\".nft-name\") as HTMLElement\r\n let nftName = nftNameContainer!.innerHTML\r\n\r\n let thisNFTStakeButton = nft.querySelector(\".stake-nft-button\")\r\n let contractId: string = nft.getAttribute(\"contract_id\")!\r\n let contractStakeUnstakeData: NFTStakeUnstakeData = output.get(contractId)!\r\n\r\n // TODO: For some reason, this function is being called multiple times on confirm, and on some run this object is undefined\r\n // The next line is set to avoid an error message, but it should be reviewed why this is happening.\r\n // There is also some react involved for some reason. It is uncertained wheter it is called from NEAR, since this project\r\n // doesn't have any react code involved, and it doesn't seem to be malicious\r\n if(!contractStakeUnstakeData) return\r\n //If the stake button is hidden the pool needs to be unstaked\r\n //If not it needs to be staked\r\n if(thisNFTStakeButton?.classList.contains(\"hidden\")) {\r\n contractStakeUnstakeData.nftsToUnstake.push(nftName)\r\n } else {\r\n contractStakeUnstakeData.nftsToStake.push(nftName)\r\n }\r\n });\r\n return output\r\n}\r\n\r\nfunction displayNFTPoolSectionForStakeUnstakeNFT(newNFTCard: HTMLElement, stakeButton: HTMLElement, unstakeButton: HTMLElement, stakeRate: number) {\r\n\r\n const NFTStakeTitle = NFTPoolSection.querySelector(\".stake-nfts-title\") as HTMLElement\r\n const cheddarBalanceContainer = NFTPoolSection.querySelector(\".cheddar-balance-container\") as HTMLElement\r\n\r\n NFTStakeTitle.classList.remove(\"hidden\")\r\n cheddarBalanceContainer.classList.remove(\"hidden\")\r\n\r\n stakeButton.addEventListener(\"click\", stakeAndUstakeNFTButtonHandler(newNFTCard, stakeRate))\r\n unstakeButton.addEventListener(\"click\", stakeAndUstakeNFTButtonHandler(newNFTCard, stakeRate))\r\n}\r\n\r\nfunction displayNFTPoolSectionForNFTBoost(poolParams: PoolParamsP3|PoolParamsNFT, poolHasStaked: boolean, staked:boolean, newNFTCard: HTMLElement,i: number, stakeButton: HTMLElement, unstakeButton: HTMLElement) {\r\n\r\n const NFTPoolSectionInfoRow = NFTPoolSection.querySelector(\".nft-farm-info\") as HTMLElement\r\n\r\n //Only if user have more than 1 NFT the legend \"You can only boost one NFT is shown\"\r\n if (i > 1) {\r\n NFTPoolSectionInfoRow.classList.remove(\"hidden\")\r\n }\r\n\r\n stakeButton?.addEventListener(\"click\", stakeNFT(poolParams, newNFTCard))\r\n if(staked){\r\n unstakeButton!.addEventListener(\"click\", unstakeNFT(poolParams, newNFTCard))\r\n }\r\n\r\n if(poolHasStaked) {\r\n stakeButton!.setAttribute(\"disabled\", \"disabled\")\r\n } else {\r\n stakeButton!.removeAttribute(\"disabled\")\r\n }\r\n}\r\n\r\nasync function addNFT(poolParams: PoolParamsP3|PoolParamsNFT, container: HTMLElement, nft: NFTWithMetadata, poolHasStaked: boolean, nftBaseUrl: string, buttonId: string, contractId: string, staked: boolean = false) {\r\n const genericNFTCard = qs(\".generic-nft-card\")\r\n const newNFTCard = genericNFTCard.cloneNode(true) as HTMLElement\r\n \r\n newNFTCard.setAttribute(\"contract_id\", nft.contract_id)\r\n\r\n let i = 0\r\n const nftName: string = nft.token_id.indexOf(\"@\") != -1 ? nft.token_id.split(\"@\")[1] : nft.token_id\r\n for (; i < newNFTCard.querySelectorAll(\".nft-name\").length; i++){\r\n newNFTCard.querySelectorAll(\".nft-name\")[i].innerHTML = nftName\r\n }\r\n\r\n const NFTPoolSectionInfoRow = NFTPoolSection.querySelector(\".nft-farm-info\") as HTMLElement\r\n\r\n NFTPoolSectionInfoRow.classList.add(\"hidden\")\r\n\r\n let imgElement = newNFTCard.querySelector(\".nft-img-container img\")\r\n // imgElement?.setAttribute(\"src\", new URL(nft.metadata.media, nftBaseUrl).href)\r\n \r\n const nftMedia: string = nft.metadata.media.indexOf(\"@\") != -1 ? nft.metadata.media.split(\"@\")[1] : nft.metadata.media\r\n let src\r\n console.log(3, nftMedia, nft.base_url)\r\n if(nftMedia.startsWith(\"https://\")) {\r\n src = nftMedia\r\n } else {\r\n src = nft.base_url + \"/\" + nftMedia\r\n }\r\n imgElement?.setAttribute(\"src\", src)\r\n imgElement!.setAttribute(\"alt\", nft.metadata.media)\r\n\r\n \r\n let stakeButton = newNFTCard.querySelector(\".stake-nft-button\") as HTMLElement\r\n let unstakeButton = newNFTCard.querySelector(\".unstake-nft-button\") as HTMLElement\r\n if(staked) {\r\n unstakeButton!.classList.remove(\"hidden\") \r\n stakeButton!.classList.add(\"hidden\")\r\n\r\n if(buttonId == \"stake-unstake-nft\"){\r\n newNFTCard.classList.add(\"staked\") \r\n newNFTCard.classList.remove(\"unstaked\")\r\n }\r\n \r\n } else {\r\n unstakeButton!.classList.add(\"hidden\") \r\n stakeButton!.classList.remove(\"hidden\")\r\n\r\n if(buttonId == \"stake-unstake-nft\"){\r\n newNFTCard.classList.add(\"unstaked\")\r\n newNFTCard.classList.remove(\"staked\")\r\n }\r\n }\r\n \r\n \r\n if(buttonId === \"boost-button\") {\r\n displayNFTPoolSectionForNFTBoost(poolParams, poolHasStaked, staked, newNFTCard, i, stakeButton, unstakeButton)\r\n } else if(buttonId === \"stake-unstake-nft\" && poolParams instanceof PoolParamsNFT){\r\n const contractParams = await poolParams.stakingContractData.getContractParams()\r\n const stakeRate = yton(contractParams.cheddar_rate)\r\n displayNFTPoolSectionForStakeUnstakeNFT(newNFTCard, stakeButton, unstakeButton, stakeRate)\r\n }\r\n\r\n container.append(newNFTCard) \r\n toggleGenericClass(newNFTCard)\r\n}\r\n\r\nfunction stakeNFT(poolParams: PoolParamsP3|PoolParamsNFT, card: HTMLElement){\r\n return async function(event: Event) {\r\n try {\r\n event.preventDefault()\r\n showWait(\"Staking NFT...\")\r\n \r\n const tokenId = card.querySelector(\".nft-name\")!.innerHTML\r\n await poolParams.nftContractForBoosting.nft_transfer_call(poolParams.stakingContractData.contract.contractId, tokenId)\r\n showSuccess(\"NFT staked successfully\")\r\n \r\n let allNFTCards = qsa(\".nft-card\")\r\n allNFTCards.forEach(NFTCard => {\r\n NFTCard.querySelector(\".stake-nft-button\")!.setAttribute(\"disabled\", \"disabled\")\r\n });\r\n\r\n card.querySelector(\".stake-nft-button\")!.classList.add(\"hidden\")\r\n\r\n let unstakeButton = card.querySelector(\".unstake-nft-button\")!\r\n unstakeButton.removeAttribute(\"disabled\")\r\n unstakeButton.addEventListener(\"click\", unstakeNFT(poolParams, card))\r\n } catch(err) {\r\n showErr(err as Error)\r\n }\r\n }\r\n}\r\n\r\nfunction unstakeNFT(poolParams: PoolParamsP3|PoolParamsNFT, card: HTMLElement) {\r\n return async function (event: Event) {\r\n try {\r\n event.preventDefault()\r\n showWait(\"Unstaking NFT...\")\r\n\r\n if(poolParams instanceof PoolParamsP3) {\r\n await poolParams.stakingContractData.contract.withdraw_nft(poolParams.wallet.getAccountId())\r\n } else if(poolParams instanceof PoolParamsNFT) {\r\n await poolParams.withdrawBoost()\r\n }\r\n showSuccess(\"NFT unstaked successfully\")\r\n card.querySelector(\".unstake-nft-button\")!.classList.add(\"hidden\")\r\n\r\n qsa(\".stake-nft-button\").forEach(elem => {\r\n elem.removeAttribute(\"disabled\")\r\n elem.classList.remove(\"hidden\")\r\n })\r\n // let stakeButton = card.querySelector(\".stake-nft-button\")!\r\n // stakeButton.removeAttribute(\"disabled\")\r\n // stakeButton.addEventListener(\"click\", stakeNFT(poolParams, card))\r\n } catch(err) {\r\n showErr(err as Error)\r\n }\r\n \r\n\r\n }\r\n}\r\n\r\nfunction hideNFTFlexComponents() {\r\n const hideNFTFlexComponents = NFTPoolSection.querySelectorAll(\".hiddenByDefault\") as NodeListOf\r\n\r\n for(let i = 0; i < hideNFTFlexComponents.length; i++){\r\n hideNFTFlexComponents[i].classList.add(\"hidden\")\r\n }\r\n}\r\n\r\nfunction showNFTFlexComponents() {\r\n const showNFTFlexComponents = NFTPoolSection.querySelectorAll(\".shownUnselectedByDefault\") as NodeListOf\r\n \r\n for(let i = 0; i < showNFTFlexComponents.length; i++){\r\n showNFTFlexComponents[i].classList.remove(\"selected\")\r\n }\r\n}\r\n\r\nfunction quitNFTFlex() { \r\n return function (event: Event){\r\n event.preventDefault();\r\n \r\n let element = event.target as HTMLElement\r\n \r\n if (element.getAttribute(\"id\") == \"nft-pools-section\" || element.getAttribute(\"id\") == \"cancel-stake-unstake\") {\r\n qs(\".nft-flex\").innerHTML = \"\"\r\n qs(\"#nft-pools-section\").classList.add(\"hidden\")\r\n\r\n hideNFTFlexComponents()\r\n showNFTFlexComponents()\r\n }\r\n }\r\n}\r\n\r\nconst NFTPoolSection = qs(\"#nft-pools-section\") as HTMLElement \r\nNFTPoolSection.addEventListener(\"click\", quitNFTFlex())\r\n\r\n//Burger button\r\nconst burgerTogglers = qsa(\".toggleBurguer\") as NodeListOf\r\nburgerTogglers.forEach(toggler => {\r\n toggler.addEventListener('click', () => {\r\n toggleBurgerNav();\r\n });\r\n});\r\n\r\nconst toggleBurgerNav = () => {\r\n const burgerButton = qs(\".burger-button\") as HTMLElement\r\n const rightNav = qs('.burguer-content') as HTMLElement\r\n\r\n rightNav.classList.toggle('show-right__nav')\r\n burgerButton.classList.toggle('burger-button--toggle')\r\n};\r\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\n\nexport default function _objectSpreadProps(target, source) {\n source = source != null ? source : {}\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(\n target,\n key,\n Object.getOwnPropertyDescriptor(source, key)\n );\n });\n }\n\n return target;\n}","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keyStores = __importStar(require(\"./key_stores/browser-index\"));\n__exportStar(require(\"./common-index\"), exports);\n__exportStar(require(\"./browser-connect\"), exports);\nrequire(\"error-polyfill\");\n","module.exports = require(\"./lib\");","export const CHEDDAR_CONTRACT_NAME = 'token.cheddar.near'\r\nexport const CHEDDAR_NFT_CONTRACT_NAME = 'nft.cheddar.near'\r\nexport const TESTNET_CHEDDAR_CONTRACT_NAME = 'token-v3.cheddar.testnet'\r\nexport const TESTNET_CHEDDAR_NFT_CONTRACT_NAME = 'nft.cheddar.testnet'\r\nexport const NO_CONTRACT_DEPOSIT_NEAR = \"no-contract-deposit-near\"\r\n\r\nconst MAINNET_NETWORKID = 'mainnet'\r\nconst MAINNET_NODEURL = 'https://rpc.mainnet.near.org'\r\nconst MAINNET_WALLETURL = 'https://wallet.near.org'\r\nconst MAINNET_HELPERURL = 'https://helper.mainnet.near.org'\r\nconst MAINNET_EXPLORERURL = 'https://explorer.mainnet.near.org'\r\n\r\nconst TESTNET_NETWORKID = 'testnet'\r\nconst TESTNET_NODEURL = 'https://rpc.testnet.near.org'\r\nconst TESTNET_WALLETURL = 'https://wallet.testnet.near.org'\r\nconst TESTNET_HELPERURL = 'https://helper.testnet.near.org'\r\nconst TESTNET_EXPLORERURL = 'https://explorer.testnet.near.org'\r\n\r\nexport const ENV = MAINNET_NETWORKID\r\n\r\nexport type FarmData = {\r\n index?: number;\r\n poolType: string;\r\n poolName:string;\r\n contractName:string;\r\n tokenContractName:string;\r\n nftBaseUrl?: string[];\r\n description?: string[];\r\n descriptionLink?: string[];\r\n config?: {[key: string]: any};\r\n}\r\n\r\ntype GetConfigResults = {\r\n nftContractAddress: string\r\n cheddarNFTBaseUrl: string\r\n networkId:string;\r\n nodeUrl:string;\r\n keyPath?:string;\r\n cheddarContractName:string;\r\n cheddarNFTContractName: string\r\n walletUrl:string;\r\n helperUrl?:string;\r\n explorerUrl?:string;\r\n masterAccount?:string;\r\n farms: Array;\r\n \r\n}\r\n\r\nexport function getConfig(env:string):GetConfigResults {\r\n switch (env) {\r\n\r\n case 'production':\r\n case 'mainnet':\r\n return {\r\n nftContractAddress: \"nft.cheddar.near\",\r\n cheddarNFTBaseUrl: \"https://bafybeicoln5rvccttgypzo26irjlskslnfynkzig6bowpsj6ay45geeice.ipfs.nftstorage.link/\",\r\n networkId: MAINNET_NETWORKID,\r\n nodeUrl: MAINNET_NODEURL,\r\n cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n cheddarNFTContractName: CHEDDAR_NFT_CONTRACT_NAME,\r\n walletUrl: MAINNET_WALLETURL,\r\n helperUrl: MAINNET_HELPERURL,\r\n explorerUrl: MAINNET_EXPLORERURL,\r\n keyPath: undefined,\r\n masterAccount:undefined,\r\n \"farms\": [\r\n {\r\n index: 0,\r\n poolType: 'single',\r\n poolName : 'pulse',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-pulse.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: '52a047ee205701895ee06a375492490ec9c597ce.factory.bridge.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 1,\r\n poolType: 'single',\r\n poolName : 'nUSDO',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-nusd.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: 'v3.oin_finance.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 2,\r\n poolType: 'single',\r\n poolName : 'ref',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-ref.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: 'token.v2.ref-finance.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 3 ,\r\n poolType: 'single',\r\n poolName : 'stNEAR',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-meta.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: 'meta-pool.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 4,\r\n poolType: 'single',\r\n poolName : 'banana',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-bananas.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: 'berryclub.ek.near',\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 5,\r\n poolType: 'single',\r\n poolName : 'Near',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p1-farm.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: NO_CONTRACT_DEPOSIT_NEAR,\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined\r\n },\r\n {\r\n index: 6,\r\n poolType: 'single',\r\n poolName : 'cheddar',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'p2-cheddar.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined,\r\n },\r\n {\r\n index: 7,\r\n poolType: 'single',\r\n poolName : 'Nearcon',\r\n // networkId: MAINNET_NETWORKID,\r\n // nodeUrl: MAINNET_NODEURL,\r\n contractName: 'farm-nearcon.cheddar.near',\r\n // cheddarContractName: CHEDDAR_CONTRACT_NAME,\r\n tokenContractName: NO_CONTRACT_DEPOSIT_NEAR,\r\n // walletUrl: MAINNET_WALLETURL,\r\n // helperUrl: MAINNET_HELPERURL,\r\n // explorerUrl: MAINNET_EXPLORERURL,\r\n // keyPath: undefined,\r\n // masterAccount:undefined,\r\n },\r\n {\r\n index: 8,\r\n poolType: 'multiple',\r\n poolName : 'cheddar-ref-burrow',\r\n contractName: 'p3-ref-bbr.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n {\r\n index: 9,\r\n poolType: 'multiple',\r\n poolName : 'cheddar-meta',\r\n contractName: 'p3-meta.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n {\r\n index: 10,\r\n poolType: 'multiple',\r\n poolName : 'cheddar-neko',\r\n contractName: 'p3-neko1.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n {\r\n index: 11,\r\n poolType: 'multiple',\r\n poolName : 'cheddar-neko',\r\n contractName: 'p3-meta1.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n {\r\n index: 12,\r\n poolType: 'single',\r\n poolName: '_Cheddar B-Day! 🎉',\r\n contractName: 'p2-birthday1.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 13,\r\n poolType: 'multiple',\r\n poolName: 'REF+Cheddar',\r\n contractName: 'p3-ref.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 14,\r\n poolType: 'multiple',\r\n poolName: 'MarmaJ+Cheddar',\r\n contractName: 'p3-marmaj.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 15,\r\n poolType: 'nft',\r\n poolName: 'Holistic',\r\n nftBaseUrl: ['https://cloudflare-ipfs.com/ipfs/bafybeicx2okilwtljyac2b5prutqodxkouyvfgysuav6pspoznn2n2qs2i'],\r\n contractName: 'p4-holistic.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 15,\r\n poolType: 'nft',\r\n poolName: 'Near Nauts',\r\n nftBaseUrl: ['https://nearnaut.mypinata.cloud/ipfs'],\r\n contractName: 'p4-nearnauts.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME\r\n },\r\n {\r\n index: 16,\r\n poolType: 'nft',\r\n poolName: 'Near Nauts Mutants',\r\n nftBaseUrl: ['https://nearnaut.mypinata.cloud/ipfs'],\r\n contractName: 'p4-nautmutants.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n config: { logo: \"https://media.discordapp.net/attachments/955124480043262012/1045098073929551952/IMG_2695.jpg\" }\r\n },\r\n {\r\n index: 17,\r\n poolType: 'nft',\r\n poolName: 'Cheddy',\r\n nftBaseUrl: ['https://bafybeicoln5rvccttgypzo26irjlskslnfynkzig6bowpsj6ay45geeice.ipfs.nftstorage.link'],\r\n contractName: 'p4-cheddy.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n config: { noBoost: true }\r\n },\r\n {\r\n index: 18,\r\n poolType: 'nft',\r\n poolName: 'Astropups',\r\n nftBaseUrl: ['https://nearnaut.mypinata.cloud/ipfs'],\r\n contractName: 'p4-astropups.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n config: { noBoost: false }\r\n },\r\n {\r\n index: 19,\r\n poolType: 'nft',\r\n poolName: 'Cheddy',\r\n nftBaseUrl: ['https://bafybeicoln5rvccttgypzo26irjlskslnfynkzig6bowpsj6ay45geeice.ipfs.nftstorage.link'],\r\n contractName: 'p4-cheddy1.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n config: { noBoost: true }\r\n },\r\n {\r\n index: 20,\r\n poolType: 'nft',\r\n poolName : 'Cheddar-Cafe',\r\n nftBaseUrl: ['https://nearnaut.mypinata.cloud/ipfs'],\r\n contractName: 'p4-citizencafe.cheddar.near',\r\n tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n },\r\n // {\r\n // index: 21,\r\n // poolType: 'nft',\r\n // poolName : 'Cheddar-Rogues',\r\n // nftBaseUrl: ['https://cloudflare-ipfs.com/ipfs/'],\r\n // contractName: 'p4-rogues.cheddar.near',\r\n // tokenContractName: CHEDDAR_CONTRACT_NAME,\r\n // },\r\n \r\n ]\r\n }\r\n case 'development':\r\n case 'testnet':\r\n return {\r\n nftContractAddress: \"nft.cheddar.testnet\",\r\n cheddarNFTBaseUrl: \"https://bafybeibghcllcmurku7lxyg4wgxn2zsu5qqk7h4r6bmyhpztmyd564cx54.ipfs.nftstorage.link/\",\r\n networkId: TESTNET_NETWORKID,\r\n nodeUrl: TESTNET_NODEURL,\r\n cheddarContractName: TESTNET_CHEDDAR_CONTRACT_NAME,\r\n cheddarNFTContractName: TESTNET_CHEDDAR_NFT_CONTRACT_NAME,\r\n walletUrl: TESTNET_WALLETURL,\r\n helperUrl: TESTNET_HELPERURL,\r\n explorerUrl: TESTNET_EXPLORERURL,\r\n keyPath: undefined,\r\n masterAccount:undefined,\r\n \"farms\": [\r\n {\r\n index: 0,\r\n poolType: 'multiple',\r\n poolName : 'tt',\r\n contractName: 'p3-tt.cheddar.testnet',\r\n tokenContractName: 'test-token.cheddar.testnet',\r\n },\r\n {\r\n index: 1,\r\n poolType: 'single',\r\n poolName : 'stNear',\r\n contractName: 'p2-meta.cheddar.testnet',\r\n tokenContractName: 'meta-v2.pool.testnet',\r\n },\r\n {\r\n index: 2,\r\n poolType: 'single',\r\n poolName : 'banana',\r\n contractName: 'p2-bananas.cheddar.testnet',\r\n tokenContractName: 'berryclub.testnet',\r\n },\r\n {\r\n index: 3,\r\n poolType: 'single',\r\n poolName : 'ref',\r\n contractName: 'p2-ref.cheddar.testnet',\r\n tokenContractName: 'ref.fakes.testnet',\r\n },\r\n {\r\n index: 4,\r\n poolType: 'nft',\r\n poolName : 'Holistic Pilgrims',\r\n contractName: 'cheddy-nft.cheddar.testnet',\r\n tokenContractName: 'token-v3.cheddar.testnet',\r\n nftBaseUrl: [\r\n 'https://cloudflare-ipfs.com/ipfs/bafybeicx2okilwtljyac2b5prutqodxkouyvfgysuav6pspoznn2n2qs2i'\r\n ]\r\n\r\n },\r\n ]\r\n }\r\n default:\r\n throw Error(`Unknown environment '${env}'. Can be configured in src/config.js.`)\r\n }\r\n}\r\n","import {WalletInterface} from \"./wallet-interface\"\r\nimport {U64String,U128String} from \"./util\"\r\nimport {BatchTransaction} from \"./batch-transaction\"\r\nimport { Transaction } from \"near-api-js/lib/transaction\";\r\n\r\nconst NOT_CONNECTED=\"Connect to NEAR\";\r\n\r\n// -----------------------------\r\n// Default disconnected wallet\r\n// SmartContract proxies start with this dummy wallet until the user chooses a wallet\r\n// -----------------------------\r\nexport class DisconnectedWallet implements WalletInterface {\r\n\r\n requestSignTransactions(transactions: Transaction[], callbackUrl?: string, meta?: string): Promise;\r\n requestSignTransactions(options: RequestSignTransactionsOptions): Promise;\r\n requestSignTransactions(transactions: any, callbackUrl?: any, meta?: any): Promise {\r\n return Promise.resolve()\r\n }\r\n \r\n getAccountId():string{ return NOT_CONNECTED }\r\n getDisplayableAccountId(): string {\r\n return this.getAccountId()\r\n }\r\n\r\n async getAccountBalance(accountId?:string):Promise{ return \"0\"};\r\n\r\n getNetwork(){ return NOT_CONNECTED }\r\n\r\n setNetwork(value:string){ throw Error(\"can't change network\")}\r\n\r\n // Note: Connection is started from the chrome-extension, so web pages don't get any info before the user decides to \"connect\"\r\n // Also pages don't need to create buttons/options to connect to different wallets, as long all wallets connect with Dapp-pages by using this API\r\n // potentially, a single DApp can be used to operate on multiple chains, since all requests are high-level and go thru the chrome-extension\r\n\r\n isConnected() { return false}\r\n \r\n disconnect(){ };\r\n\r\n connectionHelp(){ window.open(\"https://wallet.near.org/\") }\r\n\r\n /**\r\n * isConnected or throws \"wallet not connected\"\r\n */\r\n checkConnected() { throw Error(NOT_CONNECTED) }\r\n\r\n /**\r\n * Just a single contract \"view\" call\r\n */\r\n async view (contract:string, method:string, args:Record):Promise{\r\n throw Error(NOT_CONNECTED) \r\n }\r\n\r\n /**\r\n * A single contract \"payable\" fn call\r\n */\r\n async call(contract:string, method:string, args:Record, gas?:U64String, attachedYoctos?:U128String):Promise{\r\n throw Error(NOT_CONNECTED) \r\n }\r\n\r\n /**\r\n * ASYNC. sends a BatchTransaction to the blockchain\r\n */\r\n async apply (bt:BatchTransaction):Promise{\r\n throw Error(NOT_CONNECTED) \r\n }\r\n\r\n /**\r\n * ASYNC, low level generic access\r\n */\r\n queryChain(method: string, args: object): Promise {\r\n throw Error(NOT_CONNECTED) \r\n }\r\n\r\n}\r\n\r\n//export singleton\r\nexport const disconnectedWallet = new DisconnectedWallet();\r\n","\r\nexport const DEFAULT_GAS=\"200\"+\"0\".repeat(12);\r\n\r\nexport type U64String = string;\r\nexport type U128String = string;\r\n\r\n\r\n//helper to check wallet version\r\nexport class SemVer {\r\n \r\n constructor (public major:number, public minor:number, public version:number){};\r\n\r\n static fromNumber(num:number):SemVer{ \r\n const str=num.toString().padStart(9,\"0\");\r\n return new SemVer(Number(str.slice(0,3)), Number(str.slice(3,3)), Number(str.slice(6,3)))\r\n }\r\n\r\n toNumber():number{return this.major*1e6 + this.minor*1e3 + this.version}\r\n\r\n toString(){return `${this.major}.${this.minor}.${this.version}`}\r\n}\r\n","import {WalletInterface, EventHandler} from \"../wallet-interface\"\r\nimport {BatchTransaction} from \"../batch-transaction\"\r\nimport {U64String,U128String, DEFAULT_GAS} from \"../util\"\r\n\r\nimport { WalletConnection } from \"near-api-js\";\r\nimport { getTransactionLastResult, JsonRpcProvider } from \"near-api-js/lib/providers\";\r\nimport BN from 'bn.js'; //WARN: It has to be the same bn.js version as near-api-js\r\n\r\n//-----------------------------\r\n// WalletInterface implementation\r\n// for the NEAR Web Wallet\r\n//-----------------------------\r\nexport class NearWebWallet implements WalletInterface {\r\n \r\n constructor (\r\n public walletConnection: WalletConnection,\r\n )\r\n {}\r\n\r\n getAccountId():string{\r\n return this.walletConnection.getAccountId();\r\n }\r\n\r\n getDisplayableAccountId(): string {\r\n const accName = this.getAccountId()\r\n return accName.length > 22 ? accName.slice(0, 10) + \"..\" + accName.slice(-10) : accName\r\n }\r\n\r\n async getAccountBalance(accountId?:string):Promise {\r\n const data = await this.walletConnection.account().getAccountBalance();\r\n return data.total;\r\n }\r\n\r\n getNetwork(){ return this.walletConnection._near.connection.networkId}\r\n\r\n setNetwork(value:string){ throw Error(\"can't change networkId\")}\r\n\r\n isConnected() {\r\n return this.walletConnection.isSignedIn()\r\n }\r\n \r\n disconnect(){\r\n this.walletConnection.signOut(); \r\n }\r\n\r\n connectionHelp(){\r\n window.open(\"https://wallet.near.org/\")\r\n }\r\n\r\n /**\r\n * isConnected or throws \"wallet not connected\"\r\n */\r\n checkConnected() {\r\n if (!this.walletConnection.isSignedIn()) {\r\n throw Error(\"Wallet is not connected\")\r\n }\r\n }\r\n\r\n /**\r\n * Just a single contract \"view\" call\r\n */\r\n async view (contract:string, method:string, args:Record):Promise{\r\n return this.walletConnection.account().viewFunction(contract, method, args);\r\n }\r\n\r\n /**\r\n * A single contract \"payable\" fn call\r\n */\r\n async call(contract:string, method:string, args:Record, gas?:U64String, attachedYoctos?:U128String):Promise{\r\n //clear SearchURL before calling to not mix old results with new ones\r\n window.history.replaceState({}, '', location.pathname)\r\n const finalExecOutcome = await this.walletConnection.account().functionCall(contract, method, args, new BN(gas||DEFAULT_GAS), new BN(attachedYoctos||\"0\"));\r\n return getTransactionLastResult(finalExecOutcome);\r\n }\r\n\r\n /**\r\n * ASYNC. sends a BatchTransaction to the blockchain\r\n */\r\n async apply (bt:BatchTransaction):Promise{\r\n //TODO - implement BatchTransactions\r\n throw Error(\"Not implemented\");\r\n }\r\n\r\n /**\r\n * ASYNC, low level generic access\r\n */\r\n async queryChain(method: string, args: object): Promise {\r\n const provider = this.walletConnection._connectedAccount.connection.provider as JsonRpcProvider \r\n return provider.sendJsonRpc(method,args);\r\n }\r\n\r\n}\r\n","import {WalletInterface, EventHandler} from \"../wallet-interface\"\r\nimport {BatchTransaction, FunctionCall, Transfer} from \"../batch-transaction\"\r\nimport {U64String,U128String,SemVer} from \"../util\"\r\n\r\n//-------------------------------\r\n// WalletInterface implementation\r\n// for Narwallet-chrome-extension\r\n//-------------------------------\r\n\r\n//-----------------------------\r\n//-- SINGLETON WALLET class --\r\n//-----------------------------\r\nexport class Narwallet implements WalletInterface {\r\n \r\n _isConnected: boolean =false;\r\n _accountId: string=\"\";\r\n _network=\"mainnet\"; //default required network. Users will be required to connect accounts from mainnet\r\n _requiredVersion = new SemVer(2,0,0); //what wallet version this webapp requires (depends on the wallet-interface and be changed by the DApp)\r\n version = new SemVer(0,0,0); //chrome-extension wallet version, 0 until wallet connects\r\n\r\n getAccountId():string{\r\n return this._accountId;\r\n }\r\n\r\n getDisplayableAccountId(): string {\r\n const accName = this.getAccountId()\r\n return accName.length > 22 ? accName.slice(0, 10) + \"..\" + accName.slice(-10) : accName\r\n }\r\n\r\n async getAccountBalance(accountId?:string):Promise {\r\n const requestPayload={dest:\"ext\", code:\"get-account-balance\", accountId:accountId||this._accountId}\r\n return backgroundRequest(requestPayload);\r\n }\r\n\r\n getNetwork(){ return this._network }\r\n setNetwork(value:string){ this._network = value;}\r\n\r\n setRequiredVersion(semver:SemVer){ this._requiredVersion = semver}\r\n\r\n // Note: Connection is started from the chrome-extension, so web pages don't get any info before the user decides to \"connect\"\r\n // Also pages don't need to create buttons/options to connect to different wallets, as long all wallets connect with Dapp-pages by using this API\r\n // potentially, a single DApp can be used to operate on multiple chains, since all requests are high-level and go thru the chrome-extension\r\n isConnected() {return this._isConnected}\r\n \r\n disconnect(){\r\n //console.log(\"wallet.disconnect\") \r\n document.dispatchEvent(new CustomEvent(\"wallet-disconnected\"));\r\n if (this._isConnected) window.postMessage({dest:\"ext\",code:\"disconnect\"},\"*\"); //inform the extension\r\n this._isConnected = false;\r\n this._accountId = \"\";\r\n this.version = new SemVer(0,0,0)\r\n }\r\n\r\n connectionHelp(){\r\n window.open(\"http://www.narwallets.com/help/connect-to-web-app\")\r\n }\r\n\r\n /**\r\n * isConnected or throws \"wallet not connected\"\r\n */\r\n checkConnected() {\r\n if (!this._isConnected) {\r\n throw Error(\"Wallet is not connected. Open the wallet extension and click 'Connect to Web Page'\")\r\n }\r\n }\r\n\r\n /**\r\n * Just a single contract \"view\" call\r\n */\r\n async view (contract:string, method:string, args:Record):Promise{\r\n\r\n //ask the extension to make the view-call\r\n const requestPayload={dest:\"ext\", code:\"view\", contract:contract, method:method, args:args}\r\n return backgroundRequest(requestPayload);\r\n }\r\n\r\n /**\r\n * A single contract \"payable\" fn call\r\n */\r\n async call(contract:string, method:string, args:Record, gas?:U64String, attachedYoctos?:U128String):Promise{\r\n const bt=new BatchTransaction(contract)\r\n bt.addItem(new FunctionCall(method,args,gas,attachedYoctos))\r\n return this.apply(bt)\r\n }\r\n\r\n /**\r\n * ASYNC. sends a BatchTransaction to the blockchain\r\n */\r\n async apply (bt:BatchTransaction):Promise{\r\n\r\n //ask the extension to broadcast the transaction\r\n //register request. Promise will be resolved when the response arrives\r\n const requestPayload={dest:\"ext\", code:\"apply\", tx:bt}\r\n return backgroundRequest(requestPayload);\r\n }\r\n\r\n /**\r\n * ASYNC, low level generic access\r\n */\r\n async queryChain(method: string, args: object): Promise {\r\n const requestPayload={dest:\"ext\", code:\"json-rpc\", method:method, args:args}\r\n return backgroundRequest(requestPayload);\r\n }\r\n\r\n}\r\n//-----------------\r\n// SINGLETON EXPORT\r\n//-----------------\r\nexport let narwallets = new Narwallet();\r\n\r\n//----------------------------------------\r\n//-- Init, add all listeners\r\n//----------------------------------------\r\nexport function addNarwalletsListeners(onConnect:EventHandler,OnDisconnect:EventHandler){\r\n addGeneralListener()\r\n addOnConnectListener(onConnect)\r\n addOnDisconnectListener(OnDisconnect)\r\n}\r\n//----------------------------------------------------\r\n//-- LISTEN to \"message\" from injected content script\r\n//-- msg path is ext-> content-script-> here-> dispatchEvent(\"wallet-connected\"|\"wallet-disconnected\"|\"wallet-event\")\r\n//-- process by raising 'wallet-event' \r\n//----------------------------------------------------\r\nexport function addGeneralListener(){\r\n window.addEventListener(\"message\", \r\n function(event) {\r\n //console.log(\"wallet-ts message-listener\",event.data.dest, event.data);\r\n if (event.source != window) return; //only internal messages (from the injected content script)\r\n if (event.data.dest!=\"page\") return; //only messages destined to this web page (DApp) \r\n msgReceivedFromContentScript(event.data)\r\n }\r\n , false)\r\n ;\r\n}\r\n//to add connect event listener\r\nexport function addOnConnectListener(handler:EventHandler){\r\n document.addEventListener(\"wallet-connected\",handler)\r\n}\r\n//to add disconnect event listener\r\nexport function addOnDisconnectListener(handler:EventHandler){\r\n document.addEventListener(\"wallet-disconnected\",handler)\r\n}\r\n\r\n//process message from ext/page\r\nfunction msgReceivedFromContentScript(msg:Record){\r\n \r\n //console.log(\"msg ext->page: \" + JSON.stringify(msg));\r\n\r\n //handle connect and disconnect\r\n if (msg.code==\"connect\"){\r\n //prepare response\r\n const walletNetwork = narwallets.getNetwork();\r\n const response={dest:\"ext\", code:\"connected\", relayer:\"wallet-api\", version:\"0.1\", network:walletNetwork, err:\"\"}\r\n //capture wallet version, default 1.0.2\r\n if (msg.data?.version){\r\n narwallets.version=SemVer.fromNumber(msg.data?.version)\r\n }\r\n else {\r\n narwallets.version= new SemVer(1,0,2);\r\n }\r\n //check required version\r\n if (narwallets.version.toNumber() req.requestId==msg.requestId);\r\n if (inx>=0){\r\n //remove it from the array\r\n let r=requests.splice(inx,1)[0];\r\n //reject or resolve promise\r\n if (msg.err){\r\n return r.reject(Error(msg.err));\r\n }\r\n else {\r\n return r.resolve(msg.data);\r\n }\r\n }\r\n else {\r\n console.error(\"requestId NOT FOUND \",msg) \r\n }\r\n \r\n}\r\n\r\n/* ----------------\r\nexample event data:\r\n connected = {\r\n code: 'connected',\r\n source:'ext',\r\n dest:'page',\r\n err: undefined,\r\n data: {\r\n accountId: \"${user_account_id}\"\r\n },\r\n }\r\n*/\r\n\r\n//requests made to the extension's background.js\r\ntype requestInfo = {\r\n requestId:number,\r\n payload: any,\r\n resolve: Function,\r\n reject: Function,\r\n}\r\nconst requests:requestInfo[]=[];\r\nlet requestId=0; //incremental request-id\r\n\r\n//result from the extension\r\nexport type RequestResult = {\r\n requestId:number,\r\n err?:string,\r\n data?:any,\r\n}\r\n\r\n//queue a request, send to the extension via window.postMessage, return a Promise\r\nexport function backgroundRequest(requestPayload:any):Promise{\r\n return new Promise((resolve,reject)=>{\r\n const request:requestInfo = {requestId:++requestId, payload: requestPayload, reject:reject, resolve:resolve}\r\n requests.push(request)\r\n requestPayload.requestId=requestId; //add requestId to payload\r\n if (!requestPayload.dest) requestPayload.dest=\"ext\";\r\n //broadcast (injected content script will process it and forward to the chrome-extension)\r\n window.postMessage(requestPayload, \"*\")\r\n })\r\n}\r\n","import {U64String, U128String, DEFAULT_GAS} from './util'\r\n\r\n//----------------------\r\n//-- BatchTransaction --\r\n//----------------------\r\n// this classes exists to facilitate the creation of BatchTransactions\r\n// a BatchTransaction is a series of actions *to be executed on a fixed receiver*\r\n// by having this classes we can make typescript help with type-checking and code suggestions\r\n//\r\nexport class BatchTransaction {\r\n items: BatchAction[] = []\r\n constructor(\r\n public receiver:string,\r\n ){}\r\n\r\n addItem(item:BatchAction){\r\n this.items.push(item)\r\n }\r\n\r\n}\r\n\r\n//generic batch-action\r\nexport class BatchAction {\r\n constructor(\r\n public action: string,\r\n public attached: U128String = \"0\",\r\n ){}\r\n}\r\n\r\nexport class FunctionCall extends BatchAction{\r\n public gas:U64String;\r\n constructor(\r\n public method:string,\r\n public args: Record,\r\n gas?: U64String,\r\n attached?: U128String\r\n ){\r\n super(\"call\",attached)\r\n this.gas = gas||DEFAULT_GAS;\r\n }\r\n\r\n}\r\n\r\nexport class Transfer extends BatchAction{\r\n constructor(\r\n attached:U128String\r\n ){\r\n super(\"transfer\",attached)\r\n }\r\n}\r\n\r\n//TODO\r\n//add create-account, delete-account, etc\r\n","//----------------------------------\r\n//------ conversions YoctoNEAR <-> Near\r\n//----------------------------------\r\n\r\n//BigInt scientific notation\r\nconst base1e = BigInt(10);\r\nfunction b1e(n: number) { return base1e ** BigInt(n) };\r\nconst b1e12 = b1e(12);\r\nconst b1e24 = b1e(24);\r\nconst b1e18 = b1e(18);\r\n\r\n//TGas number -> U64String\r\nexport function TGas(tgas: number): string {\r\n return (BigInt(tgas) * b1e12).toString(); // tgas*1e12 // Note: gas is u64\r\n}\r\n//NEAR amount (up-to 6 dec points) -> U128String yoctoNEAR\r\nexport function ntoy(near: number): string {\r\n return (BigInt(Math.round(near * 1e6)) * b1e18).toString(); // near*1e24 // Note: YoctoNear is u128\r\n}\r\n\r\n//yoctoNEAR amount -> number, rounded\r\n/**\r\n * returns Near number with 5 decimal digits\r\n * @param {string} yoctoNEAR amount \r\n */\r\nexport function yton(yoctos: string|BigInt): number {\r\n try {\r\n yoctos = yoctos.toString()\r\n if (yoctos == undefined) return 0;\r\n const decimals = 5\r\n const bn = BigInt(yoctos) + BigInt(0.5 * 10 ** (24 - decimals)); //round 6th decimal\r\n const truncated = ytonFull(bn.toString()).slice(0, (decimals - 24))\r\n return Number(truncated)\r\n }\r\n catch (ex) {\r\n console.log(\"ERR: yton(\", yoctos, \")\", ex)\r\n return NaN;\r\n }\r\n}\r\n\r\n//yoctoNEAR amount -> number, rounded\r\n/**\r\n * returns Near number with 5 decimal digits\r\n * @param {string} yoctoNEAR amount \r\n */\r\n export function ytonLong(yoctos: string): number {\r\n try {\r\n if (yoctos == undefined) return 0;\r\n const decimals = 8\r\n const bn = BigInt(yoctos) + BigInt(0.5 * 10 ** (24 - decimals)); //round 6th decimal\r\n const truncated = ytonFull(bn.toString()).slice(0, (decimals - 24))\r\n return Number(truncated)\r\n }\r\n catch (ex) {\r\n console.log(\"ERR: yton(\", yoctos, \")\", ex)\r\n return NaN;\r\n }\r\n}\r\n/**\r\n * returns string with a decimal point and 24 decimal places\r\n * @param {string} yoctoString amount in yoctos\r\n */\r\nexport function ytonFull(yoctoString: string): string {\r\n let result = (yoctoString + \"\").padStart(25, \"0\")\r\n result = result.slice(0, -24) + \".\" + result.slice(-24)\r\n return result\r\n}\r\n\r\n//-------------------------------------\r\n//--- conversions User-input <-> Number\r\n//-------------------------------------\r\n\r\n/** rebase a number based on decimal. Examples\r\n* convertToDecimals(\"1\",3) = 0.001\r\n* convertToDecimals(\"0\",3) = 0.0\r\n* convertToDecimals(\"1000\",3) = 1.0\r\n* convertToDecimals(\"1000\",3) = 1.0\r\n* convertToDecimals(\"12345678\",3) = 123.45678\r\n* If truncate is provided, then the fractional part of the number is truncated to the\r\n* `truncate` decimal digits. If `truncate == 0` then the fractional part is ommited.\r\n* Example:\r\n* convertToDecimals(\"12345678\", 1, 1) = 123.4\r\n*/ \r\nexport function convertToDecimals(str:string|BigInt, decimals: number, truncate:number) {\r\n str = str.toString() // convert numbers and bigint\r\n // clear leading zeros\r\n let i = 0\r\n for(; i 0) {\r\n return integer + \".\" + fractional.substring(0, truncate);\r\n }\r\n return integer;\r\n}\r\n\r\n/** Takes a decimal number in string and returns\r\n* a number as a string rebased to given decimal base.\r\n* Examples\r\n* convertToBase(\"1\", 3) = \"1000\"\r\n* convertToBase(\"1234\", 3) = \"1234000\"\r\n* convertToBase(\"1.234\", 3) = \"1234\"\r\n* convertToBase(\"1.2345\", 3) = \"1234\"\r\n* convertToBase(\"0.12345\", 3) = \"123\"\r\n*/ \r\nexport function convertToBase(n:string, decimals:string) {\r\n let decimals_n = Number(decimals);\r\n // clear leading zeros\r\n let i = 0\r\n for(; i4,2, or none (never 3 to not confuse the international user)\r\n* @param {number} n \r\n*/\r\nexport function removeDecZeroes(withDecPoint: string): string {\r\n let decPointPos = withDecPoint.indexOf('.')\r\n if (decPointPos <= 0) return withDecPoint;\r\n let decimals = withDecPoint.length - decPointPos - 1;\r\n while (withDecPoint.endsWith(\"0\") && decimals-- > 4) withDecPoint = withDecPoint.slice(0, -1);\r\n if (withDecPoint.endsWith(\"00\")) withDecPoint = withDecPoint.slice(0, -2)\r\n if (withDecPoint.endsWith(\".00\")) withDecPoint = withDecPoint.slice(0, -3)\r\n return withDecPoint;\r\n}\r\n/**\r\n* Formats a number in NEAR to a string with commas and 5,2, or 0 decimal places\r\n* @param {number} n \r\n*/\r\nexport function toStringDecMin(n: number) {\r\n return addCommas(removeDecZeroes(toStringDecSimple(n)));\r\n}\r\n/**\r\n * adds commas to a string number \r\n * @param {string} str \r\n */\r\nexport function addCommas(str: string) {\r\n let n = str.indexOf(\".\")\r\n if (n == -1) n = str.length\r\n n -= 4\r\n while (n >= 0) {\r\n str = str.slice(0, n + 1) + \",\" + str.slice(n + 1)\r\n n = n - 3\r\n }\r\n return str;\r\n}\r\n\r\n","// document.querySelector shortcuts\r\n// qs => document.querySelector -> HTMLElement\r\nexport function qs(selector:string){ return document.querySelector(selector) as HTMLElement}\r\n// qsi => document.querySelector -> HTMLInputElement\r\nexport function qsi(selector:string){ return document.querySelector(selector) as HTMLInputElement}\r\n// qsa => document.querySelectorAll -> NodeListOf\r\nexport function qsa(selector:string){ return document.querySelectorAll(selector)}\r\n\r\n///set innerText for all matching HTMLElements\r\nexport function qsaInnerText(selector:string, innerText:string){ \r\n document.querySelectorAll(selector).forEach(e=> {\r\n if (e instanceof HTMLElement) e.innerText = innerText;\r\n });\r\n}\r\n\r\n///set innerText for all matching HTMLElements\r\nexport function qsaAttribute(selector:string, attributeKey: string, attributeValue:string){ \r\n document.querySelectorAll(selector).forEach(e=> {\r\n if (e instanceof HTMLElement) e.setAttribute(attributeKey, attributeValue)\r\n });\r\n}\r\n\r\n///set innerText for first matching HTMLElement\r\nexport function qsInnerText(selector:string, innerText:string){ \r\n document.querySelector(selector)!.innerHTML = innerText\r\n}\r\n\r\n\r\nexport function show(el:Element, onOff:boolean=true){\r\n (el as HTMLElement).style.display= (onOff?\"\":\"none\");\r\n}\r\nexport function hide(el:Element){\r\n (el as HTMLElement).style.display=\"none\";\r\n}\r\n\r\nexport function showPopup(selector:string, msg?:string, title?:string){\r\n cancelWait=true;\r\n const el = qs(selector);\r\n const overlay:HTMLElement = qs(\"#overlay1\");\r\n //hide all\r\n overlay.querySelectorAll(\".box.popup\").forEach( hide )\r\n //show required\r\n //get children by id\r\n const titleElem = el.querySelector(\"#title\") as HTMLElement\r\n const msgElem= el.querySelector(\"#msg\") as HTMLElement\r\n if (msgElem && msg) msgElem.innerHTML=msg;\r\n if (titleElem && title) titleElem.innerText=title;\r\n show(el);\r\n //show overlay\r\n show(overlay);\r\n}\r\nexport function hidePopup(selector:string){\r\n hide(qs(selector));\r\n}\r\nexport function hideOverlay(){\r\n cancelWait=true;\r\n hide(qs(\"#overlay1\"));\r\n}\r\n\r\nlet waitStartTimer:any;\r\nlet cancelWait:boolean=false;\r\nexport function showWait(msg?:string, title?:string){\r\n cancelWait=false;\r\n waitStartTimer = setTimeout(() => {\r\n if (!cancelWait) showPopup(\"#wait-box\",msg,title);\r\n }, 500);\r\n}\r\nexport function hideWaitKeepOverlay(){\r\n cancelWait=true;\r\n if (waitStartTimer){\r\n clearTimeout(waitStartTimer);\r\n waitStartTimer=undefined;\r\n }\r\n hidePopup(\"#wait-box\");\r\n}\r\n\r\nexport function showMessage(msg:string,title?:string){\r\n showPopup(\"#message-box\",msg,title);\r\n}\r\nexport function showSuccess(msg:string,title?:string){\r\n console.log(msg + \" \" + title)\r\n showPopup(\"#success-box\",msg,title);\r\n}\r\n\r\nexport function showError(msg:string,title?:string){\r\n title = (msg == \"Error from wallet: userRejected\") ? \"Transaction Rejected\" : title\r\n showPopup(\"#error-box\",msg,title);\r\n}\r\nexport function showErr(ex:Error){\r\n console.log(ex)\r\n showError(ex.message);\r\n}\r\n\r\n","\r\n// Calling contract methods with attachedDeposit causes a redirect to NEAR Wallet.\r\n// later the wallet redirects the browser back to this app, adding 2 params in URLSearchParams\r\n// ?transactionHashes=xxxxx & errorCode=eeeee\r\n// this fn must be called to check if we're re-spawning from a wallet redirect\r\n// to obtain transaction result information\r\n// check if (`err`) and if not you can get function call result with `data`, and full-tx-result with `finalExecutionOutcome`\r\n\r\nimport { utils, WalletConnection } from 'near-api-js'\r\nimport { FinalExecutionOutcome, getTransactionLastResult } from \"near-api-js/lib/providers\"\r\nimport { FunctionCall } from 'near-api-js/lib/transaction'\r\nimport { parseRpcError } from 'near-api-js/lib/utils/rpc_errors'\r\n\r\nfunction removeQueryString(){\r\n var uri = window.location.toString();\r\n if (uri.indexOf(\"?\") > 0) {\r\n var clean_uri = uri.substring(0, uri.indexOf(\"?\"));\r\n window.history.replaceState({}, document.title, clean_uri);\r\n } \r\n}\r\n\r\nexport async function checkRedirectSearchParams( walletConnection:WalletConnection, nearExplorerUrl:string ): \r\n Promise<{err?:string, data?:any, method?:string, finalExecutionOutcome?:FinalExecutionOutcome }> {\r\n\r\n try {\r\n const urlParams = new URLSearchParams(window.location.search)\r\n removeQueryString()\r\n const txHash = urlParams.get('transactionHashes')\r\n const errorCode = urlParams.get('errorCode')\r\n\r\n if (errorCode) {\r\n // If errorCode, then the redirect succeeded but the tx was rejected/failed\r\n const newError = 'Error from wallet: ' + errorCode\r\n console.error(newError)\r\n return {\r\n err: newError\r\n }\r\n }\r\n\r\n if (!txHash) return {};\r\n\r\n if (txHash.includes(',')) {\r\n // NOTE: when a single tx is executed, transactionHashes is equal to that hash\r\n const newError = 'Expected single txHash, got: ' + txHash\r\n console.error(newError)\r\n return {\r\n err: newError\r\n }\r\n }\r\n\r\n const decodedTxHash = utils.serialize.base_decode(txHash)\r\n const finalExecOutcome = await walletConnection.account().connection.provider.txStatus( decodedTxHash, walletConnection.getAccountId());\r\n\r\n let method:string|undefined = undefined;\r\n if (finalExecOutcome.transaction?.actions?.length){\r\n const actions=finalExecOutcome.transaction.actions\r\n //recover methodName of first FunctionCall action\r\n for(let n=0;n${finalExecOutcome.transaction.hash} failed`\r\n\r\n return {\r\n err: errorMessage,\r\n method:method,\r\n }\r\n }\r\n\r\n return {\r\n data: getTransactionLastResult(finalExecOutcome),\r\n method:method,\r\n finalExecutionOutcome: finalExecOutcome \r\n }\r\n\r\n }\r\n catch(ex){\r\n console.error(ex.message);\r\n return { err: ex.message};\r\n }\r\n}\r\n\r\n export async function checkRedirectSearchParamsMultiple( walletConnection:WalletConnection, nearExplorerUrl:string ): \r\n Promise<{err?:string, data?:any, method?:string, finalExecutionOutcome?:FinalExecutionOutcome }[]> {\r\n\r\n try {\r\n const urlParams = new URLSearchParams(window.location.search)\r\n removeQueryString()\r\n const txHash: string|null = urlParams.get('transactionHashes')\r\n const errorCode = urlParams.get('errorCode')\r\n\r\n if (errorCode) {\r\n // If errorCode, then the redirect succeeded but the tx was rejected/failed\r\n const newError = 'Error from wallet: ' + errorCode\r\n console.error(newError)\r\n return [{\r\n err: newError\r\n }]\r\n }\r\n\r\n if (!txHash) return [];\r\n\r\n let transactionArray: string[]\r\n\r\n if (txHash.includes(',')) {\r\n // NOTE: when a single tx is executed, transactionHashes is equal to that hash\r\n transactionArray = txHash.split(\",\")\r\n // const newError = 'Expected single txHash, got: ' + txHash\r\n // console.error(newError)\r\n // return {\r\n // err: newError\r\n // }\r\n } else {\r\n transactionArray = [ txHash ]\r\n }\r\n // [1, 3, 6].map(i => i + 3) --> [4, 6, 9]\r\n const decodedTxHashArray = transactionArray.map(hash => utils.serialize.base_decode(hash)) \r\n const finalExecOutcomeArray = await Promise.all(decodedTxHashArray.map(async (decodedTxHash) => {\r\n return await walletConnection.account().connection.provider.txStatus( decodedTxHash, walletConnection.getAccountId());\r\n }))\r\n\r\n let output = []\r\n\r\n for(let i = 0; i < finalExecOutcomeArray.length; i++) {\r\n let method:string|undefined = undefined;\r\n const finalExecOutcome = finalExecOutcomeArray[i]\r\n if (finalExecOutcome.transaction?.actions?.length){\r\n const actions=finalExecOutcome.transaction.actions\r\n //recover methodName of first FunctionCall action\r\n for(let n=0;n${finalExecOutcome.transaction.hash} failed`\r\n output.push(\r\n {\r\n err: errorMessage,\r\n method:method,\r\n }\r\n )\r\n } else {\r\n output.push(\r\n {\r\n data: getTransactionLastResult(finalExecOutcome),\r\n method:method,\r\n finalExecutionOutcome: finalExecOutcome \r\n }\r\n )\r\n }\r\n }\r\n \r\n return output\r\n }\r\n catch(ex){\r\n console.error(ex.message);\r\n return [{ err: ex.message}];\r\n }\r\n\r\n}\r\n","import {WalletInterface} from \"./wallet-interface\"\r\nimport {U64String,U128String} from \"./util\"\r\nimport {disconnectedWallet} from \"./disconnected-wallet\";\r\nimport * as nearAPI from \"near-api-js\"\r\nimport { near, nearConfig } from \"..\";\r\nimport { JsonRpcProvider } from \"near-api-js/lib/providers\";\r\n\r\n//-----------------------------\r\n// Base smart-contract proxy class\r\n// provides constructor, view & call methods\r\n// derive your specific contract proxy from this class\r\n//-----------------------------\r\nexport class SmartContract {\r\n \r\n public wallet:WalletInterface;\r\n public nearWallet: nearAPI.WalletConnection;\r\n public account: nearAPI.ConnectedWalletAccount\r\n public provider: JsonRpcProvider\r\n\r\n constructor( \r\n public contractId:string, \r\n )\r\n {\r\n this.wallet = disconnectedWallet; //default wallet is DisconnectedWallet\r\n this.nearWallet = new nearAPI.WalletAccount(near, null)\r\n this.account = this.nearWallet.account()\r\n this.provider = new JsonRpcProvider(nearConfig.nodeUrl)\r\n }\r\n\r\n async viewWithoutAccount(method: string, args: any = {}): Promise {\r\n try {\r\n const argsAsString = JSON.stringify(args)\r\n let argsBase64 = Buffer.from(argsAsString).toString(\"base64\")\r\n const rawResult = await this.provider.query({\r\n request_type: \"call_function\",\r\n account_id: this.contractId,\r\n method_name: method,\r\n args_base64: argsBase64,\r\n finality: \"optimistic\",\r\n });\r\n \r\n // format result\r\n const res = JSON.parse(Buffer.from(rawResult.result).toString());\r\n return res\r\n } catch(err) {\r\n console.error(`Error calling function ${method} from contract ${this.contractId} with params ${JSON.stringify(args)}`, err)\r\n }\r\n \r\n }\r\n\r\n view(method:string, args?:any) : Promise {\r\n if (!this.wallet) throw Error(`contract-proxy not connected ${this.contractId} trying to view ${method}`)\r\n return this.wallet.view(this.contractId,method,args)\r\n }\r\n\r\n call(method:string, args:any, gas?:U64String, attachedYoctos?:U128String) : Promise {\r\n //console.log(this.contractId, method, args, gas, attachedYoctos)\r\n if (!this.wallet) throw Error(`contract-proxy not connected ${this.contractId} trying to call ${method}`)\r\n return this.wallet.call(this.contractId, method, args, gas, attachedYoctos)\r\n }\r\n\r\n callWithoutSend(method:string, args:any, gas?:U64String, attachedYoctos?:U128String) : Promise {\r\n //console.log(this.contractId, method, args, gas, attachedYoctos)\r\n if (!this.nearWallet) throw Error(`contract-proxy not connected ${this.contractId} trying to call ${method}`)\r\n return this.nearWallet.call(this.contractId, method, args, gas, attachedYoctos)\r\n }\r\n\r\n disconnect(){\r\n this.wallet = disconnectedWallet; //set to DisconnectedWallet\r\n }\r\n}\r\n\r\n","//JSON compatible struct ft_metadata\r\nimport {SmartContract} from \"../wallet-api/base-smart-contract\"\r\nimport * as nearAPI from \"near-api-js\"\r\n\r\nimport {ntoy, TGas} from \"../util/conversions\"\r\nimport { BN } from \"bn.js\";\r\nimport { StorageBalance } from \"./contract-structs\";\r\nimport { Action } from \"near-api-js/lib/transaction\";\r\nimport { transactions } from \"near-api-js\";\r\n\r\nexport type FungibleTokenMetadata = {\r\n spec: string;\r\n name: string;\r\n symbol: string;\r\n symbolForHtml: string;\r\n icon: string|null;\r\n reference: string|null;\r\n reference_hash: string|null;\r\n decimals: number;\r\n}\r\n\r\ntype U128String = string;\r\ntype U64String = string;\r\n\r\nexport class NEP141Trait extends SmartContract {\r\n\r\n async ft_transfer(receiver_id:string, amount:U128String, memo?:string):Promise{\r\n return this.call(\"ft_transfer\",{receiver_id:receiver_id, amount:amount, memo:memo},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n async ft_transfer_call(receiver_id:string, amount:U128String, msg:string, memo?:string):Promise{\r\n return this.call(\"ft_transfer_call\",{receiver_id:receiver_id, amount:amount, memo:memo, msg:msg},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n async ft_transfer_call_without_send(receiver_id:string, amount:U128String, msg: string = \"to farm\"):Promise{\r\n return nearAPI.transactions.functionCall(\r\n \"ft_transfer_call\", \r\n {\r\n receiver_id: receiver_id,\r\n amount: amount,\r\n msg\r\n }, \r\n new BN(\"200000000000000\"), \r\n // new BN(gas), \r\n new BN(1)\r\n )\r\n }\r\n\r\n async unstake_without_send(token:string, amount:U128String):Promise{\r\n return nearAPI.transactions.functionCall(\r\n \"unstake\", \r\n {\r\n token,\r\n amount,\r\n }, \r\n new BN(\"200000000000000\"), \r\n // new BN(gas), \r\n new BN(1)\r\n )\r\n }\r\n\r\n async ft_total_supply() : Promise {\r\n return this.viewWithoutAccount(\"ft_total_supply\")\r\n }\r\n\r\n async ft_balance_of(accountId:string) : Promise {\r\n return this.viewWithoutAccount(\"ft_balance_of\", { account_id:accountId }) \r\n }\r\n\r\n async ft_metadata() :Promise{\r\n return this.viewWithoutAccount(\"ft_metadata\");\r\n }\r\n\r\n async new(owner_id: string, owner_supply: U128String):Promise{\r\n return this.call(\"new\",{owner_id:owner_id, owner_supply:owner_supply});\r\n }\r\n\r\n /// Checks to see if an account is registered.\r\n storageBalance(accountId?: string): Promise {\r\n return this.viewWithoutAccount(\"storage_balance_of\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Registers a user with the farm.\r\n storageDeposit(): Promise<[U128String, U128String]> {\r\n return this.call(\"storage_deposit\", {}, TGas(25), \"3000000000000000000000\")\r\n }\r\n\r\n async storageDepositWithoutSend():Promise{\r\n return transactions.functionCall(\r\n \"storage_deposit\", \r\n {}, \r\n new BN(\"200000000000000\"), \r\n new BN(\"3000000000000000000000\")\r\n )\r\n }\r\n\r\n}","import { FarmData, NO_CONTRACT_DEPOSIT_NEAR } from \"../config\";\r\nimport { FungibleTokenMetadata, NEP141Trait } from \"../contracts/NEP141\";\r\nimport { convertToDecimals } from \"../util/conversions\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { DetailRow, RewardsTokenData, TokenIconData } from \"./genericData\";\r\nimport { StakingContractDataP2, TokenContractData } from \"./PoolEntities\";\r\nimport {ConfettiButton} from '../util/animations/new-confetti-button';\r\n\r\n//JSON compatible struct returned from get_contract_state\r\nexport class HtmlPoolParams {\r\n id: string;\r\n formId: string;\r\n\r\n constructor(id: string) {\r\n this.id = id+\"-container\";\r\n this.formId = id;\r\n }\r\n}\r\n\r\nexport class UserStatusP2 {\r\n // All the numbers that are bigint are expected to be without any decimal points, and are converted when needed\r\n real_rewards_per_day: bigint = 0n;\r\n skip: Number = 0;\r\n staked: bigint = 0n;\r\n real: bigint = 0n;\r\n // computed holds an integer number with no decimal places holding the info about the computed cheddar rewars calculated\r\n computed: bigint = 0n;\r\n previous_real: bigint = 0n;\r\n previousTimestamp: number = 0;\r\n tokenDecimals: Number = 0;\r\n accName: string = '';\r\n\r\n constructor(userStatus?: [string, string, string]) {\r\n if(userStatus) {\r\n this.staked = BigInt(userStatus[0])\r\n this.real = BigInt(userStatus[1])\r\n this.previousTimestamp = Number(userStatus[2])\r\n }\r\n }\r\n\r\n hasStakedTokens() {\r\n return this.staked > 0n\r\n }\r\n\r\n getDisplayableComputed() {\r\n return convertToDecimals(this.computed.toString(), 24, 7)\r\n }\r\n\r\n getCurrentCheddarRewards() {\r\n return convertToDecimals(this.real.toString(), 24, 7)\r\n }\r\n\r\n getCurrentDisplayableCheddarRewards() {\r\n return convertToDecimals(this.computed.toString(), 24, 7)\r\n }\r\n\r\n getDisplayableAccountName() {\r\n return this.accName.length > 22 ? this.accName.slice(0, 10) + \"..\" + this.accName.slice(-10) : this.accName\r\n }\r\n\r\n addStaked(amount: string) {\r\n this.staked = this.staked + BigInt(amount)\r\n }\r\n}\r\n\r\nexport class PoolParams {\r\n wallet: WalletInterface\r\n type: string\r\n html: HtmlPoolParams;\r\n config: { [key: string]: any }\r\n\r\n poolDescription: string[]|undefined;\r\n descriptionLink: string[]|undefined;\r\n \r\n stakingContractData: StakingContractDataP2\r\n poolName: string\r\n stakeTokenMetaData: FungibleTokenMetadata;\r\n // Cheddar contract\r\n cheddarContract: NEP141Trait;\r\n // Token to be staked contract\r\n stakeTokenContract: NEP141Trait;\r\n stakeTokenContractList: TokenContractData[] = [];\r\n farmTokenContractList: TokenContractData[] = [];\r\n\r\n confettiButton?: ConfettiButton\r\n\r\n constructor(wallet: WalletInterface, farmData: FarmData, cheddarContractId: string) {\r\n this.wallet = wallet\r\n this.type = farmData.poolType;\r\n this.html = new HtmlPoolParams(farmData.poolName)\r\n this.poolName = farmData.poolName\r\n this.config = farmData.config ? farmData.config : []\r\n\r\n this.poolDescription = farmData.description;\r\n this.descriptionLink = farmData.descriptionLink;\r\n \r\n this.stakingContractData = new StakingContractDataP2(wallet, farmData.contractName, farmData.tokenContractName, farmData.poolName);\r\n this.stakingContractData.contract\r\n \r\n this.cheddarContract= new NEP141Trait(cheddarContractId);\r\n this.stakeTokenContract = new NEP141Trait(farmData.tokenContractName)\r\n this.stakeTokenMetaData = {} as FungibleTokenMetadata;\r\n\r\n this.cheddarContract.wallet = wallet;\r\n this.stakeTokenContract.wallet = wallet;\r\n }\r\n\r\n async userHasStakedTokens() {\r\n const poolUserStatus: UserStatusP2 = await this.stakingContractData.getUserStatus()\r\n return Number(poolUserStatus.staked) > 0\r\n }\r\n\r\n async getTokenContractList(tokenContractName: string): Promise {\r\n return [new TokenContractData(this.wallet, tokenContractName, this.poolName)]\r\n }\r\n\r\n async getPoolName() {\r\n /* Normally, pool names come from metadata, but in case it is requested a particular poolname\r\n you have to set on config.ts the poolName param starting with _ */\r\n if(this.poolName[0] === \"_\") return this.poolName.substring(1)\r\n const metadata = await this.stakeTokenContractList[0].getMetadata()\r\n return metadata.symbol\r\n }\r\n\r\n async setStakeTokenContractList() {\r\n this.stakeTokenContractList = [await this.getStakeTokenContractData()]\r\n }\r\n\r\n async setFarmTokenContractList() {\r\n this.farmTokenContractList = await this.getTokenContractList(this.cheddarContract.contractId)\r\n }\r\n\r\n async setAllExtraData() {\r\n await this.setStakeTokenContractList()\r\n await this.setFarmTokenContractList()\r\n }\r\n\r\n async refreshAllExtraData() {\r\n \r\n }\r\n \r\n async getRewardTokenIconData(): Promise {\r\n const cheddarMetaData = await this.cheddarContract.ft_metadata()\r\n const src = cheddarMetaData.icon ? cheddarMetaData.icon : cheddarMetaData.name\r\n return [{\r\n isSvg: src.includes(\"{\r\n let dataArray: DetailRow[] = []\r\n \r\n const stakeTokenContractData: TokenContractData = (await this.stakingContractData.getStakeTokenContractList())[0]\r\n const iconData = await this.getIcon(stakeTokenContractData)\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const metadata = await stakeTokenContractData.getMetadata()\r\n const totalStaked = convertToDecimals(contractParams.total_staked, metadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n content: totalStaked\r\n })\r\n \r\n return dataArray\r\n }\r\n\r\n async getRewardsTokenDetail(): Promise {\r\n let dataArray: RewardsTokenData[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const poolUserStatus = await this.stakingContractData.getUserStatus()\r\n\r\n const farmTokenContract = this.farmTokenContractList[0]\r\n const iconData = await this.getIcon(farmTokenContract)\r\n const farmTokenMetadata: FungibleTokenMetadata = await farmTokenContract.getMetadata()\r\n const tokenName = farmTokenMetadata.name\r\n const rewardsPerDayBN = BigInt(contractParams.farming_rate) * 60n * 24n\r\n const rewardsPerDay = convertToDecimals(rewardsPerDayBN, farmTokenMetadata.decimals, 7)\r\n const totalRewards = convertToDecimals(contractParams.total_farmed, farmTokenMetadata.decimals, 7)\r\n const userUnclaimedRewards = convertToDecimals(poolUserStatus.real.toString(), farmTokenMetadata.decimals, 7)\r\n \r\n dataArray.push({\r\n iconData,\r\n tokenName,\r\n rewardsPerDay,\r\n totalRewards,\r\n userUnclaimedRewards,\r\n })\r\n \r\n return dataArray\r\n }\r\n\r\n async getIcon(contractData: TokenContractData): Promise {\r\n const metadata = await contractData.getMetadata()\r\n const src = metadata.icon ? metadata.icon : metadata.name\r\n return {\r\n isSvg: src.includes(\" {\r\n return new TokenContractData(this.wallet, this.stakeTokenContract.contractId, this.poolName)\r\n }\r\n\r\n async getFarmTokenContractData(): Promise {\r\n return new TokenContractData(this.wallet, this.cheddarContract.contractId)\r\n }\r\n\r\n async getWalletAvailable() {\r\n return await this.stakeTokenContract.ft_balance_of(this.wallet.getAccountId())\r\n }\r\n}","import { NO_CONTRACT_DEPOSIT_NEAR } from \"../config\";\r\nimport { ContractParams } from \"../contracts/contract-structs\";\r\nimport { getNearMetadata } from \"../contracts/nearHardcodedObjects\";\r\nimport { FungibleTokenMetadata, NEP141Trait } from \"../contracts/NEP141\";\r\nimport { StakingPoolNFT } from \"../contracts/nft-staking\";\r\nimport { NFTStakingContractParams } from \"../contracts/nft-structures\";\r\nimport { StakingPoolP1 } from \"../contracts/p2-staking\";\r\nimport { StakingPoolP3 } from \"../contracts/p3-staking\";\r\nimport { P3ContractParams, PoolUserStatusP3 as UserStatusP3 } from \"../contracts/p3-structures\";\r\nimport { disconnectedWallet } from \"../wallet-api/disconnected-wallet\";\r\nimport { U128String } from \"../wallet-api/util\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { UserStatusP2 } from \"./poolParams\";\r\n\r\nexport async function getTokenContractList(wallet:WalletInterface, contractNameArray: string[]): Promise {\r\n let tokenContractList = []\r\n for(let i = 0; i < contractNameArray.length; i++) {\r\n const tokenContractName = contractNameArray[i]\r\n tokenContractList.push(new TokenContractData(wallet, tokenContractName, \"\"))\r\n }\r\n return tokenContractList\r\n}\r\n\r\nexport class StakingContractDataP3 {\r\n // Contract to which one staked and unstakes\r\n contract: StakingPoolP3\r\n // Staking contract parameters\r\n // @ts-ignore\r\n private contractParamsPromise: Promise\r\n // User parameters of staking contract\r\n // @ts-ignore\r\n private userStatusPromise: Promise\r\n // List of tokens accepted by staking contract \r\n private stakeTokenContractListPromise: Promise\r\n private contractParams: P3ContractParams | undefined\r\n private userStatus: UserStatusP3 | undefined\r\n private stakeTokenContractList: TokenContractData[] = [];\r\n private farmTokenContractList: TokenContractData[] = [];\r\n\r\n constructor(wallet: WalletInterface, contractId: string) {\r\n this.contract = new StakingPoolP3(contractId)\r\n this.contract.wallet = wallet\r\n this.refreshData()\r\n this.stakeTokenContractListPromise = this.getStakeTokenContractListPromise()\r\n }\r\n\r\n refreshData() {\r\n this.contractParamsPromise = this.contract.get_contract_params()\r\n if(this.contract.wallet.isConnected()) {\r\n this.userStatusPromise = this.contract.status()\r\n }\r\n this.contractParams = undefined\r\n this.userStatus = undefined\r\n }\r\n\r\n async getContractParams(): Promise {\r\n if(this.contractParams === undefined) {\r\n this.contractParams = await this.contractParamsPromise\r\n }\r\n return this.contractParams\r\n }\r\n\r\n getContractParamsNotAsync(): P3ContractParams {\r\n return this.contractParams!\r\n }\r\n\r\n async getUserStatus(): Promise {\r\n if(this.userStatus === undefined) {\r\n this.userStatus = await this.userStatusPromise\r\n if(this.userStatus == null) { // When user is not registered, user status is null\r\n const contractParams = await this.getContractParams()\r\n this.userStatus = new UserStatusP3(contractParams.stake_tokens.length, contractParams.farm_tokens.length)\r\n }\r\n }\r\n return this.userStatus\r\n }\r\n\r\n private async getStakeTokenContractListPromise(): Promise {\r\n const contractParams = await this.getContractParams();\r\n return getTokenContractList(this.contract.wallet, contractParams.stake_tokens)\r\n }\r\n\r\n async getStakeTokenContractList(): Promise {\r\n if(this.stakeTokenContractList.length == 0) {\r\n this.stakeTokenContractList = await this.stakeTokenContractListPromise as TokenContractData[]\r\n // const contractParams = await this.getContractParams();\r\n // this.stakeTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.stake_tokens)\r\n }\r\n return this.stakeTokenContractList\r\n }\r\n\r\n async getFarmTokenContractList(): Promise {\r\n if(this.farmTokenContractList.length == 0) {\r\n const contractParams = await this.getContractParams();\r\n this.farmTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.farm_tokens)\r\n }\r\n return this.farmTokenContractList\r\n }\r\n}\r\n\r\nexport class StakingContractDataP2 {\r\n contract: StakingPoolP1\r\n // @ts-ignore\r\n private contractParamsPromise: Promise\r\n // @ts-ignore\r\n private userStatusPromise: Promise<[U128String, U128String, U128String]>\r\n private contractParams: ContractParams | undefined\r\n private userStatus: UserStatusP2 | undefined\r\n private stakeTokenContractList: TokenContractData[]\r\n\r\n constructor(wallet: WalletInterface, contractId: string, stakeTokenContractId: string, poolName: string) {\r\n this.contract = new StakingPoolP1(contractId)\r\n this.contract.wallet = wallet\r\n this.refreshData()\r\n\r\n this.stakeTokenContractList = [new TokenContractData(wallet, stakeTokenContractId, poolName)]\r\n }\r\n\r\n \r\n\r\n refreshData() {\r\n this.contractParamsPromise = this.contract.get_contract_params()\r\n this.userStatusPromise = this.contract.status()\r\n this.contractParams = undefined\r\n this.userStatus = undefined\r\n }\r\n\r\n async getContractParams(): Promise {\r\n if(this.contractParams === undefined) {\r\n this.contractParams = await this.contractParamsPromise\r\n }\r\n if(this.contractParams.total_staked === undefined) {\r\n // p1 contracts have the parameter total_stake, while p2 contracts have total_staked. So this is a patch for avoiding changing code\r\n this.contractParams.total_staked = this.contractParams.total_stake\r\n this.contractParams.farming_rate = this.contractParams.rewards_per_day\r\n this.contractParams.total_farmed = this.contractParams.total_rewards\r\n }\r\n return this.contractParams\r\n }\r\n\r\n getContractParamsNotAsync(): ContractParams {\r\n return this.contractParams!\r\n }\r\n\r\n async getUserStatus(): Promise {\r\n if(this.contract.wallet == disconnectedWallet) {\r\n this.userStatus = new UserStatusP2()\r\n } else if(this.userStatus === undefined) {\r\n const userStatus = await this.userStatusPromise\r\n this.userStatus = new UserStatusP2(userStatus)\r\n }\r\n return this.userStatus\r\n }\r\n\r\n // This method is async so it matches with P3, since in that case, the stake tokens come from contract\r\n async getStakeTokenContractList(): Promise {\r\n return this.stakeTokenContractList\r\n }\r\n}\r\n\r\nexport class TokenContractData {\r\n contract: NEP141Trait | undefined\r\n wallet: WalletInterface\r\n private metaDataPromise: Promise | undefined\r\n private balancePromise: Promise | undefined\r\n private metaData: FungibleTokenMetadata | undefined\r\n private balance: U128String | undefined\r\n\r\n constructor(wallet: WalletInterface, contractId: string, poolName: string = \"\") {\r\n this.wallet = wallet\r\n if(contractId !== NO_CONTRACT_DEPOSIT_NEAR) {\r\n this.contract = new NEP141Trait(contractId)\r\n this.contract.wallet = wallet\r\n\r\n this.metaDataPromise = this.contract.ft_metadata()\r\n // TODO Dani check if user is logged\r\n if(wallet.isConnected()) this.balancePromise = this.contract.ft_balance_of(wallet.getAccountId())\r\n } else {\r\n this.metaData = getNearMetadata(poolName)\r\n this.balancePromise = wallet.getAccountBalance()\r\n }\r\n }\r\n\r\n async getMetadata(): Promise {\r\n if(!this.metaData) {\r\n this.metaData = await this.metaDataPromise\r\n if(this.metaData!.symbol.includes(\"$\")) { // Meta symbol is $META, and this is bad for html selectors\r\n this.metaData!.symbolForHtml = this.metaData!.symbol.replace(\"$\", \"\")\r\n } else {\r\n this.metaData!.symbolForHtml = this.metaData!.symbol\r\n }\r\n }\r\n return this.metaData!\r\n }\r\n\r\n getMetadataSync(): FungibleTokenMetadata {\r\n return this.metaData!\r\n }\r\n\r\n async getBalance(): Promise {\r\n if(this.contract?.wallet == disconnectedWallet) {\r\n this.balance = \"0\"\r\n } else if(!this.balance) {\r\n this.balance = await this.balancePromise\r\n }\r\n return this.balance!\r\n }\r\n\r\n getBalanceSync(): U128String {\r\n // If you get an undefined error, then you either need to use await getBalance() or await Promise.all(list.map(elem => elem.getBalance()))\r\n return this.balance!\r\n }\r\n\r\n refreshData() {\r\n this.balance = undefined\r\n if(this.contract) {\r\n this.balancePromise = this.contract.ft_balance_of(this.wallet.getAccountId())\r\n } else {\r\n this.balancePromise = this.wallet.getAccountBalance()\r\n }\r\n }\r\n}","export function getNearMetadata(symbol: string) {\r\n return {\r\n spec: \"\",\r\n name: \"Near\",\r\n symbol,\r\n symbolForHtml: symbol,\r\n icon: ``,\r\n reference: \"\",\r\n reference_hash: \"\",\r\n decimals: 24,\r\n }\r\n}","//----------------------------------\r\n// stnear Token smart-contract proxy for\r\n// https://github.com/Narwallets/meta-pool\r\n//----------------------------------\r\n\r\nimport { ntoy, TGas } from \"../util/conversions\"\r\nimport { SmartContract } from \"../wallet-api/base-smart-contract\"\r\n\r\nimport { ContractParams, StorageBalance } from \"./contract-structs\"\r\nimport { U128String } from \"../wallet-api/util\"\r\nimport { Action } from \"near-api-js/lib/transaction\"\r\nimport { transactions } from \"near-api-js\"\r\nimport { BN } from \"bn.js\"\r\nimport { disconnectedWallet } from \"../wallet-api/disconnected-wallet\"\r\n\r\ntype AccountId = string;\r\n\r\n\r\n\r\n//singleton class\r\nexport class StakingPoolP1 extends SmartContract {\r\n\r\n /// Returns contract params\r\n get_contract_params(): Promise {\r\n return this.viewWithoutAccount(\"get_contract_params\", {})\r\n }\r\n\r\n /// Returns amount of staked NEAR and farmed CHEDDAR of given account.\r\n status(accountId?: AccountId): Promise<[U128String, U128String, U128String]> {\r\n if(this.wallet === disconnectedWallet) {\r\n return Promise.resolve([\"-\", \"-\", \"-\"])\r\n }\r\n return this.viewWithoutAccount(\"status\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Checks to see if an account is registered.\r\n storageBalance(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"storage_balance_of\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Registers a user with the farm.\r\n storageDeposit(): Promise<[U128String, U128String]> {\r\n return this.call(\"storage_deposit\", {}, TGas(25), \"60000000000000000000000\")\r\n }\r\n\r\n /// Registers a user with the farm.\r\n async storageDepositWithoutSend():Promise{\r\n return transactions.functionCall(\r\n \"storage_deposit\", \r\n {}, \r\n new BN(\"200000000000000\"), \r\n new BN(\"60000000000000000000000\")\r\n )\r\n }\r\n\r\n /// Stake attached &NEAR and returns total amount of stake.\r\n stake(amount: number): Promise {\r\n return this.call(\"stake\", {}, TGas(25), amount.toString())\r\n }\r\n\r\n /// Unstakes given amount of $NEAR and transfers it back to the user.\r\n /// Returns amount of staked tokens left after the call.\r\n /// Panics if the caller doesn't stake anything or if he doesn't have enough staked tokens.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n unstake(amount: string): Promise {\r\n return this.call(\"unstake\", { amount: amount }, TGas(125), \"1\")\r\n }\r\n\r\n // unstake(token: string, amount: string): Promise {\r\n // return this.call(\"unstake\", { token: token, amount: amount }, TGas(125), \"1\")\r\n // }\r\n\r\n /// Unstakes everything and close the account. Sends all farmed CHEDDAR using a ft_transfer\r\n /// and all NEAR to the caller.\r\n /// Returns amount of farmed CHEDDAR.\r\n /// Panics if the caller doesn't stake anything.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n close(): Promise {\r\n return this.call(\"close\", {}, TGas(75), \"1\")\r\n }\r\n\r\n withdraw_crop(): Promise {\r\n return this.call(\"withdraw_crop\", {}, TGas(125))\r\n }\r\n\r\n}\r\n\r\n","//----------------------------------\r\n// stnear Token smart-contract proxy for\r\n// https://github.com/Narwallets/meta-pool\r\n//----------------------------------\r\n\r\nimport { ntoy, TGas } from \"../util/conversions\"\r\nimport { SmartContract } from \"../wallet-api/base-smart-contract\"\r\n\r\nimport { P3ContractParams, PoolUserStatusP3 as PoolUserStatusP3, TransferTokenData } from \"./p3-structures\"\r\nimport { U128String } from \"../wallet-api/util\"\r\n\r\nimport * as nearAPI from \"near-api-js\"\r\nimport { BN } from \"bn.js\"\r\nimport { baseDecode } from \"borsh\"\r\nimport { near } from \"..\"\r\nimport { Action } from \"near-api-js/lib/transaction\"\r\nimport { StorageBalance } from \"./contract-structs\"\r\nimport { transactions } from \"near-api-js\"\r\nimport { disconnectedWallet } from \"../wallet-api/disconnected-wallet\"\r\n\r\ntype AccountId = string;\r\n\r\n//singleton class\r\nexport class StakingPoolP3 extends SmartContract {\r\n\r\n /// Returns contract params\r\n get_contract_params(): Promise {\r\n return this.viewWithoutAccount(\"get_contract_params\")\r\n }\r\n\r\n /// Returns amount of staked NEAR and farmed CHEDDAR of given account.\r\n status(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"status\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Checks to see if an account is registered.\r\n storageBalance(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"storage_balance_of\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Registers a user with the farm.\r\n storageDeposit(): Promise<[U128String, U128String]> {\r\n return this.call(\"storage_deposit\", {}, TGas(25), \"60000000000000000000000\")\r\n }\r\n\r\n /// Registers a user with the farm.\r\n async storageDepositWithoutSend():Promise{\r\n return transactions.functionCall(\r\n \"storage_deposit\", \r\n {}, \r\n new BN(\"200000000000000\"), \r\n new BN(\"60000000000000000000000\")\r\n )\r\n }\r\n\r\n /// Stake attached &NEAR and returns total amount of stake.\r\n ft_transfer_call(amount: U128String): Promise {\r\n return this.call(\"ft_transfer_call\", {}, TGas(25), amount)\r\n }\r\n\r\n withdraw_nft(receiver_id:string):Promise{\r\n return this.call(\"withdraw_nft\",{receiver_id:receiver_id},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n /// Unstakes given amount of $NEAR and transfers it back to the user.\r\n /// Returns amount of staked tokens left after the call.\r\n /// Panics if the caller doesn't stake anything or if he doesn't have enough staked tokens.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n unstake(token: string, amount: string): Promise {\r\n return this.call(\"unstake\", { token: token, amount: amount }, TGas(125), \"1\")\r\n }\r\n\r\n /// Unstakes everything and close the account. Sends all farmed CHEDDAR using a ft_transfer\r\n /// and all NEAR to the caller.\r\n /// Returns amount of farmed CHEDDAR.\r\n /// Panics if the caller doesn't stake anything.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n close(): Promise {\r\n return this.call(\"close\", {}, TGas(75), \"1\")\r\n }\r\n\r\n withdraw_crop(): Promise {\r\n return this.call(\"withdraw_crop\", {}, TGas(125))\r\n }\r\n\r\n}\r\n\r\n","import { ntoy } from \"../util/conversions\";\r\n\r\ntype U128String = string;\r\n\r\n\r\n//JSON compatible struct returned from get_contract_state\r\nexport class P3ContractParams {\r\n\r\n constructor() {\r\n // this.rewards_per_day = this.farming_rate * 60n * 24n\r\n }\r\n\r\n owner_id: string = \"\";\r\n stake_tokens: string[] = [];\r\n stake_rates: U128String[] = [];\r\n farm_unit_emission: U128String = \"\";\r\n farm_tokens: string[] = [];\r\n farm_token_rates: U128String[] = [];\r\n is_active: boolean = false;\r\n farming_start: number = 0;\r\n farming_end: number = 0;\r\n total_staked: U128String[] = [];\r\n total_farmed: U128String[] = [];\r\n fee_rate: number = 0;\r\n accounts_registered: number = 0;\r\n\r\n}\r\n\r\nexport class PoolUserStatusP3 {\r\n // Amount of each token staked by user\r\n stake_tokens: U128String[] = [];\r\n stake: U128String = \"\";\r\n farmed_units: U128String = \"\";\r\n // Amount of each token in farm, waiting to be harvested\r\n farmed_tokens: U128String[] = [];\r\n cheddy_nft: string = \"\";\r\n timestamp: number = 0;\r\n\r\n // This constructor should only be used when user is not registered, hence userStatus is null\r\n constructor(stakeTokensLength: number = 0, farmTokensLength: number = 0) {\r\n this.stake_tokens = new Array(stakeTokensLength).fill(\"0\")\r\n this.farmed_tokens = new Array(farmTokensLength).fill(\"0\")\r\n }\r\n}\r\n\r\nexport class PoolUserStatusP3NFT {\r\n // Amount of each token staked by user\r\n stake_tokens: string[][] = [];\r\n stake: U128String = \"\";\r\n farmed_units: U128String = \"\";\r\n // Amount of each token in farm, waiting to be harvested\r\n farmed_tokens: U128String[] = [];\r\n boost_nfts: string = \"\"\r\n timestamp: number = 0;\r\n\r\n // This constructor should only be used when user is not registered, hence userStatus is null\r\n constructor(stakeTokensLength: number = 0, farmTokensLength: number = 0) {\r\n this.stake_tokens = new Array(stakeTokensLength).fill([])\r\n this.farmed_tokens = new Array(farmTokensLength).fill(\"0\")\r\n }\r\n}\r\n\r\n\r\n\r\nexport class TokenParams {\r\n decimals: string = \"24\";\r\n icon: string = \"\";\r\n name: string = \"\";\r\n reference: string = \"\";\r\n reference_hash: string = \"\";\r\n spec: string = \"\";\r\n symbol: string = \"\";\r\n}\r\n\r\nexport class TransferTokenData {\r\n contractName: string;\r\n amount: bigint;\r\n\r\n constructor(contractName: string, amount: bigint) {\r\n this.contractName = contractName\r\n this.amount = amount\r\n }\r\n}","import { BN } from \"bn.js\";\r\nimport { NFTStakeUnstakeData } from \"..\";\r\nimport { FarmData } from \"../config\";\r\nimport { callMulipleTransactions } from \"../contracts/multipleCall\";\r\nimport { FungibleTokenMetadata } from \"../contracts/NEP141\";\r\nimport { NFTContract } from \"../contracts/NFTContract\";\r\nimport { PoolUserStatusP3NFT } from \"../contracts/p3-structures\";\r\nimport { convertToDecimals } from \"../util/conversions\";\r\nimport { U128String } from \"../wallet-api/util\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { DetailRow, RewardsTokenData, TokenIconData } from \"./genericData\";\r\nimport { TokenContractData } from \"./PoolEntities\";\r\nimport { NFTContractData, StakingContractDataNFT } from \"./PoolEntitiesNFT\";\r\nimport { HtmlPoolParams } from \"./poolParams\";\r\nimport {ConfettiButton} from '../util/animations/new-confetti-button';\r\n\r\nexport class PoolParamsNFT {\r\n wallet: WalletInterface\r\n type: string\r\n html: HtmlPoolParams;\r\n config: { [key: string]: any }\r\n\r\n poolDescription: string[]|undefined;\r\n descriptionLink: string[]|undefined;\r\n\r\n stakingContractData: StakingContractDataNFT\r\n // stakeTokenContractList: TokenContractData[] = [];\r\n // stakeNFTContractList: NFTContractData[] = [];\r\n farmTokenContractList: TokenContractData[] = [];\r\n\r\n nftContractForBoosting: NFTContract\r\n confettiButton?: ConfettiButton\r\n\r\n constructor(wallet: WalletInterface, farmData: FarmData, nftContract: string, nftBaseUrlForBoosting: string) {\r\n this.wallet = wallet\r\n this.type = farmData.poolType;\r\n\r\n this.poolDescription = farmData.description;\r\n this.descriptionLink = farmData.descriptionLink;\r\n this.config = farmData.config ? farmData.config : []\r\n\r\n this.html = new HtmlPoolParams(farmData.poolName);\r\n this.stakingContractData = new StakingContractDataNFT(wallet, farmData.contractName, farmData.nftBaseUrl!)\r\n\r\n // console.log(\"DContract\", nftContract)\r\n this.nftContractForBoosting = new NFTContract(nftContract, nftBaseUrlForBoosting)\r\n this.nftContractForBoosting.wallet = this.wallet\r\n }\r\n\r\n async userHasStakedTokens() {\r\n const poolUserStatus: PoolUserStatusP3NFT = await this.stakingContractData.getUserStatus()\r\n let hasStakedTokens = false\r\n for(let i = 0; i < poolUserStatus.stake_tokens.length; i++) {\r\n hasStakedTokens ||= poolUserStatus.stake_tokens[i].some(token => token.length > 0)\r\n }\r\n return hasStakedTokens\r\n }\r\n\r\n async getPoolName() {\r\n return this.html.formId\r\n }\r\n\r\n \r\n\r\n async setAllExtraData() {\r\n }\r\n\r\n async refreshAllExtraData() {\r\n }\r\n\r\n async withdrawBoost(): Promise {\r\n const poolUserStatus: PoolUserStatusP3NFT = await this.stakingContractData.getUserStatus()\r\n const tokenId: string = poolUserStatus.boost_nfts.split(\"@\")[1]\r\n return this.stakingContractData.contract.unstake(this.nftContractForBoosting.contractId, tokenId)\r\n }\r\n\r\n async transferCheddar() {\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const cheddarContract = (await this.stakingContractData.getStakeTokenContractList())[0].contract!\r\n const amount = contractParams.cheddar_rate\r\n const promise = cheddarContract.ft_transfer_call_without_send(\r\n this.stakingContractData.contract.contractId,\r\n amount,\r\n \"cheddar stake\" // required like this from staking contract\r\n )\r\n\r\n const promiseWithContract = {\r\n promise,\r\n contractName: cheddarContract.contractId\r\n }\r\n\r\n return promiseWithContract\r\n }\r\n\r\n transferNFT(stakeNFTContract: NFTContractData, contractId: string, tokenId: string) {\r\n const promise = stakeNFTContract.contract.nft_transfer_call_without_send(\r\n this.stakingContractData.contract.contractId,\r\n tokenId\r\n )\r\n\r\n const promiseWithContract = {\r\n promise,\r\n contractName: contractId\r\n }\r\n return promiseWithContract\r\n\r\n }\r\n\r\n async stakeUnstakeNFTs(stakeUnstakeNFTsMap: Map) {\r\n let TXs = []\r\n for(let [contractId, stakeUnstakeNFTs] of stakeUnstakeNFTsMap) {\r\n const stakeNFTContractList: NFTContractData[] = await this.stakingContractData.getStakeNFTContractList()\r\n // FIX This implementation is taking into consideration only one stake NFT by pool, but it should be done to consider many\r\n const stakeNFTContract: NFTContractData = stakeNFTContractList.find(a => a.contract.contractId == contractId)!\r\n\r\n for(let i = 0; i < stakeUnstakeNFTs.nftsToStake.length; i++) {\r\n TXs.push(await this.transferCheddar())\r\n\r\n const tokenId = stakeUnstakeNFTs.nftsToStake[i]\r\n\r\n TXs.push(this.transferNFT(stakeNFTContract, contractId, tokenId))\r\n }\r\n\r\n for(let i = 0; i < stakeUnstakeNFTs.nftsToUnstake.length; i++) {\r\n const tokenId = stakeUnstakeNFTs.nftsToUnstake[i]\r\n const promise = this.stakingContractData.contract.unstake_without_send(\r\n contractId,\r\n tokenId\r\n )\r\n\r\n const promiseWithContract = {\r\n promise,\r\n contractName: this.stakingContractData.contract.contractId\r\n }\r\n\r\n TXs.push(promiseWithContract)\r\n }\r\n }\r\n if(TXs.length > 0) await callMulipleTransactions(TXs, this.stakingContractData.contract) \r\n\r\n }\r\n\r\n async getStakeTokensDetail(): Promise{\r\n let dataArray: DetailRow[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const stakeTokenContract = stakeTokenContractList[i]\r\n const iconData = await this.getIcon(stakeTokenContract)\r\n const stakeTokenMetadata = await stakeTokenContract.getMetadata()\r\n const totalStaked = convertToDecimals(contractParams.total_staked[i], stakeTokenMetadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n content: totalStaked\r\n })\r\n }\r\n return dataArray\r\n }\r\n\r\n async getRewardsTokenDetail(): Promise {\r\n let dataArray: RewardsTokenData[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const poolUserStatus = await this.stakingContractData.getUserStatus()\r\n const farmTokenContractList = await this.stakingContractData.getFarmTokenContractList()\r\n\r\n for(let i = 0; i < farmTokenContractList.length; i++) {\r\n const farmTokenContract = farmTokenContractList[i]\r\n const iconData = await this.getIcon(farmTokenContract)\r\n const farmTokenMetadata: FungibleTokenMetadata = await farmTokenContract.getMetadata()\r\n const tokenName = farmTokenMetadata.name\r\n // const rewardsPerDayBN = BigInt(contractParams.farm_token_rates[i]) * 60n * 24n\r\n const rewardsPerDayBN = BigInt(contractParams.farm_unit_emission) * BigInt(contractParams.farm_token_rates[i]) * 60n * 24n / (BigInt(10) ** BigInt(24))\r\n const rewardsPerDay = convertToDecimals(rewardsPerDayBN, farmTokenMetadata.decimals, 5)\r\n const totalRewards = convertToDecimals(contractParams.total_farmed[i], farmTokenMetadata.decimals, 5)\r\n const userUnclaimedRewards = convertToDecimals(poolUserStatus.farmed_tokens[i], farmTokenMetadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n tokenName,\r\n rewardsPerDayBN,\r\n rewardsPerDay,\r\n totalRewards,\r\n userUnclaimedRewards,\r\n })\r\n }\r\n return dataArray\r\n }\r\n\r\n async getIcon(contractData: TokenContractData): Promise{\r\n const metadata = await contractData.getMetadata()\r\n const src = metadata.icon ? metadata.icon : metadata.name\r\n return {\r\n isSvg: src.includes(\" {\r\n let dataArray: TokenIconData[] = []\r\n const farmTokenContractList = await this.stakingContractData.getFarmTokenContractList()\r\n for(let i = 0; i < farmTokenContractList.length; i++) {\r\n const farmTokenContract = farmTokenContractList[i]\r\n const farmTokenMetadata = await farmTokenContract.getMetadata()\r\n const src = farmTokenMetadata.icon ? farmTokenMetadata.icon : farmTokenMetadata.name\r\n const data = {\r\n isSvg: src.includes(\" {\r\n let walletAvailable: U128String[] = []\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const contractData = stakeTokenContractList[i]\r\n const balance = await contractData.getBalance()\r\n walletAvailable.push(balance)\r\n }\r\n return walletAvailable\r\n }\r\n}","import { transactions, utils, WalletConnection } from \"near-api-js\"\r\nimport { TransactionData } from \"./contract-structs\"\r\nimport { baseDecode } from \"borsh\"\r\nimport { near } from \"..\"\r\nimport { SmartContract } from \"../wallet-api/base-smart-contract\"\r\n\r\nexport async function callMulipleTransactions(txPromiseArray: TransactionData[], contract: SmartContract): Promise {\r\n let promises = []\r\n for(let i = 0; i < txPromiseArray.length; i++) {\r\n promises.push(txPromiseArray[i].promise)\r\n }\r\n const resultPromises = await Promise.all(promises)\r\n let transactions: transactions.Transaction[] = []\r\n for(let i = 0; i < resultPromises.length; i++) {\r\n transactions.push(\r\n await makeTransaction(\r\n txPromiseArray[i].contractName,\r\n [resultPromises[i]],\r\n contract\r\n )\r\n )\r\n }\r\n \r\n await contract.nearWallet.requestSignTransactions(\r\n transactions,\r\n window.location.href\r\n )\r\n}\r\n\r\nasync function makeTransaction(\r\n receiverId: string,\r\n actions: transactions.Action[],\r\n contract: SmartContract,\r\n nonceOffset = 1,\r\n): Promise {\r\n const [accessKey, block] = await Promise.all([\r\n contract.account.accessKeyForTransaction(receiverId, actions),\r\n near.connection.provider.block({ finality: \"final\" })\r\n ])\r\n\r\n if (!accessKey) {\r\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`)\r\n }\r\n\r\n const blockHash = baseDecode(block.header.hash)\r\n\r\n const publicKey = utils.PublicKey.from(accessKey.public_key)\r\n const nonce = accessKey.access_key.nonce + nonceOffset\r\n\r\n return transactions.createTransaction(\r\n contract.wallet.getAccountId(),\r\n publicKey,\r\n receiverId,\r\n nonce,\r\n actions,\r\n blockHash\r\n )\r\n}","//JSON compatible struct ft_metadata\r\nimport {SmartContract} from \"../wallet-api/base-smart-contract\"\r\nimport * as nearAPI from \"near-api-js\"\r\n\r\nimport {ntoy, TGas} from \"../util/conversions\"\r\nimport { NFT, NFTMetadata, NFTWithMetadata } from \"./nft-structs\";\r\nimport { BN } from \"bn.js\";\r\n\r\ntype U128String = string;\r\ntype U64String = string;\r\n\r\n// export const nftBaseUrl = \"https://nftstorage.link/ipfs/bafybeicoln5rvccttgypzo26irjlskslnfynkzig6bowpsj6ay45geeice/\"\r\n\r\nexport class NFTContract extends SmartContract {\r\n \r\n constructor( \r\n public contractId:string,\r\n public baseUrl: string\r\n )\r\n {\r\n super(contractId)\r\n }\r\n\r\n async nft_transfer_call(receiver_id:string, token_id:U128String):Promise{\r\n return this.call(\"nft_transfer_call\",{receiver_id:receiver_id, token_id:token_id, msg:\"to boost\"},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n async nft_transfer_call_without_send(receiver_id:string, token_id:string):Promise{\r\n return nearAPI.transactions.functionCall(\r\n \"nft_transfer_call\", \r\n {\r\n receiver_id,\r\n token_id,\r\n msg: \"to farm\" \r\n },\r\n new BN(TGas(80)),\r\n new BN(1)\r\n )\r\n }\r\n\r\n async nft_tokens_for_owner(accountId:string) : Promise {\r\n return this.view(\"nft_tokens_for_owner\", {account_id: accountId, from_index: \"0\", \"limit\": 9999})\r\n }\r\n\r\n async nft_metadata(): Promise {\r\n return this.viewWithoutAccount(\"nft_metadata\")\r\n }\r\n\r\n async nft_token(tokenId: string): Promise {\r\n return this.viewWithoutAccount(\"nft_token\", {token_id: tokenId})\r\n }\r\n\r\n\r\n // async ft_balance_of(accountId:string) : Promise {\r\n // return this.view(\"ft_balance_of\",{account_id:accountId }) \r\n // }\r\n\r\n}","import { NFT, NFTMetadata } from '../contracts/nft-structs';\r\nimport { NFTContract } from '../contracts/NFTContract';\r\nimport {WalletInterface} from '../wallet-api/wallet-interface';\r\nimport {getTokenContractList, TokenContractData} from './PoolEntities';\r\nimport {StakingPoolNFT} from '../contracts/nft-staking';\r\nimport {NFTStakingContractParams} from '../contracts/nft-structures';\r\nimport {P3ContractParams, PoolUserStatusP3, PoolUserStatusP3NFT} from '../contracts/p3-structures';\r\n\r\n\r\nasync function getNFTContractList(wallet:WalletInterface, contractNameArray: string[], nftBaseUrl: string[]): Promise {\r\n let NFTContractList = []\r\n for(let i = 0; i < contractNameArray.length; i++) {\r\n const NFTContractName = contractNameArray[i]\r\n NFTContractList.push(new NFTContractData(wallet, NFTContractName, nftBaseUrl[i], \"\"))\r\n }\r\n return NFTContractList\r\n}\r\n\r\n\r\nexport class StakingContractDataNFT {\r\n // Contract to which one staked and unstakes\r\n contract: StakingPoolNFT\r\n\r\n nftBaseUrl: string[]\r\n // Staking contract parameters\r\n // @ts-ignore\r\n private contractParamsPromise: Promise\r\n // User parameters of staking contract\r\n // @ts-ignore\r\n private userStatusPromise: Promise\r\n // List of tokens accepted by staking contract \r\n private stakeTokenContractListPromise: Promise\r\n private stakeNFTContractListPromise: Promise\r\n private contractParams: NFTStakingContractParams | undefined\r\n private userStatus: PoolUserStatusP3NFT | undefined\r\n private stakeTokenContractList: TokenContractData[] = [];\r\n private stakeNFTContractList: NFTContractData[] = [];\r\n private farmTokenContractList: TokenContractData[] = [];\r\n\r\n constructor(wallet: WalletInterface, contractId: string, nftBaseUrl: string[]) {\r\n this.contract = new StakingPoolNFT(contractId)\r\n this.contract.wallet = wallet\r\n this.nftBaseUrl = nftBaseUrl\r\n this.refreshData()\r\n this.stakeTokenContractListPromise = this.getStakeTokenContractListPromise()\r\n this.stakeNFTContractListPromise = this.getStakeNFTContractListPromise(nftBaseUrl)\r\n }\r\n\r\n refreshData() {\r\n this.contractParamsPromise = this.contract.get_contract_params()\r\n if(this.contract.wallet.isConnected()) {\r\n this.userStatusPromise = this.contract.status()\r\n }\r\n this.contractParams = undefined\r\n this.userStatus = undefined\r\n }\r\n\r\n async getContractParams(): Promise {\r\n if(this.contractParams === undefined) {\r\n this.contractParams = await this.contractParamsPromise\r\n }\r\n return this.contractParams\r\n }\r\n\r\n getContractParamsNotAsync(): P3ContractParams {\r\n return this.contractParams!\r\n }\r\n\r\n async getUserStatus(): Promise {\r\n if(this.userStatus === undefined) {\r\n this.userStatus = await this.userStatusPromise\r\n if(this.userStatus == null) { // When user is not registered, user status is null\r\n const contractParams = await this.getContractParams()\r\n this.userStatus = new PoolUserStatusP3NFT(contractParams.stake_tokens.length, contractParams.farm_tokens.length)\r\n }\r\n }\r\n return this.userStatus\r\n }\r\n\r\n private async getStakeTokenContractListPromise(): Promise {\r\n const contractParams = await this.getContractParams();\r\n // On NFT staking contract, cheddar is always the staked token, besides the NFT's\r\n return getTokenContractList(this.contract.wallet, [contractParams.cheddar])\r\n }\r\n\r\n private async getStakeNFTContractListPromise(nftBaseUrl: string[]): Promise {\r\n const contractParams = await this.getContractParams();\r\n // On NFT staking contract, cheddar is always the staked token, besides the NFT's\r\n return getNFTContractList(this.contract.wallet, contractParams.stake_tokens, nftBaseUrl)\r\n }\r\n\r\n async getStakeTokenContractList(): Promise {\r\n if(this.stakeTokenContractList.length == 0) {\r\n this.stakeTokenContractList = await this.stakeTokenContractListPromise as TokenContractData[]\r\n // const contractParams = await this.getContractParams();\r\n // this.stakeTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.stake_tokens)\r\n }\r\n return this.stakeTokenContractList\r\n }\r\n\r\n async getFarmTokenContractList(): Promise {\r\n if(this.farmTokenContractList.length == 0) {\r\n const contractParams = await this.getContractParams();\r\n this.farmTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.farm_tokens)\r\n }\r\n return this.farmTokenContractList\r\n } \r\n\r\n async getStakeNFTContractList(): Promise {\r\n if(this.stakeNFTContractList.length == 0) {\r\n this.stakeNFTContractList = await this.stakeNFTContractListPromise as NFTContractData[]\r\n // const contractParams = await this.getContractParams();\r\n // this.stakeTokenContractList = await getTokenContractList(this.contract.wallet, contractParams.stake_tokens)\r\n }\r\n return this.stakeNFTContractList\r\n }\r\n}\r\n\r\n\r\nexport class NFTContractData {\r\n contract: NFTContract\r\n wallet: WalletInterface\r\n private tokensForOwnerPromise: Promise | undefined\r\n // private balancePromise: Promise | undefined\r\n private tokensForOwner: NFT[] | undefined\r\n // private balance: U128String | undefined\r\n private metadata: Promise | undefined\r\n\r\n constructor(wallet: WalletInterface, contractId: string, nftBaseUrl: string, poolName: string = \"\") {\r\n this.wallet = wallet\r\n \r\n this.contract = new NFTContract(contractId, nftBaseUrl!)\r\n this.contract.wallet = wallet\r\n if(this.wallet.isConnected()) {\r\n this.tokensForOwnerPromise = this.contract.nft_tokens_for_owner(wallet.getAccountId())\r\n this.metadata = this.contract.nft_metadata()\r\n }\r\n // this.balancePromise = this.contract.ft_balance_of(wallet.getAccountId())\r\n \r\n }\r\n\r\n async getTokensForOwner(): Promise {\r\n if(!this.tokensForOwner) {\r\n this.tokensForOwner = await this.tokensForOwnerPromise \r\n }\r\n return this.tokensForOwner!\r\n }\r\n\r\n getTokensForOwnerSync(): NFT[] {\r\n return this.tokensForOwner!\r\n }\r\n\r\n refreshData() {\r\n this.tokensForOwner = undefined\r\n \r\n this.tokensForOwnerPromise = this.contract.nft_tokens_for_owner(this.wallet.getAccountId())\r\n }\r\n\r\n async getMetadata(): Promise {\r\n if(!this.metadata) {\r\n this.metadata = this.contract.nft_metadata()\r\n }\r\n return this.metadata\r\n }\r\n}","//----------------------------------\r\n// stnear Token smart-contract proxy for\r\n// https://github.com/Narwallets/meta-pool\r\n//----------------------------------\r\n\r\nimport { ntoy, TGas } from \"../util/conversions\"\r\nimport { SmartContract } from \"../wallet-api/base-smart-contract\"\r\n\r\nimport { P3ContractParams, PoolUserStatusP3 as PoolUserStatusP3, PoolUserStatusP3NFT, TransferTokenData } from \"./p3-structures\"\r\nimport { U128String } from \"../wallet-api/util\"\r\n\r\nimport * as nearAPI from \"near-api-js\"\r\nimport { BN } from \"bn.js\"\r\nimport { baseDecode } from \"borsh\"\r\nimport { near } from \"..\"\r\nimport { Action } from \"near-api-js/lib/transaction\"\r\nimport { StorageBalance } from \"./contract-structs\"\r\nimport { transactions } from \"near-api-js\"\r\nimport { disconnectedWallet } from \"../wallet-api/disconnected-wallet\"\r\nimport { NFTStakingContractParams } from \"./nft-structures\"\r\n\r\ntype AccountId = string;\r\n\r\n//singleton class\r\nexport class StakingPoolNFT extends SmartContract {\r\n\r\n /// Returns contract params\r\n get_contract_params(): Promise {\r\n return this.viewWithoutAccount(\"get_contract_params\")\r\n }\r\n\r\n /// Returns amount of staked NEAR and farmed CHEDDAR of given account.\r\n status(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"status\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Checks to see if an account is registered.\r\n storageBalance(accountId?: AccountId): Promise {\r\n return this.viewWithoutAccount(\"storage_balance_of\", { account_id: accountId || this.wallet.getAccountId() })\r\n }\r\n\r\n /// Registers a user with the farm.\r\n storageDeposit(): Promise<[U128String, U128String]> {\r\n return this.call(\"storage_deposit\", {}, TGas(25), \"60000000000000000000000\")\r\n }\r\n\r\n /// Registers a user with the farm.\r\n async storageDepositWithoutSend():Promise{\r\n return transactions.functionCall(\r\n \"storage_deposit\", \r\n {}, \r\n new BN(\"200000000000000\"), \r\n new BN(\"60000000000000000000000\")\r\n )\r\n }\r\n\r\n /// Stake attached &NEAR and returns total amount of stake.\r\n ft_transfer_call(amount: U128String): Promise {\r\n return this.call(\"ft_transfer_call\", {}, TGas(25), amount)\r\n }\r\n\r\n withdraw_nft(receiver_id:string):Promise{\r\n return this.call(\"withdraw_nft\",{receiver_id:receiver_id},TGas(200),\"1\"); //one-yocto attached\r\n }\r\n\r\n async unstake_without_send(nft_contract_id:string, token_id: string):Promise{\r\n return nearAPI.transactions.functionCall(\r\n \"unstake\", \r\n {\r\n nft_contract_id,\r\n token_id\r\n },\r\n new BN(TGas(200)),\r\n new BN(1)\r\n )\r\n }\r\n\r\n /// Unstakes given amount of $NEAR and transfers it back to the user.\r\n /// Returns amount of staked tokens left after the call.\r\n /// Panics if the caller doesn't stake anything or if he doesn't have enough staked tokens.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n unstake(nft_contract_id: string, token_id: string): Promise {\r\n return this.call(\"withdraw_boost_nft\", { /*nft_contract_id, token_id*/ }, TGas(125), \"1\")\r\n }\r\n\r\n /// Unstakes everything and close the account. Sends all farmed CHEDDAR using a ft_transfer\r\n /// and all NEAR to the caller.\r\n /// Returns amount of farmed CHEDDAR.\r\n /// Panics if the caller doesn't stake anything.\r\n /// Requires 1 yNEAR payment for wallet validation.\r\n close(): Promise {\r\n return this.call(\"close\", {}, TGas(75), \"1\")\r\n }\r\n\r\n withdraw_crop(): Promise {\r\n return this.call(\"withdraw_crop\", {}, TGas(125))\r\n }\r\n\r\n}\r\n\r\n","import { FarmData } from \"../config\";\r\nimport { callMulipleTransactions } from \"../contracts/multipleCall\";\r\nimport { FungibleTokenMetadata, NEP141Trait } from \"../contracts/NEP141\";\r\nimport { NFTContract } from \"../contracts/NFTContract\";\r\nimport { convertToDecimals } from \"../util/conversions\";\r\nimport { U128String } from \"../wallet-api/util\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { DetailRow, RewardsTokenData, TokenIconData } from \"./genericData\";\r\nimport { StakingContractDataP3, TokenContractData } from \"./PoolEntities\";\r\nimport {ConfettiButton} from '../util/animations/new-confetti-button';\r\n\r\n//JSON compatible struct returned from get_contract_state\r\nexport class HtmlPoolParams {\r\n id: string;\r\n formId: string;\r\n\r\n constructor(id: string) {\r\n this.id = id+\"-container\";\r\n this.formId = id;\r\n }\r\n}\r\n\r\nexport class PoolUserStatus {\r\n // All the numbers that are bigint are expected to be without any decimal points, and are converted when needed\r\n staked: U128String[] = [];\r\n farmedUnits: U128String = \"0\";\r\n farmed: U128String[] = [];\r\n // computed holds an integer number with no decimal places holding the info about the computed cheddar rewars calculated\r\n previous_timestamp: number = 0;\r\n tokenDecimals: Number = 0;\r\n accName: string = '';\r\n cheddy_nft: string = '';\r\n\r\n constructor(stakedTokensLength: number, farmedTokensLength: number) {\r\n this.staked = new Array(stakedTokensLength).fill(\"0\")\r\n this.farmed = new Array(farmedTokensLength).fill(\"0\")\r\n }\r\n\r\n \r\n\r\n getDisplayableAccountName() {\r\n return this.accName.length > 22 ? this.accName.slice(0, 10) + \"..\" + this.accName.slice(-10) : this.accName\r\n }\r\n\r\n addStaked(amountArray: bigint[]) {\r\n for (let i = 0; i < amountArray.length; i++){\r\n this.staked[i] = (BigInt(this.staked[i]) + amountArray[i]).toString()\r\n }\r\n }\r\n}\r\n\r\nexport class PoolParamsP3 {\r\n wallet: WalletInterface\r\n type: string\r\n html: HtmlPoolParams;\r\n config: { [key: string]: any }\r\n\r\n poolDescription: string[]|undefined;\r\n descriptionLink: string[]|undefined;\r\n\r\n stakingContractData: StakingContractDataP3\r\n stakeTokenContractList: TokenContractData[] = [];\r\n farmTokenContractList: TokenContractData[] = [];\r\n\r\n nftContractForBoosting: NFTContract\r\n confettiButton?: ConfettiButton\r\n\r\n constructor(wallet: WalletInterface, farmData: FarmData, nftContract: string, nftBaseUrl: string) {\r\n this.wallet = wallet\r\n this.type = farmData.poolType;\r\n this.config = farmData.config ? farmData.config : []\r\n \r\n this.poolDescription = farmData.description;\r\n this.descriptionLink = farmData.descriptionLink;\r\n\r\n this.html = new HtmlPoolParams(farmData.poolName);\r\n this.stakingContractData = new StakingContractDataP3(wallet, farmData.contractName)\r\n\r\n this.nftContractForBoosting = new NFTContract(nftContract, nftBaseUrl)\r\n this.nftContractForBoosting.wallet = this.wallet\r\n }\r\n\r\n async userHasStakedTokens() {\r\n const poolUserStatus = await this.stakingContractData.getUserStatus()\r\n let hasStakedTokens = false\r\n for(let i = 0; i < poolUserStatus.stake_tokens.length; i++) {\r\n hasStakedTokens ||= BigInt(poolUserStatus.stake_tokens[i]) > 0n\r\n }\r\n return hasStakedTokens\r\n }\r\n\r\n async getPoolName() {\r\n let tokenNames: string[] = []\r\n const stakeTokenContractList: TokenContractData[] = await this.stakingContractData.getStakeTokenContractList()\r\n // It was requested that cheddar goes last\r\n let hasCheddar = false\r\n let cheddarSymbol: string|undefined\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const tokenContractData = stakeTokenContractList[i]\r\n const tokenMetadata = await tokenContractData.getMetadata()\r\n const isCheddar = tokenMetadata.symbol.toUpperCase() == \"CHEDDAR\"\r\n hasCheddar = hasCheddar || isCheddar\r\n if(!isCheddar) {\r\n tokenNames.push(tokenMetadata.symbol)\r\n } else {\r\n cheddarSymbol = tokenMetadata.symbol\r\n }\r\n }\r\n if(hasCheddar) {\r\n tokenNames.push(cheddarSymbol!)\r\n }\r\n \r\n const names = tokenNames.join(\" + \")\r\n if(names.length > 20) {\r\n return names.substring(0, 7) + \"...\" + names.substring(names.length - 7)\r\n } else {\r\n return names\r\n }\r\n }\r\n\r\n \r\n\r\n async setAllExtraData() {\r\n }\r\n\r\n async refreshAllExtraData() {\r\n }\r\n\r\n async stake(amounts: bigint[]) {\r\n let TXs = []\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const stakeTokenContract = stakeTokenContractList[i].contract!\r\n if(amounts[i] != 0n) {\r\n const promise = stakeTokenContract.ft_transfer_call_without_send(\r\n this.stakingContractData.contract.contractId, \r\n amounts[i].toString()\r\n )\r\n const promiseWithContract = {\r\n promise,\r\n contractName: stakeTokenContract.contractId\r\n }\r\n\r\n TXs.push(promiseWithContract)\r\n }\r\n }\r\n await callMulipleTransactions(TXs, this.stakingContractData.contract) \r\n }\r\n\r\n async unstake(amounts: bigint[]) {\r\n let TXs = []\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n if(amounts[i] != 0n) {\r\n const stakeContract = stakeTokenContractList[i].contract!\r\n const promise = stakeContract.unstake_without_send(\r\n stakeContract.contractId, \r\n amounts[i].toString()\r\n )\r\n const promiseWithContract = {\r\n promise,\r\n contractName: this.stakingContractData.contract.contractId\r\n }\r\n\r\n TXs.push(promiseWithContract)\r\n }\r\n }\r\n await callMulipleTransactions(TXs, this.stakingContractData.contract) \r\n }\r\n\r\n async getStakeTokensDetail(): Promise{\r\n let dataArray: DetailRow[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const stakeTokenContract = stakeTokenContractList[i]\r\n const iconData = await this.getIcon(stakeTokenContract)\r\n const stakeTokenMetadata = await stakeTokenContract.getMetadata()\r\n const totalStaked = convertToDecimals(contractParams.total_staked[i], stakeTokenMetadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n content: totalStaked\r\n })\r\n }\r\n return dataArray\r\n }\r\n\r\n async getRewardsTokenDetail(): Promise {\r\n let dataArray: RewardsTokenData[] = []\r\n const contractParams = await this.stakingContractData.getContractParams()\r\n const poolUserStatus = await this.stakingContractData.getUserStatus()\r\n const farmTokenContractList = await this.stakingContractData.getFarmTokenContractList()\r\n\r\n for(let i = 0; i < farmTokenContractList.length; i++) {\r\n const farmTokenContract = farmTokenContractList[i]\r\n const iconData = await this.getIcon(farmTokenContract)\r\n const farmTokenMetadata: FungibleTokenMetadata = await farmTokenContract.getMetadata()\r\n const tokenName = farmTokenMetadata.name\r\n // const rewardsPerDayBN = BigInt(contractParams.farm_token_rates[i]) * 60n * 24n\r\n const rewardsPerDayBN = BigInt(contractParams.farm_unit_emission) * BigInt(contractParams.farm_token_rates[i]) * 60n * 24n / (BigInt(10) ** BigInt(24))\r\n const rewardsPerDay = convertToDecimals(rewardsPerDayBN, farmTokenMetadata.decimals, 5)\r\n const totalRewards = convertToDecimals(contractParams.total_farmed[i], farmTokenMetadata.decimals, 5)\r\n const userUnclaimedRewards = convertToDecimals(poolUserStatus.farmed_tokens[i], farmTokenMetadata.decimals, 5)\r\n\r\n dataArray.push({\r\n iconData,\r\n tokenName,\r\n rewardsPerDayBN,\r\n rewardsPerDay,\r\n totalRewards,\r\n userUnclaimedRewards,\r\n })\r\n }\r\n return dataArray\r\n }\r\n\r\n async getIcon(contractData: TokenContractData): Promise{\r\n const metadata = await contractData.getMetadata()\r\n const src = metadata.icon ? metadata.icon : metadata.name\r\n return {\r\n isSvg: src.includes(\" {\r\n let dataArray: TokenIconData[] = []\r\n const farmTokenContractList = await this.stakingContractData.getFarmTokenContractList()\r\n for(let i = 0; i < farmTokenContractList.length; i++) {\r\n const farmTokenContract = farmTokenContractList[i]\r\n const farmTokenMetadata = await farmTokenContract.getMetadata()\r\n const src = farmTokenMetadata.icon ? farmTokenMetadata.icon : farmTokenMetadata.name\r\n const data = {\r\n isSvg: src.includes(\" {\r\n let walletAvailable: U128String[] = []\r\n const stakeTokenContractList = await this.stakingContractData.getStakeTokenContractList()\r\n for(let i = 0; i < stakeTokenContractList.length; i++) {\r\n const contractData = stakeTokenContractList[i]\r\n const balance = await contractData.getBalance()\r\n walletAvailable.push(balance)\r\n }\r\n return walletAvailable\r\n }\r\n}","import { nearConfig } from \"..\";\r\nimport { NEP141Trait } from \"../contracts/NEP141\";\r\nimport { StakingPoolP1 } from \"../contracts/p2-staking\";\r\nimport { StakingPoolP3 } from \"../contracts/p3-staking\";\r\nimport { HtmlPoolParams, PoolParams, UserStatusP2 } from \"../entities/poolParams\";\r\nimport { WalletInterface } from \"../wallet-api/wallet-interface\";\r\nimport { PoolParamsNFT } from \"./poolParamsNFT\";\r\nimport { PoolParamsP3 } from \"./poolParamsP3\";\r\n\r\n\r\nlet poolList: Array;\r\n\r\nasync function generatePoolList(wallet: WalletInterface) {\r\n poolList = [];\r\n let size = nearConfig.farms.length\r\n for(let i = 0; i < size; i++) {\r\n const index = nearConfig.farms[i].index as number;\r\n const type = nearConfig.farms[i].poolType as string;\r\n const poolHtml = new HtmlPoolParams(nearConfig.farms[i].poolName);\r\n const cheddarContractName = new NEP141Trait(nearConfig.cheddarContractName);\r\n const tokenContractName = new NEP141Trait(nearConfig.farms[i].tokenContractName);\r\n let contract\r\n let poolParams\r\n if(nearConfig.farms[i].poolType == \"multiple\") {\r\n // contract = new StakingPoolP3(nearConfig.farms[i].contractName);\r\n // poolParams = new PoolParamsP3(index, type, poolHtml, contract, cheddarContractName, nearConfig.nftContractAddress, wallet);\r\n poolParams = new PoolParamsP3(wallet, nearConfig.farms[i], nearConfig.nftContractAddress, nearConfig.cheddarNFTBaseUrl)\r\n } else if(nearConfig.farms[i].poolType == \"single\"){\r\n contract = new StakingPoolP1(nearConfig.farms[i].contractName);\r\n poolParams = new PoolParams(wallet, nearConfig.farms[i], nearConfig.cheddarContractName);\r\n // poolParams = new PoolParams(index, type, poolHtml, contract, cheddarContractName, tokenContractName, new PoolResultParams(), wallet, nearConfig.farms[i].poolName);\r\n\r\n } else if(nearConfig.farms[i].poolType == \"nft\") {\r\n contract = new StakingPoolP1(nearConfig.farms[i].contractName);\r\n poolParams = new PoolParamsNFT(wallet, nearConfig.farms[i], nearConfig.cheddarNFTContractName, nearConfig.cheddarNFTBaseUrl);\r\n } else {\r\n continue\r\n }\r\n await poolParams.setAllExtraData();\r\n\r\n poolList.push(poolParams);\r\n }\r\n}\r\n\r\nexport async function getPoolList(wallet: WalletInterface): Promise<(PoolParams | PoolParamsP3 | PoolParamsNFT)[]> {\r\n if(!poolList || poolList.length == 0) {\r\n await generatePoolList(wallet);\r\n await Promise.all(\r\n poolList.map(async function(pool) {\r\n return await pool.stakingContractData.getContractParams()\r\n })\r\n )\r\n poolList = poolList.sort((a, b) => b.stakingContractData.getContractParamsNotAsync().farming_end - a.stakingContractData.getContractParamsNotAsync().farming_end)\r\n\r\n }\r\n return poolList;\r\n}\r\n\r\n","import { ENV } from \"../config\";\r\nimport { RefTokenData } from \"../entities/refResponse\";\r\n\r\nlet tokenDataArray: RefTokenData[]\r\nlet testTokensSymbols = [\"afi-tt\", \"gua\"]\r\n\r\nasync function setAllTokensData(): Promise {\r\n const url = \"https://api.stats.ref.finance/api/top-tokens\"\r\n const response = await fetch(url)\r\n const errorMessage = \"We are experiencing issues with the Ref Price Oracle, please try again in a bit.\"\r\n const json = await response.json()\r\n tokenDataArray = json\r\n}\r\n\r\nexport async function getTokenData(token: string, reloadData: boolean = false): Promise {\r\n if(!tokenDataArray || reloadData) await setAllTokensData()\r\n return getPriceWithData(token)\r\n}\r\n\r\nfunction getPriceWithData(tokenSymbol: string): RefTokenData {\r\n tokenSymbol = tokenSymbol.toLowerCase()\r\n //@ts-ignore\r\n if(ENV == \"testnet\" && testTokensSymbols.includes(tokenSymbol)) {\r\n // AFI-TT doesn't exists in mainnet so this is a patch for testing purposes, selecting the token\r\n // PEM arbitrarily\r\n tokenSymbol = \"pem\".toLowerCase()\r\n }\r\n if(tokenSymbol == \"near\" || tokenSymbol == \"nearcon\") {\r\n tokenSymbol = \"wnear\"\r\n }\r\n let output: RefTokenData | undefined = undefined\r\n tokenDataArray.forEach(tokenData => {\r\n if(tokenData.symbol.toLowerCase() === tokenSymbol) {\r\n output = tokenData\r\n }\r\n });\r\n if(output !== undefined) {\r\n return output\r\n }\r\n throw Error(`Token with symbol ${tokenSymbol} not found`)\r\n}\r\n\r\nexport async function getTokenDataArray(tokenArray: string[], reloadData: boolean = false): Promise< Map > {\r\n if(!tokenDataArray || reloadData) await setAllTokensData()\r\n // const allTokenData = await setAllTokensData()\r\n let output: Map = new Map()\r\n tokenArray.forEach(tokenSymbol => {\r\n tokenSymbol = tokenSymbol.toLowerCase()\r\n output.set(tokenSymbol, getPriceWithData(tokenSymbol))\r\n })\r\n return output\r\n}","export interface NFT {\r\n token_id: string\r\n owner_id: string\r\n metadata: NFTMetadata\r\n approved_account_ids: object\r\n}\r\n\r\nexport interface NFTWithMetadata extends NFT {\r\n contract_id: string\r\n base_url: string\r\n}\r\n\r\nexport interface NFTMetadata {\r\n spec: string\r\n name: string\r\n symbol: string\r\n icon: string\r\n base_uri: string\r\n reference: string|null\r\n reference_hash: string|null\r\n}\r\n\r\nexport function newNFT(tokenId: string, baseUrl: string, contractId: string): NFTWithMetadata {\r\n return {\r\n contract_id: contractId,\r\n base_url: baseUrl,\r\n token_id: tokenId,\r\n owner_id: \"\",\r\n metadata: {\r\n title: \"\",\r\n description: \"\",\r\n media: tokenId + \".png\",\r\n media_hash: \"\",\r\n copies: null,\r\n issued_at: \"\",\r\n expires_at: \"\",\r\n starts_at: \"\",\r\n updated_at: \"\",\r\n extra: \"\",\r\n reference: \"\",\r\n reference_hash: \"\"\r\n },\r\n approved_account_ids: {}\r\n }\r\n}","import { qs } from \"../document\";\r\n\r\nvar pointsA: Point[] = [],\r\n pointsB: Point[] = [],\r\n $canvas: HTMLCanvasElement|null = null,\r\n canvas = null,\r\n context: CanvasRenderingContext2D | null = null,\r\n vars = null,\r\n points = 8,\r\n viscosity = 20,\r\n mouseDist = 70,\r\n damping = 0.05,\r\n showIndicators = false,\r\n mouseX = 0,\r\n mouseY = 0,\r\n relMouseX = 0,\r\n relMouseY = 0,\r\n mouseLastX = 0,\r\n mouseLastY = 0,\r\n mouseDirectionX = 0,\r\n mouseDirectionY = 0,\r\n mouseSpeedX = 0,\r\n mouseSpeedY = 0;\r\n\r\nfunction mouseDirection(e: MouseEvent) {\r\n if (mouseX < e.pageX)\r\n mouseDirectionX = 1;\r\n else if (mouseX > e.pageX)\r\n mouseDirectionX = -1;\r\n else\r\n mouseDirectionX = 0;\r\n\r\n if (mouseY < e.pageY)\r\n mouseDirectionY = 1;\r\n else if (mouseY > e.pageY)\r\n mouseDirectionY = -1;\r\n else\r\n mouseDirectionY = 0;\r\n\r\n mouseX = e.pageX;\r\n mouseY = e.pageY;\r\n\r\n relMouseX = (mouseX - $canvas?.getBoundingClientRect().left!);\r\n relMouseY = (mouseY - $canvas?.getBoundingClientRect().top!);\r\n}\r\n\r\ndocument.addEventListener('mousemove', mouseDirection);\r\n\r\nfunction mouseSpeed() {\r\n mouseSpeedX = mouseX - mouseLastX;\r\n mouseSpeedY = mouseY - mouseLastY;\r\n\r\n mouseLastX = mouseX;\r\n mouseLastY = mouseY;\r\n\r\n setTimeout(mouseSpeed, 50);\r\n}\r\n\r\nexport function initButton() {\r\n // Get button\r\n mouseSpeed();\r\n var button: HTMLElement = qs(\".btn-liquid\");\r\n //I use this number after getting the button with to make the canva content visually bigger and work properly. In CSS use transform: translateX(-number/2) to center the content\r\n var buttonWidth = button.getBoundingClientRect().width + 22;\r\n var buttonHeight = button.getBoundingClientRect().height;\r\n\r\n // Create canvas\r\n $canvas = document.createElement(\"canvas\")\r\n button.append($canvas);\r\n\r\n // canvas = $canvas.get(0);\r\n $canvas.width = buttonWidth+30;\r\n $canvas.height = buttonHeight+50;\r\n context = $canvas.getContext('2d');\r\n\r\n // Add points\r\n\r\n var x = buttonHeight/2;\r\n for(var j = 1; j < points; j++) {\r\n addPoints((x+((buttonWidth-buttonHeight)/points)*j), 0);\r\n }\r\n addPoints(buttonWidth-buttonHeight/5, 0);\r\n addPoints(buttonWidth+buttonHeight/10, buttonHeight/2);\r\n addPoints(buttonWidth-buttonHeight/5, buttonHeight);\r\n for(var j = points-1; j > 0; j--) {\r\n addPoints((x+((buttonWidth-buttonHeight)/points)*j), buttonHeight);\r\n }\r\n addPoints(buttonHeight/5, buttonHeight);\r\n\r\n addPoints(-buttonHeight/10, buttonHeight/2);\r\n addPoints(buttonHeight/5, 0);\r\n // addPoints(x, 0);\r\n // addPoints(0, buttonHeight/2);\r\n\r\n // addPoints(0, buttonHeight/2);\r\n // addPoints(buttonHeight/4, 0);\r\n\r\n // Start render\r\n renderCanvas();\r\n}\r\n\r\n/**\r\n\t * Add points\r\n\t */\r\n function addPoints(x: number, y: number) {\r\n pointsA.push(new Point(x, y, 1));\r\n pointsB.push(new Point(x, y, 2));\r\n}\r\n\r\nclass Point {\r\n\r\n x: number\r\n ix: number\r\n y: number\r\n iy: number\r\n vx: number\r\n vy: number\r\n cx1: number\r\n cy1: number\r\n cx2: number\r\n cy2: number\r\n level: number\r\n\r\n constructor(x: number, y: number, level: number) {\r\n this.x = this.ix = 25+x;\r\n this.y = this.iy = 25+y;\r\n this.vx = 0;\r\n this.vy = 0;\r\n this.cx1 = 0;\r\n this.cy1 = 0;\r\n this.cx2 = 0;\r\n this.cy2 = 0;\r\n this.level = level;\r\n }\r\n\r\n move() {\r\n this.vx += (this.ix - this.x) / (viscosity*this.level);\r\n this.vy += (this.iy - this.y) / (viscosity*this.level);\r\n\r\n var dx = this.ix - relMouseX,\r\n dy = this.iy - relMouseY;\r\n var relDist = (1-Math.sqrt((dx * dx) + (dy * dy))/mouseDist);\r\n\r\n // Move x\r\n if ((mouseDirectionX > 0 && relMouseX > this.x) || (mouseDirectionX < 0 && relMouseX < this.x)) {\r\n if (relDist > 0 && relDist < 1) {\r\n this.vx = (mouseSpeedX / 4) * relDist;\r\n }\r\n }\r\n this.vx *= (1 - damping);\r\n this.x += this.vx;\r\n\r\n // Move y\r\n if ((mouseDirectionY > 0 && relMouseY > this.y) || (mouseDirectionY < 0 && relMouseY < this.y)) {\r\n if (relDist > 0 && relDist < 1) {\r\n this.vy = (mouseSpeedY / 4) * relDist;\r\n }\r\n }\r\n this.vy *= (1 - damping);\r\n this.y += this.vy;\r\n }\r\n}\r\n// function Point(x: number, y: number, level: number) {\r\n// this.x = this.ix = 50+x;\r\n// this.y = this.iy = 50+y;\r\n// this.vx = 0;\r\n// this.vy = 0;\r\n// this.cx1 = 0;\r\n// this.cy1 = 0;\r\n// this.cx2 = 0;\r\n// this.cy2 = 0;\r\n// this.level = level;\r\n// }\r\n\r\n// Point.prototype.move = function() {\r\n// this.vx += (this.ix - this.x) / (viscosity*this.level);\r\n// this.vy += (this.iy - this.y) / (viscosity*this.level);\r\n\r\n// var dx = this.ix - relMouseX,\r\n// dy = this.iy - relMouseY;\r\n// var relDist = (1-Math.sqrt((dx * dx) + (dy * dy))/mouseDist);\r\n\r\n// // Move x\r\n// if ((mouseDirectionX > 0 && relMouseX > this.x) || (mouseDirectionX < 0 && relMouseX < this.x)) {\r\n// if (relDist > 0 && relDist < 1) {\r\n// this.vx = (mouseSpeedX / 4) * relDist;\r\n// }\r\n// }\r\n// this.vx *= (1 - damping);\r\n// this.x += this.vx;\r\n\r\n// // Move y\r\n// if ((mouseDirectionY > 0 && relMouseY > this.y) || (mouseDirectionY < 0 && relMouseY < this.y)) {\r\n// if (relDist > 0 && relDist < 1) {\r\n// this.vy = (mouseSpeedY / 4) * relDist;\r\n// }\r\n// }\r\n// this.vy *= (1 - damping);\r\n// this.y += this.vy;\r\n// };\r\n\r\n/**\r\n\t * Render canvas\r\n\t */\r\n function renderCanvas() {\r\n // rAF\r\n var rafID = requestAnimationFrame(renderCanvas);\r\n\r\n // Clear scene\r\n context!.clearRect(0, 0, $canvas!.getBoundingClientRect().width, $canvas!.getBoundingClientRect().height);\r\n context!.fillStyle = 'transparent';\r\n context!.fillRect(0, 0, $canvas!.getBoundingClientRect().width, $canvas!.getBoundingClientRect().height);\r\n\r\n // Move points\r\n for (var i = 0; i <= pointsA.length - 1; i++) {\r\n pointsA[i].move();\r\n pointsB[i].move();\r\n }\r\n\r\n var canvasRect: DOMRect = $canvas!.getBoundingClientRect();\r\n\r\n var canvasOffset = { \r\n top: canvasRect.top + window.scrollY, \r\n left: canvasRect.left + window.scrollX, \r\n };\r\n // Create dynamic gradient\r\n var gradientX = Math.min(Math.max(mouseX - canvasOffset.left, 0), $canvas!.getBoundingClientRect().width);\r\n var gradientY = Math.min(Math.max(mouseY - canvasOffset.top, 0), $canvas!.getBoundingClientRect().height);\r\n var distance = Math.sqrt(Math.pow(gradientX - $canvas!.getBoundingClientRect().width/2, 2) + Math.pow(gradientY - $canvas!.getBoundingClientRect().height/2, 2)) / Math.sqrt(Math.pow($canvas!.getBoundingClientRect().width/2, 2) + Math.pow($canvas!.getBoundingClientRect().height/2, 2));\r\n\r\n var gradient = context!.createRadialGradient(gradientX, gradientY, 300+(300*distance), gradientX, gradientY, 0);\r\n gradient.addColorStop(0, '#F9BA37');\r\n gradient.addColorStop(1, '#FFD262');\r\n\r\n // Draw shapes\r\n var groups = [pointsA, pointsB]\r\n\r\n for (var j = 0; j <= 1; j++) {\r\n var points = groups[j];\r\n\r\n if (j == 0) {\r\n // Background style\r\n context!.fillStyle = '#8542EB';\r\n } else {\r\n // Foreground style\r\n context!.fillStyle = gradient;\r\n }\r\n\r\n context!.beginPath();\r\n context!.moveTo(points[0].x, points[0].y);\r\n\r\n for (var i = 0; i < points.length; i++) {\r\n var p = points[i];\r\n var nextP = points[i + 1];\r\n var val = 30*0.552284749831;\r\n\r\n if (nextP != undefined) {\r\n p.cx1 = (p.x+nextP.x)/2;\r\n p.cy1 = (p.y+nextP.y)/2;\r\n p.cx2 = (p.x+nextP.x)/2;\r\n p.cy2 = (p.y+nextP.y)/2;\r\n\r\n context!.bezierCurveTo(p.x, p.y, p.cx1, p.cy1, p.cx1, p.cy1);\r\n } else {\r\n nextP = points[0];\r\n p.cx1 = (p.x+nextP.x)/2;\r\n p.cy1 = (p.y+nextP.y)/2;\r\n\r\n context!.bezierCurveTo(p.x, p.y, p.cx1, p.cy1, p.cx1, p.cy1);\r\n }\r\n }\r\n context!.fill();\r\n }\r\n\r\n if (showIndicators) {\r\n // Draw points\r\n context!.fillStyle = '#000';\r\n context!.beginPath();\r\n for (var i = 0; i < pointsA.length; i++) {\r\n var p = pointsA[i];\r\n\r\n context!.rect(p.x - 1, p.y - 1, 2, 2);\r\n }\r\n context!.fill();\r\n\r\n // Draw controls\r\n context!.fillStyle = '#f00';\r\n context!.beginPath();\r\n for (var i = 0; i < pointsA.length; i++) {\r\n var p = pointsA[i];\r\n\r\n context!.rect(p.cx1 - 1, p.cy1 - 1, 2, 2);\r\n context!.rect(p.cx2 - 1, p.cy2 - 1, 2, 2);\r\n }\r\n context!.fill();\r\n }\r\n}\r\n\r\n// Init\r\n// initButton();\r\n","import { qsa } from \"../document\"\n\n// ammount to add on each button press\nconst confettiCount = 20 as number\nconst sequinCount = 10 as number\n\n// \"physics\" variables\nconst gravityConfetti = 0.3 as number\nconst gravitySequins = 0.55 as number\nconst dragConfetti = 0.075 as number\nconst dragSequins = 0.02 as number\nconst terminalVelocity = 3 as number\n\n// init other global elements\n// export function init() {\n// const harvestSection: Element[] = Array.from(qsa(\".harvest-section\"))\n// for(let elem of harvestSection) {\n// const confettiButton: Element = elem.querySelector(\".confetti-button\")!\n// const canvas: Element = elem.querySelector(\"#new-confetti-button_canvas\")!\n// }\n// button = document.querySelector('#tt-container .confetti-button') as HTMLButtonElement\n// disabled = false as boolean\n// canvas = document.querySelector('#tt-container #new-confetti-button_canvas') as HTMLCanvasElement\n// ctx = canvas.getContext('2d')\n// canvas.width = window.innerWidth\n// canvas.height = window.innerHeight\n\n// // Set up button text transition timings on page load\n// let textElements = button.querySelectorAll('.button-text') as NodeListOf\n// textElements.forEach((element) => {\n// let characters = element.innerText.split('')\n// let characterHTML = ''\n// characters.forEach((letter: string, index: number) => {\n// characterHTML += `${letter}`\n// })\n// element.innerHTML = characterHTML\n// })\n\n// // kick off the render loop\n// // initBurst()\n// render()\n// }\nlet button = document.querySelector('.confetti-button') as HTMLButtonElement\nvar disabled = false as boolean\nlet canvas: HTMLCanvasElement\nlet ctx: any\n// canvas.width = window.innerWidth\n// canvas.height = window.innerHeight\n// allCanvas.width = 405\n// allCanvas.height = 404\n// let cx = ctx!.canvas.width / 2\n// let cy = ctx!.canvas.height / 2\n\ninterface Color {\n front : string,\n back : string\n}\n\ninterface Point {\n x: number,\n y: number\n}\n\n\n// colors, back side is darker for confetti flipping\nconst colors = [\n { front : '#7b5cff', back: '#6245e0' }, // Purple\n { front : '#b3c7ff', back: '#8fa5e5' }, // Light Blue\n { front : '#5c86ff', back: '#345dd1' } // Darker Blue\n]\n\n// helper function to pick a random number within a range\nconst randomRange = (min: number, max: number) => Math.random() * (max - min) + min\n\n// helper function to get initial velocities for confetti\n// this weighted spread helps the confetti look more realistic\nconst initConfettoVelocity = (xRange: [number,number], yRange: [number,number]) => {\n const x = randomRange(xRange[0], xRange[1])\n const range = yRange[1] - yRange[0] + 1\n let y = yRange[1] - Math.abs(randomRange(0, range) + randomRange(0, range) - range)\n if (y >= yRange[1] - 1) {\n // Occasional confetto goes higher than the max\n y += (Math.random() < .25) ? randomRange(1, 3) : 0\n }\n return {x: x, y: -y}\n}\n\nexport class ConfettiButton {\n\n confettiButton: HTMLButtonElement\n canvas: HTMLCanvasElement\n // add Confetto/Sequin objects to arrays to draw them\n confetti: Confetto[]= []\n sequins: Sequin[] = []\n\n constructor(pool: HTMLElement) {\n this.confettiButton = pool.querySelector(\".confetti-button\")!\n this.canvas = pool.querySelector(\"#new-confetti-button_canvas\")!\n\n // resize listenter\n window.addEventListener('resize', () => {\n this.resizeCanvas()\n })\n }\n\n // add elements to arrays to be drawn\n initBurst() {\n for (let i = 0; i < confettiCount; i++) {\n this.confetti.push(new Confetto(this.confettiButton, this.canvas))\n }\n for (let i = 0; i < sequinCount; i++) {\n this.sequins.push(new Sequin(this.confettiButton, this.canvas))\n }\n }\n\n // draws the elements on the canvas\n render(confettiButton: HTMLButtonElement, canvas: HTMLCanvasElement, confetti: Confetto[], sequins: Sequin[], render?: Function) {\n const ctx = canvas.getContext(\"2d\")\n ctx!.clearRect(0, 0, canvas.width, canvas.height)\n \n confetti.forEach((confetto, index) => {\n let width = (confetto.dimensions.x * confetto.scale.x)\n let height = (confetto.dimensions.y * confetto.scale.y)\n \n // move canvas to position and rotate\n ctx!.translate(confetto.position.x, confetto.position.y)\n ctx!.rotate(confetto.rotation)\n\n // update confetto \"physics\" values\n confetto.update()\n \n // get front or back fill color\n ctx!.fillStyle = confetto.scale.y > 0 ? confetto.color.front : confetto.color.back\n \n // draw confetto\n ctx!.fillRect(-width / 2, -height / 2, width, height)\n \n // reset transform matrix\n ctx!.setTransform(1, 0, 0, 1, 0, 0)\n\n // clear rectangle where button cuts off\n if (confetto.velocity.y < 0) {\n ctx!.clearRect(canvas.width/2 - confettiButton.offsetWidth/2, canvas.height/2 + confettiButton.offsetHeight/2, confettiButton.offsetWidth, confettiButton.offsetHeight)\n }\n })\n\n sequins.forEach((sequin, index) => { \n // move canvas to position\n ctx!.translate(sequin.position.x, sequin.position.y)\n \n // update sequin \"physics\" values\n sequin.update()\n \n // set the color\n ctx!.fillStyle = sequin.color\n \n // draw sequin\n ctx!.beginPath()\n ctx!.arc(0, 0, sequin.radius, 0, 2 * Math.PI)\n ctx!.fill()\n\n // reset transform matrix\n ctx!.setTransform(1, 0, 0, 1, 0, 0)\n\n // clear rectangle where button cuts off\n if (sequin.velocity.y < 0) {\n ctx!.clearRect(canvas.width/2 - confettiButton.offsetWidth/2, canvas.height/2 + confettiButton.offsetHeight/2, confettiButton.offsetWidth, confettiButton.offsetHeight)\n }\n })\n\n // remove confetti and sequins that fall off the screen\n // must be done in seperate loops to avoid noticeable flickering\n confetti.forEach((confetto, index) => {\n if (confetto.position.y >= canvas.height) confetti.splice(index, 1)\n })\n sequins.forEach((sequin, index) => {\n if (sequin.position.y >= canvas.height) sequins.splice(index, 1)\n })\n\n let r = render ? render : this.render\n window.requestAnimationFrame(r.bind(null, confettiButton, canvas, confetti, sequins, r))\n }\n\n // cycle through button states when clicked\n clickButtonWithRedirection(poolID: string) {\n if (!disabled) {\n sessionStorage.setItem(\"cheddarFarmJustHarvested\", poolID)\n // disabled = true\n // Loading stage\n this.confettiButton.classList.add('loading')\n this.confettiButton.classList.remove('ready')\n // setTimeout(() => {\n // // Completed stage\n // this.confettiButton.classList.add('complete')\n // this.confettiButton.classList.remove('loading')\n // // setTimeout(() => {\n // // this.initBurst()\n // // setTimeout(() => {\n // // // Reset button so user can select it again\n // // disabled = false\n // // this.confettiButton.classList.add('ready')\n // // this.confettiButton.classList.remove('complete')\n // // }, 4000)\n // // }, 320)\n // }, 1800)\n }\n }\n\n successAnimation() {\n disabled = true\n // Loading stage\n this.confettiButton.classList.add('loading')\n this.confettiButton.classList.remove('ready')\n setTimeout(() => {\n // Completed stage\n this.confettiButton.classList.add('complete')\n this.confettiButton.classList.remove('loading')\n setTimeout(() => {\n this.initBurst()\n setTimeout(() => {\n // Reset button so user can select it again\n disabled = false\n this.confettiButton.classList.add('ready')\n this.confettiButton.classList.remove('complete')\n }, 4000)\n }, 320)\n }, 1800)\n }\n\n clickButtonWithoutRedirection() {\n if (!disabled) {\n disabled = true\n // Loading stage\n this.confettiButton.classList.add('loading')\n this.confettiButton.classList.remove('ready')\n setTimeout(() => {\n // Completed stage\n this.confettiButton.classList.add('complete')\n this.confettiButton.classList.remove('loading')\n setTimeout(() => {\n this.initBurst()\n setTimeout(() => {\n // Reset button so user can select it again\n disabled = false\n this.confettiButton.classList.add('ready')\n this.confettiButton.classList.remove('complete')\n }, 4000)\n }, 320)\n }, 1800)\n }\n }\n\n // re-init canvas if the window size changes\n resizeCanvas() {\n canvas.width = window.innerWidth\n canvas.height = window.innerHeight\n // cx = ctx!.canvas.width / 2\n // cy = ctx!.canvas.height / 2\n }\n\n \n}\n\n\n\n// Confetto Class\nclass Confetto {\n randomModifier : number\n color : Color\n dimensions : Point\n position : Point\n rotation : number\n scale : Point\n velocity : Point\n\n constructor(button: HTMLButtonElement, canvas: HTMLCanvasElement){\n this.randomModifier = randomRange(0, 99)\n this.color = colors[Math.floor(randomRange(0, colors.length))]\n this.dimensions = {\n x: randomRange(5, 9),\n y: randomRange(8, 15),\n }\n this.position = {\n x: randomRange(canvas.width/2 - button.offsetWidth/4, canvas.width/2 + button.offsetWidth/4),\n y: randomRange(canvas.height/2 + button.offsetHeight/2 + 8, canvas.height/2 + (1.5 * button.offsetHeight) - 8),\n }\n this.rotation = randomRange(0, 2 * Math.PI)\n this.scale = {\n x: 1,\n y: 1,\n }\n this.velocity = initConfettoVelocity([-9, 9], [6, 11])\n }\n update() {\n // apply forces to velocity\n this.velocity.x -= this.velocity.x * dragConfetti\n this.velocity.y = Math.min(this.velocity.y + gravityConfetti, terminalVelocity)\n this.velocity.x += Math.random() > 0.5 ? Math.random() : -Math.random()\n \n // set position\n this.position.x += this.velocity.x\n this.position.y += this.velocity.y\n \n // spin confetto by scaling y and set the color, .09 just slows cosine frequency\n this.scale.y = Math.cos((this.position.y + this.randomModifier) * 0.09) \n }\n\n \n}\n// Sequin Class\nclass Sequin {\n color: string\n radius: number\n position: Point\n velocity: Point\n\n constructor(button: HTMLButtonElement, canvas: HTMLCanvasElement){\n this.color = colors[Math.floor(randomRange(0, colors.length))].back,\n this.radius = randomRange(1, 2),\n this.position = {\n x: randomRange(canvas.width/2 - button.offsetWidth/3, canvas.width/2 + button.offsetWidth/3),\n y: randomRange(canvas.height/2 + button.offsetHeight/2 + 8, canvas.height/2 + (1.5 * button.offsetHeight) - 8),\n },\n this.velocity = {\n x: randomRange(-6, 6),\n y: randomRange(-8, -12)\n }\n }\n update() {\n // apply forces to velocity\n this.velocity.x -= this.velocity.x * dragSequins\n this.velocity.y = this.velocity.y + gravitySequins\n\n // set position\n this.position.x += this.velocity.x\n this.position.y += this.velocity.y \n }\n}\n\n\n\n\n\n\n\n\n\n// click button on spacebar or return keypress\n// document.body.onkeyup = (e) => {\n// if (e.keyCode == 13 || e.keyCode == 32) {\n// clickButton()\n// }\n// }\n\n"],"names":["Object","defineProperty","module","exports","value","MergeKeyStore","BrowserLocalStorageKeyStore","InMemoryKeyStore","KeyStore","enumerable","get","$8bVp8","$fcf52","$k8rH8","$klUo1","$b103aca71847fde4$var$InMemoryKeyStore","async","networkId","accountId","keyPair","this","keys","toString","$c6vjW","KeyPair","fromString","result","Set","forEach","key","parts","split","add","Array","from","values","length","push","slice","join","constructor","super","$8cfe572dfdf01950$var$__importDefault","__importDefault","mod","__esModule","default","KeyPairEd25519","PublicKey","KeyType","$8cfe572dfdf01950$var$tweetnacl_1","parcelRequire","$8cfe572dfdf01950$var$KeyType","KeyType1","$8cfe572dfdf01950$var$str_to_key_type","keyType","toLowerCase","ED25519","Error","$8cfe572dfdf01950$var$PublicKey","$hHMds","Assignable","static","encodedKey","data","$kK9YP","base_decode","$8cfe572dfdf01950$var$key_type_to_str","base_encode","$8cfe572dfdf01950$var$KeyPair","curve","toUpperCase","$8cfe572dfdf01950$var$KeyPairEd25519","fromRandom","newKeyPair","sign","secretKey","message","detached","publicKey","verify","signature","getPublicKey","fromSecretKey","nacl","gf","init","i","r","Float64Array","randombytes","_0","Uint8Array","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","l","vn","xi","y","yi","n","d","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","out","inp","k","c","o","p","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","m","mpos","b","z","crypto_stream_salsa20","crypto_stream","s","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","buffer","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","a","car25519","v","Math","floor","sel25519","q","t","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","e","f","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","prototype","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","g","want","crypto_box_afternm","crypto_box_open_afternm","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","crypto_sign_open","chk","num","den","den2","den4","den6","unpackneg","crypto_secretbox_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","arguments","TypeError","cleanup","arr","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","before","checkBoxLengths","after","publicKeyLength","secretKeyLength","sharedKeyLength","signedMsg","tmp","mlen","sig","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","crypto","self","msCrypto","getRandomValues","min","$NLiRa","baseEncode","baseDecode","serialize","deserialize","BorshError","BinaryWriter","BinaryReader","$09594522abb41d2b$var$__createBinding","__createBinding","create","k2","undefined","$09594522abb41d2b$var$__setModuleDefault","__setModuleDefault","$09594522abb41d2b$var$__decorate","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","$09594522abb41d2b$var$__importStar","__importStar","hasOwnProperty","call","$09594522abb41d2b$var$__importDefault","$09594522abb41d2b$var$bn_js_1","$09594522abb41d2b$var$bs58_1","$09594522abb41d2b$var$encoding","$09594522abb41d2b$var$textDecoder","$parcel$global","TextDecoder","fatal","$09594522abb41d2b$require$Buffer","encode","decode","$09594522abb41d2b$var$INITIAL_LENGTH","$09594522abb41d2b$var$BorshError","addToFieldPath","fieldName","fieldPath","splice","originalMessage","$09594522abb41d2b$var$BinaryWriter","maybeResize","buf","concat","alloc","writeU8","writeUInt8","writeU32","writeUInt32LE","writeU64","writeBuffer","toArray","writeU128","writeString","str","writeFixedArray","array","writeArray","elem","$09594522abb41d2b$var$handlingRangeError","propertyKey","propertyDescriptor","originalMethod","args","apply","RangeError","code","indexOf","$09594522abb41d2b$var$BinaryReader","readU8","readUInt8","offset","readU32","readUInt32LE","readU64","readBuffer","readU128","len","readString","readFixedArray","readArray","$09594522abb41d2b$var$capitalizeFirstLetter","string","charAt","$09594522abb41d2b$var$serializeField","schema","fieldType","writer","item","kind","type","$09594522abb41d2b$var$serializeStruct","error","obj","structSchema","name","fields","map","field","idx","$09594522abb41d2b$var$deserializeField","reader","$09594522abb41d2b$var$deserializeStruct","classType","$b38ec508464f8e9d$export$a143d493d941bafc","$b38ec508464f8e9d$export$e4cf37d7f6fb9e0a","$b38ec508464f8e9d$export$f99ded8fe4b79145","$b38ec508464f8e9d$export$599f31c3813fae4d","$b38ec508464f8e9d$var$customInspectSymbol","Symbol","$b38ec508464f8e9d$var$Buffer","$b38ec508464f8e9d$var$K_MAX_LENGTH","$b38ec508464f8e9d$var$createBuffer","setPrototypeOf","arg","encodingOrOffset","$b38ec508464f8e9d$var$allocUnsafe","$b38ec508464f8e9d$var$from","encoding","isEncoding","$b38ec508464f8e9d$var$byteLength","actual","write","$b38ec508464f8e9d$var$fromString","ArrayBuffer","isView","arrayView","$b38ec508464f8e9d$var$isInstance","copy","$b38ec508464f8e9d$var$fromArrayBuffer","byteOffset","byteLength","$b38ec508464f8e9d$var$fromArrayLike","$b38ec508464f8e9d$var$fromArrayView","SharedArrayBuffer","valueOf","isBuffer","$b38ec508464f8e9d$var$checked","$b38ec508464f8e9d$var$numberIsNaN","isArray","$b38ec508464f8e9d$var$fromObject","toPrimitive","$b38ec508464f8e9d$var$assertSize","size","mustMatch","loweredCase","$b38ec508464f8e9d$var$utf8ToBytes","$b38ec508464f8e9d$var$base64ToBytes","$b38ec508464f8e9d$var$slowToString","start","end","$b38ec508464f8e9d$var$hexSlice","$b38ec508464f8e9d$var$utf8Slice","$b38ec508464f8e9d$var$asciiSlice","$b38ec508464f8e9d$var$latin1Slice","$b38ec508464f8e9d$var$base64Slice","$b38ec508464f8e9d$var$utf16leSlice","$b38ec508464f8e9d$var$swap","$b38ec508464f8e9d$var$bidirectionalIndexOf","val","dir","$b38ec508464f8e9d$var$arrayIndexOf","lastIndexOf","i1","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","$b38ec508464f8e9d$var$hexWrite","Number","remaining","strLen","parsed","parseInt","substr","$b38ec508464f8e9d$var$utf8Write","$b38ec508464f8e9d$var$blitBuffer","$b38ec508464f8e9d$var$asciiWrite","byteArray","charCodeAt","$b38ec508464f8e9d$var$asciiToBytes","$b38ec508464f8e9d$var$base64Write","$b38ec508464f8e9d$var$ucs2Write","units","hi","lo","$b38ec508464f8e9d$var$utf16leToBytes","$1XRzf","fromByteArray","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","$b38ec508464f8e9d$var$MAX_ARGUMENTS_LENGTH","fromCharCode","$b38ec508464f8e9d$var$decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","$b38ec508464f8e9d$var$typedArraySupport","console","poolSize","fill","$b38ec508464f8e9d$var$alloc","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","list","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","$b38ec508464f8e9d$var$hexSliceLookupTable","$b38ec508464f8e9d$var$checkOffset","ext","$b38ec508464f8e9d$var$checkInt","$b38ec508464f8e9d$var$wrtBigUInt64LE","$b38ec508464f8e9d$var$checkIntBI","BigInt","$b38ec508464f8e9d$var$wrtBigUInt64BE","$b38ec508464f8e9d$var$checkIEEE754","$b38ec508464f8e9d$var$writeFloat","littleEndian","noAssert","$5jxTr","$b38ec508464f8e9d$var$writeDouble","newBuf","readUintLE","readUIntLE","byteLength1","mul","readUintBE","readUIntBE","byteLength2","readUint8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUint32BE","readUInt32BE","readBigUInt64LE","$b38ec508464f8e9d$var$defineBigIntMethod","$b38ec508464f8e9d$var$validateNumber","first","last","$b38ec508464f8e9d$var$boundsError","readBigUInt64BE","readIntLE","byteLength3","pow","readIntBE","byteLength4","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","byteLength5","writeUintBE","writeUIntBE","byteLength6","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","byteLength7","limit","sub","writeIntBE","byteLength8","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","$b38ec508464f8e9d$var$errors","$b38ec508464f8e9d$var$E","sym","getMessage","Base","configurable","writable","stack","$b38ec508464f8e9d$var$addNumericalSeparator","byteLength10","range","ERR_OUT_OF_RANGE","byteLength9","$b38ec508464f8e9d$var$checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","input","received","isInteger","abs","$b38ec508464f8e9d$var$INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","$b38ec508464f8e9d$var$base64clean","src","dst","alphabet","table","i16","$b38ec508464f8e9d$var$BufferBigIntNotDefined","$16e4da847b27ef4f$export$d622b2ad8d90c771","$16e4da847b27ef4f$export$6100ba28696e12de","b64","lens","$16e4da847b27ef4f$var$getLens","validLen","placeHoldersLen","$16e4da847b27ef4f$var$Arr","$16e4da847b27ef4f$var$_byteLength","curByte","len2","$16e4da847b27ef4f$var$revLookup","uint8","len3","extraBytes","maxChunkLength","i3","$16e4da847b27ef4f$var$encodeChunk","$16e4da847b27ef4f$var$lookup","$16e4da847b27ef4f$var$code","$16e4da847b27ef4f$var$i","$16e4da847b27ef4f$var$len","len1","output","i2","$3de90494604c4d07$export$aafa59e2e03f2942","$3de90494604c4d07$export$68d8715fc104d294","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","isNaN","log","LN2","assert","inherits","ctor","superCtor","super_","TempCtor","BN","number","endian","isBN","negative","words","red","_init","Buffer","wordSize","window","parseHex4Bits","index","parseHexByte","lowerBound","parseBase","move","dest","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","ceil","w","off","_strip","limbLen","limbPow","total","word","imuln","_iaddn","_move","clone","_expand","_normSign","for","e1","zeros","groupSizes","groupBases","padding","groupSize","groupBase","isZero","modrn","idivn","toNumber","toBuffer","toArrayLike","smallMulTo","ncarry","rword","maxJ","ArrayType","reqLength","allocate","_toArrayLikeLE","position","shift","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","a1","a2","a3","a4","a5","a6","a7","a8","al8","ah8","a9","al9","ah9","bl8","bh8","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","mulp","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","andln","acc","modn","egcd","B","C","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","outLen","prev","next","mod3","one","nOne","lpow","inv","wnd","current","currentLen","mont","$bDs7k","ALPHABET","BASE_MAP","xc","BASE","LEADER","FACTOR","iFACTOR","decodeUnsafe","source","$878925b7f8bc2805$require$_Buffer","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","$fpMrF","$2777f32a962dcb89$var$Buffer","$2777f32a962dcb89$var$copyProps","$2777f32a962dcb89$var$SafeBuffer","SlowBuffer","$00bfcfb0826461d4$export$88fb0cfd153261a7","$00bfcfb0826461d4$export$9c6b53e35bc51b5c","$00bfcfb0826461d4$var$inRange","$00bfcfb0826461d4$var$ToDictionary","$00bfcfb0826461d4$var$Stream","tokens","endOfStream","prepend","token","unshift","pop","$00bfcfb0826461d4$var$finished","$00bfcfb0826461d4$var$decoderError","opt_code_point","$00bfcfb0826461d4$var$DEFAULT_ENCODING","$00bfcfb0826461d4$var$TextDecoder","options","_streaming","_BOMseen","_decoder","_fatal","Boolean","_ignoreBOM","$00bfcfb0826461d4$var$TextEncoder","_encoder","_options","$00bfcfb0826461d4$var$UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","handler","stream","bite","code_point","$00bfcfb0826461d4$var$UTF8Encoder","count","temp","input_stream","code_points","cp","$00bfcfb0826461d4$var$codePointsToString","opt_string","$00bfcfb0826461d4$var$stringToCodePoints","Enum","properties","enum","$ea8a09954a693d94$var$BrowserLocalStorageKeyStore","localStorage","setItem","storageKeyForSecretKey","getItem","removeItem","storageKeys","startsWith","prefix","substring","$ed1181f8b1af74af$var$MergeKeyStore","keyStores","setKey","keyStore","getKey","removeKey","clear","network","getNetworks","account","getAccounts","$cbd0ed3b314749be$var$__createBinding","$cbd0ed3b314749be$var$__setModuleDefault","$cbd0ed3b314749be$var$__importStar","WalletConnection","WalletAccount","ConnectedWalletAccount","Near","Signer","InMemorySigner","Contract","Connection","Account","multisig","validators","transactions","utils","providers","accountCreator","$cbd0ed3b314749be$var$providers","$cbd0ed3b314749be$var$utils","$cbd0ed3b314749be$var$transactions","$cbd0ed3b314749be$var$validators","$cbZQ6","$cbd0ed3b314749be$var$multisig","$cbd0ed3b314749be$var$accountCreator","$eHVDy","$8pnRt","$hMpPn","$dcQbI","$X4J4i","ErrorContext","TypedError","getTransactionLastResult","FinalExecutionStatusBasic","JsonRpcProvider","Provider","$1wgWW","$gm559","ExecutionStatusBasic1","FinalExecutionStatusBasic1","IdType1","IdType","ExecutionStatusBasic","txResult","status","SuccessValue","$11b5ed7ab078569d$require$Buffer","JSON","parse","$be82a49ecc0eeff3$var$__importDefault","$be82a49ecc0eeff3$var$depd_1","$aZkQq","$be82a49ecc0eeff3$var$exponential_backoff_1","$be82a49ecc0eeff3$var$_nextId","$be82a49ecc0eeff3$var$JsonRpcProvider","chainId","sendJsonRpc","signedTransaction","$be82a49ecc0eeff3$require$Buffer","txHash","path","stringify","$hrbaI","getErrorTypeFromErrorMessage","blockQuery","finality","blockId","deprecate","block_id","chunkId","sync_checkpoint","blockReference","request","lightClientProof","method","params","id","jsonrpc","response","$7o3DH","fetchJson","connection","error_message","error_type","parseRpcError","errorMessage","warn","url","$a07f928c61375764$var$wrapfunction","$a07f928c61375764$var$wrapproperty","prop","descriptor","namespace","_file","_ignored","_namespace","_traced","_warned","function","property","$l1eCU","$560d98fd67f11e3d$var$__importDefault","$560d98fd67f11e3d$var$http_errors_1","$560d98fd67f11e3d$var$exponential_backoff_1","$560d98fd67f11e3d$var$fetch","nodeFetch","http","https","httpAgent","Agent","keepAlive","httpsAgent","resource","agent","_parsedURL","URL","protocol","fetch","json","response1","body","headers","ok","text","$gOMCy","$6skSc","$8155fab37a5fbdc9$export$2e2bcd8739ae039","ownKeys","getOwnPropertySymbols","filter","$92e7d893a6d994bf$export$2e2bcd8739ae039","HttpError","$3fc34e3c64988cd5$var$deprecate","$3fc34e3c64988cd5$var$codeClass","$3fc34e3c64988cd5$var$nameFunc","func","$3fc34e3c64988cd5$var$toClassName","$3fc34e3c64988cd5$var$createError","err","props","statusCode","$7vpCg","captureStackTrace","expose","$9tbCW","$3fc34e3c64988cd5$var$createHttpErrorConstructor","isHttpError","codes","CodeError","$3rbOv","className","ClientError","$5LX41","$3fc34e3c64988cd5$var$createClientErrorConstructor","ServerError","$3fc34e3c64988cd5$var$createServerErrorConstructor","ImATeapot","$3fc34e3c64988cd5$var$populateConstructorExports","$1687771ad3cc723c$var$wrapfunction","$1687771ad3cc723c$var$wrapproperty","__proto__","statuses","codes1","$576f4c829f17f722$var$status","STATUS_CODES","$3MiRI","status1","redirect","empty","retry","$8f4517389d2cc654$var$sleep","millis","Promise","resolve","setTimeout","startWaitTime","retryNumber","waitBackoff","getResult","waitTime","global","getGlobal","bind","Headers","Request","Response","$1DJns","$71c2c39a08947f2e$var$http","opts","cb","$47FnH","$8k6Kq","defaultProtocol","location","search","host","hostname","port","req","on","ClientRequest","IncomingMessage","$7lfQd","defaultMaxSockets","globalAgent","$bL9Wv","METHODS","$131ca1f99f0ae5be$var$IncomingMessage","$131ca1f99f0ae5be$var$rStates","readyStates","$131ca1f99f0ae5be$var$ClientRequest","preferBinary","$f3YQa","Writable","_opts","_body","_headers","auth","setHeader","$131ca1f99f0ae5be$require$Buffer","useFetch","$81Phs","abortController","overrideMimeType","_mode","mozchunkedarraybuffer","msstream","arraybuffer","$131ca1f99f0ae5be$var$decideMode","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","lowerName","$131ca1f99f0ae5be$var$unsafeHeaders","getHeader","header","removeHeader","_destroyed","timeout","headersObj","Blob","headersList","keyName","signal","controller","AbortController","_fetchAbortController","requestTimeout","emit","abort","credentials","withCredentials","then","_fetchResponse","_resetTimers","_connect","reason","xhr","_xhr","XMLHttpRequest","$a5Ykp","nextTick","responseType","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","onerror","send","err1","$131ca1f99f0ae5be$var$statusValid","_write","chunk","done","clearTimeout","destroy","once","flushHeaders","setNoDelay","setSocketKeepAlive","$75992af13fa008eb$var$cachedSetTimeout","$75992af13fa008eb$var$cachedClearTimeout","$75992af13fa008eb$var$process","$75992af13fa008eb$var$defaultSetTimout","$75992af13fa008eb$var$defaultClearTimeout","$75992af13fa008eb$var$runTimeout","fun","$75992af13fa008eb$var$currentQueue","$75992af13fa008eb$var$queue","$75992af13fa008eb$var$draining","$75992af13fa008eb$var$queueIndex","$75992af13fa008eb$var$cleanUpNextTick","$75992af13fa008eb$var$drainQueue","run","marker","$75992af13fa008eb$var$runClearTimeout","$75992af13fa008eb$var$Item","$75992af13fa008eb$var$noop","title","browser","env","argv","version","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","$5d8631f43b6ecd6e$export$e7aa7bc5c1b3cfb3","$5d8631f43b6ecd6e$export$37489d82087dc5d1","$5d8631f43b6ecd6e$export$f137bf8a46425a6f","$5d8631f43b6ecd6e$export$724c4efdc2b90612","$5d8631f43b6ecd6e$export$a9aa1e45c4448986","$5d8631f43b6ecd6e$export$4c3c163e941f6ba3","$5d8631f43b6ecd6e$export$8f1269d6d73f87ef","$5d8631f43b6ecd6e$var$xhr","$5d8631f43b6ecd6e$var$getXHR","XDomainRequest","$5d8631f43b6ecd6e$var$checkTypeSupport","xhr1","$5d8631f43b6ecd6e$var$isFunction","ReadableStream","WritableStream","$5586c85158706e5b$export$8e4da25483e314e6","$5586c85158706e5b$export$9d4333345ffa4fd6","$5586c85158706e5b$var$rStates","UNSENT","OPENED","HEADERS_RECEIVED","$5586c85158706e5b$var$IncomingMessage","resetTimers","Readable","rawHeaders","trailers","rawTrailers","statusMessage","statusText","writableStream","reject","$5586c85158706e5b$require$Buffer","_resumeFetch","close","pipeTo","catch","getReader","_pos","responseURL","getAllResponseHeaders","matches","match","_charset","mimeType","charsetMatch","_read","responseText","newData","MSStreamReader","onload","readAsArrayBuffer","Stream","Duplex","Transform","PassThrough","finished","pipeline","$09e802540723fc72$var$Duplex","$09e802540723fc72$var$Readable","ReadableState","$09e802540723fc72$var$ReadableState","EventEmitter","$09e802540723fc72$var$EElistenerCount","emitter","$09e802540723fc72$var$OurUint8Array","$09e802540723fc72$var$debug","$8UCNu","debuglog","$09e802540723fc72$var$StringDecoder","$09e802540723fc72$var$createReadableStreamAsyncIterator","$09e802540723fc72$var$from","$09e802540723fc72$var$getHighWaterMark","getHighWaterMark","$09e802540723fc72$var$ERR_INVALID_ARG_TYPE","$09e802540723fc72$require$_require$codes","$09e802540723fc72$var$ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_PUSH_AFTER_EOF","$09e802540723fc72$var$ERR_METHOD_NOT_IMPLEMENTED","ERR_METHOD_NOT_IMPLEMENTED","$09e802540723fc72$var$ERR_STREAM_UNSHIFT_AFTER_END_EVENT","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","$7nV5Z","$09e802540723fc72$var$errorOrDestroy","$9TlUW","errorOrDestroy","$09e802540723fc72$var$kProxyEvents","isDuplex","objectMode","readableObjectMode","highWaterMark","$74oYk","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","destroyed","defaultEncoding","awaitDrain","readingMore","decoder","StringDecoder","_readableState","readable","_destroy","$09e802540723fc72$var$readableAddChunk","addToFront","skipChunkCheck","er","state","$09e802540723fc72$var$emitReadable","$09e802540723fc72$var$emitReadable_","$09e802540723fc72$var$onEofChunk","$09e802540723fc72$require$Buffer","$09e802540723fc72$var$chunkInvalid","getPrototypeOf","$09e802540723fc72$var$_uint8ArrayToBuffer","$09e802540723fc72$var$addChunk","$09e802540723fc72$var$maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","enc","head","content","$09e802540723fc72$var$MAX_HWM","$09e802540723fc72$var$howMuchToRead","$09e802540723fc72$var$computeNewHighWaterMark","$09e802540723fc72$var$flow","$09e802540723fc72$var$maybeReadMore_","$09e802540723fc72$var$updateReadableListening","listenerCount","resume","$09e802540723fc72$var$nReadingNextTick","$09e802540723fc72$var$resume_","$09e802540723fc72$var$fromList","consume","$09e802540723fc72$var$endReadable","$09e802540723fc72$var$endReadableNT","wState","_writableState","$09e802540723fc72$var$indexOf","xs","nOrig","doRead","pipe","pipeOpts","endFn","stdout","stderr","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","$09e802540723fc72$var$pipeOnDrain","pause","event","_events","$09e802540723fc72$var$prependListener","dests","ev","$09e802540723fc72$var$resume","wrap","_this","n1","asyncIterator","_fromList","iterable","$728fc1d6ea33928c$var$ReflectOwnKeys","$728fc1d6ea33928c$var$R","$728fc1d6ea33928c$var$ReflectApply","receiver","Function","getOwnPropertyNames","$728fc1d6ea33928c$var$NumberIsNaN","$728fc1d6ea33928c$var$EventEmitter","errorListener","resolver","$728fc1d6ea33928c$var$eventTargetAgnosticAddListener","flags","$728fc1d6ea33928c$var$addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","$728fc1d6ea33928c$var$defaultMaxListeners","$728fc1d6ea33928c$var$checkListener","listener","$728fc1d6ea33928c$var$_getMaxListeners","that","defaultMaxListeners","$728fc1d6ea33928c$var$_addListener","events","existing","warning","newListener","warned","$728fc1d6ea33928c$var$onceWrapper","fired","wrapFn","$728fc1d6ea33928c$var$_onceWrap","wrapped","$728fc1d6ea33928c$var$_listeners","unwrap","evlistener","$728fc1d6ea33928c$var$unwrapListeners","$728fc1d6ea33928c$var$arrayClone","$728fc1d6ea33928c$var$listenerCount","addEventListener","wrapListener","removeEventListener","setMaxListeners","getMaxListeners","doError","context","originalListener","$728fc1d6ea33928c$var$spliceOne","rawListeners","eventNames","$525c471134845ae1$var$ownKeys","object","enumerableOnly","symbols","$525c471134845ae1$var$_defineProperty","$525c471134845ae1$var$_defineProperties","$525c471134845ae1$var$Buffer","$525c471134845ae1$var$inspect","$525c471134845ae1$var$custom","custom","BufferList","instance","Constructor","$525c471134845ae1$var$_classCallCheck","tail","protoProps","staticProps","entry","hasStrings","_getString","_getBuffer","nb","getOwnPropertyDescriptors","defineProperties","$525c471134845ae1$var$_objectSpread","depth","customInspect","$733a4076e36c154d$var$emitErrorAndCloseNT","$733a4076e36c154d$var$emitErrorNT","$733a4076e36c154d$var$emitCloseNT","readableDestroyed","writableDestroyed","errorEmitted","ending","finalCalled","prefinished","rState","$cb5b2e4ad1484fb6$var$ERR_INVALID_OPT_VALUE","ERR_INVALID_OPT_VALUE","duplexKey","hwm","$cb5b2e4ad1484fb6$var$highWaterMarkFrom","$f7c5b37f999051c9$export$e45cb6485273080e","$f7c5b37f999051c9$var$codes","$f7c5b37f999051c9$var$createErrorType","NodeError1","_Base","subClass","superClass","NodeError","arg1","arg2","arg3","$f7c5b37f999051c9$var$oneOf","expected","thing","determiner","this_len","$f7c5b37f999051c9$var$endsWith","$f7c5b37f999051c9$var$includes","$764f75fc34298c8d$var$objectKeys","keys1","$764f75fc34298c8d$var$Duplex","$QJjFZ","$764f75fc34298c8d$var$keys","$8egDp","$764f75fc34298c8d$var$v","$764f75fc34298c8d$var$method","allowHalfOpen","$764f75fc34298c8d$var$onend","$764f75fc34298c8d$var$onEndNT","getBuffer","$5fdc88ce9442bc14$var$Duplex","$5fdc88ce9442bc14$var$CorkedRequest","corkReq","callback","pendingcb","corkedRequestsFree","$5fdc88ce9442bc14$var$onCorkedFinish","$5fdc88ce9442bc14$var$Writable","WritableState","$5fdc88ce9442bc14$var$WritableState","$5fdc88ce9442bc14$var$internalUtil","$5fdc88ce9442bc14$var$OurUint8Array","$5fdc88ce9442bc14$var$realHasInstance","$5fdc88ce9442bc14$var$getHighWaterMark","$5fdc88ce9442bc14$var$ERR_INVALID_ARG_TYPE","$5fdc88ce9442bc14$require$_require$codes","$5fdc88ce9442bc14$var$ERR_METHOD_NOT_IMPLEMENTED","$5fdc88ce9442bc14$var$ERR_MULTIPLE_CALLBACK","ERR_MULTIPLE_CALLBACK","$5fdc88ce9442bc14$var$ERR_STREAM_CANNOT_PIPE","ERR_STREAM_CANNOT_PIPE","$5fdc88ce9442bc14$var$ERR_STREAM_DESTROYED","ERR_STREAM_DESTROYED","$5fdc88ce9442bc14$var$ERR_STREAM_NULL_VALUES","ERR_STREAM_NULL_VALUES","$5fdc88ce9442bc14$var$ERR_STREAM_WRITE_AFTER_END","ERR_STREAM_WRITE_AFTER_END","$5fdc88ce9442bc14$var$ERR_UNKNOWN_ENCODING","ERR_UNKNOWN_ENCODING","$5fdc88ce9442bc14$var$errorOrDestroy","$5fdc88ce9442bc14$var$nop","writableObjectMode","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writecb","writelen","$5fdc88ce9442bc14$var$onwriteStateUpdate","$5fdc88ce9442bc14$var$finishMaybe","$5fdc88ce9442bc14$var$onwriteError","$5fdc88ce9442bc14$var$needFinish","bufferedRequest","$5fdc88ce9442bc14$var$clearBuffer","$5fdc88ce9442bc14$var$afterWrite","$5fdc88ce9442bc14$var$onwrite","lastBufferedRequest","bufferedRequestCount","writev","_writev","final","_final","$5fdc88ce9442bc14$var$doWrite","$5fdc88ce9442bc14$var$onwriteDrain","holder","allBuffers","isBuf","$5fdc88ce9442bc14$var$callFinal","need","$5fdc88ce9442bc14$var$prefinish","hasInstance","$5fdc88ce9442bc14$require$Buffer","$5fdc88ce9442bc14$var$_uint8ArrayToBuffer","$5fdc88ce9442bc14$var$writeAfterEnd","$5fdc88ce9442bc14$var$validChunk","newChunk","$5fdc88ce9442bc14$var$decodeChunk","$5fdc88ce9442bc14$var$writeOrBuffer","cork","uncork","setDefaultEncoding","$5fdc88ce9442bc14$var$endWritable","$8a58ef4f7ff1d161$var$config","trace","$d8c5612f7377d5a9$export$63a7aa211a91ed69","$d8c5612f7377d5a9$var$isEncoding","$d8c5612f7377d5a9$require$Buffer","$d8c5612f7377d5a9$var$StringDecoder","nenc","retried","$d8c5612f7377d5a9$var$_normalizeEncoding","$d8c5612f7377d5a9$var$normalizeEncoding","$d8c5612f7377d5a9$var$utf16Text","$d8c5612f7377d5a9$var$utf16End","fillLast","$d8c5612f7377d5a9$var$utf8FillLast","$d8c5612f7377d5a9$var$base64Text","$d8c5612f7377d5a9$var$base64End","$d8c5612f7377d5a9$var$simpleWrite","$d8c5612f7377d5a9$var$simpleEnd","lastNeed","lastTotal","lastChar","$d8c5612f7377d5a9$var$utf8CheckByte","byte","$d8c5612f7377d5a9$var$utf8CheckExtraBytes","$d8c5612f7377d5a9$var$utf8CheckIncomplete","$6341dfcd63edff71$var$_Object$setPrototypeO","$6341dfcd63edff71$var$_defineProperty","$6341dfcd63edff71$var$kLastResolve","$6341dfcd63edff71$var$kLastReject","$6341dfcd63edff71$var$kError","$6341dfcd63edff71$var$kEnded","$6341dfcd63edff71$var$kLastPromise","$6341dfcd63edff71$var$kHandlePromise","$6341dfcd63edff71$var$kStream","$6341dfcd63edff71$var$createIterResult","$6341dfcd63edff71$var$readAndResolve","iter","$6341dfcd63edff71$var$onReadable","$6341dfcd63edff71$var$AsyncIteratorPrototype","$6341dfcd63edff71$var$ReadableStreamAsyncIteratorPrototype","promise","lastPromise","$6341dfcd63edff71$var$wrapForNext","_this2","_Object$create","iterator","$6vFfZ","$4bd5a41a3378bfdb$var$ERR_STREAM_PREMATURE_CLOSE","ERR_STREAM_PREMATURE_CLOSE","$4bd5a41a3378bfdb$var$noop","$4bd5a41a3378bfdb$var$eos","called","_len","_key","$4bd5a41a3378bfdb$var$once","onlegacyfinish","writableEnded","readableEnded","onrequest","$4bd5a41a3378bfdb$var$isRequest","$c6ebe7822cb69174$var$Transform","$c6ebe7822cb69174$var$ERR_METHOD_NOT_IMPLEMENTED","$c6ebe7822cb69174$require$_require$codes","$c6ebe7822cb69174$var$ERR_MULTIPLE_CALLBACK","$c6ebe7822cb69174$var$ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_ALREADY_TRANSFORMING","$c6ebe7822cb69174$var$ERR_TRANSFORM_WITH_LENGTH_0","ERR_TRANSFORM_WITH_LENGTH_0","$c6ebe7822cb69174$var$afterTransform","ts","_transformState","transforming","writechunk","rs","$a9LkH","afterTransform","needTransform","writeencoding","_transform","flush","_flush","$c6ebe7822cb69174$var$prefinish","$c6ebe7822cb69174$var$done","err2","$14a1a6c7d2f6d38a$var$PassThrough","$h4QYD","$c24904dab764023c$var$eos","$c24904dab764023c$var$ERR_MISSING_ARGS","$c24904dab764023c$require$_require$codes","ERR_MISSING_ARGS","$c24904dab764023c$var$ERR_STREAM_DESTROYED","$c24904dab764023c$var$noop","$c24904dab764023c$var$destroyer","$c24904dab764023c$var$once","closed","$c24904dab764023c$var$isRequest","$c24904dab764023c$var$call","$c24904dab764023c$var$pipe","to","$c24904dab764023c$var$popCallback","streams","destroys","$60f56cf57f59a56b$var$hasOwnProperty","$3007ea4c9d78a78a$export$98e6a39c04603d36","$3007ea4c9d78a78a$var$Url","slashes","query","pathname","href","$3007ea4c9d78a78a$var$urlParse","$3007ea4c9d78a78a$var$protocolPattern","$3007ea4c9d78a78a$var$portPattern","$3007ea4c9d78a78a$var$simplePathPattern","$3007ea4c9d78a78a$var$unwise","$3007ea4c9d78a78a$var$autoEscape","$3007ea4c9d78a78a$var$nonHostChars","$3007ea4c9d78a78a$var$hostEndingChars","$3007ea4c9d78a78a$var$hostnamePartPattern","$3007ea4c9d78a78a$var$hostnamePartStart","$3007ea4c9d78a78a$var$unsafeProtocol","javascript","$3007ea4c9d78a78a$var$hostlessProtocol","$3007ea4c9d78a78a$var$slashedProtocol","ftp","gopher","file","parseQueryString","slashesDenoteHost","$h69nw","isObject","isString","queryIndex","splitter","uSplit","rest","simplePath","exec","$1Xhaw","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","$567pR","toASCII","ae","esc","encodeURIComponent","escape","qm","format","relative","resolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","hasTrailingSlash","up","isAbsolute","root","freeExports","nodeType","freeModule","freeGlobal","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","overflow","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","ucs2","test","toUnicode","define","amd","$16c89e7bae0b692c$export$98e6a39c04603d36","$16c89e7bae0b692c$export$fac44ee5b035f737","$0818f0390a86456a$var$hasOwnProperty","qs","sep","regexp","maxKeys","kstr","vstr","$0818f0390a86456a$var$isArray","$eff2b9a01beb82c7$var$stringifyPrimitive","$eff2b9a01beb82c7$var$map","$eff2b9a01beb82c7$var$objectKeys","ks","$eff2b9a01beb82c7$var$isArray","$9LxR1","$85d60d6f8c1acbe0$var$https","$85d60d6f8c1acbe0$var$key","$85d60d6f8c1acbe0$var$validateParams","ArgumentTypeError","PositionalArgsError","$7fffc52a50511272$var$PositionalArgsError","$7fffc52a50511272$var$ArgumentTypeError","argName","argType","argValue","$7fffc52a50511272$var$TypedError","transactionHash","$cb1d9fcd59089ee7$var$__createBinding","$cb1d9fcd59089ee7$var$__setModuleDefault","$cb1d9fcd59089ee7$var$__importStar","$cb1d9fcd59089ee7$var$__exportStar","__exportStar","$cb1d9fcd59089ee7$var$__importDefault","formatError","parseResultError","$cb1d9fcd59089ee7$var$mustache_1","$cb1d9fcd59089ee7$var$rpc_error_schema_json_1","$cb1d9fcd59089ee7$var$error_messages_json_1","$cb1d9fcd59089ee7$var$CLASSMAP","$cb1d9fcd59089ee7$var$ServerTransactionError","$cb1d9fcd59089ee7$var$parseRpcError","errorObj","errorClassName","$cb1d9fcd59089ee7$var$walkSubtype","$cb1d9fcd59089ee7$var$formatError","assign","errorData","render","typeName","errorTypeName","errorName","$cb1d9fcd59089ee7$var$isObject","server_error","Failure","server_tx_error","transaction_outcome","objectToString","isFunction","typeStr","escapeRegExp","hasProperty","propName","primitiveHasOwnProperty","primitive","regExpTest","RegExp","testRegExp","nonSpaceRe","isWhitespace","entityMap","escapeHtml","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","parseTemplate","template","tags","openingTagRe","closingTagRe","closingCurlyRe","lineHasNonSpace","sections","spaces","hasTag","nonSpace","indentation","tagIndex","stripSpace","compileTags","tagsToCompile","mustache","chr","openSection","scanner","Scanner","eos","scanUntil","valueLength","scan","nestTokens","squashTokens","lastToken","squashedTokens","numTokens","nestedTokens","collector","Context","view","parentContext","cache","parent","Writer","templateCache","_cache","lookup","intermediateValue","names","lookupHit","clearCache","cacheKey","isCacheEnabled","partials","config","getConfigTags","renderTokens","originalTemplate","symbol","renderSection","renderInverted","renderPartial","unescapedValue","escapedValue","rawValue","subRender","indentPartial","partial","filteredIndentation","partialByNl","indentedValue","getConfigEscape","defaultWriter","factory","Timeout","InternalError","Closed","UnsuitableStakingKey","TriesToUnstake","TriesToStake","TotalPrepaidGasExceeded","TotalNumberOfActionsExceeded","SignerDoesNotExist","RequiresFullAccess","ReceiverMismatch","OnlyImplicitAccountCreationAllowed","NotEnoughBalance","NotEnoughAllowance","MethodNameMismatch","LackBalanceForState","InvalidSignerId","InvalidSignature","InvalidReceiverId","InvalidPredecessorId","InvalidNonce","InvalidDataReceiverId","ReceiptValidationError","InvalidChain","InsufficientStake","FunctionCallZeroAttachedGas","FunctionCallMethodNameLengthExceeded","FunctionCallArgumentsLengthExceeded","Expired","DepositWithFunctionCall","DeleteKeyDoesNotExist","DeleteActionMustBeFinal","DeleteAccountStaking","CreateAccountOnlyByRegistrar","CreateAccountNotAllowed","CostOverflow","BalanceMismatchError","AddKeyMethodNamesNumberOfBytesExceeded","AddKeyMethodNameLengthExceeded","AddKeyAlreadyExists","ActorNoPermission","ActionsValidationError","AccountDoesNotExist","AccountAlreadyExists","AccessKeyNotFound","InvalidAccessKeyError","InvalidTxError","WriteError","WasmerCompileError","WasmUnknownError","ValueLengthExceeded","Unreachable","TotalLogLengthExceeded","StackOverflow","StackHeightInstrumentation","SerializationError","Serialization","ReturnedValueLengthExceeded","ReadError","ProhibitedInView","NumberPromisesExceeded","NumberOfLogsExceeded","NumberInputDataDependenciesExceeded","MisalignedAtomicAccess","MethodUTF8Error","MethodNotFound","MethodInvalidSignature","MethodEmptyName","MethodResolveError","MemoryOutOfBounds","MemoryAccessViolation","Memory","LinkError","KeyLengthExceeded","IteratorWasInvalidated","InvalidRegisterId","InvalidReceiptIndex","InvalidPublicKey","InvalidPromiseResultIndex","InvalidPromiseIndex","InvalidMethodName","InvalidIteratorIndex","InvalidAccountId","InternalMemoryDeclared","IntegerOverflow","Instantiate","IncorrectCallIndirectSignature","IllegalArithmetic","GuestPanic","GenericTrap","GasLimitExceeded","GasInstrumentation","GasExceeded","EmptyMethodName","DeserializationError","Deserialization","PrepareError","Deprecated","ContractSizeExceeded","CodeDoesNotExist","CompilationError","CannotReturnJointPromise","CannotAppendActionToJointPromise","CallIndirectOOB","CacheError","BreakpointTrap","WasmTrap","BalanceExceeded","BadUTF8","BadUTF16","HostError","FunctionCallError","ActionError","TxExecutionError","$5817f44ca9bfd0f1$var$ServerError","$5817f44ca9bfd0f1$var$TxExecutionError","$5817f44ca9bfd0f1$var$ActionError","$5817f44ca9bfd0f1$var$FunctionCallError","$5817f44ca9bfd0f1$var$HostError","$5817f44ca9bfd0f1$var$WasmTrap","$5817f44ca9bfd0f1$var$CacheError","$5817f44ca9bfd0f1$var$CompilationError","$5817f44ca9bfd0f1$var$PrepareError","$5817f44ca9bfd0f1$var$MethodResolveError","$5817f44ca9bfd0f1$var$InvalidTxError","$5817f44ca9bfd0f1$var$InvalidAccessKeyError","$5817f44ca9bfd0f1$var$ActionsValidationError","$5817f44ca9bfd0f1$var$BalanceMismatchError","$5817f44ca9bfd0f1$var$ReceiptValidationError","$43e7806f804664b0$var$__createBinding","$43e7806f804664b0$var$__setModuleDefault","$43e7806f804664b0$var$__importStar","rpc_errors","enums","web","key_pair","$43e7806f804664b0$var$key_pair","$43e7806f804664b0$var$network","$43e7806f804664b0$var$serialize","$43e7806f804664b0$var$web","$43e7806f804664b0$var$enums","$43e7806f804664b0$var$format","$43e7806f804664b0$var$rpc_errors","$0d93b423df69718a$var$__importDefault","parseNearAmount","formatNearAmount","NEAR_NOMINATION","NEAR_NOMINATION_EXP","$0d93b423df69718a$var$bn_js_1","$0d93b423df69718a$var$ROUNDING_OFFSETS","$0d93b423df69718a$var$BN10","balance","fracDigits","balanceBN","roundingExp","wholeStr","fractionStr","padStart","pattern","$0d93b423df69718a$var$formatWithCommas","amt","wholePart","fracPart","padEnd","$b22707dc447d18cf$var$__importDefault","signTransaction","createTransaction","SCHEMA","Action","SignedTransaction","Transaction","Signature","deleteAccount","deleteKey","addKey","stake","transfer","functionCall","deployContract","createAccount","DeleteAccount","DeleteKey","AddKey","Stake","Transfer","FunctionCall","DeployContract","CreateAccount","IAction","functionCallAccessKey","fullAccessKey","AccessKey","AccessKeyPermission","FullAccessPermission","FunctionCallPermission","$b22707dc447d18cf$var$js_sha256_1","$b22707dc447d18cf$var$FunctionCallPermission","$b22707dc447d18cf$var$FullAccessPermission","$b22707dc447d18cf$var$AccessKeyPermission","$b22707dc447d18cf$var$AccessKey","permission","fullAccess","receiverId","methodNames","allowance","$b22707dc447d18cf$var$IAction","$b22707dc447d18cf$var$CreateAccount","$b22707dc447d18cf$var$DeployContract","$b22707dc447d18cf$var$FunctionCall","$b22707dc447d18cf$var$Transfer","$b22707dc447d18cf$var$Stake","$b22707dc447d18cf$var$AddKey","$b22707dc447d18cf$var$DeleteKey","$b22707dc447d18cf$var$DeleteAccount","$b22707dc447d18cf$var$Action","methodName","gas","deposit","anyArgs","serializedArgs","$b22707dc447d18cf$require$Buffer","stake1","accessKey","beneficiaryId","$b22707dc447d18cf$var$Signature","$b22707dc447d18cf$var$Transaction","$b22707dc447d18cf$var$SignedTransaction","$b22707dc447d18cf$var$createTransaction","signerId","actions","blockHash","$b22707dc447d18cf$var$signTransactionObject","transaction","signer","sha256","signMessage","Map","ERROR","WINDOW","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","node","COMMON_JS","JS_SHA256_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","blocks1","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","is224","Sha256","createMethod","nodeWrap","eval","algorithm","nodeMethod","createHash","digest","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","block","hBytes","finalized","hashed","oKeyPad","iKeyPad","inner","notString","lastByteIndex","finalize","s0","s1","maj","ab","da","cd","bc","hex","arrayBuffer","dataView","DataView","setUint32","innerHash","sha224","hmac","$7afc4ecf86842eba$var$__importDefault","diffEpochValidators","findSeatPrice","$7afc4ecf86842eba$var$bn_js_1","numSeats","stakes","sort","stakesSum","currentSum","currentValidators","nextValidators","validatorsMap","account_id","nextValidatorsSet","newValidators","has","removedValidators","changedValidators","$8e067b222e54941e$var$__importDefault","$8e067b222e54941e$var$bn_js_1","$8e067b222e54941e$var$depd_1","$8e067b222e54941e$var$exponential_backoff_1","$8e067b222e54941e$var$DEFAULT_FUNC_CALL_GAS","$8e067b222e54941e$var$parseJsonFromRawResponse","$8e067b222e54941e$require$Buffer","$8e067b222e54941e$var$Account","ready","provider","printLogsAndFailures","contractId","results","receiptIds","printLogs","logs","failure","accessKeyInfo","findAccessKey","$fiiGw","signedTx","sendTransaction","accessKeyByPublicKeyCache","flatLogs","receipts_outcome","it","outcome","receipt_ids","cachedAccessKey","amount","signAndSendTransaction","newAccountId","validateArgs","request_type","prefix_base64","accessKeys","getAccessKeys","authorizedApps","access_key","perm","receiver_id","public_key","protocolConfig","experimental_protocolConfig","costPerByte","runtime_config","storage_amount_per_byte","stateStaked","storage_usage","staked","locked","totalBalance","availableBalance","available","$1344d3634bb54de2$var$__importDefault","Account2FA","AccountMultisig","MULTISIG_CONFIRM_METHODS","MULTISIG_VIEW_METHODS","MULTISIG_CHANGE_METHODS","MULTISIG_DEPOSIT","MULTISIG_GAS","MULTISIG_ALLOWANCE","MULTISIG_STORAGE_KEY","$1344d3634bb54de2$var$bn_js_1","$1agJp","$1344d3634bb54de2$var$storageFallback","$1344d3634bb54de2$var$AccountMultisig","isDeleteAction","deleteUnconfirmedRequests","requestId","getRequestNonce","setRequest","$1344d3634bb54de2$require$Buffer","$1344d3634bb54de2$var$convertActions","onAddRequestResult","contract","request_ids","getRequestIds","request_id","delete_request","get_request_nonce","list_request_ids","getRequest","storage","$1344d3634bb54de2$var$getContract","sendCode","promptAndVerify","onConfirmResult","contractBytes","seedOrLedgerKey","getRecoveryMethods","rm","fak2lak","ak","$1344d3634bb54de2$var$toPK","confirmOnlyKey","postSignedJson","newArgs","num_confirmations","code_hash","signAndSendTransactionWithAccount","lak2fak","method_names","get2faMethod","securityCode","getCode","verifyCode","find","detail","blockNumber","height","signed","helperUrl","signatureFor","sendCodeDefault","getCodeDefault","verifyCodeDefault","viewMethods","changeMethods","action","method_name","$cf1af4346faf0b75$var$__importDefault","$cf1af4346faf0b75$var$bn_js_1","$cf1af4346faf0b75$var$nameFunction","$cf1af4346faf0b75$var$isUint8Array","$cf1af4346faf0b75$var$isObject","options1","ignored","viewFunction","argMap","bnLike","$cf1af4346faf0b75$var$validateBNLike","rawResult","UrlAccountCreator","LocalAccountCreator","AccountCreator","$03077287f5f5abfc$var$AccountCreator","masterAccount","initialBalance","newAccountPublicKey","$ab51ca51e8262d4a$var$Connection","$ab51ca51e8262d4a$var$getProvider","$ab51ca51e8262d4a$var$getSigner","$61f32ae6ce859077$var$__importDefault","$61f32ae6ce859077$var$js_sha256_1","$61f32ae6ce859077$var$Signer","$61f32ae6ce859077$var$InMemorySigner","$99d4e0ca04f9d654$var$__importDefault","$99d4e0ca04f9d654$var$bn_js_1","sender","originator","sendMoney","fromConfig","nodeUrl","deps","$g7FOL","$0b192d452138b2ef$var$__importDefault","$0b192d452138b2ef$var$depd_1","$0b192d452138b2ef$var$PENDING_ACCESS_KEY_PREFIX","$0b192d452138b2ef$var$WalletConnection","isSignedIn","_authData","getAccountId","contractIdOrOptions","successUrl","failureUrl","currentUrl","newUrl","_walletBaseUrl","searchParams","$5Ps5n","_keyStore","_networkId","callbackUrl","serialized","$0b192d452138b2ef$require$Buffer","allKeys","_authDataKey","_moveKeyFromTempToPermanent","delete","history","replaceState","document","signOut","_connectedAccount","$0b192d452138b2ef$var$ConnectedWalletAccount","_near","near","appKeyPrefix","authDataKey","authData","walletUrl","contractName","_completeSignInWithAccessKey","localKey","accessKeyForTransaction","walletConnection","requestSignTransactions","allowedReceiverId","allowedMethods","accessKeyMatchesTransaction","walletKeys","connect","$e354e8abcac8f776$var$polyfill","$7IdKc","check","$isPgW","$bd4044d9ea1892c0$var$define","$bd4044d9ea1892c0$var$test","callee","caller","strictModeIsEnforced","stacktrace","$d7129d200c353c55$var$detector","$d7129d200c353c55$var$capability","$2180be16ecd917c1$var$CapabilityDetector","tests","$3lhC9","getStackTrace","throwable","prepareStackTrace","frames","warnings","warningIndex","frameIndex","$lfQB5","terminator","frameShifts","captured","getInstance","captureFrameStrings","$519d75a711d80c27$require$cache","$1xnco","getFrames","frameStrings","functionValues","cachedStack","getFrameStrings","nonConfigurableError","Class","abstractMethod","eachCombination","$f793cc63b5f99e0a$var$AbstractFrameStringSource","$f793cc63b5f99e0a$require$Class","createError","capturedFrameStrings","capturedFunctionValues","aCaller","useStrictError","stackString","getStackString","stackStringChunks","fromPosition","toPosition","hasHeader","hasFooter","$f793cc63b5f99e0a$require$abstractMethod","$f793cc63b5f99e0a$var$FrameStringSourceCalibrator","calibrateClass","FrameStringSource","calibrateMethods","calibrateEnvelope","$f793cc63b5f99e0a$require$eachCombination","workingImplementation","merge","calibratorFrameStrings","getClass","$f793cc63b5f99e0a$require$cache","$2f1cb3b4e6a56e2a$var$Class","Source","buildArgs","checkOption","option","extend","build","Subject","staticProperty","subject","absorb","getAncestor","newInstance","store","alternativesByDimension","combination","alternatives","$11eade585d9297ce$var$FrameStringParser","$11eade585d9297ce$require$Class","stackParser","frameParser","locationParsers","getFrame","frameString","functionValue","$kzMug","$11eade585d9297ce$require$cache","$efacb01228127036$var$Frame","$efacb01228127036$require$Class","getThis","$efacb01228127036$require$abstractMethod","getTypeName","getFunction","getFunctionName","getMethodName","getFileName","getLineNumber","getColumnNumber","getEvalOrigin","isTopLevel","isEval","isNative","isConstructor","$772c57bcb9fd1781$require$cache","$5bb8c1f4dd174367$var$ownKeys","$5bb8c1f4dd174367$export$2e2bcd8739ae039","$ee2943f37bed84ec$var$__createBinding","$ee2943f37bed84ec$exports","$ee2943f37bed84ec$var$__setModuleDefault","$ee2943f37bed84ec$var$__importStar","$ee2943f37bed84ec$var$__exportStar","$c9b1126f305cb8e9$exports","$0287b98b105b7ac7$export$938640191ef9bf82","$0287b98b105b7ac7$export$12b18eb18831125f","$0287b98b105b7ac7$export$bad63d8ae0c1300","$0287b98b105b7ac7$export$d48d4e443532a80b","$0287b98b105b7ac7$export$3f5b377486c92e81","$0287b98b105b7ac7$var$MAINNET_NETWORKID","$0287b98b105b7ac7$var$MAINNET_NODEURL","$0287b98b105b7ac7$var$MAINNET_WALLETURL","$0287b98b105b7ac7$var$MAINNET_HELPERURL","$0287b98b105b7ac7$var$MAINNET_EXPLORERURL","$0287b98b105b7ac7$var$TESTNET_NETWORKID","$0287b98b105b7ac7$var$TESTNET_NODEURL","$0287b98b105b7ac7$var$TESTNET_WALLETURL","$0287b98b105b7ac7$var$TESTNET_HELPERURL","$0287b98b105b7ac7$var$TESTNET_EXPLORERURL","$0287b98b105b7ac7$export$83401e34d5e11bf4","$0287b98b105b7ac7$export$44487a86467333c3","nftContractAddress","cheddarNFTBaseUrl","cheddarContractName","cheddarNFTContractName","explorerUrl","keyPath","farms","poolType","poolName","tokenContractName","nftBaseUrl","logo","noBoost","$60b4a2c04ed6d739$var$NOT_CONNECTED","$60b4a2c04ed6d739$export$1f0498598ce9a2d1","meta","getDisplayableAccountId","getNetwork","setNetwork","isConnected","disconnect","connectionHelp","checkConnected","attachedYoctos","$839af26fe369ef59$export$88307f756ae70797","$839af26fe369ef59$export$4fc881fbd1f93166","major","minor","$2ff69eef9c4b1812$export$a23c9a0ed5b61ebb","accName","getAccountBalance","finalExecOutcome","$parcel$interopDefault","$hi2iv","bt","$df583c12251ddc79$export$20c1ad7ba414407","addItem","items","$df583c12251ddc79$export$f8167a095360b19f","attached","$df583c12251ddc79$export$9a1bafc170b69ba1","$df583c12251ddc79$export$cec4f96e18e205ef","$8fa95b9ef49776e6$export$81d11c1527f62419","_accountId","$8fa95b9ef49776e6$export$4dcfb26e67b1d7a6","_network","setRequiredVersion","semver","_requiredVersion","_isConnected","dispatchEvent","CustomEvent","postMessage","$8fa95b9ef49776e6$export$288f2dab8842dc1f","onConnect","OnDisconnect","$8fa95b9ef49776e6$export$f31d877c85ff1bef","$8fa95b9ef49776e6$export$92eed6c623a0a902","$8fa95b9ef49776e6$export$3e2987166bf8263","$8fa95b9ef49776e6$var$msgReceivedFromContentScript","ref","ref1","walletNetwork","$8fa95b9ef49776e6$export$63d3d30f802e1ca1","relayer","fromNumber","eventKey","$8fa95b9ef49776e6$var$eventFromCode","eventInfo","$8fa95b9ef49776e6$var$processRequestResolved","inx","$8fa95b9ef49776e6$var$requests","findIndex","requestPayload","$8fa95b9ef49776e6$var$requestId","payload","$b9a6bf0e31025758$var$base1e","$b9a6bf0e31025758$var$b1e","$b9a6bf0e31025758$var$b1e12","$b9a6bf0e31025758$var$b1e24","$b9a6bf0e31025758$var$b1e18","$b9a6bf0e31025758$export$1e6601f564a1737","tgas","$b9a6bf0e31025758$export$a386db35d45c2362","$b9a6bf0e31025758$export$7b927db028bec867","yoctos","decimals","truncated","$b9a6bf0e31025758$export$1da76a640d7f960f","ex","$b9a6bf0e31025758$export$f9906266a26d8d29","yoctoString","$b9a6bf0e31025758$export$db8ae05e40dfea01","truncate","integer","fractional","$b9a6bf0e31025758$export$b0ebaadef1c606a9","decimals_n","dotIdx","$b9a6bf0e31025758$export$a0a81dc3380ce7d3","$b9a6bf0e31025758$export$328b775d6414ebd9","textNoDec","$b9a6bf0e31025758$export$b1ab8e1b738f4390","$b9a6bf0e31025758$export$b6fe44657ce35c42","$b9a6bf0e31025758$export$ba2f53b14f87ad90","$b9a6bf0e31025758$export$4ff57fb4047274ad","$b9a6bf0e31025758$export$806e5ea7df183088","withDecPoint","decPointPos","endsWith","$b9a6bf0e31025758$export$22adc86566c697a9","$248679f431bbdfb1$export$836aee6bce45247","selector","querySelector","$248679f431bbdfb1$export$fc7d7d4be9a81733","$248679f431bbdfb1$export$9ca9051b92b5a6d2","querySelectorAll","$248679f431bbdfb1$export$9eb2db9699667c2d","innerText","HTMLElement","$248679f431bbdfb1$export$dd7fd6fec96e1ca2","attributeKey","attributeValue","setAttribute","$248679f431bbdfb1$export$1d4df0cf03e6e33","innerHTML","$248679f431bbdfb1$export$57bf213be019eeb0","el","onOff","style","display","$248679f431bbdfb1$export$fe8985bb6374093c","$248679f431bbdfb1$export$348d584e223bdf1b","$248679f431bbdfb1$var$cancelWait","overlay","titleElem","msgElem","$248679f431bbdfb1$export$bba5038aab73375b","$248679f431bbdfb1$export$e7f12c9836083937","$248679f431bbdfb1$var$waitStartTimer","$248679f431bbdfb1$export$11aadaec4fc63f87","$248679f431bbdfb1$export$fd427ccb0ab5463c","$248679f431bbdfb1$export$787f5d117f138d13","$248679f431bbdfb1$export$d841eba85c078f0b","$248679f431bbdfb1$export$3879b24e8245693d","$248679f431bbdfb1$export$dfd8f75b38935068","$a1901cd8d330ea8c$var$removeQueryString","uri","clean_uri","$a1901cd8d330ea8c$export$889ec11431078ec6","nearExplorerUrl","urlParams","URLSearchParams","errorCode","newError","decodedTxHash","txStatus","finalExecutionOutcome","$a1901cd8d330ea8c$export$3a28093ab7225491","transactionArray","decodedTxHashArray","finalExecOutcomeArray","all","ref2","$70ddfce028b3e75b$export$fc1ba6948f99dde","argsAsString","argsBase64","$70ddfce028b3e75b$require$Buffer","args_base64","wallet","callWithoutSend","nearWallet","$60b4a2c04ed6d739$export$bb2eafcb55f553b2","$48eaa3ca5daefed6$export$d71917a79103c107","$48eaa3ca5daefed6$export$fa494f8daebcc431","$26c51626e8e4c222$export$bbe373bfa0af92e4","memo","viewWithoutAccount","owner_id","owner_supply","storageBalance","storageDeposit","$25b2da885b5e1632$export$7e73baf1cf92be47","spec","symbolForHtml","icon","reference","reference_hash","$759dad8788f9d372$export$dc767fa29fe54e3e","get_contract_params","unstake","withdraw_crop","$18498364455f9fa4$export$e108c1b39d7e0fac","ft_transfer_call","withdraw_nft","$044b5c1339db7e80$export$63440f1175eeef41","$044b5c1339db7e80$export$73a2e73f570f907e","stakeTokensLength","farmTokensLength","stake_tokens","farmed_tokens","$044b5c1339db7e80$export$7005356a305e265f","$044b5c1339db7e80$export$6875f93d4a1de0a9","$044b5c1339db7e80$export$8daa4e1bda236b7a","$1565d9de73496825$export$80040c3fb8bb2354","contractNameArray","tokenContractList","$1565d9de73496825$export$596742cc9b3ae571","$1565d9de73496825$export$9d77544a33e134de","refreshData","contractParamsPromise","userStatusPromise","contractParams","userStatus","getContractParamsNotAsync","getContractParams","farm_tokens","stakeTokenContractList","stakeTokenContractListPromise","farmTokenContractList","getStakeTokenContractListPromise","$1565d9de73496825$export$d232c04878d54e59","total_staked","total_stake","farming_rate","rewards_per_day","total_farmed","total_rewards","$87c0b564e06fda7a$export$26f0531857244c80","stakeTokenContractId","metaData","metaDataPromise","getMetadataSync","balancePromise","getBalanceSync","ft_balance_of","ft_metadata","$87c0b564e06fda7a$export$1740a3f8db800117","formId","hasStakedTokens","getDisplayableComputed","computed","getCurrentCheddarRewards","real","getCurrentDisplayableCheddarRewards","getDisplayableAccountName","addStaked","previousTimestamp","$87c0b564e06fda7a$export$5fdb16077e6436d1","poolUserStatus","stakingContractData","getUserStatus","getMetadata","getStakeTokenContractData","getTokenContractList","cheddarContract","setStakeTokenContractList","setFarmTokenContractList","cheddarMetaData","isSvg","tokenName","dataArray","stakeTokenContractData","getStakeTokenContractList","iconData","getIcon","metadata","totalStaked","farmTokenContract","farmTokenMetadata","rewardsPerDay","totalRewards","userUnclaimedRewards","contractData","stakeTokenContract","farmData","cheddarContractId","html","poolDescription","description","descriptionLink","stakeTokenMetaData","$56083e7e790d0209$export$12131bc15911221e","txPromiseArray","promises","resultPromises","transactions1","$56083e7e790d0209$var$makeTransaction","nonceOffset","$ec1ded60358f437c$export$315a074d6b25bbf6","token_id","from_index","tokenId","baseUrl","$a0b3ca7a228f2ec4$export$e92e348dc3f4e2ff","nft_contract_id","$d30af8da2e5b5a88$var$getNFTContractList","NFTContractList","NFTContractName","$d30af8da2e5b5a88$export$3ba1d02e9c140420","$d30af8da2e5b5a88$export$68352fe06acea8e8","cheddar","stakeNFTContractList","stakeNFTContractListPromise","getStakeNFTContractListPromise","tokensForOwner","tokensForOwnerPromise","getTokensForOwnerSync","nft_tokens_for_owner","nft_metadata","$9abd5ffcf1077e8a$export$c5b7d705df392988","some","boost_nfts","nftContractForBoosting","cheddar_rate","ft_transfer_call_without_send","transferNFT","stakeNFTContract","nft_transfer_call_without_send","stakeUnstakeNFTsMap","TXs","stakeUnstakeNFTs","getStakeNFTContractList","nftsToStake","transferCheddar","nftsToUnstake","promiseWithContract","unstake_without_send","stakeTokenMetadata","getFarmTokenContractList","rewardsPerDayBN","farm_unit_emission","farm_token_rates","walletAvailable","getBalance","nftContract","nftBaseUrlForBoosting","$bee33ca938e55edd$export$1740a3f8db800117","$bee33ca938e55edd$export$ab1e7e935838883f","amountArray","stakedTokensLength","farmedTokensLength","farmed","$bee33ca938e55edd$export$856d9c4c9c7b8da0","tokenNames","cheddarSymbol","hasCheddar","tokenContractData","tokenMetadata","isCheddar","amounts","stakeContract","$b30dd8d804760f6e$var$poolList","$ef2d5ecaf6640d97$var$tokenDataArray","$b30dd8d804760f6e$var$generatePoolList","poolParams","setAllExtraData","$b30dd8d804760f6e$export$f08cc331730b6f90","pool","farming_end","$ef2d5ecaf6640d97$var$testTokensSymbols","$ef2d5ecaf6640d97$var$setAllTokensData","$ef2d5ecaf6640d97$export$91b8816a124ef494","reloadData","$ef2d5ecaf6640d97$var$getPriceWithData","tokenSymbol","tokenData","$ef2d5ecaf6640d97$export$2e042ee8088ce7ba","tokenArray","$0289842476b67664$export$df86ca1385cfe2b","contract_id","base_url","media","media_hash","copies","issued_at","expires_at","starts_at","updated_at","approved_account_ids","$100d9ffa172c6eec$var$pointsA","$100d9ffa172c6eec$var$pointsB","$100d9ffa172c6eec$var$$canvas","$100d9ffa172c6eec$var$canvas","$100d9ffa172c6eec$var$context","$100d9ffa172c6eec$var$vars","$100d9ffa172c6eec$var$points","$100d9ffa172c6eec$var$viscosity","$100d9ffa172c6eec$var$mouseDist","$100d9ffa172c6eec$var$damping","$100d9ffa172c6eec$var$showIndicators","$100d9ffa172c6eec$var$mouseX","$100d9ffa172c6eec$var$mouseY","$100d9ffa172c6eec$var$relMouseX","$100d9ffa172c6eec$var$relMouseY","$100d9ffa172c6eec$var$mouseLastX","$100d9ffa172c6eec$var$mouseLastY","$100d9ffa172c6eec$var$mouseDirectionX","$100d9ffa172c6eec$var$mouseDirectionY","$100d9ffa172c6eec$var$mouseSpeedX","$100d9ffa172c6eec$var$mouseSpeedY","$100d9ffa172c6eec$var$mouseDirection","pageX","pageY","getBoundingClientRect","top","$100d9ffa172c6eec$var$mouseSpeed","$100d9ffa172c6eec$export$40f8640a65e1db50","button","buttonWidth","buttonHeight","createElement","append","getContext","$100d9ffa172c6eec$var$addPoints","$100d9ffa172c6eec$var$renderCanvas","$100d9ffa172c6eec$var$Point","vx","ix","level","vy","iy","dx","dy","relDist","cx1","cy1","cx2","cy2","requestAnimationFrame","clearRect","fillStyle","fillRect","canvasRect","canvasOffset","scrollY","scrollX","gradientX","gradientY","distance","gradient","createRadialGradient","addColorStop","groups","points1","beginPath","moveTo","nextP","bezierCurveTo","rect","$305bf01fecf283f4$var$confettiCount","$305bf01fecf283f4$var$sequinCount","$305bf01fecf283f4$var$gravityConfetti","$305bf01fecf283f4$var$gravitySequins","$305bf01fecf283f4$var$dragConfetti","$305bf01fecf283f4$var$dragSequins","$305bf01fecf283f4$var$terminalVelocity","$305bf01fecf283f4$var$button","$305bf01fecf283f4$var$disabled","$305bf01fecf283f4$var$canvas","$305bf01fecf283f4$var$ctx","$305bf01fecf283f4$var$colors","front","back","$305bf01fecf283f4$var$randomRange","random","$305bf01fecf283f4$var$initConfettoVelocity","xRange","yRange","$305bf01fecf283f4$export$dd5caf7f88107e2f","initBurst","confetti","$305bf01fecf283f4$var$Confetto","confettiButton","canvas","sequins","$305bf01fecf283f4$var$Sequin","canvas1","ctx1","confetto","dimensions","scale","translate","rotate","rotation","color","setTransform","velocity","offsetWidth","offsetHeight","sequin","arc","radius","clickButtonWithRedirection","poolID","sessionStorage","classList","remove","successAnimation","clickButtonWithoutRedirection","resizeCanvas","innerWidth","innerHeight","randomModifier","button1","canvas2","button2","canvas3","$48eaa3ca5daefed6$export$4b6dd4ac026934d2","$48eaa3ca5daefed6$var$nearWebWalletConnection","$48eaa3ca5daefed6$var$nearConnectedWalletAccount","$48eaa3ca5daefed6$var$accountName","$48eaa3ca5daefed6$var$isPaused","$48eaa3ca5daefed6$var$loggedWithNarwallets","$48eaa3ca5daefed6$var$SECONDS","$48eaa3ca5daefed6$var$MINUTES","$48eaa3ca5daefed6$var$HOURS","$48eaa3ca5daefed6$var$countDownIntervalId","$48eaa3ca5daefed6$var$refreshTime","$48eaa3ca5daefed6$var$ONE_NEAR","onclick","preventDefault","$48eaa3ca5daefed6$var$showSection","$48eaa3ca5daefed6$var$selectNav","$48eaa3ca5daefed6$var$signedOutFlow","$48eaa3ca5daefed6$var$signedInFlow","$48eaa3ca5daefed6$var$loginNearWebWallet","$48eaa3ca5daefed6$var$moreGamesButton","$48eaa3ca5daefed6$var$gamesDropdownHandler","$48eaa3ca5daefed6$var$noLivePoolsMsg","toggle","$48eaa3ca5daefed6$var$navClickHandler_ConnectFirst","closest","$48eaa3ca5daefed6$var$sayChoose","$48eaa3ca5daefed6$var$filterPools","$48eaa3ca5daefed6$var$filterButtonClicked","$48eaa3ca5daefed6$var$hideAllPools","$48eaa3ca5daefed6$var$showSelectedPools","selectedPools","$48eaa3ca5daefed6$var$activateClicked","stakeTokenList","tokenContract","$48eaa3ca5daefed6$var$needsStorageDeposit","storageDepositWithoutSend","contractStorageBalanceData","$48eaa3ca5daefed6$var$getUnclaimedRewardsInUSDSingle","rewardTokenData","currentRewardsDisplayable","parseFloat","price","$48eaa3ca5daefed6$var$convertToUSDMultiple","amountList","rewardTokenArray","rewardTokenDataMap","amountInUsd","toFixed","$48eaa3ca5daefed6$var$stakeMultiple","newPool","inputArray","unixTimestamp","Date","getTime","htmlInputArray","amountValuesArray","amountValues","transferedAmountWithSymbolArray","stakedAmountWithSymbol","$48eaa3ca5daefed6$var$getInputDataMultiple","removeAttribute","$48eaa3ca5daefed6$var$unstakeMultiple","unstakedAmountWithSymbol","inputContainerList","boundary","getWalletAvailable","currentStakeTokenMetadata","stakeAmountBN","balanceDisplayable","stakedAmountWithSymbolArray","$48eaa3ca5daefed6$var$stakeSingle","stakeInput","stakeAmount","$48eaa3ca5daefed6$var$harvestMultipleOrNFT","$48eaa3ca5daefed6$var$harvestSingle","$48eaa3ca5daefed6$var$unstakeSingle","unstakeInput","unstakeAmount","stakedDisplayable","$48eaa3ca5daefed6$var$termsOfUseListener","$48eaa3ca5daefed6$var$showUnstakeResult","unstaked","$48eaa3ca5daefed6$var$showRemoveLiquidityResult","yoctoCheddar","$48eaa3ca5daefed6$var$autoRefresh","section","$48eaa3ca5daefed6$var$takeUserAmountFromHome","notConnectedStakeInput","wallet1","walletDisplayableID","walletID","accountIdElement","$48eaa3ca5daefed6$var$setDefaultFilter","didJustActivate","Event","allYourFarmsPools","allLivePools","$48eaa3ca5daefed6$var$initNearWebWalletConnection","near1","$48eaa3ca5daefed6$var$logoutNearWebWallet","origin","requestSignIn","$48eaa3ca5daefed6$var$loginNarwallets","$48eaa3ca5daefed6$var$showOrHideMaxButton","walletBalance","$48eaa3ca5daefed6$var$setDateInRangeVisualIndication","isDateInRange","dateInRangeIndicator","allUnclaimedRewardsTotalAmount","allUnclaimedRewardsDetails","unclaimedRewardDetail","amountContainer","unclaimedRewards","unclaimedRewardsValue","$48eaa3ca5daefed6$var$refreshPoolInfoSingle","refreshAllExtraData","userPoolParams","$48eaa3ca5daefed6$var$updateDetail","$48eaa3ca5daefed6$var$convertRewardsRates","$48eaa3ca5daefed6$var$uptadeDetailIfNecesary","getFarmTokenContractData","stakeBalances","stakeCD","$48eaa3ca5daefed6$var$refreshInputAmounts","doesPoolNeedDeposit","contains","now","farming_start","$48eaa3ca5daefed6$var$resetSinglePoolListener","$48eaa3ca5daefed6$var$refreshNFTOrMultiplePoolInfo","getRewardsTokenDetail","$48eaa3ca5daefed6$var$resetMultiplePoolListener","$48eaa3ca5daefed6$var$resetNFTPoolListener","$48eaa3ca5daefed6$var$setBoostDisplay","maxButton","rates","rate","contractList","totals","baseClass","totalInUsd","totalDetailsElements","row","$48eaa3ca5daefed6$var$refreshAccountInfoGeneric","poolList","$48eaa3ca5daefed6$var$narwalletConnected","$48eaa3ca5daefed6$var$narwalletDisconnected","$48eaa3ca5daefed6$var$calculateAmountHaveStaked","stakeRates","amountIndex","newAmountIndex","$48eaa3ca5daefed6$var$calculateAmountToStake","inputIndex","outputIndex","amountToStake","$48eaa3ca5daefed6$var$calculateAmountToUnstake","alreadySetIndex","newIndex","totalAmountStakedWithThisUnstake","$48eaa3ca5daefed6$var$autoFillStakeAmount","inputRoute","indexInputToken","value1","inputTokenMetadata","amountToStakingOrUnstaking","inputs","stake_rates","totalStakedByUser","indexOutputToken","amountToTransferSecondaryBN","amountToStakeSecondary","$48eaa3ca5daefed6$var$addPoolSingle","farmTokenContractData","$48eaa3ca5daefed6$var$addInput","$48eaa3ca5daefed6$var$addHeader","totalStakedInUsd","rewardsPerDayInUsd","apr","$48eaa3ca5daefed6$var$calculateAPR","$48eaa3ca5daefed6$var$addSinglePoolListeners","$48eaa3ca5daefed6$var$addTokenFarmLogos","tokenContractDataArray","logoContainer","tokenIconData","$48eaa3ca5daefed6$var$addLogo","$48eaa3ca5daefed6$var$addNFTFarmLogo","newTokenLogoElement","cloneNode","imgUrl","$48eaa3ca5daefed6$var$toggleGenericClass","$48eaa3ca5daefed6$var$addAllLogos","newHeader","poolContainer","tokenPoolStatsContainer","newTokenPoolStats","$48eaa3ca5daefed6$var$addMultiplePoolListeners","ref3","tokenSymbols","$48eaa3ca5daefed6$var$setAllInputMaxButtonListeners","refreshIntervalId","setInterval","boostButton","boostButtonId","$48eaa3ca5daefed6$var$showNFTGrid","$48eaa3ca5daefed6$var$standardHoverToDisplayExtraInfo","$48eaa3ca5daefed6$var$addNFTPoolListeners","stakeUnstakeNftButton","stakeUnstakeNftButtonId","disabled","$48eaa3ca5daefed6$var$showStakeUnstakeNFTGrid","$48eaa3ca5daefed6$var$addPoolTokensDescription","legendContainer","poolLegends","descriptionLinks","$48eaa3ca5daefed6$var$addNFTPool","justifyContent","$48eaa3ca5daefed6$var$addPoolMultiple","hasNFTStaked","cheddy_nft","$48eaa3ca5daefed6$var$addFocusClass","stakedAmount","newInputContainer","inputRowContainer","infoRowContainer","tokenLogoElement","inputLogoContainer","amountAvailableValue","$48eaa3ca5daefed6$var$toggleExpandStakeUnstakeSection","elemWithListener","expandPoolButton","stakingUnstakingContainer","$48eaa3ca5daefed6$var$flipElement","$48eaa3ca5daefed6$var$toggleActions","elementWithListenner","elementShown","$48eaa3ca5daefed6$var$toggleElement","$48eaa3ca5daefed6$var$showElement","$48eaa3ca5daefed6$var$hideElement","$48eaa3ca5daefed6$var$hideAllDynamicElements","$48eaa3ca5daefed6$var$addAllCommonListeners","doesNeedStorageDeposit","infoIcon","poolStats","vanishingIndicator","$48eaa3ca5daefed6$var$paintOrUnPaintElement","expandButtonStakingUnstaking","$48eaa3ca5daefed6$var$makeBlinkElement","ref4","ref5","ref6","refreshFunction","$48eaa3ca5daefed6$var$displayInactiveP2P3Pool","$48eaa3ca5daefed6$var$displayActivePool","clearInterval","replaceWith","$48eaa3ca5daefed6$var$displayInactiveNFTPool","$48eaa3ca5daefed6$var$addFilterClasses","userHasStakedTokens","$48eaa3ca5daefed6$var$addPool","singlePoolParams","multiplePoolParams","$48eaa3ca5daefed6$var$addRewardTokenIcons","$48eaa3ca5daefed6$var$addTotalStakedDetail","$48eaa3ca5daefed6$var$addRewardsPerDayDetail","$48eaa3ca5daefed6$var$addRewardsTokenDetail","$48eaa3ca5daefed6$var$addUnclaimedRewardsDetail","showContractStart","showContractEnd","accountRegistered","accounts_registered","getPoolName","element","fee_rate","$48eaa3ca5daefed6$var$showSuccessOnHarvestAnimation","$48eaa3ca5daefed6$var$toggleStakeUnstakeSection","$48eaa3ca5daefed6$var$setUnstakeTabListeners","stakeTabButton","unstakeTabButton","staking","unstaking","stakeButton","unstakeButton","$48eaa3ca5daefed6$var$showElementHideAnother","$48eaa3ca5daefed6$var$setActiveColor","$48eaa3ca5daefed6$var$cancelActiveColor","$48eaa3ca5daefed6$var$displayIfNftPool","isAccountRegistered","hasUserStaked","$48eaa3ca5daefed6$var$displayIfTokenPool","activateButtonContainer","activateButton","warningText","harvestSection","container","tokenIconDataArray","getRewardTokenIconData","newMiniIcon","$48eaa3ca5daefed6$var$importMiniIcon","stakeTokenDataArray","getStakeTokensDetail","totalStakedRows","parentClass","stakeTokenData","rows","$48eaa3ca5daefed6$var$addDetailRows","$48eaa3ca5daefed6$var$convertAndAddRewardDataRows","rewardsTokenDataArray","rewardsPerDayRows","rewardsTokenData","rowsData","parentElement","genericRow","newRow","iconContainer","iconNode","parser","DOMParser","parseFromString","documentElement","newClass","inputContainerArray","inputContainer","$48eaa3ca5daefed6$var$inputMaxButtonClicked","inputEvent","$48eaa3ca5daefed6$var$addPoolList","childElementCount","$48eaa3ca5daefed6$var$closePublicityButtonHandler","$48eaa3ca5daefed6$var$closePublicityButton","$48eaa3ca5daefed6$var$setCountdown","countDownDate","getTimezoneOffset","getElementById","days","hours","minutes","seconds","$48eaa3ca5daefed6$var$stakeResult","argsArray","tokensStakedMessage","$48eaa3ca5daefed6$var$unstakeResult","tokensUnstakedMessage","elementToShow","tagName","elementToFlip","previousColoringClass","elementToPaint","elementToMakeBlink","elementToHide","elementToDisplayAsNotActive","$48eaa3ca5daefed6$var$loadAndShowNfts","buttonId","$48eaa3ca5daefed6$var$loadNFTs","confirmStakeUnstakeNFTButton","$48eaa3ca5daefed6$var$NFTPoolSection","cancelStakeUnstakeNFTButton","$48eaa3ca5daefed6$var$confirmStakeUnstakeNFTButtonHandler","$48eaa3ca5daefed6$var$quitNFTFlex","$48eaa3ca5daefed6$var$displayCheddarNeededToStakeNFTs","stakeRate","nftPoolSection","countSelectedToStakeNfts","nftPoolsSection","allNFTCardsByAction","card","$48eaa3ca5daefed6$var$selectAllActionNftButtons","NFTContainer","stakedOrBoostingNFTsToAdd","userUnstakedNFTsWithMetadata","mapped","nft","poolHasStaked","nftContractList","nftMetadata","base_uri","userUnstakedNFTs","contractTokens","thisUserStakedNFTsPromises","nft_token","$48eaa3ca5daefed6$var$addNFT","$48eaa3ca5daefed6$var$checkIfMultipleSelectionButtonsMustBeSelected","unstakedSelectedAmount","stakeAllButton","unstakedAmount","unstakeAllButton","stakedSelectedAmount","$48eaa3ca5daefed6$var$stakeAndUstakeNFTButtonHandler","newNFTCard","cheddarBalanceContainer","cheddarBalance","cheddarNeededToStakeNFTsContainer","$48eaa3ca5daefed6$var$getNFTsToStakeAndUnstake","haveNftsToStake","nftContractData","nftName","thisNFTStakeButton","getAttribute","contractStakeUnstakeData","$48eaa3ca5daefed6$var$displayNFTPoolSectionForStakeUnstakeNFT","NFTStakeTitle","$48eaa3ca5daefed6$var$displayNFTPoolSectionForNFTBoost","NFTPoolSectionInfoRow","$48eaa3ca5daefed6$var$stakeNFT","$48eaa3ca5daefed6$var$unstakeNFT","nftMedia","imgElement","nft_transfer_call","NFTCard","withdrawBoost","$48eaa3ca5daefed6$var$hideNFTFlexComponents","hideNFTFlexComponents1","$48eaa3ca5daefed6$var$showNFTFlexComponents","showNFTFlexComponents1","headerCheddarValueDisplayerContainer","cheddarValue","circulatingSupply","ft_total_supply","searchParamsResultArray","searchParamsResult","errResult","methodResult","atob","$48eaa3ca5daefed6$var$burgerTogglers","toggler","$48eaa3ca5daefed6$var$toggleBurgerNav"],"version":3,"file":"index.9beecf59.js.map"} \ No newline at end of file diff --git a/index.c77ebeb6.css b/index.c77ebeb6.css new file mode 100644 index 0000000..ce2b642 --- /dev/null +++ b/index.c77ebeb6.css @@ -0,0 +1,2 @@ +@import "https://rsms.me/inter/inter.css";:root,button{font-family:Titillium Web,sans-serif}@supports (font-variation-settings: normal){:root,button{font-family:Titillium Web,sans-serif}} +/*# sourceMappingURL=index.c77ebeb6.css.map */ diff --git a/index.c77ebeb6.css.map b/index.c77ebeb6.css.map new file mode 100644 index 0000000..1d41d43 --- /dev/null +++ b/index.c77ebeb6.css.map @@ -0,0 +1 @@ +{"mappings":"A,0CCGA,kDACA,4CACE","sources":["index.c77ebeb6.css","src/font-face.css"],"sourcesContent":["@import \"https://rsms.me/inter/inter.css\";\n:root, button {\n font-family: Titillium Web, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n :root, button {\n font-family: Titillium Web, sans-serif;\n }\n}\n\n/*# sourceMappingURL=index.c77ebeb6.css.map */\n","@import url('https://rsms.me/inter/inter.css');\r\n/*getting from rsms.me. The fonts from google API do not have glyphs like 'Ⓝ'*/\r\n\r\n:root, button { font-family: 'Titillium Web', sans-serif; }\r\n@supports (font-variation-settings: normal) {\r\n :root, button { font-family: 'Titillium Web', sans-serif; }\r\n} \r\n\r\n"],"names":[],"version":3,"file":"index.c77ebeb6.css.map"} \ No newline at end of file diff --git a/index.e692f8a6.css b/index.e692f8a6.css new file mode 100644 index 0000000..d2aa3bd --- /dev/null +++ b/index.e692f8a6.css @@ -0,0 +1,2 @@ +@import "https://fonts.googleapis.com/css2?family=Bubblegum+Sans&display=swap";@import "https://fonts.googleapis.com/css2?family=Titillium Web";*{-webkit-font-smoothing:antialiased;margin:0;padding:0}html{--white:white;--bg:#f8f9fa;--fg:#333;--primary-selected:#9d67ef;--primary:#8542eb;--primary-low:rgba(133,66,235,.44);--secondary:#4bc7ef;--success:#5ace84;--input:#f6f2fd;--yellow:#f9ba37;--second-yellow:#ffd262;--second-yellow-selected:rgba(255,210,98,.66);--gray:#555;--new-gray:#9c9494;--second-new-grey:#ebe7f5;--light-gray:#ccc;--shadow:#e6e6e6;background-color:var(--bg);--publicity-height:130px;color:var(--fg);background:#5e8c01 url(newFarmBackground.c6905a5e.png) top/100% no-repeat;font-family:Titillium Web,sans-serif;font-size:13px;font-weight:500}.focused{outline-style:none;outline-color:(--primary);box-shadow:var(--primary-low)0px 0px 0px 2px;border-radius:6px;outline-width:1px}.flipped{transform:rotate(180deg)}#logo:focus{outline-style:none;outline-color:(--primary);box-shadow:none;outline-width:0}*,:before,:after{box-sizing:border-box}body{max-width:117rem;margin:0 auto;line-height:1;overflow-y:auto}.publicity-container{width:100%;height:var(--publicity-height);background:radial-gradient(var(--primary-selected),var(--primary));justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.publicity-container img{height:40%;aspect-ratio:1;margin:10px}.publicity-container .farm-img{transform:translateY(-4px)}.publicity-container .learn-img{transform:translateY(-2px)}.publicity-container span{text-shadow:1px 0 #fd941f,-1px 0 #fd941f,0 1px #fd941f,0 -1px #fd941f,-1px -1px #fd941f,1px -1px #fd941f,1px 1px #fd941f,-1px 1px #fd941f,-1px 1px #fd941f;color:var(--bg);letter-spacing:3px;font-size:4rem;font-weight:400;font-family:Bubblegum Sans!important}.close-publicity{color:var(--bg);position:absolute;top:12px;right:12px}.publicity-decoration{top:var(--publicity-height);height:30px;z-index:0;width:100%;background:linear-gradient(180deg,var(--primary),transparent);position:absolute;left:0}.publicity-decoration.no-publicity-position{top:0}header{max-height:59px;flex-flow:row;align-items:center;margin:164px 15px 0;display:flex}main{margin-top:15px}header.no-publicity-position{margin:33px 15px 0}.header-extension{display:flex}h1{color:#272d36;font-size:40px;font-weight:400;line-height:40px}h2 img{vertical-align:middle;width:35px;height:35px;border-radius:50%;justify-content:center;padding:5px;box-shadow:0 2px 14px rgba(0,0,0,.19)}h3{color:#333;align-self:flex-start;margin:0;font-size:16px;font-weight:700;line-height:18px;display:flex}h4{text-align:center;color:#333;margin-top:.25em;margin-bottom:0;font-size:14px;font-weight:500;line-height:17px}h5{color:#333;align-items:center;margin-top:.3em;margin-bottom:0;font-size:13px;font-weight:400;line-height:16px;display:flex}p{margin-bottom:0;font-size:13px;font-weight:400;line-height:18px}header div.title{white-space:break-spaces;flex:15%;margin-left:18px;font-size:14px;font-weight:700;line-height:16px}nav{width:calc(100% - 175px);justify-content:space-between;display:flex}#burguer{width:calc(100% - 88.5px)}.burguer-content{flex-flow:wrap;flex:30%;justify-content:space-between;align-items:center;margin-top:5px;display:flex}.left-on-full-screen{flex-direction:row!important;align-self:flex-start!important}#navigation{align-items:center;display:flex}.cheddar-main-logo-container{display:none}.burger-button{cursor:pointer;display:none}.burger-button div{width:19px;height:3.2px;background-color:#000}.burger-button div:not(:last-child){margin-bottom:5px}a{text-decoration:none}a.selected{color:rgba(255,255,255,.89);background-color:var(--primary-selected);font-weight:700}.burguer-content a{flex:0 auto}.navbar-links{align-self:center;display:flex}.burguer-content .navbar-links{flex-direction:column;align-items:center;margin-top:9px;transform:translateY(20px)}.navButton{background:var(--primary);color:rgba(255,255,255,.89);border-radius:16px;padding:1rem 2rem;font-size:16px;font-weight:400;box-shadow:inset 0 -1px rgba(14,14,44,.4)}#swap-icon{background-color:rgba(100,149,237,.44);border:4px solid rgba(100,149,237,.44);border-radius:100%;padding:2px}.nft-img-container>*{width:100%}.grid{grid-gap:1rem;grid-template-columns:repeat(4,1fr);align-items:center;justify-items:center;display:grid}.grid>div{background-color:var(--second-new-grey);width:90%;max-width:500px;flex-direction:column;justify-content:center;align-items:center;justify-items:start;display:flex}#token-header{padding:1.2em 0;display:inline}#token-header span.icon,#token-header img.icon{vertical-align:middle;width:35px;height:35px;border-radius:50%;justify-content:center;padding:5px;display:inline-block;box-shadow:0 2px 14px rgba(0,0,0,.19)}#token-header span.name{color:#222;vertical-align:middle;font-size:22px;font-weight:600;line-height:22px}.pool-meta{min-width:80%;justify-content:space-between;display:flex}.pool-meta div:nth-child(1){color:#063767;font-size:16px;font-weight:400;line-height:1.5}.pool-meta div:nth-child(2){color:#063767;font-size:16px;font-weight:600;line-height:1.5}.pool-meta.deposit div:nth-child(1){color:#063767;font-size:20px;font-weight:400;line-height:1.5}.pool-meta.deposit div:nth-child(2){color:#063767;font-size:24px;font-weight:600;line-height:1.5}.pool-meta.earned,.pool-meta.staked{justify-content:left;margin:10px 1.7rem 0}.pool-meta.earned div:nth-child(1),.pool-meta.staked div:nth-child(1){color:#0f84f8;padding-right:3px;font-size:12px;font-weight:600;line-height:1.5}.pool-meta.earned div:nth-child(2),.pool-meta.staked div:nth-child(2){color:#6c9dcd;text-transform:uppercase;font-size:12px;font-weight:600;line-height:1.5}.pool-meta.earned.amount,.pool-meta.staked.amount{justify-content:space-between;align-items:center;padding-top:0}.pool-meta.earned.amount div:nth-child(1),.pool-meta.staked.amount div:nth-child(1){color:#063767;font-size:20px;font-weight:600;line-height:1.1}.pool-meta.earned.amount div button,.pool-meta.staked.amount div button{color:#fff;background:#44c4e2;margin:0}.pool-meta.wallet-balance{min-width:95%;justify-content:right;display:block}.pool-meta.wallet-balance div:nth-child(1){box-align:center;color:#063767;height:22px;justify-content:center;align-items:center;margin-bottom:10px;font-size:14px;font-weight:700;display:flex}.btn-liquid{width:129px;height:42px;color:var(--fg);letter-spacing:.05em;text-align:center;border-radius:27px;justify-content:center;margin-top:10px;font-family:Titillium Web,sans-serif;font-size:16px;font-weight:400;text-decoration:none;display:flex;position:relative}.btn-liquid .inner{z-index:2;position:relative}.btn-liquid canvas{z-index:1;position:absolute;top:-50px;bottom:-50px;left:-50px;right:-50px;transform:translate(13px,23px)}.user-info.selected{color:var(--fg);font-weight:700}.pool-meta.actions{justify-content:center}.pool-meta.actions button{min-width:48px;padding:1rem}.stake-action{fill:#fff}.user-info span{box-sizing:content-box;margin-top:15px;font-size:14px;font-weight:600;line-height:11px;display:inline-block}.error{color:var(--yellow)}#wallet-selection{flex-flow:row;justify-content:center;display:flex}.wallet-box{text-align:center;cursor:pointer;flex-flow:column;align-items:center;font-size:11px;display:flex}.wallet-logo{width:125px;height:125px}.near-logo{background-image:url(near-logo-black.fb1fa9d1.svg)}.narwallets-logo{background-image:url(narwallets-logo.37085d70.svg)}article,form,.popup,.flex-column{flex-flow:column;align-items:center;display:flex}article,form,.box{background:#fff;border-radius:12px;padding:10px;box-shadow:0 0 20px rgba(220,226,235,.7)}.input-group-box{flex-direction:column}.input-group{width:95%;background:#f6f2fd;border-radius:8px;flex-flow:row;margin:6px;padding:10px;display:flex}input,.input-group span{text-align:center;white-space:nowrap;background:#f6f2fd;border:0;flex:100%;margin-left:4px;font-size:16px;font-weight:600;line-height:19px}.input-group span{flex:30%}.inside-input{color:rgba(133,66,235,.8);cursor:pointer;text-align:right}.button{height:48px;min-width:50%;background:var(--primary);color:rgba(255,255,255,.89);cursor:pointer;border:0;border-radius:16px;margin:5px 7px;padding:0 24px;font-size:16px;font-weight:400;box-shadow:inset 0 -1px rgba(14,14,44,.4)}button:disabled{opacity:.5}button.hollow{border:1px solid var(--primary);background:var(--gf);color:var(--primary);padding-top:2px;padding-bottom:2px}.btn{height:32px;cursor:pointer;color:#000;background:#fff;border:2px solid gold;border-radius:16px;padding:8px 10px;line-height:12px;text-decoration:none}.btn:disabled{color:#ccc!important;background:#fff!important;border-color:#ccc!important}.btn:focus{outline:none}.btn:hover{background:gold}.btn:active{color:#fff;background:#0072ce}.btn-outline-none{border:none;line-height:32px}#other-links .btn-outline-none{margin-right:6px!important}.btn-outline-none svg{position:relative;top:7px}.hQrVZb{display:flex}.hQrVZb svg{width:20px;height:20px}.eUMSBu{fill:#fff;flex-shrink:0}.gAaTZf{background-color:var(--primary);box-shadow:none;color:#fff;cursor:pointer;width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;height:48px;letter-spacing:.03em;opacity:1;border:0;border-radius:16px;outline:0;justify-content:center;align-items:center;margin-right:6px;padding:0 24px;font-family:inherit;font-size:16px;font-weight:600;line-height:1;transition:background-color .2s;display:inline-flex}.hwJKVX{background-color:var(--primary);box-shadow:none;color:#fff;cursor:pointer;width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;letter-spacing:.03em;opacity:1;border:0;border-radius:16px;outline:0;justify-content:center;align-items:center;padding:0 24px;font-family:inherit;font-size:16px;font-weight:600;line-height:1;transition:background-color .2s;display:inline-flex}.overlay{z-index:30;background-color:rgba(211,211,211,.45);flex-flow:column;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.red-x{background-image:url(red-x.ddebeb1c.svg);background-position:50%;background-repeat:no-repeat;padding:1em}.popup{min-width:350px}h3.popup{align-self:stretch}fieldset{width:100%;border:0;flex-flow:column;align-items:center;padding-top:.75em;display:flex}#meta-stats h4{color:#44c4e2;text-align:center;margin-top:.5em;margin-bottom:.5em;font-size:16px;font-weight:600;line-height:20px}.stat-line{width:100%;flex-flow:row;justify-content:space-between;padding:5px 0;display:flex}.stat-line span{color:#063767;font-size:12px;font-weight:500}.stat-line dt{flex:100%}.stat-line dd{flex:10%;font-weight:500;display:inline-flex}.stat-small-line{width:100%;flex-flow:row;margin-top:-.9em;padding:2px 0 7px 10px;font-size:.8em;display:flex}.line-left{flex-flow:column;display:flex}.line-left span{margin:2px}.line-right{flex-flow:row;justify-content:flex-end;align-items:center;display:flex}.bold{font-weight:700}.large{font-size:1.2em}img.icon{width:32px;height:32px}small img{width:16px;height:16px;position:relative;top:4px}.tooltip{white-space:nowrap;word-break:keep-all;font-size:11px;display:inline-block;position:relative;top:.2em}.tooltip .tooltip-text{text-align:center;visibility:hidden;width:24em;z-index:30;word-break:break-word;white-space:break-spaces;max-width:50vw;border-radius:6px;padding:5px;position:absolute;top:.5em;left:-11em}.tooltip:hover .tooltip-text{visibility:visible}.info{background-image:url(info.f6ca4b8b.svg);background-position:50%;background-repeat:no-repeat;background-size:contain;margin-left:5px;padding:3px}.confirmed{background-image:url(confirm.41308e81.svg);background-position:50%;background-repeat:no-repeat;padding:20px}.spinner{background-image:url(spinner.50fbc432.svg);background-position-x:50%;background-repeat:no-repeat;background-size:cover;margin-top:8px;padding:20px}.symbol{transform:scale(.65)}.near,.meta{word-break:keep-all;white-space:nowrap}.nearico:after{content:"Ⓝ";font-weight:400;display:inline-block;transform:scale(.65)}.meta:after{content:"Ⓜ"}.cheddar:after{content:"Ⓒ";font-weight:400;display:inline-block;transform:scale(.65)}.pct:after{content:"%";margin-left:.4em;transform:scale(.8)}.header-note{word-break:break-word;white-space:break-spaces;text-align:left;align-self:self-start;padding-top:10px;font-size:14px}.footer-note{word-break:break-word;white-space:break-spaces;text-align:left;border-top:1px dashed #d8dbe5;align-self:self-start;padding-top:10px;font-size:12px}.box.popup,.box.popup button,.box.popup img{max-width:25%;margin-top:15px}.confirm-cancel-line{align-self:flex-end}.small{font-size:11px;font-weight:400}.hidden{display:none!important}#max{display:none}.show{display:block}a#terms-of-use{color:#00f}li{list-style:none}.harvest-section{flex-wrap:nowrap;align-content:center;justify-content:space-between;align-items:center;display:flex}.equal-width-than-boost-button,.structural-in-simple-pools{width:62.531px}.empty{fill:none}.full{fill:#f9ba37}.main-contract-footer{width:100%;flex-direction:column;justify-content:center;display:flex}.main-contract-footer .button{min-width:none}#stake-unstake-nft{max-width:180px;align-self:center}.boost-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:62.531px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;display:flex}.main-contract-footer p{text-align:center}input[type=checkbox][disabled]{outline:1px solid #00f}input#terms-of-use{background-color:green}input[type=checkbox]#terms-of-use{display:none}.disclaimer{margin-top:10px}.disclaimer label:before{height:18px;width:18px;cursor:pointer;background:green;border:1px solid #035f8f;display:inline-block}input[type=checkbox]#terms-of-use+label:before{content:"";color:#00f;text-align:center;background:#00f;border-color:#00f;font-size:15px;line-height:15px}input[type=checkbox]#terms-of-use:disabled+label:before{color:#00f;background:#ddd;border-color:#ccc}input[type=checkbox]#terms-of-use:checked+label:before{content:"✓"}.max{color:#00f;font-size:14px}#near-balance a{display:inline-block}#stake-form-not-connected{max-width:320px;margin:0 auto}.loader{width:120px;height:120px;position:realative;background-image:url(cheddar.3357e5b0.svg);border:16px solid #f3f3f3;border-top-color:#fd941f;border-radius:50%;margin:10% auto;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}section#my-account,section#faq{width:65%;margin:0 auto}#deposit button{color:#fff;background:#44c4e2;margin:0;font-weight:700}#deposit{text-align:center;margin-bottom:200px}#deposit p{text-align:center;font-size:11px;font-weight:600}#poolOpen{margin-bottom:1.2em}#poolOpen span{color:rgba(80,41,254,.88);font-size:16px;font-weight:700}.show-smaller-screens{display:none}.show-bigger-screens{display:block}#our-social-media{z-index:4;flex-flow:row;align-items:center;margin:5px 15px 0;display:flex;position:relative}#our-social-media span{white-space:nowrap;margin:0 .2rem;font-size:13px;font-weight:700;font-family:Bubblegum Sans!important}#our-social-media a{color:#222;width:1.5em;margin:0 0 0 .1rem}#our-social-media a:focus{outline-style:none;outline-color:(--primary);box-shadow:none;outline-width:0}.cheddar-general-info{flex-direction:column;align-items:center;display:flex}.cheddar-general-info span{font-weight:700}.header-extension_cheddar-value-container{align-items:center;margin-top:5px;display:flex}.header-extension_cheddar-value-container svg{background:var(--bg);border:1px var(--primary)solid;border-radius:100%;margin-right:5px;padding:3px}#game-links{margin-left:1rem;position:relative}#game-links a,#coinFlip{white-space:nowrap;font-size:14px;font-weight:700;font-family:Bubblegum Sans!important}#coinFlip img{height:19px;aspect-ratio:1;position:relative;top:5px}#checkers img{height:18px;position:relative;top:4px}#VRFarm svg{top:4px}.games-dropdown{text-align:center;width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:5px}.games-dropdown svg{transition:all .3s linear;top:5px!important}.game-links{flex-direction:column;align-items:flex-end;display:flex;position:relative;top:10px}.games-dropdown-items{z-index:3;height:-webkit-max-content;height:-moz-max-content;height:-webkit-max-content;height:-moz-max-content;height:max-content;width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;transition:all .3s step-end;position:absolute;top:35px;left:4px;overflow:hidden}.games-dropdown-items.down{z-index:5;transition:all .3s step-start}.games-dropdown-hidden-position{transform:translateY(-100%)!important}.games-links-container{text-align:right;width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:80vw;background-color:#fff;border-radius:16px;padding:8px 0;transition:all .3s ease-out;position:relative;transform:translateY(0%)}.switch{width:35px;height:20px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:#ccc;transition:all .4s;position:absolute;top:0;bottom:0;left:0;right:0}.slider:before{content:"";height:15px;width:15px;background-color:#fff;transition:all .4s;position:absolute;bottom:2px;left:2px}input:checked+.slider{background-color:#2196f3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{transform:translate(16px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}@media only screen and (min-width:600px){section,article,form{min-width:280px}}@media screen and (max-width:1000px){#home-connected,#nft-pools-section{margin:1rem}#nft-pools-section{top:-26px!important;left:-13px!important}.nft-flex{flex-direction:column}}.tools{grid-gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:flex-start;justify-items:center;display:flex}.tools span{font-size:.75rem;font-weight:700;line-height:1rem}@media only screen and (max-width:360px){html{font-size:11px}h2{font-size:17px}#logo img{width:70%}#token-header span.name{font-size:20px}#home-connected,#nft-pools-section{margin:.25rem}.popup{min-width:300px!important}#game-links{margin-left:0!important}.grid>div,.nft-card div{max-width:315px}.pool-meta{min-width:90%}section,article,form{min-width:280px}header div.title{margin-left:2px}.burguer-content a{padding-bottom:3px;font-size:11px}}.noscroll{overflow:hidden}.transparent{opacity:1;color:var(--yellow);font-weight:bolder;transition:all .5s linear}#home-connected{margin:0 15px}#home-connected #pool_list{flex-wrap:wrap;justify-content:space-between;align-items:stretch}#pool_list .no-pools{text-align:center;width:120%;color:#8542eb;outline:double;margin:0 auto;padding:1rem}.pool-container{border-width:12px}.pool-container,.nft-card{min-width:330px;height:-webkit-max-content;height:-moz-max-content;height:-webkit-max-content;height:-moz-max-content;height:max-content;border-radius:8px!important}.news{text-shadow:-1px -1px #fff,-1px 0 #fff,-1px 1px #fff,0 -1px #fff,0 0 #fff,0 1px #fff,1px -1px #fff,1px 0 #fff,1px 1px #fff,8px 8px 13px rgba(0,0,0,.75);color:var(--second-yellow);letter-spacing:3px;text-align:center;font-size:4rem;font-weight:400;font-family:Bubblegum Sans!important}#timer{text-align:center;margin-top:16px;font-size:large}.pool-filter-container{background-color:var(--second-new-grey);width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;color:var(--new-gray);text-align:center;letter-spacing:1.25px;border-radius:10px;margin:32px 0 1.5rem;font-size:14px;font-style:normal;font-weight:700}.pool-filter-container ul{display:flex}.pool-filter-container li{width:133px;height:42px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:30vw;border-radius:10px;line-height:42px}.pool-filter-container li:hover,.activeFilterButton{background-color:var(--primary);color:var(--bg)}.no-live-pools-msg h2{color:var(--primary);width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;background-color:var(--second-new-grey);border-radius:100px;margin:50px auto;padding:20px;font-size:x-large;transition:all .3s linear;box-shadow:4px 4px 4px rgba(0,0,0,.45)}.no-live-pools-msg:hover{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transform:scale(1.01)}.not-connected-msg h2{text-align:center;margin:30px;font-size:2rem;display:block}#pool-container{position:relative}#generic-pool-container,#pool-container,#activated{border-color:var(--second-new-grey);background-color:var(--white);border-style:solid}#pool-container{padding:0 10px}#pool-container,#activated{width:90%;background:var(--white);border-radius:12px;position:relative;box-shadow:0 0 20px rgba(220,226,235,.7)}#contract-period-container{color:#000;margin:9px;font-size:11px;font-weight:700}.date-in-range-indicator{height:20px;aspect-ratio:1;position:absolute;transform:translate(10px,-5px)}.onDate{fill:#97ba10}.offDate{fill:#ff3434}.no-opacity{opacity:1!important}.inactive-pool #contract-period-container,.inactive-pool .new-pool-header,.inactive-pool .main-contract-information li>:nth-child(1),.inactive-pool .main-contract-information li>:nth-child(2),.inactive-pool .detail-row,.inactive-pool .first-token,.inactive-pool .stats-container{opacity:.5}.new-pool-header{justify-content:space-between;align-items:center;padding:14px 0 8px;display:flex}.token-logo-container{width:20%;height:44px;flex-flow:row;align-content:center;justify-content:flex-start;align-items:center;display:flex}.token-logo-container img,.token-logo-svg-container svg{max-width:44px;aspect-ratio:1;background-color:var(--white);border-radius:100%;box-shadow:0 4px 4px rgba(0,0,0,.25)}.token-logo-container>:first-child{margin-left:0}.have-1-elements>*{height:100%}.have-2-elements>*{height:90%;margin-left:-.6rem}.have-3-elements>*{height:85%;margin-left:-1.3rem}.have-4-elements>*{height:80%;margin-left:-1.5rem}.have-5-elements>*{height:70%;margin-left:-1.3rem}.have-6-elements>*{height:65%;margin-left:-1.35rem}.have-7-elements>*{height:63%;margin-left:-1.4rem}.farmed-token-logo{z-index:10}#token-pool-stats .farmed-token-logo{z-index:11}.information-icon-container{width:20%}.information-icon-container img{margin-left:53%}.token-stats{margin:3px;padding:7px}.max-button{color:var(--primary);cursor:pointer;font-weight:600}.token-name-container{width:55%;margin:0 12%;font-size:16px;font-weight:700;line-height:19px}.token-name-container .token-name{text-align:center}#token-pool-stats{z-index:20;width:107%;max-width:468px;min-width:315px;background-color:var(--white);border:12px;border-top-width:0;border-color:var(--second-new-grey);border-style:solid;border-radius:18px;padding:0 10px;position:absolute;top:0;transform:translate(-23px)}#token-pool-stats #new-pool-header{padding-top:0}#token-pool-stats h3{text-align:center;font-size:14px;font-weight:700}.stats-container{font-size:12px;font-weight:400}.stats-container li{justify-content:space-between;align-items:center;margin:0 auto;display:flex;position:relative}#contract-information{flex-direction:column;align-content:space-between;align-items:center;display:flex}.multiple-nft-selection{width:100%;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin:0 auto 10px;display:flex}.select-multiple-nfts-buttons-container{display:flex}.multiple-nft-selection-structural-div,.select-multiple-info{width:20%}.cheddar-needed-container{background-color:var(--bg);border-radius:10px}.select-multiple-info p{font-weight:900}.select-multiple-info img{height:26px;margin-left:5px;display:inline-block}.cheddar-needed-to-stake-all-nfts{vertical-align:top;font-weight:600;line-height:26px}.needed-to-stake-each-nft{text-align:center}.select-multiple-nfts-buttons-container .button.selected,.nft-pools-container .selected .nft-actions-container .button{border:var(--primary-selected)2px solid!important;color:var(--primary)!important;background:#fff!important}.stake-all-nft-button,.unstake-all-nft-button{min-width:42%;margin:0 5px}.stake-all-nft-button:hover,.unstake-all-nft-button:hover{border:var(--light-gray)2px solid;box-shadow:inset 0 -1px 0 0 var(--primary)}.main-contract-information,.nft-basic-info-and-interaction,.stats-container{width:100%;font-size:14px;font-weight:600;line-height:32px}.main-contract-information ul{height:100%}.main-contract-information li,.nft-basic-info-and-interaction div{justify-content:space-between;align-items:center;display:flex;position:relative}h2.nft-name{text-align:center;padding:11px}.nft-name-row{margin:0 25px}.nft-name-row h3{line-height:32px}.pool-legend{font-weight:400;line-height:21px}.unclaimed-rewards-info-container,.reward-tokens-info-container,.total-staked-info-container,.total-staked-info-container,.rewards-per-day-info-container,.apr-info-container{background-color:var(--white);border:1px solid var(--second-new-grey);z-index:1;border-radius:12px;flex-flow:column-reverse wrap;align-content:space-around;justify-content:center;align-items:center;margin:10px 40px;padding:5px 9px;display:flex;position:absolute;left:80%;transform:translateY(-61%)}.total-staked-info-container{transform:translateY(-56%)}.unclaimed-rewards-info-container>div,.reward-tokens-info-container>div,.total-staked-info-container>div,.rewards-per-day-info-container>div,.apr-info-container>div{flex-flow:row;justify-content:space-between;align-items:center;display:flex}.detail-row span{border-width:0 1px;border-radius:12px;margin:1px;padding:5px;line-height:18px}.reward-tokens-value{max-height:32px;justify-content:flex-end;display:flex}.reward-tokens-value img{margin-left:3px}.detail-row .mini-icon{height:18px;margin:-30% 0}.mini-icon{height:30px}button.activate{background-color:var(--yellow);color:var(--fg);font-weight:500}#activate .activate{margin:0 25%}#stake-unstake-nft,#harvest-button,#stake-button,#unstake-button,.activate,.nft-actions-container .button{background-color:var(--primary);color:var(--white);height:36px;border:1px solid rgba(0,0,0,.12);border-radius:4px}.visual-tool-expanding-indication-hidden{text-align:center;opacity:0;color:var(--yellow)}@keyframes blink{50%{opacity:0}}.blink{animation:blink 1.5s linear infinite}#expanding-indicators{height:28px;transform:translateY(3px)}#expanding-indicators .hide-expand-buttons-container{width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin:0 auto;padding:3px}.expand-button{transition:all .5s linear}.flipped{transform:rotate(180deg)}#expanding-indicators img{border:5px var(--light-gray)solid;background-color:var(--light-gray);border-radius:8px}#activated{margin-bottom:20px}#staking-unstaking-container{flex-direction:column;display:flex}.show-type-container{width:100%}.show-type-container button{width:49%;text-align:center;color:var(--primary-low);border-width:0 1px 2px 0;border-color:var(--light-gray);border-style:solid;padding:16px 0;font-weight:600;display:inline-block}.show-type-container button.active{color:var(--primary);border-color:var(--primary)}.main-stake,.main-unstake{width:100%;padding:10px}.input-container{background-color:var(--bg);align-items:center;margin-top:32px;padding:0 3px;display:flex}.input-container input:focus{outline:none}.input-container .token-logo,.input-container .token-logo-svg-container svg{height:40px;background-color:var(--shadow);border-radius:50%;margin-right:10px}.amount-available{flex-direction:column;align-items:center;display:flex}#staking-unstaking-container input{height:56px;width:99%;background-color:var(--bg);border-radius:4px 4px 0 0;font-size:14px;font-weight:700;line-height:24px}#staking-unstaking-container input::-ms-input-placeholder{color:var(--primary);margin:0 -8%}#staking-unstaking-container input::placeholder{color:var(--primary);margin:0 -8%}.available-info{width:64%;justify-content:space-between;align-items:center;margin:0 auto;display:flex}.available-info>*{margin:10px}#nft-pools-section{height:105vh;width:103vw;z-index:22;background-color:rgba(255,255,255,.68);position:fixed;top:-27px;left:-25px;overflow:scroll}.nft-pools-container{width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:117rem;background-color:var(--second-new-grey);min-width:40%;max-width:90%;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;margin:100px auto;padding:30px;display:flex;position:relative}.cheddar-balance-container{width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;font-weight:800;position:absolute;top:6px;right:17px}.cheddar-balance-container img{height:26px;display:inline-block;position:relative;top:7px}.nft-farm-info,.stake-nfts-title{text-align:center;margin-bottom:20px;font-family:Inter;font-size:32px;font-style:normal;font-weight:700;line-height:39px}.nft-flex{grid-gap:3rem;flex-wrap:wrap;justify-content:center;align-items:center;justify-items:center;display:flex}.nft-card{border-style:solid;border-color:var(--second-new-grey);border-width:29px 12px 12px}.generic-nft-card,.nft-card{filter:drop-shadow(0 4px 4px rgba(0,0,0,.25))}.nft-presentation,.nft-basic-info-and-interaction{background-color:var(--bg)}.nft-basic-info-and-interaction{padding:8px}.nft-presentation{border-bottom:12px var(--second-new-grey)solid}.nft-card>div{width:380px;max-width:80vw}.nft-actions-container{display:flex}.structural-container-nft-actions{width:10%;height:34px}.confirm-or-cancel-stake-or-unstake-nft-container{min-width:50%;max-width:100%;display:flex}.nft-actions-container button.button{height:34px}#confirm-stake-unstake,#cancel-stake-unstake{width:100%;min-width:auto;margin-top:20px}.not-enough-cheddar-warning{color:rgba(255,0,0,.73);background-color:var(--bg);border-radius:10px;margin-top:5px;padding:10px;font-size:large;font-weight:700}@media screen and (max-width:1630px){.nft-flex{max-width:80vw}}@media screen and (maX-width:1132px){.nft-flex{max-width:478px}}@media screen and (max-width:1500px) and (min-width:1130px){.grid{grid-template-columns:repeat(3,1fr)}}@media screen and (max-width:1129px) and (min-width:751px){.grid{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:1210px){nav{margin-top:3px}.close-burguer{color:var(--gray);z-index:1;position:absolute;top:2vw;right:20px;display:block!important}#burguer{z-index:40;width:auto;height:49px;aspect-ratio:1;background-color:rgba(255,255,255,.79);border-radius:20%;justify-content:center;padding:10px;position:fixed;top:40px;right:11px}.burger-button{width:-webkit-max-content;width:-moz-max-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin:4px auto}#burguer.no-publicity-position{top:26px}.burguer-content{z-index:2;width:90%;height:100%;background-color:var(--white);flex-direction:column;justify-content:flex-start;margin:0;transition:transform .4s ease-in-out;display:flex;position:fixed;top:0;right:0;transform:translate(110%);box-shadow:-13px 6px 26px -8px rgba(0,0,0,.4)}.top-in-burguer{width:100%;order:1;align-items:flex-start!important}#other-links{flex-direction:column;align-self:flex-start;display:flex}.games-dropdown{border:1px solid #000!important}.games-links-container{border:1px solid #000}.games-dropdown-items{left:5px;right:auto}.cheddar-main-logo-container{order:0;margin:5px 0 0 16px;display:block}#power-up{width:131px}#ref-swap{width:110px}.left-on-full-screen{width:100%;order:2;flex-direction:column-reverse!important}.left-on-full-screen .navButton{align-self:self-start}#power-up,#ref-swap{height:48px;background-color:var(--input);border:1px solid #000;order:3;margin:6px 14px;position:relative}#ref-swap svg{top:12px}#power-up img,#ref-swap svg{position:absolute;right:11px}a.selected{color:#000;background-color:var(--second-yellow)}.navButton{color:#000;box-shadow:none;width:100%;background-color:rgba(255,255,255,0);border-radius:0;order:2;margin:0;padding:12px 0 12px 16px}.cheddar-general-info{order:1;align-items:flex-start;padding:12px 0 12px 16px}.circulatingSupply.supply{position:relative;top:8px}.show-right__nav{transform:translate(0)}.burger-button{display:block}.btn-liquid{transform:translate(29px)}}@media screen and (max-width:750px){.grid{grid-template-columns:repeat(1,1fr)}.publicity-container{width:100%}.publicity-container img{height:40%}.publicity-container span{font-size:2rem}.publicity-decoration{width:100%}}@media screen and (max-width:600px){.show-smaller-screens{display:block}.show-bigger-screens{display:none}header{flex-direction:column;align-items:flex-start}.publicity-container img{height:30%}.publicity-container span{font-size:1.8rem}main{margin-top:52px}}@media screen and (max-width:420px){.publicity-container img{height:20%}.publicity-container span{font-size:1.5rem}} +/*# sourceMappingURL=index.e692f8a6.css.map */ diff --git a/index.e692f8a6.css.map b/index.e692f8a6.css.map new file mode 100644 index 0000000..ab0eed2 --- /dev/null +++ b/index.e692f8a6.css.map @@ -0,0 +1 @@ +{"mappings":"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","sources":["index.e692f8a6.css","src/global.css"],"sourcesContent":["@import \"https://fonts.googleapis.com/css2?family=Bubblegum+Sans&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Titillium Web\";\n* {\n -webkit-font-smoothing: antialiased;\n margin: 0;\n padding: 0;\n}\n\nhtml {\n --white: white;\n --bg: #f8f9fa;\n --fg: #333;\n --primary-selected: #9d67ef;\n --primary: #8542eb;\n --primary-low: rgba(133, 66, 235, .44);\n --secondary: #4bc7ef;\n --success: #5ace84;\n --input: #f6f2fd;\n --yellow: #f9ba37;\n --second-yellow: #ffd262;\n --second-yellow-selected: rgba(255, 210, 98, .66);\n --gray: #555;\n --new-gray: #9c9494;\n --second-new-grey: #ebe7f5;\n --light-gray: #ccc;\n --shadow: #e6e6e6;\n background-color: var(--bg);\n --publicity-height: 130px;\n color: var(--fg);\n background: #5e8c01 url(\"newFarmBackground.c6905a5e.png\") top / 100% no-repeat;\n font-family: Titillium Web, sans-serif;\n font-size: 13px;\n font-weight: 500;\n}\n\n.focused {\n outline-style: none;\n outline-color: (--primary);\n box-shadow: var(--primary-low) 0px 0px 0px 2px;\n border-radius: 6px;\n outline-width: 1px;\n}\n\n.flipped {\n transform: rotate(180deg);\n}\n\n#logo:focus {\n outline-style: none;\n outline-color: (--primary);\n box-shadow: none;\n outline-width: 0;\n}\n\n*, :before, :after {\n box-sizing: border-box;\n}\n\nbody {\n max-width: 117rem;\n margin: 0 auto;\n line-height: 1;\n overflow-y: auto;\n}\n\n.publicity-container {\n width: 100%;\n height: var(--publicity-height);\n background: radial-gradient(var(--primary-selected), var(--primary));\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.publicity-container img {\n height: 40%;\n aspect-ratio: 1;\n margin: 10px;\n}\n\n.publicity-container .farm-img {\n transform: translateY(-4px);\n}\n\n.publicity-container .learn-img {\n transform: translateY(-2px);\n}\n\n.publicity-container span {\n text-shadow: 1px 0 #fd941f, -1px 0 #fd941f, 0 1px #fd941f, 0 -1px #fd941f, -1px -1px #fd941f, 1px -1px #fd941f, 1px 1px #fd941f, -1px 1px #fd941f, -1px 1px #fd941f;\n color: var(--bg);\n letter-spacing: 3px;\n font-size: 4rem;\n font-weight: normal;\n font-family: Bubblegum Sans !important;\n}\n\n.close-publicity {\n color: var(--bg);\n position: absolute;\n top: 12px;\n right: 12px;\n}\n\n.publicity-decoration {\n top: var(--publicity-height);\n height: 30px;\n z-index: 0;\n width: 100%;\n background: linear-gradient(180deg, var(--primary), transparent);\n position: absolute;\n left: 0;\n}\n\n.publicity-decoration.no-publicity-position {\n top: 0;\n}\n\nheader {\n max-height: 59px;\n flex-flow: row;\n align-items: center;\n margin: 164px 15px 0;\n display: flex;\n}\n\nmain {\n margin-top: 15px;\n}\n\nheader.no-publicity-position {\n margin: 33px 15px 0;\n}\n\n.header-extension {\n display: flex;\n}\n\nh1 {\n color: #272d36;\n font-size: 40px;\n font-weight: normal;\n line-height: 40px;\n}\n\nh2 img {\n vertical-align: middle;\n width: 35px;\n height: 35px;\n border-radius: 50%;\n justify-content: center;\n padding: 5px;\n box-shadow: 0 2px 14px rgba(0, 0, 0, .19);\n}\n\nh3 {\n color: #333;\n align-self: flex-start;\n margin: 0;\n font-size: 16px;\n font-weight: bold;\n line-height: 18px;\n display: flex;\n}\n\nh4 {\n text-align: center;\n color: #333;\n margin-top: .25em;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: 500;\n line-height: 17px;\n}\n\nh5 {\n color: #333;\n align-items: center;\n margin-top: .3em;\n margin-bottom: 0;\n font-size: 13px;\n font-weight: normal;\n line-height: 16px;\n display: flex;\n}\n\np {\n margin-bottom: 0;\n font-size: 13px;\n font-weight: 400;\n line-height: 18px;\n}\n\nheader div.title {\n white-space: break-spaces;\n flex: 15%;\n margin-left: 18px;\n font-size: 14px;\n font-weight: bold;\n line-height: 16px;\n}\n\nnav {\n width: calc(100% - 175px);\n justify-content: space-between;\n display: flex;\n}\n\n#burguer {\n width: calc(100% - 88.5px);\n}\n\n.burguer-content {\n flex-flow: wrap;\n flex: 30%;\n justify-content: space-between;\n align-items: center;\n margin-top: 5px;\n display: flex;\n}\n\n.left-on-full-screen {\n flex-direction: row !important;\n align-self: flex-start !important;\n}\n\n#navigation {\n align-items: center;\n display: flex;\n}\n\n.cheddar-main-logo-container {\n display: none;\n}\n\n.burger-button {\n cursor: pointer;\n display: none;\n}\n\n.burger-button div {\n width: 19px;\n height: 3.2px;\n background-color: #000;\n}\n\n.burger-button div:not(:last-child) {\n margin-bottom: 5px;\n}\n\na {\n text-decoration: none;\n}\n\na.selected {\n color: rgba(255, 255, 255, .89);\n background-color: var(--primary-selected);\n font-weight: bold;\n}\n\n.burguer-content a {\n flex: 0 auto;\n}\n\n.navbar-links {\n align-self: center;\n display: flex;\n}\n\n.burguer-content .navbar-links {\n flex-direction: column;\n align-items: center;\n margin-top: 9px;\n transform: translateY(20px);\n}\n\n.navButton {\n background: var(--primary);\n color: rgba(255, 255, 255, .89);\n border-radius: 16px;\n padding: 1rem 2rem;\n font-size: 16px;\n font-weight: 400;\n box-shadow: inset 0 -1px rgba(14, 14, 44, .4);\n}\n\n#swap-icon {\n background-color: rgba(100, 149, 237, .44);\n border: 4px solid rgba(100, 149, 237, .44);\n border-radius: 100%;\n padding: 2px;\n}\n\n.nft-img-container > * {\n width: 100%;\n}\n\n.grid {\n grid-gap: 1rem;\n grid-template-columns: repeat(4, 1fr);\n align-items: center;\n justify-items: center;\n display: grid;\n}\n\n.grid > div {\n background-color: var(--second-new-grey);\n width: 90%;\n max-width: 500px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n justify-items: start;\n display: flex;\n}\n\n#token-header {\n padding: 1.2em 0;\n display: inline;\n}\n\n#token-header span.icon, #token-header img.icon {\n vertical-align: middle;\n width: 35px;\n height: 35px;\n border-radius: 50%;\n justify-content: center;\n padding: 5px;\n display: inline-block;\n box-shadow: 0 2px 14px rgba(0, 0, 0, .19);\n}\n\n#token-header span.name {\n color: #222;\n vertical-align: middle;\n font-size: 22px;\n font-weight: 600;\n line-height: 22px;\n}\n\n.pool-meta {\n min-width: 80%;\n justify-content: space-between;\n display: flex;\n}\n\n.pool-meta div:nth-child(1) {\n color: #063767;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n}\n\n.pool-meta div:nth-child(2) {\n color: #063767;\n font-size: 16px;\n font-weight: 600;\n line-height: 1.5;\n}\n\n.pool-meta.deposit div:nth-child(1) {\n color: #063767;\n font-size: 20px;\n font-weight: 400;\n line-height: 1.5;\n}\n\n.pool-meta.deposit div:nth-child(2) {\n color: #063767;\n font-size: 24px;\n font-weight: 600;\n line-height: 1.5;\n}\n\n.pool-meta.earned, .pool-meta.staked {\n justify-content: left;\n margin: 10px 1.7rem 0;\n}\n\n.pool-meta.earned div:nth-child(1), .pool-meta.staked div:nth-child(1) {\n color: #0f84f8;\n padding-right: 3px;\n font-size: 12px;\n font-weight: 600;\n line-height: 1.5;\n}\n\n.pool-meta.earned div:nth-child(2), .pool-meta.staked div:nth-child(2) {\n color: #6c9dcd;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 600;\n line-height: 1.5;\n}\n\n.pool-meta.earned.amount, .pool-meta.staked.amount {\n justify-content: space-between;\n align-items: center;\n padding-top: 0;\n}\n\n.pool-meta.earned.amount div:nth-child(1), .pool-meta.staked.amount div:nth-child(1) {\n color: #063767;\n font-size: 20px;\n font-weight: 600;\n line-height: 1.1;\n}\n\n.pool-meta.earned.amount div button, .pool-meta.staked.amount div button {\n color: #fff;\n background: #44c4e2;\n margin: 0;\n}\n\n.pool-meta.wallet-balance {\n min-width: 95%;\n justify-content: right;\n display: block;\n}\n\n.pool-meta.wallet-balance div:nth-child(1) {\n box-align: center;\n color: #063767;\n height: 22px;\n justify-content: center;\n align-items: center;\n margin-bottom: 10px;\n font-size: 14px;\n font-weight: 700;\n display: flex;\n}\n\n.btn-liquid {\n width: 129px;\n height: 42px;\n color: var(--fg);\n letter-spacing: .05em;\n text-align: center;\n border-radius: 27px;\n justify-content: center;\n margin-top: 10px;\n font-family: Titillium Web, sans-serif;\n font-size: 16px;\n font-weight: 400;\n text-decoration: none;\n display: flex;\n position: relative;\n}\n\n.btn-liquid .inner {\n z-index: 2;\n position: relative;\n}\n\n.btn-liquid canvas {\n z-index: 1;\n position: absolute;\n top: -50px;\n bottom: -50px;\n left: -50px;\n right: -50px;\n transform: translate(13px, 23px);\n}\n\n.user-info.selected {\n color: var(--fg);\n font-weight: bold;\n}\n\n.pool-meta.actions {\n justify-content: center;\n}\n\n.pool-meta.actions button {\n min-width: 48px;\n padding: 1rem;\n}\n\n.stake-action {\n fill: #fff;\n}\n\n.user-info span {\n box-sizing: content-box;\n margin-top: 15px;\n font-size: 14px;\n font-weight: 600;\n line-height: 11px;\n display: inline-block;\n}\n\n.error {\n color: var(--yellow);\n}\n\n#wallet-selection {\n flex-flow: row;\n justify-content: center;\n display: flex;\n}\n\n.wallet-box {\n text-align: center;\n cursor: pointer;\n flex-flow: column;\n align-items: center;\n font-size: 11px;\n display: flex;\n}\n\n.wallet-logo {\n width: 125px;\n height: 125px;\n}\n\n.near-logo {\n background-image: url(\"near-logo-black.fb1fa9d1.svg\");\n}\n\n.narwallets-logo {\n background-image: url(\"narwallets-logo.37085d70.svg\");\n}\n\narticle, form, .popup, .flex-column {\n flex-flow: column;\n align-items: center;\n display: flex;\n}\n\narticle, form, .box {\n background: #fff;\n border-radius: 12px;\n padding: 10px;\n box-shadow: 0 0 20px rgba(220, 226, 235, .7);\n}\n\n.input-group-box {\n flex-direction: column;\n}\n\n.input-group {\n width: 95%;\n background: #f6f2fd;\n border-radius: 8px;\n flex-flow: row;\n margin: 6px;\n padding: 10px;\n display: flex;\n}\n\ninput, .input-group span {\n text-align: center;\n white-space: nowrap;\n background: #f6f2fd;\n border: 0;\n flex: 100%;\n margin-left: 4px;\n font-size: 16px;\n font-weight: 600;\n line-height: 19px;\n}\n\n.input-group span {\n flex: 30%;\n}\n\n.inside-input {\n color: rgba(133, 66, 235, .8);\n cursor: pointer;\n text-align: right;\n}\n\n.button {\n height: 48px;\n min-width: 50%;\n background: var(--primary);\n color: rgba(255, 255, 255, .89);\n cursor: pointer;\n border: 0;\n border-radius: 16px;\n margin: 5px 7px;\n padding: 0 24px;\n font-size: 16px;\n font-weight: 400;\n box-shadow: inset 0 -1px rgba(14, 14, 44, .4);\n}\n\nbutton:disabled {\n opacity: .5;\n}\n\nbutton.hollow {\n border: 1px solid var(--primary);\n background: var(--gf);\n color: var(--primary);\n padding-top: 2px;\n padding-bottom: 2px;\n}\n\n.btn {\n height: 32px;\n cursor: pointer;\n color: #000;\n background: #fff;\n border: 2px solid gold;\n border-radius: 16px;\n padding: 8px 10px;\n line-height: 12px;\n text-decoration: none;\n}\n\n.btn:disabled {\n color: #ccc !important;\n background: #fff !important;\n border-color: #ccc !important;\n}\n\n.btn:focus {\n outline: none;\n}\n\n.btn:hover {\n background: gold;\n}\n\n.btn:active {\n color: #fff;\n background: #0072ce;\n}\n\n.btn-outline-none {\n border: none;\n line-height: 32px;\n}\n\n#other-links .btn-outline-none {\n margin-right: 6px !important;\n}\n\n.btn-outline-none svg {\n position: relative;\n top: 7px;\n}\n\n.hQrVZb {\n display: flex;\n}\n\n.hQrVZb svg {\n width: 20px;\n height: 20px;\n}\n\n.eUMSBu {\n fill: #fff;\n flex-shrink: 0;\n}\n\n.gAaTZf {\n background-color: var(--primary);\n box-shadow: none;\n color: #fff;\n cursor: pointer;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n height: 48px;\n letter-spacing: .03em;\n opacity: 1;\n border: 0;\n border-radius: 16px;\n outline: 0;\n justify-content: center;\n align-items: center;\n margin-right: 6px;\n padding: 0 24px;\n font-family: inherit;\n font-size: 16px;\n font-weight: 600;\n line-height: 1;\n transition: background-color .2s;\n display: inline-flex;\n}\n\n.hwJKVX {\n background-color: var(--primary);\n box-shadow: none;\n color: #fff;\n cursor: pointer;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n letter-spacing: .03em;\n opacity: 1;\n border: 0;\n border-radius: 16px;\n outline: 0;\n justify-content: center;\n align-items: center;\n padding: 0 24px;\n font-family: inherit;\n font-size: 16px;\n font-weight: 600;\n line-height: 1;\n transition: background-color .2s;\n display: inline-flex;\n}\n\n.overlay {\n z-index: 30;\n background-color: rgba(211, 211, 211, .45);\n flex-flow: column;\n justify-content: center;\n align-items: center;\n display: flex;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.red-x {\n background-image: url(\"red-x.ddebeb1c.svg\");\n background-position: center;\n background-repeat: no-repeat;\n padding: 1em;\n}\n\n.popup {\n min-width: 350px;\n}\n\nh3.popup {\n align-self: stretch;\n}\n\nfieldset {\n width: 100%;\n border: 0;\n flex-flow: column;\n align-items: center;\n padding-top: .75em;\n display: flex;\n}\n\n#meta-stats h4 {\n color: #44c4e2;\n text-align: center;\n margin-top: .5em;\n margin-bottom: .5em;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n}\n\n.stat-line {\n width: 100%;\n flex-flow: row;\n justify-content: space-between;\n padding: 5px 0;\n display: flex;\n}\n\n.stat-line span {\n color: #063767;\n font-size: 12px;\n font-weight: 500;\n}\n\n.stat-line dt {\n flex: 100%;\n}\n\n.stat-line dd {\n flex: 10%;\n font-weight: 500;\n display: inline-flex;\n}\n\n.stat-small-line {\n width: 100%;\n flex-flow: row;\n margin-top: -.9em;\n padding: 2px 0 7px 10px;\n font-size: .8em;\n display: flex;\n}\n\n.line-left {\n flex-flow: column;\n display: flex;\n}\n\n.line-left span {\n margin: 2px;\n}\n\n.line-right {\n flex-flow: row;\n justify-content: flex-end;\n align-items: center;\n display: flex;\n}\n\n.bold {\n font-weight: 700;\n}\n\n.large {\n font-size: 1.2em;\n}\n\nimg.icon {\n width: 32px;\n height: 32px;\n}\n\nsmall img {\n width: 16px;\n height: 16px;\n position: relative;\n top: 4px;\n}\n\n.tooltip {\n white-space: nowrap;\n word-break: keep-all;\n font-size: 11px;\n display: inline-block;\n position: relative;\n top: .2em;\n}\n\n.tooltip .tooltip-text {\n text-align: center;\n visibility: hidden;\n width: 24em;\n z-index: 30;\n word-break: break-word;\n white-space: break-spaces;\n max-width: 50vw;\n border-radius: 6px;\n padding: 5px;\n position: absolute;\n top: .5em;\n left: -11em;\n}\n\n.tooltip:hover .tooltip-text {\n visibility: visible;\n}\n\n.info {\n background-image: url(\"info.f6ca4b8b.svg\");\n background-position: center;\n background-repeat: no-repeat;\n background-size: contain;\n margin-left: 5px;\n padding: 3px;\n}\n\n.confirmed {\n background-image: url(\"confirm.41308e81.svg\");\n background-position: center;\n background-repeat: no-repeat;\n padding: 20px;\n}\n\n.spinner {\n background-image: url(\"spinner.50fbc432.svg\");\n background-position-x: center;\n background-repeat: no-repeat;\n background-size: cover;\n margin-top: 8px;\n padding: 20px;\n}\n\n.symbol {\n transform: scale(.65);\n}\n\n.near, .meta {\n word-break: keep-all;\n white-space: nowrap;\n}\n\n.nearico:after {\n content: \"Ⓝ\";\n font-weight: 400;\n display: inline-block;\n transform: scale(.65);\n}\n\n.meta:after {\n content: \"Ⓜ\";\n}\n\n.cheddar:after {\n content: \"Ⓒ\";\n font-weight: 400;\n display: inline-block;\n transform: scale(.65);\n}\n\n.pct:after {\n content: \"%\";\n margin-left: .4em;\n transform: scale(.8);\n}\n\n.header-note {\n word-break: break-word;\n white-space: break-spaces;\n text-align: left;\n align-self: self-start;\n padding-top: 10px;\n font-size: 14px;\n}\n\n.footer-note {\n word-break: break-word;\n white-space: break-spaces;\n text-align: left;\n border-top: 1px dashed #d8dbe5;\n align-self: self-start;\n padding-top: 10px;\n font-size: 12px;\n}\n\n.box.popup, .box.popup button, .box.popup img {\n max-width: 25%;\n margin-top: 15px;\n}\n\n.confirm-cancel-line {\n align-self: flex-end;\n}\n\n.small {\n font-size: 11px;\n font-weight: 400;\n}\n\n.hidden {\n display: none !important;\n}\n\n#max {\n display: none;\n}\n\n.show {\n display: block;\n}\n\na#terms-of-use {\n color: #00f;\n}\n\nli {\n list-style: none;\n}\n\n.harvest-section {\n flex-wrap: nowrap;\n align-content: center;\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n\n.equal-width-than-boost-button, .structural-in-simple-pools {\n width: 62.531px;\n}\n\n.empty {\n fill: none;\n}\n\n.full {\n fill: #f9ba37;\n}\n\n.main-contract-footer {\n width: 100%;\n flex-direction: column;\n justify-content: center;\n display: flex;\n}\n\n.main-contract-footer .button {\n min-width: none;\n}\n\n#stake-unstake-nft {\n max-width: 180px;\n align-self: center;\n}\n\n.boost-button {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n width: 62.531px;\n cursor: pointer;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.main-contract-footer p {\n text-align: center;\n}\n\ninput[type=\"checkbox\"][disabled] {\n outline: 1px solid #00f;\n}\n\ninput#terms-of-use {\n background-color: green;\n}\n\ninput[type=\"checkbox\"]#terms-of-use {\n display: none;\n}\n\n.disclaimer {\n margin-top: 10px;\n}\n\n.disclaimer label:before {\n height: 18px;\n width: 18px;\n cursor: pointer;\n background: green;\n border: 1px solid #035f8f;\n display: inline-block;\n}\n\ninput[type=\"checkbox\"]#terms-of-use + label:before {\n content: \"\";\n color: #00f;\n text-align: center;\n background: #00f;\n border-color: #00f;\n font-size: 15px;\n line-height: 15px;\n}\n\ninput[type=\"checkbox\"]#terms-of-use:disabled + label:before {\n color: #00f;\n background: #ddd;\n border-color: #ccc;\n}\n\ninput[type=\"checkbox\"]#terms-of-use:checked + label:before {\n content: \"✓\";\n}\n\n.max {\n color: #00f;\n font-size: 14px;\n}\n\n#near-balance a {\n display: inline-block;\n}\n\n#stake-form-not-connected {\n max-width: 320px;\n margin: 0 auto;\n}\n\n.loader {\n width: 120px;\n height: 120px;\n position: realative;\n background-image: url(\"cheddar.3357e5b0.svg\");\n border: 16px solid #f3f3f3;\n border-top-color: #fd941f;\n border-radius: 50%;\n margin: 10% auto;\n animation: spin 2s linear infinite;\n}\n\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\nsection#my-account, section#faq {\n width: 65%;\n margin: 0 auto;\n}\n\n#deposit button {\n color: #fff;\n background: #44c4e2;\n margin: 0;\n font-weight: 700;\n}\n\n#deposit {\n text-align: center;\n margin-bottom: 200px;\n}\n\n#deposit p {\n text-align: center;\n font-size: 11px;\n font-weight: 600;\n}\n\n#poolOpen {\n margin-bottom: 1.2em;\n}\n\n#poolOpen span {\n color: rgba(80, 41, 254, .88);\n font-size: 16px;\n font-weight: bold;\n}\n\n.show-smaller-screens {\n display: none;\n}\n\n.show-bigger-screens {\n display: block;\n}\n\n#our-social-media {\n z-index: 4;\n flex-flow: row;\n align-items: center;\n margin: 5px 15px 0;\n display: flex;\n position: relative;\n}\n\n#our-social-media span {\n white-space: nowrap;\n margin: 0 .2rem;\n font-size: 13px;\n font-weight: bold;\n font-family: Bubblegum Sans !important;\n}\n\n#our-social-media a {\n color: #222;\n width: 1.5em;\n margin: 0 0 0 .1rem;\n}\n\n#our-social-media a:focus {\n outline-style: none;\n outline-color: (--primary);\n box-shadow: none;\n outline-width: 0;\n}\n\n.cheddar-general-info {\n flex-direction: column;\n align-items: center;\n display: flex;\n}\n\n.cheddar-general-info span {\n font-weight: 700;\n}\n\n.header-extension_cheddar-value-container {\n align-items: center;\n margin-top: 5px;\n display: flex;\n}\n\n.header-extension_cheddar-value-container svg {\n background: var(--bg);\n border: 1px var(--primary) solid;\n border-radius: 100%;\n margin-right: 5px;\n padding: 3px;\n}\n\n#game-links {\n margin-left: 1rem;\n position: relative;\n}\n\n#game-links a, #coinFlip {\n white-space: nowrap;\n font-size: 14px;\n font-weight: bold;\n font-family: Bubblegum Sans !important;\n}\n\n#coinFlip img {\n height: 19px;\n aspect-ratio: 1;\n position: relative;\n top: 5px;\n}\n\n#checkers img {\n height: 18px;\n position: relative;\n top: 4px;\n}\n\n#VRFarm svg {\n top: 4px;\n}\n\n.games-dropdown {\n text-align: center;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin: 5px;\n}\n\n.games-dropdown svg {\n transition: all .3s linear;\n top: 5px !important;\n}\n\n.game-links {\n flex-direction: column;\n align-items: flex-end;\n display: flex;\n position: relative;\n top: 10px;\n}\n\n.games-dropdown-items {\n z-index: 3;\n height: -webkit-max-content;\n height: -moz-max-content;\n height: max-content;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n transition: all .3s step-end;\n position: absolute;\n top: 35px;\n left: 4px;\n overflow: hidden;\n}\n\n.games-dropdown-items.down {\n z-index: 5;\n transition: all .3s step-start;\n}\n\n.games-dropdown-hidden-position {\n transform: translateY(-100%) !important;\n}\n\n.games-links-container {\n text-align: right;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n max-width: 80vw;\n background-color: #fff;\n border-radius: 16px;\n padding: 8px 0;\n transition: all .3s ease-out;\n position: relative;\n transform: translateY(0%);\n}\n\n.switch {\n width: 35px;\n height: 20px;\n display: inline-block;\n position: relative;\n}\n\n.switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n.slider {\n cursor: pointer;\n background-color: #ccc;\n transition: all .4s;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.slider:before {\n content: \"\";\n height: 15px;\n width: 15px;\n background-color: #fff;\n transition: all .4s;\n position: absolute;\n bottom: 2px;\n left: 2px;\n}\n\ninput:checked + .slider {\n background-color: #2196f3;\n}\n\ninput:focus + .slider {\n box-shadow: 0 0 1px #2196f3;\n}\n\ninput:checked + .slider:before {\n transform: translateX(16px);\n}\n\n.slider.round {\n border-radius: 34px;\n}\n\n.slider.round:before {\n border-radius: 50%;\n}\n\n@media only screen and (min-width: 600px) {\n section, article, form {\n min-width: 280px;\n }\n}\n\n@media screen and (max-width: 1000px) {\n #home-connected, #nft-pools-section {\n margin: 1rem;\n }\n\n #nft-pools-section {\n top: -26px !important;\n left: -13px !important;\n }\n\n .nft-flex {\n flex-direction: column;\n }\n}\n\n.tools {\n grid-gap: 1rem;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n align-items: flex-start;\n justify-items: center;\n display: flex;\n}\n\n.tools span {\n font-size: .75rem;\n font-weight: bold;\n line-height: 1rem;\n}\n\n@media only screen and (max-width: 360px) {\n html {\n font-size: 11px;\n }\n\n h2 {\n font-size: 17px;\n }\n\n #logo img {\n width: 70%;\n }\n\n #token-header span.name {\n font-size: 20px;\n }\n\n #home-connected, #nft-pools-section {\n margin: .25rem;\n }\n\n .popup {\n min-width: 300px !important;\n }\n\n #game-links {\n margin-left: 0 !important;\n }\n\n .grid > div, .nft-card div {\n max-width: 315px;\n }\n\n .pool-meta {\n min-width: 90%;\n }\n\n section, article, form {\n min-width: 280px;\n }\n\n header div.title {\n margin-left: 2px;\n }\n\n .burguer-content a {\n padding-bottom: 3px;\n font-size: 11px;\n }\n}\n\n.noscroll {\n overflow: hidden;\n}\n\n.transparent {\n opacity: 1;\n color: var(--yellow);\n font-weight: bolder;\n transition: all .5s linear;\n}\n\n#home-connected {\n margin: 0 15px;\n}\n\n#home-connected #pool_list {\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: stretch;\n}\n\n#pool_list .no-pools {\n text-align: center;\n width: 120%;\n color: #8542eb;\n outline: double;\n margin: 0 auto;\n padding: 1rem;\n}\n\n.pool-container {\n border-width: 12px;\n}\n\n.pool-container, .nft-card {\n min-width: 330px;\n height: -webkit-max-content;\n height: -moz-max-content;\n height: max-content;\n border-radius: 8px !important;\n}\n\n.news {\n text-shadow: -1px -1px #fff, -1px 0 #fff, -1px 1px #fff, 0 -1px #fff, 0 0 #fff, 0 1px #fff, 1px -1px #fff, 1px 0 #fff, 1px 1px #fff, 8px 8px 13px rgba(0, 0, 0, .75);\n color: var(--second-yellow);\n letter-spacing: 3px;\n text-align: center;\n font-size: 4rem;\n font-weight: normal;\n font-family: Bubblegum Sans !important;\n}\n\n#timer {\n text-align: center;\n margin-top: 16px;\n font-size: large;\n}\n\n.pool-filter-container {\n background-color: var(--second-new-grey);\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n color: var(--new-gray);\n text-align: center;\n letter-spacing: 1.25px;\n border-radius: 10px;\n margin: 32px 0 1.5rem;\n font-size: 14px;\n font-style: normal;\n font-weight: 700;\n}\n\n.pool-filter-container ul {\n display: flex;\n}\n\n.pool-filter-container li {\n width: 133px;\n height: 42px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n max-width: 30vw;\n border-radius: 10px;\n line-height: 42px;\n}\n\n.pool-filter-container li:hover, .activeFilterButton {\n background-color: var(--primary);\n color: var(--bg);\n}\n\n.no-live-pools-msg h2 {\n color: var(--primary);\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n background-color: var(--second-new-grey);\n border-radius: 100px;\n margin: 50px auto;\n padding: 20px;\n font-size: x-large;\n transition: all .3s linear;\n box-shadow: 4px 4px 4px rgba(0, 0, 0, .45);\n}\n\n.no-live-pools-msg:hover {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n transform: scale(1.01);\n}\n\n.not-connected-msg h2 {\n text-align: center;\n margin: 30px;\n font-size: 2rem;\n display: block;\n}\n\n#pool-container {\n position: relative;\n}\n\n#generic-pool-container, #pool-container, #activated {\n border-color: var(--second-new-grey);\n background-color: var(--white);\n border-style: solid;\n}\n\n#pool-container {\n padding: 0 10px;\n}\n\n#pool-container, #activated {\n width: 90%;\n background: var(--white);\n border-radius: 12px;\n position: relative;\n box-shadow: 0 0 20px rgba(220, 226, 235, .7);\n}\n\n#contract-period-container {\n color: #000;\n margin: 9px;\n font-size: 11px;\n font-weight: 700;\n}\n\n.date-in-range-indicator {\n height: 20px;\n aspect-ratio: 1;\n position: absolute;\n transform: translate(10px, -5px);\n}\n\n.onDate {\n fill: #97ba10;\n}\n\n.offDate {\n fill: #ff3434;\n}\n\n.no-opacity {\n opacity: 1 !important;\n}\n\n.inactive-pool #contract-period-container, .inactive-pool .new-pool-header, .inactive-pool .main-contract-information li > :nth-child(1), .inactive-pool .main-contract-information li > :nth-child(2), .inactive-pool .detail-row, .inactive-pool .first-token, .inactive-pool .stats-container {\n opacity: .5;\n}\n\n.new-pool-header {\n justify-content: space-between;\n align-items: center;\n padding: 14px 0 8px;\n display: flex;\n}\n\n.token-logo-container {\n width: 20%;\n height: 44px;\n flex-flow: row;\n align-content: center;\n justify-content: flex-start;\n align-items: center;\n display: flex;\n}\n\n.token-logo-container img, .token-logo-svg-container svg {\n max-width: 44px;\n aspect-ratio: 1;\n background-color: var(--white);\n border-radius: 100%;\n box-shadow: 0 4px 4px rgba(0, 0, 0, .25);\n}\n\n.token-logo-container > :first-child {\n margin-left: 0;\n}\n\n.have-1-elements > * {\n height: 100%;\n}\n\n.have-2-elements > * {\n height: 90%;\n margin-left: -.6rem;\n}\n\n.have-3-elements > * {\n height: 85%;\n margin-left: -1.3rem;\n}\n\n.have-4-elements > * {\n height: 80%;\n margin-left: -1.5rem;\n}\n\n.have-5-elements > * {\n height: 70%;\n margin-left: -1.3rem;\n}\n\n.have-6-elements > * {\n height: 65%;\n margin-left: -1.35rem;\n}\n\n.have-7-elements > * {\n height: 63%;\n margin-left: -1.4rem;\n}\n\n.farmed-token-logo {\n z-index: 10;\n}\n\n#token-pool-stats .farmed-token-logo {\n z-index: 11;\n}\n\n.information-icon-container {\n width: 20%;\n}\n\n.information-icon-container img {\n margin-left: 53%;\n}\n\n.token-stats {\n margin: 3px;\n padding: 7px;\n}\n\n.max-button {\n color: var(--primary);\n cursor: pointer;\n font-weight: 600;\n}\n\n.token-name-container {\n width: 55%;\n margin: 0 12%;\n font-size: 16px;\n font-weight: 700;\n line-height: 19px;\n}\n\n.token-name-container .token-name {\n text-align: center;\n}\n\n#token-pool-stats {\n z-index: 20;\n width: 107%;\n max-width: 468px;\n min-width: 315px;\n background-color: var(--white);\n border: 12px;\n border-top-width: 0;\n border-color: var(--second-new-grey);\n border-style: solid;\n border-radius: 18px;\n padding: 0 10px;\n position: absolute;\n top: 0;\n transform: translateX(-23px);\n}\n\n#token-pool-stats #new-pool-header {\n padding-top: 0;\n}\n\n#token-pool-stats h3 {\n text-align: center;\n font-size: 14px;\n font-weight: 700;\n}\n\n.stats-container {\n font-size: 12px;\n font-weight: 400;\n}\n\n.stats-container li {\n justify-content: space-between;\n align-items: center;\n margin: 0 auto;\n display: flex;\n position: relative;\n}\n\n#contract-information {\n flex-direction: column;\n align-content: space-between;\n align-items: center;\n display: flex;\n}\n\n.multiple-nft-selection {\n width: 100%;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n margin: 0 auto 10px;\n display: flex;\n}\n\n.select-multiple-nfts-buttons-container {\n display: flex;\n}\n\n.multiple-nft-selection-structural-div, .select-multiple-info {\n width: 20%;\n}\n\n.cheddar-needed-container {\n background-color: var(--bg);\n border-radius: 10px;\n}\n\n.select-multiple-info p {\n font-weight: 900;\n}\n\n.select-multiple-info img {\n height: 26px;\n margin-left: 5px;\n display: inline-block;\n}\n\n.cheddar-needed-to-stake-all-nfts {\n vertical-align: top;\n font-weight: 600;\n line-height: 26px;\n}\n\n.needed-to-stake-each-nft {\n text-align: center;\n}\n\n.select-multiple-nfts-buttons-container .button.selected, .nft-pools-container .selected .nft-actions-container .button {\n border: var(--primary-selected) 2px solid !important;\n color: var(--primary) !important;\n background: #fff !important;\n}\n\n.stake-all-nft-button, .unstake-all-nft-button {\n min-width: 42%;\n margin: 0 5px;\n}\n\n.stake-all-nft-button:hover, .unstake-all-nft-button:hover {\n border: var(--light-gray) 2px solid;\n box-shadow: inset 0 -1px 0 0 var(--primary);\n}\n\n.main-contract-information, .nft-basic-info-and-interaction, .stats-container {\n width: 100%;\n font-size: 14px;\n font-weight: 600;\n line-height: 32px;\n}\n\n.main-contract-information ul {\n height: 100%;\n}\n\n.main-contract-information li, .nft-basic-info-and-interaction div {\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\nh2.nft-name {\n text-align: center;\n padding: 11px;\n}\n\n.nft-name-row {\n margin: 0 25px;\n}\n\n.nft-name-row h3 {\n line-height: 32px;\n}\n\n.pool-legend {\n font-weight: 400;\n line-height: 21px;\n}\n\n.unclaimed-rewards-info-container, .reward-tokens-info-container, .total-staked-info-container, .total-staked-info-container, .rewards-per-day-info-container, .apr-info-container {\n background-color: var(--white);\n border: 1px solid var(--second-new-grey);\n z-index: 1;\n border-radius: 12px;\n flex-flow: column-reverse wrap;\n align-content: space-around;\n justify-content: center;\n align-items: center;\n margin: 10px 40px;\n padding: 5px 9px;\n display: flex;\n position: absolute;\n left: 80%;\n transform: translateY(-61%);\n}\n\n.total-staked-info-container {\n transform: translateY(-56%);\n}\n\n.unclaimed-rewards-info-container > div, .reward-tokens-info-container > div, .total-staked-info-container > div, .rewards-per-day-info-container > div, .apr-info-container > div {\n flex-flow: row;\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n\n.detail-row span {\n border-width: 0 1px;\n border-radius: 12px;\n margin: 1px;\n padding: 5px;\n line-height: 18px;\n}\n\n.reward-tokens-value {\n max-height: 32px;\n justify-content: flex-end;\n display: flex;\n}\n\n.reward-tokens-value img {\n margin-left: 3px;\n}\n\n.detail-row .mini-icon {\n height: 18px;\n margin: -30% 0;\n}\n\n.mini-icon {\n height: 30px;\n}\n\nbutton.activate {\n background-color: var(--yellow);\n color: var(--fg);\n font-weight: 500;\n}\n\n#activate .activate {\n margin: 0 25%;\n}\n\n#stake-unstake-nft, #harvest-button, #stake-button, #unstake-button, .activate, .nft-actions-container .button {\n background-color: var(--primary);\n color: var(--white);\n height: 36px;\n border: 1px solid rgba(0, 0, 0, .12);\n border-radius: 4px;\n}\n\n.visual-tool-expanding-indication-hidden {\n text-align: center;\n opacity: 0;\n color: var(--yellow);\n}\n\n@keyframes blink {\n 50% {\n opacity: 0;\n }\n}\n\n.blink {\n animation: blink 1.5s linear infinite;\n}\n\n#expanding-indicators {\n height: 28px;\n transform: translateY(3px);\n}\n\n#expanding-indicators .hide-expand-buttons-container {\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n margin: 0 auto;\n padding: 3px;\n}\n\n.expand-button {\n transition: all .5s linear;\n}\n\n.flipped {\n transform: rotate(180deg);\n}\n\n#expanding-indicators img {\n border: 5px var(--light-gray) solid;\n background-color: var(--light-gray);\n border-radius: 8px;\n}\n\n#activated {\n margin-bottom: 20px;\n}\n\n#staking-unstaking-container {\n flex-direction: column;\n display: flex;\n}\n\n.show-type-container {\n width: 100%;\n}\n\n.show-type-container button {\n width: 49%;\n text-align: center;\n color: var(--primary-low);\n border-width: 0 1px 2px 0;\n border-color: var(--light-gray);\n border-style: solid;\n padding: 16px 0;\n font-weight: 600;\n display: inline-block;\n}\n\n.show-type-container button.active {\n color: var(--primary);\n border-color: var(--primary);\n}\n\n.main-stake, .main-unstake {\n width: 100%;\n padding: 10px;\n}\n\n.input-container {\n background-color: var(--bg);\n align-items: center;\n margin-top: 32px;\n padding: 0 3px;\n display: flex;\n}\n\n.input-container input:focus {\n outline: none;\n}\n\n.input-container .token-logo, .input-container .token-logo-svg-container svg {\n height: 40px;\n background-color: var(--shadow);\n border-radius: 50%;\n margin-right: 10px;\n}\n\n.amount-available {\n flex-direction: column;\n align-items: center;\n display: flex;\n}\n\n#staking-unstaking-container input {\n height: 56px;\n width: 99%;\n background-color: var(--bg);\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n font-weight: 700;\n line-height: 24px;\n}\n\n#staking-unstaking-container input::-ms-input-placeholder {\n color: var(--primary);\n margin: 0 -8%;\n}\n\n#staking-unstaking-container input::placeholder {\n color: var(--primary);\n margin: 0 -8%;\n}\n\n.available-info {\n width: 64%;\n justify-content: space-between;\n align-items: center;\n margin: 0 auto;\n display: flex;\n}\n\n.available-info > * {\n margin: 10px;\n}\n\n#nft-pools-section {\n height: 105vh;\n width: 103vw;\n z-index: 22;\n background-color: rgba(255, 255, 255, .68);\n position: fixed;\n top: -27px;\n left: -25px;\n overflow: scroll;\n}\n\n.nft-pools-container {\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n max-width: 117rem;\n background-color: var(--second-new-grey);\n min-width: 40%;\n max-width: 90%;\n border-radius: 12px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin: 100px auto;\n padding: 30px;\n display: flex;\n position: relative;\n}\n\n.cheddar-balance-container {\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n font-weight: 800;\n position: absolute;\n top: 6px;\n right: 17px;\n}\n\n.cheddar-balance-container img {\n height: 26px;\n display: inline-block;\n position: relative;\n top: 7px;\n}\n\n.nft-farm-info, .stake-nfts-title {\n text-align: center;\n margin-bottom: 20px;\n font-family: Inter;\n font-size: 32px;\n font-style: normal;\n font-weight: 700;\n line-height: 39px;\n}\n\n.nft-flex {\n grid-gap: 3rem;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n justify-items: center;\n display: flex;\n}\n\n.nft-card {\n border-style: solid;\n border-color: var(--second-new-grey);\n border-width: 29px 12px 12px;\n}\n\n.generic-nft-card, .nft-card {\n filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .25));\n}\n\n.nft-presentation, .nft-basic-info-and-interaction {\n background-color: var(--bg);\n}\n\n.nft-basic-info-and-interaction {\n padding: 8px;\n}\n\n.nft-presentation {\n border-bottom: 12px var(--second-new-grey) solid;\n}\n\n.nft-card > div {\n width: 380px;\n max-width: 80vw;\n}\n\n.nft-actions-container {\n display: flex;\n}\n\n.structural-container-nft-actions {\n width: 10%;\n height: 34px;\n}\n\n.confirm-or-cancel-stake-or-unstake-nft-container {\n min-width: 50%;\n max-width: 100%;\n display: flex;\n}\n\n.nft-actions-container button.button {\n height: 34px;\n}\n\n#confirm-stake-unstake, #cancel-stake-unstake {\n width: 100%;\n min-width: auto;\n margin-top: 20px;\n}\n\n.not-enough-cheddar-warning {\n color: rgba(255, 0, 0, .73);\n background-color: var(--bg);\n border-radius: 10px;\n margin-top: 5px;\n padding: 10px;\n font-size: large;\n font-weight: 700;\n}\n\n@media screen and (max-width: 1630px) {\n .nft-flex {\n max-width: 80vw;\n }\n}\n\n@media screen and (maX-width: 1132px) {\n .nft-flex {\n max-width: 478px;\n }\n}\n\n@media screen and (max-width: 1500px) and (min-width: 1130px) {\n .grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n@media screen and (max-width: 1129px) and (min-width: 751px) {\n .grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media screen and (max-width: 1210px) {\n nav {\n margin-top: 3px;\n }\n\n .close-burguer {\n color: var(--gray);\n z-index: 1;\n position: absolute;\n top: 2vw;\n right: 20px;\n display: block !important;\n }\n\n #burguer {\n z-index: 40;\n width: auto;\n height: 49px;\n aspect-ratio: 1;\n background-color: rgba(255, 255, 255, .79);\n border-radius: 20%;\n justify-content: center;\n padding: 10px;\n position: fixed;\n top: 40px;\n right: 11px;\n }\n\n .burger-button {\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n margin: 4px auto;\n }\n\n #burguer.no-publicity-position {\n top: 26px;\n }\n\n .burguer-content {\n z-index: 2;\n width: 90%;\n height: 100%;\n background-color: var(--white);\n flex-direction: column;\n justify-content: flex-start;\n margin: 0;\n transition: transform .4s ease-in-out;\n display: flex;\n position: fixed;\n top: 0;\n right: 0;\n transform: translateX(110%);\n box-shadow: -13px 6px 26px -8px rgba(0, 0, 0, .4);\n }\n\n .top-in-burguer {\n width: 100%;\n order: 1;\n align-items: flex-start !important;\n }\n\n #other-links {\n flex-direction: column;\n align-self: flex-start;\n display: flex;\n }\n\n .games-dropdown {\n border: 1px solid #000 !important;\n }\n\n .games-links-container {\n border: 1px solid #000;\n }\n\n .games-dropdown-items {\n left: 5px;\n right: auto;\n }\n\n .cheddar-main-logo-container {\n order: 0;\n margin: 5px 0 0 16px;\n display: block;\n }\n\n #power-up {\n width: 131px;\n }\n\n #ref-swap {\n width: 110px;\n }\n\n .left-on-full-screen {\n width: 100%;\n order: 2;\n flex-direction: column-reverse !important;\n }\n\n .left-on-full-screen .navButton {\n align-self: self-start;\n }\n\n #power-up, #ref-swap {\n height: 48px;\n background-color: var(--input);\n border: 1px solid #000;\n order: 3;\n margin: 6px 14px;\n position: relative;\n }\n\n #ref-swap svg {\n top: 12px;\n }\n\n #power-up img, #ref-swap svg {\n position: absolute;\n right: 11px;\n }\n\n a.selected {\n color: #000;\n background-color: var(--second-yellow);\n }\n\n .navButton {\n color: #000;\n box-shadow: none;\n width: 100%;\n background-color: rgba(255, 255, 255, 0);\n border-radius: 0;\n order: 2;\n margin: 0;\n padding: 12px 0 12px 16px;\n }\n\n .cheddar-general-info {\n order: 1;\n align-items: flex-start;\n padding: 12px 0 12px 16px;\n }\n\n .circulatingSupply.supply {\n position: relative;\n top: 8px;\n }\n\n .show-right__nav {\n transform: translateX(0);\n }\n\n .burger-button {\n display: block;\n }\n\n .btn-liquid {\n transform: translateX(29px);\n }\n}\n\n@media screen and (max-width: 750px) {\n .grid {\n grid-template-columns: repeat(1, 1fr);\n }\n\n .publicity-container {\n width: 100%;\n }\n\n .publicity-container img {\n height: 40%;\n }\n\n .publicity-container span {\n font-size: 2rem;\n }\n\n .publicity-decoration {\n width: 100%;\n }\n}\n\n@media screen and (max-width: 600px) {\n .show-smaller-screens {\n display: block;\n }\n\n .show-bigger-screens {\n display: none;\n }\n\n header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .publicity-container img {\n height: 30%;\n }\n\n .publicity-container span {\n font-size: 1.8rem;\n }\n\n main {\n margin-top: 52px;\n }\n}\n\n@media screen and (max-width: 420px) {\n .publicity-container img {\n height: 20%;\n }\n\n .publicity-container span {\n font-size: 1.5rem;\n }\n}\n\n/*# sourceMappingURL=index.e692f8a6.css.map */\n","@import url('https://fonts.googleapis.com/css2?family=Bubblegum+Sans&display=swap');\r\n@import url('https://fonts.googleapis.com/css2?family=Titillium Web');\r\n\r\n* {\r\n -webkit-font-smoothing: antialiased;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\nhtml {\r\n --white : white;\r\n --bg : #F8F9FA;\r\n --fg : #333333;\r\n --primary-selected : #9D67EF;\r\n --primary : #8542EB;\r\n --primary-low : #8542eb70;\r\n --secondary : #4BC7EF;\r\n --success : rgb(90, 206, 132);\r\n --input : #F6F2FD;\r\n --yellow : #F9BA37;\r\n --second-yellow : #FFD262;\r\n --second-yellow-selected : rgba(255, 210, 98, 0.66);\r\n --gray : #555;\r\n --new-gray : #9C9494;\r\n --second-new-grey : #EBE7F5;\r\n --light-gray : #ccc;\r\n --shadow : #e6e6e6;\r\n background-color : var(--bg);\r\n font-family : 'Titillium Web', sans-serif;\r\n --publicity-height : 130px;\r\n /*body font*/ \r\n font-size : 13px;\r\n font-weight : 500;\r\n /* identical to box height, or 123% */\r\n color : var(--fg);\r\n background : url(assets/newFarmBackground.png) top center / contain no-repeat;\r\n background-size: 100% auto;\r\n background-color: #5e8c01;\r\n /* Fill width, retain proportions */\r\n}\r\n\r\n/* *:focus {\r\n outline-style: none;\r\n outline-color: (--primary);\r\n outline-width: 1px;\r\n box-shadow : var(--primary-low) 0px 0px 0px 2px;\r\n border-radius: 6px;\r\n} */\r\n\r\n.focused {\r\n outline-style: none;\r\n outline-color: (--primary);\r\n outline-width: 1px;\r\n box-shadow : var(--primary-low) 0px 0px 0px 2px;\r\n border-radius: 6px;\r\n}\r\n\r\n.flipped {\r\n transform: rotate(180deg);\r\n}\r\n\r\n#logo:focus {\r\n outline-style: none;\r\n outline-color: (--primary);\r\n box-shadow : none;\r\n outline-width: 0px;\r\n}\r\n\r\n*, ::before, ::after {\r\n box-sizing: border-box;\r\n}\r\n\r\nbody {\r\n overflow-y: auto;\r\n line-height: 1;\r\n max-width: 117rem;\r\n margin: 0 auto;\r\n}\r\n\r\n.publicity-container {\r\n width: 100%;\r\n height: var(--publicity-height);\r\n background: radial-gradient(var(--primary-selected), var(--primary));\r\n /* border-bottom: solid black 3px; */\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.publicity-container img {\r\n height: 40%;\r\n margin: 10px;\r\n aspect-ratio: 1;\r\n}\r\n\r\n.publicity-container .farm-img {\r\n transform: translateY(-4px);\r\n}\r\n\r\n.publicity-container .learn-img {\r\n transform: translateY(-2px);\r\n}\r\n\r\n.publicity-container span {\r\n font-family: Bubblegum Sans !important;\r\n font-size: 4rem;\r\n font-weight: normal;\r\n text-shadow: 1px 0px 0px #fd941f, -1px 0px 0px #fd941f, 0px 1px 0px #fd941f, 0px -1px 0px #fd941f, -1px -1px 0px #fd941f, 1px -1px 0px #fd941f, 1px 1px 0px #fd941f, -1px 1px 0px #fd941f, -1px 1px 0px #fd941f;\r\n color: var(--bg);\r\n letter-spacing: 3px;\r\n}\r\n\r\n.close-publicity {\r\n position: absolute;\r\n top: 12px;\r\n right: 12px;\r\n color: var(--bg);\r\n}\r\n\r\n.publicity-decoration {\r\n position: absolute;\r\n top: var(--publicity-height);\r\n left: 0;\r\n height: 30px;\r\n z-index: 0;\r\n width: 100%;\r\n background: linear-gradient(180deg, var(--primary), transparent);\r\n}\r\n\r\n.publicity-decoration.no-publicity-position {\r\n top: 0;\r\n}\r\n\r\nheader {\r\n display : flex;\r\n flex-flow : row;\r\n align-items: center;\r\n margin : 164px 15px 0px 15px;\r\n max-height: 59px;\r\n}\r\n\r\nmain {\r\n margin-top: 15px;\r\n}\r\n\r\nheader.no-publicity-position {\r\n margin: 33px 15px 0px 15px;\r\n}\r\n\r\n.header-extension {\r\n display: flex;\r\n}\r\n\r\nh1 {\r\n /* heading-1 */\r\n font-weight: normal;\r\n font-size : 40px;\r\n line-height: 40px;\r\n /* identical to box height, or 120% */\r\n color : #272D36;\r\n}\r\n\r\nh2 img {\r\n vertical-align : middle;\r\n box-shadow : rgb(0 0 0 / 19%) 0px 2px 14px;\r\n width : 35px;\r\n height : 35px;\r\n padding : 5px;\r\n border-radius : 50%;\r\n justify-content: center;\r\n}\r\n\r\nh3 {\r\n font-weight : bold;\r\n font-size : 16px;\r\n line-height : 18px;\r\n margin-top : 1em;\r\n margin-bottom: 0;\r\n /* identical to box height, or 112% */\r\n display : flex;\r\n align-self : flex-start;\r\n\r\n color : #333333;\r\n margin: 0px;\r\n}\r\n\r\nh4 {\r\n font-weight: 500;\r\n font-size : 14px;\r\n line-height: 17px;\r\n /* identical to box height */\r\n text-align : center;\r\n margin-top : 0.25em;\r\n margin-bottom: 0;\r\n\r\n color: #333333;\r\n}\r\n\r\nh5 {\r\n font-weight: normal;\r\n font-size : 13px;\r\n line-height: 16px;\r\n /* identical to box height, or 146% */\r\n\r\n display : flex;\r\n align-items : center;\r\n margin-top : 0.3em;\r\n margin-bottom: 0;\r\n\r\n color: #333333;\r\n}\r\n\r\np {\r\n font-size : 13px;\r\n line-height : 18px;\r\n /* identical to box height, or 146% */\r\n /* margin-top : 0.4em; */\r\n margin-bottom: 0;\r\n font-weight : 400;\r\n}\r\n\r\n\r\n\r\nheader div.title {\r\n font-weight: bold;\r\n font-size : 14px;\r\n line-height: 16px;\r\n flex : 1 1 15%;\r\n white-space: break-spaces;\r\n margin-left: 18px;\r\n}\r\n\r\nnav {\r\n width: calc(100% - 175px);\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n#burguer {\r\n width: calc(100% - 88.5px);\r\n}\r\n\r\n.burguer-content {\r\n margin-top : 5px;\r\n flex : 1 1 30%;\r\n display : flex;\r\n flex-flow : row wrap;\r\n justify-content: space-between;\r\n align-items : center;\r\n}\r\n\r\n.left-on-full-screen {\r\n align-self: flex-start !important;\r\n flex-direction: row !important;\r\n}\r\n\r\n#navigation {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.cheddar-main-logo-container {\r\n display: none;\r\n}\r\n\r\n.burger-button {\r\n display: none;\r\n cursor: pointer;\r\n}\r\n\r\n.burger-button div{\r\n width: 19px;\r\n height: 3.2px;\r\n background-color: #000;\r\n}\r\n\r\n.burger-button div:not(:last-child) {\r\n margin-bottom: 5px\r\n}\r\n\r\na {\r\n text-decoration: none;\r\n}\r\n\r\n/* a:any-link {\r\n color : var(--fg);\r\n font-weight: 500;\r\n}*/\r\n\r\na.selected {\r\n color: hsla(0,0%,100%,.8901960784313725);\r\n background-color: var(--primary-selected);\r\n font-weight: bold;\r\n}\r\n\r\n.burguer-content a {\r\n flex : 0 1 auto;\r\n}\r\n\r\n.navbar-links {\r\n display: flex;\r\n align-self: center;\r\n}\r\n\r\n.burguer-content .navbar-links {\r\n flex-direction: column;\r\n align-items: center;\r\n transform: translateY(20px);\r\n margin-top: 9px;\r\n}\r\n\r\n.navButton {\r\n font-weight: 400;\r\n font-size: 16px;\r\n background: var(--primary);\r\n border-radius: 16px;\r\n color: hsla(0,0%,100%,.8901960784313725);\r\n /* margin: 5px 7px; */\r\n padding: 1rem 2rem;\r\n box-shadow: inset 0 -1px 0 0 rgb(14 14 44 / 40%);\r\n}\r\n\r\n#swap-icon {\r\n border: solid 4px #6495ed70;\r\n border-radius: 100%;\r\n background-color: #6495ed70;\r\n padding: 2px;\r\n}\r\n\r\n/* div {\r\n margin: 0px;\r\n padding: 0px;\r\n border: 0px;\r\n font-size: 100%;\r\n vertical-align: baseline;\r\n} */\r\n\r\n.nft-img-container > * {\r\n width: 100%;\r\n}\r\n\r\n.grid {\r\n display: grid;\r\n align-items: center;\r\n grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));\r\n grid-gap: 1rem;\r\n justify-items: center;\r\n grid-template-columns: repeat(4, 1fr);\r\n}\r\n.grid > div {\r\n background-color: var(--second-new-grey);\r\n display: flex;\r\n align-items: center;\r\n justify-items: start;\r\n flex-direction: column;\r\n justify-content: center;\r\n}\r\n\r\n.grid > div {\r\n width: 90%;\r\n max-width: 500px;\r\n}\r\n\r\n#token-header {\r\n display: inline;\r\n padding: 1.2em 0 1.2em 0;\r\n}\r\n\r\n#token-header span.icon, #token-header img.icon {\r\n display: inline-block;\r\n vertical-align : middle;\r\n box-shadow : rgb(0 0 0 / 19%) 0px 2px 14px;\r\n width : 35px;\r\n height : 35px;\r\n padding : 5px;\r\n border-radius : 50%;\r\n justify-content: center;\r\n}\r\n\r\n#token-header span.name {\r\n font-weight : 600;\r\n font-size : 22px;\r\n line-height : 22px;\r\n color : #222222;\r\n vertical-align: middle;\r\n}\r\n\r\n.pool-meta {\r\n display : flex;\r\n -webkit-box-pack: justify;\r\n -moz-box-pack : justify;\r\n -ms-flex-pack : justify;\r\n justify-content : space-between;\r\n min-width : 80%;\r\n}\r\n\r\n.pool-meta div:nth-child(1) {\r\n color : rgb(6, 55, 103);\r\n font-size : 16px;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n}\r\n\r\n.pool-meta div:nth-child(2) {\r\n color : rgb(6, 55, 103);\r\n font-size : 16px;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n}\r\n\r\n.pool-meta.deposit div:nth-child(1) {\r\n color : rgb(6, 55, 103);\r\n font-size : 20px;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n}\r\n\r\n.pool-meta.deposit div:nth-child(2) {\r\n color : rgb(6, 55, 103);\r\n font-size : 24px;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n}\r\n\r\n.pool-meta.earned, .pool-meta.staked {\r\n justify-content: left;\r\n margin: 10px 1.7rem 0 1.7rem;\r\n}\r\n\r\n.pool-meta.earned div:nth-child(1), .pool-meta.staked div:nth-child(1) {\r\n color : rgb(15, 132, 248);\r\n font-size : 12px;\r\n font-weight : 600;\r\n line-height : 1.5;\r\n padding-right : 3px;\r\n}\r\n\r\n.pool-meta.earned div:nth-child(2), \r\n.pool-meta.staked div:nth-child(2) {\r\n color : rgb(108, 157, 205);\r\n font-size : 12px;\r\n font-weight : 600;\r\n line-height : 1.5;\r\n text-transform: uppercase;\r\n}\r\n\r\n.pool-meta.earned.amount, .pool-meta.staked.amount {\r\n justify-content: space-between;\r\n align-items : center;\r\n padding-top: 0;\r\n}\r\n\r\n.pool-meta.earned.amount div:nth-child(1), .pool-meta.staked.amount div:nth-child(1){ \r\n font-size : 20px;\r\n font-weight: 600;\r\n line-height: 1.1;\r\n color : rgb(6, 55, 103);\r\n}\r\n\r\n.pool-meta.earned.amount div button, .pool-meta.staked.amount div button {\r\n margin : 0;\r\n background: rgb(68, 196, 226);\r\n color : white;\r\n}\r\n\r\n.pool-meta.wallet-balance {\r\n display : block;\r\n justify-content: right;\r\n min-width : 95%;\r\n}\r\n\r\n.pool-meta.wallet-balance div:nth-child(1) {\r\n box-align: center; /* As specified */\r\n -moz-box-align: center; /* Mozilla */\r\n -webkit-box-align: center;\r\n align-items : center;\r\n color : rgb(6, 55, 103);\r\n display : flex;\r\n font-size : 14px;\r\n font-weight : 700;\r\n height : 22px;\r\n -webkit-box-pack : end;\r\n justify-content : center;\r\n margin-bottom : 10px;\r\n}\r\n\r\n.btn-liquid {\r\n width: 129px;\r\n height: 42px;\r\n color: var(--fg);\r\n letter-spacing: .05em;\r\n text-align: center;\r\n border-radius: 27px;\r\n font-weight: 400;\r\n font-size: 16px;\r\n font-family: Titillium Web,sans-serif;\r\n text-decoration: none;\r\n display: flex;\r\n justify-content: center;\r\n position: relative;\r\n margin-top: 10px;\r\n}\r\n\r\n.btn-liquid .inner {\r\n\tposition: relative;\r\n\r\n\tz-index: 2;\r\n}\r\n\r\n.btn-liquid canvas {\r\n transform: translate(13px, 23px);\r\n\tposition: absolute;\r\n\ttop: -50px;\r\n\tright: -50px;\r\n\tbottom: -50px;\r\n\tleft: -50px;\r\n\r\n\tz-index: 1;\r\n}\r\n\r\n/* .user-info {\r\n background-color: var(--second-yellow);\r\n color: var(--fg);\r\n} */\r\n\r\n.user-info.selected {\r\n /* background-color: var(--second-yellow-selected); */\r\n color: var(--fg);\r\n font-weight: bold;\r\n}\r\n\r\n.pool-meta.actions {\r\n justify-content: center;\r\n}\r\n\r\n.pool-meta.actions button {\r\n padding : 1rem;\r\n min-width: 48px;\r\n}\r\n\r\n.stake-action {\r\n fill: white;\r\n}\r\n\r\n.user-info span {\r\n box-sizing: content-box;\r\n display : inline-block;\r\n font-weight : 600;\r\n font-size : 14px;\r\n line-height : 11px;\r\n margin-top: 15px;\r\n}\r\n\r\n.error {\r\n color: var(--yellow);\r\n}\r\n\r\n#wallet-selection {\r\n display : flex;\r\n flex-flow : row;\r\n justify-content: center;\r\n}\r\n\r\n.wallet-box {\r\n display : flex;\r\n flex-flow : column;\r\n align-items: center;\r\n text-align : center;\r\n cursor : pointer;\r\n font-size : 11px;\r\n}\r\n\r\n.wallet-logo {\r\n width : 125px;\r\n height: 125px;\r\n}\r\n\r\n.near-logo {\r\n background-image: url(assets/near-logo-black.svg);\r\n}\r\n\r\n.narwallets-logo {\r\n background-image: url(assets/narwallets-logo.svg);\r\n}\r\n\r\nmain {\r\n/* display : flex;\r\n flex-flow : column;\r\n align-items: center;*/\r\n}\r\n\r\n\r\narticle,\r\nform,\r\n.popup,\r\n.flex-column {\r\n display : flex;\r\n flex-flow : column;\r\n align-items: center;\r\n}\r\n\r\narticle,\r\nform,\r\n.box {\r\n padding : 10px;\r\n background : #FFFFFF;\r\n box-shadow : 0px 0px 20px rgba(220, 226, 235, 0.7);\r\n border-radius: 12px;\r\n /* margin : 1em; */\r\n}\r\n\r\n.input-group-box {\r\n flex-direction: column;\r\n}\r\n\r\n.input-group {\r\n flex-flow : row;\r\n background : #F6F2FD;\r\n border-radius: 8px;\r\n padding : 10px;\r\n display : flex;\r\n width : 95%;\r\n margin : 6px;\r\n}\r\n\r\ninput,\r\n.input-group span {\r\n flex : 1 1 100%;\r\n background : #f6f2fd;\r\n border : 0;\r\n font-weight: 600;\r\n font-size : 16px;\r\n line-height: 19px;\r\n margin-left: 4px;\r\n text-align : center;\r\n white-space: nowrap;\r\n}\r\n\r\n.input-group span {\r\n flex: 1 1 30%;\r\n}\r\n\r\n.inside-input {\r\n color : #8542ebcc;\r\n cursor : pointer;\r\n text-align: right;\r\n}\r\n\r\n.button {\r\n font-weight: 400;\r\n font-size: 16px;\r\n height: 48px;\r\n min-width: 50%;\r\n background: var(--primary);\r\n border-radius: 16px;\r\n color: hsla(0,0%,100%,.8901960784313725);\r\n margin: 5px 7px;\r\n padding: 0 24px;\r\n border: 0;\r\n box-shadow: inset 0 -1px 0 0 rgb(14 14 44 / 40%);\r\n cursor: pointer;\r\n}\r\n\r\nbutton:disabled {\r\n opacity: 0.5;\r\n}\r\n\r\nbutton.hollow {\r\n border : 1px solid var(--primary);\r\n background : var(--gf);\r\n color : var(--primary);\r\n padding-top : 2px;\r\n padding-bottom: 2px;\r\n}\r\n\r\n.btn {\r\n border: 2px solid gold;\r\n padding: 8px 10px;\r\n height: 32px;\r\n background: white;\r\n border-radius: 16px;\r\n /* margin: 8px 16px 8px 0; */\r\n line-height: 12px;\r\n cursor: pointer;\r\n text-decoration: none;\r\n color: black;\r\n}\r\n\r\n.btn:disabled {\r\n border-color: #ccc !important;;\r\n background: white !important;\r\n color: #ccc !important;\r\n}\r\n\r\n.btn:focus {\r\n outline: none;\r\n}\r\n\r\n.btn:hover {\r\n background: gold;\r\n}\r\n\r\n.btn:active {\r\n color: white;\r\n background: #0072CE;\r\n}\r\n\r\n.btn-outline-none {\r\n border: none;\r\n line-height: 32px;\r\n}\r\n\r\n#other-links .btn-outline-none {\r\n margin-right: 6px !important;\r\n}\r\n\r\n.btn-outline-none svg {\r\n top: 7px;\r\n position: relative;\r\n}\r\n\r\n.hQrVZb {\r\n display: flex;\r\n}\r\n\r\n.hQrVZb svg {\r\n width: 20px;\r\n height: 20px;\r\n}\r\n\r\n.eUMSBu {\r\n fill: white;\r\n flex-shrink: 0;\r\n}\r\n\r\n.gAaTZf {\r\n -webkit-box-align: center;\r\n align-items: center;\r\n background-color: var(--primary);\r\n border: 0px;\r\n border-radius: 16px;\r\n box-shadow: none;\r\n color: white;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-family: inherit;\r\n font-size: 16px;\r\n font-weight: 600;\r\n width: max-content;\r\n height: 48px;\r\n line-height: 1;\r\n letter-spacing: 0.03em;\r\n -webkit-box-pack: center;\r\n justify-content: center;\r\n outline: 0px;\r\n padding: 0px 24px;\r\n transition: background-color 0.2s ease 0s;\r\n opacity: 1;\r\n margin-right: 6px;\r\n}\r\n\r\n.hwJKVX {\r\n -webkit-box-align: center;\r\n align-items: center;\r\n background-color: var(--primary);\r\n border: 0px;\r\n border-radius: 16px;\r\n box-shadow: none;\r\n color: white;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-family: inherit;\r\n font-size: 16px;\r\n font-weight: 600;\r\n width: max-content;\r\n /* height: 48px; */\r\n line-height: 1;\r\n letter-spacing: 0.03em;\r\n -webkit-box-pack: center;\r\n justify-content: center;\r\n outline: 0px;\r\n padding: 0px 24px;\r\n transition: background-color 0.2s ease 0s;\r\n opacity: 1;\r\n}\r\n\r\n.overlay {\r\n position : fixed;\r\n top : 0;\r\n right : 0;\r\n left : 0;\r\n bottom : 0;\r\n z-index : 30;\r\n justify-content : center;\r\n background-color: #d3d3d373;\r\n display : flex;\r\n flex-flow : column;\r\n align-items : center;\r\n}\r\n\r\n.red-x {\r\n background-image : url(assets/red-x.svg);\r\n background-repeat : no-repeat;\r\n background-position: center;\r\n padding : 1em;\r\n}\r\n\r\n.popup {\r\n min-width: 350px;\r\n}\r\n\r\nh3.popup {\r\n align-self: stretch;\r\n\r\n}\r\n\r\nfieldset {\r\n border : 0;\r\n display : flex;\r\n flex-flow : column;\r\n align-items: center;\r\n width : 100%;\r\n padding-block-start: 0.75em;\r\n}\r\n\r\n#meta-stats h4 {\r\n font-weight: 600;\r\n font-size: 16px;\r\n line-height: 20px;\r\n color: rgb(68, 196, 226);\r\n text-align: center;\r\n margin-bottom: 0.5em;\r\n margin-top: 0.5em;\r\n}\r\n\r\n.stat-line {\r\n display : flex;\r\n flex-flow : row;\r\n justify-content: space-between;\r\n padding : 5px 0px;\r\n width : 100%;\r\n}\r\n\r\n.stat-line span {\r\n color: rgb(6, 55, 103);\r\n font-size: 12px;\r\n font-weight: 500;\r\n}\r\n\r\n.stat-line:not(:nth-child(1)) {\r\n /*border-top: 1px dashed #D8DBE5;*/\r\n}\r\n\r\n.stat-line dt {\r\n flex: 1 1 100%;\r\n}\r\n\r\n.stat-line dd {\r\n flex : 1 1 10%;\r\n display : inline-flex;\r\n font-weight: 500;\r\n}\r\n\r\n.stat-small-line {\r\n flex-flow : row;\r\n padding : 2px 0px 7px 10px;\r\n display : flex;\r\n width : 100%;\r\n margin-top: -0.9em;\r\n font-size : 0.8em;\r\n}\r\n\r\n.line-left {\r\n display : flex;\r\n flex-flow: column;\r\n}\r\n\r\n.line-left span {\r\n margin: 2px;\r\n}\r\n\r\n.line-right {\r\n display : flex;\r\n flex-flow : row;\r\n justify-content: flex-end;\r\n align-items : center;\r\n}\r\n\r\n.bold {\r\n font-weight: 700;\r\n}\r\n\r\n.large {\r\n font-size: 1.2em;\r\n}\r\n\r\nimg.icon {\r\n width : 32px;\r\n height: 32px;\r\n}\r\n\r\nsmall img {\r\n width : 16px;\r\n height : 16px;\r\n position: relative;\r\n top : 4px;\r\n}\r\n\r\n/* Tooltip container */\r\n.tooltip {\r\n display : inline-block;\r\n position : relative;\r\n top : 0.2em;\r\n font-size : 11px;\r\n white-space: nowrap;\r\n word-break : keep-all;\r\n}\r\n\r\n/* Tooltip text */\r\n.tooltip .tooltip-text {\r\n position : absolute;\r\n text-align : center;\r\n padding : 5px;\r\n border-radius: 6px;\r\n /* Position the tooltip text*/\r\n visibility : hidden;\r\n width : 24em;\r\n left : -11em;\r\n top : 0.5em;\r\n z-index : 30;\r\n word-break : break-word;\r\n white-space : break-spaces;\r\n max-width : 50vw;\r\n}\r\n\r\n/* Show the tooltip text when you mouse over the tooltip container */\r\n.tooltip:hover .tooltip-text {\r\n visibility: visible;\r\n}\r\n\r\n.info {\r\n background-image : url(assets/info.svg);\r\n background-repeat : no-repeat;\r\n background-position: center;\r\n background-size : contain;\r\n padding : 3px;\r\n margin-left : 5px;\r\n}\r\n\r\n.confirmed {\r\n background-image : url(assets/confirm.svg);\r\n background-repeat : no-repeat;\r\n background-position: center;\r\n padding : 20px;\r\n}\r\n\r\n.spinner {\r\n background-image : url(assets/spinner.svg);\r\n background-repeat : no-repeat;\r\n background-position-x: center;\r\n background-size : cover;\r\n padding : 20px;\r\n margin-top : 8px;\r\n}\r\n\r\n.symbol {\r\n transform: scale(0.65);\r\n}\r\n\r\n.near,\r\n.meta {\r\n word-break : keep-all;\r\n white-space: nowrap;\r\n}\r\n\r\n.nearico:after {\r\n display : inline-block;\r\n content : \"\\24c3\";\r\n transform : scale(0.65);\r\n font-weight: 400;\r\n}\r\n\r\n.meta:after {\r\n content: \"\\24c2\";\r\n}\r\n\r\n.cheddar:after {\r\n display : inline-block;\r\n content : \"\\24B8\";\r\n transform : scale(0.65);\r\n font-weight: 400;\r\n}\r\n\r\n.pct:after {\r\n transform : scale(0.8);\r\n margin-left: 0.4em;\r\n content : \"%\";\r\n}\r\n\r\n.header-note {\r\n font-size : 14px;\r\n word-break : break-word;\r\n white-space: break-spaces;\r\n text-align : left;\r\n align-self : self-start;\r\n padding-top: 10px;\r\n}\r\n\r\n.footer-note {\r\n font-size : 12px;\r\n word-break : break-word;\r\n white-space: break-spaces;\r\n text-align : left;\r\n align-self : self-start;\r\n border-top : 1px dashed #D8DBE5;\r\n padding-top: 10px;\r\n}\r\n\r\n.box.popup,\r\n.box.popup button,\r\n.box.popup img {\r\n margin-top: 15px;\r\n max-width: 25%;\r\n}\r\n\r\n.confirm-cancel-line {\r\n align-self: flex-end;\r\n}\r\n\r\n.small {\r\n font-size : 11px;\r\n font-weight: 400;\r\n}\r\n\r\n.hidden {\r\n display: none!important;\r\n}\r\n\r\n#max {\r\n display: none;\r\n}\r\n\r\n.show {\r\n display: block;\r\n}\r\n\r\na#terms-of-use {\r\n color: blue;\r\n}\r\n\r\nli {\r\n list-style: none;\r\n}\r\n\r\n.harvest-section {\r\n display: flex;\r\n flex-wrap: nowrap;\r\n align-content: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n}\r\n\r\n.equal-width-than-boost-button, .structural-in-simple-pools {\r\n width: 62.531px;\r\n}\r\n\r\n.empty {\r\n fill: none;\r\n}\r\n\r\n.full {\r\n fill: #F9BA37\r\n}\r\n\r\n.main-contract-footer {\r\n width: 100%;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n}\r\n\r\n.main-contract-footer .button {\r\n min-width: none;\r\n}\r\n\r\n#stake-unstake-nft {\r\n max-width: 180px;\r\n align-self: center;\r\n}\r\n\r\n.boost-button {\r\n user-select: none;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n width: 62.531px;\r\n cursor: pointer;\r\n}\r\n\r\n.main-contract-footer p {\r\n text-align: center;\r\n}\r\n\r\ninput[type=checkbox][disabled]{\r\n outline:1px solid blue;\r\n}\r\n\r\ninput#terms-of-use{\r\nbackground-color:green;\r\n}\r\n\r\ninput[type=\"checkbox\"]#terms-of-use {\r\n display: none;\r\n}\r\n\r\n.disclaimer {\r\n margin-top: 10px;\r\n}\r\n\r\n.disclaimer label:before{\r\n background: green;\r\n border: 1px solid #035f8f;\r\n height: 18px;\r\n width: 18px;\r\n display: inline-block;\r\n cursor: pointer;\r\n}\r\ninput[type=\"checkbox\"]#terms-of-use + label:before {\r\n content: '';\r\n background: blue;\r\n border-color: blue;\r\n color: blue;\r\n font-size: 15px;\r\n line-height: 15px;\r\n text-align: center;\r\n}\r\n\r\ninput[type=\"checkbox\"]#terms-of-use:disabled + label:before {\r\n border-color: #ccc;\r\n color: blue;\r\n background: #ddd;\r\n}\r\n\r\ninput[type=\"checkbox\"]#terms-of-use:checked + label:before {\r\n content: '✓';\r\n}\r\n\r\n.max {\r\n color: blue;\r\n font-size: 14px;\r\n}\r\n\r\n#near-balance a {\r\n display: inline-block\r\n}\r\n\r\n#stake-form-not-connected{\r\n max-width: 320px;\r\n margin: 0 auto;\r\n}\r\n\r\n.loader {\r\n border: 16px solid #f3f3f3;\r\n border-radius: 50%;\r\n border-top: 16px solid #fd941f;\r\n width: 120px;\r\n height: 120px;\r\n -webkit-animation: spin 2s linear infinite; /* Safari */\r\n animation: spin 2s linear infinite;\r\n margin: 10% auto;\r\n position: realative;\r\n background-image: url(assets/cheddar.svg);\r\n}\r\n\r\n@-webkit-keyframes spin {\r\n 0% { -webkit-transform: rotate(0deg); }\r\n 100% { -webkit-transform: rotate(360deg); }\r\n}\r\n\r\n@keyframes spin {\r\n 0% { transform: rotate(0deg); }\r\n 100% { transform: rotate(360deg); }\r\n}\r\n\r\nsection#my-account, section#faq {\r\n width: 65%;\r\n margin: 0 auto;\r\n}\r\n\r\n#deposit button {\r\n margin : 0;\r\n background: rgb(68, 196, 226);\r\n color : white;\r\n}\r\n\r\n#deposit button {\r\n font-weight: 700;\r\n}\r\n\r\n#deposit {\r\n text-align: center;\r\n margin-bottom: 200px;\r\n}\r\n\r\n#deposit p {\r\n text-align: center;\r\n font-size: 11px;\r\n font-weight: 600;\r\n}\r\n\r\n#poolOpen {\r\n margin-bottom: 1.2em;\r\n}\r\n\r\n#poolOpen span {\r\n font-size: 16px;\r\n font-weight: bold;\r\n color: rgba(80,41,254,0.88);\r\n}\r\n\r\n.show-smaller-screens {\r\n display: none;\r\n}\r\n\r\n.show-bigger-screens {\r\n display: block;\r\n}\r\n\r\n#our-social-media {\r\n position: relative;\r\n z-index: 4;\r\n\r\n display : flex;\r\n flex-flow : row;\r\n align-items: center;\r\n margin : 5px 15px 0px 15px;\r\n}\r\n\r\n#our-social-media span {\r\n font-family: Bubblegum Sans !important;\r\n font-weight: bold;\r\n font-size: 13px;\r\n margin: 0 0.2rem 0 0.2rem;\r\n white-space: nowrap;\r\n}\r\n\r\n#our-social-media a{\r\n color: #222;\r\n margin: 0 0 0 0.1rem;\r\n width: 1.5em;\r\n}\r\n\r\n#our-social-media a:focus {\r\n outline-style: none;\r\n outline-color: (--primary);\r\n box-shadow : none;\r\n outline-width: 0px;\r\n}\r\n\r\n.cheddar-general-info {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n}\r\n\r\n.cheddar-general-info span {\r\n font-weight: 700;\r\n}\r\n\r\n.header-extension_cheddar-value-container {\r\n display: flex;\r\n align-items: center;\r\n margin-top: 5px;\r\n}\r\n\r\n.header-extension_cheddar-value-container svg {\r\n background: var(--bg);\r\n padding: 3px;\r\n border-radius: 100%;\r\n border: 1px var(--primary) solid;\r\n margin-right: 5px;\r\n}\r\n\r\n#game-links {\r\n position: relative;\r\n margin-left: 1rem;\r\n}\r\n\r\n#game-links a, #coinFlip {\r\n font-family: Bubblegum Sans !important;\r\n font-weight: bold;\r\n font-size: 14px;\r\n white-space: nowrap;\r\n}\r\n\r\n#coinFlip img {\r\n position: relative;\r\n top: 5px;\r\n height: 19px;\r\n aspect-ratio: 1;\r\n}\r\n\r\n#checkers img {\r\n height: 18px;\r\n position: relative;\r\n top: 4px;\r\n}\r\n\r\n#VRFarm svg {\r\n top: 4px;\r\n}\r\n\r\n.games-dropdown {\r\n text-align: center;\r\n width: max-content;\r\n margin: 5px;\r\n user-select: none;\r\n}\r\n\r\n.games-dropdown svg {\r\n top: 5px !important;\r\n transition: all 0.3s linear;\r\n}\r\n\r\n.game-links {\r\n position: relative;\r\n top: 10px;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n}\r\n\r\n.games-dropdown-items {\r\n position: absolute;\r\n z-index: 3;\r\n top: 35px;\r\n left: 4px;\r\n overflow: hidden;\r\n height: max-content;\r\n width: max-content;\r\n transition: all 0.3s step-end;\r\n}\r\n\r\n.games-dropdown-items.down {\r\n z-index: 5;\r\n transition: all 0.3s step-start;\r\n}\r\n\r\n.games-dropdown-hidden-position {\r\n transform: translateY(-100%) !important;\r\n}\r\n\r\n.games-links-container {\r\n transform: translateY(0%);\r\n transition: all 0.3s ease-out;\r\n position: relative;\r\n padding: 8px 0;\r\n border-radius: 16px;\r\n text-align: right;\r\n width: max-content;\r\n max-width: 80vw;\r\n background-color: white;\r\n}\r\n\r\n/* The switch - the box around the slider */\r\n.switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 35px;\r\n height: 20px;\r\n}\r\n\r\n/* Hide default HTML checkbox */\r\n.switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n/* The slider */\r\n.slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #ccc;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n}\r\n\r\n.slider:before {\r\n position: absolute;\r\n content: \"\";\r\n height: 15px;\r\n width: 15px;\r\n left: 2px;\r\n bottom: 2px;\r\n background-color: white;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n}\r\n\r\ninput:checked + .slider {\r\n background-color: #2196F3;\r\n}\r\n\r\ninput:focus + .slider {\r\n box-shadow: 0 0 1px #2196F3;\r\n}\r\n\r\ninput:checked + .slider:before {\r\n -webkit-transform: translateX(16px);\r\n -ms-transform: translateX(16px);\r\n transform: translateX(16px);\r\n}\r\n\r\n/* Rounded sliders */\r\n.slider.round {\r\n border-radius: 34px;\r\n}\r\n\r\n.slider.round:before {\r\n border-radius: 50%;\r\n}\r\n\r\n\r\n/*laptop/desktop*/\r\n@media only screen and (min-width: 600px) {\r\n\r\n section,\r\n article,\r\n form {\r\n min-width: 280px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 1000px) {\r\n\r\n #home-connected, #nft-pools-section {\r\n margin: 1rem;\r\n }\r\n\r\n #nft-pools-section {\r\n left: -13px !important;\r\n top: -26px !important;\r\n }\r\n\r\n .nft-flex {\r\n flex-direction: column;\r\n }\r\n}\r\n\r\n.tools {\r\n display: flex;\r\n align-items: flex-start;\r\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n grid-gap: 1rem;\r\n justify-items: center;\r\n}\r\n\r\n.tools span {\r\n font-weight: bold;\r\n font-size: .75rem;\r\n line-height: 1rem;\r\n}\r\n\r\n/*phones*/\r\n@media only screen and (max-width: 360px) {\r\n\r\n html {\r\n font-size: 11px;\r\n }\r\n\r\n h2 {\r\n font-size: 17px;\r\n }\r\n\r\n #logo img {\r\n width: 70%;\r\n }\r\n\r\n #token-header span.name {\r\n font-size: 20px;\r\n }\r\n\r\n #home-connected, #nft-pools-section {\r\n margin: 0.25rem;\r\n }\r\n\r\n /* .btn-outline-none {\r\n margin-left: 1rem;\r\n } */\r\n\r\n .popup {\r\n min-width: 300px!important;\r\n }\r\n\r\n #game-links {\r\n margin-left: 0!important;\r\n }\r\n\r\n .grid > div, .nft-card div {\r\n max-width: 315px;\r\n }\r\n\r\n .pool-meta {\r\n min-width: 90%;\r\n }\r\n\r\n section,\r\n article,\r\n form {\r\n min-width: 280px;\r\n\r\n }\r\n\r\n header div.title {\r\n margin-left: 2px;\r\n }\r\n\r\n .burguer-content a {\r\n font-size : 11px;\r\n padding-bottom: 3px;\r\n }\r\n}\r\n\r\n/* NEW CSS *//*I COMMENTED PREVIOUS DIV AND H2 SELECTORS AND HAVE PROBLEMS WITH .GRID > DIV SELECTOR*/\r\n.noscroll { \r\n overflow: hidden;\r\n}\r\n\r\n.transparent {\r\n transition: all 0.5s linear;\r\n opacity: 1; \r\n color: var(--yellow);\r\n font-weight: bolder;\r\n}\r\n\r\n#home-connected {\r\n margin: 0 15px;\r\n}\r\n\r\n#home-connected #pool_list {\r\n justify-content: space-between;\r\n flex-wrap: wrap;\r\n align-items: stretch;\r\n}\r\n\r\n#pool_list .no-pools {\r\n text-align: center; \r\n margin: 0 auto; \r\n width: 120%; \r\n color: #8542eb; \r\n outline: double; \r\n padding: 1rem;\r\n /* text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff; /\r\n / background-color: #333; */\r\n}\r\n\r\n.pool-container {\r\n border-width: 12px;\r\n}\r\n\r\n.pool-container, .nft-card {\r\n min-width: 330px;\r\n height: max-content;\r\n border-radius: 8px!important;\r\n}\r\n\r\n\r\n.news {\r\n font-family: Bubblegum Sans !important;\r\n font-size: 4rem;\r\n font-weight: normal;\r\n text-shadow: -1px -1px 0px #FFFFFF, -1px 0px 0px #FFFFFF, -1px 1px 0px #FFFFFF, 0px -1px 0px #FFFFFF, 0px 0px 0px #FFFFFF, 0px 1px 0px #FFFFFF, 1px -1px 0px #FFFFFF, 1px 0px 0px #FFFFFF, 1px 1px 0px #FFFFFF, 8px 8px 13px rgba(0,0,0,0.75);\r\n color: var(--second-yellow);\r\n letter-spacing: 3px;\r\n text-align: center;\r\n}\r\n\r\n#timer {\r\n font-size: large;\r\n text-align: center;\r\n margin-top: 16px;\r\n}\r\n\r\n.pool-filter-container {\r\n background-color: var(--second-new-grey);\r\n border-radius: 10px;\r\n width: max-content;\r\n color: var(--new-gray);\r\n font-style: normal;\r\n font-weight: 700;\r\n font-size: 14px;\r\n text-align: center;\r\n letter-spacing: 1.25px;\r\n margin: 32px 0 1.5rem 0;\r\n}\r\n\r\n.pool-filter-container ul {\r\n display: flex;\r\n}\r\n\r\n.pool-filter-container li {\r\n width: 133px;\r\n height: 42px;\r\n border-radius: 10px;\r\n line-height: 42px;\r\n cursor: pointer;\r\n user-select: none;\r\n max-width: 30vw;\r\n}\r\n\r\n.pool-filter-container li:hover, .activeFilterButton {\r\n background-color: var(--primary);\r\n color: var(--bg);\r\n}\r\n\r\n.no-live-pools-msg h2 {\r\n color: var(--primary);\r\n transition: all 0.3s linear;\r\n font-size: x-large;\r\n margin: 50px auto;\r\n width: max-content;\r\n background-color: var(--second-new-grey);\r\n padding: 20px;\r\n border-radius: 100px;\r\n box-shadow: 4px 4px 4px #00000073;\r\n} \r\n\r\n\r\n.no-live-pools-msg:hover {\r\n transform: scale(1.01);\r\n user-select: none;\r\n}\r\n\r\n.not-connected-msg h2 {\r\n text-align: center;\r\n display: block;\r\n font-size: 2rem;\r\n margin: 30px;\r\n}\r\n\r\n#pool-container {\r\n position: relative;\r\n}\r\n\r\n#generic-pool-container, #pool-container, #activated {\r\n border-color: var(--second-new-grey);\r\n border-style: solid;\r\n background-color: var(--white);\r\n}\r\n\r\n#pool-container {\r\n padding: 0px 10px;\r\n}\r\n\r\n#pool-container, #activated {\r\n width: 90%;\r\n background: var(--white);\r\n box-shadow: 0px 0px 20px rgb(220 226 235 / 70%);\r\n border-radius: 12px;\r\n position: relative;\r\n}\r\n\r\n#contract-period-container {\r\n margin: 9px;\r\n font-size: 11px;\r\n font-weight: 700;\r\n color: black;\r\n}\r\n\r\n.date-in-range-indicator {\r\n height: 20px;\r\n aspect-ratio: 1;\r\n position: absolute;\r\n transform: translate(10px, -5px);\r\n}\r\n\r\n.onDate {\r\n fill: rgb(151, 186, 16);\r\n}\r\n\r\n.offDate {\r\n fill: rgb(255, 52, 52);\r\n}\r\n\r\n.no-opacity {\r\n opacity: 1 !important;\r\n}\r\n\r\n.inactive-pool #contract-period-container, .inactive-pool .new-pool-header, .inactive-pool .main-contract-information li>:nth-child(1), .inactive-pool .main-contract-information li>:nth-child(2), .inactive-pool .detail-row, .inactive-pool .first-token, .inactive-pool .stats-container {\r\n opacity: 0.5;\r\n}\r\n\r\n.new-pool-header {\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 14px 0 8px 0;\r\n align-items: center;\r\n}\r\n\r\n.token-logo-container {\r\n width: 20%;\r\n height: 44px;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: nowrap;\r\n align-content: center;\r\n justify-content: flex-start;\r\n align-items: center;\r\n}\r\n\r\n.token-logo-container img, .token-logo-svg-container svg {\r\n max-width: 44px;\r\n aspect-ratio: 1;\r\n background-color: var(--white);\r\n border-radius: 100%;\r\n box-shadow: 0px 4px 4px rgb(0 0 0 / 25%);\r\n}\r\n\r\n.token-logo-container > *:first-child {\r\n margin-left: 0;\r\n}\r\n\r\n.have-1-elements > * {\r\n height: 100%;\r\n}\r\n\r\n.have-2-elements > * {\r\n margin-left: -0.6rem;\r\n height: 90%;\r\n}\r\n\r\n.have-3-elements > * {\r\n margin-left: -1.3rem;\r\n height: 85%;\r\n}\r\n\r\n.have-4-elements > * {\r\n margin-left: -1.5rem;\r\n height: 80%;\r\n}\r\n\r\n.have-5-elements > * {\r\n margin-left: -1.3rem;\r\n height: 70%;\r\n}\r\n\r\n.have-6-elements > * {\r\n margin-left: -1.35rem;\r\n height: 65%;\r\n}\r\n\r\n.have-7-elements > * {\r\n margin-left: -1.4rem;\r\n height: 63%;\r\n}\r\n\r\n.farmed-token-logo {\r\n z-index: 10;\r\n}\r\n\r\n#token-pool-stats .farmed-token-logo {\r\n z-index: 11;\r\n}\r\n\r\n.information-icon-container {\r\n width: 20%;\r\n}\r\n\r\n.information-icon-container img {\r\n margin-left: 53%;\r\n}\r\n\r\n.token-stats {\r\n margin: 3px;\r\n padding: 7px;\r\n}\r\n\r\n.max-button {\r\n color: var(--primary);\r\n font-weight: 600;\r\n cursor: pointer;\r\n}\r\n\r\n.token-name-container {\r\n font-size: 16px;\r\n font-weight: 700;\r\n line-height: 19px;\r\n width: 55%;\r\n margin: 0 12%;\r\n}\r\n\r\n.token-name-container .token-name {\r\n text-align: center;\r\n}\r\n\r\n#token-pool-stats {\r\n z-index: 20;\r\n width: 107%;\r\n max-width: 468px;\r\n min-width: 315px;\r\n transform: translateX(-23px);\r\n position: absolute;\r\n top: 0px;\r\n background-color: var(--white);\r\n padding: 0 10px;\r\n border-top: 0px;\r\n border-right: 12px;\r\n border-bottom: 12px;\r\n border-left: 12px;\r\n border-color: var(--second-new-grey);\r\n border-style: solid;\r\n border-radius: 18px;\r\n}\r\n\r\n#token-pool-stats #new-pool-header {\r\n padding-top: 0px;\r\n}\r\n\r\n#token-pool-stats h3 {\r\n text-align: center;\r\n font-size: 14px;\r\n font-weight: 700;\r\n}\r\n\r\n.stats-container {\r\n font-size: 12px;\r\n font-weight: 400;\r\n}\r\n\r\n.stats-container li {\r\n display: flex;\r\n justify-content: space-between;\r\n margin: 0 auto;\r\n position: relative;\r\n align-items: center;\r\n}\r\n\r\n#contract-information {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n align-content: space-between;\r\n}\r\n\r\n.multiple-nft-selection {\r\n display: flex;\r\n margin: 0 auto 10px auto;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n width: 100%;\r\n justify-content: space-between;\r\n}\r\n\r\n.select-multiple-nfts-buttons-container {\r\n display: flex; \r\n}\r\n\r\n.multiple-nft-selection-structural-div, .select-multiple-info {\r\n width: 20%;\r\n}\r\n\r\n.cheddar-needed-container {\r\n background-color: var(--bg);\r\n border-radius: 10px;\r\n}\r\n\r\n.select-multiple-info p {\r\n font-weight: 900;\r\n}\r\n\r\n.select-multiple-info img {\r\n margin-left: 5px;\r\n display: inline-block;\r\n height: 26px;\r\n}\r\n\r\n.cheddar-needed-to-stake-all-nfts {\r\n line-height: 26px;\r\n vertical-align: top;\r\n font-weight: 600;\r\n}\r\n\r\n.needed-to-stake-each-nft {\r\n text-align: center;\r\n}\r\n\r\n.select-multiple-nfts-buttons-container .button.selected, .nft-pools-container .selected .nft-actions-container .button {\r\n background: white !important;\r\n border: var(--primary-selected) 2px solid !important;\r\n color: var(--primary) !important;\r\n}\r\n\r\n.stake-all-nft-button, .unstake-all-nft-button {\r\n margin: 0px 5px;\r\n min-width: 42%;\r\n}\r\n\r\n.stake-all-nft-button:hover, .unstake-all-nft-button:hover {\r\n border: var(--light-gray) 2px solid;\r\n box-shadow: inset 0 -1px 0 0 var(--primary);\r\n}\r\n\r\n.main-contract-information, .nft-basic-info-and-interaction, .stats-container {\r\n width: 100%;\r\n font-weight: 600;\r\n font-size: 14px;\r\n line-height: 32px;\r\n}\r\n\r\n.main-contract-information ul {\r\n height: 100%;\r\n}\r\n\r\n.main-contract-information li, .nft-basic-info-and-interaction div {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n position: relative;\r\n}\r\n\r\nh2.nft-name {\r\n text-align: center;\r\n padding: 11px;\r\n}\r\n\r\n.nft-name-row {\r\n margin: 0 25px;\r\n}\r\n\r\n.nft-name-row h3 {\r\n line-height: 32px;\r\n}\r\n\r\n.pool-legend {\r\n font-weight: 400;\r\n line-height: 21px;\r\n}\r\n\r\n.unclaimed-rewards-info-container, .reward-tokens-info-container, .total-staked-info-container, .total-staked-info-container, .rewards-per-day-info-container, .apr-info-container {\r\n display: flex;\r\n flex-direction: column-reverse;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n justify-content: center;\r\n align-content: space-around;\r\n\r\n position: absolute;\r\n left: 80%;\r\n transform: translateY(-61%);\r\n\r\n background-color: var(--white);\r\n border: 1px solid var(--second-new-grey);\r\n border-radius: 12px;\r\n margin: 10px 40px;\r\n padding: 5px 9px;\r\n\r\n z-index: 1;\r\n}\r\n\r\n.total-staked-info-container {\r\n transform: translateY(-56%);\r\n}\r\n\r\n\r\n.unclaimed-rewards-info-container > div, .reward-tokens-info-container > div, .total-staked-info-container > div, .rewards-per-day-info-container > div, .apr-info-container > div {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n justify-content: space-between;\r\n}\r\n\r\n.detail-row span {\r\n padding: 5px;\r\n border-width: 0px 1px;\r\n border-radius: 12px;\r\n margin: 1px;\r\n line-height: 18px;\r\n}\r\n\r\n.reward-tokens-value {\r\n display: flex;\r\n justify-content: flex-end;\r\n max-height: 32px;\r\n}\r\n\r\n.reward-tokens-value img {\r\n margin-left: 3px;\r\n}\r\n\r\n.detail-row .mini-icon {\r\n margin: -30% 0;\r\n height: 18px;\r\n}\r\n\r\n.mini-icon {\r\n height: 30px;\r\n}\r\n\r\nbutton.activate {\r\n background-color: var(--yellow);\r\n color: var(--fg);\r\n font-weight: 500;\r\n}\r\n\r\n#activate .activate {\r\n margin: 0 25%;\r\n}\r\n\r\n#stake-unstake-nft, #harvest-button, #stake-button, #unstake-button, .activate, .nft-actions-container .button {\r\n background-color: var(--primary);\r\n color: var(--white);\r\n height: 36px;\r\n border: 1px solid rgba(0, 0, 0, 0.12);\r\n border-radius: 4px;\r\n}\r\n\r\n.visual-tool-expanding-indication-hidden {\r\n text-align: center;\r\n opacity: 0;\r\n color: var(--yellow);\r\n}\r\n\r\n@keyframes blink {\r\n 50% {\r\n opacity: 0.0;\r\n }\r\n}\r\n.blink {\r\n animation: blink 1.5s linear 0s infinite;\r\n}\r\n\r\n#expanding-indicators {\r\n height: 28px;\r\n transform: translateY(3px);\r\n}\r\n\r\n#expanding-indicators .hide-expand-buttons-container {\r\n margin: 0 auto;\r\n width: max-content;\r\n padding: 3px;\r\n}\r\n\r\n.expand-button {\r\n transition: all 0.5s linear;\r\n}\r\n\r\n.flipped {\r\n transform: rotate(180deg);\r\n}\r\n\r\n#expanding-indicators img {\r\n border: 5px var(--light-gray) solid;\r\n border-radius: 8px;\r\n background-color: var(--light-gray);\r\n}\r\n\r\n#activated {\r\n margin-bottom: 20px;\r\n}\r\n\r\n#staking-unstaking-container {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.show-type-container {\r\n width: 100%;\r\n}\r\n\r\n.show-type-container button {\r\n display: inline-block;\r\n width: 49%;\r\n text-align: center;\r\n font-weight: 600;\r\n color: var(--primary-low);\r\n padding: 16px 0px;\r\n border-width: 0 1px 2px 0;\r\n border-color: var(--light-gray);\r\n border-style: solid;\r\n}\r\n\r\n.show-type-container button.active {\r\n color: var(--primary);\r\n border-color: var(--primary);\r\n}\r\n\r\n.main-stake, .main-unstake {\r\n padding: 10px;\r\n width: 100%;\r\n}\r\n\r\n.input-container { \r\n display: flex;\r\n margin-top: 32px;\r\n align-items: center;\r\n background-color: var(--bg);\r\n padding: 0 3px;\r\n}\r\n\r\n.input-container input:focus {\r\n outline: none;\r\n}\r\n\r\n.input-container .token-logo, .input-container .token-logo-svg-container svg {\r\n height: 40px;\r\n margin-right: 10px;\r\n background-color: var(--shadow);\r\n border-radius: 50%;\r\n}\r\n\r\n.amount-available {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n}\r\n\r\n#staking-unstaking-container input {\r\n height: 56px;\r\n width: 99%;\r\n background-color: var(--bg);\r\n border-radius: 4px 4px 0 0;\r\n font-weight: 700;\r\n font-size: 14px;\r\n line-height: 24px;\r\n}\r\n\r\n#staking-unstaking-container input::placeholder {\r\n color: var(--primary);\r\n margin: 0 -8%;\r\n}\r\n\r\n.available-info {\r\n margin: 0 auto;\r\n width: 64%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.available-info>* {\r\n margin: 10px;\r\n}\r\n\r\n/* NFT section styles */\r\n#nft-pools-section {\r\n background-color: #ffffffad;\r\n position: fixed;\r\n left: -25px;\r\n top: -27px;\r\n height: 105vh;\r\n width: 103vw;\r\n overflow: scroll;\r\n z-index: 22;\r\n}\r\n\r\n.nft-pools-container {\r\n position: relative;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n margin: 100px auto 100px auto;\r\n padding: 30px 30px 30px 30px;\r\n border-radius: 12px;\r\n width: max-content;\r\n max-width: 117rem;\r\n background-color: var(--second-new-grey);\r\n min-width: 40%;\r\n max-width: 90%;\r\n}\r\n\r\n.cheddar-balance-container {\r\n font-weight: 800;\r\n position: absolute;\r\n top: 6px;\r\n right: 17px;\r\n width: max-content;\r\n}\r\n\r\n.cheddar-balance-container img {\r\n height: 26px;\r\n display: inline-block;\r\n position: relative;\r\n top: 7px;\r\n}\r\n\r\n.nft-farm-info, .stake-nfts-title {\r\n font-family: 'Inter';\r\n font-style: normal;\r\n font-weight: 700;\r\n font-size: 32px;\r\n line-height: 39px;\r\n text-align: center;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.nft-flex {\r\n display: flex;\r\n grid-gap: 3rem;\r\n align-items: center;\r\n justify-items: center;\r\n justify-content: center;\r\n flex-wrap: wrap;\r\n}\r\n\r\n.nft-card {\r\n border-style: solid;\r\n border-color: var(--second-new-grey);\r\n border-width: 29px 12px 12px 12px;\r\n}\r\n\r\n.generic-nft-card, .nft-card {\r\n /* background-color: var(--primary-low);\r\n border-radius: 8px; */\r\n filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));\r\n}\r\n\r\n.nft-presentation, .nft-basic-info-and-interaction {\r\n background-color: var(--bg);\r\n /* margin: 12px;\r\n border-radius: 4px; */\r\n}\r\n\r\n.nft-basic-info-and-interaction {\r\n padding: 8px;\r\n}\r\n\r\n.nft-presentation {\r\n border-bottom: 12px var(--second-new-grey) solid;\r\n}\r\n\r\n.nft-card > div {\r\n width: 380px;\r\n max-width: 80vw;\r\n}\r\n\r\n.nft-actions-container {\r\n display: flex;\r\n}\r\n\r\n.structural-container-nft-actions {\r\n width: 10%;\r\n height: 34px;\r\n}\r\n\r\n.confirm-or-cancel-stake-or-unstake-nft-container {\r\n display: flex;\r\n min-width: 50%;\r\n max-width: 100%;\r\n}\r\n\r\n.nft-actions-container button.button {\r\n height: 34px;\r\n}\r\n\r\n#confirm-stake-unstake, #cancel-stake-unstake {\r\n margin-top: 20px;\r\n width: 100%;\r\n min-width: auto;\r\n}\r\n\r\n.not-enough-cheddar-warning {\r\n color: rgb(255 0 0 / 73%);\r\n font-size: large;\r\n margin-top: 5px;\r\n padding: 10px;\r\n background-color: var(--bg);\r\n border-radius: 10px;\r\n font-weight: 700;\r\n}\r\n\r\n@media screen and (max-width: 1630px) {\r\n .nft-flex {\r\n max-width: 80vw;\r\n }\r\n}\r\n\r\n@media screen and (maX-width: 1132px) {\r\n .nft-flex {\r\n max-width: 478px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 1500px) and (min-width: 1130px) {\r\n .grid{\r\n grid-template-columns: repeat(3, 1fr);\r\n }\r\n}\r\n\r\n@media screen and (max-width: 1129px) and (min-width: 751px) {\r\n .grid{\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n}\r\n\r\n@media screen and (max-width: 1210px) {\r\n /*Burger*/\r\n\r\n nav { \r\n margin-top: 3px;\r\n }\r\n\r\n .close-burguer {\r\n color: var(--gray);\r\n position: absolute;\r\n right: 20px;\r\n top: 2vw;\r\n display: block !important;\r\n z-index: 1;\r\n }\r\n\r\n #burguer {\r\n z-index: 40;\r\n width: auto;\r\n justify-content: center;\r\n position: fixed;\r\n top: 40px;\r\n right: 11px;\r\n background-color: #ffffffc9;\r\n padding: 10px;\r\n border-radius: 20%;\r\n height: 49px;\r\n aspect-ratio: 1;\r\n }\r\n\r\n .burger-button {\r\n margin: 4px auto;\r\n width: max-content;\r\n }\r\n\r\n #burguer.no-publicity-position {\r\n top: 26px;\r\n }\r\n\r\n .burguer-content {\r\n z-index: 2;\r\n\r\n display: flex;\r\n position: fixed;\r\n right: 0;\r\n top: 0;\r\n width: 90%;\r\n height: 100%;\r\n background-color: var(--white);\r\n box-shadow: -13px 6px 26px -8px rgb(0 0 0 / 40%);\r\n\r\n margin: 0;\r\n\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n transform: translateX(110%);\r\n transition: transform 0.4s ease-in-out;\r\n }\r\n\r\n .top-in-burguer {\r\n order: 1;\r\n width: 100%;\r\n align-items: flex-start !important;\r\n }\r\n\r\n #other-links {\r\n display: flex;\r\n flex-direction: column;\r\n align-self: flex-start;\r\n }\r\n\r\n .games-dropdown {\r\n border: 1px solid black !important;\r\n }\r\n\r\n .games-links-container {\r\n border: 1px solid black;\r\n }\r\n \r\n .games-dropdown-items {\r\n right: auto;\r\n left: 5px;\r\n }\r\n\r\n .cheddar-main-logo-container {\r\n display: block;\r\n margin: 5px 0 0px 16px;\r\n order: 0;\r\n }\r\n\r\n #power-up {\r\n width: 131px;\r\n }\r\n\r\n #ref-swap {\r\n width: 110px;\r\n }\r\n\r\n .left-on-full-screen {\r\n order: 2;\r\n flex-direction: column-reverse !important;\r\n width: 100%;\r\n }\r\n\r\n .left-on-full-screen .navButton {\r\n align-self: self-start;\r\n }\r\n\r\n #power-up, #ref-swap {\r\n order: 3;\r\n border: black solid 1px;\r\n position: relative;\r\n height: 48px;\r\n background-color: var(--input);\r\n margin: 6px 14px;\r\n }\r\n\r\n #ref-swap svg {\r\n top: 12px;\r\n }\r\n \r\n #power-up img, #ref-swap svg {\r\n position: absolute;\r\n right: 11px;\r\n }\r\n\r\n a.selected {\r\n color: black;\r\n background-color: var(--second-yellow);\r\n }\r\n\r\n .navButton {\r\n background-color: rgba(255, 255, 255, 0);\r\n border-radius: 0px; \r\n color: black;\r\n padding: 12px 0px 12px 16px;\r\n box-shadow: none;\r\n margin: 0;\r\n order: 2;\r\n width: 100%;\r\n }\r\n\r\n .cheddar-general-info {\r\n padding: 12px 0 12px 16px;\r\n order: 1;\r\n align-items: flex-start;\r\n }\r\n\r\n .circulatingSupply.supply {\r\n position: relative;\r\n top: 8px;\r\n }\r\n\r\n .show-right__nav {\r\n transform: translateX(0);\r\n }\r\n\r\n .burger-button {\r\n display: block;\r\n }\r\n\r\n .btn-liquid {\r\n transform: translateX(29px)\r\n }\r\n}\r\n\r\n\r\n@media screen and (max-width: 750px) {\r\n .grid{\r\n grid-template-columns: repeat(1, 1fr);\r\n }\r\n\r\n .publicity-container {\r\n width: 100%;\r\n }\r\n\r\n .publicity-container img {\r\n height: 40%;\r\n }\r\n \r\n .publicity-container span {\r\n font-size: 2rem;\r\n }\r\n\r\n .publicity-decoration {\r\n width: 100%;\r\n }\r\n\r\n\r\n /* Burger\r\n header nav {\r\n justify-content: center;\r\n position: fixed;\r\n top: 11px;\r\n right: 11px;\r\n background-color: #ffffffc9;\r\n padding: 10px;\r\n border-radius: 20%;\r\n height: 49px;\r\n aspect-ratio: 1;\r\n }\r\n\r\n .cheddar-main-logo-container {\r\n display: block;\r\n }\r\n\r\n .navbar-links{\r\n display: flex;\r\n position: fixed;\r\n right: 0;\r\n top: 0;\r\n width: 90%;\r\n height: 100%;\r\n background-color: var(--white);\r\n box-shadow: -13px 6px 26px -8px rgb(0 0 0 / 40%);\r\n\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n transform: translateX(110%);\r\n transition: transform 0.4s ease-in-out;\r\n }\r\n\r\n .navbar-links > *:first-child {\r\n margin: 21px 0 29px 16px;\r\n }\r\n\r\n a.selected {\r\n color: black;\r\n background-color: var(--second-yellow);\r\n }\r\n\r\n .navButton {\r\n background-color: rgba(255, 255, 255, 0);\r\n border-radius: 0px; \r\n color: black;\r\n padding: 12px 0px 12px 16px;\r\n box-shadow: none;\r\n margin: 0;\r\n }\r\n\r\n .show-right__nav {\r\n transform: translateX(0);\r\n }\r\n\r\n .burger-button {\r\n display: block;\r\n }\r\n\r\n .line1, .line2, .line3, .burger-button--toggle .line1, .burger-button--toggle .line2, .burger-button--toggle .line3 {\r\n transition: all 0.4s ease-in-out;\r\n }\r\n\r\n .burger-button--toggle .line1{\r\n margin-bottom: 0 !important;\r\n transform: rotate(-45deg) translate(-4px, 2.5px);\r\n }\r\n\r\n .burger-button--toggle .line2{\r\n opacity: 0;\r\n }\r\n\r\n .burger-button--toggle .line3{\r\n transform: rotate(45deg) translate(-5.6px, -4.5px);\r\n } */\r\n\r\n \r\n}\r\n\r\n@media screen and (max-width: 600px) {\r\n .show-smaller-screens {\r\n display: block;\r\n }\r\n\r\n .show-bigger-screens {\r\n display: none;\r\n }\r\n\r\n header {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n\r\n .publicity-container img {\r\n height: 30%;\r\n }\r\n \r\n .publicity-container span {\r\n font-size: 1.8rem;\r\n }\r\n\r\n main {\r\n margin-top: 52px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 420px) {\r\n .publicity-container img {\r\n height: 20%;\r\n }\r\n \r\n .publicity-container span {\r\n font-size: 1.5rem;\r\n }\r\n}"],"names":[],"version":3,"file":"index.e692f8a6.css.map"} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..70cb509 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +Cheddar Token
learn image Learn farm image Farm play image Play

Loyalty is Rewarding...

  • Live
  • Ended
  • Your Farms
\ No newline at end of file diff --git a/info.f6ca4b8b.svg b/info.f6ca4b8b.svg new file mode 100644 index 0000000..c91bbc3 --- /dev/null +++ b/info.f6ca4b8b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/narwallets-logo.37085d70.svg b/narwallets-logo.37085d70.svg new file mode 100644 index 0000000..54b44d0 --- /dev/null +++ b/narwallets-logo.37085d70.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/near-logo-black.fb1fa9d1.svg b/near-logo-black.fb1fa9d1.svg new file mode 100644 index 0000000..4050c74 --- /dev/null +++ b/near-logo-black.fb1fa9d1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/newFarmBackground.c6905a5e.png b/newFarmBackground.c6905a5e.png new file mode 100644 index 0000000000000000000000000000000000000000..e39494ea8ea93c963fe982347b83194714c859ae GIT binary patch literal 751520 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%0AU7)ohAl1P@Cmz-cq=4`c} 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%0Dn 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

?{b*{2 zgdnQ{_Xbf07uMVmf}WQSQ6p&(9T_@`A~;y6Ng|Rq-=e`Nf-FpN9!~`Ec%k4i0x_~R z7zisb96WjsB82h$*6!!3QCg`y&F-G4clYF#ly3kXsjTxZ&E*UWa3JfKD335*f)a|T zvu#6F*PGea!>f~`D0ao|+H&rv=)EZcE85C2xV+rFLu)Ny*_FVhQ370BS1yrpMT7>F zZm!bYZ2+nFSbIy25}}xNAuMD2tN2NVSc!@+825q5B&S=JO9;6&RDc4q1Cp4#IuOO8 z5T)}22^LYCT-t^;FhaH!rGSZ8FFBi;1q4Un1ZGuppf;pH0Yn_%RUnOVbJ~5Xp3;d? z7mtr3NPuyF#2?Z%Ar?8Kn^edB)D?b+9dWLcZ{VPsaoR@eej9gk$H^ygEAAik10txj zANI|J1n$HpBP(^r#(+T}NBg~iO3~X!F}&TibVaQ}o91y;Hswn^m zms(S2W?FboxJvu|@&W1Q?#5ajoU|!CsK(KCTZRll6oxBm`K?4HB4E|M^Z20z=;I*{ zd+XrDq%7=N_TXSW@UATbjL^mv2;8L6OOpXMc?}VO4(nyZ{$0zwPOro!R*n_|8|aeD7P%z2?LW>~&}) z@(KVW*?^f4F$(z3l&|M~f#`nFf+@EpHm0sKyGJ1<%RH%NnBeB5O&|Y>sU+N7np=W2 z>?BOhqd=_*GHo3)Kqit}YDh~|1Ta8j8YJbpf|^e3hSQI2(qmg@r!ErfF6lL=kz|18 zr;OT@_Ck&W2Mh!Ndq9N0Y4oK5lk!YdFe5JtK!rF|b72z2nu3+!L=w;_tTM`ihj>ue!AbveGrdJ8^-@$yxm2y)D~E~B7TUf*^m37deh@9vu(M}>HRj_Xu$oa3GRt<#nL?$Ag-gNUoc+l=vnxaUXY*0ily@1x**oFF z-P^>XxKxli=Ye{Rz~q26qLx_761zE(HxRLvnLVh^A+)!RjA_sEMatgdt2%JQtiuG)FXYzqR{^J?oKl$VTTygjPORpU+=UPRP0dRk1n=I0kN8wApNyoM377Q<~C@$K!in_m&^~iJv&OfNw$&p$?N#D9b<` z)b)pc|M!3Qo$sWoI<>Mc6YHGge0h>q)5C)t<`Tw%#jP{%+U;m~n-G25Zd*ImYiria zQnNS(i^t%M&XrP;1>nGYB<%Hi8JLA0^e5i^?yJ52>xV0+PoG9Y==EOtwzsX=@Ls{E zKK6;--QCfsw`6cEkpPfAGe$R>r$$d_Q#+o$_BC($+8_ME6K{Eo3tlT7g)`NM{`#+f z{TF`WHQwh7E7YDyJs@Ela~VnP=j6+n2i@FxB$YSZ=Ma=qjVrMZNqZ43H$e!;Q$TL~ ziy^#-3}|W$ySmAU_(IO3lKR9F^{AY?a^=eQ_CB#fH3o>vTB|6BFWQa}sEJp^BUsWz z;ysZ9V|I7Tr=Gfa*RX%`_+VbygN!78wugO|@eD#E-c3ZkVqaWXt4=h3pca4zW?|ys zeBwuWU}2wp}tPpuY4xl*Q4NRKuuR#+^0?={Jr;v!857HPXD4%2r5Uj4QMll=3WV}dK z`pJA&&h3^vvv@8JS@rScN=qUlw@3uS(n)3ZnIFg;79Lnzpjo z5I8LHK6c{}z=u{DxY_2=_z#xMH6|Azg3HbMrzXCv0M0g731R7<@xIwp*AP5VM={_s z?BkUz@!sP3wFbnfr4q<Rbg0UGdPyq2R&WnNteLL#Tl( zhe1<7LaifI7ns3=0Abb?17jHKt|tzO5?@KWfNK|bWP#2^6!vG9`cVAP^e4veTToM) zvPmEu%$4y<%`_mnKI~bb1QDKWo)^Vz26!vJ)= z;t>L0LVJe7tx##$b8xohE1g-JSijI97#8q8RAucKCa$VrQo?jzj%yfCVd}s$%mX-v zilO$@oLw268LjnbG?1vPWsKiIX zf!=(&_w5gyziXXfb`7irrJ59hjS<241HibtO~j>Qn-+OM+-OpPmg(FaDa-v{eD}I7 z01Yt}#se!k0HLGbvV5-CS08N(5SyXblTYqEe3^IZ!Z|0=5aQL54gk{}$gi_+R)V0}G1eb3p|3+I}_69kB_IJVU)UM5yaIe0<=NheG>zrUZG zw8eQ4JM`xRg%-N|@i`gL%LCGrcDfkrgSarreWvtcM6_NE`hvR`ukK#27M5XDf{vDc z6qm30JMX;n%$aNIhVq;sd%XYtjl1r;OZZW(HM{1i+W@vPiEQ`1iypkU?*7A=6?7{S zcG6_fonzhxpby&%*V~nLaCIvtKoG5PFtE+W<^W0!R{U^%Sk|_rdA~p8)!sKhvSXfn z_aB$^Z9n!;jUIRvfcRlQD6Exo0DT}Sfi9d|x#Rm^b=S(ppQZe7KB8`vkmvA~X86(o zL&lf{>nzgk?QKL{RKgSg`cJQa?>7gf17jbRt3VftXMrAAU%dXrAN}#8|JSefpM2)@ z9cv*>>ftbiFpTcOQbMdlN(bmy2mm{|Of#rrtvWH0IN*EX0Cf5jkLDX9f_m9OaJTKY zy~uXhG1I0mhP^oI&&g)W1fUE9V7*?4h1nQ6e$?Bj>v~%B;B-&#Odk5pcWvC*Jn?Pc zy7iC!V;rXoSpn%FXlFeDHTK?$yycZA zfBGGx@Be1VRt-W`O0i?F|Mds2{@=fO_v6>|l|YK-z1%x73bYt>tb_(34L?+@F`2dxJ8p>z$%x<|lc+NXuN|nbC<8{as_> z)~scvb;q-1{7U&7c%_(6jE2JEb~%d=rs%GFErhNX4KdeJKq;W>j$Sn*LW~>e112bBxo}krP#7R0XA=mH_Q${|sZl^oPGVen;wdgb83GIqcdrL%AV|a7!gFt0!1Ze z91ig0h=c}?r?W{u+dY2m3s75{`(d!B%zXIR$L^E$t>bqdJANvghi1}?+0Z-PG{|+Z z)<&Tc1puYD&ho6TA`23Ohtf7=@W2e9XK>m%SJ`@z28hd|BfHsgK+r-cqFi8SmjO0& z;&zd^Wgj)ZqeCSDLm?5f_GqF(a>x@)t_@uX(4=*WOO|9XQZ%%v1>?Zk0Ms9(e?V;cWd1bW%J+V~?&aesdVO>w0J z`Nm2esgC^t5W%XSXB^MNP--QFl>4lJm3*uP*h6qo%UT3&w^MO728>#=v77%B$|0as z^Oe?^aDb(!K{z#Ri2)t8EP&#zC~5KYCZ&8?_>;8?nBK?zdrcEXL&RWB+XyOb(j;i$ zyj22#@mF2-p%DZG@oTZwvPc$GPz-2NHb!hK0rl`WNY0>I_!uds5Lj4)+V_B_cZeWN zWU)P-Fag;dLCTx0)D$&G)e1ofur$Vpgr~4QUa(aKZB>RPXNOawv?=3!5u=Wq+tNV1KF# zAOl$jIjv`fc z$-WQ`i-cGlSYh1ToY_Nrwu2DlO{F%BcSkwA4~~4ONmtdwM?jpdivo#sdx^D+_S`wR z|ISx#TB;OkJ`je+d>M3!d#+Q5*?*fD7J-30-hy;xOhUh|$O{XK|7{XaRkjIQkbAGBsS06lkU&x76-20Al0&!^Fc%W=pwqo* zsbSBOCt)v&Hg~3_aXXp-w)+KR-AVlgHz{@MFABsrtCFWv#nY%g)H>9qjx={iVarX0 ziL_Efb^M-FD}^r1_1TrNEoX{~I$t58EL;JE83BR0qqzD#>*4<^22z%>(w6tU^4Pia zRj8T{S3<3+mug=S1Pqwkd#MgMeh&C)+ME|TJdci96U|5Bh;-r6bXvL%K);MlM4G_m z&JPBIIB2fVt*(}3`TqC6|LM8={vZC4yT0-56j#!!G@7%L_i|th)}DXsTYpCIZz}oA zzx>OSCr`p{+tYZes;W_BRmxg>_uY5DW1;)}z295bb=KF4RB&K22#|P$u&^(D{NwNX z^^O|MNe8a(Cz01NXf8o(Iw|kG=J+KT7H^ zm_Pddzt~f2RjJ`xM!-ixp%B7+K0ki?{A<7ayI=eEw>O|sTw_=i__+rk{F7h#6?yEj zL7sa*&a$j5OAuwqh=_AusZ8k@79-}~%fFF{&y5XsKb@Mu78QdEjlpO%THiRi2sk!6 zbB4~I&tLPJ#bGb@r4J3c;&%6#=fkA#`ZVgg-rU@D4*O?WK%VyL0=4Nx96DMu2 zUm#HgvP1CfoU?UsRj4Zt4r1)X97LgHktD5*F^OqKL$5R#(`W>1Ly=VO0fT@82yr{9 z+cHEetBRt`K#Q8N@fJhBjQ8;na~ghH4Zf&=eCIncVfVC2&c3)3s|te4@SUzIbuvAM&($Ic%B zptF^cvVnq|&*#BT=R3hfE@UMIf=gyrxcZR5MxydVs zrR`nI3m}awPU+C=6X@W=;$VfuvlY zqQEr(lM;x$@1mC}rPcyxjK~C{69DaCqO*FSr#Wc?1Kh9WRGiU1N<@i?FmtA( zD12}+BNIy5>?bVZ9~^I|77@ZkQt=Ub4oaXq1Fu3mE$`~L0#U2<-FyJJ`NYD}hP9-$ z2So`)I0rEPstZ5|iLyW5CIDI>2muAi2r#0F34mTQM!^LM9RNC=B7%-8bVM6CZGZq8 zBaOv+iY)0)zlc$1?EHWu3$9iEW|lLtd5roh^@R#=lsGL(=OS9+kf`}HC|Xtb40*B#%^5)#FkY4 zd?&N*zcH14VPAok2OZ*_n^@ltW6kXgZI#>)=<^=FZfl6xS+xMq0zik5us7GPce!%~ z*473KwrL|S9~_|&Vz3U`W3U)cE{Gh&gGkD2NzqsLxS}0t2tkr$K~hFDHEH5pcL8Xk zl*`n8z;2qj^U;nBMbeg#G-cS`-7QOlBWxBCN(B0qiuWL>kU^z!T7+@qJw~Wh$39Eg zi7Z{ANG1Z%1`&-UFi``FP&{WcAr%2=N$qd!T@bN>vxLgHPPAPxh@tn7AX(ot7Rssj#RB>ERj`YcsXK1h+E{!j5b7 zh+u_K8=1!;2}MWxFpx6Z`l{CKnH7bCw6zvV-;`SyAf|_kZx(6*D0TB$nn2;8CuaGA zCNT&m=3700UjI!OcV-X&_6IIM)%TN=-}%i0EWiQiUTi+W=b5LB#AV;|9j68x>!V|n zcfM;lDsZithhU6CzTM;4J|Hun-&P2km9nHR_M5tT%K4WRmB8+NSolD24_R)$a28$F zAI#_T9^ybD+EPSZ2HtzEHG4W03Yn^hcenYquP*+xe}4Y0-`AI6&j5@AKQn-2a zCrm@AL+asHqZl$3k{3Y*q${H&jVC=rfZSxI(Jq7mYGejQaNBO%SC`ca3_=zMD1l&> zapnWC0D|jjo|nbSs!jd6aHqxSdd}gdj11)cddGiv5Px&6b|r@ge=S4du#Gr_bVtZG z2W({^3vo~&I4#Q^(iWduK-VN}k=lQfArd{)XzWz^MyQ zKlHGZVA+cT0dNo~g7zUa8%brdo5r{c*xp+m|M783aCV2arm5mdo?Tkw`Fwt1rdAxX z%1GtTd0$J8ijXk~22gRrA0(auDWFawCpk?NOtgU#V0a?m+#Y@S;U~ty^j21_1FcOY zZLrC}N0Enax#A=9T-tKZ1UEGnJ`hVGCSsPLOyQbc65r4a1&oCyRS>}{wT1Y}?a`AT z8Qp*Uydf7^##U!;*yGVitrXlF2DCHeI)~Z_YtIs83TDGHcnx+)ESVW+G0q&KQ?Of& zYq{~7Jj?vHvlf`=lgT7%7)k_#T!4zjd2~XchP5_eig}iU&LUPwu^Po(;=RE)?`bUB z5MXaRM9~Ln3<~1~fNd`vh_%22!=m#!hQzsPT*!SI`TA^meY@WbE!ST%s6Kl)EuKA&PofSMKE}_cws8d8Z)i!)V+zUS3m~qwM*B< z?a10DuYBr?4Htt110g8uh=rghdxo$NW|5Np5RM!~mPFU88YIvV6(;$P^s6LDEV0z- zJ*FB8Iy3BGO9}`fL4?Y*p~5@_i3TV}Wg-%2>V*Z<$@=kys9Yn5UF$$A&`L=;1OUpa zI4KT+%2^JQMZ9-z2g(M&j5n2Oqg6f#$#V&+NXr78Lf2Iy&Iqy`aV zSU!h}+CjY@q_UCrr!#1Q^&&C&4k{q``}(FULI%Td1VQBHgMD<7N1UK)vqWG`(Vxz6 zcX!s;gVj;rSKG+f``MG;Ln*MNz=n9RNJ6g^D?kuUk{(r-Um3f5_+B8u0gcOc=$c)-vsZ*_W1|mgUcts^a zWnD#%q>mm)R++k^o+|_?AXB!;Y(Ixy0fmO)P~|!lIrcN17b;gsiV-o^y4WIkAi&5P zoiI+kVK6PK*6eOR(9s0%7Irz30oui%Lcxd1 z$uw5=QwSizF}ol_jp?{H!g=oj)&8?{_xdK?EHA0$Bzv7w1ROaE=lbYh2`p})F^TYa z(0Mt^>#8){Ug{K1nOwZ0@qn=6qZqUUK=`zI^=O#I@4^<(xF=nRM zwbq8cwHEsl1v;V_k=7khHLjcVUIXMRX|*_jrcO5qvSeVvdrZPFgrstn9E{PuMC^!T z{14p>psB#Y%+4_M08hNN_c0wZm$FB+5?FCA@&r<8%fRK7M6KW#S13lJBAW##MO%N*2kIR6dz*&+GfR4Ii)&_iYgz%VVH=p54sg&ru=KGp`W zmgTq?$3;%W3E6g`5K`XUv8V%4`v?>I&M}G!1;5nXL)C}}D(dHXUOU&gS_iIJSXdPi z=O>GA#T5a13Un-=&t#f7y3cal&`yUrWO=@cmm6B-{U>H8%=9y1`uO(oT{q}&%%>}P zzb|k_`&lK!>QwQ=YnR_YadUuv0dKe;`?zD($~=Uz+5iBfYZAX=YXD5^BBn(dyQm>I zwv0xJh%vGWBhmqa4xlVd$M(=m=GZtXnqPtg3`o0*qqq}ifena`9UI46n6n7SIRfItKLd+xdCAN`|$^rZFg z|G@jMY;7&5&_tBlR_7eE>>2aY35j0?TEo`bJkK?=ceQFd6%B^6EUT(&WiXPty>a8l znLF?J+8_PVV{d!gvI04QT!Cc(?iIZ)o)x4&|IkB!{?2#a`26SZ7>#V8Sn#RS$CBQ0iWSy)*LuC5{K=m@`*mLj0BE49r08XjfA+CI z|Bc^x_;a5-xgc!Fz*}(6X|3U9>7P2>s~*Uu#sDRnI&)pnF1*7p&df)!n0L>7JX;MeAO#rxYNCz(K24A2p>4 zP$6m{YJ=yfsN3tkUyx8H6IYhb^j6{JWbN}RrBa;Us;aiOwmx;~DMLYNP#R1Q!yXKW zuu{PK3Y=Wk$JPcK0@qd4KU{Kc5REn_S6b1GB>7cgYim52Kq41!Z%^tn5LxG3Rn4{5 zCR0UW2EDB48Ol+c;Gsscr~@em3IaZ|;^6QyK<+q@(h==(Nl~`3u8<-$rj23iIMROF zm&?&Yv}J%Y01nL_m8B&J0fr=nI0R|E8r4F^NYNVQjAj4+J>%Dg>FPw9=bs;2{YzoT9DQH__hSmXsPs~l2 zR$yyz5$ClGRS7n_M8Sd7u#E>K?bNoIfRa|?pkqgK?h@qJ!ndtra?)sMc65Of zk+LqSc?qnv5=8(SBlX0f>E~Ke@ZKvj2%2Qw7!!1avzgoVF^1H_K!gJVi&A-EGOhBZ zW-C3@e63M0j3PjQ5%tuPk=6z?QUJbH^&MoCq0)xZR8vIKuS6nun9^NyBJ*iM<7dzs za)+B4j=-hnM`-=u{Ad*z5n8%tC?loY#%u;9UFm6&;C+ba zKggFPhC_B}mvk@%qC+p8(-)ntZU5VDusDHOZd;Zqcs}&d()lO0I1~YB0&M*mYLCiE zEs=#tw+!?yO*WNAk}h8_OWejL6_;woQXM;8H2w8=+suUUR<&=gYBV#G!m2S?PEVSC zP&LO?76~W0QeION_31UkID_LgvY_7Gx}h`qC`;JmeN zI`z)Nle}w#sVlcLhV5}fa}H5T9Vx4W1mUIwd0!IrTDC)FIvz_sn5HZWLG@D2g)wE~rwm?WVvpeW*M@O+EkoK!& zX=u@omRtGz4pV!1t^MQU(@})Em3l#gb2*YJT-UYHal=)JaO%`><-$poWyYY#=DHX! zy;N-jesNYA9$|G|$7fW*OKdSHEf-_pq9{O2RaK<*v17-)Y+t^7xtwk;==P%(v-p-N z_ZDNY6E_&C*=(9;D$6okdJbqz5kjDh=JPoRy*R#i`t`*ZRkg6=6YJjliKnjlJAW!{{A1q?D=QU1032A11Stko{@5xUdtL9& zf7Sl%O7DOF{oSjxjT3945Xa@fn9K(e*z5%mShb)7ot+UQ1O;EwHgZ;5%xjN`^`Ni{ zX5NX&s>=hzqqeH=IQI2F^P~6w)Q|dN4IqaKK;bNJHW>l|Z_GVB@#N+I<=1!q;C({` z+{mxjjc|tnvfct6oO=YgIr`jnUE>jhTso>zTW;(};)+LO8(;M{0DaqT+e>7O-G#Ao z1X_2bb+P8dQ7JH5lB8EkHL9}@et7kNnZY$G|A}vb;mEEQ_?B0!pZ%v_ztO+)bH9D{ zu_s3-)>c;fCpYWaZ1zX@t$gG6{P6jI>c?Q?Tn&&ZCg9}oeT`h}E1zc59vjV5>YM1J;6 z@5E}@SeMmR2Uv&s<{1&@DgXyJs9iRj0ME0m-UyRSE@#8dm0qvcx1TnnYqTak11EK> zor#10Ymypq~HZoOU5Wl z5!a07d4+n$*=%F92DzTa60&010*oorp3(Jqen0zy#fZpSH52C}3KApJ)rtdfDW%u8 zLJ;jNxw$n+8mKJG>2QX`@oh$i5_%+0WLJ-|(%U9ulY_~i;eBh=2C6kFdeG~EQp1{VQ&2uoN@;=?rsUw;IDK7(pn4gU zX$e5Lje~bJHg-^th;+EQW@`vX5JdEIcA8zQ{h)cvQX#Q|2oj+Qe$`4Cm)C3!x|f?{ zLxyQ-r@c&RcCpZ?14Iok+-%4}0J=05T9ccxo1?Ws%sg>dd?3l3#J9Guc`dZBtKfMB zpldo}{fe}XmryC)fADaUFe9S&7GlvcNw*i1DTT?vSUHD?3E+`V)J0^uDLGXX$8Wvt zJ7&CyN0fj*K3{~UV+t6QLJ1W^aK3bYnipC~u1?0<%yhe8)Mb{VKpItxshG0bhEYN*1)v309pG$&{vS(h&&(QW0!bLgeC(Lr8({i$aNQ zLPTu$U}%Xew!K2hvJ5GC#6=sZc+PBPFkpj{U6x{^i{O)V1VJ7G@QP;>Pr`-+sEGu= zcw@S`O-MbH_Y%ThM}!1PAt_20;jF*`qa`kL+Y%;8!0uOFibhu{rTw;T(o=49@$LZV zLofu&Xk*MxU4JMLqS~{^j_8U2rcaunVQ2kiObxOJAC#`ZjR96pWGC;xpzk;iMl=N! zPNUoi;^~N}z%3b*YiZFa5ez~?P!M#~PC{gZsf&y^gn2GR(YbFytkD|CMD8=%;2^j8 zu|DZLE?qzU{`aas|Es^ezP+`wQosHUXTI&5?z#Kkn({9|b+wPgcFpLK^VWH9`qSK) zvVulYRt*|=NEKGH3{MSL!>LVm&0QI9RAjByJy4EjG&{LE`1V%=OkrEWcYX66uRTS| z?htwQmTU|QDN(>pH7SU0lF*NN%UwV@8b*NXuuMl3K?-V5e<}#nX%rO?&4fYXPY4{6 z7ez>P8-RWeJIr4LS$Z}O1JLl&n~F9V7IO%n{p@F-{*_;Ob7tT4ecuPY9t#7RBnS;! z1E6Jl$C*2R{KtR%`cv>nfApROpKj&Y$mAy7dGu&ucRk2g0R!3?V`pV1&@63$;JpV* z;(Pj;r=M9rcmA9I!H>M+M}7oWSLbftH+h=NI0$Arw~+bOtMB`*-}>15-*1#!TNyDs zj+O>xUjpv);b3dlS_lFP;qR(_eHFZ~+jiT&D(wL7++D)b<<*YX*6KPu^w2{$e)*SI zkGZe;)^A%~JHfykr%!*|JKo`@`rW_#>zA)xtg7jnm%(80P2coQKk}nL3M(rK+6V#M z=Jubw>s=53^rdG{m;9RW&tf%mo#n#aNG(@(?ZcrsXlmGulX zM=lsR2U>ibxI+p%7CGeW_SJ+eV zIw_m8^R6D3W4?L?PH(_n7vRo2`=gbHWa4JFZWcS++SwS~37{%-tMjl{mVtSg=lP

0w^^=~_!i#@5V)}r=VJ$M4=C;l95)V)Se%oD9L607;Au%)T>;ayKvtQcG4`;H zsWeV-&P^s0GXbBKQKi~gYisuCA=toGZO2c#+Bi>5Ud<snXS?EH_91T zr6=t5O%DZxWi%R@wajFcMLv!;nB|m3#|O4ReRJ%O|#+PjGiL+qzLt$7A-!kgn!J6@?IzlB2bDF$lcqIq$*5Up_W~ zQ^%p#htUZ7eaN#o@re09n*k>=Sr0BWX)N1tW!CKU@vHRl@fgOXnkt874m)o4%+!Q1 zgUB!Q-iIi`LueTULC5$)9(BX`PB@w^OW2#f5+x*5h4^PzJ+uvD1;mgZt+qENHvo2= zKplJ-Xd!Gl$gK!7c;BIrW9wL3JB(K%>Ilc}^P_#RL}XO7SX0t@&aE5WSUgBv zl6}?&wL$=|2;;93^Q+lb-Za0>=Sl;s5TVM%dRNmX20z;IzN3O)lwlZ=}F+ zy&kMbyMF14R(R~x$)3_|ookSd5PSvfMOx*9_Ld}Vv`lA+6;U;hY7zkLBj;2twe^M6 zGBR1NAOx@s-U8b&5A&IWse^0Vjr(s>H)-Xea%NtOwSJ^@D$jAgyZUBTu ze38LGLqtpBqPG!10aQR;S7j;aFtYEblb!K+&a8XA(T?{vnuws%*4oK<7Ds&{LbEzG zV$QipUIt@97~@4_e;U)YU??i-)1q?ag^Ktum<*M2*3QGJm0mx)cOrL$(92<70ukKY zn#;j>JTA*z=|LKK9%!SwV`hm)(bE3IWSZ8x>pQzAJRGy`zyXl-#R(ES7?DAq?bX~$ zxSHn0S@BhE`$If`{=7bU5{v?{@wcr(ax;HX^yipHOa=}pK6hgRS!*fklqKjN#54sU z_|a&j2kOSo_D4Vdmw)rV?Z5qt?DLOJEr22T=*K?w(Z7Z7_^wmm^37-OIJ-(LJJ*+b z+=ytSks2<{`nqvZIBAx~7QA3mn~HX3*WJX05ORePtF&sgvQR{D`Rc5fzy9^F*XBBl zXk+HH8AqLf1B(kgY4fJqXKA0V`|1y~p3^9x#mC~oH_1S{4M0Dq2{xaD#*&(t1C>cJx>o?eK>+&p_~*9WwlBg2k65E{ zv#R~YH}w(?_iV0qt+u(*TVHrk|Cgoy+^qgb-@kF>HkUm0C|yG-wZyZ6=h(%|AJt6%zs@Xq%fE9+J7H!Z0CAjAc~ce_j}HMQ%YkDKBw z_>~iLa5FhR6-4xLtdA6_s{{c-Fm5AwwG0l^^W47c)sm9_xKmIf6Cq1u;}OhAJoCvZ z|M^1z1*t4wSzj~5q0Y0sKd7pzp4A~?Y*9n7^)Q?pSCoXIp=BVwR^`rm|+bR#vCyo12?kJ2P9EYc=m~NpF&iJ3eMq*bixeP$D?$m@&@F!4wz)DULHDmn0)1>)0#h8DSnP zwZY}=hXi^6g^RZn>sJ&VgdlUoxJ}Eqpmehx9OO9^y@ZG*Dgzp0PK#~Jr&7(w#N!d0 zH10u7)N1{EVx>T9j5#R)iI0rwqzLi42wJPizNg@dD8WD3M{i>wE`^bs3L$F5WZUSs zoC{Ux6`9r=63;6H5<=Hxqtcp$Bxn%@9iFf6Z;C+sX-yjy>xgt>9uRTyg27~pDE_LI$dKh761Jvn%Faj>PN(Y72|*p0LsU?=+tP93rfEOZp}C3eCm=iK z3AHjE>6H`seda!TL=1k-2AgS&`#r#52D2GFvVCnjwbRve!_a@lV^=qy+NOK%xvMyR zKAU^5=2i7n?Von=G~f-5lMo}lD)s1WPYnv4DIAz8 z*NYSliAFZf2M~EjJnSj%U}{NXP0-YFT5%g-^(#IwmWbTSimNXv;C}1ZeLm5lyJGYF zcYR1Ij^IS8pfxbN$z6ogbFS2tG?t*}Chb~Y@XCrarUA7D8lZ5v zTQCpxDH^R;KYR}ViMQQ(-^Qwf#{@tzuomFmpbA*B1{#cK3Ox3OrA%f00EogtIK&n= zeNy(KgjQJQaGtjVs&;=X%Fz-R4jkX&W39D#TK7ndc37ZXFzLu6Hzu(brZ1ZP33@?p zRlGSgX%H2dXzJ>E0LNZ&HoN~cj1agK@#s+lYryzx2@p^iZq=}EOA&$+j$tW9F;g6# zk?eJl7-A=4n!M4fm+9QOP}cz2IOs4~KfXOv5C83%KmL>cAN>)3;hD0+u~)#{N0o10 zm&gB-Kl&;A(U037`QdYK{hI#T`OV8uKZA8|I5_6(yaAV2#tzZasxfA0on+m3yb1LHWLtxcp2v~){6e^WwLkyB_}wd4o?crYMm|VuX+Zha;Lc5LVmpi0QT_SSjV)B!5B=Cb^|e3r zLoggNFo7Zy`93jD=oEYo`E+{YqrdYzpZL>1%|pnFLTO=NqeyC$i=sE1&EzomIc~q` zeQnp*l$Ng!vka0y>bBjs+x8`}qa`>F?>7@!7R%RK1FPG@piNo_Xe-?|i3P zE5GjtfB23&&XXduzW&B<{nk@YUZ2f(&)$9Jd%o}cX6NpPXnozUcD6qA-uM2|AN^5L z*K56AmQe^65uI~_lIO*AQUScYy7;3qgoRu7#KAnb_WJefSFc_@l{YY129)>vKCW0a zQ;ATKqQ(9!6YsmMjh1PJL~;8T?C=0Ok%EWAUMc>@jq=jfl6qhY%$iQvDT%We=e$o` zONamy&P1{tun(j4XPnm8u6ab0Wm$limoalvzEOPF zo#2+zx^%@DqX7k#0tDWlBbB9R2IrlROkVFJb{fjM++l{`z}gh6XJV%(t=$;t)w-_d zTU(-N?#P9qf`W)lVKsT9u_y}NThUr$wn9Xrk4JhGXcKg1djk?vPwO4&xwZA)$~eEV zd1W-}UAW_fHUeP=xZ4)6z^ONHQf0J=`1oh=A?_3runt^fvZNJTs2v0kbpRhlWSsz@ zVN|t~(pyHUYp5)EYv(0Y6&U9@N>U1XrBqQADsxCdYY1$Cp)TFx(+0w#2$Hg2{wb^k z33x9$PpINv0Kx=GcG<*f=mpH_5LBxBZA)#Ae=a$yt=j`c4$?|tZybludopln? z`u*lW?I9x=^-Mp@5h7nKBWj>uOre}KpdlpUyth0JHI_)v6jeTL)3)R~YSFmFh0n6= z6kqMATViu~WGr#IFC;&Rd&lx)*(ULMaM(DY-UAk#xXh(NN zsFSY1nKNgey!g?@T8guD=BcNi8gE}MiejNF>b*y6eH1NSI$}Yh)H-x#Ee98=v;jX! ztC&k10_1rntX$yQmUZpQIX7*ZgC}IOoZ)0DvniAnI14Vehbr|83bGvYepd9fF^aT1 zw$441WrZn}(F*#R8um;-H(X5(Nsa-6#puxT2}H}{U3L4HSmsmv)Yw-%=6u_3Vu%nL zW07T?gSrk+J@w2~U2}8S?+;O~ee#3vf8U?%UVa=x0D&e2f-D2Y%{HeXiczwRa6hVq zk6%g0XOTY1YJc-6j>drZU@dHKkC%jKjLi?%0#aQH?jpRVgvo2x!)k~Q>~PdLHbf&L zNxico?|p(VFxo!89POq{|0UXCb-`puk(3X7+vdrEC3kWANNdlHE!X&Hi$lJeX#sg1 zJAL=vFdTrLfo>O`%Kjt27?553Id(eG4sH{zc{R+6lmtl&cT7<@=bm`tiTD21qksGd z@R`rTjd9O{fC7;v+ykI<%&%=7>ki14Nuw*OXE~ z;GA3XzG>b_P9q*aetbIeGrLn&Rnf?t^rb8@g-Fyrzz(TPq3j;zt=B2a^uYFZls|6~x zTkQ_|@M?$CkA3ztSN_+v&E0$d!T0DB$9H*#pjTM~<^Y)hOfB|a_o@^B(Wwiki~1Md zS(ZC$j-+_pCjjVM5ee6OjEFt|l}&-3X$u;5tR<73!jY}GoYkaO&;HQ2p8FU7DSO}j zv#J`_Jw*f#fMC0@8gQj@aDD5_@BZPF|K~5PY;Ua}UzwC+Qxus1yg)<0%58HB=x6=F zgp>iuvvQxGH{()n&VxogsPfzb(EWa&kXriWSAnp2ud|%)3bgy=WBvdBSK*;)`Hz0E|LS{ZO5^HC{mhTN`jux21^ye~o_SCTC|H=z zpZt|y|NO81`s(GU*4EaxxSr*CQ4FivL0xG>GjLomRPb^$M3h4r)v6D-gVg2B->!k* z$cwY)_!-Vfioyp68VR@uYSsG&j&a`gtqg7GSC@xywJ$IbgMf_UL?IXiVM@FS6`5bL z1#hhHn{=EvX^Q#o2^=R`VTv#rOq5t9s}5FBz4~>pn6Z20(Z`>|66(eBMi{s}6?q4E1Jnn3R-|DOZXaYKc zig6BD3r0Oc8(kX+ITB|$tLV|I*`+PFe*fpso#WA|p{89H7CrHNc{b}gdF77mR5{z; z$eYUR0%4wIQDv7~Y%5BC#CjQQXjj1})!I~QPR`B?XHlqw#B=bPgO-rlifeB|z~Hoa zXucH`CfS~Fz+ea7sXBOP$pQ%6)$bgh$)y4c5LXEONJ5i4NOAkOq z;2M*_DR_SX1Xhvs5)X+28$1WxQ*UHJg!C)1APkzIC?Hc2pNbUY)o@vBproQpU<_!L z*zrv!r>`{aL!uj_W}79w1t|<83bZJMX^snsONH^Z!gY#zXhY|b#G6dJA+$}C z6={KH6p6y!%^xFu2*!<5(OKlOQAgy%djN?~EkuGMngN6=^42NVLdVt)s~b126UeK{o;=Gl@0URN3K5c z^z`xBjr{cK;==iph5E?&+QpumLYR{uYn~F-D#~a?hGO(#2?`W|IY^%1ds9p$x^7sZ zAbHMa?COwBZiL$BvyvuroX&7EgSz56z;&4ik76Bo)PjXJy`ksEdZY6}-LTdabGlb`=o_>=ctzW5kGh^RAEK(WCO(3rv{ zt(FhXGh#m_ogG~TYGP_z+7xRvwY| z7A;x2Dzf)0>0R;1Zus0oPLK&wiuMsNn1S-3bh=q3%(5@md=$uVSbwA4-}Tj{Zx0_3 zY1sluN}0qnaDfFgP6u{ZP>Ft%C|O0O-@Do#PKZ zXnysV-G@JP_Oa``0;saG_CbOH1n48!Dxe=TKv=P?-uu_|{=b2beyaSbpE~~9H;Uq| z5GGuEU9FEsBg z8N1*@jBG1nDGBa5Vxzo{ad8sD-t}wZLFWX=W27-gEh!)cI-n}%wm~G~9x*g~FtDPgeSYcLmq|1#X?Dk*UnO+)+jiT&D(z+gf(4@;2+GkQM^$CAAvK08D=S;$ z@$dZ3@7#6I;8i&szwh3h^7WPVZ~yjhFEpmHSqMONedECg-}9dL>^$+r@jQ3V<^8KYM`U_hh1pqoUZ&Yh5sHq7!~uSZlO0!v~F>qw1^yve=cnn2{S)?|#a@$!k{nMB+G zUS5vgR4fm~Arz5BmJ#xRq4^M}8>f6JcYu+xXN(C#*4oc~uFi%qIt5KH94aD^0N(rA zY!>4-r&&kSoq>TYGvJ)U7SO>1^cm);!s#X6TLdL1H3t(ya8`nifU+a@##ZcVvX*Uy z!8Y)81cvll6g)s)CG0WbB2`ME(!JgQ04TG?V6{I)0GN;a^~97HU6y4F@y9dw=f!&P z8d>*=NYogxCKXUwR6x4qe1Zs4@8OIAtOrHG2{;E=ufmP38=zrx6UIBh;q&+0b$&Lj zcW0${V14a9cn0sp`mji6wFD0?60}_erkevC_)I&;OMw)DJ&KkRXee4qETmQrHoi-x>rREvg$^05G~aAk$H?SJQAf%yo1BfNYF8p=MF88Y7>P zvxOO27>7DaD8@QS+yckwtHmL-WbTUsjL(eXY(`4!sO1VtJ3H#h`t5@pAB2cblW)vL zsfQ(%+k4TvWw|C>Hs)Tsb!Y#R_LH=sH38FvjMFOBJ(Zz|6SO}Ej4ABJ+vJ5sZ5Ch; zlB~TSt#x{F2>T>x#L$Y~w;zCR8u_qM3me266S=*qjYHKUo_UNAv&TnPEdbpc42Uv{ z)&kIkhSf%!p9o97@UsBWS+;Rg06GNe0?^A0XT?~ENN`zG1&oewr^pAR$~B!rRaMNq zz@4k)Hwr$b^&!n#jvZj4e7a%Tdd;0*Pj$Rq9DSE5;lS z(VX`+`^v(sgq;#*bJ*O0+QYnpc@4FN+9_e}LHV2k3;>!e8<>1`FkBh*Rx&IM5A$ke zC~JM67j>? zD2q;O&D_J-bRy(@JlkUX?uYz%OVdt2d$(bYE&Qiz$bqB7p{Nw z!!UCIFc6U128n&SAb_@&bffTrTE!fA{h2?Z^N5fBBBLzxhp*olR6~b$xAt zZe=6TT7!kEs;uTbH zLw|Vz8Mp1Wy%ctM*%w9w`C{47)a^&%5Dyw(1c`}mb9!JFIx1I(Zn&mYSxz={U#u2A zoZGtG{C|G=p$~rMjqmv3)$jPOdc8nXz&uVL2f_Nu&ac1cW54tp{m*=2Kp~tkwai(X zp@;LpATGG8L&7@$dQr6kS>NZW2|q zMT4gU9UOvVT_Fe<`1Ay>JqWK2^0lwKYqfWs=JSFGxZJtXH|maggKZw`@trHxdQq{h zgAxGI+#t=(h6puW<_f%n;I((+oUj#Jvy1X3!%c__PTBd=gEIy(W5l4y8pSs^RX?N?Vaa}K9r zKD9SQQEfxz726TuX$UKomzsT3e(LQAkvA}h^?qIl%gB&lyuNL{sw_9~ae&W!4zn+m z5#=OlEN{aav#2ITirdK&MuJNMEiTcp<{wp1d|eV4bwu+4Fi4AB&HMBAGb813&Ze+5Ed{I(1(wb?Co(4U z-g%A=304BFG&8joe2N!9RJ=t^NT@Vq1fp3h1RW6p6BH3sV>zXiP9KI4?)9HE+2)JFi8uT zN(!4N`#;2hdq%08urwB2vuDqZ5noFX@I|o1j-DV{kyKU-Y=);B!8vty5~ z!I|QN#SEMWWnqYEE(790LM(bpi!x4#K{FXv#sgNK>v~$baIwC>n#*`PnNG^t+}D+_ zqi?J9HZuF_go8srn109$xPKe6qU!fyxI)8K8TO&*OKzao2eoYT(tA-c&vIS$_LRrH zAOnU#tddG;>VQpb79=nNWO`^dELqRp;tY=Cc3bU9N!pYEUk*dWBRYDzMa%)=X7<(1 zZjwXuajo@q>a&a>n${3PldefIm>&Pk-#V3-%3QFt8i@@Mps~C zod?+tQmHEtO05dVK4=60h8+M*r1$U`rrZyx4K-%xvqG!6ukt(>Am>>y736?>+JFay zGU7d8tMc3(A9m$CC|XO7ZhxDMl0k~j0**r_Q3zG*c%fz2-MV;^i#9NL>q7ucqGZi! zmgf(VhB+J-*7?f&{%|;+&*lcs+`G1R{~1^zM|A*<^l%G^S`6$mpO3Pj|rhGFsK;}?GUHy-`9Uq1iv6=AT=uZmej&6^L2LBN2M zB_AU9iBu;D|IEnu?0?Jyg-1ObML(=z=f(P3}}_9JD+^=$=d+*(blbLxTJMJs&X$s z9bUaKhFM+z^rjl=Y$B(VP`aX6pU~UXR05_{)6#-!V)Z1)C;qWFyh*L!5d`uymL;_iM1J2N{K2Q+ z`=_ryy}pQge9_HBQKS=UV`9t;2zw*KuNd!C8ucc%{ex6BX+k`Y$75t0LaqW&OI4VNL%$*xP)ID_{=c{YU(E-bIuoj+rYUk8S{mQ%5P^qdc?U<+2X1;X9g}lfj*&jj($}}tOPWmlGOs*XrQ;NFGM#qTuDF_FO);f`h zSNL+vfEMveKpV(O2d?+Soy9y$RGA4o=vvwzPkR`Ej{C7m(+Brmiwa&|7Qu%la6m`^ zl&Iywh2@NWiCGKAmMR4aj6V@1Od8MtkoH`^&LVL9c+9tG%+g925$YBT2znJnp@PI; zR+OPu2nGldbbJLynr(w5AjQB05gp&U9s8pf1` z05EPP(IFHDk;s4+ju|L|oqN#GjcssHuoWbxA^sTvc~(}$PC<<_moSZ?AIE}IZDc`$ zK6PqV7)vm#Do`2*18}>b6lfFm-W54%5H4%2&IZ9Z{rI%9lhTjpFq=VX;i>t9uBNiK zbpBrqEKs{7usZ`Gi;Ph`zFiP8}3|DrU44G!e_lYH%=L=X>Q%ia;evswp@wG zSM}iHCA6r|3vK8NrHG?jdDQDoccza%y0yD20%C)WT{uTC&3@&ig{cS`E81^=C`e@9 z2hXIUnZ~r%Ey$}_C5y3Jd}%0%Qv zj{zf%El1`rEY_DHj!Qs5YZV7_G8n*OP6R~(-ir|=3><~3m|tp#khitURo3f~wcdk5 z;w1gm>p>x(`0QtY`Ir9eJ%0?(Tsg_@Fpc*+y=RBQ5l{hrnh!k#QA0SnaBlFg|HOUgj_aR)*X1W3&-;2+ z=h?)eb@QPC#nV+H`{x&Fv5cFztc6(puf*=;02Ce_> z6E}Y0cdz`--}Z7nUo{i1v<9tu=v`!*69{>dfZ#ED7Xu`Fp4{hTe3a(w(G|N@+)sPr zx>%nn=)RG!GWnF-cH6%6#xbR%YxIj1CH!y%k7gSOh{c4<+|bITbk6OZ9E|PmWT1w_ zHGJjS!O3G_qm$eK2so%|;OXodomsU?Z`T%q2P^$q5GANR=T49#q@@hW%MFKlHV0}O zlcbx&o5!oO>$A%z%FAce9Q%X8K(ax$acXwgF}(MDzA+dMho^_9*H_Q^x4rf1^-bjk zS%A~Z*{1WBxMW;9pcTpT6;|9u%HTM+KvRnh)tsf(GVGh$ch0_nyVx53!H+!l%`r- zQ;dKH&H)sNW`t-y@^2{$bh!9~v%AifPmVWu<+wlD8`NAqF})mc=Y%emcnp)_t!_s^hEV+SMS+ zTH=0T1u@99Kr#;<&^jr-#ho6>5-<`c-eM9 z$RIZU89V?(aDtfXi1?VwUIH4SHS91frIo!V%*)cWRHrm+?t!Lu-mIhh~2e6d=Y-gtl(% zW(({0Bxol_V;^~*DLd}H+GfS4uYHm*d;Qrr8a)J2iu!~ZVGo+r0OhDMjPJ#!A)}&X zs`-i#bi!E}Q)$FDe>89IKfC~dkBnUhK=Gc_Hn#7AWbiyWmC0D`-jrpGpl*H!CINA% z2J6QHn1>&I>cky)oj!j~35jNv3uSzL_xj`4o|=g_gWez%==LIzr!%8sCd8ZbvYj%A zRbrpzi3G|+`z5Ayv)?k(qzem*2*o3LxsPB^G@9eL%J-kMwNIdYh#lqJAP5NrK@>rt z)WyX5f=%85xvt+vq`;^gq=5ril9E-0QXy3Wab1VlC|TnK1Tgf$Yc2t&C_6x7gk404 zDnO9OHbh|${SZ(q&J3IJvFiZ=rRSyZU2k6L*$ihTZBK1!&7`a*^Dr;VS?y|9dnW)C z`$9tYx$^x220hoypfJ$SVKjhYANobJZ3^$nXyF`LeL58Y1y6a3+ue zz|`2p4DGnPQp#G3YfM#-^Fe68oo@{cKx>{8E?UmZ#q+tq+^QO zHGtSEf?)`QM?Ysj^C|HGj9R2VGweNhA%GkqXEt6OfzmY83NVTZpmNTYTsp8S(|MjdQ+7!hB2xRZ(bsYr1Ot#OARU~xLy#IdOX6mt zx0>T=)^hVJe{469(;jOwA@Aq=&jq$dOa}U z-Q1y3dEW6G z!gmxuzVW)R^**2?l_m`#IC2gav-)GlfA9z2xGV4a)nB=M?WqF5$dW(-(GG{gd(oMI zY5PT8h!mI7Os2J$)8{U{=c98eN%|cK9ezOP^!A|Rw%xX`AUn_iYOT{s;iTu7+|=9K+ow+5 z^X=dBqxXIP_d~A-PTGDaKsdF2>L-8dr#_PpKl$$WY;Ii}o>*yIQ+Y4y#(ME=I0lmNUFIriaS(d&2^{>AhijzfAY;3^FvF3BjT<)}e|*+ITMRQ_RS=g;LKMqx$jgn8H}!}pz+ka$jB0XQi&7H9U3oI7 z4H!e(MDB-5i&DiFJ8_EAoY00)d1t*74!gU%Oc?j`+(KPL?Z63?A%c`1stT-w5aRwC zg4INkd1s-y1cI-?__dxt(I{5e)7fM)gR&wU$gv6`!pyCzX(S~WLaostF$zQg8d7*4 zQOzHXsr2?q2_|MMY68)JSL2n0sfA!8Rfl2M8r54^(mO`P$t3i9 zZozLV@>LFqP-Lbb1G^bWQCCr?mMy3>?eAWTQ{2e3UpRCDXcF!M(9PkP@|imTE4JI2 z`r;jC(x!)vkWw#D6vc%L7Z&R~KlGsw{m}UzHO8cBnCJPT?q9un)u@c3DW%#@L^_Mg z;mcuNe(_$K82tzL^Wo!I&2*{#Ig>Fwj8>xShLX~z;+YLYrY13(kjEEP)~ zxK03ctgyj&5bp%6La&r)O~x={!m%I<+1G{YXITcUthIA*=N9HuJDKlRB~0f~mQdET z)x^!B(k)VC5mAOT#RXfEo2)3ZUZ#5mj{0h4sD?f2=Uf;b^ti|*)4`Af1sVg*rU1(a z=g_3STZY<(Kt$lHd4=e0^!dfLwv|ZTR$L?1toXTc<;KT8R&8&C*3i%U&N*YI^SN+X zHjrMtSes;<7Y1>)P+iw9I04W~XIZ9{N(<;oD~v+wo%$=0!CF;inS7~~E!C^KjhOeo zsw%0W9T@Dx0?bFFQZdS(!|sZZ7SniPVXhCa<9xyWV|vEK?0#YWEFp=2j^QhugW-Db z+_`hm>w(C@JACQqFQB!!dSNQdxG@|KhuWCG`m6W<+|O?R`TJnzN5?mg*QP8XGZ-MXa(}yzx~M*8;}2s|JH>f&xIO8ii-%d%VqjJXX!KZmuVHmSCxk@bP4 z%^ZnB7(Xv{hi3vs9(24nKog+nhyjC%|ID=aHE#iv zf$+T715)d@Fs3(?U``&xfBr`(1WW+WyiBFuhpkmuS}k zHhX?%}05V>rH>#Wq*ZkSlS6uriznR|gqvno#ymh)z5FBq`W#-<-NpKoo^NQ1_ z{+XwbuRZk6cbC_8`?)reRhy$2joJqZeqy4)n)mRPU|r$4Eu(i?;YIS^$O%Ku&02m4`?E27ue69S=J7y2%lhUx(I-d>5lW0K10FruP4H#@t zyu9;3DuO$a;-MV^Mvj%<*YN}|f)Imfx8Vwda*=UtZfPuth%YHK+WXc0`hgy>?rNw; zQ-}&APgTq7YeWQLeY=)NuBg+eE}S~I;r*o>pI07dm{+}%n`^IndUTe;zybh;^~A~q zP=W?T)n4inKxe^g>wyD#LAK;(&O5oP&ZNaai?sI6IkDa|9&3q^h20qS2R?ir0A>wVQrF{({sgTCJ)e#!kNr(mm6ILo9qDmtQ zjuYdMK&{BK1QtNv*FFuIk0h#8L$OJhpk!cz9FSaH+u*g9*>M0i=2N8To^}RynBV+%-!b5bH?( z6hSn_K>A91BzHArRRD?Gl3F5)+gj`>K2a|qFcq3swO(z~jY|tqRn1Pk@{U)oXT#EJ ztse!&vhw}2`Fx9KkZ*VxWH{t zyf*F1y@(*($|#t^D%^^p@xe!xbw}qf+`Im{FFf+dqgSt9UOh2lw4ywdyRmcq+Sb*@ z%Ih1uo9Bu%AU%aSGp8p{+$+y=bB$-3+?ob7y2Fg=L-~N6vf4$Nlk1T|bZAnwcZ2)* zxNx4zOuL5#_GMVHb48FQby<@}Ly21uVmMK+#78=tV|D;eM3e-=9fFxiAgLH;C=)Gn zlBs}IP)j@vfN@z_k<|?1x(AJ*B3Ir*b5fP{8CENw%_n9)VON{5FjqWWt(J41PUo{} z<*MXS4iR3jq&Y2ME}4eBa76(otIq=rirHWYqaGB!#WoBJ=w$?s4Wa>~SVO7NQ=|#f zR_rwro1G-OTR4l4mh?p!&_^e730MNaw1Bp53IGM*xZSPwsNm>;iAa1toP`rzw@IXeK&+M-#8lt%wU!Mx^Nk)DToIu1A;@SWJY14 zKn*QK^f{Ig4Mk7#9JEGehv+2<8AA}1bn$FAcP^lHIYfURWj&u~m09}C;?5)yMrG!~ zTNMR^!z@!O9|h`{z*Qvh>)6miJDyBQ4MpW@ALB0rgt!_opm>PXXAsqTMG=6G!eL%i zMb=gdZ@J_##D-B0xFoT&vV@>x7>CxRRnxMtumLty2hRr9P98URZFs3E2pP#e0*WC5 z%N!NZd^{CN`XtvZzmW11$3$s6rlJRZJD&wWlW(w$g7i$$2X*exK62u}{@)(@z~62c z0}2j<)WhDIDoY77;<^l)eI6Sm3~EfxnKt5GZ7rYQYe;KiXe^12y5{V)g(zfE-~)00<8dZmi22_ zPh7ePw*lzqFpSnVPYHm=m!Gy~qRs)P?IyPPyevQX!4G~;(RYB{^Yz~VSr#BDAY+4R-gE-_gs4Vi9Tn8ylC19 zAYmIdZQ(0O16rbWBM`QsRsjL#^XpeHUYcGl%W^g@uU)#bd;JP;?U?J&6kDabIzDse zjyHbY8y4XWn0XoLTTm1t0)wEU+Eo$_gDe5)Xq>kw03dcWpkqj0=NjGTCNp(FY=u=Z z@yHktYdXh0AnkVd(e}HNuU=|a8i#1a5d3^zi^$sAS~ho2E7eee3dr-OJ40mWz*-PH z=0LWAk|79kz{+u5LO^9}EbHJMc)>+l#o&ZjRixedgyI7;ggADnL*&HCGHr2DaiRzX z6S+y+w=8=e+<=sHBhu@hS91WU#RLgS<2yic2uV;cb!Y@OV51fK#VVZSL3@B%mSXZEkK7 zQLoq2S|>hT2-e+t;*dH=kML$l$auNelJD9cCefEX$m8!{PA$`|rPW<>G@6 zKKS-;`})CPu-L!IqRC{ou=D57&*$^YmoG0GoT4ZW#7_Tmfq(*C?Pg3HAhC(s_qOu> z&zE&mI)RZR|fr%B}HSI9WYnYbvAoJ4UbXSeXemaJR!CAwV41!nI2JZko0%B6>8Lsq| zmfS#Is9rDY^-XW_Pp%#qY!-&ITxSGGR%6iMHBtx`1fr)ZKtK$!LGSuO1TZ#Lf6r$? zB63>;`o)`f#}z-GQ+GC>&!2kgDVdd!=S5Le^HM2=0?jsC?*+sy>!Sm1e&)wjbPQ|I z8g-r}`tyEN?PaeQ|BP0arDxB;5q)l=P-snwu-s)aTWbRZ=vdT=ZW>0YD>z!k7ZEv{ zrhU*Lru2d{>P5?N0BHd*(Brc@&_DSOZmVIi$su^K#}Kh!cS9IYWN7qT~Qg^J@^U zU58)#rQcm0?*6mi_4>j3dZ_!;>2z=GgXt|d7t%N^ij|cWf3@_LGde9Bf~u|;Wjo^@ zDon19mwE+8bCqaDYa~@vYxLqY(fEgfN9>DB$wxz?qX9{BQl>@O9?S z|NFPDf9iA2xuoXtGS?SAFlcULPr3WfpZ@OeJpFI{6S8`GJTHe?Kd%9-)FTXv1bj{9 z#xpyY|KLyL|M;DIu5X6pd0kM(Xq=ci$Es_xJe%4oa-Y)$f)daiV(zJ!=Lfkn{6%Zd zN~gm(P<6G|DRuz}biK8=UEjCuw!Ls3^p|iVeHepICmFiBP=)r+N*J?jZ5%7U_6_}a z{J?8Zy%ijYWi$j&Jo$xR`IQ^*{PnUdKm2I*o&W4l!TopC;`yHY&i(8EVtMAwji39a zjmIxjaK4zk!tAcF_pnl-4iMlg!@8?&x-5yc-6!Fx&u;zR?>+X%e^YPm^sTH;jG52Z z>Z%#=DJvqoTn|t7Cu=KHS343%GRa`az_{Q|6RzZTr-zqmx|Pe+gsG8Ivr`zN-0YcB zotW!2i+9ZOvvWE>SFhNL+~*N|V%7fEh509jOz28sJY%*%@X+>sg&DaL;-O7c@`eyB-WdTT>y$}Q) zaEQGeBP~~4hmdg=qs>4RNQq8&MrusAJVXMORO;G=u?&I51*(KtuomScggPk1659Tj zv8-%ms#x+WAcR~*SqT9c`sQ5oQx_FpL-9Z0x_fwIPnGEgLXGD6f@o)e5^*;>@*P^7s-wj2K^FMClP!x)3K;yC6i9$gG5pJ_v}8Cs0^u z=?|-NzGcgK3D75<^$@Y3O~l0LgwPSoCA#^jNqK6w8Kr&pE}Iw*F`)D40?^z!MgwE> zNh*XHgNc`)Ds{B}<4su*;Q*G6f`{r|gnc8jT+`lpL^B~s4rqXLi$pR4>?<4z<%B)8 zFzl=BcvD0Th@zl$pp{Cmd##6q-sqll4}ap%@yYD#&YZIuPqVovuk7{7wJ&J5HKYwH zuanAEghdome80&AUtCxzgPX_Z)+Yl4cv&g*(rkzw^#JAA9VvSHA9klVPu)?T)vuT)9F7>ubkmv+093 zK5}1i-^rDeEo<2G!OmJb;7evT95i|sRp^JeaLSeX{L1Ds~Q*MyKum`IJ6gl)WV~om`PC+#Tcn-u~LXa|mNYGgh z=vfCaUZ`%fJo81T@57e$@7TvB@|lR-=0V?@VYh*i19cgZBvz|NA`J23Gvza%tkG=@M_V~QrW9y4VDCoE49+at zI;5OWox)H+0@Rwc$%{PC6E+$dzJdxlq7?18rE=CeSHm=wM<9Zp(tYI{1l%KrRu-<5 z(n$#k`3dQ!*9ZoM**0b6@U^?>_~DFz-S=U zq%V|J^TITg5tOv5(1?OZ1f=c$P;@Kv?jrQeApo+C>TVmyH{kgCgm<~1yaHiHro>Q) z3(C*~cuIXx%x``{URHE1MZ43}v8`R!>x1dnWezZ~_3EcS{rO+~|Ni2a|Mb3I?{&1g zd83~6vvPn`O=mJ?3@aIcz%)P^2pH2i1pv2VrYr*~EAR;8*pc+oxT2Q2Mh1-^`~0#0 z^naWaKKX;+oF6}4pqou(=3(l?y7zv=Vo_&CdB_Z`>3X&9RlXqW9T?PHRc1T|s|zZX zE+d-60Lu8-Js~*_r4az`&2_h@K3W61-S66d3PdYuV<7~AKqT5AgW4SXhdwu*PHqFx z&toy?ginefskc13>bD!%J*0B154iL4VUXebaaT6ASct!?Pduhmb78sK@Vf z4LRhW{LqK~=vRMrV{5C|>(z#%OA3jFSR(!#8gEjjzg+!#lzx{ku_$Rs0THmIcijT+ zU#(2K+jiT&`Yg40hlS_ThI8)xy?1@>_kaJZ-|`ml3<6jXFns1?AN#-uK2Tr1n&PQg&hPS`{ZjT@M@BjDdY;!W1g3n~Nmt~puikZJsnunI;)yDo# z@N7{OAo9c$Pki*FA1#8M%7+(8kUtr!~UlUO(o4H!hB2`DlQ z(!4B}n9F+@q5_EL*(1sVD8-&5U`&lI0ey_LYr(jI%`VkCXRWnSx=IARXl{8oX*w6r zp)^Gv4fVbElo@6YsL*KL!&ECB$$T;+fedJn6$^^xiDP*-@D!wg)d)cQo*`|5Ay%5T zMnJETNrg;7hE7A!QUic12Juli<`gUO0J2DZV2nJb1FSyFHa>f-9U?6O&?qI*I;>yp zMvr4&mO&2?ke9eF1GaqsbR_T7gW@R!B<^Nz+07I!&0sT0FIl1+2KPvv(1uDbOIUoo zXNX1w`v7!^cNH&`Hl#~wj7IGiq+9ulTrkkdQk1wc8jTdJP&U-Kg1V=u-ym?V3Rk${&yHA^`0Yqq#|uF;>tvKM@&mZ)Sl?MIlvEQ9wqLr%!_S%$@^Z+pep* znono*nKV^<2D>%Ptg66F9oEcX2uuKC=xMWJib@7~(I57Qz5XDlQD3b!n$BX>tZ!UD z_dW6m4t!wtv2kv0$qNfBL`tidQuhrQgaoP0jpnm_UXcSp|5wghuiNPJ%h50zGjL-P z6?OT_6?ppTrwy9ac^L!2F^Z&8N*u=>5jrMN98f@vHd!>SbyusMI!>=tZOgI@)&c?~ z{%@?;-7#>NzYNK=MrT1lVyB!)X^79kJUu+jKK$&rL~U+|vR^!>^94(=h7g)ijci%O z2S5cYD=X0Nm*thkh6&!!DnmISg7aX^OT8k>7$bzU>6BEyy1xGS;}?Jb_y6M0{tQB7 zulIX|pyu;22KJTl0RVcj{URY|j5qgOG5|f@oB9bP3j#zJAA9V7|KC4yVeJ*)_AM(7 z;^%AN(6;lLT9^P}(jQ0k=^_-#)N#pS=&lG%b_>fXZsjLLQJ*>)&~!Szc(JtZHURxx zra3vNr0I|o;h7*1kU(w>*~&SmDA!thfe>d;H}4xr!ObijS_((csyvkk579!rjqY!i zz<{#oErAL+La2IO9FcqMFW>j!D_2fjzkcr9zBR1$of?R0Zn!T5(i2;t!TERn;C&Zf z`N)6uAMAeispHosYs1w-EARc)Awy$A0w&7c)Cv%F+N;>Yt(fYRPz3De!+s86CpT&x zMKL&f|9sSCW<<2k^?E&9d94aNGLK)n-0%0l>3jaMZ~oW*HMrw+1;LYM&;qii5o(`% z$T`4#{>-2M*~9#~ibBErmnI2TD$5&SefB_6`=ZLnKK_6fqy_Xr>w%hjAVjR096RVy8r}oej z2QuQ5=$aIRktj4u9DBj6T~@Xiulyicj*)Mw-1o)7fPB-6T!bdw>_f{R99bwFh-)U# zGc8kJ2OXC+1kp$ldV*l`+0@I0J0JKb|H+LX`0kx-U}E^F;^MX0AOFQOzw}GRqn}+_ zD-6>4r$6TZzmI+H=?6FdnSW;G+rJrAKDqa<;k|d=voZXuU-+fnzx~iTG3zsMuA21~ z8R~;n)0rVv6hkLaIcBX{p{G5>fdQKgmI#Ca0UhzUas-zgJB$T+&iqn}(1sNU0C>Z& zQi=d=@H;$z#jEc;y>T3@*9<{nMUWdTK?$RB#VIw|$ij%6z?H#ZFea%@ufoFdsyN&( z)%o3UUa$S(g>cDCpE?I$Sn;1Mrk75bIaQ!FSPLF{jw7p=odPfb2-i0ZNCggx8dieZ z2zr%uQazf@W}ChoIiNYsjMSMxri`lr_o>b)3j^rT<;q3OfVkQAdh2HRnIJNNO{A(NKoHk5C2jDVCh=7B223b0lR5W&iNyu6DS^(0Xn zHz*|CM*I)W@gCxKVT<;1DbhMG0V&-IMIm=$7wZ}VD7Z=@sAX#5V-JG_(kt5th9R;UcAlAX!?F=Sj@*y@?RvlTEXs82 z2&lL9B@oBWq=YUv#qmIHuH8Qh29hCo)zupI1g%Mc% zs!351B8J4) zz(uJT&?zOLgd+Z4M>x_Q>+3hY>W#ni`@jA9hd%qw-~LTtE~4V=_4&)Q%4J2Z`;N8a#fVvJ{O9cc?GcrfuQNM1>DZHgoIh8)2Za13D* zU}upEID}b{tp-O11EiUSKp~+9VzHU>NEW#a0K-5$zcOVhNs9qM+t*4{h8~?`HwR{& z31yy4S)1{krzK72iw{BGuOf7I(= z7~W8-%Cen2hr9q|lv2r!XVZcO?$%KN9|A;cN-SVwT}PB88T~`A1iNF3uA>(Z^tLG@ zOD=l=F!sdKr2FQ1f6HI zS#U1m2FtjTRCiCpjG0PYMhx_+E{uoE-ZSo{N+u!b`9=1S4{6!N;$Y8B-<;&gE$*P4%V z4BxClK;e}*gP22OfeAGiKoDfxdTcl4u`Q-ogfBj$o7{b@S<3|9uYdi$ z|LVW`d;jDAyM5!6&^jkOE$h$75s6*L=;_eCs>j z0mqIxYgLvpkdLc&ArNQ{t^`Goee|Qh_glYJKK9s&UN6>a4_ZC9j+@A{JMmtkQANvu zPA)7!gue?w-1d9lw!bGPiFXi9L|#_91@AqE4vGS@ny+wfv zAaDGduereZA(qd7=mXR%8i+R3%nVxf`+XIK27F+p3@XLI2imSLdt;Ji*^XI`Ty=GcEN2TWPHs041#ZvY?EyJ(d$%Z!?LA$h z3UZT52;x9Eh&Op=6ly~T88JF|4CSN|G7YGjuP`%c44DiKN`Ig=GAN&GG=xe+ls@G= zlRm-Fb7pOiyfJ2kI^%3JbD#L!u49HQyK?2mLw@rNz`1jz4LAqET8v^J+!(Ozi*&Vo z=C+JADZ~_;W8*f*==sejGY}A>-XFCA;#m@RTlPvX!k5ij^+xDUN3Y*-YpZTJFhl^< z>`$n!^SraO17KJB1w{D{rAPw5xY9j`jTAi#Lx=F7WOH2u?L{VH+~-s(wI3YS?};}@ zFubHey$zDDuQ%jqX)HaDv`^aXx>+;wqO4X)8;N|)4C(T* zJjjbU4@x1pUGS-SNnG*;^!(W`eD={tAJskMT%+ETy3s|Z-FL^U76(L`e%`-LkfWz{ zw?;DEQ_RHlO`GkVV}v?BorBF`-Vtt2=T2(s_FlqJg&$!nA-DqjHAiosA3={{bfFR*rDItit%XAUY0<2g*` zFrLEh1m<%nYj8#KrH7@*LQ|$OSFke3`?(qx*{GNG3Ny%yUN7&N?9Ra)8;dOf`WC)_ zcEkPp_*K0;=(Zh-b<}0xw&dUV#X+Xmf%SYZ?r^oO&e2~Yh_FzTUo^1orIXw+Mr+rI zr#;UidfOe>`Dn~+tqmb`^)}nZTL-k86Lj0nF+f~$rD-_=N>{mMslaFlj(mx9YmdG$ zlxQ!w{Itu&i=xm)0f;X;==VJH)5TRdz0qKMGI{sA-~9)F@UiK%wCovNTYkdc%WB`d zh;(&UleM#t7|18IgPfymu{`w8|NN2jKXQD1utI3beGe$z}ag51wZk5{<{>#SJLD4M0C1wNU!IQzMSUtW<^wwAQt2ip$G$5zr$& zA2NNyXLpR}*Z%h5$E#nyyUtF0=eP9Md%=L$Xqgp5PiKke(EGZ#edB+2?63Z>U;FGI z{Mr4`%L{F8%*{%EBl7^TQsdBu^_oQNwE@9PZ=yf}=)enmX2c@0;-nWaAJ@W!MRB7p zotM{t`?tU1-}tBC^=}MNcyBXM2t4orq;|8~0QGAw|K`I_{?ETW{osdqMV0HLVp;`2 z=+Y(S)|%Is0=vOzU4%`=@J(b45J3p-IQaHJ?Y8~>F%e0%M)>x=kI^~nd>Ls@dJ1MW8VS80o<{%e&*X>bzq($4}=Ju%@a?bhe)RnKsS0Vl=;fQ@S&C%ah=cV*$T^w1w}eeC~z z?eyupZN6HS2ByG(9B}~A0kZgsjAPOPY$9baC~1yEk(riShbs^wz#T#sLWGS3q3=L^ zl6tU*Bq!1o;^wmAA@rYTRPmH{gU}{s1d{C0>Gx(S?R-q2%2B{EvOp=ArTv@`0IM(} zB(6n`Q>jkyail}~xDCAtw;%=W9Saa)V+2K@H7bKDnigE?ZDPW>3ABo7gt_~@S}Dxp zkvje=1_FW+Tx*V5?vL3S3j|VpZUk&U(AYL^C{mfW46_P+&`r(VVD*g`R#u(;)I;;> zE}()Zufu!7>MN#qzVVJ~SZtB5IZSm z<8}>7qj*73MXsU(475fN9~=S*OUm0Nmq*%d(d8}C*D`i+E2iZt5O4rxK?{JfOjiZu z>NPlhO7fnr5rdI1V3)5G(Uq<1H+Jlx2ffuG6bZ*hc@9JeSEz8@k^9aA3qGelZMkist#riDwQv%9X}R{I5U|W=B2lP>m0&?I1X@8Eie6E;f@)3Es!{{3 z21@sdNQx_wv95_SK|(MRTet`cCjEyYJptfBaJ) z|IC9A=l$L@PhT7KwyXK}=~L&|*Vn3fdG+dLqq5O(EzVR?g&dkntx=dbBz;ej102b? zeZX!7*NJjBlr~Img2W0efGC)7|9IU4lc>Et1h-<%$uYy|f&l>zChz5UU3kT* zZ;tA{*86j(Pb^~g+SB&JiMx-Dj-w~^q?nTDRaAi@k=36XA8hLjQL2x7%xF;&AXeNQ zsY6U9?N2$gl)P}#m=mdE?-8F-3Sb2?Y<|L-Fp0=^R>sQ+#o)Kdjvy$pioFuAf=9N< z9(;`wM0}|qi{}r^prGL59LRgAqrS5ja1=aJl7R{vya^1j{9lL=BQz#N94H7QXe5JB z1lO;fd?62Y1?61o`Jl4L<`ccU8)jp*JFS_?a-3*k4HzP3?nk@x!az}AzmNTa8un<= zhdgtmq3svG--khgN{gY`6eGB@m-we41cAVf1rbo{u<9;%(C6pyk=)jrc-fe|6zq)_ zeMTjMAt0wE0pb+{vLGu@;((JP*Ax&i7;OIFBkn5Ji02d07F|rEFqDTp*9rvzANl;X z8`tNlJq|I%oH3?#xGse;qa|eRKs>4zNpB@1oO9ON27`{)eS8yF3UqTL{UjaS?r98D zZ?vp&?YBq07KNY*bZYTffe;AAqkZ)ba`dlD=<2n7DzGQbLi= zD{kXepyLK~3kaZbusVQYAMhpT7zw3+(mFF@q!hJ<2HGpM_5FYG-ksn0tj9(MAa~lb zm`0AnWHMnzZ+`QezvmzS$KiFaV+me-rnA(18!`aPMddq>KmLcm^E*#{_``$2AU{3~ zkskPLWCz5~_7QHwm*CYS;$i<)p66)uDj$}xGFn+Z zcPxbPr+@mVfAqNzd+*zr4M3620t$$b8TT2`&~6{3Jak0%0ierMJ39P>q@TY~hDA3t zIUa>jlcKb7UdbA!hhq;I=k$S1Ne%(>+f-7U2MwlK^a3 z?g=8`fjJ)2>H)`WOxtm(c)y=7zd_U#X~^-O2R%bXMx!w%%a<{D4bV#OT61Ky%uusa zH8m^vdXXyP2r)NlEKSr8aZjW!L4;R;p-E9vzU<#%Of5!-4LkPUGk6cIgC{Y@yz-T= ztY!NP4_&ohRh7MRWtYo`)&t&k2dy6~fF?>Mtx~YQ3Qb!?0fTKa z|HU)JXMsuDtb6V@Jk9zf;g!)iJ@1~kL+OlkPtyR^kYJP*#}%#!t}M0@dxSltf{03> zj%rDBmN<4*s7&XsWWQu!yGIbP*^tJvEL-HB$@PK+{rFRle_^o*W@WUqvt7<;GMSt@ zDF85=&1^M4wtjMLwb4ak5!x$!E$tVN3W0m;mb$Ri^QP>II{VEF)yjA;Eg>3SJnMor zNst|CD2ie+=3g-DuWdDO|FPr8A9&z_SHJqzyfZb8FdJa27t- zpwBR!Ks}$h0PMh8kL$=S0-FO$JwFdFFoK#lsUS8$#=!qTWx zshXr>sfF2lV1cldkdhW0OfA?^hIkug{`+f(oDFT2fw;S)p-dF(WZaL~AxYzl*p&nZ zYD^ZkSTa7J$FnCaI9irvU117ij6`#8pXh3>?G7E=1AMf0@YXgyS}%t;2lUnwX1z$E zJ6udzBar9KN1{FF3i1OP{vsk680}f!>=BoX2H3{3y4A}kP2slh?)UqUWf1I3R7#(d z)2;Fx2p{^)W54;EANtH^px48?7NsGyx+T#LMAS$QhIT+pMAq80-u;$FdXGK|pZLTl z-u&vfnK*LrUb;6=N)1LM8Tsk;Efd8EQweMaY*()yyBD)8v;N@2zH}@5t+iWQTh@Z- z+W_=)S@N`?BAppY?t6?%rKA=g2#$RKpjcwu3uIUWpd7uwyM61{%ZmAYzR4kYwJLNW z&)tKMJo=yiug9)#-}6J?6<%@Y3~Yc5a=mUNCqy5gmDB#4-tfwQfA#4?efHgde11G% z#o;l;5ZO|b99&fED?CSyO9d~b72b)+Gb;iBt5!51q`Bj0uzO>=IV~S}+uL9J@BK^m zZExKHHqax49H6K~X#?a1+$aRNeC<#Er~hsHuRpv7e!bVPcP3WCywKL#5yqO9@;PpE z+{VM}fWB0A09H=X2H>{cw!i0w2(d2Q!W8#Q9t6fIQVfNMcA@>;!~>8?Q^p|Ho1he^ zT7p|xmYsgx8(;YkzTdp<&6`>oqgN_|2Os;)fA_!5Klm5t>)l1nrA<5WY>I3&t7h}y zM!i+%r-tiS7GOW};m5akj(z&cJAV8hz?qY?KFq)QEw4L0?~k6PW}u2TB2}W=|csBC#YH z$<)ZCz@oxhL4RJt)apw+<;BT#xB`Qr8}x?5VX>A~qwL0=tG#Fj*mBd^0w8z+ zjuh6RXLOfO(D=j!I;-%b58EdzsQM?LU?q?9rd9V+erzr4XV<`kL=kT7fe8X;fZh`) zvN>SOpn=HjTBHh+36lqps1$$(2fSU+9Vr93fKXEP;4U*r02D^fGcvS>P{RR3eim(0 z#nc__9;~l|hZxh92B_;kBC?q=DO9=EtU~q7<*c_cg8UxAYZE*>*(#oX{0Td)@4f)X z*N0k!V%c#%RTe_X6^`@H>&QlwC%Ikeh*w$5m?kAf&k7lp#f4L zy2%nzr~tt@dK;0^nw0KgmIGy|ascghKY)(MtB6o)L4}Bh&m^VTR&O*Rlmu~`V`#Pb zJuWj>gXpM4ts;)8K^pTli{!P(QztImb=L!rKYsbf=CwS}XOnI3{r2`Q!c)`Ta&_gT z(K({R7$(Id666SxHK-z3L3~U4ts?%}&>~O~mjwb%q*!EeS4B}Q5O8LJNOkqWD@EP1 zgt9M7&bKJ#M`(g4?@298V_;`XP%3}mzSmv7xHY=?RG#Pe-h21!U-kOY$_f!h$zTr7 zA>@QclKi<4FUvq$SmO7c0e++HsRg5B8=G%EGN29ULG3a0(_6E5CYhG_P7_q-l?0ZG zBmkCxJ1ADrNj$z+D+(e|BbO{S$^>9eGGmx2s722ODv_GSCC%u5$YYkpeoJ{38QW>C zMv~ys0%~tt7%1-t)F|SG9HI@nvgp`sm)`k&>Txo|?P)chh0@#LazD?VbG0o)Wm&8t z&_=RiLTXYdSnt8G2ZJFDn}A+fVfaq%wO%&PN`Xc~PzIy^mD>X>68s&JvC1Uisq0>a zF1<0DJdZN@vRqL7vNuF|NoD2mmZdoPXePD9yG^wc(-lK>S1?6BvJ9*z5g&-7Q+O}9 ztC>&$mL38EMzr@PtY>LciF-m!6>DhBb&6iSFBgV@P>9d!+2F>NC%beEAFYLnlOjhK zHBK0GOK@%}t|F4YZHcbwSKj-CFDC#x9p6QteY8U==OIR2ZmQ>?u!KU*uAuPd`K-tr z(Mpg6h*iuTjcB}hMiLajZjF{|wVD$USQwmuq<7W^pcXvhe%b+$up-YABF_Pf zO!W&Ok=g?xymZzga$uGtfAox5KmcADSLGl4!Rf#FGc#rqXFyK_b+|Rr(n!878;R-M z9>CEg8b^cYGJ%?OHryRQJxKhpKBO11O<%2I2`F>z{gAfv}{C9$maUW zQ}fdopBzrtUimGr{wpFU^HJ)b6|)LNK|}>;?1k0$_$x^@isNh4%jJjOjc2&EML;08 z0qEz0+^5ACgTbKnOVqV3%Q8CUFjB4>x<`0fx^2DpyEZkgZ6o4K!+<_~PHDydU*<&n+jiT&6c*jxZN&d)wU=E8^3;`(NS5VM zjjLXycina0tKaWmy`jXr%^4 z?!ABHkw-38zw@R+{^o!1!+7#oZt_>Y<~6VUiQ*&E>Lb7Z-i4QYFc@IJZ;Y|dYpo24 zoz^+3m(}u}R_+$0G3?Tfi53FTcQ5Sh9e13&Yi(@<&YXc$BUtalsp9(fWB=dpefsgM zkKgET!C;S~$pS2C9IujO9=2%j0aOd)&JOn^QEU?9o;w6*fft*+*>$uFMd$A!jm- zqTVV}dlXX0a#9MK&1hNtsUaSjN(+*Lcs5iT6vEyDbDvm&(4>+;A5||iWM6wa-loZ@ z#XGvzWe_7kx_w0SE^-Xx4oGP<7d!-EYI7yh`WTFY##>a3?z!hoW$NkYu3y{=AaY~8 zMf2bTyyk&?>+e6fPpC3O5?HJ+J*HsP|OFyd$z-&FJf9K&-Zva zygz-GGITNai4;XK82GC@1^Sq&zs0W@kb#FV{obiN-096Or}+VT4|LlLxfok8!>7UYE^*J2wGxD zJAn+tf}` z#JNe@<_lC59ZC>%@DLUjt6}AMQrn#gY|UU=!qyyEV9qd|!|ojBHSCGbj3Sh;@_rvF zHw1a1dYK$MzS7TOFoIEEQ$hB=Nr{qle(b7ZjsCl1vzyn5 z=M*p$k=wJJzYm7pK~6M=@gkeQmAgcm23=N4q_Hf2T8#Bymh7L;mKwi4s@Kvwu@B62_~x{Z!o6h)rf=fi;R z>b5<*l;{`3gMJon`^_VlMB`{Lm^+WrubFZcynhKx=@Ev}h!6-q_qosg>7PD0vkoA4 z-oX&Sf{Lc2C6qa(?aLLB6!SdgM&iP^0QB?etV0MOu!xATy{%SPPeAN^yBJ+_fHJ*a zFUt(iT@-Vrot>S>9>2C2SEOroUzWu5rO$HJs#)x>*8Vq=?d3{{B$q7``oeYpZ)&3 zfAkyV!tu%4+8Xzu*Ms>O!2h|q_|6Z0=$HLRs?lz4VK9e@6(Y)m7%#>LS(qlLAYcrx zttgcuV#s~7Im!3=I4U3kV8Gbg6Gj$r17;A4p?Op)))EeS`=zr!NvKJ%NmbnAwTs_& zj>nh+cB1MF?zQa{3XGPH--o3w41gx7W@kor3aSRFUKp5Z+9Vdic=CZ-%c9w&|h#JQ+bfL^@n2}=4 zLF-bRTs4LZ>kZ~QJ~9On&LVnIBZ9+0dZIY{3{ne0=qlMDwwrB!b-pE#xKa5CFva7$ z2Y9m&K+94YBs5252%-Tb9*gamYsG3{Ux^6D9l=1zHDkd}z}a$hW3c)9SFU4j|N7zi z?k3C}J#KO9nQROz*UQ1_RW~%(`(%yViDO3v&}4)oGtVjjD6CPe+WSFid0QAVC0TK8 zx8f|DdHvYV{Ep%JUG;W!qwk0Nlcc^U|9T2d;i^xsK#pV!en`0_n;bT;7CsL~sNC6~-J;WTLK8TVST>u%VN#fNJq!oSc zX3GnJ`vnkCNBRdL8B!UbefY7*nCSf7_ba6sA%JEuf*G_t{bZt+1ig;x+_8sKtY5K$cW1 znE*`OZfRVal5Bl6qAQ9a2xHWnAa=lxq+%#Zrh;=NQ-&Ez12?nGM_dzl5sCduh%{#p z2!sh$2H&I<_7-MjG)V;+5uzImS)qWYtmguH(WR&$#yhE#UM{`bcCr9+=1385J? zpqh#SA9M{fAn+=4-gwIq8_TsBvjX%!Dn{=|5gIuK`*&YA+ZCbl=?)v!iEBPv_3PebT%$$iA5PuZ* z{jB>5uyarbN$49v&@?!zM$oW(qquQdDWgmlZUfNIZOtpm^1)z`d|x5(Y&Kh<_)XEt zRCm!tbHK|C7b%KjI-OQM(pp<<37QROx!>qR%d- z@xjlZJ%8s9{J>coKK6hA$|1*NYMQ@9KGL+Yw>YJdwEo9_{Krpx-}gb@n*%3B{mcOP zwxvc}mVfgXfAR6(`Yjbg&lplnMgxGI*3Ee`(^PmMxb>QLSmEd;3LxA5c^H7cJ?gq` ze}8OQ)H|BF@MRG~ec^hA5kg9|!AO4|Y#e{hYhJTZu3SHVKJ$iUEKA3*zKl$S)M&|+G z)cNy2@RL6|bNzR{>o=Zw^0A^YnFed?JZm}y522-0d^v?>4^uEw8ZBv|!eDUj{`=2W z)e}5fFjMNQ)5XKiX1kZKJoAg!Km6fKpV^*oj@FB6>KmY*qq{Efp|GyJuVlPWGz9F3 z@v%tvHo9!n#7BD(wO=F}cE})mBUIgK{DJo@!2Xed`{8a{ve^E9mbkOM`TZwOeR@P$ z_IlNn2Z#$`UqeuuwLzmvM@(5G4{4Uv!?VUzKg*55$X}*Hn=B`TO2DUF(t;y5MzTTG zae|>+<}&j%fsPV{Lv#ERLq*qtN1Id*F`eh^txXqzZeMg(tRVDIfucT9u}A@X zC_|wp1uTGb0Rya4d)SUSV_o77bt~YW7c?Y#S~P`tguH+xd!9M(oJ)+Mn5sMPyfZ8E zvuDo^S8$P@IDQ(@)N{{_$k^}qg>S+*JIsB4;q>Qd-D;BT>eZ_!Po9h`a*Y&L5^XOFfHm4*3CCNrq!@PviBf_VjX37+HWn~M}l%^Xyt#$F71{Xv%JMrnA( zpkElyduq_Pl<8XkzCp3-DW zKQA71lim(%^Y_NO^ZICz@VF>`23;7}M?-;F-}l2{yjUZ$y@3BwpvU{&-FaODFmwxN zQkHL5|0Km{ik2|MME`Gvo?F(Z);fXIiLjV{mA>kt&j%zpI;`g|CV;I>Xv(hE>+>8a z|4U;p_~c(CkuK$4ip$;15tM5Bpe$o=Ut|{G0b{vo8D6Xe`p8Efc5p60aKS;QxwP3x z7g$iVmhRmOel6(T@-X1fPO9`B(3JoE>iD(mgfpc zd{}y}1kx}xq0j9rKa3K}^YSgqK8FRdqyGHdJZL%M3MB&ciVYvYOCWSgo*dQyka>MN z>xHLo?EH_v^4Q0pxa%MNL-@wmc{|trRnUMo-cOc$Q1<>i?)VS>*(-hZ+28pidhqeJ z_0e%@3e&tt4moqc%&n?XYESFBnU=jM8dBbnbMBapd8<_E__BoR%=-8JEC1YyAN#>^ zUX;vh)XMBB3Kx!DO2{9Z~ z*G1MGK=2H}1XWIfAf%f@%%U@1320V|LB+e>%mf55fELV2X+R3n7-0i&04t)1;l`IoEqhh*T|R9Y>wnm?Bavp^g2mgfNDwZi8&0M9!XWK;CkU?Fx581rRi_1A7(W z2(=s`q;aZemKC*)k*^v8_!>k2qyDlDfCfSmGG-Lg%o@DMyey*9%ZUQcAMdZ{tZbDz z==Gp5kQZPKh-yBRkugTo5*k*V#H2x}*;X2qq)h1K1A>_0+|@xj)5Ce)w>24^2{Z>2 zi)H|6P8NR|Ao0x`Q*A1M@w7LueXQKGjD`5n@%>Qme~bKgiPTQI&}U4oj2H{Vr0 zAclSb*E~KE_I%JHut$Wf1EIvCHMer{+N8I7YNGnrZlLbnan-u{=BOyA3z-EiIfX_A z4gjnxO@>}d0VfNEOQ;DrT14N%p(!XIm|_L!%x^(aV;T`D)A6);fPHLJ(6ekj z6G6z7={r3XF~bw{yYBCQ?%}5a=995GbNuA1UUSDQ?!Pz8tz?b>1e+2%m3YQHo=r3~ z){0yEsG+}((NYa+xA};rg=5%2H0=*si4_M;D!6>2_Ed#E8%u(u>w5440^~hLb!KEC z$7BI)$}18Lko2GtML{wFg;|@OMyM@6eqXYt<)l+b4>6D5B-h41!(XHgKS(Sr&4siG z0~yc4a{BdSWly7s1y={cZo%Xh@m+#x_Eo(f+#Hp{d}i8ne16hx?c`9 z6uN-Sf+`m@E?^L~e(dpMA^3w{-o%Uz(ChV_3q-_ns|;vQ zM%&;!C0SE!RIT*@+Br$bm2;n&LB$S4K?o6uH6qFd0Iv}H5^bNE7~Kh_E8;mrS_`6q zW2Bo9m7Sfi$6&chIRFz&jh`Ty0tDa^WUinBvI=S@ry~ptpxH<9Rm_MK_OJ4uB)yj? z;DSKZq#UI^RGjq@W$DpCj~3ejbQSWlrm{Ar(-r4iQ#-C?YdRax{G_fc@9Gf4DFh1= z%b_%%9AKnjpsOCiD2KHHto7}nn6Bi|@5Kcx$Ks>!sjMmnC{YQxpj5)(+U#jg%5z#< z=G9&ejqq0pz<`0x@=yT?u}&E;trrlVTlMFFsuclXw{_}z0@^m}s0r|w$B=KullRh( z!-Zb3qw%GB!-$jAi;N_=k-Ge)h4`#NqVCO+Xfb~L`^Wo*o^W*F5dA{m+ z+UtQW(Mw2PZKF(dP}On4+x~ch1rUMbwGurT*ij(7o|X@<1wIy1}L}I zQnYsYbwWkkz}E*NtRBW{4}6=RcL{EwC?e}i(nf5}43k;uIX9RIRIw{OP%@jJrw2l! zlsUQ5%|>7=9ux_tm&Ab`zQpXJ=2EpIQvnf@s;Vkq8C8z|{P)*C|IkJS9x)RtGYz@k z(9QdilxZOv0JJd%tEzI&sc4Bl-^xb$XwTPMEaJgB2p|4PZ)nj&$eO_C6a)KZF*!hzi>qYBmW<(Pl(5B$LTjp>tH^>nsd&ub#Wejc4Fs;T?Y5^*C*9XaRV z#jpfw5Awl+`$ooC>xpQg`~2E(`X-3=xko*KR-GT9tRbVkDE|7d|MYKv`IljP`|QSs z4^;qp_J-zm6z1FZGPiDjZ;Uw*oVOL_{Hg(+Z)z`d{TUHyRGR}BBx5o}3?dOAFg`c{ zM$ijI;|p(o^J~808-{n?)mvY&jv<7H{^Bp*`^&#vZfzag*vLpR3+z9ow12dAAaXP! z=6NmvAN=44AK~!z|J08UzwvDlTjV!=&-a|?{C&Ut8<#%wnWCrl+NffyjgAJqb#Cq`5ZK2RC)&H z=O1r9<)?}oqa=(RH7*4tNVCW2R;@KkdB&Mi^By7EL69^AK5+8T?DDLst)7H&Lpau7 z-O|N?LpvKs)NR}nt#tgYD5W^~=Jw)|TB)KajEN)H`4u8S$V8MBQToH^#()95j za@+%>0FUsSy=&qujtlDmIjC&1!urFyy0GYytGekPb=%3TS%@yj^0cm zzY7LA_4`~^O?#@!S5~G zlz}$j!>k3M0iXq-fqe&P<3k<6!3yG4XS5>}O=Dv!?!itQ6i-4r%_$`U&;&hJ14cdC zSS<#l)s1tPFK!{43uo`RaL?ktN7=MWxD{XkY2|2+1fXkNJuHL%EX<2aRuN5CyD%o` zeH3c~O3xD0gG^XxQisQ zEuFu;^ieHmveZ&dCX=eF+H+F8`DU?Bw8Y@v^N0u#-g^E#_qXi^Mir$4K6u#!ce)11 z@%Uc)Dn56B_+bgomr8=LCwAPV;w2~n$+6mBSzcn7W+=v+LYs zJ(KmbY^c?0FCS<=du+9@?I81u)KJ|cpBYfv@5;FCXWL@_ave;4H5k4;7V5q9cIyfZ zN31~F-Q6ASa(}f~IhxO*D3WCD)?@-J0~^IFfElc{dkUzO){7{D2%DyQeQ;e=R~ds* z4tOqv0TGNLL|i}(o0~OAq|3#TSYp?u7R)(URaL8*&=CTr7Flk!p}Typ2o-FR>Xz6v-FXigS6MW0qZe^5Wxwn|7ums2r<|u46 zsUfT~u)F)7SO0teGM_#7p%O*y`GFp7{_s z10jyNEjnPza@?C?3E;~GeLmbJw;Kmmh5tPt+5A1U?!+(kUI*OKe;>42MC9cRKpSI1 z2uK1zfdqYEX3e@}&W6LQ(~0e?*M9TcUh@OrxAMmO`m5`)50;(xfACYk_)GFve|2my z$QPyu*Od;SLxdxX07{r5d^2zaq7+lW%%N_$lO_Oqqghwn3$lCtv4?)|Qf~cshr+!6 z6=A&(tNF%He(&quU)U_-56P*iAy=VQdM z5~DCr`ti5%6Fb>N4TgZMNFE!7kFMD(${jzhz9laTQg3>A{L~j7t9n7!2Y+>L{>k<7 z18TD}n0ceM9+d1XLXRYeY*B6a?LTJ#>(OYY|C(y(j^N#!$jh z4Pusp-+B?D3FTd&yuA!!M2(S}E4Ju1!$7PCq$PLRa|jRxD01;?VUb@f!8OM_&;XeN zB@wXDkmbz=#@kZ_BI*9YD9Cdt3SDTUBML}lBm1s7UNv{DiymLzo_^secq>p%o{%}z2?QGJo3H2U%rCm!E-l<{AI*c_H}u2y7)sxy z6hns-y?8eelEzwh+CM>||v&9YkeLI|bag+$qrBw#I~A`vpzLVjz9t>oivb@`e3Y`(Hu z+*uWGb^X`c{_%3gfejHc24Z5E3znkx;uL`%`v&Xbjr;jxvq{&4QCpA=aOE+g@>#Sj(eMOqNs zcahZ7G1Y$YJDjBeNtN)^U;5jqiyNHHSC zrw~zb=|&=3rw`CANwP@%@&5AL2&*EYM6`pDSW;L{1SEk5-Iz=!)9Eat{0yLwOz;*^ zu|(BYGKk6vdLfOPZ>{4#aR0Pl-{la>98;fsG=j~Cm9UEJU@d}4dtD2F5JtFJM97qa z6>|Zs*tJ-tcWNW#7@hRI7#by_8KQ#ZpB>^ivU6|wvS0c z36u_$iP203$yi1wfS`d@UHS2JJeyXZ*>WAB^*q#dohcnbF6p6=jvYh> znS#>;=;yxQ1P=`Te%;TZmqTtsrY>a!s%a^r7Dxck5FF5cqp3j@i%zIGK;&&x?a2d4 z+wNw(bD&LbJ{(!4Vg#sF%7$pH$8gXvrgVgYFdoU|y={B;GSW{#eo19E^S-*e!<6Fv#HCMt{NxmNEX)SISwDxo z0GjnQYKyk@)FyvPqPJUX+rrQV@%J=l{egM?QKr!Z39)yD%bUFiKXc-1-=;7VkV>S) zkV8<+jx%L)sy4F6ihJL`wRv@V+z*DLn`m|qKY8Ef>-QZ${b^$iOJuv7C~hwJ0wOKN z``vq4LTS~c0LH-s2nkBqy>V)Hhq0&RHUs+atugbS1io2cU*B@};~)R{gS*?`;N|t- z^7V}bp{-5Ui{X9BLKj}_XteV6Klp=piTUXN_nTKQJyjIB_m(nhMbq;Y$$- zZxk&yvxymj@TIqIgC>ntRW+N<27|$JN#pwZN`D0gjulyJ7dx}#SBH@ zInMD4qT|&;31t0J31|&@Zt^12S|{kb$PFTDiVT`PHh~7r^|rxgGd2WqwWA?03Q!em z8)i5SbnVG!pb7%1v`FMr*L?Nr4plp9HhkrU{@Ha%Qxe=e3K1oi!}xb=((QmS9@y?j zXl;46D2@!fJ8=4RmFEc&`$}cor82O5u&SL=JvMf_t)>Z>)w;c?>ckl%;Kx6s>(75 zuu{r%oVeyJ=mc5-T1WsJ3)rzkBMLbfR0p~=TTJ$R=4qI4YL;%$q%0erJ-b0X;M$dC z$;>uY7Ygy8J>6vCRMQUu&@H}5B64`Za~PKL?4U7Bhqb>|THka;N0|QXvV-NoK_YT! zyZbAF`)TGaG{#$1zwv%Cs)@4JtN^yyIGK;piSXgfLpCHiNZR&_)2-2B}eMT6~~p343k^ zPV4r&j(>~{Xuxi#pCnnE6cI>)j?bGx5Rrfcq8KSO$FK{os>@mJ$Md?J!@Pn;IxC^B z;1bj}2|7DK0Ikue-e53b=Ocwp_j*}x0LVZ$zd-$d)*lr89FFH)7&e7jq*{B8RyChG z*japi(R<-LE;a+V?WMN1aNZ_CA7$P4q&qzsjYh_dZ`^=mr^nf7kXrGwEMwIJ9nE`h zj3J`&I1G9)T0tTee8L=r8H`bZ!{G+xW-DM?W%FjE0e@Y2?b; zbX8Rr2L?8V@DWo;UDvk(=;tuO<)>RkRN^9ai5D*(4_e|j-t10Zfc0IIPBLgL z^0U_GP3nW~_0)I(4T!9CrrBJ-4%e?gxV3$D`j5{3(6M@O*cI=ydta&iu54_Slj5_Jm1A$a+wMGIu9^A^{pp{atS%dz zYFf&82C=}1xH1({ltwfp2U8#n7~zDZ3at<#vWum}juAs-4hDjDv5<;e#6T>>lAf#9 z@d9b=Nge|Lg~(y$3_vN=5Rw###I9srKs6VSn6d$5ATvM&!+wZL(2*HIF+vDMAUOiH zN`clcH%=)+lt?v{=6CTJg~HK9z{LzCfduhs4;TPz@Bo7m_11^^g?!}e%hz39U$uJm zMsFq5B|zX_?_yo-L>WXH69%@&VQia$=Nw z&vOOjL1Q0zXR5~g#G8?Sn`o^*QUeOz^<;|p;r-Fh!cfLYtVpMpXCLph6WFsjM6+l4r-rMl|@6;77hpUZ|*_mjC z1Me_*{hQ*dq2eQAiX1Mn< z*Bh^bETSXZSS1Ygfcr-&gG^`Y|HkhwuFzTy;aVrIkax60J<!N54>X$YFps(0vPGl6+j^^bFyFF@ahK2f z6=I0^q7a6@>&KN!VeRZXNTi>n-6r=66V{r9RxOh>{-Fr+GV=pT^)80YsE@g2eQ_R^D81)-h)<)?Z)GFWHnp}FS zA8OE9AVo<)qt!fYrGy#|L^Q2+$`%(b`Q#S+Te@otCAUoKvMiH`N5Z&UiH25}qs`1# z&?DWzYhU}?d+xdbKG?b(4f+O}+mjIHGvCi|jv66Uqb&4{MR6jk14@dZK>V~l;1`KO z%bwjr&$huDHBfN&GxD^4C(VTnf}LbHv+D4+;PnpXlW1O&n_4%7K)a~X?4f`N0u zV6+-uyLR`JPh8*Ohagw9R(c{uBkhsIB2#*aNgLBzTi108pWD)+yAGJP0K}L6yiAGD zQO}V*rRF7ul`_%QOhV5tJbIRy~#^F-<)>s$~m+EebD_ayr>L9~elatmQTU{rA^6 zuIz0cM`^*xQ%^tr|NVde-!~5Y+yAj2A|yZp4PY4x8VqvlDr3xBzW@8r1pe#)_t!2y z^_Z=lF{an+<#}G$by77-UORX(EQGMVJ=UsNxc=Vq<3HXzbB3ehk?Kl@dJjbbz)wH^ z_+R|iZ+-5s|N2#VV>{(;mSyRdo~JA6<BFAZ|qFwu)gw5-}Fu2_7DES+N)m;CI>Je;5Ik^=nwz!Z~pQxGv?lK zXeVQ(RMgX?=TjcK8In?^RchFW!y%5#M<0Fkv%mO@-=NAjea|=dha*txHDCL+uPn3o zmHgnJ{AI)vi@`A8qg{9+0#fkhuvSfvfEG8uva&KQ$0G8+_q}g6n{7ONZ91Kf)p)bq ztyb8hIAMwyu_B6c83H8XIa|&qZNt-anB$57AqY$Jk@Ox>S^;PlmL%T+*2bSfKtf`T zgh(oqo|U33(}hN@BdJ`I7Ce(X5}>F~m>U%rb&^u5$S9)X%~NP4T5Ch7lwy2lpJxHf zdnExtA6H5zw54VD>`99XLWp&On@@6S&t?o+IC=7ebo`q*%U?=Y<&XuCDy0 zOZ9{5k=MU+lof0uX5$=ySdAJHpZ$Fup86uH#B^qcG=Hlqx8Pjdb@x{`13Kk)*X_r` zh!QCp_`h&BB!9Z(0t!v~Osb`E4Pu?w;@p`UAI04XY#IU56(d7ii?m!MGHFdq1&r>kH z{S%YL9Zecf*an~$L2E6tO08cAA+C^XxuW|gAw&>L4c#*B+~;%N;ZgV2rlG?-dtOXi z_%hhxVdr7)WE;II83%4BuBpa}>}6?V(7v7*_DtRNRmr-GZw{+Eru*JwMNq_NLM)=D zVWrH=*vjd2o>WL~4G6$zjRPSRFWrrWMV*7XN~3|XQI&5%XU)pRcxu`e{~0Cc~*e$sN;`3&)QnQ*PCx`O$Wzz5^^^#$Jejh zo=N;@GoQn>u2tAc0>{(obT*S*!Jrp%t(AfpbA^(o(Y_Naz6fK~J}54xNt8{UPp=rP z4%aR{^UU?@*Ha&w=lQZ5ik6U#gd`>|X96f%P3IH=D_PppT{4oMrHa;uA3QLoO7!Y( z57;&@XV0E};DHB3WOrvrYrDRoz4xNxUFq;F{Yw@Nz_#4AC<*;i2|yn%_T3HIJNSTf z$#b2*Gb}mOS32jw`@Q4vC6%CAt_nh8hGJt4Xn5%pmmYfPAtGw@p!L4frS(j-%-^ys zyW%Q|K7XJ9B>jL}3U}0;B(Yr>o_zAjzxa#kn;!U<(`!0ji#xa7l&-3(B8^2gmm$t_ zZKw0aJaJLx&#j%vi=rvCsnd^h4M6ikTLYBNkW5h&L)Ut;y}hWgO#y7|wg&Wb8Gi-2 zT#vRaP}q~9w~Dg>xypUzdk#RWntae8IeOsp+ZI0e@Z0I7L>QGylAtjax%zWc5B{i{FI zd(G>?5wR%{z(zGb4HYn~NuliaBTqc`OYa=~)?dD2Jm0*qa@FsQkXDVEZqJJz?HU3A z6RY;D*=7~+ro-PL@|=1|UmgwUXn!9@Gq>%qNyiSbe!5G;lv3ES)IWXoV9=f1czKro zo^Cu|1Xz$Zo^9!auo?~S{I<7!-9P*%vNykJ2SN`_4(jqJ9(nqYJ}~{wU%zvEyI38O zz`Q>|#Hz0IT<7c*JB&?{Q(#eBO&}_85ud+QQ0MH3!7vbO!XgALzz|Vg?+UnVWP62s z>cd}nX!;wcA0OZQecuXqtiozvzU|G&&-TIw)}Q{u#v|7X=ZiQFe_~ZauqRyxFO8vq zAZ+%58MY$>Ixm5vfb)|!6)9kp|{_>{q!oA zbD#AJTLp5!f-VOj3UQ&eBgf1HxniJ$63xJ=RTnT;bR;#WzF?;hseP-xIPBE7wSQXh^N@XO$C=n17= z4x}SwpwfN1f zwcHOJSUJm3%Z3M;yJxQKW&!#hN&qh)pfVBhDlu5|0}wW&KS-p<&|a%fwDjkVR%ww# zgO7BEedtpdJIC9&K5Q+ZPLE2oqrj^KKywiBwGykv<^d604MiV&PSnng3;B)vP89cH z^{E^ld>U@}^|>28whdS7ohN72EAH97_eB3B52UgE=_N4(_?~#0-B>BqaKyeZAWz7) zu*#i&tycGC`H*By+=zGuRUaMtsB6Gj$Id_@y5xV+l(leVw--Px-o{0j59z8e`fiQ!&L* z)9m0Y6*>aRX!ch+e%pPDXsm9|2P9UV!Xq7JaGx#~OUFKu%If04=ru$*kK&hb$jA@d zClZv-J#c4#w^hWBga?X9d@gClHe&BhQInAXLDYO-KL}Ln-(#AZFiofcutQ0;w*(9| z@6Uw@mnf~(Qmj*OFR)=MR{}uE)f7TVcOu-P)u6S>d->(dm#Y3}o4~ui$|dofo#(!@LLD1X50`MGCF!G$0^Bh=92WVAe`?BgShzpb$Xhjk6mH9Bx4G3!ZBtNTerQ?K;a~CoZ(Fvh9H29I9Rs(@ z)xE6;{c>kCKMOkcoVa}VPFT%`$KlMeyPv#v`QkIxyarHN!{M01=njCvE(}~Tf{RyS zx?P_=d1^L)JXk@5qOVO}APHfH;4qp0-#2vAjpd)MFlstfpS%qn-%49P@|_G-+u2Ot$yKA4=YvZO+jTS1F{2V zRJx3XL?zjcWbJJv?)*&!SV9QhI?`?&)iQFhKn8>W>mAE~`Ip;of3y3MA23vr1jDGC zqXZ?61TN;U+bupfurV?XIRq2JiKln)iO06t+jSsxHSa)2 z%vW+i01v(Z^SZD7+Sm10|LVW`pB{YhL2GRr(=#>D@FLl4HoNzpSA5@3{6ulzeXcA` zz6L(R!xE*iJ-_#R5C7?(zN)HLR#vtpa>}rw6J}Y~+>d!SnY@>+2J}G_ zIk>#*<%z@HwikOHUowu?j)#(l)V}XD8bv#RH86h__|f(yI9|5P6cQ~xS6V9_>Z+>h zVs&`p{J9_b$NzD2*Io12VgbNxI$g+h{pD}|<~=(*iz&KAXC!L#(l32|wf)Wi@W=8|!Njk5|I$03c;*kMJKHqK zdOefpP5TcHzAQ%3K%@;I4nzAtx2cK3e%!^I$ktMw%ws78G$moFqGx0XUJr1ND!(;sx%v9B(KCLHlhnE zo&gd7-MpseCIlq3>&}zXvW=-GpP&H|A?VUccn?_Yt^oLOp~ZU1kQmXK7Rc8>sC*Mq5srVVSd#mo#;!K zDq>Kx@yR;}M+nD9Zhak?mjbf$xkaqzG&j2Rfy65jofoS_6kl%A4Ofw+qLRez0i{Lk zSa;;mWeWQaFA`C1J`U*|lOmSIVjTC!2~>)?v~-JtATBk6^Ii{q4TuT9jvMlv*#_-<5K3yFoT7p-$wzi&n>M0^Refq311|cpse}NjEF^$`@2M{+F^Mtzr z2}6i`d|)S`MyVMpgev%oVDYIHIl^EFNhwW;M*%l@^LG&utbiB~h^a)~=Z1w@l{;hJ z8N<#5##5NjptP_Xpk%NCI7*~YW+(zr{eGS)-|wsA!+c}4*cfJcZVGfKoJX=sq0WNR z9!$Z`r}nDjKX)*^BkfNpnct(|km7;CN8`tG~$E{bA2or*}^m{6az#=0yq zKxU47FD)aRqlwT<-lH9|qjWhCG3C;&UuCam@gDUGbUYp2{P-gvDI~fjivBXvQkIo7 z`}h-|`JH!v`nP^-p$SuE$H6Mav6#g-E zt{;2cFBsYSNA77AI3?Bqik3>9_r53!t(PzYiYz8sRdr@CkTx<Wwrd z;&?n>Xh2(bt_FbH0QAwukucR~(Lt`6{?%gTY+Yx)9^2BGdRS+U%s3B-c-)miLM1r} zW#ALRC8j7MA#Nk^O+C7FL~|gq0)*$Suqh%pZS<`Q?Zlzg(5e(v;2~EKO;a!Kg$#<> zDsR=Zdnunj`t;NP)&F|sncWNj@E_NwkIfY7Ebjq94F!z=!1Y(cTTY+-FIGPEfB#>* zzx_AiT6vd*^@fA7pQT`y5q(tOQumsY?OWfZi(YVQc5wul;uRi@$qz`|Pnk^VtS2Ou z_fTjsT02V`hr*c)u`N=fj2BfgGx{Eg?lKSo>!>4J!O}E_93%(sMTB4qFQpB95Rsh> z5TyuOG2~1qsw_rc_dub}n0z1yndEM%wF}Zk4=~mJZfkpMZRTOdN8uCsh!~;N6#w8H zXb@ka1Fn#F3r55fGw4&!nY%W*ri)@`puGRwJN}*jFnrTDS%IDdasacd7k~HH#{bWM zcjsi&9J_Z0jY$v%3J_dr4aQLdL2C+p&nH2&dcTLjf)Q%fd`-~RWYio%R8TO|Te>Xu zL~Z@XyFdKo({KN0elq{Y*Um#7UU}E6{^NgjYpws8UwY@pcy=6cw8cslEXGN2!lEhC zKmrEINNGXEK)?r>#ZEnUK6lx&94GASWrm10s|_lVz5{e3g5yxE<^U&W_3GRMD>cBX zH}xL2LWKai(xXu>QV#~&RW$$^j{u55gJ_dhx+#iuS%;E%kO9Ff2@Ps2k|F@2YJS58 zG{8B5jBO^iFwo0&mXXdx1DmWg1lmBM$z-Thguu`bbl5{4v5ii1&{4!O4btii!r`!G zNq?ZT2O^C+z_jg?0_+=NSFlqZWSkK&RW))At*JDY%oORcC4Te#$en%-T>seJ+toJ6 zPOhe`rwTDJ?plxM$lzQA zr!-i}kdOg^smOzfoPy6XJRGd@YQ$#M<2i)0AwM1P6ow7pHD<=(lz64LiKxE8 zb#?}+0{}`5(hVV)wv&vEi+j5GFS1)X#1!VPV0JpHLyp%+ap7ZX4!1%9y0-jNSm37S zZj}e<4>CQaTW8hb`{|ZsSw3bgX~|?s(HCk`h|f!Okjb89=BA5w5%sN69C9ZfpML6M zp7j@myF43YrePqGVp4`tqP9s6(hGJ)H%z=5WbSbW8UptN5$Zgstdhx2{mc{BKE8T} zIXlg2c;ou6rqz|fUDn#V+UgIK$$eGt0z~0Hm4W2QI;I4oQ!%!5qjdxd#d0eurUcPq z;8(|NeQ-hML?6_$tGw&+l)_YpiISOFY(ouHi#Q0tNmSIUK;TiB5Mu2J(io@K22l$t z0WGK*G@ube#EA};z=;WJqn7^mOkLjM8)MlVySmh~xhrREt;dJ~D}l^x^);;aAy?3E zq@3OAzzutFV$J57dl@V~#$cuZqZ7K$1rBup3Xq+sPA8g5 z9I7Si;2Kca-!>eco0Z(%Mh{&>56^Cr9~AuWtQ+9=Bpp3p755%sVI$sT1fm4QcW*GZ zZ0V0!gVJ`F#p7bDDNX z0>Wr2?u_S$kS^Qo4y?5X!X#y@qP6g%=f)Dwm0Vfg^dZ_|=O`egUv)XcP_Ec=FzfH| zvF!2dFq=WoP9T8MkY$5%>+Tt^&AqD!PwcK={lN8$XLC4v_V{Y=^k(Qo@FL>H)m81i zjpvNG8>*yzVJ%N_z446Fn3?POoilc0wZl?ox>})(E}nk!gBtWR-UcvG%god|X=O;X z#EnQqlLJiE^x!E?miDLkSo8Tj<$0^Uklt_i=RO)lOWJ)}>m>BCXo`o!VRN2r&4N7v zPu#(uTX7Yj33<-UhFzBEIp8r^8O%qjQ6QY}g7&ecU~h6-*z93I4C`+QA!M)<-`|}|YtTzpath`PqI?L< zs7%j0u#SUA$Lw8XyF0mDzh>*Yzj*n|qhEODBOjlC@fIr+M^ zzLnV*ilT6q>nY&yT+n^LJ?}Guo8|?nGMkIngK-Gqk3Rjth1b0Lo4?^NdxhdlkFFOd zHtQZ>k0_!9tyEeYAX*Nq`8V4&_asIvQUZi?&4^wDfL6K6M)R`R+1&K4JR?W_et+uyAO7JV-rwi9{^XBmr_R)&){rS}U~WMvG>Qlo zQQH6EKm3Ouz7C&#?_ZW>*&k$iKVPuy2P*^1K81V@fLYehGPO7WhHz6e#&Br|{r=*Z zR5R!EoyE!D@vr@B3)R%54H^!Of4uif{i@xd<$(+wlwc-nF2$o;aHwJ6nuS)(gUH(eEMR^&9guCoerd;730H@U_h= z{TxgN%wVl2%=et(P4_Gq7HOPl-R8Y~QGVSvrZy5L^WGIjQP%aMl5XvekDojL9Y6Ck z=U@G5wb;02z8p`bKu4R_gg|mu+#@ft#vQUi(F+C`zsWqp)iX_rfA0Sz4zX`(22Wo zeFqVuXf<1}6A!|(y>#jNXYjguMgNZTLs8T1ZBQnTn;Qe&5cm3`ymdBH5W-%db_9`@ z7R@)sxx9}Nb;K(LhIAyYh%qX~f@k1_nC>rM{mSfsL}ChJj5&F7O>&lED$i6`CkW1o z)=xck!;Qh6yK&#ym7*Z_pa6zLs2pfgh$cj1_J#sQOTl^eCa5(-gZC+2X>eK;_$yC)C?mvlcsXz6<`SA9C2KK9sSi-|xw#yPjWz0JPL&Yn)ux0oAEOdnj9;S#VD z#+Z^Iv?|QB-_i;$%WW)2)C!TY*bwT#KCnfugVe-9f>XgG2ZTKqm`FzwT7qyOFj>(Y zfuUt$Y8BzR5MWLu0?uZzwc~D#ukOrY@!6ik)WWy~_IU^d-arHcwbmJ_Qzws& zG8~Tjqn;WT($8U7aA88KSUnU?_fK>#|69-t&L zWi&Z>LX2rL2}|Vhu$;o-_b4I?^)qAqJ-}Rc*2P87pp=UvwjaC<9t6(8w!anuXl|}m*%HD;?+Qq8u&TgZnQmXT;Fqs1 z)WF0CB3h+|r`=F;DQ#D5r+`=hkeInHn(SGZm3%;Bq2*I|d&x9_Z+wAyo+KS^wfx7B zAGy}{fS$ukr5ULF@T^KAlecVY9C5t#JeLdMtgku(0SoNdWY8Zf(u8c|D)m zY3ZBgEG0M#4_(W~+psgX;~m)C0oR-rdcB@w>G*>&2962saw3S<<+dk0`e5~sN4BCa zEt1nhWQb_3P1}tJrLJ>|>i&|55h-Wj>eZcvrt^ur%xE-9)Z>0{Kw3BA7j@m8tzcsy zB8%R6@sno1ZDL1TYl(Wz*_JQy7N;IZ$!Bx&19_#;P*aI+1JKWHjh}GPUq5~8kIhficx<$6l>JoKaf@}yt@ z=*9X~>tGF(p#r3pF^qR-S6^}Rwg1vjpZTuu1T--7g`y%@Cpa6LXg*g{d_noZvW zfSfXrI>41ZCetd_cSL^9E&!NXBP2=(R#|0x<#n2(vH*bu3afig9p5bwaW``Zc|AaY z$ph9k{nenA{v|NU+7#Paxd0ORS`;di>5vxSD^W_9yLX2WV0dZeOnK@q^}riOuYBFg z`Wc<~-DLK(4L7nACs&Ri2P#H)(E4$8;m)m-ALUPe0=6zfJw2Yuic(o{0kSEoIjV_L zktpCZg4G!GYzGiJR80*MKah7A90V9ZP2umKd7`Kq4@#Eoo4(^_zXDIPQ()q-5X13O z5CK<-R9kjRATdD&ph=e!8Ci#B*u|RVfNp?@d>Q2{MWluG6PS~< z_TGN}Z|>0LCo*_y8^)eU6{{qQy|weKhc_&4U7}6OzeY~nxe6!3ma1-O4conbGv1}D zQm$Vb@5HZQU0X|Y0!`(~f~D+TugM#)lqgG9G_#&qVg_gid~P+(MGbfPVP})EiU`zHs(e0?L|dHk93 z`t_}?9jJ5t#2B_W-IdMxEACpmW5YX<^dBwy6q5*-_Ug;G@(p(TF z=5#a)xWqBy*${E2%h=jPPlF(U-;=`N&OkT0gqjp2zv&nl32(YzO9ib7wciRHR2xrr zs|$(|@YaG5BEzj1-y+bAa8$6zgFNcA6XhlVblgx!w6@`vVzEfIQE_(S#QN$6e&O*C z7Q@+ncYlqhfFWQNbRAS}RhaKWAsEro|=8Yv7HYJ zf`(vvHH|hyzCDA@$z(iL)1B9qbGN(LoKEMij3Ju>ss^7oSv@LXP?W<0MtvCcp_jqN zYLoW+y+Pyi#E8*}j!Ipr=7rR`KxB5K5cs1P5IuLveYt4~KIatJKn({=`q9rTx>f|( zd3MqJ-Z0VJ4c{Zg0Is+W(OS*x)W0Z%!$txF8=Jal0H)1MWDPg7fwl<{6M^($-Uq2M z8h8A41im>YUL6xa9Jf8i-zHYOYSIwTR@5T^jkv!;MFN4YR^0ya}XzEFS;%4zQHo}@a6 z1fL!=St}V~j7gGH*4hJ=E*%fik|<&V7LyQY!WLDu*0Xz9f1?XYC!*_}cix%jku{v6 zVYeCf>?VLtXJO-XX3u(ET9acYy*~S?@I-*T>H!wP)Xi07oG)hI{ zL?jbu*tP-@9P-481$GqGm<)z2O*ur6B<2Y?ms)QK1$zvYtUAb)%rZO8%JIr{l4V=+ZeYNaSX<;|(Xakdi0?B&bxxTe|V@m}3kAMlF;$&-1;4>jqL`|N2ijLz$~oJ-ad$8nW74PUI+EMv2#Jl65a+bf7P)kj?N8dGB0LNb0$tx* z90j$5habhyJe1#c{zCs`S&qlLdF}nJ-Tr4E&!*F|xpy^S$yh*B41~*A&hgR5ws)@G zzmaX~V&ZsKP*Jl-c|Pt6J`{?)U6F!Gz|Hx}grQQIt&I1TUYNQKKtB&lZDnFWLn<`% z)f^Hb`B*qfhLc%vEf;Kvcfb4HPwDVY|I|CotL`Tth!(t8s8i3sap#@?=pX%~XJGBm ze(g7_sv3=YZ429t9$ORzICm7vpAO4Sv0z>mMehfH@CV=eJ>RpON@)#9pfUqs)A0~; zQr8}O@YjF#XCME>Cth*#!D9L0VW8xbu-mM=`W`7`!9bzLi^PML_*(DGohROS&)wrs{p~ZK`_yE<9XqzV z9^}|qQf{RroA{OF7<+kIcf5$$q-9yAm)I+cZ~yjhf9rRCr^>RHU32j>pZkN~`mNoE z9$M65SJW>x_qmngK?Rx4dPP3ooqy_6pL&9;Z{XQI-}<#U9ITJlzw^7l`;NK#^z^r$ z{>;M)eXrMRsngM4ZHuCimu4a=dq%XJnPA)*OFooknft=vQi2&#w81>n#>9~xdWFz1 zmrWz?WQx#bfrs~v_xB-7(Zwzsbak&v4_@%5VC*{JDs`qWd~YP=mTn6J6_ zc&3x~sKgd2tta*I?L>Ma#c5Iqid3Ycw7~a~-C1)U7OfjJ{L-cESqUdj)IF0E5+bJ~ zztWqfghW(TC0Y*#>-XP(Vzl8Nee}uj^n9xnrBq$}ix+2ZHk<4 zvnW9%r7Zy6a#0U}L;<=YkKDRv5Y*wipPr~&Fuq9E)mJX(LqwiMBlYk|tP4QD6b~yR z)9G}$p1tjDZ~LP^zVTOo^;gL2uefhyR4;_U`?rK5ayVYU);bpN>f*(V^Z9&z<9NT{ zPfNKM^N2+HO8^!?YVav7!c$ouPtvN23+@rC5n8fXYPls+%PepWzLro6T42lIF(M`{ zswK-$Ky0Ou56X{fttmSEWAOhNQC0&YR1BqsopHG{D>vt`If3mN%u3j~Q41^2!7mJh z*1Cxekn7dc#jr=KLs}WA2tcbrKkMfJVX7mhp}>oG3yTqEJu|oc%kq|EhTI-;znIpg zD$8^GgYf1W^w4UrclUJCZd8Ef26JbG&^e(o5u$}9EeH`MK{mSiiRUE(A40S3JxEys z=p{W?F#T4TYG;L207)gMsYKp83*L+yn5;2&0YX>;*-ABOh;mQ0Z}z9>tqg?tr$`%v zG+vjNVoj|!K68`0>@xEbWH+Yy0K}`f^k>I)9Pi)wDG_yNvIiXG6s-lOvlvXunUc*Q z&wI;7=PU+nRB*0mGsk2>6q60z?jYm0mODtF*3pHHc))ZjjjmEQA!KO zn1v|z0a4&+&u@~B*z5JO4E@~e5MtP@R!i@e|X{L$n+wGxT0=# zRTEA3D=8kVdWWI*)X}7k=IsFZz!C1is)|t=1H_0cP;r=#$JTP#UZ6_j-}}JFKlZ8d ztO8UpnS)Y5J{9bET8u0f4Md8R0a1d~O4B51vNW0Vsb+C{ao+iP7UHWUXiQw-+WYtr zod;>fox9-&Td9@=Kx@6snHFMhTcn~WaBt1}{;G>^(APbF{IzTHfe(D(^$*Z1U&#%< zLz(Gx`tZXSAAE2=o4o-5+T252*3H3SuvlL3)!MK?mxS>MmK);cb?eZ zUOl$b&r~t1oO7G&nib~3Dp4zQ1c0r+M13*N!txGPQzy0aFt<29cjk>h`2DZ`Xa6Y~ z9Y^dXsV&fZ;)`G%lxu?Ug{MFGKmYILpMBshqm|6^PG(7~FTqmr?mK$XCqh96$b|q? zyLt+o(1a+3_mSMJn2bVzxP-b0Fo~2^qoO}DGR4XiTq_R4HyV(dz+IvwY8E?Q42g4N40^|uR4f`?TrCa#IQkP9Mr)a`Uc{;V!>%48xVq$KhpeMiq z6d44~3;_e6_s*4U2X{Pl<{o&%*B*PzH}uawFjaYGF)*Um{rots=@WzXRh8#p0p?{r z-wbAF<^KFF7fznKcWv#i-OqpW`jw}q)eT=!L0%E(h3Y9HAAp5004d*5>!YZ2ki~bJ zw>rOoC14O$Hk;w^m&SKM9qSbXKo*z;3eSm8QYx88wR$5sw6I!11T=BGfNLjDyy<(t z|4l#rFBRuccnpX^xrzVC2S4?{{U7#Y4-RwWISt@ggI4$K3qYT_({5Aew{ob>->Ahf zZ1p;z!=ZwiAfnpN zNTFHJnS(IvpmP^M&=ES)TYUup1LxsZjM`3dNug8$l})odq@d~y^h#ddu~P20xw?)#z znz%vByG88ORs_#-1OpL|WJG>BY&o=z#_UBPO>e~8wc-2?C$Lw^N`TAT^^SEl53}Az zh-2acy@dMW4XI%?fzw}i?>d=l6iN=WQDmBL6>zm2JiXP3LESf;uG&C$lN4MZfdZi_i1G#@x24zw7>>^SJmY~qX4)q@qxWSdX)lca3yLv z&=R_3M)^w*TryC+DeWmT>@cKmd(@}8u5DfCdVIXUcKTFyPVoaP@R29O)p3~Du*+u4 z7mtmzJ9m5cpD*q^i+!`%$1UxF9YFAr5{`3&QPbV%h*2n+81#i~CdKz!a_3KQIE{Rc z_ypi_uQQNbBu5#t^dPJ->gH4d5g?!!a1#3$iLH67_p0Ivm3WRIH)3+Y1T7euc?iNW zROSFg-AoO(!+=IksSNuCASV!yDiHg-0Iyi}$^!*E9Fu z`$q6u+*$|$B}BGY1;mOCu~DFv#I+4X;_YN|@rjF{RK>K{J2#&yZ-+)H4^sdwA@dG6 zsD-hxtsSZ;b;Nqf?qm=tkT}WrW{et`bgk4(U`O#-c!zilu!}GO*g={oC`ru#EwU$_ zV45XG->@Q3F{4DlV+h1R3>sM>AO^~6qF5Mdwc=h`7n8A?+T!YFwKLb-<8ph~&q`N& zww@yaa3|N0XOQ=?XJBOjt0NiqAqhuNsLJc5GoTB;c3nS=eKMU-w zu%U>Vpn4A0GrsJZ&I)eD9Kyc#F;bIAOo0wXNQ!&ZAdXoLu0fv^I=e*M`2XUFv2|J6t>Cgq;q&c(4!~+*XB$r2^Tsy`J2w6qm^dN9uai+DwqDV^T zoJB&ei6p9?N$4#r1xhU+mdGV-pD2PLafnD0IT53Dx;-wr5CjPdeW8Mcc^|4JJTC!3 zbO7hQPwEFYILPhHFlA!2MxQlj&g_bajHwDrr=?wn zOlKu1SR?@vG=N#BzaAhWqnBWus)<2Rk*K7^l`4iMvQbG)kwOxO&;S?StE#%|M0ov* zTBFT$v(pS%@*qu}9aS{|utwAn3kwx;|NoLPv2k4FDm9|Bb$qfjcK6m9?|k zEU=Gn*$|QSHs-hkk!NuycNM_fJ+1tATe{M>>4%9mKO7EU_qx}OMx)D@FE6yM7FSRD z;2w;C22-|k!XTrGlRx^?{QRA(*Qe`)!GM9Ddh+V0Kc*l2{N)-gqG6QD8p-Kx ztJH0IO$v!y*?N7UN2kAjt_7MWfNa`Jl$QSW>s@+(Gl@0h(PpJ zW8V8hnIv?JgwA;3=7 z{ph2QGVU&9UQeC9=dM?rALjSG;?DB3pLpsspLp!@rE67HF$c*Y&kKw_Ypj@X+g^Z4 zSIJcN>uCTkOZ)b3{l4$`!5=hdPNe;cX!r5Q|KdIG`OL>ZK5#G`tOmD?a2>!N>^R!f zz8I#puIt(vgJ6OWTA5xiuPXoeYN0~=|&?0txhS)`s}nofi+WRKYPcl+C29uxDv^1gJYsibswNbuZoECs$? z)|u&H{3`_pfT{w@>HPWQHV^)>$@qHk)`u8+!7#^=J3_8rsKPxsnG7p;*M)rJ#Hx2C zI7Wo#0IRND8(VA7WpXUgC7Fq3U1Zr!QT(w&T1F*4k&D*_>^H-GQ?kaN#8Ma|Md) zN;p8bi%-jATl`UJphQXrjG~-2*jeC=`a@h|ISwf&*ptr?iMt{Gg>qzr29i=?0)&V< z<8oBMNowOTE_MU}9rpltkLf;6`u8B2mpZdAz-3E#Naf}QS1`G?<8QqJ-#P$&OUup< zbIqO|h!nbIc6l6uG==t_d+vGbTi^PZfBshsTVK6n(BH^Rzv<(AXrpX(aW05^=4E;1 z%9VxSM!(-j#KrcVXU4r=FX1)bd!!)(kQWah!W3G zm+a>h=9(6?b>+>>7B4OT{#IXQ(OAxQAn0wUPZ zq(sZKRkChwQ(o@68DD+Ywx=R22mLl8(q%3K(H;N|WXL1{8qokYDFY;t$>kcOfN{e+ zVGd3Rg(=EnpbJR~R+wR8A$V}1Nj-wMU;v3gcE5e|aRHs656TAcjLo-kE?|{wm(+L! ziLI|sm?J{EqD0q-m*xVyWtpCkqN!*J#)=}hO9Cb$wg9wJibJd@viwQXzivbL5=gvI zbCB`Q7>uxLmIiDHsFVsI(KuZ?A+}**HjcrfCE~D-*2UdY24b{?NHHpANL21_t5`&H z9!tx?HCInJOer?tUSQ!?9X^U+L_9fG{H}Yi9b-$h2>&g?K0;#QZge>3oQ~G5q)E#@ z-DJD7OIz;u`*GbKwwFsepWaA|L8ojyEEe3}=lc43lF@I!S~?XFpI1-{X^6(75o@i> z5HODFUw~KsaQucQmA(6XmVPZ-+CkBrb5&KXD7ARBm6g~;ayoNoP|f?DQOqmu5<2vUzg+D^mfLT?|$Kx?VR|1|TK)2Hld%Z`Fw+MGOf>_7SE z%>$!X{P({zo@`wk_h%BnJ4c~YMGTy^~kt1BQk64p)kkbyHi?af7G#hQaGg9PYAeMySUSq6$6rLXwB z|B@LBFWKejAr@K$L6Q&$2b#EqNpGa?e%0uW-*fDBU(*|1P{3300?b$&2#CS!JlEo4 ze_I39j<)Avw{$S|`b72&<(H2Q{qa}H@mEjR@2?*Eq`UeAUw#JW<;<}dAXI{g6joBT z2lUCK9%Vh1B%LdPy%ObKe)_9l3ey3@UTic$W(2PUqM0DWILVBvL^8p^NLOoj>h0fr z|G)k-c<<}BDqEnch|N!QkY|4Xu>g)U(6rGaRy8QiW~- zqR94A;84#4_7vwR#M4j-g;T7@fAyiqKKJKe8vacGXY;2& z`l+5(BRc@}r4BBjDDs+z7C_iAk#K1kZrup*z&MQoSYl03$}3l}9Tt4gG0B1Yqp}~y zF;AlTz>P&7bJ7>WR`Fm79D8;WtrJB}MY%)M9j&%LgN$*X=`XGCO*g6N<&oTBda7w> zNs}zB9mBocpoA`;BBrVF&cuQC^@(h|w@$;mIM4huH^S8|*D#4xrnItNW`;_wuQNaK zIK7U}e3QmI2e1Oyq=wA6l~vbYU%$G&{TbVrbH~pO$00zkY}k=GPc(Z#U=7IVQImKQ ztps8?$5{wq^1@d1g)8QI1+P2~c{V^K7pb?TBu)Lg9G*A>&=mg&;Nj(DO8oxFn^MVP zz%Z|1ki{j*&U$Y#Of!N)<7Invio-PyH1+* zp&jY5))it^K;q&B1{5)Z8lXA9A|Qqws{uZZ@HB=P_r|MDxd+2Zq)fp&$}zw-;1R>B zM#WedKqey+%LX4_dIe-vHgzXC>&j16&ztNiYBiJ-SnpU2+x*?x;0ch+!_GQ zYS+5ZQ)hyQ4Crg#Fxc6>@$rv;{QV#5Kk&*o+Vaiy| zn0dSY{FB!{T!nJu_(q1SyVLsW_N9~NWY+IhRaH~tPIUEbHlHmlF1aY;f)gtun%fbk z2V^B-ogV|d>baJ%6<}Lj{QR|^DW-BuTf%&I=m+Xojsl$~-gN2gix7BruLz`@5sx6?%~ z3;{{lMadS&u`=G6y&?o~&Uz;Vq7JbnpsU$g`4CA$ zh_Mhf--d`)MU^U5XWc@vzfGEOVexnl90ITg5nO2nqYLBd$pBSI}P=XSnz*dJ4!Ru5ZUtqfAcpMM+Iuem zDcV~bIIdMTQxWwJdnO`Xo!@@HpXYhIr$rLm!@8Jtm;QVpGGQaYc=~j@Vtn5LB`$Qv zz3Ce9P5r8ZF;x%{PV_DwKjX72`L-W03pbCSyl0}4USFCBMR-gtce+LMEI z+6Lit|FJ@A0{Of18$k>QpDv`XJbHByOzJS0#|5wfj=bzTmh&?*%M?t#xw<>u+V%<{ z7a*>NP$__^L_Dg)8Al*O(lg3)ZE}^cVDAG!Xs{78bg?Q>ZgM1aWe6_12P(i=r7>k! zdp|SqL@ynoI`KWo4dKSHmAnngN%!`bm7Av{_xWjzB~Kr3*Y>;0zv?FfI=;uegKWo z^H2Q5Ph?kmzww*D^2n9PP87$J6Ui78Y&c4xA=c6)$jKgsYTbQm-1J<1VltVe;iWOmA(mfvKg6c6Oop`c3!Ve`om2N3MMILyui~YG!L;VMI~tHvjpHsH6xj z3qYbV^Q&L|>L2`>pYazi2*9Ao0KnGu-@fym@B7m~U761ZQEY3>enBr?S7#duj{G3{ z{GzXD$@ARjXkmGWB&4*dE|-J3H0x$6{BS_j5U)y|?ztm0dfA`3<=H4qU*{d0&wV)^S%THs&EAQDB!!BFA_* zala6n=8cB{>{%Ru1+*eHLv6BxkrCs}r^EbucF?M2q{hoXTLX2NR<=w#6Rj@aIZd}( z7fx3S^H9y&Pf?yPLm3fY!2U0>*7ISqTQ?t$2u^rwJ%z}v*8oU9uEeCRLv6+vaajJ z&PBS|Pej&QL#=#l;?6T5qi`dn4y6kfaLHIH@}#3ICWaPg!;Twri5^0;p#YRLhk_`r zRZ}~ZvMgm;?oJmUTUvPN#3EW4U%3t6SB@bjB&dVZbtX|x z2cjigRv5ek8#R$*>tB%$01Zu5Qnb&gMXj3RJ&n&84Y2){R?#%J zaA)*BVhBNzPPLNbpXr3yX{!kvBNew*Run~^Hyur4Zfe37Ct0dYL{m|=bj75I&<*08 z9>+EYtE-gG(AJmq5Qdbn3XyM$q&X~aiHu?Et+jD9L;H+rrToHzGtpYCrj^S`ZBAmX z>V+9mP!&)Sp@LNaD6-uUWHmdkwnx{C-8ogr2ognjLE2_5Em%xhy==0KNjK1)DW@Aq zvKuV}APM^-Vv9Vc8%roQM{5!40}-UP){BNT?myIeBR+prXE=lg5ciPS+%HUmtbNQE zd`wkUIW)O9GUojG^CwSgk*x?aAJTvpNQTi4`?lk*xQ!T5UDcGXP!lC23arF(zHE&p zh37E}97D3u(KCqGOK$eS!Y&Hn^l^ErHm0Qu>E4zaEY4Tndk}$cXB46En|ARkTB-<# z<4+RNLE=ah-+0xlUbPSbpU>x8TU*AM1v0SkNz`>+mZbvP&o_##!=6M;x?EhN&=g1@ zWvx{as^g9rQOnKGAiIA3`e#1#nXmsIl0B7k6ofC{qS$vrrEc7?&Ve3igN@w=pr6Bp zVsjJ=$a3x*8wF%3vaIrxCOBzb8)H&as1e}H;Yk*e7v(%tZ&jWd@Gz^jLC(xndw{SC zB-UP_yq<-tfAYZ(&;4LBIsQ%GU{{W33X+g)R1H=pUsVwNfBX}}*Y@xH?|=QqBag1; zdNAzU+A|ry)*Fw<8#5&$TLYysMK@}t^^U7Ae9fC5_>ca1{pQzOp&k{H`;1-#Xs7@@ z%-0a%>WxQ#{dYg`U;j_9R7PoVL$rqGWQAnl4cZ{s%?<3fR$n1OY=k*zW03`=r%~5s zHJeOUnRAmv1-aQ!S#X-CVO*fSUY)k zBkK?5^SONfV`R+gUH8N4w3<)Po?IEdV&(WFjCXEddwhQB;myfa(6;EQVGsI^@0XKP zvd~(K4-LM9oaN+03E%}2$ny7*8~eh{M2$i(UPPeTbhy;PQ*k918IzT6d$_LN_%-+4 z{fbl9XIFNfVl8f{vOb#ewejxdT>zL@n}U@YTDj}|@w@MV;rgI|*8{J5^)x&^7!0t1 zF04?l5XOFUyV_a3d+qB_ubg|$g$F-;>2sgny!2RIRryM>=4$SljFb~`ge4|C6)TXa zdDrTDiuuYSKx4Q5iabv}_rsB$luz9LxIBu2L$IdV9-^Vru7oTzy=`x=JC7@Ux#QIL z{D=P;yy4YNwXLREVQiQ@@w>nM#4o+`!e)(BY>)CvV8s2^Oig$!Ls{6ZH9OP-G0$yG zaCuY!zou!D5RBmtF?~O=T0dTgawrI zED{h!`6;=bJY0ehk}7?g<40zOjvGpvbh#bB)0l>=z3U8tyDYJ2mcvb@HPPvP5DQyR zzGZcDpbLebFL@FXUWjNhzhEFqL=Ge42cW|&u56u~b<7Y$z-sr6MR?-_@G+h|b{!ty z^*e#2I8*xlm#0ro=`Hu&{pvfjQ|i%dE^pC~ZQKdJz6HPkiQV1d#@!c= z-?h2TVB;!x7$8^ywt0sAT<<{0@-WFVYaL_-jH~H0TfOb=o(K>7Go!)T5(Nmw)qxZ! z0w;${&U5F(;RBA&e|b@w7b8B=Oi@$-0ue`opn(I#qMN4jHu3y1Ks`YjuV=7+j_y0D z769}^kHX`ZVeZyFuUsC>)hT^pbLY-8>ik{#9joSUw%VW|TW>wrqCf~Z5K=Ey1rHFY zTG9Ze+6b3GUE)1GWkwYzS_M)@vI;yRSwq=SxQ^IEUiEl7YL&8xN}RqBx&MqBM1`1I z0uY@hEQP+>W^(tvC^E9g=WVBTNC;>ZnvLZ-~yu^;aEDd-oX(*T|qi#Qscx!rm z{rK^f6NWT08?*>Bgk9imFV{e}SxUl9l8fN2Le>TlBKIPQMh#+`&EQ0YwID8YXcYaC zA^w3HP&toav0nyNhTe^dx^%-{-6^)F{q1o*nJ}0XRjP(CDI}~Ela0Y-RKVGjFzCVR z3XE2vHvpv}V1$@0LJ+~|ox~+#VP#pKg(7Vhh*8Bls0Y56ifOD7J|5J@P=RT8T&9CB#f^Zx5N*IL|Lx__48qo-l2O?z_sb>lvEPL<32G4;e;e@qZ)^lgY zbMQ_o??S-wbeA-1R-<(@LqT06H?n2qRglqZG; z8rGyT$_msHfjJjkLS`km92cM&B2^Fo_{N~f_6H*hA!Tg}>?V$cOs4gz4PGBATLtH) zMV{6IHb-g#t!ouUbIBET9N8cQl(0@Q_Y3%#A z=#_*ChN)cPJz*-uZ5_jeCalR6 z46Jl)LogL7m3#mVc&AiR6bU^{8AZ|BfP~4pZj5OG=#~dyjG50HK41E_jilG2+g+K> zmMxnCfG@NbiI#*jO_s2)xn1ur6+j285s z5e+FMQi9;X+2Gha706gP8$SPrll3>>dHhwYj%J&sk1b7>aA&l;FA-yX?F6gPn3#& zZLJLUdjk z;{{n&RcWzy>V8@uNkjI``oPT#6_j4Dw|Gs9bf>PT^QjiMUE2BPj-Qssk%%Z`QMvgp z%pQAsTHDoAr;HIWO0Vb;f{Jenl!3a5marfj7H5Yij~&}sz3W*2{^M)c9~xbIAI?yn_h-(m)}D_aUw_3b^yfZz{ga>E0-n60cak9sstO@d z|DY_ns$9$Uh^ls=HH^n$XJ=Yf)bf%90F^?NmdyA?Qop~%B!FgzJYNox2&75fARC-H z)59!3c5d*=&(3xx*0U#~`Mi4kaTw2L)k!#Z9Eu*82BiU`fGNr^MK3}-F$i9yIbnne zIytxxyh57uqzHr#*rHU;e$G6W2pS^gMUs;55%=F^F5h%~*vWQmk5{0MS|4!Kio<>2 z3HU$&LjgVnKp*LVIe>PhR1gl^Vd6GE7fBrPFmU|b&()gj8N#6@6y4(w8y*C~kGjLO z!NP4mbiX<(*g${KpU>xI-7uh2H=%oavE1RcuYK)<(N3MX{}uPXDbI66Y(|ohKtD)h z)SX4eo=zJ^r@_TBivzZ|x2tNt_zDrz)OtLgChqg46s9Ly@1`T6x-xW2pl^mVwl1M>i$vf3*M z8n_0nRhEtNwT&K~Tr;QE)Y<@#tx~4zJgbzcQPmttX}3dWJg0Rh#fRJE!y#>m3PfyW zi(3G?t}P-U!9j&ngwAi{Hmdl0Nkt{@SF~sBC3s{Gagm7&p>m!rg8(hk+DTpcx%K57 zDhJ-dc74%Wt{nsq@h-swFsE${D8ecv20TcrsO=iKAS@h`I0EWe{s2MZPg{+!VB^Mq zC}u)x>$^lTW{#`A61=Wcj-^bK#y|oK8^Q>?H~Udi$!7o`!tzw1F(0|l&5>D_wMx*5 zSDWClV0=6SMd?2kf7o={xlwTsDy58qn74w6wG*wiF{=4_dKnzjUA4S^0*UJaf?XC3_xrNDNgH=S5-VI|MR?DYu&xRa)W}vAkj~3u8>@Of2uNymGoY?wOJ-0?_lA zdqo7Gy)mZo420Q|Z@$;bh;R_-3S}e&Sw(B<-buhWQDXBvZ~NtL5J+q75;BT*xGy-W z%NPs>d7dk!($4{JiG3JjK~;V-nJmupmbbj=nXr51YPs0<5oHd(4g@~)sc|k;<|lJz zZtLky1w)c`Imn0aq}S^)ljrEAiRVcqeet0zs|)8&zW(*=8ynSp{&?Xb%OLn8V1pRJOtwSwy9QH z<(Pc`9J)Ey&T(2ge29jKt$0f+gk@Q#Y+QuHNv?>t@Fel^=Hy3fC?^%{=TA|!)?yq| zmSy?WQ%~J-a-$blEFm9k#&30i-E#SD6S+~m7p(#FJVc3`+W_>DMgS7M-2o&cN_x=7 z81SJSPs_3lA&|lZzwWoH{E~O@w{|?NN*#T&VWLW?ul=Rwtk#BLWb=4bWC$Coi zuRe0+()d+QuYCR2$@z8AdQ~*oFjgTq0|N{chX3+Ee*eAepZafq_TpoYpI%*O=4@3} z7*x-=Kx;OiP30-5;Z^tC`)~gX@crKflwp7oH@{va&cGO)(y+k}CVu-}zx(O`?f+fB za+!#I0kxr74-jL-Ru5Tdw(GC-5-kpq5Nkq#u!26Y2VZkp+DwBczzo*!sLtL8!yz0W z$mFVQZw6QE9;~wH(v|t@`1pnLZQptJE#EZ1;}uUZ3KcmNTiJAdW#r(2dkhk&3`zl8 zPPd=hoZK))e)n7MU%OBb?k)STwu6t`tB?5dinneOv@+Tt=b=X7tk5Pcj8d5T!j_T5 z%hBR(;OJRRDNNK* z$fYlQYW&paRXKC6h1r6v64*|i0C&eXKfO@^h`OfCf@BZ;ak6e1)&-~l{ zuXz=$4)nLY>At&WzrX!$D3alj@XaX=_R@A$-imui7&IT8PWya2;sSG z-mjwgTSct1pol?1-Q-*0-|z}MSc3;2aZheev~gnC(;4~sj&d+`=)+L_+zM(`g&t!7%)w>qnQ{Jw zt+}693j}JAPmK1=K2V6XVL(XiLQE~sp0FJg@XOH0kMT}XQUMf39ruC6{{Vw0KtZpT ztPr0IGxt2?)~&(Laoo9c9m-L0cfWq@x;%6dE^foj!HoJlm-~-h!7ud6JI@U6ylef; zaq1Og#XIPyAVN|{R%Nam0Imp4?sx|1hcdB}TgWyvmz{Y5r0W3z*f0!0`T`k99!v(D zM}^QHl3^?a`a*?JFUY`Pu}CA~G#8-ec*voRs{>115JYz zxItK?2%ePcYXwNA?5#Q)0MOLo=EPmvnq0az*_qgx3%0_#_Ut6qRGVeET4Wc7^=JUA ztFW;Kt3wzLU{FA=z-UO)msmFljqu`QL}ZqEz$Be1fS!Ud1#CgFnXP7(n^&&(FfXl- zYT;fe2m}uyj=f0*-&iEvsuna17#e^}si~f%Y{(2~v#bS5AkW1R69L73MhlPzgWN-lnBXVC zSaFOIt)<9>*#&k9u#QmaA_cMN+9r_=y3q(H0;*e_7M`MmJ~%22`tN!I7!aYQb|ab@Wd2Q zvAwqgi2UJdl^E7*YmId8{#P6z;(`JpNhc>&XgI>W<3XO`d>6v(`&J*m>lOC*!_^0O zi_3m}SDz2riJs~i7J*9pu?MzVM|UItyNTjz<(OTz(h(zsK-~QRE z*`$tpp}w*pJBvtrOrl69h4H$s1LO(-p^n{RW5UfQJL9UHAqY8%dRE{@$QT9R*;9Z7 zm@_D`fZ!xLSBv3g?>_vA;VbXG>yBfU)be*jP^R>7JP$rRDsEdyL>1%4bKv=SXT#eO znTaa$Ibi^KdCjI?hSut{V6;SkUeMsHs%m%sePBQ*_bKf)i;Hyu(`x?k!w-Mq|NK9{ zpWyzp-)_=!0G;KeljlbVPet*z@A|H{P0jE9;x9e=;AaNILKW1=0FjXZgyft%arW%@ z{q#>C|MqVOfZEnZ7YQ&Bo&F86$-yW8`mf*h^FQw|Uc6&8WVV645aCy4AjoK`uyrHk z)^*T@%16Doz3px1R*y9#Su#&ObnT(fKK0}i+f`KsZkotN?D98# zkE?1b(@bd*=RD8Bh76MD-^anwY(9$}f8NGA2r%#W8(PyM9({jjcbE@Nae7fmwCdk+ z%zm;re)_Rzu3fuEfs#)(d3wEjc?J7=xmh9tm$P~Bu(H1Lwcq-!U-KhB0(qVU*TB}} zPk;Jd?|RoWk3DvJWyM$~h%r5u$btZVnfnXpT;i{VfI7?ad@!9(|LU*)>J#et_m2LV z3vYUW*=?LX`%nMV|MVx#%7=gXU6Y-i;{RvwO@nPauJf?9R(J2=Om}+s%>!nT1PPKN zHBqx1Dw3_)NgO$fk~s5Nm84RsO8%xQ`H@OhDx)1Iv13af5+#gW2Fd@#ewrsMYX0x zPuq(ZFLuxNx@T?i^6slQ_v;BJ$=g&>>L#O&t=kvRz{Lx2c1`ySr4$l?v*MjFGb&Pw zTBEor`pW8KD|b3Y-R*XI9nO>m86l4)KwTdY&=eShB~%Fd+i=|bU_+FXpUwG4 z@9uUW%Iv_#e^xaF1R&r&SHo(?#xXm=@Tq1MZ zU!90rNYZ7%_(nzX0t&(*XpBCy@wNsiDU>^9jfk0|e2T)9h6sV!<+;w3D1{0bNwgp; zFi0ITh?qW@4tD9q+ae`xH2@rbxtC5gj&cLP2u0?FfyMs52Iz zrkHOM+TuRAgI5a*UyOLrfSEj3c_bn&@?to;@;H-=7%Lt~>k%Jx2!XwiV)TQNFdzoa zJY{u8BT<;|*!L_wy#19scdlDROayv>AW);P<4=osOJfNP>3HE; zW@bFZLU$HI07?w|LAY=c$KEB65yDwSqVN3p+T-UYU|$RYlmh2K4nK50NVv#RR*)bO zAO;qJlk?&DW{b2bf|;kY>G60BU?8o}w5u*cz})5|9KW*&JJ%crSjOb-gQ?~?Yi-O8 zFd8y5i_WQa4niWBYHXT@w_fCJ>9;;PNj{$*y_RThN$N8Z*4p%zmYy!lG7->l0#aRF zScC?^*WvdP`A}8WOE0~&w|C~^YWy-M2l;rQ9z<*HgsZBGcW6gA?*}2gAC%ES*m2-C zJ75_R z_nO{d{mFmv7f$`c&+O!xg>Z(tzyKjYp$Ne+oP{w2u7B?`#)}UP`n^msTz;y1 z`a|nq_(Oj28@G3daO(W>M}N$G-;bVKzHC7nkYxZ-yA~=>vLj5xX=b!R>Wt)qoOvK@lcVW;h^t+ z*9U=oTjBkoJOWTiBLyW21qe$;CJq;;uiDGbuxU`3s=b0)qS_-{3i}K_1@u@J*>TRR+zNWy?PA$Lm3h7XiaiULIyzRAI-8Qxb!Ms zdui#$OQSp28+K(zCAh>actDrJT!E;=&f?ok0nNy)Krp0Z1juKHp!0Ii@g2o(W%;{* z{->V)XaCvI9Rvx5n~<2jFF*75|Kk7L`-jgy2{;MkCZi@RgkgDtBCu1&js<|iA4z#6 zbGj--yr&L&rH=c#G+UxZho~`R#juhM+{AINjZ)SHk+7mnqj30}zwz?)VgJQHx&Fi7 z?U#D+*x85w#h=<6cr>H{ z!?O2=eXKb&Gc5@%De|h6$ z6Y~kFE-x*A`h(f8-`V+{S785C{?X3zmBHGn`kTQ^zz`6|7>YuJK&HwO_O5N?SGV0} z*epACt>-e`028oNAW_Q$DtV#`2Go*roaVe!LEU%X<^1v6M?FJCz?Se;AdwDWh`3up zFDgBk92x>Zr9s4N(1L_MS7SqCZJ=`&t}JEO&Z=*|Qg7U`mG5lP@)is3R#(Svd5bQc z?mm2B>FjE;RDd!Sss_0NUn%DmfB^{V;Nv8yxQ4F?B9s7n1q>K~c4se0owgkAY=$5p z3;`8zj#y4prYxogBnOO*pMMNQ0k!KGh692`>rGU0FbpsVMi4<%<(KcF$`lndP#@pc zp=dKw29!=9Xr7(cJ_N*cy^bFQDL)b1!pw7loJ|L98X%q*Sr7{&ELNCSJ$)BP46^WB z5HP(rrNHWh_Hbdko^F7iPZF)tiNe;S27m52V(wSqp;sdT-~zdyl-Ki&khGR5)KQc( z44H?5s$mDg6n*a=$!5peX1w!hR8-{tfGA-PC3M1u%~rKlJEj6{sWHa%h-;(QDR&Th8)F5XeEoyZr`oqHEa$Z0*IIFFOf!!NlDHrR zF&i+TMr8sJ109%Mh>i`b-r0TBTAnnMrViGzZFpk6chK12Jyf>v4jhYj;-Zv!C{-H_ zI1<_534s8Y6^LSx*a%A7Vmt1T08%p6i0(#gF>szM5mDk3%{oit_peCL88CTZ0E&9# z3@8#l`aoO^O3%)piYjJfz+}@@Wh%0tDK@WxEC(Wp#PRHcoS*?%MBoNg=E{!#}KQZ=~R;m^e_$%nwy!w`MqbCI-Ul! zyE&|OM=#pF!bOIs={d;_s18RKi-dqlSP24(&J}tAkE|$D)U*o;IxhYN0L2cJ3lOxz zf-u@X55?{3Q0LV24D|ZtsS^k zGSAYM2S>KRRvb~;kI{L_d+!?WtXFJ0(Qis?O)5i>0FH$P6R~SrbC{NZK8igU0e7Qa z;qcy1gAE#El7STwwN>TFNgOz>DXF8LWfedLp}Oe=)QknPphpO23?Ql7K($ZZ4woQ6 z(!>!NISD~K7yR{&OV?ic;Nxev0uKZZ9-QNwy%uZVvANix9}l7u0S_qExF00rSf5#; z&dmD+^nIYUZUY*mvTxTeQW?w>(C=aA$`C@H=Rv8ok`sLJLHhlEo@HNo;e{9e%3t{> zwEE<~@Xz$h0-S>)*BWXcGMzD4@7;&K`@0|cm+;s3o0p&c2UAzLrlTk0$?0tQCx7xM zFaP+DgVq8Bcl(DHFRad|A?BD&%e|h_>U%fOK0J~HWCq$mXcRN8aKSjazN5%Y4 z(ZlOWlboSCgAzzz?w+}Pv3%r8^~~pk>3xF^h-?_2vD^DPk ziQVqZu6bx}9Z*B3^XQ|GuCCo#S}wqt*ainss?+P9IkTig@9fH>r%&DZ+LvDb`t$pf zA$S@ZDHY{foA+)_e|wSI4J1sf`rbL~Jp?8Yqx*m~Qx$1XW>(^9=rbGKfSMNgR3&%k z>eanX9u9|56U5z9aPHj7G@7tkTLL>#4b*;|RB6T(1EYnNWe8sPdf8+gm~%zOHxk$F z4G~ROgU+v?xo}24+kExbt1pT7MMkb}-j5D&-*TM#T}o!Y|NFoHM}OvLro}L}b&(aM zarnyhzx}uW_Ln~MnWr63>DmS-S!QZx5EOZ*ta~Y?X3MA$;y{O^tyl)4z;r+R+0TB? z-}!WxKJ-ug5CJW(umA9$`7`I8`uwl`zt_I{tPf46Ka+ciW)XSN^`;X{#1=R0$`tR3 zmi+C-$=h1rgiRX}BnQb;r_OxjBL#Hr3$KlL_eRXDlLn0tjRDr;+~y{{2$gJCPdu@I z@!}7C>|>+tufFuPuU%a+ol_4loi8(Hp42?kXaqpSw#wbPGuqpu7#BMq3XJ3Y4On+daz)2+~cqR8F-4khwZPKeK% zI2wxF1Njh8q9~dJ3xR}0r&wn}lwkX_gW&A1Bp|bEIMPUw#2`e_9z7x+CvD?NK2AUr z$qYySlFSI{%ER;bR{n~}J)A2U<)bbqXM2-uk@871~ugWcMyOu?*=zR#pV+{N8 z;}d;FPtKhA44FN%@`dg`gEPVm`hzWkN1e5GTan4U>Km2TD` zYFX!1UDcWIZ&)NA* z0TC+*#$cw=WI`k;E?KK3)>E{4vtT z0=auO9g}orn{UvP+TMqBha(ah=Yo+<94uBUQLI9+Am(=-s;HGg75U?l;lUuE|)iWppYwd!bG^OdEN&B4GK<|Cq zdL(*rHes*p5W+p9+NR6eTOHq^ljnKA-%l63{*whFC-6343_v(sEo*=?K7an=$2$+- z*<0J(^?Tbg9J;Ei_VmyxWK=|o(=U}7;&EUR@4+*N0N_IFXsksMkq|lO8k_1WMSZ!? zh{|4Xxm;cwm{a{?Wp!}6OP2E}|rS8ri;`E~7v zTRJXHwV7cW$;P?RRvV=t&mhYTL40@|J2xM=vOPF@3Y>!wIMa@q17aIGGE>p?Ic+#j zNQ>Nf@MTi1NE?gW-3D#&$%U{JiE>Or`)Sdyudh3IM0trwTNx538N!JcyUw}8O2vwl zg!?%?aA1r!BbKKk=udoLcQ6<<&K`S6@ePbC;OKX?_ZJ?I$I*s963|Flmc36i+y`mz zL#NZ37KS!ve%}xg$uY$Z!rO@lU%?i9u=^O`!}UfL2!d#cYx~Cgj50TgOL-lVT)8<6k|s>p%QY{cQc%l>p!YP^&@!Yz7vf)b*eE#Q8J-&Z+;r{@mw2 zr}y}=^-Je}{>RS!8-F&etq0ZvP%N+)>tjd201yYL7@m9Xx&QWm+4Vog7)lI_t(i3hdwqN3rrRI;JLg3NG#7nYUNd?*D>Dl+1QY6N;Ql(f?Pvb*h5w>nzIx-KANoP} z*abYJPyZ`FdHSKj=3gtuU;27Et`oh;LdF7Sr z)u#N;kACjbW&Olt^~D#rzxMK^!NK`+&Dz>v&w3#T1&p9Zg23wbcJJB--)Ra|w31KO zm$$PF6k5S39OXnmkT3(9*@>g<4}d}f2=A;NOFogQskXEgR77!TMUH|21bCLJwYmU+ zde$1aCX+-EP(W45N~gO9x*3ldpF2B%$3DcjFTyuA^lP{1<{dk!0Mzo(nVsAG+>Nll zf#=rn$_2Qv3QM`_DpM$p+69;<5l|pTV$KJ!3)*3FyGzVNr#*4CUG6Zx@wmbWuRBpw?;wpF=wW2qlVt_M5r=fiA$XQ?~U zXxF-5&Ih9I$iupC-kvpUq1D*#xsK`9dKGHR&vFf*H`VWYOkvRC8nQGI8x z-X2eOYj)0p0}Z6T7?dT=OWo$|N^^D{)_SzMyxT29kqNL19Q`_Dpu(FCAb>*9tPn^C z0?UW$A|EI?Ex|y*gJ*eVtNtfnpku`LI6~ zwEXvK-{hp7o%E&%WqwQbV%QW5E8M~mX#*ZqV zRIZ-BybA##_V_76Uw~Kup+H{0Ogi4vP|RVT;ec<8eM!CAKFEpy5p!e#fhN{)N%Y_B zIF*{mF#}MNODo6`v;h?@j5I=~Ak(5X=#(O?k;|0R85A1KVVWx}a@5F5&EAsUO9~Jn z;Jph|0$>1Y(w|9M;1LTJ1P+L4#30g=%iJ=>0$Iowcu55y5er2|5n~XbgD#fwsJ;n= z)<#3{XzZjUcGSoGi%F@4_!$XW{NgX=*K6NuHM^eJDhf*4_W&yt@qGAv5v67VGSR^L z;BIpbY#O;8W|8!f|mxtBUpBzfKH*PN&oF_tU!;();?prZ^DZgDGKRpRjC; z{1u&nz;H#L`@z#?GYHwhHfLaGnBCro-|t!9D6?5c{j3ijgD?kjz{2DioUkWGFmcU- z1c87A#tIdpV$C)#HWwLojVyO*pzG5;I=@V3I=Gy>PDW@LTx(7ZmciuOh?g2NK?njK8kRvsh*gOpfK-eq1PTBZ6q(UR>EwwPzqvz1P>hHiE1x)% z>Oj)SOGKK3CxzL$(S2|)FnSl?@SaeKJ1}7Kq#WjAV zunJ*36x*-8?J|-AC^BH5XZd%1$9HA_^gj&% zU;fhbKk_3#^6;PivoIJ~2qMY{&1K`fGgq!(8{WQAjjQqA z&S;!>LbF@#+>vGo``VXY{mSRBz5KO1d)rmhG-dwnNJswB5vK6$ISzRZ6s75wy+UW+ z=A)sr7K|~V^(byBMMRTjAdRhSE1~H1Kls5X&Ye}GJ#vawYS}BzkCYp&iGlRLJ=ye5YwHXy-t^56cw`(R_?7h#m z2LAT4+ISNl%2OZhpPjZ~k3Sx)Rarja8UCMN`?at9y}ySW+aFwCXIJ@ZV&ZB!7{D1o znX(!;1{^U=7 zIOKnS_kY`Z_IV#_T~glbaQLIHp|Q_3Jml!lRF>wY5j4J<-Mn1irPQVSSyFI0%czS{von zVH5$uK%9M*WvMk15+Wy|%3FZ9-vj!7|CIZFH)a+RL?FW13su)-u5qrZ)D#&3N?F3W zF2KqYE9>Ry&Ar#Ik8j+z!_f$|%FA+hce5GF_8qvh3YXU5(i*JyH7TJ)-p+YGr0+*4 zcZaIOyNOg>2nbK=1Sx~ueMTZxBgE;wF=1v9PWm)2e%>YmApzs^t1PaUi3AKF=@=OZ zF>S3yP={8e(3%BDERx9W@rf$D1#6Cze3OssqyH!Z5s5hdK?L+*uFc23+dVCJ6BcGG z3%@R%Ux;L5GA#ntq?ta;%sz{u@OO50Hn(n`Z`Rh=yHicpwBwt4Jx?`dP1BfMJLe{o zNzLOt&q+in?Oc;~rZbP~deSMO*XxyKX~=2cXe~ZOsUV7V3z{w#jBh7lyDF;jW>1DIFq)zqKa-Rn|8)Y?3 zgezgt8k7R>VKf3PK^Ovq_<+d7N*y@lCQ6P|h9SW_%&YJ1#+$eJXd|s*i#bOEKLdwk z;>>WfzF`}jR5PQ1VFkkpOe&}>kOt4QmtzQw!sJu1J&t!)$*Y49k)poXvcp3hG!F=A zNu49&r_WMgFU;{Gph#(@t?_A>k1Eogg@{Z>rJ*9zxu#yPn6b}_%3Nicjt0#-Q?kVS zhC~pRctBPXFlwBIYmH3A8X15|ya2ZnW8s(zv{1483n4w5;YfXaSn-&_h4`}+5DCNF z9S|s8CJOz%EiXa{6p@bGJmL8UBpxR??_#OpoIuivKyi1_)T1Y5p#^RaL=f-dUYXNB z<(^xJlvXkSl>$+1fLTUq72Ofo^71SoGb{vUIHY}(7M1Z3%zV!dVt049s(gUZQp`!q zoan;Vu6Ld#G{(%@G-FbhrrW0ambR`oO_LbL<6&T11?xih)E=ibusqKr$3m@-@PjI# zvkdA6oU>{Qq$Fte9$0w*EDBwAvd-Yl;7n({X4&T39TP%mYRF3h z&ncwkT{0O+R`0=k2&wWv*hJ%qsUM9-K>~pxAdGYt8Y44c5-%ejl-k0=`vTGh2&9$H z@|pFDPD3SW9tJ!_2<9#^>6&pzxl7j2Oov9 zoS-7DqmZ03&;$TK{fny?KKP+KH>SjmfA~>|N@pz^Jb(igod(4aLVy=bvm9PE! z|5+;aP)}1c1OQZIy*GKD0@TX94XXJ0?Nq7iw;2%N=sbN3cfl`)wYeWWgVsjqOk=Aq zzG}1!<$5Sqmz1&W_iIsu<<9UT7fl`RXsz8hb~ayrMRoK!8sz7Dk6bJV#pKphG1Z7J zR))9tukY@o#X|QKq46YD$B)OGuR0Br?z#peHCX3vm*vIGbcPCY<;0!osiJEUw$8xv zYcjZc`h&rooh&`7E`7cC{FnU;&+QD|q}qj*;sY5e(l2GG>LJX0@!{JGhc2{6F#s~n zQkNR^y7o%vD(kqw9z>Aqy4HHwUxuKT0>Sb{c;t!l>_fv&M|k31`11DEuddvTX%5x#%c5{nFI+8Wj%H~vSXL_ zE?-zO#x(mnQ(3S z?V)qr3m^XQKlLB}C-BLSg9F8lk|x`{@$%pKjs3s)S06&8jBLFPgub8}gD7M`<)I(o zKtDwRgkGnuP$>6Q=?XqzJHv+pU|i@W0tV;+0t-)OWn?sYcEgoML@w><0js^Q-MRB$ z|6ea`!zcdPKg|!HgPczP^iO}!+L^!eKm5hl{@@D_sbyzfqhHOktT)oZYtDN$gdw?^ zFvN{bfHZ}uRS_VczTy{k1|bgyKn;zKnuWsKs?xCZ;fvi&vv`I8sEWE{aOg6ab7Te( z-*#*5A6UXszTKl!q@z?GRIh#4jowaM;g%R8cn}cboNsk1W1hP+FJy;R0U&6I26Ficf4F<58a1@{EcwYTZFBYQxvm;h>wPap{a9!%nv;RV3OvS?jNj+bLi=|XPnZd6$3 zECq0fVSwBP8K86l74TqJUrvhY)&)`$5kr)0BoX!eGpwL{IB;wQ_OzhRo^L%Yg*n=u zkJ@3D_)cDIp98Grnk7Pm2ZubE#H4 z+uwK*COh?La9XS0a7?|TL@}Wm2fnl1tuLN(g?yt_6J6FA8pEW}C=UjhD;pwD2f}E; zBd`~xfLRzk8W2?=7#F;=v?FIHb$>jrZtpZVHpX{$?YJr|$9m`-xFJBG9Qp<1Ipi7t zz`*tgc5MxMePawE1*K3aRW~&pR`TFxF96gU(8=NBJG(Zj>C3WL!+5l3MifPK;>&B(*i8v`6i{ zP|VeM9MYL%(*FjrWid#&9VsQEP|ZD!ly&TpA_*ZSH+g-}1tc$=3f@9Osu;k5?>UWk0t@rj^d@1MFZT2y z9PTkPOo@jB=KbJw`xiwX=H5v-zo9H$qvHQl-<73CG8_%744ByN1%!KW4S4Tf8Drml zS0yBTJ^n&ldw4?o`FjS$Bh9~R8I`nCxV=agM^i^Va*CPTrHOUU6l5)Dk@W8&BIEe$ zAMu;FMUB)Fpz7EVOxV+?1u0ejq9_n?GMThob7GKNYPhv&O|~0}H(Vf&B_gePBs*yg zJ@A6Y#+H$RlNeRNgJM`UXQnS48NAAQLHpyq>&M4PGC)-w1Lbu5@AN?&v_MZ9a*MOzwPj{A8f zS~nd*6H@_z__5|-Y(p71CjbgEn0O(gg*b#BG7%Z>c@arFB{Km;ClHX3Ir4Kz@#4_7 zs}yGGjlyWHm$rflnpW(sV0U)Ap#BTxD znUAeYnj2;e0J-fVV1whR1*9y~WRO*G7|T~uy-(X5fJJ~c1l-x(QA#EGGeo3yxOO#e zVR<+))NTC9qA1d3sUo#uEt4KGEvFrOhQ{eB3zdh_a*^k?t%Hcxx?vAlb=YDkp&^5= zB?D041X=ecb)nlt+k`!Y!)optvc8&JKeb4LofC(BLL7L zQw)l(#R}5#kU1bkqfil0#D)`7i(UzyELN4?PqhjH{+ob~Amrw58$0AO5hlj~HWIa7rmn1PPY0pb&%*z_~B} z?(hEAZ~aye5AY80PW@J4QP{%FT4yHDkPv7Jtw4G2lU=T4S>U3+D3Ptr=eCTyePa)e@5nFiq$ zJ;Av!UBDj>%R$*qrJ%EnBupx>mJdVgs#c$(wdTg%ym|BX?c3`guv1M_x^rtfH1V!1 ziKhToM&-tM6b~+hZ@UPSd7fKqJA=-!8P!!42^pF10Kl;LG=ZF90e{Q-X%m7^Z(1-rqpZjya zO~3q&&-_7_%ivtMX&NHR%5owI0!dH+@8cbhH?$z?WqBE%c;bR&!M)&K+Zj7!RJROD z0j4lFMu{{{v+Ei}Bw90Bwz~^2zWAb`Pd${ib~xl)w{DF_KCzrc(8hM3cb`OjyX4R5 z{M(&+q2!CJ#KaznYiw7Q-x->z?M!K=4+ck78Ck39k8;DW2`S8v{d(1TNb zIDN{jEtkDq8Dl5}VV`AD^%)=upu!=CqYW^Fz$}G>cv%NZu{WUb{nqXI6Os5|Oqo$Q zg$fEGv^mWnhXiz@)o?-IH%rAITb!WR5s`_3IY^r@hj_@xXdrn2_8EY|Ei7^*2!wkF zO$~CKfQ~;(5&Wk#j4vc#bSN zLTmC*DpHv$nF%Na?E=@;cr>xq1YX?S8`i~WRBw-9ZvqofEF~xd9Ke`tX{lGzpiiqy z`O3lQlB{S)u^p^I1GePb%z z{ma4)W1G%z=|EH% z$zrWarNkIhW~wZxG%7QaDOg!5G_g^>Fk}p73YF0Y`7GW{baT|b3L;9H+OTV%JB~zo zdf*9<`R7F3w_SXoR^t5)VQ(MOz+gBWrdFaQmq8+6mZSw69l;T46J%9YiCZM1PAAWEL_FG#UkFA(0v$9>>Ei-N6YztjtT4Bb zxwsHTboX!tajp+KUZq=5`>u3Mpzc|3?PwGa7C*XCi)Y$_-*M8rwfh%{soWLCA$gO} zw`S>g$zem5%Efy>8bK4$;6%mzJX5^ zNN8hA?Ck71=P0hH0Ea2wr;8pO2m)^l-i@72Z!E@`afd}j4f3kP)f9bF5?Q7Ii z8i@eYXlY>_hjYuX?-BPCbOH<_DG;+HL4;_79aJ5K##!Y@L@LXQvp^L-;m@32MMGv8 zT{bkTfTCNLgL2t~S9kkMD_0)w@7~$pzP&TrAC0Zuv!k`Mu=MEo^dpW+voxNtFBNv0 z#(M9q)GW?{6%l7w>$-H4(puZ>+bjd-2`M~t5m%P<`O6Pqe|hr@|6nrQ+11Q01fuS@ zCGnJ2RvZ%$Fe^aT0E&e~#It2>9aUbz`f0fE7+v{pynNYy_~CJh&GxO=7^+i)j#?2Y z&7H)`fF}&Qd?8{I)A6qYS9?3VCBd z8z~D_DpbK%&JT5FySWbadhAiWfG5}i3`aUaQ6iK?6+s1%3g8{)*b0z^L>7>0Bhkn2 z?@;FD8Jk3%4;_s`w#vd z_{b#~K>p*O_|T=^OMjvF%5VMtBd<(WSJyTMSXEUiT!LDyMJazf*Ps=}d|r+rshNC0 zs0jrXL?8;V}(Hbfy=kr^3FnqInX zHYWMb);S+WlX}w0_WP?t=w5Afljd_GDi)p*4|nZjNKYX)ByewU2$)xm@i7h7f(HD) z&fN4Sf@;Pm8j)l^a7~09(a{L^Ql{UBYpSs0g9o-*wzJ-uoa)QDm3nU^n^(fkO}KUo zwnxweuytOIJEKkh-K@&HYVB6%!t%_8;M~Bh_Hn7;Fxk&_Amy0Zvx|CPWB^x3O{5Tk zB2eHpMIo@3!zT*^f(Hx---ra|rj{%Gb3967z&!;++{iKy#?o zG>Dohs<=U;(!G#K=ewifW4c-iDv*P}BC4ps!egIKN2$<4VdR2$U)M%N&tLz02kL_eF>Ix7))O!6-6<@ej?xb5b=G-X;}pkh#{siK?NWwH=@oC0;Inx zKs+dLut#Mi>5OU(zUAOg1n4>S=J9Ta1~us_N{`La`i5XziwxQLm@Gau!hFwua8fK% z%qrIWq{4>Tu||M{V}QJ#v_lF;YW3Gd5YGfeoTsH~=VEMz*%{AK{z@duXx(w4Y-+T% zuB@`Psp_VlsOuwfR%+W=YhB>lyV^R-K8Sdf10{GOc2iFD`6!H|BtQMxampWL5)s`# zd7`sP7lXj;KPO;GEFh3TUO*m|%iRLX&g_+CkSRD_fJRUTa+>|M(4Z7*5*_u6Mv);! zbP&o<1css0GI2?}%Hmt%UIZke-9&-@SQx#OfhUdkPU?Sf{=A6Xt3Q(W3~%rj@+1$I zKa3#B5F?e8C}pg*o10rrI%7A!XpHT7CJqydQy6^hR{O2O&b3GS<03IH<{XU^; z^DdKp02m{PxL^#beAM)|_x3Y>9B~L?55RAM)0+K&m2L{#E37n_AtGZS4TgxbLe~|? z1<{cDQ%stBNd=ms4kF@wNWeBUWgC2wnHTut1^_Ml}5db-$w#j?m-rj8*XLP5jDvVmU_X+5?S_SiM)&V5L8bb2kC)a#H z-FWpozw`syn$e&OXQ0j-o`?^IIhej8HI_d;4Qx3-z0 zy9B2%Ej|6wC!YT9i-RY2%d+hC*I{RWw(8E~!6{uLa$Vq#l+g<&>pZ(dV|J0vKyD_cvd7j_-{4;;=mw$QsxGfuVFi<0Wmre%VF8>ahOw*UN}fBK*QsSkYedqCu&C!YAlU;M@YZ=zoP+yDF257g!zV+_~^0AjVb zkn1r0B&CAD`D$lf$aqSKEmhwAHT&o zK0TNZz#>QIQR2l9-2S9y-&*UvPpYW0*B`9n@;WZ9`x~2fb62*9IGQL9UI3a=bz@i! zZ^6wHHkRPbDy($i)RGx=b*G!$PBkKWln{c}I0G0F0!9!bAw-mrDBpL=HjXxfL5?>a z?YVfIQWg;8ROmP#A|K<0ClDDT3zU!xa!&#p1@28iV|Xx;V+h9-QYTR=bEH5zKbPYC zgM-+b%%H^MyTYX7-1CKq)cybxP{h$uH+b)tmX<#BA$@jzI52sqlNkd+YVQH9RhgOw z9WlMr6AjKvu$U{Io2)chHxHeTCH4q}j6|X^xeov{6dhnXU{ynaN$rM}o7C0z9*is4 z-GkkI*dIYN0q2RQ=qpGfcLimsRtEV>zwGC@KFHSk>de3_m6C;t^7|xi3QwA+5SvEP zNJ#W%p1UM_1et#fqg+w$YDwNj`!d^D3rEU*gm$Nva}7oYo(>@qWmystDq-dT*f^;z zTdv2Gy0$QxKs|xV&eHMpU<|v0!6*731R)>?x%R5D>%1q3RXm&Hl6>=tnP7ZlNd7+F^hTwEDQGkN17yw0y2VjbVNIEP> z?*sEe{S-AHUXPD>8oy|XvtVt!VD&2t3eN{)RPVoh^{%LL?@T0Bdz*hm#4Ju= z0Yo+}WsGyZ3=yT_aZr5HIv+VCpd0c5g5YtUH`V78``Hr|)Bc|4?^g{MF9_j2 zm4ESoxm^;wJA4k$Qo{B)!3QuV5mS&NZ3qY=>@+(bdP?mlN7{De0`!f<)6a*4hxk%=3QV^N(%o!+w$o8WGQ*Ki}*1oO8#YbezNMXJ*22 zX6dA$mk>B+xYAlzwt4l{SFc{Z`Ph|*1Hfc5q1X$wHv8>hWA0lm*qtvrp3kNdA+$89 z5APGu_k-Z<#ql+d01`x$NE)Q0ygNoAZ*9&f1_MSp2pL!kjaWkJ11=fWt6=Nbe)A8m zZ}$JW(drLN zr8+s73^ODjBQ6slZ*RY}zkhQ&g;+j!4zjX;c6s?`b?1)VvAyM~`NmQWj)ph#{aZb| zYwF=xY0=vIvpRdY%GSOa41{v4cgk=x%CZbN_fCs|!VZBV-jkyljF5IgYD$ML&<@br^U%ldkq^)G<6v-Vt9c3C4XbMFk8 z6@pqu!|~+np|+>i*M8(ro_pn$?#|9_SD(W&DB=)?43JJq{& zv)RzyfT?=V7c|3KXG<# z^^E6m?do;?Otbk)vwLgo0u0pYt~x6gxMtQKFdzm64S)v$WCF?KOQ%LM=rLf!x&Z*? zmf@WQ&D0(z?Ovec&WuN{@mb-3#$4w6yMCX`r$7DAJoV@PJs6ar!8s`jn&-d#xj+9G zw*LNaKh?`bLo-i3BMJb^JaIrVl{cup{MOSyl`Ro57c1;g8l`KKc|xb`_{MMlKVkRg z`kx)Ieb@KE+NtixKm62x{I71G?mz#Vzt!E_{>aKQxeaE=eKi)Rr2x)Jhy?1)8TMK# z6&0OGm@ouo9=P3XPEu<{fg2t-MX~$HIt(;Cx=x?_BJYl1T$RD+l&yG_p!OOOz$K{B=lcSD zdjiY=S&x+&jdU|6?{~nvPS-xZ4p#=XMslF|UC# zf8;D}?%Iv5W@CqkBe=B%mS?Xjz$mC&&d?qyrOvD^onAKUgM6)kl~Sf@w@?{bX@&wd ziw`{UXbv5A!87M-}Bk;6V@+o={M7jCzgqcKsl(%ATSDJR5u?6 zieHeUN=y?%n-7ekRhKic#6KZu0cxypP&2DE+&w6KY#ryRtz-e_dw*VRo!UhU(aD9A zL{eECo&gW~sFgVSKEBngE!MaAc1lt^f}>p{42VAcn*@;VJ%a-TkAOfbS4^5UB4t9_ zF}t`3ag)#6O3%WMSGut{n$UP0#*GX|w)VER)&Vm`kI&Em31*o{yXim?QTm4N?uC{k zqSmnzUP}>S02>p^qorM9MhywvW(ta|zdE=DSKSp-REs)MB6t(Sy}kkP zZbjtL@f(YYif{7{Y=S=yoE(4eLGOczDptQ#Myyp9d^H+Ql0UX>ym+gWNzR8!R+YHs zM4}mEBph`YNG2?PX!0$PD$;EbRsF`%j| zu}%@09uJN8xu)Rq%J*Yy$pM8`Kk|oFkcN_t29-eIiSMa^CPnwmUX3(g{}%~Lp!ZV+uUrxkq8HMMX);919!szk!TO!@6Z@)WqL~wgDid*2(Ph>>r*LWU09%Ni(@Ne}FV%j##qTzyhcc zoXEEuUGz4fE#UXSto2QxjR32)22H7v4IGRy!OQc{KY!=1{k0#3@WCJb0qzu(Vmc6| zH75p%l1zfQ42{lTefHVk{?%W7;p<;tDNFBtIZfSMCc}GQ1dWLE4ad=AY4S(Xil z!>dwIFZo#iT#*0XE!Y?hKj#c<#at(16=r7G9gA07;*t7=y__e5l>)-+!BZo9o( zm1+h#rBLSekheoupIHWNz&X@fdq?T}#I84!V7v{?Oe9H@Wi2@85HNMm0UW%Km}C2U zd!~yY{rIIn@#9ZD`O)=qb(pMAK?F2+mX@xlE6kkd#!n`?LpwV=FTMO?wLgC3;SXJS z@{=DdFFgC~v(|2l5E7-DpBB>N;ujqCYFbY>?2PvLI_nT zi405Lk7hnBds*QIgF#;QvOx)+fyH}ojCt(hl}8?aLJ%%pymRU7&8yFCef9GhrjQqehT^}@WG$#{{G+i8-L@)-~auG z27{*Bo38gX;lZ@MZTE4k1%N*mq;@0u^D;98&Jc|;<4Lu&yfSUiZ~v9Q@?)qz^dmoN zdi}?rc;ezO{KDso@(=#juTK5K&h;qEvZ|`GJgeY+yc2LUrlVQdyd& z*(aT36zzP!orgS#6Y9xQXaM*YNTEe!kt{fw@_wL+v{EX~a$6e#W~gfb1*9?0a+CME zOU0?v>g;f|KcwkP7t*gFSGO%K5< z@B*!T%oweUE=tij28dc$04vUW&jQwl%1`PFY74=^*XynE5O(%pG6HMC)-bN2sQ@WM zL?%hY-J;Zar^pL+%7oQrJvBgIUD8D%nXZkhN@@riv5gPF35G+IOY~^fYebda!#aeiI^1@^kHR%-u2J6vUsvMFkZE(O0n!o^103uK* z-XD3>VyYx}Gf*6TYMI-b7?4nbF-9wsDbb2Ggnq{qn#zI(-J;vgr|A^A#wD^y48TaN zFaQK3M-WJPB?!m@9_N?G=0d1pLfdGG#6<9bEmDZsu)pWXO{um zd6({`dnY69ZxEJrzzo(}NNq>}8?4rv)oe7IYQ;RGnh5B+uII_bmT*i5>9Tq4^MZxN z@rF7vc9^~d9GL$kyN@a& z6LgH`av>~Sv*0PbcwXdzbRG-KHSP6Ekt{k)r``wk3@nniJ3yAv>MB3-$dygFYDduR zfUDHrBtTV7CX<45nrnMoZyjR{f^vY#|0w|hQz^7RFhnFbaPR#>?zL+Y3kv8q4&ezb zJPrnfm6a7loaeZY-X6gb55_*9j10#!2oW_+bM4x-t*y@4^SUfc3M9zshHa12 z?qz|PF38pAD??RP>E_N^AVPun3F!MHX`c~6;tNh5!BTw5Th~Os!> zjY1A0;4%r`DaPfcUbVgV+CTdJube&o&{U;qwiG6G_NvAC|uHlP3I z@BL4I^Y-8UogWx1b^GNtyD4Z8RwAiA*8s%_1(DnKNw7`dFPZ6E?~o~0mrB)NLrJh8F$L6)aJFT`;;|B-qm>){Hf*6m8lWO z#tuR4nl0Vz4GnlOtn_{mJ-(A8tuLLvWBMJbowr8ou~=qT5cHdg8jos)xU$vaI1fX^V+h+_KQ_+xK~&Sck+Jcyvjy`D6|KNK21e9aB!p=CZ%Xx zo-z*?X6bx)e{5s??s0E09-Q6*2Cl854$5*<7dLKhUB5mYtia<>7J1J}*bn4L6L#0I zyQe$bY+f_HaK7u#UCti+VD|76r=Ndj_ZwdxZCs6m^h|KGGpQ-UtgR$dW)`>8j279&=0Tv$N#o_^l`J}pktb5G92F? z|7ZV8^IQMVIt8ayuUxSXMIDWZ!u;d`X;BsV4%0p-jJt>!2G*+(0wEjP>;g{F@9pgl z&yTV9+>ICio4?w7dHeFu{YhBu zA>#~ms3n&}bv8phdZ5R90Hff=3OI!5Wso@nApu|r0jo_7n>`I{C0xp&>A}a>^WA;C zv0Go?hMPm!s$sW=#t~3931PA;w|7M%Sn(3dXS$ zi%fJ<3P=OulmH9JeBcd^B(G><0nzH1`J>Gy_s_hA5)zeEqVeB(Oz$Fe5T(t-M%Twj z>@8%m>6Ogghu~g7qaxA#hWRCt`&fvG$o!9Yi*LUVoo!%z&zg<2P#Z$YqZBGLSSVNIRj06>68ZyJS+aw*Nxy_kD$hua z87d7(4kV-wq^iMV)COy?qylKq!pw!Q7nds#h)ymSP%%w?Q)*|pCGG`*R2CdZfi|4N zF31jIs--DcHHv_!!#oUg`N{EEAF%+bSOgHg0y-2-I}`%6sW%IGbJrL^(p?mZ22m)K zo{M&<((_vjb05Kl_?jR{tr1OSGDOWl!dYNyY-WRYq1@OQPZ~9xgmEQR4NVPI?Pkcs zG^wp+W+I&e4}uodpos#AQY6UC2&|?M6Q7slpUV~lPeBY?&_vpMmVy`}P-K8s@=>lJ zFQH#Tw`Y2ttjsCbq2J3iT1DQ_j?!XK6cHj@S!`mE0VIAERv;{FBpeDg09-$&kSIAm zdY4jd>NTxvUq`gGsi0(l=xc)#spWb`&_47437!_tNXzfvyWl7!Qn>ww zisETHYVp$F5n`$bMwgk&5wTDWxk)DrD**rgpS*tS4on(QIgEGA3*QL8{|)%^ojY~k zG~0+J-UIh8&lwgD$wMf`DF9*US}lT+(-To2Jo z{bmt>yWJ4NJ*5&dhX)eKiU_uCC#L?h-IRkU8c`9UXCWX`ibM9w^(%k)dHfR>CPiP> zyOUCPWO61_QrD9LIuLk&7N#(_W@%6$Dt%%QCW;jlRbaZau|FPp?*#a8^AEgFK)=_6 z1isB^gYbZJj-^)70%D3HFK^x4tZi6dKexWVUiNx5fCmpkfJjPZN(G?Qv=}nN{^re_ z)6n@C!fdGo!|J8g8ymOtV)@(C^lH9&n&qmBy$H{|c${m+`usw#v~YOU1K zvMmt-!<4zcc6Fo3K&fo7(qrbbEIXZ2YgB?sGKuQji-0}}bzOh*lTZBkpZvs=A3jBD zFA8-OIG(OZF8|>x1UT;=Rc`oBHJziT|>vh9aNDI;7E6?+d;ZC(&bwWUe2j)|; zKr)kAYn9e%HNGrN@6@SYpPZka$+8LL4tT>>6#|mhl=s=o{{HaB4PcDXFtW^z_Cr=)vu?MW z@vO4F`rLD09}j<|q)+}cKPMn(R?l4d*`Iy9lHdP3zh3Wdce^P!6uggjFy3H)suVDT z7mtXug9d0Oh=frCr%o;9gY(^i$8YSvdS|vLJAeyfXSyNprqBuyQ!9WC*~kMcpqYgTGKB$kK;WdZ zN+RVckim0^aw&?c^DOJkG|}sL)|YoC^y;>~c4xG)%i|`vnHt(MbJMsmhA}iF1^c_> zEQguPK_B|du(||GtI+R2(V5d{;@o$XcAxBm(~Eq|hC_$P@-6UP3*p}D1w?Pv@4ELf z;{C2)R4(J<@(C^!5a2QI+H^|jC~rf<2fx~jQti!20U_d%N{$ZJ&YcV6F<3jU-FSZl zlLq$2u(b=50JVe4L*r*B#}xz*qD(^$bfHv1nF6m3Ql?d*&H43yzvow$U}?bJp6!-R z)`dccrHV0FW-sD71OW*aLVzrfb&hApv-5lWM!z(l;xNk%(NJCMl(qbVv#Eri@`ZJ7=*(t6+!_aL_$2M zpA|RI0#9g9=BQ!sB{9*jAG8e--_j0cQR)0X;qdmM6_X0c;XhlkDhL95@WFEsV+<<5 zyV3eP`-p`CN`LCif>)^|iA_~8DPHfp_(=erj_GISkt+`^Eq5P&VtI9SwQ-@o9R#D%X{`&50*=TN!IUaF zb1q}#CV&c$fBa)Br@nBl`3GNpW_!%UM6F67J<-U_6dOGQTn7^7HV+fyoE9NOq%Gy+ z`Mi+BE&IIC{v5BFWmy_y(rpvdz0i-Gz&^kE;5yE^n6HY6Qe8DhGs~1d`s!C-`Myt| z?R5vvxj|v-F&kq9u^kaE*!>~iBNiSr@9gZ1Mx(&ecCU!<6VUeq5{2jh)L3f>e1J@m z7e>UzYJo9*1M@w34|z~F63U|FQQaXT*0#3PFNXsAZgR_b?smTWPyfV^{MkPZ=T|w& z4ayjcoIN7uu66wZ$@IfN@ZCS~@BWLQ`OClj$~RwLH+jA>Sy9U)(jf#8AS57Q5sdpI z*!d&1%X?_C!8_2}XhYt61}{jYP1Y}f7&riW>o?18cyy_A?tC}vPD(fC(HM}N6I7V3 z6@eWQ*P(XM1Y`$XS#E*|f^c5CUZ;r7Js6b6j%a(sH^GV;)-^Yh=Vn>B3r$%xr4E`i z8+pl|gbe&-e+Q}z5CyDTUhQjRElY--I(VZB7BAkn0UW*^f@X+#oPj_zbDpMisQ3dP zUH|x})>hBo9@-laYU7HsIBzZ4>-*!){ibr<_`Cqs16iJwm(Sz!z;x?V%j+W2&jXm( zmSMvThFfZI?Z)oNyVZ3qNYNpoAk4hUvSOK`_TKA)z!(S}CN@hqY+YM`jB+2A1NJhl zgMfk^>iY{%Lbd|klF$^~Xr%R~cu6VM498`!bX71x1C+44x4-e)csyR}pF985#ia}7 zsSoWff9Y|wDGdgN4FH7W zJ6)*FDxLC*5A{m#iZ=hAp+(-Bdmdvv=Lae*eql>^N&${5P~t+SDx%`7Rty>;2S7_; zp+gMgy@B3)@-kdHo!{KZzVTf4wO59`G;BP0_mI}-l@BZxnOk5grOOeIuHSZwcf(j; zURzr3o$nifX0ITK3)m1EK*btz0U@n<3P2GTP?A?F5l}cP9Z4mgtXc_MmrsECD8Bd4 zdIA>46hjW`&l?w}MXpws}O2NbwC7=_8K(6&xNU_<8$uNM` zD4+o9?vV7j57^K3nan>~Vs$Fi&fM6TYz^V&4s4BJ-$TVX4tkdZut1GaDcH(NmG_HI zzbyJjFZHuQ9+n2Y(#1~4b_#DY*4kUYr)D56$YQ|VVJ6$k;u0fVpuPzXkVk0?3hL-jQjO$mpPxepHP7Ush#b$D;pzX0FU0es-~>#!IM zvM|YHa1Yk7D1A?N*LKtH!hBVe5CKujfTQXbf<&>Aq=r=FAcvVO5eOai1PXx&Ld&)= zAVM3&f0Pfr5FiU>pb0^H*6fRMjo#(f8t%Rsd26R9c5Wx!p5TT#|24Ybl#KNK048np@Mx@&?kzRL4&f;H%asJ(@7kg9V5PC<=h2P$J-^oPY z>zi*NkoTTMX`Kbnbp^)c0HY96t^*;7*vVv+OEE=~Gat3a5et?GTI)O_wI>VBcrw$- zvMiC&ty}cUxMnNhH&#HM68O|p@aa$Sxo)%8zm=OwUe<+*!><+%U&U7HHiCW6-EUTc+FBoP+il*dSONFjznT zo%M&$`Tz8neAUuOY~2%4suOeSrGOba1$V*5!T5NUl) zqyeH>j*K)9-@5i4&wtT=*C#{X-K(k%qx-oc7rLaJqM#7OJrp~-tIQlY5DL#yQd)@* zHuz4S1tF6ScJ{XsRIGiP@O=x8H>~hYcDj)8{!-)|ilV6NS}`k=5h`Ph7YTtahi1QVk1qC9S(A|{?-bcyg-ITG?f`X9PqRM^Z&a2(uu` z4uEEwI}0BFB_2m!urAR!% zR>w}r1dqu^kd!l1keVXTmOGseLX{S2>$=vu$V^UvX`NPQ*)(e9sWr~@66r!bCmJ_3 zZX%olBan0TX!P~3e|y&&#YfK_mQW@UtQjR@wr!Dd+o+}RFzr3 z$crXI>8O_{WX9-N8c5Tu2X*`KmSNFn3IXLUA^~UYYSW<5Vb~(E)()%DU}^o+pZ@gu zkAEDL3X?_^ISc>ZXMb<>|Ng(%uV2>@ae)$2?zI)*J*HksaaS5Yt1Z)~9uZ%A?X_R~ zwO_kn>mT{0U%)3Xt}L(o?9cw}!~68Ln}2oZ_G>GH(quXW8|}q&5OU3|uHI*XVXpO4 zN@bY}&Ms`Je%EK^A2$$jA$?=6(5*uGu%Kv`8U;PwJEzwacl+ympMUwK0O0N6FkLuA zRw#&P=85O)*KMZEQFgUMfX+Z&lA=G z@SX&8`s?ung$`g|fexhN0}_%?;8DI2;S`#<6>8vI`oSRs-Zgx%MZ*iayf_LB}1<2~K!V{s6$g=vP0N?|Oxu|~$IrS&|8B!GI$1`Z-8mIV>XAyOSih0cj{jzGuJ5d?oU z8h6eiViKt(c4_g>CoeI!lb*T1FP087F9@QYBJbG6@An?wAp5-7oXULT&~pAqVBw}|QWy-aV>=Mh zE?K2xipU~b#(6>h*>Z@9`j}V#y2j_x^!X!C!O#8N;~#tcd^hY@dqYh|nL74{MuG-X z!UiMM6yVy*igTQ%h;VG{Jb^Gf=N3A_*UzO8()A?qM)OPWBGN9_&M)&lP#v};Z?GuS z0jjp$!-K5G5c{0NUZ6h;W#Jf(XRim^4J7%lI1`Ry@kf?jw&}_~=J(f9daU z`4Doghm$5RW&(CsTSL^2kW;Bi2=TT8b9jB>b4nlZ0iUreOG`_}nA8iTFoyHRw;-l| zTVafu@(*AC`i-YQd~vDUVLvHV>FNd)NCF%jq^>Y!7oi9XAVkHwYIj#hhJZkTnelxK zjyD1ZK}AJTWLXC9;}}ZsHM8#IyUuaoqU<=9rU`e@J^d3u`qaPj3-Hv3Eli<$)|(7m za3;$}02XX+R2PUE1cS(snNGM|uK)8tb*>1{{qiq=^P5*MWSwrVnPtqukTPWlTu5O? z59;rGj)qofK!AgYcm`r1Fz6uwdQb>pO-IgMUJbS{v_0D1u`e!g@Z8BQZ11Q zn5`|58f7%{C^{2X0Z;=p1?@wYLC72jWk%bbz3SSd+pHRbeh*g9)N7C2$d^Z;G=+?O z3D9dM4ZvRBaf4HJ*;kBAmN6vNJ`elUBZ33Q82z-4hkc(3i1TeqY4^oT0yMhK7) zv`m2v;zV}xqRjd?&^gkxKz3WV^Qx+PcOZ=^f-A|Ku7j($taBX=pu08XV`la?SFmE} zgT|PZ<;GfqiO;p_c4n6zIZzBa3M+}+y`wC?TNTX_lrRj913dXw87j6bLIWGsaYxWmJKoE>yH@jm2pu^ zn*~q;Xhj5X&}$+|U1P(LW2;tCE05=Kuct+yB#Fc;U5Y`b3wq zQq}g=TtlXN&WLEyl^o51=z#*%p#1U29aqpCxS5OAL7AXCRwbj#N=Z|&)#7yJyEfa} z-??!s{OaiX$esTeezyGBQJ~h|+nJhp{J`bqIwr4t*mG`I)I=EohSu-_(V!F@G&3t2 zp5X6{3kufs7$T?#@Q!?QBZ@^|_e8+OJQO;#fKDfmh_Lnyw1nfm8iHL@M&V~r0-Aju z0EJ`SZ(A^S3Rqi40MR0O06-2P4S^V}^2p$`V82UeOVyk+e}P zOh%!u!CP<+tjmGQ(S)uKX$sUqDba?AWNBc_Om$|+%8u?7I?E+jsEjwrO8Z=cR!m9= z3BaGpn#GbrPFkwA2xLxuFCIbCNnuPATqFYK5U&V;GG9Vp>5@ScMRLM7%%~5NMSoYqLLv zBkjVTI~_teq9>T*KZylFRHQ1swaz>6!8$7wtAf|w#jyUt&Jgyku=C)-aZqsJnX3R@ zGRaOGDgZenC`;&-(#auLP#Es!TxPCYRQ=9guXn3ks%4W?svg9s91$o3h+z3}9fTn; z1UaB+gK9(70SZabfC@xoIxP$sV3v9kzW?I2P^@em%Z(0hObUTmL;@tvTSOFU01ixm znpEZ)e28?2KIMYl9q;x#S=K3hH3sxPNT%E88sLZ;(1`6>AV2^Qhx%xN!v%wOWFoKz zg|M_f&WUsZfCjBhp-Cx)X$M%utKlK`#&fVu7}ah#nWeR(&7Hl<;-u!{q=NC2a+f4}Lz0bojJ1L(yCb?v=RI_N|Qazv|fPVokl@ALdRRy+Sq9>GcGvar5rduJQF zjf_s}N1yT^{9q{57u8-pC^UFZM)BYq@D4x$`wKvjVy?0RU|{j0oM2!SRz8W1kYdUr zV%wHK;=UytI4xl^2p|fAIvfqA*O5Rc-I$2sL14nk>qfY^cQg{vN9(nU08xlEB5F+u zk&DM8?|$4DfsBEVWc0*`TS?otk@My8X!qG?PkqP7*FW;fjgXI(`XZJb>H#8x*;8?u zSvWJ$N5qE5Mv(<_!FmP_$bvqIqRcss*aKn+7<>2k3FtT65U19M(?EjXHBIxk0CipG zd7fo@JRU0oW6W@Ge=>1TeEg}O`?;ShAAcN}L#*j#mI<@gx()fNVnYhvL#CNUX>5Yc zb^e1t@e|8U^Sgij{}{jWS|(Cvx#uv2$xU#{O%8 zF#Bd60waWZ_BokkA>w=0f@7}KWd3-n5B$Didesm6eyA}BWZSm-?Kq*(lQT~E!GUc0uvyY-^A z{@hA-YQ10d6e4!|eP$N0=P$0Aa$9N92D^D#=3Vc6-ArrH$ZMI|0=gn@_A!VEGjEUO z%a<=(YkNzlRh~mt&AwRNjW)P)WyzG6FFpR)L%U!2+_jgV-`lZu2tjKdA_OE&YSQ3< z8QwwyIvw1tfR;CXLxH<&)>Dnmvdk*l-`?r148H3JzVC;A;wSLTnWPN>qhEOT*?;^u z{>Jr}U+(pK%d^!0ndzpLQA%U#z29@%=Q)`eW|_8PtEw^vS65g2{r)cCA{w}?)U|A5HDL?0AW#Jm7+Y?Pd&BX*;ILVa{U$F+ahbN zKmbh#`^F9Bxhchk0MjP1s;Xx;?1gi1@uBtg)m+C2=7L@wx_okg5CDl&RPF^M;KTII zXM%{lk>fw|?%=zQ7lp2GDUwPHI53N6XlWNDVPr&|nM|uZ>le!sY|s~MG2T}@`+NJl zVLaw~qN)mAosA~V>;d$4CIM?2B-VzM0`I&bAQ~wJN<*e+sXfAZk@hvlj_cMB65y%qf}?0R7#Jkcugvuz9h~|JKs_c(g%zoz(|? zU9Bav%+k3#c=jh(x%oFj2(wh>4(^3S&!sEp=jRTpL_oV4ggM1XPby{zA*~-AIh<_S z4d>V$p5b_b_p@sd;#)j0$77fs*B(F=2bFZPk(C9X{u~GEKv5H{wK7aZdT=UNI?E_i zkgL!su-{SL0#^s7lS8ivxeglb>@}+`STYDW0WacM;fN6s@}eNu^9$Vf?m) z5|LU?I+TJE5^_NH9z26c`?$uKJ^%!T%FDd$mz`eODNMG$+AR#1aj_vYR$*)+aMIH^ zO?<9X9fsI|Lo8@5j0nU&lF_Z+`7K^M7PnAqnwS5vizmVi!bQ=}NZKkMXq9=rj7N!3i@y`QEbV&0jz6+Rnd+8M+=^T^CD zBE4&|{YeMRTIcI({fQ^~B5rqgZ^=R?oYcD{0DPCQpP7Z7xDYrt_#Av9juW#d;Nz7k zCHC`6u=fW-`@|$M_u-GFc9M$}Q@l^m-4pO&*N4zPv*P1rh@l-(s2CW@#03LV*xK_C{YSHAkBXH78=$U%$MuxKc>3w_@BO{8+u!f3E~R;gQVOKC5@Dl=G>S=V zMt~M4Jf!zknlIRQEMPDg6h)EhO#0djQ7)Oewak9IkrdgRn^(W`mE9+w4r|NH)!t5~ z6h(nHrz|=olop~X3J4Ol()FsU=EaCwzwZHkKTV4u1dsrtGlN>mg3I5rrG;;+X|cp% zL<*%`6HA$MmcQ!49;n`jAN%2d^AP4bCngPM+I1S4f0;nu74#&;TF4S(Ql~Kxh2dK2y$_9|CUa8%3CsV4YoWlSV zbq$&BgU?2rerMO_dA@x4c?I?AAguJ4m(NytXWZ>?7^Ul`kl-`j(QDTJN<2D5oHP!Nf9$CqW|zPCrLC90+3fFJLxKWV+F^Z&h+FA1=N!BjA(+Qz!2(!7 z10Wzl7{?>)Cbl4@b0>bdHsES)|K+dk?QTH7vj+XOp)`AwNmW%@x9OfApFh7Xu948h zNhVbx?D|dD5cv|pu^W%~(N?*l4nbcj)u>UhGcg+WJ9d@0S@zY|wVU>(FP*unlyr6i z)o4N$_D`K({js08w6xx5{H6pwg5Q0U5F)pNyNJv@OgnUv2iX@A=+Oe&S#Hh3bP>0))N; z@BzN`!p5)st>N!}?rc|irP<=XXAzTW1H!^1o>UT?Ik+1h8K);upg8$fjkhf4y>%G5L6Q= zcdbyQ1e?$UX~z+^xUhg(s^BfS8<2l^_HyjKlO6!jgPnhajQGrlyQD zVY9dObSFRiw7q@0dG$rOaSisyP){IqDR>Wlo0W2^3|!RE1uLK1+xx~IuWi7ki+J(E z^7_i4o7EW(A&fL2L*M}5MH3>zpGS`%K z2#y_xa6nY4SPC~et~jFBS{WT@v zBE0u?T`YX-^lh8kaYPi{N!xr`(Fl5eZ<*j-uIM3xnM15~p~$@V?5xPa5)OL{-UAsV zBB2lhO8jDi%xq|+Az&C7q!NLYsB8zdPzgk!$QuLY^p#F^4SqV9T2FM6< z!i)+Hl#?#BRszA-;%e}Mh!YGg!NE#_XaN!t7h4`Cj~G(G?GQ`9=Tgqc>wyDVMg-9z z>HXs)&Zyh!ob%-MI6ss*bNp~fxCjSEjBG0?c6C#Wb<*$Yq8xaDiDl1#1gOY`-sb*f ze**ob+@kUXibN9#wtF9v*E^-JBv>QjoWuUXk+Xn6Oo*sOX#_12mCnn1vBoQuoJBj% zoKrUBc9$l#9*+IE;zPor=1Dqtew)3bkMBV%eEzi$g2Tl{1&sN+={ zBE6ojA7?x59ZrU{M>^;Q_vhn11qi01Uc9r=v3t^qAGL^fc@@*Ayi><5_%>hv<^?5h zv$UfN6L6 zWHANhQXwF=8TGmZaRwqF3`D7GH?eudd0$OMu^-ns1%$~1d4DS*xDOUI!Xy!qcE{A; zNmMPSs}Q{+&>G|Df{;2&Lr&fxgAPpI2Xwk|p_W`Z%#jshN0eyiVc(qTUHd1V-2H2R zk2h)tUiBep$pD}caReUs5HaUcqhV3ROcW&IB)YjBktSfoamVo2iH+Is_tOX=b=heF zV1Ag|3hLhs(8fGvkb}7r3Z`E8ZclvA6yo@5$8^b!%g;Z@A9?<%@B7pM_<44$ijo^E z5Lg_mZE+smrA#o(3S&%m5C+y5pj>Ar&n@Hbeq$RsSm;rzD1eCGC!p_-fkZrL#ZuL#c&OpaOsa!>%S{Kp3=!;6DG4|MBO) z_{^t1^{Eei>U$u|k|aiYle&r9I8IJZZo;fFMK|pI=4aZ6m zycdxgozxz&%#b=c4uPVsfPg?GwL!xnCYX z;>?+))6-CRr^ZX2;fr^6r{&x1-=-X#!0rU7*q)Z)$_jcOxn?vTkL`%28ei0%!C(Nn21J?t1TPv?o~0_cxw*NsGhADFEWdE!>HcGv&wuR6$8Npw z+?_9f@f*7vyTjc*54MwOL&O~F+Jfr5wHf_3DJHD7T5FT%x2IZlaNqfTpZb}f`I*jR zk4<6=2I66B>odRgTmSGM{DT#(ML30nkT5$4Q~03R%$_fBZIyU01>rp0$Bl$D_~02i zjk#y*QZ_vE%rl?;^TSX53xDQgKmKU|c=CI`XKn1hfaSB#e6FdgwdEcF5)r%swAMHYI$^L?v4pckvTJg@7W>(?jydvNDATs#Zs*WuI>EcbP$4P_XV z^;VG($RZt#NFoaaI=;dAED0#CRzKJdcE{TcB2Pd_|vtqoH$Lwn^(zbmrv zgt6?Xox(Y1)nPcV6h%mq3vdX4IwC93WIfYaf~AnJomJN7W1rQH*{@_chGAuGjnyv9 zXj4}wg$_?~Kp43+-*(PPmA-BOk$vVQrc~-cuasu{*16~&tL6!45!ui|wOjb-qPOx1 zg)rewxED0FMR-?gEIbezx=V7=LK*U&ol73dM~Y*S*V|&8z6LXRKYL>cKt%T>po15V zNJ8oMw^%_!liqdMB&I(lsCFI;G($ZeCu564L90@fi81Vjh!iLyLYbXU1oYbST1Lv? zdZA6BRhBDL?CE@>yIv_}bZLw!G?tk%8DwUx;A){s=h^@f2MkO>kdcs>xoH{<4C0h9 z;yqZ2*8B%!GW!~b5$Rak%zT>^(2HnYMwQ~dAs~#3-XP1eaZ`l=nT90ex_x_3AtWLx z=9?n|S=>vGiR~t$_TDtNyr(1IC5jL=lM*J5*C)xFjb6@G4WkMs6PPqG8o{JKcr_Nh z1Lwgq)ZJWI@qv$XT2nX(^$Um)j|C6?O_&>7lK>;9m3T#p2r`l)*M-4OVfvlC+bw%# zW@aOPIalh!aGvYD^g442C(I+{sEGee4w_&x!Bf287vv~q^`Ak+xpy~&2&&rF6995Izf ziG;DMYrFQyqaXh>KY#Y;{uGpjn}}hp7=Qsac%4naIwb^d={KLb@!$XQ#xu|CJ#&4i zP3L1z)@7H#Xh6dnKtbim^v-?%kNnKm9Sr>Z^IvV)t4xdM#yJL2@ZJQeKq~D#36WEl zqFeL^%fdz!F_3_0r&w}=uJz-_ngaUoQ+J{Fj^Ak_pSwAn3^TdsY!!wf+U{x7x zmiw=C`?~2tSL;5{pjFpd9#;VXv~fPvfNlzQgKlx@%w-%b74Rb3@n#($>lQY28oQlQ zS>)VX-2%O#VS<52w>ulJZSHT6`=;p9^F~0VKeE|mTa7I>RCZTLbX?i?je#uBI)za{ zYv?&cz0#lLy$;~3uryv?RiAv+Km6U{{O9r)zGA-m1>SoNoHgXvGAxu*mD+mCx&D+Q zycy`Q=mAYKJD51v?R54f>>9ZI(U1S&Kl`UUKlojcsa+TsP-I)TzV@5H_07Nj>*3{V z=KSfLv=Or2S_%kgD$C4GVMS|jdSMC?;<0+iYo8M+D)<@|8U;)~>iWY$Z0LeA5NZUy zAQU7fD%xhNP|A-clWq9y=U&;`U%kEi_@DeI>($kjpZQZyOojdb+uz*$hrjEpU6YLq zM8~IqIsQHg#E3{>1Bze}R3HEX#$_GX6J7=c@4C!v!CIL(HDPUCR*SNV>p)FV4$upF zz>t(v{O#Bkzlo_D11wl-gnN?FMYRL~Z1w_yC}4`ZK>-Iq)HrAi0t6tRiS22@hiHrU zN4ElK4VQcQlaKjZr~LJ8|CyIx*xQHU1lU0yR+LiPon6s1W`>Z1lX2rWUJci7<`-7` z=T?i$r~7ACWOd2sYENfdiuObR9e7r71c|TXx--1*1BRF^2o~uB1UgPS-+$#xXig1B zF%5Iss6Y<>Dtt@=MnB{5|HnWZSR1FP;sQ5_m?q~ik}m_p#d zA&4T(Oh@(L=Ei>AKt8C}RtKtfp1}~HR@*!7`fWIS7BK6v1f?_QDoxPVPo&r?arzJ> zWmBP~e;>M2Xk#*zA_zG)&WW|5w$?lS%;<@x@soN|P3*X-$IWbrU%B9kybwzOAZ_awD>Cas4h$M-f~nT}OKg;=w5 z*`FJGw2y~Y0K$Zjf#`WHB;f?W!x0)jY%B#14j5yjH%|b|Tvs5JIJ%=HAEEZx!=lIQ zJ?qc?_q5?ju?P4KkM$7V4CHO~fPM!GDG>1izG31pF}46mhm zW{GFp`x8;z!DA9fx#0Pm;=nf%t=~dQ7osBdrPTFs8Q{^?3(NG{ssaqLbE~5rgsLil z#)mr8mOV4{AkumogCS9b3PE{7E-3W{wPHX@)t$9~;yJn*@xCiPfqbe&gdWiZ50<@k zjPAg+-4N%(v9J z-945PQFl|A9Md?TLKo}9z-g_JZ1vb5{=Q5$9{g$}B@!46n%B1W_t-HYsG{iT8Ac(5_X+4Xwg_+lc;_|0f6S=sy3^@2 zO*0zIPd=>@0=yT|c3`d3d|8%R zw+ou&&^tS=zD~2fEMdQK!H=o-VG0E2obKY<+FHNg&x>H~=s<;m3IhSNGG=YfxC;tWw|nm5 z!w;{oK6!3!{GyR>e)F3zz4TI5RVnJid)@&0I7DPJ33BLi=be?NG1(&o15dIV1-Ixyg$iHSb40M209@GLeiSL-6GHP#_no{ zEH43o-5@v1MM0DG-qO+@05}KcaIu=1lTo|MJKa1dmdS>l8nBK=GFZjEJ;*Y!XsarW zJV3v!>yj$2!yY0M8w1%skJ))3=$JhI5Smt){cmnGGMZL1fSkE_YHI%459d~QUweM| z>Wf=DuhrJtqA1=<-ubu)1>wzN(MNcerA>2tXKUrrhkpFWfBf=ydfHb?Hp?-jiY$ngS`f;GNexGdi<8Q^Zql zoO4R4>9A>IIGncXcm8hwPPcgKCw@Y8)s?58KL7Ln_xE?d_`AR1s=evjKFIwh5)3v% zM3U4ZOu>Pe+7aq|CRhKsa7+tx|5+U3T}78=2izdYkwrTpS(_Xcp=m&*GRCa0_qwM% zoPXk#tD|qea&>znaHK_~X~4GDyxJ6nwyvp~>(}d@TX5$ZJaQ2pxzbx-k+KtvKDaPg zJhrg_MdVF*H{aWWLype3cYa_6^vU}zL>9jMqU>&An_W8-lezTdDP+4f6_gy1>`?@S zA;bpsFqwiPs>nMhVV2C0s7%p1QJk}5g^A6KjHl@fXM!vt^GuDSiG|ux)2PO)%1ULi zvFt2)X5nlSC{Ep7(ga1xk{6K!U6*U3u*GN-dZG zs07kPl!2YAKL@u;?PRMILqx50o||cE!Z;&Qij)>oAtTXQFeti!TphK zzKRHWvyR>;^IC;)x4!AS+nhaW?SUcz9S}IrOI_yP?@z|CIv$@nt*2-onaO0bw+H9W zL5xTih-m(K6q)~&RPNZGY1g*^)ZYHSgxY$UG%%dF(FlfPXll6L>_jq}gNJ|zFBS}m zxg-Rn*-J1<+JifgmZ!xKVF4Bqtg0$L%nSfVsXW3M(_iTn8p}@6FS9{cFZHvPuId!1 zWkk?unM_jx2hfBNSO9Ro{Xg>Qb`A)Gj;+4dN?5fECoQ;T`5BOo?AO~|TIk6!UcC75 z-p${UI%#}(|6{o8=5wd!)ynulM$dwX-?q{J-U!}d?DM^mYz^ADH5gmt)U*bMX__3^ zTcSB}(=FQ=LZFDGo}QOKx0+}Nx5}ZIH$8<1JDF0@MQRz#x2}520U*7SBlG;z ziY*j@(#ak~1s@?HfcJr!Z9ohRLJ*5lDJ29x#y?OBicA3`+IU|gV`etTA?yKYBHG{E zKec)a1Sn#mycV?2Y0;u3pkuaB>k91>8RP_`f-6A;7sDStx{BtQ@&gDo(DObDb&d4OP1pge(sEKwBAN$eKc zuA4^IumRJ05h`BY5BxCe9j- z)TNmeDdOnmKl!8o^>6>dSN`cvX0{RYqX*{8U;X|IKe+kd|BddS|4F#IQ|ZJ*0;JJG zCqcON3_O1GiCZ^c`r;Q3zWRsmc)9^d+FG<$<1~OEM$~Z@a;Os1=~e)+T({u~R!H$8 zZ9;@O#U8=ZBAJ~B+JdAPUzb)aQ21d{&2DcFj-LGhOmaBb zEoR3>j3$+3@WhSoV~?jv_d#7u6D>)`U^DO=JQ;-;tJPrRQugC})>^1HK>B*~a8}mV ze&qPB_n0Rs4Z21PR^@ha-}zx3V7^a#NhT%ECF|}h%bCAEJpeg6n2qiDv46FBZLUf6 zx30}LpY7g!iMPI%eCKON`>$73)yt@#l4iea5(f0lBD@U%(QVM7gLkxGBEl-E0l-!r zB0}RUDa$%5s-LRW9^#DBP4r{u9_a4TttYxqJSkoshj@L^?RFImssmje4ECPiEstSj z`p$Z`&go&zb(t5>d^m%lSK>=CG2D8ly#31Y?H9K1-oCwA zr&^~%2{U>IL}aQ2OJ&L>7Zm_<29lER0zj<~0bo$}4H7`UC;`|@jDi%zgH%JFc$_A9yxOVt%wre!gI&jLsJv zm+1WZUf@E4P@U>{d_13O4&?*MD+|<60|9lkFtCVCbt$fA(x->I`uaEj=cv%m*T^Cu`00$Mo zt6e|@&7c89j=f*h>n+3p5pRC;yn z+`ZcW@hh;k2aj!(CNF{yQ$B+>0>u;ZU4d7_W$*F>#ggX6?H20YT7Y{!h8EqJ~;f& zv#Q%k$*6sr`96X;U@!nsE9(GQfhea`M^RF9RynXvDwmd)@w8;W^6<#|XgfH;;~*rbTgbX%Wi= zaRJNhR6HyjI1%3(jHRK{pjcnxDQZd2?V%!aAr!GcM>Fk1mev>=R|^~D?1hlXcusx) z1{ciBu5!izhAuo|Ar61jAQ*iHXQk;2C@bAm`Of)k4CGcxyO>t$3!dIDBgab3)wV)5 zXvWCa-L}X0aOJK!S_%D7&MRl3WyvYI1O#E#ki;tzT-u2k5LrcPC=zN-1a(y4GLS{> zh+Qu&N3gF|=Z<)=NfpSIz;MPk@vP7k5ed=j^$@Wv%SLhBxb`+SNM?>KWbnb!^~cJA?Lwaq}+8%XX9~ATA40VR)JJL_B#a^67_}?a5KF&X{1V%#v2ME z3=b3vB9kK2*a@qP_^B*dE0u`ldR8LUl%~A!(KLOHzDuRA#8o~~;6_k+*Q?dW1bTxE z!IHAR%yZ3m^S$mcRiL`F%gkJ*^%Nwrl^DB%gHcL#yWK3y;wric4`_^GK8*|!e`;1o zXF~`!hK){|ZEY+lIPyH#TBjyq=QSxW;H^W%c^+7%<4KmJRb91_%k3k^wZUX^ysfo>~-cCW^B`aW^8NW;j0I77xHNh)BU5MSANsoHw+Pl&%qL?!~glSCaI?|uF2 zf7tCMqs(}pWLY)`8_m0n)(b}UPNzdeFTM1v9=r-JSFoo^*H!^`e&iI;7e>SYu<%?? zgB*w0Bk&_8^KND<>sTTmXqu&2rpM!PCd*Fsv5$T1!$1G?lx03Fpdygj38&fsaP4cO z^sE^F^I!Y5c|c8TZPMwbfZqGOEFa#!{j0zFtN)RL_x;B|>y7f@6=;oQwDA zjeA+Xw|fi#oo+fD4zFKN`~4K4KtyY65>SZ8`}=!$4(3+YG=aWBW6a5%j9RNCfy%JRzP`hfH=cKisA9FaI0xo3UNP0JJ zT<&zXM<2X-<={JCyZh4f2h)RcR#g3-^4^jXrN}XeNDRpR4u4&1MMRn)LO{H30?-sL%cXnHl z)g{AXTpvDSOcThP3`G(N-5Q`xnj{9WD&78MGH=Rr?DI!I`cd8K)JS>ox`pST|IOe0 z&D*zcZ;VE1nu_z@c@#nTQ$j7?&d!W)mhK$hDCjeVcl^aKe(`Xl^Pyk-D}z*Df8vSH zeC9JR9QS_j_kNGH4)I76r4+d6U9{koZ%2)b2WhX>lEgR%-ub0XUYmj!`PjkOdx^_b zTyeSw4DuePC=41aUsr*{>s#h(&qDkmQ9@gF?E^*6bHcY5c};k~gt zDgd;DL@nXFOaK996Lxrqhm&I8J$xM=?7)r3drw>f?o_?r0*U^6Kscq>@u;pDZ0TYy=b&0D z4-VC2F3vAzMx`ZaA5c!D<8h7Yh)+*}OhFKl^xk@o@}(@Qort!1B+O}kQhG_99M7_1 z9kSNG2f%FkdC0k{53NrX`U;e_w%_lk>HfhHOeT}0lWMKJ_j#UACTPq8rxw>>;sL|o zMrV97;1O!%nircy@9Jq$%}SU|;dly@9A-I8N+@e6DzJ}cG|J^Bz^sTgkm{&^Z1mKtJu49AhF_r(7lZ?aH0VIPtX&c;kujzM z25C)pk8-G7S00~Bv)^iRk5J;9YEout|I}pK^ZQBAEGA+I1_npK4D2I(J5XULCXyI- z7upA0xRU#Bw`&M;2Ip8jFgsO&nTv1>3C_;B#?T)9l4JbI2J+lk8rqSE*8#oH7DfsV z2@;PSj~VS87{q&D1aZ#&kY;}(_=xtKcp?yPHcqC^N(RD(x!E|bIPTrMj|k2!eTJ4t&im>ufN5A)H zEA@2R*J+)qdmS&s%z0nudHu&f_}%~Gv!mVe>M#7K&{Lr5DotvFy3B{YE_l~_-_sxc zpMLqZE9RSD`mLwAdkqs)CTXtd1#Ro)u9`EYz%i%5YCLmMM0>C6T1(ndrvKFYWn;%r#+tCx?erHB1vAl!brl=vdEZg01F(7L zwHLqpjoFne$IlG=Nk2;x5YIjYdKHbLCChZ$Pc}Q-0M6D`?s$-yObsV@lj```@=J)h zku=M)L9#i#ysdVIustKG`j?2WZ+j72T}_h2WP7Fles)!Vc&op4Q!anQJ^$^!J3oMN zO>U;MbeLtC!$Pn$om>PKDC~E#AXo%eF5og;kBAf%779;5`g@>`fUSrl?26k4QA_AZ zVu))e)-ieKtI8gZ4+{pR{1I9fhlET%H_lJN)&q7M=*lD`fl~0H1|($!^!`ykXFG8` zCz8Il^Y~yes!RRVnVs1R`h!i+=ouNjXK{6htGpuQOAIQVhAMcvkWRy=m5p{c}+gH85Q3L1t-{wYa&O8;ULgO?^RcW$Hskss4 z^26*~zYmqKSl6O#+)jrDfB_+9Ep`h;w^25X9^M2Ter1C%;Va8I(S#fP1>&jmwl7hu z47==n*_%{}l3eR!YmZguqaXiEkN>q_R5zazc8SfCN~%Bj+Hd{(=fCr>zu8UFUXoR_ zJXHn-6q1O%t+dZ;uSejKbNLCLk~XR^SSbe*(Q3#64@Z~o=imRk{{V16kH0`afA2s1 z^rztF6Y%U~&;BpJ@<*TRz5M^awqpTB9Ya}-f<549Hm;}rYUj$hqoof32T7;MXmnU8 zP);C8l2j`V$c_W{&`@Hqay1Ki^uA=5imnmGt4h?}6GaSrBw-RTC>;?Mutp5%5Im42 zItUdFyqyGbodWAjIfioKH{C*F*T7cnFZrS8LXvg~VpG0Cu^C0Bbr$h)N*o}ActDnT zemY1^c`54+hGuJ%AG^x?hw$P{FrM*bT39I{1(hO`s@Y>#qVIO;paz`mr!O8SiPATo z=sbQcy?$*lN~%tF+*i5rB@_Yq%LteXlSOnO4m|*5=;A{XrZ`M7ZF0q72rMUvqFVn%rhh2^5E7W!xb2g2YTN^MKP zFnt;e#7H?}L~xIm?*D)y9xZ#W$qS-{bzDgSl#>$a#28Ye(SvRRy#Z|Wp+A6LW;&@( zNRp(;G^Gip3Xm9mEx*W`Q>}cO5%LMq0GPucpy`g^Dm@L_QllH(6$%PD?-RxI3ZEMDWX!W zW3PuO9Ik=;BBDeT19}MgZ5Y3Hw#p=^ zw9$$j*y!Cx1c01&XfWs*16YChI0-^oI`5ItE2UUFKNn{!S2os&G+ih|wARcVQSH%~ z5ig?&+upo!L|jMh6_wX9vp|xGL0R{N%`;K|fiw{e) zC?rG@tl%P&`ei>wL@!a42(eZ~mXWo_G*ggarmU+^x94s3xc5*LE<87{_55RqlwSaO z^Y;|cOIa7Kk{UahNV~jA8+mtgQ+n?kdSVtb4e1t{a%0l_0NC)^B*Vm!B6~UNVB4@ zI?1AwgM{Wxbm`WuPk!=~e|T8E{N;afG|dOyl#~jFpuqA|zZ+Pg5pktCtstNks!pfF zNrGtOPfru8pZLQ-nnxpx7Fs( zU^v{IjE~FdY%-Zl%iJE>>2xZ(3bXG51Co`=22p2gOVynkZPG{PIPd#N-nrdbu zKN!G%31wNDfJzJe?6az(99`3&W z>R5c&)nWN{=uOHymxk9(-)rAkfB}=xI8`WFkdo^ZxT;_Y2jFx0PfzgBkDl1^&8Qog zIk-o;CgOZqRm}P?eC%g`?h~Jox%L@^z1K?ld$+&zr7wN=t6v>rJ^%8{uT77}gdhK_pX@*PA;_{%ed<%+xWD_mfBzpI z93Ee~yg8|J0O)nQ)>>{Ux*7y@F#bE73m6eaL<*Lx;4I66dQ(`c6S{n1a zm`C#NVg^F~ERc46LtXD%upYU&qMeMC1+|C8B%}zEh2KnfxN-ePcWWE&KA7Hq{qF8z zRSI}7o}Cxa3Pj=ofq>XA0u@Z1FDieu2lwy6wGFtu0ar)RPa%yA2{GtS$P%K8C?T#_ zIoZ$d2k?9aF}A*5Zf2(<-nle2@g-#9a`QtrGtdH3#AE+(B$rz}gMg#e0466<(8K1MZu z|NG~(^}DaVwm;k)D5dfe4i9IO3GD1ZGOuQ>tD!1jR?E?TadcG73OFudp3W*L^AMJ^ zM8}Co%_ojK4O5m$62!2aKxA-o!U;i$@$Iu`W~U^w9$?f&Xk&Uw*6Vk+2BX1f*iEwG z@Y@}uI=yZ`GfAoxcoau$iE41QcV$u6fT96nS1U@72=UX9y*@g{Zc{F6s>w>B2wd41g@Fp~UHemkcvrh>=eulDUV~W+j3N zDvGO6K@n+mf{|*!u50I9L%1K|oDJnd8zCDdf}q=4;}y-L3IZ5|XT|6U?3^QxjL!=a z>cpS|M&!3}2eH~WSCT+7NnSC*qi)t{oy% z2)RIW5dt#yUf;uY79g%L5@71A_q3=hr2iP-0co`spu zeZuQ@uT29}N<|LwhE#ey9?!payWKgTa)?PFZ{7)8DfKA(ERg^yGO_i>cAjNfni}UU zGqiOeT1Uf-7^AAiQ-s;9jD$9^%e<$6{^4jZLZysuKiAmo-j%bUr5Lq5^v}o#&5Jy0 zWM)yy1?Ij%HUw`UKG^U7%uoHfzxgY@ANz0)+G$-ozvENjV3kyuOOC1@9F)8N__x0E z|NnoN4i9=j22`2xRQnl7Nj7CcR}Tx=Hl6ABUirrV_1WZb{PbV``Hkya;@pw$9iiRI z63qZrb@f9(`N99O|KhDncR%}2b_&-AFeF!xoHqEN4@EH@VlTe6m^R{Zc~|O$|Izrx z|E%6#uMAl!0cKAC2trH5O@sf@02x8wx_(u5l1^#sS&}GJ-n-*C5o+y~D3PH!uT+dh zZLi%LV0zH+_q!V;#B^%i$q$YnSoQhSPr@9u7?hNaYO zXC$R7(|j(oabCF{KA0)CM(ZNO2c&qT2bXk`Y9#T8Mwg~v!{*U&$r>D&H0 zUxQb^e^ee-Wm%=%Ph`gxRn{%w9W7J=FfeLCWKak!I^hJR_SMuC9qQJI&LaS^h$!tv zoW$u$l!8>LlorGH;ju4^+;`G}=zhU<>1qJDv{g##LRfi+exI3*Y-m*A5-^>Ot?5&@ zpthzv>Uv*IipizN2haWFrEh(6Hy6RD-h0NH1JsaJ zoo3fMS;DptUNhAsC19zf5>d!TNd{~@h6!6$0Dh6869FZw7z=`P1O)^eX1MS`+X}B% z+;eIT=GaLqk?e4?ptb7i-J=6V{hJ^9iKqY8f9v1>90}z!*Y6TMxckcg^S2*-<)8G( zjJkcFms+sf8@RF(5f45dpYhM^XM^j2%kl_fqhI{^C~_`CA)OcDjR~u8{9b*ko+}Lk zcr~ehBH3`eb^hyL`R;N3+<);4#h-s_^YYF|{+s{7U4HucfAo)b?|ff%d`ePI#w?MqaGlI*iO>-cDo6mZe%l)Zc-z<`NH5EPIp+bJQWDjgcUdaL^2HQBoXckaL|ufzR)n3PaK<_p8A7K4^7 za{=U_Phb*v+?m|*FF(XV*4-GTJKOr&)#U27yRt1Q?WJ<8o!1VM8jJ@J$gv9|Aa0SO z1E{0&rH$a`RvYjwL^DfV1+_<#Rf2XBb;b=gVwUMlxrB0kF?FHPiYl|YqVuDPh+ibq zwq(EYxY4fG`YV<-mm{m!jUl1)2PyLYv@r5(w-C`N7%HQPa74_NZG;y^tpbQBGVPY% zpyv#`3k9bVVYrBB$j~&kB!FF{Kquu0Rv-HWObV=^ zD#7|`Ay@){9bfII8`m%Gy}bMU?fa#(EKp3K;O@+Az3|fYmtLvMVwC5(Ez`sOI=8B@ z^K|CGiY|$OHAq)LRR9$zR4PTZ!o_fK$ zz3>?gU}ISHdWZeaU6Vnkp>Gpe$f2-E?xWA{A{CB7MB!w-XSev8rr5?KH~F<9)T)53 zJi%F6RTUmY#!Ui-4_T35gM{Y@xNKY(5V>u#ZCiL7AwtD^ae7t&q{IlI5}>*R?FS_~=7qV* zF9&8=lq4<#j?9D#yaGvq2{Y$^%H4!-JoEf}XCd6mn>Ta>1AyR3_r6&?Y zNC`rK!&n>QPgo`*LjXz>iX#Ug3KfV0vRbnujH6XdoCrIJk&kMg#aAvZSta%vwit6j9Z&Let)6v)P;+_1?XE)9E7S|IM2>^C0UsanfW2<0n2_ zL|J0|Lqe5!vCWEQ@w9`)r!<=ta3XnLhM6c$lI%SN z^c(T_Nsuhdy4^0&$w;eIL(ujv(>}j}IOpaMA$Jv`>JR!yyGL2>o_p@OpZ(=ure~h1 zfogCH(vCJzpRS=3NC4yqzyB|O`wL$f-@kuNXT-6KdNznEaQS;qiLxxQma{CofB*jH zKKHqw1NSq(_({BU$$>Lq1U!Uzv;c121Apn4e(B!0^R+Mi<2gRz>dux5$5}GWGQ6WD zw4zlnoAxwry`3E&FUBM7hnrv}4+cPL97B|j6hc}6NNex}s4qYM_~q>zKvZY9iL8iI zN+BpXnJl%2PSzU?1}4iOHG{0%?+-S*J7s^k_xiov{a1>7!IZLqbwF+=6WFt5f-W(_ z%GWl*Zif?M>19P-*Cye^!^1S6hA6$mIl=Vsqt9F!=HI`z`{H*W{NM*Kmg5p3>tq?g zJ6i#Lu01na-xu83h1o#ea5;q;#dybz(o8cUAPn8Oabq^Vx4$>Zr$;I?4#W{BN%G{A zi@`@kPMOFQiS@_~)^>-(=bqcBYK@7ms$4|okNRhR=IKHIk6-xi!~OfpIX9cl#^bT~ zgC>M7V&Gu1wpm87_w2l(gdI;NlZOwhGy(6Iu{`He*Y*4$^LILYs&&^b+izXf^PXE& zu(Ly#E-w&6{eGW_mZ)Kow|Lxsvo?7Nk_0&_CPh(v=z|}c`&A^*J_|;9hF(wCYwo{C7P)0sbtRGUW(|EW(si}=OQ{hfRJyZuqp>-DD7Y5OHMab1E%EuiV0(@K+8 zh$MpEFOdjZv_X&*Cs0Q|c5^qh32%sz^ZjaZXo~4cT0EsnLQ))$eL0SVzruH`D zv|JuN@VT8|KS*8#0lj|UivO>3H#uAGy`26PLQ~hX07&yy1Q0H!4 z;e{7w<6{ZDu^O?=6{RC9%)qFkj}8-pAcz5B1#rTVA}Y23wicoh#YfmCP#_ZM^?I2$ zov!Y8sN2UuR|Y-qWNvE%v&3dep6Cj(AhC=9vUK!ryaW(MFlxt6Z@ldj5SL^C5bL)G zsF%*xijO-KzV)b4d%GixGB7CU-PNurd12a%PIA#eSAS=E`YII{x6h2`S? zx4noGIUT#0SMlH+bp5oD1x^`31C-2B2kopnvrD2bP*y*h;?_gmC>9D?V`#l6E`2;Q-R4 z?Z>@tx_zflcSV5fcO8?sU^j72Nzi-NME$-E0iF%*3SWKheK-HRU#7qG7p61YmoyPI zCPaXu3mJeDFkp2toBgY=zy5#zTK%nWU)k!-ibLvbF|!9w9Hw68Vgyoc6iJdMlcLDT z!}RDIU-&|2_rXv7m!IDFvG;p%h6zX)YEixG%xE}tf9sc~Hxm9kzq$W#ZwQFQri4s& zz@3Kg_QI!p&`69RAdEnQO5p7onhIHkDN_`vMGja+E=+7<-s_5!$&^ZeRMrEJSHfWH zk-SnN;z1Z~`@NyFk_489#6Y)~T32|kbp04QUK(ZrS@orIx}HHbPP-#6vi;jr2%~DM zjZs5;d0UYf_3urOjw?nhMSt60d2G0KeX^J)ed=xItwt_V{6lN)#B~&)v%L540M(|} zTA3rFaW~t!`V42A)yB1Q^YP;D%Xa)=z|~mZ=>`L2LF>s0i>NVD7a(CCR@KquXf!#z zdg-cAdQjsXZ+49_;06vIA|qm$_t-Haz}0KLA|E)OjE}*RH5#%}XYQ!}*ey}LluBn=0TE+~5WQd@-CKg&Q>58mlfi$E`A}m5gL39|93(if!qZY3~Wk8H*#d!~SykQlHIc76) z>9N;io8&CDRpruyL==h!NP*L(2gBP*5b=ldKDWyS_zjLDZ;X!N2oiaNI&H#VX~1-A z1sPf#j$VPt=@B{n9=R8_00|H$w(26H?(A>%4mXE<NSks&Xi*EfW$B^T zprxwNjQR{mn6F3E+)Pxh;CACXp!ZOw^V9LK!Ik3j$95TM=SgU)(%uJVU}mZ|J4b-Wp5ut1!pnHj?@*+7+KD6>6fiYqR2JF5#75MdZw?k^)Dw zQ9c!)C=RJl8Hrq?T+;MwlI8y`*e0zw9x6wz`YrqxNE{|Y?YfyY985(dm8d5Z3^alU zXDB5ts&Ujo=T@{^R5A%SEW;ww&<&qeAR1#D#^?AaZH+TCx4*U!(^xBD_97UpQ$gWr z2^keBqnuG9Xpz}SsDczt>1#%6d8GIf5Lw&);~4TN1kZMoH!yEE!&m#-np%ruc3u#` zl2%Dd0u(4sz&WrrC?Z9X&=?$gg8&W+Tc7B%31r!-S)lEFt2Lx)GMDz$-?9Nq6{H>0 zbsbURxxXrh$R;F??Ol8C zv$J#S?z)_FzK`xY)3p`%c-Mp0i`V3*-rCb=YN~3^tRWN@G$(ud=qcw&yud=}-~7 z*X>2!>JS1TbUXdo(|YgXBA&^ppal4t0s3gCL_Ef}m8R*O0d458gV$yH79$AU7Fm|f zd@tR!U*vAqB{m;<_!FP_#M$@07XbRbzB-S!Jbv!|iZRWmp-V5m_{7)0e(>zGvjP;6 zm6a7Km53JZ!4Mtz0YY%Wn0fxN+Xo02E?@rEx4v~Dlpp-FKOL=Z03tZgoB%?M9k4Q3 z`OIfNbM-Pj@ue^C?d`9v_d;;0YVPqS-9#2@yZ+)>D^kaGG|6Z*nwciu!B|8_8zV#n zbUqZ$Rn9q5Ks2*m8)f0Wb7fifd&$bMCsG*;sWsq2nx?f9t|CC`q^hdOH{9Odo~04M z&Ol6PbDtB@a5(JPWGtSDR#sr9Lo__utM>P+l0kZ4QwHpCDk7;GPCBJ8CzGOd;GCzmF|J%inpZnp;pbz&xmb<@mZaSToWvObLxk!_U`eMw8 zz)Xz766DmWQ@!43cPHN~3N*a3xjv&ace_7vZd?>a)`c0Ws@mD!e(5JKf#BJ*XL~0d zsFn^X$q=xr%2_9!wT&5{`sB%z53FuH_uO+&J@u6LewMGAECkDxqO>YuW(grtu^bpg zio(rc45(^bW-AVOadxH1pdmbP7}G67bB*Pouk9Ldp72%NN36dY z(`2@r2l@~|n~_9bLq$m2JM(T4gmAeK=-3P_R@G*3dsR6!`AwOi$dLwUB5FMhHY^sy zx1gT2OJ-3%qEaJXGuF;6o}UO`E7;)wD<&xs9%-bRPX?+Pii5n`-YKqb!OkA+kAV`H zOih5yi6t^KOeYiD?SKf`d5-kbPS;GQQ;Zdprl73#2nF5;aRG&hB(H!d?j(=IIVLp_ zdL7eE&FUao9dvtrJM49OyR`JRFzA_2OhBsR8wEy^4rMm$pjk@*J^ zh%qwJ0HCa=^t^Ca)bNOy8m`mYW>cxQn1*vKGo9NxOIs!MHbE~{j~zwuElI=w8QQH5 z7n03dr$gO$s5S64|HG@?6>ZC-+>FDFu=MUz#U>00&5wy;RZTQBudS$iAR>+1PwSYv zI{)g31J$_2Zda%g1$-Md230-0W)1Is6Ets0Re3=)UR+FT-~y^Q1<-I|fR2DS28g#d zJ;yqELsrns^?2L9zkKE*d>_|FTV)Pa1(CiWB23s6G6)18Dd*8AM;ap4uhpn%{+}Te zl{ex=8pY>076U+80|1(ch{t+wHoD=sKv5JkGtSHg9XZjRP6q(;Jdd#ovn-pLYl<5s z9EIggje5r_Xr6G+6A@6fg{q2r?;!*)Ai%ANV|${u zXUOhv?{DuGV;Ag7e`VE{Wtrq03dJ(b%PNFmjFvL7R=YGAc2nE2&XI^0$wQTk2+_+X z?LlVB;OSIvaKd`2s*+(>&DPwmneT0hTj}+BI-JmnbYtLv%3@NC`k7#s=egLesFP)p zK(L>zqHu2||KT%Wt#A8;@5NcBGC4Qvn)GG!74^lFfoR};L*$6l9cl*Tch9{fmSJdPYM7BEHncXs#XDN zr3(%Sh#&yi5^xuhCVH4n6ShV`<;Y2)0s^WW#u$`(#TZ=z06<}ah*e0Z+33FC`R$EA z{DUl812w@PaH8R>PyG0cUzoo9QrFtN#7;5{Wz|bF4H6j^;{4%$D?AQU>}VCR2zn#e zV9SP>CVl(!73+l7Y1JcHF$1qq!!M{&1`rSxbV@;bl!`zo)=-Bz$kVS}zVM};{la|e zLxVH-4?gzMpTB?P|KcBJnoB3fd+YlX17j!7_Dy$ledlu5Rhsm&NV^oR={L*-!MVaF zi0DBHpo}&#OJFUZN*|b%#UwZ7G=pRnvI(c-VD?Qi4qOJR>Z=iGijct^IUElJ$HDQp zx`(6BL0S5BsS~ucyuWpjsKx|_sOFdk`#J`IbNWlvb zfI(x3fS^pTs{(iipMs;B+%ZmgcjW}!zYahD5NvJ1g^Tm3gS*!U)2h7O-Ht3$La<^H zG8I-_ceyyCf@G(V^OMPc>`}Tk*MWIgdg8=reeI-KS((~&H%V^Tbf3wwf&@Sh8bCa7 zAk;1*4#Fh%ZbSq^&_!HtLKSi#Dm>3ovnZcQ+Z=tfrc_%?DQ&7lf-H>#aY@-?qAfcB zVgjX3P;366?I@8)8;p)WhTNXKQ{(lt>VOCcZRlbC&6zOiJX7m`b^CFzwaQgk0z*V} zaO&+SVF8aTtzRB}HLAZZMQ9`pM{=J9Tc-I|+QSi87F%!KEC4m;)S$O{co5ZN{k_C+ zhqQ5zc0_qipaqipo(jw?DkzGGjCJSIIRZpT^9)J>z$*cu$7nE$t%&LmqIc?~W^0;M zsiTlMu|ZfcQ%HiQxeJqVxi>z@r*iQiDRMu~Ls??ws0`q|&W~eNG=LTeffcNUgdG5w zouH_Q#ztW-TmP*Ndv- z($bf2txQGQ5-{AP5$QJUMV(=JWlgsni*$*NtL@)HybBCyg*Ori0geMlgVt^VS6{+I z`#G`xhoV3L-smnYfO?bf%)m_zE(pcM0-)j5A?AQv@^HT>dU250bz3eoJS%pnD|BmnYi*BwGsFAU9oFH&i$l}((kXhV9N zpNYX5iV0#tlzLQAM5H9lkRi{Y3f@7t-|bAjNu16 zX^p7-@LJRCxDtuy#NTD+5Q0gpALqnuZBHc;1y^}Oju#pJvJomZTUv=bsIF^`5E3R_OFB_qAfcH0l>dMMvrO4f0B2u{u zN(W?=hyX2-Qw>FcvVyIhJwZw`PHcC&KauDiZpSz_oS2k|+mR2ohO3e1dE=;#SPq{^ zHJVxr;jrt)tHl_DGmhpg5eb@kp3nHsWm!fo3lWKpEjA}a+}zwOT`?X{qNOW7GtwMv zFk$enz%V7X!MehQPF-_M5dTR!dZVzOkmRW>KilVRy%vtmh z>UF`KbXHVe(SG>DAO5wEeXOd-X@NN;D2YO1;!41S+uPasm#=;8^7p>CAWnJ=o|&D( zZP7TF2=U1$pWMx|Gu_{O`#atZ07X?$l0`LmKtJoQAOHBrAA{BJeCcn`J^jpTe_+$p z0EXZ|)mrOoaGC_TXKJl+do}_?fY>Z}5CLkPqwd-oWL)#XD^LRFdHLu0)hoL*HQomw zcyzdOVsqovrAwC%#@o(0qI5JGRaXx3e7)_tkrq3nDX9t6^2)h9pSrx$d3&j{j6!am4$~#2lB%7fu^E*{9Q5U|^VvBEa_95<*`shbL_Kr_}vO5|n&AlIw$FXN&4bh;gu|kpHrl|U1O<}BV6|js+ zk_dGmc&~1TKu)o3)m@lh<(_#X99{m$r~faty+yi4EAsejHcrGl@pg;%X~im77!LE*wXnGfYpc-7z$Rc2n4;$d>V`@+16PPJUM;GrE?OFaBH&?rLtu<>?GnMI z@;_RrA?7TO5Yu;OZ{KqI^|X__4ApqN{chj*qjviL5DPl;J@BY^p(u_7Gyk+dqfXRl z5psQ<(izayeW(3K=J{7AzFC$D9BQX}57yN3an=~l08Qy>nwQhE+}qFd3MW%Pp31oJ z`4lDvxC*x2{8%^$0RW?>I0ZCGk_9x1HVzDj;t8tAmV$}~?}Lh8jGAOjqI#3a)=AB3 zW|K_1J)32A(C-gA$(;3^VXwoPmBc!Ra`rJ;DO3Og$<2V3Rb)wr`{@w4OnlG$Y~C`?~J4 z0YbgVR$-uqcT5WcZ+%)=+(i(P0;&)PiYh{Y0s{2Y&pAii3rmcM1_5gv8lVA|4bV&g z;E@C=GzMsx!8jr^Kr#LVDB2ornf`Xys;Vm9h-yUJU#Jny6t+ftvCzc(iJ2l&Zx1cv z`OQ!kH-eW{0RZuwX3a7`vRU4ab{E^*awazQ(rm}M3y;?};}RV`X=$@LnOiY_2^Mq{ zGKPZ>B9R1*Yz|vjma+H#kbO)hu3JT<2t}Ln8>_7Ll4@f|j=Z|EEUT(ILU!Z$1>@+{@7j35htD<_efAlj0^z9AM0W_!pArLfbR*Han_-S(- z=pKLJW<}9K+)KnE21^Fej)ge^Yxc_GaxZ=N8~Z7}5k25m`5WEbTXX#Sajl<2U1BPoyuMpEKHq(=SqYZt!p z&E)FEpZnv_!LPp0B-TjDlvWr-G@EKK+w495>+4;-_=T^&@bt55X}UrLLRQr(TDA}X zgaQQ+a0CtBoO0cQju}DG*W*PT^#Cj&XaHmYkYc>Ezq`HO_iTGG`=|x9z_vD}p?VCJ zVr2IYx24Y#*3w zpKl*!LQn-12=5nHX7+9U-X_>F46h6yT}@ZI2Tuk$V5027P4=01BM%JEH3!EOjt<@Kc*g=~ZROEXsb+{cvrnrj>j$3_=?{0AsB{w4?j?7xk~be)D&K z5kk65gDv3&$Qtkhi%xt4)EB{Y;Y;OC1}#YEJ*;FaP!S;)}oY>o=c&9HJCj6@`L;Oi5%oYEV^1;KTf03V;BC zYLjoR&@gIZPX0^qWiAqA^Gs?0sL;Ap+QG7EU#lWtvX@g_3KXz~{tCCx<*fTrglsMueVvFeb(Mt8 z`~PGrD|Y3yjM4Y)oHQzf0AYxL7-UkJsRUY=Ek1?jP()rSEUo6;WWA0eW5O*kBX9xphX(cI(>m zV*Utgm!8kO`1~Cj=bcFf=}B+m9}9fh*Yip5!Ai=*948x|&N)U38nR}oOam8SAQh{H zR!{?}0T`*Q9}n5*t%XV6P(+T%swR$1m?Ya4TO(G4SS-{K3Rb%CWwuB!77|5J^@;#; zph%=fK_o^yBG0B{5Ex`KZLPFM790o>fkGmYh1Zbue@zT}(eKjR?s*L9hKrP742^v5 z2uR83tz<3$h7Os0U6%wAan21r_hSNpOjZtUH--#8C#Y(ll`d-;v)5&RSAB?L&}AFt)g~@BC&v7zIsyHEqv7fKLR=v&AGD~wve8yyyVGu$GhzMF4|+b458QB>e)KCKQC5^lq}VUU z0FsZasZVu?=uZgf#}(5J1LD(eh_;Jv$T8r(r;?M;X%N-?&!dMA$c|ro?X_Qd`)z#T z3(L^K))8?yqayA~7rIFzB z(w6`9q`FH(mm$#%VjAY>B?D1C>zMA`zCEwox~|Q5pP7k6-gc2YufxN`*=$x61+1N3 zz549PteW}5rs;DXDmoq0{W$X-y!a9LKSifrZT@z47MHzx2}d>J1Wdrf8c}ixAaWi$wDRF=+ujVw6tAk$4vG zCnM;3RI{ZaA}7&WYpQu!mWl#^ErJgUAkBJ8(f|<{QLei%-A5SLM+M^FXs83Et zr8JH6$qhWlXsi(c0!>)|sZ0qHC3??hErPb?!SW2vN|;9bJe`%*B%T2=TC*Nvpn4{I zfA`(@ngwEvpP!cS0;B6NADQtuW$kNQ*Nx8T={Mf^+?Sq@-~Xqh@6~sY-fx=I&Ys72 z-qJUC!YZtREdWMPcyFymh#>?Y z{Cw`+s(E14vb%SO4)$^V&>kMpc;d&kRwL8~MNy{#E5sNT0)PydA#o^QO-Ck%bf^FF z_Rq1AJv`s}e7k!A&E>YNLUa9NGK0Il=~XZLvwpm!cC<@xH7s!nd=gXi&!kK8C!(Z- zF=jwOD|$+uKzz|T^rprP&0|NJ24}uV3=ymnTqkYU`7=cAIy4Qs7I#kP%__{7ST3+~ za1lY^1tB6R0+3G((u{m|Hfs<}W)@^UhbgmW^9;T76fr`8O%t$cG@6V?(|TNwV_oWK zY^P&$aAkUM#m>gwng!tz>9HvsXFaH>h+eRV=({kDybf!S;U|z^_xwROrU5jX9C*d;#ohv^1}$|9HFU1 z9Hv;z1L}}~-n{<4HTETGPq*dyjt+BrQJ*lE`yp9G@?&+z(D6AtZw#klL%aW&_|7)v z)j0A=3WW(iu_pVGS-TlV@U3T`v8}$w>%-iV8q>VUDsUf@3fd5rBr^$*1&1MG&2c_|@VDF4- z@EkXG_x6J8{{O=kSVAcZ6N%{HJE9(~^Cd<`_Mr+cdy-&iU?2&qnqy)62}SiM1oTHC zNQ@)`g(@x-d5q7(T=T=9m-cvhx-7I75elfQiJRy$;y(|YEI zo=L5>#>}Q>rYn2mPxa_D*(wyJIoPYpIJ&Z|ju}S6$hD35Wr)i*e8A?xOV^%N24YEo zVGD^-NrR;ppb=KJ7&4<~#EaQj9~Q+!7e#Hk_E%-llDS#Bg@}6AXbM6LjqI-j;O-WS zoZO%N;QQ~jUD$hNZ!$A#PJ=C_j`)hbUt-jRe(dL7pDivTI{YM3$=geBK7%cFQhQ)A}acCJj-6 zD55MlkUY|1g= zP?rQjBqTu)=Nbd?DF}k(=KMW5C#U3)LwtxYF(AaTe30WL@WBWShn5LKT$$YO`RMNY zc+Wdk!`|i$hvq^OVG4dbTd1k-sh;V6_4VGbeovJ0-hs7T;ux94vH*B%oCD7gXlAySFWkKOjc@F|{SIh7tB$D{ zntKQL{^1}0@B8nmdU9R&jKd=pm~gL=ktrrP|HQE^-H|w4avDdMoWKQ<%Y>n5Sy@*r z6a?&4fse17nTQGakx5PqAWM280+2|(1A#~MTSz2t9c1-~4i<;ondyk~jIGk_HknJMS$bpoyV8l_pYNYDP;i%rMuw zEI>D|v@UbdbJ;j#W1m-?Pkml1HD`rB_)Bs$!}F2Nyw8&In`X3^P(n$Ml;hi210x`& z3#1H!>s(6~dFe78(~54Q5QtJMdWs=JG9bOuu$x9S<1dUOloGS(aljhoZ#oQNF#iH6GE`@%>(|%YM--wWfekaw2>oqMX-G?&q~VstO#iA*4YU3pE$ z{8M`>UXOKoc|-Z-g|SmxCqq7u@1GomFyW_wVUc3Y)8+afz>OuJ$mTx$l;gq?H!aUZ zN`2G?PS$6o7v(DL#z+Vh#mp{%ce?TDtK0=6p?7>@r*oXl!fYb*n(MjD<_m+s%q%TR z2_xKkv%n}KqF6J7FfWp*TZ&jjH2QeW09u%YWmYMP0Df6+gUA#V3IrS)O?EdIkexE!nSGU|K~h9g+#pRzL`VS$7(oEI{gxs~;i5A~ zUL|1%jDNAVRPG0gAAcOUY!ciyc9sja6J9q!!xiGe9cgE1})ez1=G)ZTIEVTF_kc13H zFHQ(bBrUh|%njFrxTc_IG0&^dCScpYAw*Pi%xfh;jNn>A3>8zBw9i0@D7tbP2@r!e z1Q<|QLx6ZDrJjKD?ugS~OJOWc*1!%2w6N_c2|X%Q@eb&gA*a=9QiKc)NI^g%a#xNwI!TZ45~mfL6|fN z1*RG(w%#<0U|jbHecCKoDs3?#4n7&~6YQho%0l>=Sj84;NDag`m+#ELd5bFw7zH#wq0rcCEmkQi|=%(aSoI1oI(&#EZx|d;Q`l z#<{qnEXz<4hlmGn#M($9uQi~a)^K#h-Z{)#UvAnc1d)Tdkh!~i@1to`?OeKt+YGP3 z?c1;4x^=79>w$B?3>4W$8^@E$*S>^W!M{R4T|w-EIgPGrqgL%&$dV7EX%lI z5kxS-$B|%ioaQvHb`OsBMP&E-{Az#Tz2(MLvorC_9brYG%d)I%ZH(zf0SD)%=hN9? z(=_LxcmO!Z&M)xTS)+jr_ld~XXCh*dmCA%oZ1s|wzcDJ)1$*zrC6zEn<*EehIWQ@8 zUgsCTc*8c;OD}C}V+069QuJP&9* z!)aanoU&4viCzuNC)aNqlW^V~LRD2Z_+GE~)vtZ+3t#yPAbRJp#Bz zZSg+#6+U%1Y0~*==;z8brE3v+&aAfip&jW=)0XrMp|NZY2mx2wx6#>|A>{YmL)np7EP78XK`k560>2_CQoO)P~}s`kY| zKtBVzwtag!ZCvO5WEOlRAQ$#i#AmB;74;@v3+Wn?WuyKmQbZ^so*^|9rIufhQAnG9 zzqpZ)MtkKOc6fh392~;^{mJ3sp=~PX94SUxiToD-moZh4ndkGSnpS}R=ppnU?DxvB z(+|TQjJ9BFsD}NlU+6rOT;qaD4_T3rxDW*Va^*wVjg@ziLA-do5{Raq+r$J@er2h= zu7^*?0^_qHphYf$fZn8O&%>mN%V*t9pDb%Sxt@Ri9LKoUR310vT@WmOHb|hKrT^@1 zo)DHtz`C@zfJDW8`ihv@u`shh;`C=`o=?R&nAb3!!08lb6PQ)tEzIUn+r`UU2m%r) zFfx-ZO}oH`N3Q6V&=(A{R4hy}k^+Zd0|S6Tm1)X!=3J9&$TR5YS+7@&`-9Pk|IQSHK&LaYX+n>h~F~|Ow3Gz z-J>GBVmKyApIQlkzq-^~84=nOE{A}|)$>1lF_WIZw0AP49EZRQ3M0HA;*jK7={7!D zlwv%D!Z9U@0*`aAr_4G}Yge5#s&p+xB&4nZI+idk1Q1bEtP1kvjzvU4Mht)wQ$`{b zR)T3e0)fQelEz0~(MFb}y|Q7aPJ3oc;DYP3qZXlz5HBax<#Rwl9YxR(QHZ~y4pp~? z6a_BJ7V&D@`rFpjEpg5@QMzA)qonVU?9>Xes?`v*f{)g=%P z!PYg0AW?$%D|f6*Y|?6Pi(K~XRczlxgoz?cF)8*w0>DA)y7qjEP-v~wPoOC6C>)|# zYn4)|?Ia5|BL12K`j<=Vmsm!-P|IFSz1WV}jq=dUS@DkdszCx>oz0KPm2bUy>+k+* z=a1iMC}Y49G|U-5gIgpbFewPYoxc0sJAePr^1UCvzB8~g7gOvS5A&; z;4}eS1~f*p1hqy03`zhn3t$2i@eWs8WUZ~jS)Qru4K)A${^@>w^w)gl&;Q7dhc(ay zV1Qa>P}Odbo2!5NhrgfcNiYA|fBnz#+!`_jD0&IFQj27XYoK3A1hh~z8G|y~5CI2q zL4Xk$P(u_kqilC)2vq=eWVXNOy%%pp6tM~(y=U)z?JN-mFy1N81|(-Ll;plZ2wHPy zbY>`=P3p>n7N|p00tqQ+)B0Z_7$?HR{M7lo`{m?erLfr@sG^t*uT=LA@#J_`O`=`W zqq4Nq=U2B%Q)~(Pz}6rE1-6dl0Ek9g{2RYzJe%R}nW&okr`hQ9P$;P3g%-t58$4@H z3HkLm;MVPz$2;!f!H3oHow6(k`3>#t?C8g54-RE|(eAP|xlKLmmiGnV6r1i1h);)H>0 z$pJ}Iq$rXiXXf1dw)d{8wbH$-d-rzt8IDdENtEmlJvDW9@2-8R+ghu>TI=wlx&h%R zH%T&hgBj}PGXQ{QoUkV|V?_W>5EyUOn5_KC(u|GgWM&Y(Nxf%4%#hN(htHK>pkY1+ z%#a75wM{(XIM6g7=;AXfzfhJb*%9D5>(An-J4gCPA0GmO1DRIy+t1wj{O3P^`yc$nOT?Vjas$VYC%^k2e*bs=EnOau zh(vg5%>r3yMM7w*x{;KAG~DNY{>N>7e(L$sW=NlY{%NsH14`$kvogz1N26weqE=Sm zAS|%&$zPnmmx>m2IT_F1JD(h%zVSv={^Q>``juaq{X7N$Ov|b?r^RIGDbWOgx!v2L zYz(KuD1lm~#zcd)1{GjZLLy;QP{fA7GtS76I$@+nE&IJ%Gxe1V8HGx+8Q2PV0v|)5 z>}c}>S3{q~68&KrXNv1Ff(wPqP0cJWrk(JhlAwC zi1%{7bC?$#@}ax1(eO@0IxFXKII;E!6EFti*3e}^x6+b?Mb7?wMh}EKiqe3ud?o%Yh!d> zf$T$i=(zK#{>PgF(>@vZl;uWj0PT4m1V;Q+pIO zA?Q3vGf@SypxUmWD+9<903zV2ZrdC#K?(%YHkMi)V%#&dN+Y#2uhVr!E2yYyd`d>_ zSkL|7gbrs8*L@S)d+2S|mtMeEjpaA?D(}w-9m_JJJB~ZXXr-P0PFoD<2#mZ{?EjoT zv@P#0yy4H94`{J)9b~g-Ih3MEE=S496)Fjb5`}y8K@S+Bgy8i6mJmRXpa7o0ccUe0 zY=+d$;0$N0(X3bVUF>c|#Whw&XWMkOL-E_SlbpzUUgrD1qT{ul(nN>Rf)w`{fD)=v zOi=~2{ih1-mZ_RvC{9{tkYS15{kI?u+bs%Zdz}?G-v+vf9T8QLETILQqtpPE1+@sq zCd4Tb#d0MH-g^=0?DEkv*qJhSmvuYuz|O6RJAFc^i1g>FpbTKV__yDA|M>Lc@bCcG zc`peeuwVB}QU%aeD3u>+k3ht}ld)))WtM0JMugSpN9(eQHuWW8i)qnMcYPV7m?&>{ z(Gmm#LZlL}YGLJLtsN0X@M3Pqvk(#nL!r@tiW(FhAyC3dNu}bOhQhMs08Uk}Bqs0r zwfG@fKCzr`)hCv3j46sD8lagOo`9#v<48#P+BB*IJIJAvYmJE4xuTFjts@VKVHN=wRLJYK8 zT$Ux)+Fl&XKW9K+#{jJwEBa?Dwl5-XMb%u=S!W)FiC{LH9XvSr@>jm{^I!Us_a2j! zffomhq<{dR(Baj$U;Xdj_{MwR`Obp>nPq8Es=XJc5Hv}1M7+Gb91I2(%szA_2XF}> zLTrz$_aoQ^%Dr-o&Finf{`PPF<`?c3&;R8wq=Ors^YuKlpvxaT^U_OSP4a&?p1u9b zACAXkHMS@d7aaVQKvg>$;L88FDoA8=sDh8e=xjQz{pq~9OcE&4r9V1jj5QWpdY2L| z4fl;ou*d~MR(p0e6-A*%N`62=>)FNG`3H3kBV3ctkRAAS2n7=(FfiNoysO3-WNrt? zbT}M_u`Yv)2i+fz?%v6tefFkJiAdU8R&9T-STQqY*_{V_Kn4gKH;$W_7AgFcqaCT) zIY~>pfB(+Sn>XvazC1tGahnP$z4%SuX2}ijR$Ry= z^EMH(Q(V9lL}U~7sLU>DeJHyn=4qDA{hYFp6iF3aY%_ITmu33yyYD8ca)v}S7#$Y=X+=Gj#u#(EPQnInTF9dL!Rd^yzs(je(l%hmI=W5iYdJD z$}8V|`Q_^Lv|J04t>b%L+(|-Q#&`Hs{LEROcmKRb3H^SdF$WlfPk51_i8WC|nNBJ+ z{ENT%bN92`s`|zoZ|wilF9Bq__OI8I>KIjt7>qTXI1m*OT`?M>G$|r+$cZl77@MLzqsh`NSV9JZ2~}C@tI=z+MLXLpU73prB!%fTRbiQRM;8};To{d)HXHuquFoz0d%l*)x6ccRD8tI=MlB5S0>jaMk|e{T+%JctQ8p@hkV$Il{h_3` zF08lQGOnco(WYraYnW2!P!vR#DFY&S4uFLX&2CsS|Ij)2WR&c!pp%HB$?%RZ8zs%e@= zBVg3TrG@qoUryhs7rD<%%~zFM5YeKXjwjn$Fxz5Rz4-Ct$LHs8`}XqE;U{XW=xos4 zP}x3$tPRjeq@*YUaQ*p9^@>9~$EC}8*IB(gL+$3|wtYgMnoa83xj+HeqbmZa7a@SY z0XotJmiDFTv{~9PIE`Oniy%URalj*DTkV4DbPYRd#4%W~$mTvm2utoW zt`@7xvUHBiGKb4~)3|s-e0$9jzH`1oL|st5KZ^`#`P0L;AcQqnE3P)TSVy2z6_2-W z+}pc<2S|mZZB#QCY(Nh%ZwWu%C?X7I4FEWfQH-~V2pGFrpS6eh(JdNJ6$*={0)Sb{ z4MW8gC!s_jZ7>PI?SnT2!dM$Y#Qk#>F%IpF?eWEU_=)Gf_#40e{8zv7DB}zUN&5n+ zFjd>o69Is8teW8;zxDlp@h?C4z5n=ZlG}s9RGNSW*kI6v0iCckJWA%!kYHTx58SDt z(lMc0s3JO4*S1ZjJpiaxhy-OaEJEg-|3825+CP8m=-2q_`9Kiya!~bUnje_**h+zZiYSW-ciw!tMu{s?{tszrZNJUf<^{tWp(;vM4KkVb_ zY-YS4Iig8A9^5dupBW|xL*TLKC8d`{uCPNxdjuNXc}Z^>W57LwM2(#Xf_L8d+y~+( z8QeJpGDoOr>hl2;sCCWU7P+ryW#daDf9VCB)OoQVLNOJ8Fm)cy$zOc&&iUl5svtFF zOm*|#r9Jc*26c_hdyMJHad_vu=S_8RczF1UPbOwq3%&^emY>zrd&8rLSs`>8yGOw7 zP1-GJTQot$Cv8RS%`VdIEAh-*C(F(XYRqVxwE?b$z~A2v>xx(brz~h&L`!*HX1bSr)jFDQk>+)tSo`ta8I&} z=h7Po2XKUtPRpM=y?1zVb~c&KW{*#7eGYEyQb}?PH1XjPg-pZ#9}SKUq59OxX?=b! znN6R0P?xvPK`sY3+~7!{_Hh21J8h^gnYntV&hp&V&n_bl`ubuv@!|2(8V(kMrEow3 zzBT_TA2&_&=)^J({aje#=*SOp3iU*s&y!onb4|0m0m0i3C^6H^31eb#HXBb6>?8zD z-m}(DA0oinVE8zYKe~UzmV0~8AAJ8UefaR?`)@X*)1^Y_Py+-`s^#1jpa`|~3W9)i z40UgWLD` z=m7I1Js6%puzN7JFb8wCck4jke(}71bdb6=w@VepL5<8NVds3bAfp$;_^w(JN!lG= z06|0`5FuMHFfS5of*RM@nnHCTWSA^iu5bO9P}rb(72KQ}HXcm{9$1zi@@1@@K+q&p z05C3j5^JM>{2J}yYTFraDiWn%e)~J=`Q#1j%7VT*Pej+FovwcyB9rvWg^>Oh^}ayN zXfy`aZZ9G0c=W5FK!n&H*(d;rtNMb~b-ikoIyzwpHRfD9xArKvk#(bj3rL(Gr7cJl zX23J%^?N`NMqu4=Xcy2Xm6ME4_Y1wBtK1R*cr@koiGJ`aA zsg=w&sR`ib3^l9ApxO#r)b_G*RGCz|z=KFagb-^@VM{kq@om0moJIoZf-KS2oX9M( z!kHm>h%0Eu#1laYp}n}S(386q`t5?O=}OjKQz7xaV3KXxL#G_#`m4n5Efp22!2qVK zfJ>l2N-T_E5m6y1xPSo>*kgNn-IRv#AxNdm>JLQ}Hl|1a**Izx30E?{E0lKN*}NRW zwVDS&x=miMOjkryD^}kc+9=P|Q=SpFE^hB`Uhoj!uKi)H*A`lwl6u3~Z0n#Se+H>9Lyurq)tEqC8YiKs- zrpD#^PSwmRKds%o4z-tA69TXz;PU6XL};HRajTb3gi)3g2chMA#!daqhG2QR4TA?!x*}|3KD00kBIR&fOOIq0U9*`M1i#hq1#X%yLnR$ zVZy?omO`6~Q3Ucya{gj}fa>0Z1lRdo#?80wEo}XP0ytCkU6mke_uCO)Zj>jAnJC@$ zMi|_bpCo{55K)&Gk*lQ?y}E`($<4ka5IM(N7ECJJs>rQRLr zpBgVAk$qo#SAw$gye^8gNYXH^rWodiGGhgd4N59g3PhA(Vy%r1o#Qh`Ru&?1i_WEn zw3tq(odz1Y($VceXW5J=Z}`;BI3Zto_@h(*yYJt=`GqgePF_j*-J;O~1MD+|kaIpA zH+3=e-e+M+70L!Vgy5ItF!Vuz3!x-I%#S=l$cZ@WJuwp^M3h20$+og{<6TLWDt zk&@CfM_HY7fSTvrNaftDQE(Q50ZuZLlr|sy@ArTCoA12xp!n_>>uSuo-3w%0a7JCw zKsqO)ec&p!V-2BhP^9lmt-JXw%dEB0$>h5Lw9_a=Mhh^)(!>(AVenbU7qKM zH;;yUqm#2!FCm_=XkA&BF>}*2X`0Svvx}1t)w zzUAC7sp3w|NrBMBdqcvN6hB?&xYZp91>5!!JQ8KdY>-0;s3G5Lyq%8B9KoQXZ`3zV zwb{hWh|QpVygu{e&zu4JTG;W$^RwZ%?I~syT7b>j=|n`n^rbI-=2w3eh%(3mgh&`` zL=vKwNeG}GE-qev`Q=w$d1Zfpe?V4(c<<5B|3})OF42#$i6`Un*T4StmqPW||IyzM z<FKh#yo|${F~+-ae0(7g?q|&VBu>Qp&Z9JHSTO;a?9@Wv-`0~1 zC|$lwccVG$6GZcv6H&Mh%<3xO73#Y7-lq#>obBy_4?01BdVv%&BD-YJz>E!t5bDWf zxW7E&&RrFp_&`L$bD*hBF0HkOO2Ry@oR7yd=jMCUu&ChSa9`YD zK5Zmr=CasRNyP1wv?AARKAoM15Ec~g$)#KzpZKayQyk=bd7cM$^XdHJyaJqoVKbcM z!_s>nLO47a8DkKvUw{h{2~JvacjOd|hQqy2ed<%sKd|5X-n-T0+ZXTGM5Kl`tFpXW zN{za;X`xF1wQx=FpfS>5WY;RVxB%OPaC&%%{?^yN<_`}=KL`U*0&{EB1z? zJI@dA+)wY_hl5*C3?a)T1;^kK3<1Fu0ITVALHwUirz2}c>Zn5XWwkAt6z?3 zA+^eKY)S3dHJy*A@4okl6%K|_WKfncDq%Q;L9xsfDI^G~fg*vlC1{fX$hz3Jpf;}} z(0)`kAOawDdpW5^2(l#w#V)WO197J##N5VZw(2sYq0R63A_;<~$meF(eaK*tL2 zuGQsDYBpYUBjd0AI_7r`(1ZkQkc#faek20M&0|W4nO>?ZhEX@jNzcQ02r;usV`j^z z^zNS>M6@%buVpRiT9=y5&(~8fhybW`_usAbM~Fb|{aDwBR&KsCVQga3K zDa>kc4LA=HzzKK&fo19iy&{?v0X5dhdVWDfu_khXH+$F>gxMI<79j+Q@irtfE1fFR zl0KHFNs%X-SxJrGAKEW;Vjr&-KFT4=A4M7c7?vx%ckG(dOZVWI#T z>CDc#K7%!B5hdz~Er;5xk`0gtfn`vo`FviM<>VC75g>w}2Jayox^79pITyT2YYpGX za_z27?|>RdL@JF%MHJ_x+77v~mASfK>_Vh7PfLGtX_R&i&}|NSpsrX&-ZDT(A)JV= z?$J9gR^nIQOPiyu4j!tiCGED|k5vSG0PpK2-amseU=lVhm^sU`)(13T0oK}ybK+%@ zAqgmgfDr~wni?YVv)R`8ANOloYa_k4TVv?kZsjl!m&ll?U!qhXJPCF4d zu3IEYQdQN(#RWV8M6i4cqAhaChxE{X2k*JK!6eA~&7B7MMV1_X z^{@THKlyub`v@Q%1pD!=<%FW$AbRexfWdodg1j{)VvMd5{GnNQo3s1%3<&C1}!) z@&=VrQ_wwtV#76%`K+3ZXD3=;wypAJ<&C;>?wUH(*^TD*$OIjPx+Ef&VQ5WD%#892 zIui_uch2M!3xN3c!NKL-=k)&lhQiz6q&09O$r04$@!8@kkR2rD&U>ZXVzuCqNI_sy_A9=y93UgY5k? zpW^~bNQAUettc`mbbEGmysd!lt`+r%`=W*p^fVg>B37hu9oRq%+sgOn}48dDBzP$Kg zTvgTW&+X?&k_?j5M;8s((-1f-vfR!p4>VP{Kn+&U2ed!julbP8=sh-|6h${D3)IOn zkw@){@uQZLLV3Dx^TR)UCHaAj5ppyP0RNZ0tNW28IqDISnf1{fBh@p`F8ou-vBbcZT0!e{^!qr^7sGn(|`P- zoSb()Gec4}jxtK?6~q;c;O8Kv-82BnCp%~5I~GcLs#ueIw1=fQXe~KE9<>qsd+w~ zsLYVjROXNuG}(o{`Si}coui}q(cS!DKDjmDJGwnPoac~Fd^>2b&VfG*5O9~fn$Ayn zbp~7kwC%?q>L35pou?mnKB~nezzQH{Cua$|XH@J4KNY4`q8BfMA_;gXeLCfuROE_D=`2|!JG)r(TSzydBSw)wHVM1ZDvFk7c$YAJX2N6E% z<@k9GNT{=n`ZcOhCd+l9ad%cs3!Lp{d$WE6ofN2z$&}k~Khy?{QJoM%242W%U~3x^ z56CoRUjvLbYo*6O#?psEc9;g;U>WR>-mUrjlp>%A*g=okri~0Cf(bG^j=k{A4 zQBgPr0Gp9j8-U`G*5R8m5)e~RmIz(R%${SYXGzy230ULJq+aKyO@ZhUK%2mEs0mSt zh!aV3zvS2!jb>OZqx6!7N~&+7detA1MI5B{>khC16d*~%Qwtc`MbD0{IM3qA3&t=tgbYF((jPO0I@5(RraUe*p{ebhqfjgm~WhMJHyc&(`uuZrN2v>_bct{1ShBue@&p+>Huzd(_Airb*kF{Mms zW1!lP^rRhnMP%Qd*N{bL=++No!v&6nKoqd7BaIY}d3DvrcxekL zZv|2S=ZbUjh4MLw>5f9E+?1OlMzN&04TS^M1BgZe6(E_4H3KRE@Rx`<<|)Roj~k*5 z12GQYORurX(M^IlOdS>1fw2L)e_t}tORT|EPb#&X#si0v8ry{v@L8#GJ^ZgDx|n6# z61`!B{mi1kU#u!{kTscG>w_@$r(=yP@*zazX_Q2^kQ$5z=va=H<%oSwy_y;v+ag!? zUh5mC6XeV9|EPWa!O2@+d2N0-KVO|>a7wnWDk-qB7Tl^)1X|_Jsl~!O*OftQZY?Nk z7>kHSRSLxUrYjIM4JbXiGWgOvx$Y~-RoJgM-c%|5Y0`mlBiTWnd)DF{uqV)&qMWcd*h<}MU4T|hx)!ciu&`QD{vS`y z9-r0c4CFzB)<_Nkgf(zjD+HNElR}djrN~rGlg3XR7)6kT8%SS&gWw|iB+}`Xv~1CA zoftgIvb=x){%W;){P;05N04=Abna@1s4MgYvjQSl_~bQ#&a>2Va+XAm;)TwkP)JcY zNkfv9qCC!;y)DQ?`tdc3!PcKVUE_1W1Od0Aa(+qT+ZcWlpF=F=`5V*l_^ zGArObctjjh9Tam!Y{iE>C#r4O+8#DumgP7YFcGE2+&%*WnyBl~*=&aB% z<<{54+`(G&$+IU%cOSg{_S>_!-jd}KXJuF4oSpsi4}S3e`|mUJo!hsKNZWHyf6h{o zZozhLvYul+#)49Vir}1g#H>+JLjNGKp!bR9RfSF%D;D0_elUv*n?h)I=yoy2bdy?Z zP4id2aQoK5?OS^t*8SE&xwk((xT9_zg36$yj@g?-p+Rv2(txd{##C77^i;L$c z$4|~rpV;MjF3r?%f!3Zs>sBgbOdrBl>Ji3y@U+JtNE`N}^=LuvWax@v^-F_F0V)y2 zihbXT4-%M#J%tOva~NfSQQ&iz?;#HRQTYYqXJoccbP8AOcP}&zr!tbH-X@HNF>v*! z2(|4Mdz)n7<_v>LOKI09;y^(+Xp8BDVQ037Rh6G#^7Au1J8MqPY_|$7+j`L~dEgol zQCfv40Z^KS$GFn~1jRt42}*!rpowgKMG6e^`59!&XE~G^;2zMuD%c@9MZ zWuZz#rl5>~*=ZD|kq9Dttb$(Z;BLR7XJjxsryAzI#u$?*{1B*bAkE@%2jT*4Y+5QRF>1$KHVja28qy z?}HCdBCyklBE(3H1gI!EJS27khJmGXB;CI*dhssuA9@eoHN@h@Aqx?xPBdvj&$iTA zQ54g>$aAw(PIh*uJ9)Wx_>+u4^^SVV!qFHp$l_~-p1>0e`$hyv*K^Rbr0Yj` zKMun={hr#2mu2r$d_AolatMThYiKwP&tkGH6ge%Sg8^E_%Y=FvR-SOwFi3KnMS2HJ zBtm0i4Pt~XNp_-b1GHLO&91{NZwEsCU)JFbh~+Ot#uH}@zm0Y@LYte>P9%^_jbo0- zs;b7kCF$#@v|)LkM+j@?=D8}_M^))L!^vD96R_#1D$(ZQtJw(a0JTI&x!_~6l_M=|#FQ}llkh{P`uo57!{zBOiSk)gpQ33>zS?T1I)MK6P{@z=!edkZiul;({f;J^{cLZ0EVC^yRu@11QHzL^-RU&H zGeOZBbD!H)T`1l9TKh@B_syZ@>I}{vLork4)%%*4ZYi1EMMM%cF0YTUACoK_hA+UL5AxY^v{^(g7}Z46bF2cR-X_ z9`ANapmZ+?!A@x_BuJxhdt9Zvr1q2W4Ka+qJjxLqxMb>Xnh30OhP;%LH$uasZ- zA}l_H=N_yB#h+M!J4bNuORMSLG0+ZJfK_D|OK)@Mrp7e0*^b&RKt1lcJ8;*x62e>2 zam!p=UU=_CeZ*9w>Nh#(Lp;u9`AqZ<2ma1tO8>*&we?7nT;+4(mY3?P?&|HCo!w=3 z77N>J0ph_%T1yrZPnLLD#0&BhFP8j(5E8$L$K?qmp8Nn>V^0MMlI4GEekGWmi?RJ0q_!*r!X`k(bKM%8ZOS`JFGmQ=ZqlJ-QVFoDq@o?T_z$ za`G_l>jMbJt(;Ix2vn%U$H&L_#Fp9-CK%hzP{IONxqbr6m^X1D2o}kE_vSM9T$G07CR2E73}7+xFJ1 z$H&h!oVsA=62`ZW{`lL)@BI!KgVwd@56sd({_DTH^H+c4Km5;|(M!|)mybFt4-Vnr zR_7#5567duQk9xvz5pm8ItCzS5NvaPe0KbJu{;lCPfj0op!3Da)7UHoSmpa$6<1A{ zx3dtcDNBI{5erj`>SkA~5h-!5IH?m|_P4x*GAE7JgbGUN9SRk(|MMH^s-s3oU~?Nh z1=RC5c!2%K(ww0t&s_(`lF*O@gjPhKG>$Pbryv5K(vTmw#e>G5CZi`}dimVlPsaSk z>%H3{;|av`;TMFwv5N7s!o?7t39}&eWe_sGa$NGVuQ`Fw%7DI#vnRIoby)c}SlLg8 zZ!yLEpfAZ5MH{6@F()+#cziGcn1H(h!Kr2?mUEmftzF7Hr(GeQoyN1dTehxsP4qwr zEi2L zRT&FSb%|v+trag3wNbiIM&a0igG6^P-?%bF8` zumuF9P3ern?`HBw8UoO3?A=SA-=P~F#1;pihgt+>JR{?kZ|M9S(1#RI?^HzFQOY4hUk3z%jJ z*RxX(*Lr|2~B*3E9`FzqT2MCd*kQhm%Clsa1Pj@S(5G8d*lAcru=m|qK z%_>?iTSqG&8EEciUGVUD2}IPDJF|hKgpoW%>)Mt=>n+PK^C!hF?TDKm#%L5H=7La0 zC6YguVXroITCJM!r4P^QQyMH8F?iLl@FGMCL8NF30+7{!(!{cl;^1B#>N1oDrju^g zR+X*HxiL_6pBgF!bv0qHY(Yuxzz1px8D17Srt(aQ8!j3D1ic2;w%CvTCurn{;ieyB(F4^F9@Spg!egucJVn?2~yg+eD!oWnFZy$vbA(MA9 z1U&s^TKl|Hz^{?Fi<^56=O04X>uFEcqQj6Yb(}Y?`!Id~Hmc10`va!fn zEEqcug5qNKcwEabyz#1#7Tz;qaTx(t06qdW7Sy8XEIJWMU_cQ!8cSnLqJpKwl8NKB zmQ-SUvFbX!yvUY7?f&&@ILBbgxrW zmlh01?OZ2;LO2AiWsW3-5F#Ljn6_=1f1%4l%0PanD+NU4oEwtNejbw$KCeZ#|7T(3 zOasZ5le^BB%^Sb|tH1x9?~K3l73h`D#|zt*g&_j1FCJHa(=jn>szlm`p3Wc%dY8}9*l?}$t^9OId(rI8qhndAHPt7Omfwn*mSX2$mOyu%f^#5 zWAFXN#Rb%mdOl9|Yn&s&4ig0x{b&GRp`b3lyf_TFfyac+~grktuk%E zGp=Y=w|22;lu~Hp?lEwkB{qpPn=GOsDqP6yX)|k=3JMX;n#czJon1Z|$#?WHXai9PByWc%| z@Sv(Ht##8h3a~88wrxSe&!8dV&PE$IKpM=e5U$duxB(EDAF2=%RnrtYh1vO*<%Bl9 z4xQGesjF%-I-2f}Ub->5`H~**>*=^YJUV#oVTFTDyank=9C)n*xfF7%k1oofAb#N*NUdh>_O*qVEk*fn>R=wa*Qh;i~^V+a^Ba zb^|ypZ!@6tsu%9>uKL+&w*LUGFV_qFuAP85a(SRz{n?+FxRJ{?b1jFes@5`nSc2AC z>3URE(@5m@4(VXF3>W9~lZ(a4#r$m6p3m&k!omhe%ybJah@=n1p&#e?R4NJ)iD8{IveG$A0GwqRAQ%ZogO*SlC=`?>)CH6UR2p;vM!_uuf)ko+4cb5{ zmC~p|pa@E-s5xst8=~x{jcdE96#6nnCt^y`MuCNEuA-)#5>4z(-y~!PN3JrYIJHBj z)Lo};nQKd30};&Upv#7xm;RtUP6&+bXNR2fD6R$6=vv_K`54fJ(wqJj;r8}<7AfRe zf|!T>?s#G2sWCola1Sx);ZRw^H7QKl0cx2u{&DS!Bts;KGU9+mr9^fMDN+c*QU9MC zb8tR!nG^S||IFQaB=E%C4uFR3_Wb9N0sVY7ywpS(2_gbd$@B6p02;w>}?{*bl)Pvm}5#Nn^!{=_>gGCsCW@E~*1E-WCBwoJ0dWe|hcN4^s zhVgA&?F348Qz5c2E~YXf?)drMgOsU$N&!Id@!e+r=*}k}-zfkz}TNoM0ee}^sKm6gxC#T>Y2m?w%V0l$%;q_Oc(m2_#=d0s%8aZVj5e*!<9kA&( z0G$!T;abTC)MTQJh=BYrdxMg{l`PeHEw3m-Y}^rI8=k;SXk^O*+<+n(t&P9Sd-YZ5 za~?}$OL+X`;)4%9`0!p#k`$3O)LX(;aQ+!S9#Vlrx52rK^Yf~%Yf~i9T)?H!4aLn7 z&sytL6Ovz-FVRMF#T>oZs`k6v@bq>j*^;hBX47{zpZ7RSPI}oN7p~g6O7~b$+TqUe z4KMuU4$1rR+1UDY6i$%1>dVZzNZahhpaCu=s(%4Me~J+c?|Fz2hfNlf&svJlRxsm^vd_&{WE&< zX#Zd@)_N9#aWQxEmrYpe&M^^Q&Tr3brM98}ejqa~Wv%AXh!l{ki}f8#gi<2Rrdv+?Ld2p1Iu3km#eQEA&YTS7eLXfh)V1WA%Obk3FM3$?y@Qlg5SH>J~(~- zKZqy>%KG&3QVFy-pqP^=Cc}887u+7(lDmP_T^S%jSGS}=W*=TM98~-AEW-2HtPmuz z4JJenQJ#C%Vj08IfkU7`XR;W*_U3s1NS)5+P16)59v#W)Q2^zk8M$LRxueccXNWO) zXaiY+_TpqYKfQ5#esEa3|7P!Mek4h*`g<=vGP6GVdwM>5E!!&@3xxIn2ZT6aWC<)} z$s9ofB;d+{KZUD>IGBsMt~gjA3yB-@Wrb~wEnC>$9nZ}6O!stEW@To?dqHJHRXFMD zUS?M7)e8Bkm5Pka>WZw)jE~>@z28$+^ene=WVb{FW*M)u0@T7PD5C*kQ9E0kgYe*? zJ~-?xHPXMJ!jrO~-qQhTGTlFEp1cdsub!!JXn@F<&et#8YQ7H-AJM(LwXNDADWa6@ zQKB(FPjf8RL~7>HU;gx^2o|O{#sGjB%$jmuOek;-SOf1-IPO>NMYAex{pnBd1!f9K z0BfQ^#GFTFfpv??`I9>Uu>a_1M@Q45yuACMJDixsOYR&S(kVbki82sHT|j}jco%&y zY%~FqkKuCrP7tZlEIzoP@!-zh?|4Qs_lF- zp-Ak~RtrIg9FUkGo5~bpgkPxDRz`W@A(cleevqruu7}A`21)gi5$S;-kW(}q7YQ4l z3yKmbSW&OysyY()LhmYhes=lt+=a%uws%Vk{_5%l^&R(hXdB;MQP&pG z5mDkOX%ZFV%vd^ObfMM_C|j@V-t_@lDJQ@bj4?-jharG$(2ot;Nt77S7=R+}33D!W zt+pDY6nHok8R1E}T7ob}WjJG$0^fPTzS0`GIq|^+Db>{XhM8KgIsg`QF?U>K^>Gmy zUhc*$?GWfA(u3apKUp7kxTf96?rSULk$%Fc=EFN#H!73YzgMzUFbe-1e?;P)`RlGc z=eRtQ*vguf`4V2y@)9xH`2X9gjs2KomPC@FC_-L9wiV(kI`TB)^SS-LF8~g}3-moM z8oYQZiyAI2q3QVY3SKUK-GJ*lj*|p2I(Qpl4GO9xG(lNJbnJ*IXa?;)tRy(WRR~bP zVHk`=Or)m_2Q=WK4oc$SwGGNiu!Wy5hXtom1Fy;&TPS0cAt}qjac8X_Ou>3HXiqCs z;SX)BjY~Biz&nc?h@~eYqasm?AX-#7S8k*_I&8cw2{HqfLbiwcNDpSDun9qFC(nm^$syLm$BD^H&_M?P;^Y8PfrsO>?uAK?9|WbL z&|uB5olT)MQWa3FwH0L3tDDa7;C z^IM!lw9P>_lr!wBsgC7*PTq2!?ZYUl#@27tY>jAuqq)43vG~&ux1#MP17)Q4sk`ly#BpXN$eDZOOfaBTj z_&yr-Lf#7S4nv%B328K}hg~VQ&7ll-GhYXw^F8`V>~=ZC@WChVc*j2u4d`UqiKw;4 z!5}1zOq^266QrRMqva^uED4<;(cFLpN=6J$jY-y-)O$>WJ%O7hR^ufq5a%` zQNCyk1{RR~n=r6vPo!>m3=o9J<71YNNoXvk-X{r$XwoXE;9z4}KxU&6?9;_6R5~Cq zKzstVVE)-N6rLd6=tt$X_w9 zJ^z&HIWVf|b``zNix9UY0KD}>B9H+Iz}(ff5oa_6qM-78fKqE+*Cl35Qe+8LrD2SHa`4-5iO;E z{nD4d^wwK%p|zoRs7xBNDDwGTidQ6h{DU97{r1~WzWwb-$H(5gg3Ow9*<3BO9<+TI z&B9a#zrHW?wU{q`-Fi6 z0pQEAKR_z@xE3tzY(D?Bw?6IL7OEFPM5U#&bICDP6$*LNQIb;A)6?m}0eBid%ZOD4 zqR4wFic$@D@?=7N-z=BQqA(o=-_>jSs=9H=kr*uF%k#jC1e0P-w~s1DuAn!)VD!Qm!4j8KQQ`QW{W(8ouVvsW477? z;^83{MflmfLUJ)HDhYMlL5=X}4Ykg7Fh4p18f2#u0G$Mzw5Bv*1R>yw@73M;-MVfA z+r%}FZ=XYFrqjETm$&EJ-Vt)wvt#eQikhVCBNqVrVIVYu(Jn4teCIpQMC9|8zjJ?( zyE;9k>GX0{H=T!Mc@*Eg7jZZ7c8#X|wyMDfI)A(JX7A|XgNJ|cm9NZ>j<(A+I)C!y z8{hcGe|`76Cj&fVopZsnA>_g0bn_D;`u+-Y^hA}*jJZtv9EEDiCP|$@UAN$3z?6_u zsw`&Zq*6t7G?|97QuFDW<9vAk^ytCElhZruV75FP=o{s9LUsaL0YrXg=9m_DW4lKkGs}Ldz!bn36VB|y-c8ewvGRF@sgi#>c))&h#G^uR@fN#(vb_yX8 zt2GW=v(z_^n@wfL;%1 zcufX$=lVpw6&cGMLEcTBX|{F+`HE!w!NlB+wbx}pmQ9xmAsbR;N*3Px&bz(`pLojg zvuu~%`&G9#={*PoC;C4^*FqC@DkF9cj)xDv>>z&|$Ht^TRKR{XC%X+IVISrJB0S9^ z8%9OYgb)TQT~I!$L#ttvnR?gy)x@>j+-6ckWe&s^0T+4UoH1DslF(}Kz@W7O6V*8e zBcg-pL7_oeJ+Z2+^n9XbQ#&bOIx*|*q@>aYMV`b(*n{2VCn`R=I{oq@kIQyr#b{$Fv6p8^ON{7{LzUmilH7tthIMhQc-l(#S; z-B}tqkw%wI54dp}7;V^hjvWj(oXmk2i$#_g9u{c6P009=-KUKn4r9a%C5v^YctEU0Q7a@FM&YfZo_viav~=gG44*rJe8Z_3RVs*SBrEsEyVX zqkI+MSi#-h-s_FoJ|AD!*LYo17oBpEy;WDyL)Ezo?15-uT7vv&d4Zq0^Lu~($DjMN zKNUSujYBFMyAcL+PNoJYeGeqdbr}2Kezkt*-%q9*G#8FMuxEy;?SQ+`%EWjO!K~Yr z8N?w{DQ{ELzB!jr2?_)pvINipw4h-G09UGxxSk+Dut5sP_qrghyZGmSdHn9v>gv5u z{oxnOa!&v(6e17^q%icx{m=gOU!EUL-~Q@Xm#ft=mk{`{oO<8;wzG*70UoV(0sWS~ z;1M_kwI#*;LL=Q!*Tb-9)OxEy^__os@3W+<9uxxhu(Ha}@A&(l(-*#W4uSv&m>;OY*^9JUv^i=DND8j4!H3 zWrYd_r7@wKu6IH|49j!?5j8@ML7w#pJ?%qf4({D~uT{OWok6eFY&L6GcN!5k%(`mA z3PD1lA!rKL25Z7ZR(O}On`U~jR~@kS=FXwo+dDit`cHtBg|n$9XaX&dZE@MQ&RRNs zaQG{~PL9tXzbie~q@WLQ|4sPpZ>qbW@jy?Y?_seF7a9W*^J=v^yk8V2 zD5otwJSsc)f;nkZd!;oq_RDVXu5H~j-*(GqZ!Rv*SvU8NO9(7b+X|UkI-`^VR-~+m zKR8s@)O`;J2LP~a`G@x&-8;KC|H=2?o$jBm7R%Xw(fQ7EKrx(_{?>HR2ctXztB8dt z?R=+#A)$p27nN4`kN@az{%ZEyzX3otK-p6G(GUOQAO3OiPv5-DY^Rk#^o}X&lkVt7 z8xJ9Dh|d@c$-+mZPj_1m3MNj6)zB=^F|WCX?Q}3YVDjKXLxB4v!{pJUTvmLrtpL8gjmSIy*Sh#zd;0Qe+MV zz$FP-fxxg_xToh_FZ|V|uNVE*MR#?%eE<34{ikbXjjpR#`du)gM7D%xuPA3zN1<+= zDM|!`_&@Aj&5z{9b$_qE$ZmG`%wV(*LgviMurzG%EFcLsV1qggd{i1s#o?-*QmWTst6;0t<0?vNk!?b{Eg^B`jKgU-F)5OqA}z&Q^G zG0)ds;!ext>^y3l!--%&l~dO=&Bzdjbihm@PWh?-j2GRFdi1>KvWf;mDa(kE;O-ms z$`xGP?=dhPnG=v{I6-hK`cMWvl#0(*XbXru0V|lfq>f`}&=(qxEh_T`ltd?ih=!)w zLe~v|;QyaOy@KTxtS(_)!=@Rw#t%#b9f?1Yw%TZ=toIm*N*nD%guRIRO%n4>8RMny z$?Gk|y3n1Wfc(MHtBw(ggD`$XKjkb4RS3tzA3Cxz3Qu$d<%8y-Me9K%N9F_Nkxdqz z2sdkuN~xp8ES+=YE)Wf1Mol~>EkRXEWy5jU0W4~LYD!1`=*j8kvrn)3xwLcUsG4>2 zd-`mx)dqVJLWjTw0Jv}gw-R+beXI_P!C>DsM1-iaIr;c~-BifZOsoqeGeBW68fVTX zvQKjSFS@lKR?hZ^dG9HUd>k0lc_?h>?OLtn*OG|3sFSE(tOQBb#GI`KkQVDhVrG|} zVAag1?A9+ksN{8YYA>X?PR0RY)fYNVBvE)b%)}AxKn!h_-k=7BL8|5h5$pIJ2j-Ab zQedGp8->P#vE;N@1sLIlFKt&&yGc>I0%j$Y(_ty%{R*4{=Z38?T3Q|^9ZX9dkrVYT z_$!qfm&*92CD3Gs~i%*9%PS{rBmw~g~D7OfS2}0 zfH57?sHDeo9HjdB=ZM*hLDmQcQEN7RLI*>@I_P5ca6hL%tG%AT)3d+HE4hVt$tR6H z<{K37$ebaDp(P`UALrfS?Ti>_%G zrJZ(NSC-S&vQ|n5;^6)8-ic%#7FZ3hJvioW*|7&+BeM?3*P{DPo^-}*&(FtxK(o~t znN!%|*z5%nV(AL08@a`I46%_dvW{537Fe-k;uou$V6@=E0dJKszZkAa*?>_~iWYr^_B1e)FwGc`^aNVG}(0 zpm8#p%;&|U-<|*L7e9BEb0t@Em`s(`U{!02rnC;*)}Ye17Q5fXIj5)R-YSM#>$0jU zYi&Rr@@+_?a=?PPU=A`}F&s3tI7&vK7FlRtXcff6^kF#+oyz0NJ43v&W~OeDc}yvi+;KzVZ6Wv2$)56p7Mvh?Y`xY>XM0z9*A!ed~3L zZyYZ!dnpQC&5Ad^9Zv3hK!m1QJ$<@<*0jq$Ib?VbSAIRI;rNxATg@9wrkIg5znTQdfo8&bfSch19Iqau&tS~y#qrj_2M zEtcOna6G_^^l8*1!A=Cf(t<}EE^Ru*y4a5(fRG&nz$Je4_#OG`yC0hLI)YE57#K+Z|Mo|tJmRMWw`#h z4h-cl#%@x4e9erqTvz$B95KYdzW2?pv75GO>LHlnYK@myezno(=j+vmuhy$oBJE^c72Fh?Q}d`{-$J5h@8K{A-xU8OC!=RY`jQH4GlX2(8*s9<%n<& zN)6i}nah7!jEQRidYt1dc+3}KgjjHoM|mo{F`x_J0P99yU20h|qng$F^5PS%g3hiR zVZjn^Cya0_X@qri7_KR2XWo4RNm!1Fhj|8~aRbcq6XFR#+Fo0zfmPNHL+&4r2_n_H z+ajk4LBeo-WQLV8Nzpt=qnsb(JJ|C@2s`cdqT_Ar3ZfVgqF`$yX*9Gk&}yL6$~=#> zo`#3AI@(O+<*Q!gLe;!97E5O*(|%J`iLPX)eKk{sAzOH(I;E-5V4Nw8pX)ON7)3FR ztK3Akl)E9*-)_8;L|u!xlfQTU#JB<8JYc8aet{BxsNc(TZXR&xr$5#!?IlUNR@~zs z@?gb5ybqFOm6c-#ZT1o5uwp{st(FcXT=@i=_X6~QoGVLP;4i{17$tLZ*T!t~G72LW zpxK}nRYBAgz}Utl9Z$uvprl0Yl|W+{8@-AC4O@g!q|fo*CmcD^0VgmqapQI(`@j9e;d5JR6FS*X*7}(~ ziA2bIRupa9_P|9LZXg?j<=;WapUt9D!N`aDt^@w^`}OA+c7reU%tJ{N(O#Db@BRL; zhoZ6EoX!(bDoz~a;Gv*J9Iv7%H=l$Q!azi!(ju*sSV}~rzko<&?DL)hT14~!o(275 zc7@Ygr;4PCr`Mh2D}OKf!^ts+=-(Ye*b^QAA^$JSd^0~R_cghd9DdikG$1iVry%Sg zd9uf_V|mKnZ)n@U0MIXzj%dDERL6?|81+l(MA>U zvT2Ww?tFTB@kFcd{OiAb``^C@Z+ufj5ugKO0+FY#)Fnc&K#mE1_REid@SjgV__3>( z)vUPSj*T@6GWKM(!@vcM{T^8kK==x>Xnnt57SL*F7&K2iO2}yXMb6x%%j*{^aC*aWs8c6^-{snGnDWDRZ%Kr)T&6?VB5lc|{%lSw&@wS~KPwd4SgN=+JDhnBlz-#S-% zMh;*Z7r>U0<7{;U-mo!2hfs1@D{e55CJLUCLZD?ox|T4e*|y4HxT4uv&XxlcAX~@> z*Ol3-!5ZXeQ6yN%B@~ZrfT$G7kb<%)jFPYV$$3syS|o8f?-M|+g$9uPCD|ra9t3u0 zA6Jb^lwFFMKFRbPC@20&9hnWe9=0iFL?SaxkiSpv;EglDsmr^_zcdk6w4n zr3Itr3wLr-aOa`b&6)f1w{88jv&~W41Y=wX;n}luJl!DPy;Dwq&)&84NOBzKh{#7( zzh^kh-PNp@HX$Em9^{)ZvS9<%!M@18*gP1}AMnY)#_-7(+3sz+vorZal76FuG79f}YsK!M#tbxw9yRaQPCBfj_|#+Bf5Yyh}- zv@~u2$PQX#oFL(NLug~`iw@@vp2@hLy+z|k1BNznh|JLhj1%BlT%8G#ojs{*`}QBT z#<>ouiwoz!JQ$wH_*q{?HtSeN0AvH~U5miPkeKx}LB0?QAc&n-18Di>u$qUk>ciLm z=5MEe_jNftA4v+IUafxmzyE*n{(nDs@~nPiI3)K%XDWhnqhVm!t5H9dTm`q>{z3^&KUmpYWx{I9v3?|j=#7}1T-}?R8?DX{E!|9v%>*=@} zO(!R_>jOQW5Rtc*tV_QRz>02W+a&1bx(Us)SuC%vUN-aP`A=V7pS`$zzE~`l-Lh#H z5E~1jxq2QF^wS$40uRwRG{$^Vc~g7i5S#={oNx}UVe1HhIErSrd1%sz?E00%75s@eWeh z8@CCv6lG}0AcGH^#8vZ$gJ7MTv{xLZACRMPTJCQ@w99n>P*I< z43lJ}3rS~VG@JJe*eDt%rrRWeEP?W+N@n&ne@7reK_;?!wfcj>PsD>>FaUHdEL-Rr zSa+M_e6_(xuNr7p*fero^0ReH2Nx26x{pB;JEC4@M?#B01cm_pC|vFBzKWe2F_L19 zb}wPHMnqOvV97QzNb4e6*+`KTFVeM?E@6-eEXyVpq7;{l0Pu;J+{)QXwC^P-Fnvai ziR2k;kV?^0FV_NVF%l6wNTM{t5O83Rkq zZ6#Nb*o`gT?9hPr_(0P~R0%xRxr+#In?)oQmM`5vlLPkmtU2X4%`c(pCpv|x886L% z1PllRm!3)q%B-Nu(!C%9hQK8hb7i0!Ky6_(+?05~IrmlivI9@>AU&xfng^SswT>K+ zv1ozN0I`VDdJ1B|WpFq4cwy;TdTkCJW_@bZXmr4BWVje7vmobnFebhaPX1Ow(Q?4; z+&=6`l3@1Gs8DL=!X&K{OV*A}p)Kav(j0@iJik4WqC&1y)Xxs=Z)(J{y5)-r)3qTZ%rt6^9Y4MCV?U`yCHXxpY1}0Jzp=he^;Xxxl z0Ul(yu4HW`Lk{(1N8`ISIz!BKK*4P5q`;1lCOb(6^sYpI@5UFcGeI9gLTv*enN-sP zXi`uSF$!a6vN}XFTQ`WsEj%!_VonT*ls3hSgX=rvVb>Z89jJeN-lL-$$l+dx814|d zcXu;%IY%8$a(KM*>!=E!j(nJg!)Zn5wEahcT9oe{@Yb-T@*t2nfjAwXjT$CQ18Fl4qFM zi?$CSmP8y1R8q-5B>)jlBug52s_n$6w?vwQFjIL%|D0KXT1)L}5Zj?F2!Pr>D)s2W zI6x~kBqG*6MCtm_Lu7))!;!Auggl`~L?GIL_R0l1uj%=9_enCt$t(L|S)y`05Mh(p zKZKy$$?_MJT}zc?lgb9(f$60TdO*X%i1KU0Tuh|N8c~zxSQ*j6yh@%>;S?bpRUpTqTcK+K8A7I+YGAG1z=v7sb?{&!U;+6JBcRK? zQi;pacQH0iGekT&nG)WQAuvA=%O#|l*r0}t0U#<}k+q%o#yPiZC?O8LF1@YtYdT|*6pyb_Gf_cFJ7}Jd~3f)fO zoyL?X7!7ZP3grM_)js)n82y(da}SkZnmxqyo-;NwXVR;3fjp)>-Edzb86zAuJw;uE z$a?R#Rg5z!(JlDeTz6C=>blT0jp``cfNEN->v|h{1IP&_WVDeZL*(gndUp2Q*!5^M z0wQ(Es)O{lp*+TD{ibinW-%O`-n)12^z<|U8!LT(>5yXF5RF}3UG*y&$;cR&SJ~Bk zeXZ-%_W&y3LIm$4=T!IccjRF6WCEzwE5F zr*`SRH&qSRVnkiQZlDAZV$4xX+9r71YPMJ`0znV()vx~XyWjk#oZZih_K!aJ;6LAg z-#>eHetzCAFSd5E&qEF-c~A!S!X!aPkdru9AtI;O+9!89TIZdwht+U8IX$~~{eN_F zI(Xx3bau~AW|KGXyYZB+X|Ja^(l!F6bQ8je+ASGfJLiCkIBEZ-QM;*w@<_uN<)6FC9 zyY7WSbbb)4O1x5M5R-ETFn3ywaVz5z0w-sF%1)9lWEJV(b5tPJZk#6lhP*r6{z)JW z=aSW~u4*C*jq6&@v2w+b2a%(@m-2;vE?ESQBb{H({h~Md`WwqsvwXl?OwdO|dXHhm zUJY~-kz)Bf_*{qY^Vp6T?k;6|JuW11B(g+Ql^!WB=Yc+bqr8M**^->3OkI^f<_b9iR|v~j zkg=IsM+FhH9-@L&I!@v~vOE3WXgKtVnYl7{b0n)%tIS5uQ{}uTF&1iz^$>^NSi_#c zIUYFUE2=FSZyfTZ`#If=P1Ku$Xc%Jb5k&XH5;p=#I+UDNF0mqr4lXWy8Jyj&*F%KB+hjzC%i%XCh$Y5;*L_O7hcQS@ z0EE1yV7iTDEWfWbLLg+K5m7{uUl>fAj9oqEl!lOehI$ z1=MP`l`=AEOL3b-&B|&EQtPw+a!IhzCrKls$g`E?HPO(_;1dQyv(MFa-L6`tnST28 z=_Yg=C@S-^5*HzXK#FXh5Vc9y#nJ$M4DXx^?+)tM`up18-gKSA&X^ygqAS5Z4gM@-N8uwpP zS7(JvQxhrs7Bhcp@5sTz+@r2j?`U^Dki85spA&8RK-LqWgrt002U7Wdb5{r0Sy70L zO;V=HLqMVwKwynV45V99OZ4vy(684gn%IY?g=(0)z9&=SeDMn$f8#?hB8_209hflb z5X7t@w$6X_;^TMz^3VVDAO8W~`HC1rhA`3NTvdSHOe8|P2Fq~q?EC-rA3y)@cfa)P z^5kTESxJm|f>kka2tjhG81w ztZAoB_s9<#@-0x5I0iNb)wr`U9*#>1Lu&@|~diH1r zV>cZlcWph0WCK{>+LQ4ZnR$s1L6H98id@b#wH;5GRCH=vtP6qfzLn zm>H|2cq;0UAOaJnxv3_oNO}?)U||9lrDF;=JK@|HIP1R)cQBVL7F1q&In=T*>eh|pU$d<8?g;p9#JG*Cg zE@$Rky1OnJ5$=lYQ=N35X6G;~A&l}gMV{=e>a48H$gGGjzR=Obww^b7MvhUGAQpiI zUx=PC+v4hNT+b(de7|dE&yL&ET9mYPPra)+qVe2O+l*d3gWIQ*gIgoj>5R{UBM>uX z%Xn0bpo14jCuc9t7CQ0KUI(}$`XMHtI)$Ks zF)Ax`*4OcMc8XoZ4%ihEsTUevfSmKfXq`~C03BfBbgSe!Atcm8aK7*%smw@$+pdkB z_nwM?M54kXF2M=6#hBKJfM_!r(^mo^gsPl&wYatzIr8&;enF)mj9)-`l45@Pe?F0#$EyNsD}`-|TS9X3=G%Wtwp zuXv*KOKw-7h*ffH_dY;rw~(By-Ph{-OG!T*OqX+-#7?{P4p*4R4h3n2;vt5#4j|E> zdO#$+K*e60tE!74h#qqbKh6Qqz%x0<0^kP7O%MTbBpf=9ZH;vk>z+26S`MeDUENV# zQ$5FN%}ot4ig5j4RErqxLtHwE#?<{}M;u5SJP-onsAIIoS^uJ5kd?9m+U5(@1FjUW zRjhMWCK0J&`b>HNDh^Ld?3xiK>xg*FiI_LX=Q$eqPjRlUK_U!7!Xm?h((ox zRZrkb(FR4gl*^^X+U+3`WKrfB1ObIEukSIR#W_m}_ecA6%BDbrJA=b4s0^=snbHAO zVD-ib-9WE_>FUHJ8pYNhS@9a99a{lF`>ZCk5@|4M3~zVl94rHG0^SJIU?tvz4^TQo zX9J8UXMy^XP(b1PV=zSX!KlxKV1vjSN)Aesu3iB!W25ChKMRn9h(#5(PlLN?{k}v{Iz&C+&$7XXpEbn@+1F`IB5hJUHDW z!pgi&EBg)6ISwfc2q_XN&Fl2L7bbn*?4+5cqDkErt#7<9QbaWElV2&Y+FPUw#>Sr7 z<8Z}pFQ~(6!qDf*b`+$m=Rz2hNhR}ObHmcJmAP3j$3c_A6;s?IKDUjNSJgPbY01*P>iimYU#ODhf0-#(8X|AOCw+IN9 zHTd?W`$Qq2^s!=xSG3`L6nf3$OZg_#CxjB9?Z8ExH3KK7<&v^ zYUislZ)^ua8{6c`$w@vDHb`u2`9ugFb|xc7NYbTRb{6$V#jDMC1RZw%N^03uUoI%} z63`hH30+wgkfl(#(0AJy5R0IZThr0k7fdz3R6u`NDvBbh?Hyva+Wn#sA78Hw9rex7EY%pM!ORRYpo;fOZra% z#rW?1$&DMg`h~M>KxgC}$EJVQmJl_B(3?z|TR)2E*avV+1+?Au#B5d#h$+OEUe(~7 zi?Kn9Ap{le+7>W`5>*r}t?3AeC?g`!48lNJP0jNe<_Om(-FBp5ei3WOGPBLVo0gE_ z_1kaY=GF|h`FI$(YZIlEpbm7sK5Jy&#u#H!mPke0wjq=YWbSMR58gRxX1(pyAkuJf z9o~F%p<{f_u4KZ;EbY?CqE1nEVLXNwuHU?A$P(fh6V!cSdYR2;i;M^7y^lnFeTG12 z(E+3D$n z2gmRI^!Uv;Zyvl(`EIhmph*5`rqk&MADlDmonKwr4Px7(4=T!L8^3ky)}1?dj*djR=orC?I>(_6+c6je&_xEofPJiRA5Jn*cq(XsJ zoZ|A$r>^6y?kV6GW8iF&W@r7z==ETVl*2L#b@`A4ye+pxg7-$VL8Hqn4B6%lmIV8uP+ zKE^>Tq=&N|JG{9gyd?i~heB`4!>hkQrf;|BU+$V}`E4ld%@fs*_;OBNTh-Is?ji%W zZ%6;(y311za^EB?H^D-XuO=i4ovO4Rh30d@N3TVQs z8UoiQa*jCOOw4f|vS)c0NL5iZm+IEHUJ->ksg+mw`53cXutHmy`VLujwYdR#3P>WY zF$gjB35Y1E;aZqD=ZeI5Yu|c{CO@hI5e0|7PbQxo2Bg;}(?F7_`F$W$K#K<^#~zhj zL=uOLRwtlP`#hZs7H*^;%pfreIgkqiCm0mX3NyDF0-L1FsTyd8Ef(JN^D{yRf_!Rg z{_Ul};d~b7T-lmG*_YP2ZDJZUJErn=sPb^icG0)C{B5O#-kSfYlj=rZEw|qJIpci# zmZZ<10;x#UNRfbnB9VdIQ2>G1Jox~5#jUK%d6yK>UIU`@7Pk@rLOEVjK$9JF9Erm` zc%5I#CDfcqA$y2fAUoBybs^_>9%Oq;`9vPtaEXx>VSQAjEdl($#X(;}b#-<1^de7KvCm zZ(*tim^KDQUt&}oDTc#vdxJ47vgVq!G%C{Lenn-`Ci*)sXXXV8emb3|o!jM%cCv&& zmnDqHxlv z1r)p^!j1uPDNRt*QVbD(p;J--os>X?PPOcGGG&h365RR3$AAAX|6>1-e&<-UqGHUz zbASLkO_P&PSCfL{5-68GI33HoA#*Fx9ge zlRE12{)+u|S_uG@kz8CHfeC64je|&33Qjsv1#hOGvoWF|&0%kE|G{BwoAyx4H()&b zuZQ^EFa6v5XMgb5e-&T9(~3A6pH0tq!?+9u>{d7aE0C)X>SXP+UREqg6M1X*STJn z($3NJ2;cpW-zFkod@!o^ZX8sd?*vp(P{@cq&`}7kMDdY{nM-^K`ZUm@Ui*Z~uW9b>H5#}n>O52m*T}hE-4$uP%6c2n! zeTLbWvm3YZ-W#JBUNeGLFd?(ZzG3y&ZPS zPDzEVxBCwuGt8#v`;+mf{_KzMeeSbQI~-U01maGo&%gf7=U@6d)X(N1>Xij2S6qYDzdqGQjRPD=M1z3)xhF$N}^B; zGK+0lgj`f*6j09s()LDkZ^`!hsSRF4L^<`Xs)8BbB=UvELXijwF8~q=kY_!=#5kE? z)3RkKTsxVx^H~%|#{geIpub+)+i^B_RFDTP=7bSY6}t2QFT<>@yZ;Q?WXb*LaM19Q z$Y@o}*ez96UyU0?hE{D?<7@`6-(+}Pf7P*Fg96INb=>NAaUDgt0hC@Z&s_W>=5WzO zO`|SV5L~~XQY2j@`N9mkEh4r$coFo*7954gcGz+NJ0>kWZ2 zbB@8Ob8|v*gdvEbfQ_Hj+{@LZMQfm+-{rs&JK?UChBZcr3{h!bODoWJ&^9n%99w83 zh``YcP=QV$MyR7T(m+m~wlPA}x4A(F2o_Q=LW^$IU4&gP5L6j3&>#<&3Mo4j?ODzW zy%viGQP))ldfl#E6GnmB4C!5jKw6=A1+-sLAQl(XP7kh-uIznS!_#3blLMl}hY#D5 zL+}8YsR%HQ2L!NBLL4J5%N?|-j)+ww2(GWNq)@}vD0Qw22&2+YC+lN@fZ$800u;sa zcLPdc)Gi@7*E^yd2ZJpW5rHD9vj&JH)@djPfSFC8qI8*xKa2gvaiyqLmWvgzZ4p~Y zVlrKuwNGucLTD=BfS#+GDI(Yh1y?WjK9p*gHr8ex@Vv4_xoYT7XRl~;U%0Q-V0tbJ zNFb>_eqii?Ohs+IEe;2bQeUUf%!*mEVGR`M%jOAYcwrjQ$Ij$W{?#C9*yY4lR6ULSJOb?5HY%A1V$t~0+LXl!B99S(FAg9p)3iLXNKp@=qUXW#rnO^ zBjq8;SXDcnfDXfqSB!kl3BU!(1`WFA0?tjMWx^bX1aBJG)RVbCi_2k%aacuA(oi7 z)uc;HaZ7ow2YeMxw5ndZH?VXWHt6Nps9#;#XII041A4(3=)Lcn763vB{hqv3@4eJZ zUWKG$j+O?SN6u+GupOrQi{m1HDGg&@a;K)VIX0{Sku&Ncrlm)WCx{*zo__B~|Gs~# zxO?aR@skh!=Rd#y^yma7-Aic{QUa<3-Tsa{*gcGm|3CKLJ=nVBx(i#6?)^CD+{gEt zr)EYPSuROn3(3ZXu`$7b0fVVfSjI6>6i}5^QVB)!Px4p($v;U|D5_HVHx!t-3S(S= zi39=LA}ZU$0xV+5Sh6Kcn)iI~?>^2sd++YGa!#*%`?mMF=eu+Djb=ubS^BhR-#)#2 z@7>+IA8Y;AZy_>C9q9g9^$J2>9bwTc$~I!jT+!#6esu)Ek~;rTL{m_k@^Z80o`x>0 za|-5S(HdRTM-$Im6+3sX=%2uPZtGhq;SN_VC@BVH8tjOEg#})Jum;nLFdm#Ao z=RWuI|Ky+Cefi~mW?wm+I1yPMFB_oB`F8>mya*Eq27F$biI!d~-)gUvQeuElfBMrm zXYLREjlcf*^`{kZcRJHv459-ee((o=V746o>EHRg$6tHt%I@B(geq}~zSYd0+vi;Z z0x(wxTA9K=_qosA{rqR2dbXY3cu?1Mh4+%JY2oVu`F04Q_1C@kqR}}w-8&W;MAyh} z>R^?hnkFm7+P2-_-ydFixkm_|ymOS$h}r)rb1)%8-f)J{*@I+YaBgT9>H_AQ6V{J&bGGi zHJhNh^@;PoTQ1pEesz+*$GyG1=bwk`d(T!?WsZbbuHCC@SuU4RqD?lCNXJ%$yjsFtceYg(wceHT6@^T&t23_mwCABRCh12Zc(LFcC!ANs>C4 zTI<`SmBH+r-~RW0@ArQAPyH!F*(m4`hhP8IU;WHK`bTSwIde+HuIpBXbj!YZ`<#Bv zgl;@y8A-7}-D{erolNSw#@e?#`#aaJ)O-7r>w8+&G;6DMjKL{Qn-GE=94wY`xsrp! z`JMX*cWxfN_WIH7oAKaaxO05rqjSx4F6jn&JY?m=25;31_ zG|k0tx(Spv?7t}-2~RdfphC>mN$6k=XJpU_5>0EC_5czQ$T~LaVDBDRk}gprgy7_a z)@2y+NxB9lV$b9qH^hhz&JflOzrkx>1 zBtVSBK&+;KHfC_ssFn)o4!S&Al$c_Ri9&pWBRQX@wz!HNTR$Dec)$X%ViG}9emVo! zpX7&f2VnvV~XS*b6H>!0z(K!8wj@8+=i2om85H}p}k;4?LrT#<-9l|?>6kSSsJz>$1g|s zy!|J8$oYJ3`0jIqlNFyB+6Hr-=bV!Dkp}@SK>aq%VqPCkCX=*V9}vgR%4X9x|EjcW zTZZti0y;^qP$0CEjOSmd%$ups6=yI-28F&K78M?O@vJo}3Nf&VbclT3_NK(v(Z;SQ zToOq)_>k;Q#KI>f7xq&7ZzbZAg%=LBbY;E(B0U=|Hqn^a$Yg?%aL-r~j|t zd42w#zxZSD`@REO7b;o;Mc9oKXeRKUpZNG6y>{(W|L0HL{P$m&)@=`6Gplty}vvJjSLe2@ChGq zeEi(M|LW79{jJA#UTdGe`k`XXx{|E%&#=P&wf)9X(^fle)wXq2v-jRXyfJ;XZn&AY zf-r~-;^)=Zr`PUR@Ve7|?HcLT-b*m_9dNush+snoOhtfru0#mHR7-qJhk$Ue)@Vd% zG~Z`ta%s?{K&nJFvQsqnxd;T5N)zoR3``-r{hn-A%~OvY8U=tEMJ2(-5+5s_N*Tcb zO=x{EP+|<`A<}Q#xRPB#C~&%W7G>|!@*$kCOgKkOXVjv0#~5;G6mDkyVxi1kHy`lM zVsd8k{bk?`Cc5koU-*4D^q-oV$ z+1c4|rZ}zPXaS6{i16}PMJMAep;)OA@sddsbT;Xk5rLXaMUe=hPG{e?Je*QGcIO)Ixht}6~rM*fFvE3 z>DYqAwJ0h=)0E zYi2k40K>d;!PPRwcn6}3vsZ`es3RDvnC4nVbSGw~bQ>Zd))OqYW(5t4I^*2jSjW@G zD)VAwv8s-8Zgmw;LJS3<4=yPG;^03tqB<3c#U*%luH_w3^CO3oLDt}i8C^)+qh-a- zU__gta>h#MEQn=gV#cHonoXMp`#(g$@g{)~P0^+)J!Vov(n9~G24%BT1R;@JfF;_m zMY;CN05C}T1D;%hR$amJj{8JM0WjF#c5{=)yJp;W7AWae*hpWO({+U&8C5j|h!Of8 z5Hn$d5iJ_cLZSH6v)aD5*wSmQVKEgF5+b`_m!^1UOTU_LNry|Ndk0koO#|MSkAX3s ze?i5T0hs$U@G@>Kf2TdzvR^ncHqaUEGG(+>DlPv+W_o-WSGCf%?=GL443k)1XJbx+ zBGFKeFbHa8awvlAA!r$GQZ?f54$}&VT6`Mu?0W|}O)QlNFrc?{&{0bXu7yvKZ&}~T z(XeUVMUVMH|GFtr`e8<)+k5lJj?Dq*CU4 zF9ozPa3;~lvim5g1JMN0LzWsMbF2xf)e)gixMoM85)B$FrJbzTQB{_7ObtL*zWnY^ zC<6mp2PQp3C^t1DM#O;FBWl*6RUWg9P@hWn<_H)AqNPiOBEMZi06;dpA&Ta%<5bmA z+0RZcF&B>{KtN}A4=Pwol58ePolD~onAsBo;z@u+2#7d@{tVNHDt3p|LS|8t)Ya_< zj#IZ~QZw6t5@9^C#<}8qS|!HS)0YR9h@QD zO^gc*t=)4s`fD7QvF#vWC0GrO4o*UZsgZ0LqoCc$d%rrjCtNOF3L^44H6N`FmXTS4Xzx_ME_0`iJLS5{EV34^5gs2%b!1cX)Z&FPt z_8qeF5NH%e1MO7C)tI~9DB83f8hKL%tO}*R9t#l}HkJX1fNV(Vl3+6? zlQ>;_aMV#P=+^Ko@{R#Sh@q7z3LQWs4?P{5RX3hStqA}_OdZGh#=$Uj25?SOI>w0e z0ejWDhD^JW8+rt_DS`=S85`#Fg}Kp~c@q%PLA*YBg`K+E0~2{)wflW=ckYA?aCn0hV47rGW{b%laR2}zCBzg7 zKM!-8ER(R!GF<*y5&~u@Wm##Z{^IgDdNb3Fd91Q_yR^aPOZw$tlZPiV^!-aOy>xB= zis!Dcd!}_dI0t|UL|3H}&}J%7LRA1>pU0SY#k3IHS z0`@u=9VJmECGy^1y?XWb%>}2$(26sv@9SXzmJD{%yy8PMwgpKDSy%zF-}k=vk>0;^ zXTDfTze=fZ+^C*?&(33y?K#(XA;1vZG`~iX<$T`t)Hc{wo`@!US3wm9%Er704-SVH z4=4M}6dkx*SCOOEv#Zz>gxGr^a!7z+8yn{+#q?Nxs*}m&;BbM6%qOVfv{nFi&ODyF zuDidu``mZ@fsg-%zwpGtM}Q<$-hv(hVz5tHr&8`*&XN?jOc}+0PgEZoM|lmr;i9-~qgP zD;_OG!rpYYQ#XicF}NqQT122m*VNkZ01|W^8DripmC%|@1YPB+ao`vmQb&TazT875 zLLHoJt^zLzQ@)X?Ybo|5<)=jFespN{IYL7)vmF(XlH{U7lBkk(+$XRprQ-P^OQP!# z5VbXSI-cA;XE4NK7$}N3=lZnLBvoc01Qk$I(18B#I=KWO8WG>|%ZE!Kpx@%C`WNyz zZv!Nb&h7He^ewNc@b-!7R?ob1+aktLreqvzxjV9ys?x;S*A|oAnNq;J%IYMipSTRu zl~PHOl^`KV9vdZ|MCM6`sl7{gv&#s=eZwGU{!L7>RpA?7JNGWz@;f-%MyYh}kcc#l zx1&iy2wM!{y3x!fr!9_gf)~WP+oXoH#0x&Xjn&*{s0=9nET&YIO^|Q7Od6$czU%gE zV`fx^ElkiGci;ZKY%XX=iH|m*ZFxe=urVWKMvsw>NKZM1ODPRP8<4||m2(U+*?)pY zRsjm65JA?aXaJzR0++IG?ZcsxCCpL7kpDCSiuJLnIHeSR59uhev!3%v$l1;Am*nC3 zAB7zv3l?%Q{B}E8Eh2tP=nBqd2Og0djP`w-Q{=W!I9JPNYnI>RC00}0+hR+FZ_TEl zXEtxdy}jMpY({qvL2MFXLP|yj!6fFn*!R6@qVp_}0kDRvC{fb+#S7f7STMt~k5LkM zWQh?xLtWQa?eDbiw++>9$BQr7P76NjZ$$=^&A9+#5+d3(m1Q8gg-Wu>OlEtq=FZ6X z(n-1`qknjC?{hz&TsRSJzMySw=JUDTF~)e_+SQJVr{<8itToHA!uIb~b$`*D(OHZ+ zeKe9QXnNCkgAl%fie6PHG!+PxE@p4>elLqlz*Lx~*YYV_?jF1=r zqgw4nv=~AF!O#bUgz7+@3W0(uTR?t85G-kZROl3fYG-RyLefa8MBs=jh6({Sf(R=G zQ>~wcATK@qG_$OVDf+fCi{){DGvp>bR5n&cV~w-@nKj*GcbkRt-ixSXUsZeeZr}g> zZvFhShV%dvrmSp54UbF4jzCCT)m3dZ_KXkP3s1shqj+8F0p+zqTYM` z#*1G&o*(IxPhNZK*^2AC#CHS^WBrvdgW#^-KECqR|M=9cTlN0lGwWK_K-{+tOr|`U zVOwc4(YA)BWuzXpCzeTDH%+sY-Tg_tGQDy4_;m`TG3pQ?M6_`ZX`hCRfrmfE`~^e7$ZV&_!RF<#hh?7Tp|0!P<%YO*4K@ztJS|) zd#HVA8t2?>XKyu+tc-d4(;d$hNebi`W$)J4m&;|}_af3QmWOxm9~>Qou7Bl~m-_hv zFi_MGySlEYv$|E)gQKqNh+rRN)?jiKa0f$JHbX}m8+J2*i7r$YiJr`}YulE+??_PdLz%6uVPX#nLEr25Ll&s*G4rk18leRX{nP zImgy0Bdbq#Y(yjz)A=jH5JQN;l;)WMEyl?9)o;VyQ23KQd$uL0s^rDszN%VYA7%!4C+X1G>aEIJZA6o zt#WxLXtle`BWZ-U>z!4LluNqrp*^idaFbj@K5lX=lq@3OnAb3+Qz@R`()A7O6Kv$) z&cgZ4lr7WO=y}K(R8#)3BFu8;a%e4usaTd+2!IlUnUB&D%KAruy8c>ORdz-3Cy!MO z^y;Nz3T|To-L^%KgK!eNY3aNO=ZW__ma`OF)ogj5^UHCbis7rkwF%^IylLOs6jFF7 zhr5myItXJ?+IY^w5)U*UZ!N!|Diqkpe4j0z8H%dsC`07}idY<70s~o+VS!OydL##h zC`vAhg^JP&AIdn^a-P%}$wOR5R5ny^)NDNb7Tt|~M{zGJa81;}iaMP1Y7EwDl#U#l zJei`Rt1O2fgF`4Iww_w_!M9PFYs-*Y6cz)1RK{BYgBAl(#OBKUq{mnPG z)#t7gE`{USyvw-($@8zHb^a*Z!xi7UA>R^2on^(A3$SfE=*^dU_)nYR=5pc|wyw)^ z=~}ioO0>n8Y-TtBk_sUzaZrZqkMr);rM}Pu=rFjdnoxBZhJcV`gFDmhnhx5;kPsr0 zRqdP8mZ4`%y_oH?7S6=-yChxLy)iYq%*ZffbkfY6 z^XHt_>sHj7g#vo(0^2$86#+`QBzVizl@8k^wTmwCVD68nlEM6PNA#nC!c)smHE*x{n9Vp)A%DKPyB)3ANh1I zR8`Q;!Si=~>|>Al>Nmf3^!YD*ZUtz)c5N@jVI}ArD++U%k+)1#)AKVCTfo-pRBCql ztx4A>HuoCg1!}NOzF}2X!m1~XhZ15~Vn3R1HA=(QXe>Wl^w$tg8e)rn- zCu0CHDl}F`iG5FSs+S~+p}%+U-dDbI=iol9`Zt*pDPBe!8Kq5<_j;p@N2(z zv#D<|b6s)W=%mG_#VWB->|LpvO6!J*2U9>dwXf^i zRs=*M#C)$9BM3T0S9xZqX|gxkO{km@R&Fgy$jmNrdDqTQd|f9d(8cTqHf=p=eN$`Y zlyOKs#QECRuSZ8m{c>0y9j{Je*ZY@$b9G{Vd~pbigQNL!j-oLRvFq9CWL-RY?~O%$ zMYO#hi%^@Uv2{telA)`7g}fH;Jywj2PO1>Xw4JQ4bsRtg3wj5hB0?WJW+q2DLbvtk zP56(fSo#J&=q!D?}?G1QV*XOj}t#`SzoisS2H+oR%zpt((Knr?ac zZ*+Lne2#VwWB(y6-&f&m=FOxlWer=mj!`9QI)Wq}i-={9Ay_XuRY0q8Qkgj%lo*(R z5FMdIMDUZWfObgf922Ea1prtyvq`CtJ)OtP{;wlN{3vA0CAd&8Xo8EE_jwiZMii8r z0b@21&=-QQ^T=6_23u9?+b6qB8S&OjuD4CS-e!wjWJtJp%HFK)(Qrh3fx>a~d|S4Q z4Iaf%u+rO3r_(|1131$;vR7u72qv7oGck$5U`Oo3qp>B2dof07Q(~@;Spi+HdpU`f z`6v-YRxhzuK-)B=`nD;cx3`g{Z{nA?WY{{nY|AVnn?@9b(XJmt0Ky?Pli&Pu?TgM< z2itz;GPeyo8-w1()OMv9I)0>i$Pu0wi^Xc6SQe{E$~jR~7@%pOX`0{7v+>sL3;Mp_ z-`~G+R}lsk?-C)Ui^{Y^Pd0izo@?Fqak`17=Zf*28lDWZA2Pt z?;L&cC;#DZ{F8sYfA`*#lj&p_Y$-jcL}W!OA~y@X^F+~(#dZjU06eHCUL4P#1lnVI z<>x>3i?6-%BY*iX?)>?`0G&Vp@V=YO6qNSr$G`svU#;82pZt5%fBY+Wt9#5lf&REU zhCPzV_F41UQaCCBDnDkD}dA(-UhPEs~wnGBYujEIT`CPqky9D+bGDk*9N z)qbh~1h)7TO-}0_FgjFF#*>zf3WKVVYO|_KBeCMsu@Rxzw(0yK{$+q?Vs{xq zGDjuXVES1XRTl~o_K%0=OE2hGUtM@l%ASaPRfED08bb>o}HF$L8Dxd({AT>=#i%#5P$n(XX#RecZ+Ja1w5@-#rBcM(_*v+WH7YMx>%KVQQ>_kRUK#Bl#(cW(X4aP6zkL9LF1b8`X!f(igUJ0kCp5IiaX zu+{BTdtYVdqvI)_x2{eR?pKK|qIZQnL`oj9637~r%2 z@11}2>7B3LyRyF*rF*rS8|#80ypa5|p(E5~T2Ht^+#ozi6`WIK;Hb*nNQHxUy~m+$ zhe;i)s%lbx;)5sA&O00;MO_X{>H7+Ktx#rd!?2IYRpqCXW50|#IOo7CNmv}tSMnf6WL(>m z+krgw6X>sK&-E~EwDE50LhG?+tQ-=007X9!K|t3j3|$Ns`fNTd4V{5F2ufHdYK2Nl zMUWrKF8R6VXYBI{0;`NLlT^G?d?p0zf5xI~X0XhTN2iiwdSJc~Bnu*Dj9yfYrweQQ zB4YYS>1o-5H^_-w4G4XBYQll$#aI z>(-&(pSvEwP~iduDx@N+3_y9}A;r8mkGQG(kS+d0`sN#A?MYDHblvym3#8ItIX|1g z7y)g6stxZnt{EGlH<&aoM8}NF*_Mt5C5srJL9%Y;3PI9JmR8tQp0(a{*5A;0^^; z7^1VQiV|4YCuF(ozKF=ExeqnyfB_ZIDWNb2heAZ)(^I8fNSdw4&M3sK1`1Sfh??h9 zJ*m0~ppH3nc9TMGE=An3qq&4^+DW7k|Ga&&d4Yztil^TNM38 ze1+}%uWc&hZRwk_wMzIxPA{A0Y@NyUMj%9+ch@8ra@ryYLP9_TiZB2p905>O-P+wd zb^rpbai?1lRtI%mlTyA{4u|f&@47C7W6r%bGq-JP`Ey`Q%Wnh@=CxC5t7D88qZv?& zp^Wm-PY?*;%9=@}0gMX0VpNO(9^O9LWaHUv#|z+Sc(Gk-bgfl5C|bzKEdh(BW~r*mLTH2#%2qD14x5x{n_(3Z6YrD5JpcQ}OT>I&lK=<^n} zZ;7&rr^4*l>9!QMJhriqp|~&&udvP&6I)`GUR05sX_LIGWRR^Pvo}?`CV95N@%lzm z>8gUFVv_P8Q94y9b{gk4+%|;$o^5UOtk~InxwtRAbXZCV#AGa@h)CYAvw07JpzlEe*a0)hlAK$SP=ENt@pyjs#^aNwNl~i^ z=#(Csh?=Hp+tzzuO{eB=W@w!lBc;ad7E2L?C_ch0qI8{FWCYj);@Ww?d_Div$xR>xQ|G#;DE zd%wK7UMS2LM=R%v#bPlmIvIkC+CMnZc^41o;b_5KUqz^ZJP?yIbKSIcT}z_)P(rSJ zEP`)XP-9LVQ~SYtUr$=s)~lOiD@ zo`jvut^*^w`LxY&l-dQDbqIam<1kR8yp~Mgd4_`qw8S@reSQZn9xg>^acKnfc3x)t z&z33sa!_cKi$cA_7AW+?&)-gG>QOas{=O~F{suZ#inhz$ABRvHdUIwVf^*A3-FPrP zjcA}HE$_)mjB+V%Yr?Gv-wP4MwxGv)398t)RQtT`&(SLvm7v>ZlkH!+!A-~|+2%B3Gi=v^JC#wd+YF|< z+18t4jc(;{s17a;ueE7-GsOMv+qX-v&;o!DBWaUp5_rq$f{j9C6^ZJ`jhhc%I$l2~ zvQ>AlJ(H;)&IZYM70?$5IX9p=(OHP|6Pq6ETi2+iC{V^e3l^4n1$!hugQyTFFOQc@ z)xk%ef9ya1%kTZOKiq>8W8e+iH1=J}5(b5?ed%EMm0$bizx#LK=FRu|YBvVZK}Zu9 zZBX_Kgh~e5D5CVfvvANToK0Rz_Mj*N0ThRBZ_~ zW9?7;K)e4~olu}h;2$XL#mNW0`;Xv%KbimI9r=Y{UD4v!-Jp>@V_v&ESsx>v0c8~J zCuIc$dehbi=W1G$pu~)wi9lxxXwl3hh{$$CM2|;~U6g(ZgF{Mr#7T%ECw)s=MyL?<4~+VnmcCwTO_aQbbna2pl3s zB(c!oAa&uA2}K-aT}eh%n4?<)N74v-LG1ZZA z0ID!(w4z{wezHD^3gE!CanL9}R8?2qv$mr^+DX!~RYWHN^U8P^6%#X)eAIhix8iGY z9N3472`M^aU(uxX&ZDnnXSba+C?fMa#Qoz=1=PLxO7|=OcK_A8yStOAixUS(gr3;9 z&$N}MV1UDN>p(9jw&_!{8-X}Nb*s#{kwZr$$s(|-=bqFp^ zH9e?&m-}8t5DD0CAFoOtp?|$wR|Mypa{?pa1dw$j)EkZ|O z*@$@|@E{g|FQE41>e;u)$)ui6s=b-to8hdDlNLO8`+IIWZFl!tU$YVhVL)a+h)3Pg z(Gp>(>%=Xuf&>vT4D~X?ypvathX+S`xQH?O0rc>zt{ePf(H_s;av|M-GN@{mtPKge zM7WDW7&HbL7V2HgTEl{eJ`Bq+1XOgx0DUA-2CA`c$+e!j5}pk^irz6JcqYf-m>e=w zubeuyML~%~WKfF^MQTw1gnnJ$D3QgK+6o#Wo_qmhqZr`Hq@v~ip;+=Ia(3(FusYRCDP@Zx+%JG_v~PvC(r_6ikSZC`bcUC zTMQnLu0YTD-_3Ldz%e(plIp1T%8iP`TOqimt+&B~#^^Q?HF##upT075&X-)qxu0z9 z6=9nBrpul{XeGxpz>%&`JoT4DKoi1cRKXH`>FbaSAC?i$6RwA|D#D8m9=Pqk67sz^ z;=-M{T)Y7e>+Pyl!3~-kgog=j=?Uxf%|Z}ZlK>Vz2g)kjo{csi+b-WIzhuE4x1h-R zCdurvm-jVx`Jg!R0-%C6M?nFzrbAN~o}F7`qMTBxcqu~x-vtx35*Uk7i#ALzgdxGK zM~G%8k$HW>B+hnTnezo#B2I-+Sfxtr%(W_UtPwmYlM;ZlZ_BM8^QQ zLmJNejyTCiR}%wPj9zAXV5dQ>ez0WBI0OZ)$I9!Kro6$3~E}tK`c>0 zV=V?|mOW@i;7BgkCEFU337{PrZz^ zkeH-tnvfQvrk5PqCRe{2a@Kw_g?>I6v2cipk-x%w`k{vgBws_7zL) z`+i&ZBO;%~t_?{>ueKEgz1^g0z3Ar6o7qty->zI^AfU~hZBw-kBLsw?z^OC>P*8dc zw3LptUp~08xA(#KJ^A3lmv0>a-~d!Zl%O&nB4DgMRm7z6T?O>TV!@HhFCU5C$tF!i z98-vZ{K${|$ans+KL)Buh=7A=lkjl?!~rA}AwGEd<)8VfpSpYJ&Xn2Aag1oZMc;Cq zm8Iz^19%tnMN`+_`@ZXescqX1@OOUacV7AXfB%Wu{Xg+%fAq?g$D*hwJaKIc`fVTk z*k77fzj+{E_|z{B{Xi?>!XW%j8{Ic&j)Hmh3__SJwAM5srS2Tl4vRjkOFz z2!Va#CO$C+K0JbiC@2yVAt(WIRE6_&1Vjd94WSPZV;*Wzqa?2oPG%fJ1sg-(aPTWr zOGOza5+{iEp0)drZgz|XuVi6#(NH_z%no)Y+)V1W(n&qvzp~Rzo2pu+0Ffg1P2-S5?B>p4 z%}zBsb}`1j@9VTqav)gO-c0}%AOIpTLsdalF=;?_j@!1KPN#>bQ#c}?3`d0t*V1jP zrG)HY=69CMWrzxZc`;|!>ALcV^P>-b@Pki2@eJ;zSU?_N7=Gh7e&c6;=4ZmoFaO@% zYh5?TiWZ9nPu7^?tL^McJKLR1SK_BFG!wbgaGWZ`RT} z#jqUWvd7e5txk#PcriB`{b8{jx;`E);&S1aF&@tQ+Yjcq?}htEecv~|UaJpJc^DNX zVu~i2m#yTGD$g~iK$8I_2vnSS;sPi$x87mp(D4AhYiq98fBHnJQB{tcYS9i6K{Wwi7KUNe5O&cv1hgaCAbijwFplkxirPcH z1i-?|xlDc$EY&4tP*XTh`Y@C%)rc2xF{{K&0o94PY>|r*+*@u;#2eooZq2{RsD3ev zu5JMu<0z#pe~Ul$Rz%xFw2C9D9Nku{x^?{7@Vve_{3+;Kiex2vbKuWvk{oo(Xor~2 zP*6otK$A0;gaE)0V`i+d2_zd1i)^B04I{O3>%4O1wHIC*)UJ)NSj3j4gi2@< z0|{kcX$l6jqm6EpvE-6)2nIctACbkO{&~GFBd7OT+ z&%q@;flBvit5O9;Kn308ZL@8iOEPj_$jBIT;T`dRmcyD6Gv?4-%xqwG%fC4~@Xak3Y{A$aU$>S^KOUf1o`jB(lY!|?Au z|H=R9Zyo;jZ(rN3SR>#t2n32ihU#Sn1SL|kjzj_kF+C3#PrDUx`VI3ZD#E42N0*m< zLTFneNq6OTIsgn&!Ffy*%zo84J$&%`7w-P;n|EJXT=|=St#Ui=eowQ#c?IN|qrdWd zKKlOuVdo3aUg>}8UoYnOYY4Ntt&n2Zg9c`nsGS7$91$YfsHB1pL0K7NG-lQHk!3$DfMMbRqz?jsw9Xo(V>U)piK>WRO&fZmyMR$7C=ARI`7p%0!!SJNA9(L0Nwr%!q!5B&TrQW*q(xsJExUswV4QJv zEou{^f*$EwVrKnkc0?qQo+J*INCXxdg1~39WXaSVW3fchza`NJXTZ`aF34ku@Qf3fJ4Z;Mf3kjVg?FsXi1Wr%Rcr0g*HTs7*4|gr$J>*t zp0v}(SCxO-fz-$qDWgJI$vl8+Rl6z8p88U?yL3m7V_<{GvUaEg5fDhln(*O^b@iGu zn$~j2lip1|kY^X6ABHZdxTf|P0w_;rS0}S-e*xZioQ9HL{Pd^(=fA!9>Q}BleRcWx z^_36Wy$besc6EO?yME*9^~ZLvUcY|h@hdl;z_tki47uQHw>HCYB6O}90k6g$76FzE zI9$ZxU~%W};o%|Ahv|cttGkCQJ`Frt4u{8jFkc=V%_ zuCLojV#D4sX&;8rsp`@x0Cdn3i>qA#RpQC+-m5#W&`Odi2pq4)i!!y-rgw?Eg~KuS zC(PYM^Te4h5ZB!=TSgt!o@EFEfsBT7i0K*dSYrrFWFm$NDaHs99DvugKm=95M3rM$ zr>Fu6zBi&xU`AO>=}MUxv5^REgt5eRvK5`KE%q&`Oen}V%4M7_*G~P{)P6E#oJG{^ zx=y1Ik)((&HR2E>CShW=fe+UwBc1^QL!UwYot%L7 zN?#URgVH0AMQ%pKr6OI5lG!qDDP^0;=Egp!pBD*M;5^AVVpZK>t+jK^6xnKLDf@}L zIpn*KsF^P0d^{KZon7+dh>(G3i$YCd{Jx}HRKu6kFK?6W$XPnq4vN6`Mq_eM%^nO2 z5L0G4ePv~+bS;MeEbz-w&V95~{}+YA+Hw1x7+BRV>Vx>~_3{Ki95T5DXGa5U?4w6c9YJXPQCmAcXfmapU=?_P+4zFV@g^Ai|_kR@}Qy(-;Nf32rHg z?GO#_x=dn~VAyA7&deKDGt8Wy%677+ibBmLGxO?3tD>y%&DSxYL$Tr$kBk7AEKeVJ z{;Ay^UM}x44WKcIztgV^x>!yf9Yy7I8p>R&B@L>TNEraGiR>w%*$cWnURNw z-7bVM41?J)GQNKGRCkh;151ur2q=iKZfq5g017v*?Ri!h21ZdrRR&RI1luKvZmHzU z1%{=KIIbp(qr=r6e13F)x83{bho3*X|LZp&fZ!k}UO~DXlHN?A^|X?A70?$Wpsl@` z0q~5G6W&(YWPE1kmBwT`ora*@a*3`!JUT*lf9B8pnUAfo&y(3abnIMueliHxw61%Z z&)DDk$`^m`Cx3E&`}VgS()rP)UJ1%-O!-&;>R)|!pMLmH{<*#PydSzil{@abt91<; z9)JAtAN#Q%d+{ax)W7(-7~`s*XU#gkz|f~)0ttsaKsltoImRVXDX|7`xJztZi)2JU zsSP4LCP+G4d61-YIZ0M#Vq!$pkb}-gW^%qBhVJO-$a&t~-Muz(SFWsLA?&YcfJkAv zT-K9nCC#M0b??C!zx3J>eU8WC{LI8Pl0xN8BTYbLDX{pqI zmB9vcZET~W!z9`MR3NG2Iz`UP0UXmgVSy?gw;GmnXI}fFjW!~Rtf?tdod7#_SRrbK z=+Xwp0(-5`A*Q=*%*{4Co`Os}(H>C;z~$Zhh2l@rdkz4RT{H#sq;_=+b?w^PJ0B-I zp(18-4#~TNnsMsu*3+zMs+!#XORlMTGAxFcXgZtC@OYCw@N~g}0;nb>GM(8&fDi)J z1OQz^Ugx!YfB;E?!0~ba>%aWVRaO1K5B$IfKJbC3o_gx)V~_Pab#?U`T-$@`4C)rh z0eh$?KnUOxpS41Yk-3;3tiEMA7)W$^d=OTO=DT;oy~FvvJIAlxUNLCPgL(Jzm#R*@ z_cLYehN_Fu_i?_|<&v3gf9F@?*w>DmN+*-`nxpSBnAc)w1I4y&qmw}e8&)QC=-YZl zJjcwYfHs4f;hKR|80~8awk;$@#K@d*Mll*PXb^D8`@m$WsccR3Uy*0eX99u%HdfY7a8!Rw3H2U_`!9T$QwmY$5eY7OMdwi zRR`JSLI=I!h|kmX%T3<8HbBmC=;ovRs0T$Vh1qW7=aPP}v;Ax51yc4&dKZ z1j-|ozn#ZJ&9-m2&h42m)oCxL8Qq5XdpOQ(8*l8TAk}65a^14= z6O3eA?VY1=R~ix5l-bHYIXWq+oDgw4BK2YQfbcNq<-DF68J1$y683$1R0ez63=vj{ zr&@6}$3NImI7&LfL|P)C5rI__gR_!lP6smXDAvq9Wk+>@M8I%DE613$mM64|L#E&u ztzCl_m(4#!&lku)$RB8FA?FyQ0 zdEOd5z-9S%A6+)bF-@{r)kU7I3huImb1{_~v6@k44scA?cNw-&H_gAk*EQdeWBjHZ#N9COK++F=j<2 z1&-1AdfCT83HNqyAI;}g^`Srby^sG_e-WO2KSY^8(}N2dDsYJ4p+}Gj3jFrhAN+6s z;P_vBS|{A@ItBqmu|XU;b4jZr8!eiELPE*GJJHWbOTIdx(*p#?aEgqk0@K73nXtAG z`o(X2DZX^~@Hdb2Z+v|J`44!B`*q!GWOOd>?LV=nfAgWmiYo~x%VMXffB+$K z6d7#TRjd#|(Gj_JNXlZGs~+|k5RqxZu9Y}r5r*J&V7htb%JEarR_}c-zGtU-{2Jc4 z;r90B@bK21JFj26F?-^PC)9N>zjm;{*G;SL#aH?V4+s{Gt1Fl+R0U8Ik|XsgJA_~mUZxh5!!TVV&C{EDR`1DI>bzlaocgB_5oiJH zKlW>Crf$;uYFZEVq?_(HE2*Y4bkmn!uMY9c4c{RmJ~4F|H3g7V36NJSAgY109E)e> zqk7?L=levdjHIgb5LpLzjEU`PU?Qr4j|;} zKK70sfwNCB#E=j=VRv~C?jA$v;jn98d2M*%rFi#VHD88Xx5DuO93RF0IEH2D7C0P3 zjNw5a5n(#*r&DfFChHElT)JVw6>*Kq3LJ%1JgF1im3xP7=x7KPcMbIw^$o6$IIEf~ z6Rh20=mSPxNdm&xIODaL@f>4}K_ufV1t6(pPh%V-&X#@dy#Y-1VjJ0YPLxvyQUt4N zr)e}-1TaI(i5{N9sstRW0Lr9Y z04)dYwPSz@hMlf&<>tWCqpBhCbA(^VsE^^a}_K3L?7USD~ZwAFgXq zx|c4r($D%y2KHrSI%7JPL^?(hpPtqs+s>q15V9~2yPM{jOzn~@Im@Jf7PL+kOAuL= zFdacqg;8z(!n|(e-XS_G90g5?$mYKFWvE1e7>ObP)J}39Ml$YZQ#!+1VrsBp-xne- zZH=mf5fCx&~+0&I)RmZ8RPt@I(85sb%;HRggHRp6ME!!Otg|z4l1nV4E{b_qq*&vki9r$QE4PRK%B*wI)6U&lS7dyShyz!VSpzepIqICs$PcfcnF50N;SM`}&xqRDb95l6Pfu7#UT#p=wsoFd`HUA*`@a ztDmg!%>hmFXiYksI$sfKh&mwHT}c5?b{vm7$Xx7`MpeD&I`2{XgPnT%;pd;Yb@TSE zyD(^<>@&`2&<21ALijEM`XX6r@mK!oM3n11d+5K_vK<6uW8%(i=fUyZSM}jyF`v)B z=llQQpZf71hi9MF#7j%w+rS6xY}XSurU&Zj@!wyiW&*9=_`|9_HU7}oH{ zSyg+!e?0%hCqAK%#UK99{?h-)-nF$_a$M)N>eAi&HfLt!8EG!kOf)tgWRN@xV?87f zF-~3rfdt~G1PKDU{DAzBJo_O}CQmWJM8r4{LlhE13^69iqeylvSsH6}&e1vhT=w35 zsah-h)Y2}B?$fiq*%Mh1FNU5z-MhQ1tE;Q3zxAzeUAuK#DbT3Px*XR4S$65Er(S#Q zweNqt`=8(Ym-*4rrNPL#D%YwQGd9%?1~%`o>bYN(DP#|1p&g$4^+;CRkMWmN`M5=i+2W2=MdD zB{LijfAec!14J0+;2Nhv8!Hs1OlJht_-1LRi*h=hF3HYyUHf+)l<)7(PLA@qqv>(I zyHAHxeKM<$k2Uxp0K;B0Se=c|B-JhqRausdGSSo_sH%}pBhw}eY$ol`j>v-J#0MSc zVK&BL&O_r0v#?YeP?KDZ3dnTsT>~!aHu|cRW*nB_S94pN>EJ35zqc2fZ%ZSUF)YP@ z4otzq7VZL$kq8g6MKBln4JA2YdPEWv*8eIHTP$U@07i>D<3n$0;G}B5F%Gf&RmO4# zPF|2C7LpO-wFDf=R3=BCo5)Tjq`bIO%A*maeu85r_AMraAZW)343dzVozq@};Sh;n zKu1+s1c;T!>$0A<)cK#d^{5+fO@HowzNXtZVZL-p(21x;!WB{~J?(m2AT@qM-#;ys zynEx@Xko|oO(U=SKh)Pd1L9iGkHe|fyBq*9F5`h)<%-;F`zBXJgf3mQ_i^-VG~-m@25W$1^qyNxrI{asV$)IGW80j+m>C5{SeGt`LB_s6BcA_DeB zDn#o_2c);-g0ffmTVrq@Ac>}g!U!v)isM(hqCu-*T5I{G29}XJ*x7ofeJmJqSW#gK z6iSuCwf!APd^!miLyX8L)pUL!Ad7W65HY|A$i}1kuvCtVJ|Zfo>&$&1X*WoJ%l@I8 zp*^PR>SN}1J8-EDURlank@oX=A=GqklTL)zW>dh;d(6JVtl84(YPOVzj;Cq?&79b| zffPMb46QTwN>ObdsQ# zxz9pwjR17a*TT$Q06IdDU5jqPx~YxMEGY0!Biy`svnUEVAtLs6_5F=u`}UArcU#*A zzfOd1_#N5%c)}hOU|T}1GkoM?wqTtYCIlG zJCO^OWx2n<-!#qR?;XQ^FOQY{ZAp;FryZ8T%)yC5^Z9(KtN!APcmMtSZynCS7{xmC zNireF^eX^*jSU8aY*?&>?f?lGfjudXr%# z+=IP?+xPFi^5?I?{jYc&%vF!Z|9q@@BR0|rN4Y_a_csXcE*i^@eq_c)uZCl&dY!Ls(#JoQ(# z*2Y*wEnY*3P9mm6F~daIwDwhZo)H7{ADo)b42(o?5;qj+ zj|NQ$lu{l5*@srA03C#Ng%rQNG;&z?F{{4P6qE6?VkENlMWN>~+aN#U0->`8RWUX! z$0oFH57(Gg=%@&s1(mCy=?em4qEJ`{3Ns7LORqcwbdK%d*Vm%ROeIvT(*wljs3OQ@-|w0UUyo z`r)&y7|>clLC$Bs49*7c=clS}CU$tW7@+eO$ruAQfl}7bty0y_m;o{Z1!w?a*5n@_ zKv}`h-iL!J?CmfAv7A}u0!$uPt|EpVTeaH74! z$XjOb00gOBnMydqVIf4aE>RLu6FtP#?mmh#WXLgR^ zSD?B~NwMvD&|RMI6OFx1*CDR20|??F*bh`;4E0*ILKW9RZJ{O7;z6&kw-y2$!B&jR zu#!fXudj#Aq38G}aa&-4ka;c8k3FnsDYoNQKH*ie(6;lHF{pB7Egf+1kSJoWo>(+p z!jrJRdQvW5`#GAfFx2P5PyM06xF*uSZJg}t)x(KP>RbaMZ08;a1E(if9RZnk;Zb<6 zG5&z%ej~81TgPs!Y_MVSQj78@Na=AkQAfrQ&ZU?_rWp>7QZ_8d5k~d=&;iJW4Ft92 zST;>2JAFB<`!H&V`S9FDTNYYlkYT^VEQ|sTY&e9J8Dn(h52MG>z!8v&8qvvUh#VpU zjj)>qprnv0km4JG&`9xCCxXM4)mUWl<3T#?-r^9(;WJ7)xCB zkl|Igp%@w!#cE;j0e}g=hoViXlz0IO#emqY$v-BQ_Ca#RgfJmo?4Hgo-PrFo3wyUV z4Aw911n0h$-Tq-yu^s4ffozJ(A#T9@-5#v(_t0*Xlc1ZmvQ4{bZAsawX%)pYZ|W@X zh4_2x%}JbTmwKcjR|KZ)wo3H-X&ckm_XXQLNXCUH`qUf118V62$SCI;X8^8UGuN+;wVBs-6*w@O7`)fL zT!F+kZ=dTu;u}1;_3a-vvdCv5fK>`Xd~6x0h4l*!F8Tws)=?ruNXi0F+hFl2L$H+J zCM0+HL44@v%3(!WXR$OxyR~+yLcSD$?(^@)sjEUXz>~=+v+T$rko2tqB~(I(Tl*Zh zw}mHN47?92tF9`*-hJ-UbpP_3KR%c>RM&G5Yz&}b0Qiidho3={2SZGeg%ca)FVVV; zn>;UOr)6E1dq;=QKmYt6zxwLsmtGQfz76Pe!%d!LBFAo(rTOW9y#D$RzVjVlmc!AY znja4`r`b zxvzfx>tmDu)8BsUVDA7>7l790u5u}e5Z7UIrj>L?9R@Urwe=;`<23|Rw{tkTR^HR1 zs?m`}91n(<(A00h9I9T53VO2KyV4M#I8nk$H zGo9VIapO0>a{J|bSFT@$JU>9aK;=M~BU!d|e~ofm3<71y4eL=jOn#$PvS02EKMrX+8ZY4n5NDk zPqHI636x#X7JY_uh&j;WeKUtIkbqhWa!D-`I19DbdN|&hT)wDAhI7M1!-e%jwOnFu z!Dz^Uwer9X`PzFT@W_rm=rbm@LD0oOx&^gr56rEg(KBQ60Ijr6lprPv_asRbg?Rol zZLW_|w(T4XsdjwIspnvwQ?<8XCnX3c28b!GAgZb%wsY64oKiwqXn)YEbPmm7CA|xU zNGu0xRNWlt-5e$|ZS{l*AsPd6SA(n1eyjtf%{hlngWiKYGE@v48F>gvyN|;`j~?`= zpaC7%x3{G5z2wb}n7@dyHjY>(oLdf_HNck=9ttd3^1Dj%r_3e3jm!+a1b_) zjF!nWr7-UeYs4+0q7Ew&fJU&A5K(JwVgMQXhvv%r;q1IKp^%K?E!HugE%$lF&VPC=M2e~^#IoPgH*TtYe3Tefq)b1 zmN5MUSTC&6|8{JT{>Yg(5s`oLk_((zHyc4J7qD&|No%aPBigKTdL>Hw+p|IMz0UIc z_wT>;UiHua`iR42RWN3b81!;wG#c^B1Z|Y}JrboOG})}ITYE7TVMI9v^h`B9y3b48 zPg)5}8j1q$+_^IzkDL0yIhSjrwRKG|%A7_yY~L6*4gW&KzP7r(bptO&PR1)$S& zP9~GUfUc29gTmFQ3c#NZ1KN9E6h(b{QW%@(`LY^yabXGgEa<(r-~FgwaA>hbS(X65 z0-#~NHDLm@O7|?;Tj3a+ost`0*6V+PnRpo`x|Jv{U*`M6}-QR93R1FsZ z+JSYD8#@~kfVZ^J)5XJY|KpqA_~znZ_sXRma@8=mjjy#;rqY2!=a_*pvTw9zS*Ng< z&i-i!0J($Dlr^RT07D9J#jOC*D%G*ZFfgEX*gGHWoMEX!XI42HS_K#EtXjGbAb(D>Ky`O6b$Miqe0jmvX$?ehIU`orwP=-c1;>*@aV*3~O}2YbV!Kn9FlKmtt| z>S{{~4wS(Od$YjXaEyzX2gaLR8Ou`(EUKIi4I<_|D9p~-KKr!0{oLsKm25mw7baxw zht!mLewI#<8BdNEZ$Fy6{Xd_3@FVxZ2d2o zmB5~$0fKr?7DifKA78o&8lYN0b#(G@_ud5Nv*GXV@y0-%hFTD;mX1Z0C-(1 zB)6IxFxpTW8blI|cNoSaL*yJ=G(Kj$ zQJ5hVKshm?ZU8-F37(K^11_`@GB`Wi&H)cyvRF@&1n@E9t$IR2mJlrd%v#P3?>*ex)*}IlrIgToP9@USTx$g&d9LI^RI5Gk&3pVT!!g=uv*dS%Y zmcN5opezuJpzPQogjhweAc}->0)aSo;>d~P$9>N2?y5S}?K8KgG(COeD__GR9L=p; zs;Q|y_3ExV{nd9e>(Ke(?zkn;aOL8t8I{bueQ78n$P~ib)h0-hd+#f6MM#K)L}Msr z*(d8eM3fJ5X0E;AA}bbhFg#cpI)a+5L)$=OLDYGmg8>F(sV^aAijIZ*Vj5hMX}qKGXdR4h3n>RTy? zx&i~VUO=Gz{nY7vn_o}yc$lJ7Go%E=h{-(C3_P>M%mk4q{FO1k_n!M5Qj17;5#|%0 z-SHq{5C?*Bf(!T{(DmUt#rJxrI4>lkbb?P9X8_e8p`n9zE+8`P3soRu5!f#fvUfsQ zGFF6;W%Y1qK&pCN7S*b&SDpRB3Rr2pCmd#!g9i&Bgz@en0w^G{irR{&zYpxkL3ft; zr^Eq$ykV|aum^x9F`5ua-onTsN6me{A!rllp5_FHUlLKhj~yFi?%X>2WY2qzNB`gS%w zoYBoZ0}zPJ^a`rZjYv$@6)v{vJ{_59FAL4ETXcZN@$GUPAt;A3U!PeH=p;{M^ll?P zeC5*RfKE-T>DxWMw_plrjpei<#yZ9-0XqG*W9)W-pcv%i$z)Nb2Wn@kr4RskkPsq! z1H$YI!Hj(o5<|Rw0_Gw}PT0Al(Jt+km;?|qXDx_&U*=c~^iqmyKAFW)S#JNO@ady4 z6=u=Q09X@y0wERz3+M=}h%|htaNAPk)h{$4it#QElC1rJsQBVAp7Kgfy3rw_pv55M z_C#(AF9eas&^;2qZ_-4YlG@wi#G_JOji?1YYayT0JZRAhj7F0qeDegI-Xt zKDi=9M39mN$(4qQ_mNPqmv;hPiTWaK11Ii?1a7L%z$?Lei9RV#(8h~ zUH5(Qizl=}A0O{kM&Lx!^}f@^3ZP1-{q?IZDPo_hX*M|}iW0#tmTaDVB;o1g4eH4!NxgS9r=nsuLuhzeDS_T>nAjpIj=uwC$Y{EAyi z0Vt7$V-Cj`>YO1Y_Rf_AmtQ>h+_M{qW5X4*XLcmqG6@zU;<4&Eh11ijPniRHrbaP- zT9=5{-iY2i>^nH<{5%pXWzvy|gVwhT+B?3LSY}ERow{~csJm-r?gWY6Ce>6uqrCPz z5$P}^B4v;4z3oixatH*YVVRjis%<@o3Fwmr73t_XovxIg{9M!)m@`B%V4bb(Sk{&{ zU%dECW&MY@zO)V0t_E=K{|4yC-e{!&uINMheBheK=ape&I5*3P4VeuZzC1p8E3mgFTwvYhig zFSx+WjK|IO>(@Vi>#f%fUB32%3Y-UGKqt;H!}9XW*RBnB#((_H+qZAuKD)8n0|tCz z>1V&{!gkVaInK+k^<7(9-rQV2x3+n9bLshKMip?E9nZfJn=3}Bf~?tz+!ebCFL)@|^9PQOfx>~%8UML=56L;i6AG}~?D-Pl&?QGZ>AtbNs z7&2VffwO1KMV>((RFk%yqwO_8jvq!+*O!3F7*_g7QKn1`@w5bisg;D7kRV-_`Bo5g zJkJ1jB1YJ!12w*r?^+*Nu#2nGai5AN#`Khtxx0eYcTL<1X@wFd==82AU4BxpQ)!Cy z)N61MAe^L&c9{nel&ECe;GnwIb;af|qMC%k0Ft{Jt@Xf!h)VJ1vpOq1bLJGWE|AhC zsV17z=O#WTKE2h;Q}u?QhEL9V+^cPD!)e+RLA;Op<#E9{DYJj7r*!nu(oWSKe7E%y zjO580xr+ycV>fc0Q|jW{N!;6>Dlw1u(zB|;QyhmPkm?|k#1n11cH#c+02S<+M14%M zGx{LTL}uQ319V#KH2AW+eI4ca!5OOnDqnA0>px@@Yua)C)_x>}h(1IP!^YJ{2t>T2 z@FyPB0Ig*u256YPN}FC9WAQ{tiE~#ZeJtvRKQ&3Kp{L8?%j6YF4ep2wi%1X%P{4!w zL_siZcGlt1W}_}vF-Y>9>hu~$p1s&dEhPwXtdz{$QV>&Zp^XZl%3OGa)7;#5ANoM*|bLIMu2>N(QH92(KNBI2_uo7YXqrG20Cn-#1|A{8;sC%Pfq<(mIoT!CKsl%j z$-xr%4A9%$x?I=`>?3+3nevxYBZkp3%#%K{v^w`KVi!1kWXfDDI1Mr3EJmurh|JGC zSJ$|p?~Fc|Fb)eryj-k$=K?8pDU z{MswSGizX|@hf$XP3G{0(Z!#?d1+++`paKGc(Ap|SeE6e$gQ=sR~chITRG&9KVub* zI1NFF1qg*b08ZSIIRZ=VNU$tblV!#=Rv$&7SRmA1$+5*VBRDnHvCrTk0Mvd35d|Ny z2h*&8ut#bP?&qH&V&Rvv1DhW-OGK-y{=$X5E8op8U4-S;ok0P^VOfj}WHnUP&h5|d z-TQKN?L6Qj91H0JE zN|sSk%V_7Tx~|K5u;;h$WcQcPjW#bDURi|21*q3Hcq6n7uCG^)+~EG=xr1xP@2-yM zr9$3&-{1PeLbD(N^eWaFv1Ea(oY)7kmR&LU4|~`4Gs$(-tLpUW?zw#5j=#Nm9l{c9 zu4>|8|gyi8#Sl1F&m9nlJ16d{+q}yz*<0NCGBG@`} z3-)d(5(QF^+qprbRQnwSP(hO547pG=%a(j`RWcffrNTl%M@quNilRX@DVPLcotVIv_LAE${4Egdb=6$4BMuR0C27hFxQO$fhJ`WZ-q$Y2JKQ5AmxVi zHa8;)Ljl!vBqFJ8>{{+fM45G?FeSGs5_qjfM6z%c7F9h|+F~WFAiNR~Q7J+Zg6;S{ z%oF7jiDFr7wc7xJ{J@Ohn(OX@uxh~eQmz}6mNwnq1Bq0PqD9xzXIf7NU=KvPj=W`j z7E~pNV*y);kFa28_}2ZjD1;DvlUSo61(0GH+0sc0F~+1qM8MJ^1<>HnzAX5lh(2;v zyqOy7_u!q`YB;Kz23$s?{>G5f5xzKi0$m`O)o=!!c z{y2<}506ebKD?mgr2rE^4GmY#0uQmWohy^^*=*R}Reb>?tCkG#s8|35RPb?XLfz8? z7^zzsqt2iCNI)L`eAEY$e@n7=+Tv(HGW8z~vN1FeW_}UHd#3bq-eKzfZ>!zX2nwQ_ z;Tb(056M-@+_Bsa1%bM6Z6J!Y)n{p+;y^kGc6UT{8IBhp4s)luiHfkZxDf&oAVGplC^A%RpQ3?`WjOmdloEmzhM=to z3b4ynfh)oYEix;nO-q?1z5-BmEfNG2DG1aGDC&x4Qd&R3_ha03e>HLSvDK%TidjNH zT8mkH;T!;lO0F1V4n`vrcPg8s(kPOe_#)acE33tgL=_+qx5LC05(O`2hdbDIysVAX zzGDxyf28m>wLV??YL(yYadE>w5F_M@8^?y*TqUi?H;r}zL^BihNZF~c0VMRqK|L7N zY}K9zD>6l+pYAHH+k0F72^3B30+v`o6q2+=fr!ADV_|@9ez=SkA*jD}CGDo~p&GZR z(7YUOZx#p2ZRa7lTBlPdpPq)$nW^j1H?FA8QDQivQ zpT^K+Dq7iJKOQN|=V-ep;1SsOg`k0@-F=+#vVkYd$>hoJ+^7wK#W!C zCkWR>O%BE@OkonGfSoU?q72Z~HN+N<1Hc=%$G`R7^_$m3(__V!G!mOa99c9$aat4r zo36+SlCTOn-4J*i+3cS0ii#lJJn1{4+-x~y4eD+|3<=OLH9RC{AAn@6j{}Pr4GhEW z^QpXxkW#8EA!bdd2eFt`1t=?2)^CDu#W_F_(7hk%y#|b^*PC4q*L$ zP9m>ffh+MeES9N-f)3SOMFFv(0eY0d%F(aG{jQIdFO9sD5v`@Vn4B+KBn)-ET=z90 zd`ju*o4+!M}whwp#=8{dFe*4pQ$Reh&wLw)*hly?giO^Akio zIy&O2f|UhiCFjk_z0YQgharR|Pv^iFIRE5Hx;ckCUwb!>N0Z6q=FP)3taUsJAs`i@ zuBS)i#i`!DeYNE;x8d~e{o{*el4=#pF1Y}jLP}!@1r~c?8oALp|1^g)_u9ATt~!UH z_WJfNX43A{7XvfqDB%33^USbtx0ZK@-8~3yUp@u4rRe3{litq-ydTVBA?oQ6q2hLX z&BCDU1~UZcIJVH@6Zs(*LcsB4;tJ@AP^nT|R~<8ssIAOJNTIP1ASSZXukIP#{q&QT zSj%F3bTGL(I~=c(%O$xTd%W&-&D@OG$)2pLWem>q?qpuJUMs{0tT+>b`w@91er6mw~sxvvb7)a{KN;JbT<=>>K# zJHmI+r|!p|43T$xy!2R}p>r=zNKRAkXBjsOrIeJ`@0epoz(o4AJVR&b`BPy}yA0to zYskFJWwA^mXk0s;ZYFN&D^! zpHqgNO-+b&*RG>CiM;@n+uolSxTkxNIKx5Fo$iKZ-2dK-tR~OJ{jI7miM-B}eP&4e zv*YMtqte}H6zRM^UW&Z#DX+1gS_h8K!}~?pLyDb6HW~Qc+F#Nk#RmoQS*wSH&3|Ti zA8wbb%inX92QzO;5;_d5LP{xQTKoJjmyWx`=2vg^tfKN=mZ_Ij2vh?jC}ScK@Ch*A zpLFl2z^nr9^e`K1|C(LAzm;f9s@vp{ZkJ4t88 zn9XMIyz|btzV*hx{`me=vW{MymG@BYS(8#CdHwrR-3 zOCf$D>&;^Ujc|uH8)^Tz>(4vK`*3`{7$wf|oc^;wKzruJ1V~-8OhAKp-6XbMI-S{B zOoqKQgmqJTR&&LmKg?F1>7X^A}C_mjmChn;=kvO*tE&3=r^HRHd2zyRi zFFiCOF=z!oguV9=n>{&!hLuzVt=ctzIi1A#=Jn~Xy-~mU-tn)#UcGW_%DQNq$5k*s z^Ckh$fTpvXvnw~Ws0HABsX#>x_o_#a9<}szcB}cyTT)%SsAui}{?EzT=|v?tJDg8% z9=8`i46Pjh@YcQmyI4Lw9FGs??Luf&jBi~0==knMH3_dBUX5X#CWlK+qexy?#0m&MVei^{ z1?7ncenDRHi+D+%BJqHPB3|;A%WDV` zN=P7vLa$y%01mPb?H9!)px#=A)#U=_~M<( zP&{K0gLIYGyTq43ru1J!xp;m!GeM!|WJ`GnI`|-7)H(RdeCFA>}z`0qbccw{1{gRU{0e z0F;Or9s_7Z+o_Z$?_9)K6*z~lldTNSHGqphmcAOH6Hc!5<+wuxk`sv-088!!8_7mf zul{m~JUA8c#3UgYo@A6I|Jikrt2Oa>mMHgqJnzzNs#MhCbeuQcB@OK+l4>c$lF%66 zDPmlPNoJFo+SQ!2YFmo4o_0o%6pap_b@vj9RJlo)-9U=I1FZqO88}6S`b1Y9>nr{` zY^)zY(S2>Wh<2a$k!mOi=ut>*#82Z@-S3*!8fXR~SR3Zzx!lH8wC!juc&2u%I|)8w z34;mD0xnF_-nNy15JiX}3ZzTpoT+K(Ep`WFGZ1AoBV;7Yk}-3ofGBaI%;F4e@PCvn zj|e3m10a^U-XW`GX#|@50>*+u3tp7UcpdS!`5@y1fCeB`_}+zr-M?1+JBWxFsSRc! zBg?sZteHp|!SR z1%;SUP-?Mc+h@Cg|HDWKnR_L2rAkzDGoLo55g>(%1vO}6_6ONQd1LVWb63A}bzAi0 zXu7We6}M_b0IYxzNP`v-2rmzC?z)f>E7tp#!odM<<6M1pi$w&N8-kK#+6yb=Tw+JT zT?#PnbRh`lS}(*id6UHVz%N1Ivsyrqi7{JJj|jlgLb@5s-H?-b`Lj4XC~2%rYM+xZ zzLC$9AJAuO?WtZzK(vV{=2HhqA+W8d)9IZ%cdlK#7Fg1^oI#Hn4MZrQ2u7pLyig*B znPYJel8_EvE{;C;CqV_Aw^_#orEOdABrsdgS;^kz?LnDsY!v@qkPQ#M1)%R|TU%RY zSpp|r^3~a5m_AyzFq|>wxVATL+<4{HSK<0~4PwQxLEu6$Gy?2Y0y3pwJpKJ!Z@u~E zo7>v#jz-ip7gnn37n%CTV9=*p@Zc8%pw{{O@4r8NoB1{at>Eg9XcDm55@Qh+l!p7?P4h2-wdn>Q!=@CngRZfsw< za-~!|k3IV2-`;t5afO9I{%C_1O$5ODXmh!PcdsGJv}j8R?xB2ic(`c2M~}CtYRY@2 zs&dX9JuoYaVsLmko=heWZ}09s^>nrM80DY6`}h41KGH`M^vp-46j&FoB8G_}*+>sA zZ>#_iBgj4eYw+MZ%7(G0t^vXhdCEXv7kt-0wEEL$OJ}R)6KP`bnr2gA*5)IeRcEH{dC^269QI15uz6xBwlwkoWOEoE$>pv+9pILNZH zFa%ob5wSyBtRXOBtQCt6EMlmc^fh=K=s`ht*|x&D)KJSV>-DbP*nW8}?i?_6<(eF$at^k>$jQI_3lVb6ULwL{JWZRw(4q@NOsj zyblwRwrybOvce)3fTnBb1@6huhdMTKj4yRN}_R9^+ zRC;0^18yB~nWD*QTZIEcIxqM6ycuy*|1I_KqjRW-S(*MckhObVX>@|Cy$`Ya;yD}o zm67}L`Ue7V2j4IF$>|2by7rVWHe=F&spIh=gPyh4`NA9qJ$1(0#X@I!=hD;Hp8D)h zfBwhYf4%kjxC3noh)@YDD~+|T#^=8gK_ZvKrVON1|D;MeC_Zl?J0n8JooE>(MNyck z0RSx;014=ko$C5iyVn(*{gh)HHj zKNg8+i8$$c5R)1ApsCPd%rGcwsmkGPBXOpK)sh)-Q%W_v_$? z5+rnOAQL#Oa>_X`;^u$209-($zj0|}_|W3leG5R}#|Aswv{?b2$i@jUh$3j|hhPE7 zXOSiVIzQ~1>rT(ny2ZS4WWZQIj?jW_FYNF9#G+*mpmb1>IGe&M-a{>r@c6CzN@ zQ^(@Vh?e!aDlMS-Wm{~3WQW|CfWkD>AojP7+&cuCw zfY$%q>0iEF+zfU+Xp1M0Xn>rk$dxh19!+-{3e3#STmO3fcYFK!?$3V)FMjV>$(%qz zF@OTC9lr95k9S7zz4n{;-g);&2ZN&IX)~chS=X7~9XB9BPttm(5fWQK%K)JK%7Meg zZo$oU4Cq#1NOJehjpyGu*2ytgWwd4{vROg1$9J}GT;INS_4CojVQxqBeGu6kWV>0p z53{3Yd{9qk_V_Y0V^L#1repvt|8>fy2q?8IMHfvx9wY%8*5p0qwvW!4; zkxR};1>Ak&5?9Y}?GEy7`s9QEj_)3*qlv++r0fz}qrrm1)YBMAujS{C6E`}lTw%DZ z_@LGqN+NKvW&yB*6sHsbIL(w`9E!UtKA^bu-i!ewo+E~YUKG-x>v2ROF?B44=MccZAUQZN5afU5 z7bJjl%E>U`lXHuMASc5@947*7S&2lEl*A?XG1Fa@))cpQxU(EBCBqg17Y4=AXm%dm zJ^lFltFJo(xu8MGnDYRL5FD`K(wIO}l1eaB;ee!)iDaMnswzsX1axe^*A8PY<(it zMx8@V64HW|L{wc%yPH4+hN>N;rOTnDgH3o^W>!bK72sYnU=V=TwXo)xzVd%PM*~C7 zIi#vj36M%JR{Ql^gQ<@3BELqS4q#31D_jvPGA}X>P*}8{d!fu6zfg`DM-v(!+UdUO zKgivlH+z%57XfAn9>fC&5Frp#J)b2>G|>`adaU{iK!7zSroPs^g`!%^7~os8*451G zY1mHvleST};DU~@2-Ws68n6IjT@^a9blV50sTHk*fFQU?a6_5xHxXw&Ie8^VOTq!w zIMf03w4R}Espd}SpX}E2X{)`<(rFbDZh>xBLY4(JC6|N6jL{ZAvXweej8UH3+b56hPH&9><8hG(N+JYPP&y%aLfNrYE1t z?*a&v#;2QOy?`tF%cvV&0tpi;IqypH7l13#SFqbT>gF{5<7?1$Y!PfH-d9>k!tTowbBhG<22Etg(4!G?1x!YgK*l!Zed+c6F}3YNTi- zRusj8Omjpq^nVdi6`yrQ$~up&sZ6NYf+|ffJf{}9Ite-g(0A|NjWWAAKaLPB zJjT363wAruAM_9skY$7#5~n z>#V)};^6%H_ICjEW31clf^)N>$hXgc);T);JnsK@_v-fd-g@`l>uzmyw8o zIDkH8knq>{-~Z^n_xk($ThDKZl|rTfVcD|a_+(A&{~rTds~D|`ybpuHzzg5r-TmN$ z5B78O<4c|O@4uuUPvBqy!MUHm{r1+u4=IIhewB;rtcZ zzJ84cU4yu_wS|bI^4#EpHAY}M6*hU^`@s)iIo#d*&)t9Q?Ccy2$5$_7zklxKm$%0E z?>^XrP#zG$xPY~Fc;SVO*Iv77&Qmx#8V*e;I~)e()J+N=kH-@~7Lnm_c=P5>oAtZ> zE0JVk^MMMUjW@oDI|@IwX2mhd2?(SKd8ij_Pi{5oCg z3FJ+eAbKqN?^@diO;E30fwx7+Q;xk}aJ~UZ8W1v8ja%(~jWHIGh;n1PVET@F3~Qd; zG-OCQSDQe_6)iac$-JK7XbK@5L!$~kM=#ME(M7kW%BzhQAOr$J1d>>QO@~a+Mh_WL zhiq<5=GM9foH-75>t|wU0wo*tjyy;p=2_ET`tp&VmKe>NXqwa`ACc3E~rXz22Dg8~EUSHz6k5w7-ESdj?)Se73yOYN_bSkSIe#LROr3s=4r za^ldnrNi>XY^q2%7LltA(iNUS)4aw)S|;J8<)@C&&AIj=gbIMx^AdtygA7D}#iSs9 zb+>8=%~HvYRsb}Dco0D$@+@qGeI0#cC09CnGg(BmH=onT%8&e zyg&+oQ&@cATIo6|{0hnHJhIt3aJS@Nm(bt>ulM!`cl?FXsO|8iY zZZFK~oV0VA@-o*nbDsu_T+MEfFYn1O?F+TA%iEt* zqxKaYD5-<$Jqm_=$h6%mHst&k#bEWkjTq zqVkgx)EEbuly){^63|!eST~2e)-kT?(WWTIGV74qQ+!_dA`W4qMQjy zP%c?bTniXj7siJG7=m&P2x0SL-#S=}QJ?GG++m*QSGF%lE_N?J@RQMSG{g#Q z#@LzkR+x{ANfUt6RX-dI`msEu%619&8J@`6WzE|8QXm?|J|`qqB{L=+ha+-kb93`M z0QxZ&43!oMfdMQ42_OgZJ`r?e=20ka0%tQ6numnr@jg^H(#^;T77F=-*cWJqZ1!J$ z>5bp~_WG}X>+X}^{r!Hpe$UbX$0vHD~bU+$P3;W z6f#xgrJBD@E=F6uAbFK9Q=loLpcg~~C@38F39RA3qw!>TOD^8nT)zNix10v#u}t=d z)BVG}d;V~234Hlwh(_!)c<@lxrtZ0I3;7zH+q|@P0muR|Sb)G7dM+NP2L!_~%Khlt zc#_{P`s){p=dNyF@rQWp=)n#+gbO)6f9c${7o8c5U~**qv=0L@)8HOTF2UYG#QT#x zl#kMIdRUgBpd-xj_T}{>eCg=ox>@h%U*7IKob&{pbRIIZskI`hnMr~6&87Sji+rI0 zHdUxpbE#+v+>ZAxh5!?&tte7Pwan8yF$kho9*ElM4~!xTJ&&B#22V;afgKQu7>*kl z0fQ91YQ#%r`#nyhXsiyB%#YOPLWQL&?Ob_4M6GQIq~oCv7=3SIdQ3f!(IaBNfD7!h z07PT~GXRHFJraZfc9xK$^Ck!-NMSm9SMb#X1LVTW*%y&gSVzM`R66BlkBBHZ_#b=M z^CQVkg`c18`qe$VGn?66Z9)=A5ZV9&3Ams{NCb&P4uKOA2X2TzhBGHlkr3j_Ij4wY zZs7!31qhjBlkDuybWi`PD*HWp{4{RQc&60aEQCmThf$5&u5#HfSNZezzUPeU3+gMw zO!h7v~OMq)5 z(wdY$J%FCI2d!1m+|Y&mm2^f`b&b-AU4CYHcIm|R*3z@5}Y z3Uf@jA`DK%9~poz=)Xf0vK_F?K`U-YVdkC~?6DwK_6h+UIr5GRa7eW4SID#LIB)gH z>7A2+!Z3q#v?A^tcAy-A1N0vJ=8l91NfMczLb{3Sw;oc7Jxo-RJNUmcMhG^nCY)QY z1fAqEfJBD`+ zbHnpgHI*}+nFqExhtDs3ZLx?s`?I@_RUAtK{u>=8$xmgWA~HPW8q2eR3`N~KXG4TzZumZ$*a6!JzTX{!yF zStb}HPQM?3Wh`oBhJeg6Y4*g7$heV0@@_Li7&lJ}sR%$bZRRd~^h011`baY=^qN_r z$G~OQijhex0>%0?4;xK%nob-sbd`)-Mdx?r2^7x4Ka#?6Ic^Nb(P9weqh?H>ZDc|) zIxUJaze!MBuh!6xjH zM=CozfS(R9f`{E`wh*`3LTw|f!}bB_hJCYAxPP0#r?H-CsoX~}rVK~`=Q)RM5WC!d zWjd@4JxuQypb>1PcJe>bfX?|Y(eE>9|Hro65h{xKY0RV%Gq(e=!D!XlC-f7xNKeLK zE*K*2nr}_#Q*PU0Y!T-D{NDbK`pJ*%D=&Zb!QtwIgXZAhM<0JYdvv&ZbhKP9c-dQK>;FIR-V1|2PHmK^4?RVILacQ zO}vzJN{lWP|H&z|DdNfJw+aY(!@35YcD{^=xITS6={Cin!}5+;F?nTZRAE!XYT+2b zOII+mho0L&+JUkxjWHM8GS(?YQ2>DGLHl3;um+u_N--t3IEqqN0QsAWW0+uF*U7+( z`nvDD^9}$AHoZmo!5#xueP>iv)&RG1O>sy{J;S6w_{pNrdCnv=laX;R+9qAsdG_lA zRK(O$N5+^h0q8-CG7(6w-e z$G!db+i$+{#`56c?o&^dWS!?(+v=T~*(F<`pq_-Q(H9PV9xx&rjYhtw^^9X|;l1y? ztLsrmycRzG$6If`ujmK6_S@h5zOf|$6t?JHUzOF5Uw!qZ2kl?}_^12#?v+N_!aiPm zf`aWsW^Y7MrPP_0s|pmD!^6W*8hq(ReBp%`rpLW+*|n~n%+@z@^k9iS)HNt_a-PLv z^~n^DX77G&zTCa_6=&R9;u&`|VBpU5J-bdJ(aFhVG9jWncb+l2x_|%vqC4EX(X8dj zpL=>bd9XuWf32x*?eC0k9)X(AA3j_zSM%w#Yl*ZPkHfqSnSZ`ms(LzY7kOzaXwkJ)(|5V4Bs$%istnJu#+ z(YI7h*i)>k)*zdQj7W6#InM`0RD*GE^M;BjjFgi0v`Q6dO4ha24QoUk7pm@E;X&dB zX(Eu7EuZE`I#V(MiXjTME|M0DO>}lsfB>v?@Tj#K5z8isrd1j$%MHR#jn`}5F}~Id z-FKEEIOo7YpbbhGpd7gQ++q|BvY#w~iR0W9<}29;PgD&&Qf>cecL zjcB<9HcGJo(8?hZphpE3ShI%!Knv(Wz^1U4i4<`jv^KDlHd+%}Yr_h4>O=yk>4=f} zE8xCCSzXJ(SjBp#T_Ve740(u!N9KYihfnem3|Y=%#yGwAuFc)~g=w`N>K9?M%K@@{ z7a4+SeYq$(;*fUm_N%0H5T*yQN|!!{pM42-73DnThUf3@JVr5jACJ@XT;-Kd0%l#> zPy;qNpKrt9$+8W2N)0iT0n}AG07J7%j@UkF%kL#^+xEs_wL=BcfTzas~vKx)c^%8r$Q`e<7R@s8J z2IiKiV_Gryh+LNC()H^T5^>Ws8kG>ML-$2r5Ht$4)*`IuMf^mgw7lqWAY$x-6o8Jw z>Rsz%O8!7?IZlRrKvlv@VZ18v!!~Zj1J`Dfv$6DSSsGZl9O023H^xYh6Hz+vt<#17 zo?^|p+;je7m9jdR0M>Dplopf>c?(-><)X1NWm&duI}qDIBLt$i&P9;2e)or?zy5u1b$oMtz3)~Aln%3rEpfV-o3aX> zE-NPT+6eztURSdB)h~OIrjk*?vJ~k~5#hD-f~Xz~%M}9)AFB0150=uU1Tr+zG#w%m3!PV^10gX%F`{j)14;!{S z9~P*Mu2f%D`swlhKDUP_M;~=`zu7IX-Fmj%Z4N$c9vrVm>~?S4J1;t00IZGxj)BX? zN8RB^>fAxY246cL(C zp<(tRzs8{E94f=KHc?8_;kgktLj+}6-Ci1*TZpjz4|`YlV#`s)tEziG&e=WpW+REg zL=oaw5Wxq*7(_xePx&u=_CNATFknz0eTZ*@KKde}5C}#?5;gbky}S49p84pma!wVe zX{OJPd#^|cq&UpZ_Vjf3bocZ})o*@fF7gnFoOT|J+GAse()E!o9T7H&lLMJ)#tk)Q zD!i{;SDQf2xlN>1;L{OL0!|?-aI1)(z=J&<+eo!@2w<3N6h-bEZzG2QdO;itA|sjt zIC8HzG8T~0Me!^(#u{QvvYLJ#S2eeQ>!w*Xu&N(yhH7t7tGxGEIowOseNBYG90u71 z6llnw0LCZ}nhM8w=nxSV4iGp_V#p=?(BH*ukkF|4JtE@giI5MMvJ(n76ElY5U z6CMNv2-Ey(B&mVpJ{E{A%kEb&D_vss8^>qYh#uh z#eCz9iV7zcO9?60%ZNa9WIAZe!VDg6f7I(G7O4zDl`#gKgi@&tgov4YL0~PR80;Zx zUV6h(>gSnJ4M6t&LF+$?;s{LXUsueWve0udrZ!T6L|LcffQ1O{V-e)AthpjG85L}x z$cvl4%=M-=CsE3+WM82(%X|04Ub6!>dKflxZU0~yEO0T z{|f4XOVsTQQ7gjv_3W56irlaZ5=z|hAoE8HJX+-9X!$~sZ~hUeMMzd90wL>A`mgP) zHCk?fL5F~c@h4}>BE8GatxbS4Gf(cfFh)M6YAN(k1*dI(DH)kcURP$(yP~D7@l8)? z=XTT`9az?JL1#TvG3e)(u^_R{>3R}yQmhXI^Z$xY+fD+f9?QuY9cKK|(HV5urJ+gC z9c;Rg>!qy~#BDVi2wI>b=mFvgXbM)U1Tn$BeT3wUmw*5~suvgs1mZ1C(wPE{%Kdsx zoQikgc^3!58S^{AL8{$1G6%?d)H>m)PpaV@Gq3#&E`7zX>5!$ysOOllP6XD&A7x*C ziPb+~AlwlNIgKe=x6b0=tfdb4DYlA82sIPpCUpSo;Zd|C3Y_yMK z?*@X!1cZEN;U!lb&(5*sH24eWqQyIw&ET zGc&D;%^kT4TU2riku=w2MYUhzU^T@@EI$uVglSOtLMRENvtkrdcuHjEn}Ep{Eyif6 z*_(dUB4t-|s?!o0;$5nr<2hQ>lp2k6T-G(`Ez2q?eqK?zJNFW0Vr_I3qRxUzW0lCz z@*C$Bc!PtG+4!74`;&4~NqMOhYde$T#$w(q0!t3)Sp+VOUM99q%QH<0mSE@Ej*RoJ zf}F=(FhnieeVI9}^sEI<+epdDC0N^vChad_qgEn=T`NAw@59)O#Yer$5imM(fMFjH!eU+=$vq7=q^(AKE$K;@aBgHTS`p9;LyCo9HMzdG@K2k*S|&Vx7Ke74=b z{Dap6V2*Y9-Yc(sn>T;>`7i(Y_OH%|*fte8U#nSc82Y-d<1GMXX%K{5wN(4b^g2x& z##iN>*ey`lkV6O&Vu)dihKTm1Nf)N(`{`u!c&RGN2(L1#QzB#$Nt5EFVzVRqdAp~=94F^-mKx;fW;^1HdP`MH-X+5$ z*;dZV8aaX-`jTXBqC-ubJrpwuAb5^J)zD%J=#Uozob_ zR+4yFf@O9Kb%G{kUZq}D<#^xF(*+jkLKYx_ON+x#dh)$3&2BnA;k-<^48|0d)Pl22 z%Yi*f&iRm1_}~3Q-aL+_9+FRRb}1&Zth%X}36W>VFzlGw)bXZ(mdG6UD&sIp41ptA zI(ua()z0i{5=0~cpA|h)sR>sDokt{aYQ*i4ND`$rGuQ^4RLu0nfu|D#-kRprk(<3% zQ+Td`wxfm5cHiYw=U6TR%HUiku*{NVC$~iPdhbnbLPT;vKu->Yi0(71kGyd}KmqCd z2r7nH2Y`fwPJoqUax+Gbs8YVjSz9=-LMj%LtR|LnGS{UFG$7rR>Z1S{nufIS5jfw> z3Y12pqV^tpJFvXU#s5B@2uS)O@G}K8EX$VT^t%gy*4V%@4x#HD2nr`uFR}TrCxOQk zAvXAe9KdnJP)BfB(+IAIs;O9L+xOtzb?yJYyL{=@SHJa>A2(nB4n%|wToVEe>>Ybt zMGq06rvAOZ{`qG=z5c~-p1;D)W`k{WP4N;&B5Kg_FxI4Ccmx5(;Sw~8RT&&4S;jsu zch*mx6GF#e4G;}g3dEFM6|gvGBU6Mej?^~p>fT3h|F%7U(4Withu?*h4SPYTu&V&- z)%Rci!rjfiaPgPl{k~!M+?`GAM;dyGdvcGf*pWcQ{Y*eil(6-rIhwymv_ zog(1S1q6`TiU5OWVX6j}7@5ZaJ7JDbHJ*dJmZs~eCr7wmx6gf9-uw9de;_|%SM}{G z^kd&eXiwqn#m{~Io6l^{c6azs7&!EIhg};+Mi_?v-3Jc`q&tWexe3?YZ?_*zg(Uc@ zquTYGi}Uk~_+Y$rXHSK*yKRu``5`Uvm} z=pG31(DHTLV};y2y#LROhnEf-i~|NDK^wJa(0~~-Wu}EM3H2--Rm!?WJ+E|OIrzX}0CSUsY{aAs8@P|#!L)kT(V!;|;7xl{MnZkgoYw zH8^oj!sZ86)Tkjxps~cXO~f!K_~BK*)lniTh6hNpIw@y#l}1U5Od?3Y#lDrOa|H>Q zoJt?Cw}juO#!M|+le%WX_;=_&weodhrV>#&e)-TZU1iyGE3E1EB%c;jz%2?@N9P&& z&LeAvy;tQEmi{TUoB*N6OV;h8M5H47?faErvHL+wG+g}bP>R})8oqNtk|9;4{USD@ z1uz=s*=u1f*v7Mk&_L5sx1v?2!4WK$@%^;IH`HC%i!N~I`GV&{%>tUGZI((4&u0M_ zqM)=x1cz9?SZPQKBNl}q3d%7>8O#V_VkKiCv%XPQ=zV<9P^HKv_0if@xx09CY-Rz3A>XKhW+Q=6(&DMYLTNqP7wX47y{Nur|nb$3qnS1h5=z`QvcgdMud z7SGjp9Dy3~q0h;hMR+1NK~oB=pa`NERZ3(RF%Lo5DXck6B~TwO4|i`=*fDye7Ut0i zZmP9t!zqRGSd$bP+As3_hoa8p_(U8FVbpY|Y=&0Lg{~_Bu|v!w0U+3=+8pM96?YL~ zl2)mB%!QZfyzg0~F^>XeJXEs0r*c#4hM2pY`2wE~c4(ApblYzSVdmP*3aC%yLOw?wZf{5GLizkh5i9#FR=#rxxSR$iYU&)NU_msI7V`ryLaMb;P`TI5+em z7mm%B3OVpTFJkf@aU&gK@2>aR0LnKyfmyYWx3S5UNeRH9Bqw3R0uVfdS6u;mj4EEc zYxPs)POpy*hCU~&DhUTr6xNlOPQ7y~lt6C{H)t#YuU4zBiw88yR}Mci#7ao@3)Y!&k5vLIwQ+PgpX1-Q9@p4XJ?K{ zc(|B&ym~a9O)P^K31q+r56H28J0-($O!x8M7vrEGhgoo*^9vB5P@acxjyVITJ#F6^ zpr6gTOhf~U7iQjBn!YilZMW!>@iEZ`E!+ml|JrM>J$Ufo&i(ta^56;DG`AxtB%GeE zBWeES{rB%8uFMy@>p6kSyN$nclPk%!w=ql_rb~Z z)gQeHvsOX4X%e@>{U83|{@ZW=apnK{x4*A(!Pjg%HwH+@wM_Q^hY%V|B?8)eF-RH% z^(M_YKoDgrhU5w4%wrqHITsZyu2!q5ncus2Z}IvuEKk>U>--{8O2L&Y=H*xJyz$2C zC%5MU|D8;)`?HI{vxz-&U0|B2@O0u=T|-0;aIsjNF3yPv^(vulnu*AUIQx@NzB>JC zVP3sEX*sG|Sm!jjWM=0VYq`<_Gkfp3*~S`XLE_0;#ee+K7cjx2o3p1+HyU5H!6@E) zQy?A2!`zSXIA@ql9pn45U^4Z*ygYwCt~5a{k=n67NLs8Ri8SWl;DwX+EK&rkPGm+n_a{U%T*zjAdy!7?D<$2^#R|RK1GtT&Lc% zfV2K&2G`41|zdn(=Rrj`1X-5X2>^V;& z+iW^N@2BX%qEVrMSoq5^nW@5sF1~b6ZLBX!*!IKvMvQ{ z%;qz(iaF&neX>hYJ){vv6jx=`K1lL~mpGj2f*{AC7+CtsI+Pn__UZwVfkC;Zp9Z2` z!}yTF%Qf$F&lmu-D@7fYExa8?B~GXSR8)gz5r*!fG(ZC|1l}A4RTuzN2nDs5m5>T= zm5**c#v1|3x*e6E7t?Y|91H;lDJJp&nTx!@UXlTt5{s^eWPr{O9#0`Kj(?;IMRRMf)Elyto4 zW%bOSp@A!_lps)osZ~G_K&iAZm0BhEkl3H2v6YN5pp+ubXL3l?z^q6<)`9bE)_aK= zplO;^sDPF+@nQ{k{6(Nr^6b}cumlaRl}vd|d9uI95Ekw?uDg0jwk}#~)OrnGcVe!y zh+m7b?HYo4=T7_KM=KT%0rOL*E#PZOwvn#uC`vsvB(G#m(vq#u)9KViLBxSSKIyb< zIN~TGlAAqId_3<*4TfO-fSZc>R9oBu9k4Rlk52m!2d30Zw!@jba}nPmpr0)_Ub%PW z#&rQmzwCuXDX8@5U_}rmL_pCT{`_!BgmH|Jy*;FW3gCQD;pz10@?zOoKeJz+F7)M_ zKmO&f?)>y;5L!@J9jj`)3!v^0&_U+b+Bx~)!l$z? zoHWOuJ#~Nm$HQO$=Eghk9RK3y(9D5aAU*?WncJVd_13KY@V(#u>ra1v3BvbmJ0o-9 z;woa>?~*7CQ}fF+H~Izby3RS5tjy$>TRpU09knVZs*SV2f;b};byM$eEF3iMD_Si` z#0Ocbo8Mf0|4rN83XdQA^9w~*1-N$XZ{Pj=&Rq|4IDhhF_UQKGPp7N%yF}#GP3Lrc z@BHX40G^8X3%}g>WARH_3;bIZoSR*-Q+qbMI1i7XX#250x!p{T?qU1r(Px1J%w}!3 zI#c6MZo=fHj@6JmLF^b5c@E|X{HLc+KA9csbmoq)-e}Dd{c*zzG(%k?>VdQNJT}w= zSYGm_<6eVQxrC^RpXwXtLPvvoCwwkQ?s*h%!XAjs}uMJS^ zX%cke^ayC`p$$6q*Z@zI*x>s7s$&bZ7K_B7M$sZ!AQfQ&z*v4EF|G#ukG*T@k?W|! z=Q~w(Z+DN!cI+8!h=Dv7S!A093q+&{B!mQ6peVnIe}J-M%Z3F+Vv|)?EF#z;MIupx zqWG2A&OH0xI_EIcHMhDl)h>JFAVHL)R;#C`yXxM0-><&&9boleGiL-gfQ}N~-OJ!e zoQ;kw*wW+Q&+SX+d>35b`FX&iL+|t?qM*1>x?Z_ILFBcB)sX9QJ@hEcHu zJBwsXCrh%SqgDQnnQz=nYM>7AfO>(cakQkesRR)vgL9GDo7o|2_O&O+X`Di)hfJl! zSF~w-9d%?zc}p<0ROZDM&p*6+7pkpIV0lVU%$jkZsayF&ZCvJQREi+4@poAIpOJxL zMq&W0bsLx%1TvobgQhOo99a!VfoBCeo6fTnq(n$Jl7kmnBM89+ue;M1^gK|QWXVh` zD);omRIAzT?(1^}ld-AGE4b2VCLjU8ZU}HLc(bE!YwuJ$>(KN#nD%U!=YEFHj}MQ9 zg~9>+9(9Mk-^a-dIP}6N=9yWAMQs@9SapD3l>#*~7!f4F@7Ao|r#i-XHfwU3+dOEh zE*SZ@0IGC*3P#5Ie5EYcEDt(r8yJOWf6*sXbr(28da0I$aw#Ewo)cYxq-A_RfFCnO zG?{=k1DZAf*)7J3aZ#jJZ0Nea)GQZjIVa|`7m#i(PYybfzSF(r=e=0eE$3G5xrob8 zoY`SyMCR9{Z?f)KSLp@>(iDOZrp)9(fr){@Mk-JfQ>KF#%bLku6)~=_q=c)+)Avcc zdBS+jJLc0rrrJZkG8~tSK7$om2)~0&eX`fk$^(tB9&_)`A5Yphk6uON(Gw!F(nF+*g2ZrwNN_CbCNDXq;l;L`x-#AVv6B~a0^`95lFUrlgIjd(l zNBl2Z0|jnh-bJsoq0&~9h3h;YFLJn{@}IV<>(6y>q0ZFktf-M_Bp4FjlbE{bU_|Nw z2LgC#@Z#(FU*k@Wfgq&W8QOUzh&q9)*(hm!Qd%zOF^*~juqw?3J+TP26lEn68BAf0 z$)81cP%?&@l17se#7t^rGDc$y-UF;M0u)v}-qo*k9K}qa3OHs{9SM_GKEo(eo5^g` zF&K0QM^fe6DwAXYS=kWsm{Y(~_wwuVWh0TKFF0nEL1J`$chxKcam+oLRnb~M@f?< zygQ3N(M8Q@KBp^}7oey%7WHPCpJYhU#WXz!HiAp%M!8^c;L^0%N!ofzXD-%=ys7&R zfPRvlge#rR=Z8hJWM<;|wTHe*^WN*q5|#Dy&+lKoe(g7Jzx~SVuhZ5R9WANbO0bLf zp2W_2qK@ys|Nh_JeOK<>+1c3vA;y^ccVK7CNlJC*gGPDGBK@tyn7?Vu()+_Ocy}7X zb{y=K2mQ`FKe?hm`^B$l-mkZqA?&{T>RWHU_4g~+K6vlF&p!L?$2WG^v6(c+b{PmO zop#z<1P07p?*+3=RVF)|XToVF-h7O4b;vd;K!IhDk;Y4xuD|^9_N`mDq8t$~jgA*v zF7!%R4o6?@?H%9#=##w%-FRdnglHrCaZe6+Z!9j~e2#&cr`c?#fr&^gipVf5WZcs2 zt198{-TQ}!het=aapT7RSGND~!O^1ufXaB~%IxM%?C$Qm5QbrZ8JtUa|A}7t^Uq&# z^Khcvbo1uT?d`+U86512CA=*_S$?e~iJx=HY`C7)7<3-^=g1CJ1#N3HUh9U=ZOt}? zU8A#95lNz5&ierB;CgettU~v#0O*<0LbxNI8MC8##C%|%gdo+R0xi6ul?dm-9g!5t zO(iN>WHqn=Fg8s~yITohE&6WWS?}kUIR^G!;4b)ipm|3fYvo&js&8ra4yZdB9f|ydCkKu*eghQRzn`4mO-pVGiz%j-Z=c-rGv7`?QpVx_`HHe)PEMTV;tOo&~j8WY0i;JevKVhk9;U$N6WGp%-F2R?5ZJfzLhs1Bkc}WtAy8^pT;?Ty$yU~i8uPEwtZ47rI&0i zjyVX=vKeUHd)q{0dQJlqXjOpA z3MyE}154<0%0c9;^!#TAptA}`4KzFF`o7Ph2rp{e+ovMeF-B5-`uV3OOp+OfiXSycE5KnT$j=Y1-_Tm_4{)^?Y?p%KD z&0oIq_M0@nPDJt2C~h!PB0Qvi>GY-rJUV{#=Re*3;~)I}e_iTBPn{?~Tu|S8R^zBH zuAX*BW1CncDj+hLfTByO1^3xn+~@YB|Nr9AJMihdS0W}aXZ4>gv#Ok)r4M}hP=#3h ztlyDAWqj1DTeugW``(BD{KrSX`~7R5kBeWwK|lPyAdD1;5csO@zVXwazwjeobRYcX zulM&KUFm~&lw*rKBd19DFPU=8=n%rN)HL6LDzck8wPAYnV%QASsda2@s){9?w?yPb ze{kTx+^3yuTl2VT8@VDeirlwwCoG1rAXzTbwvTlTmV!jp9(N%QgUe09?%tfs20h6J>!8j(SXND{S|Q_Lh& z2VxVDFh>swEJ1N;dkhk1O!Llf1>X7(dsp)+$yLSA$F1tB?s;$WCLsjWaWo%`?DP*9 z5P}OA;yMAh0skGroePOB0^-8Gdkun!5H||Z;Dm{jIP>Pc*IiZjo@4hpbScM~yBb&q;L?NbW8bA_&1VEh#u!)GK znh!REva_m%h#`d@2?TYF)*;jGq&MkW41it>)rq2z0-M?flZqsB%^aPHBvX+fN;2KA zsDN|avzB8S5m*Ztg(JTGrHevFKo{hyBZh)`vUX!$PlK{}a;tq|SLfv1wU$C@?_ATO z6_3}>2C-(DEKAO_XY1lUao4_Zmblh)T4m<%jR0=cMyOe_Ad+2Z)}ETVLPq#?xxw-= zh}Het@HzWN$6TX$W?exHjvX!gc=&*5_tid=<&qR22_T2n3AG#Q(>M& zjlINE(f}IBJdej0|A90rq0$IEDUZxM#=+75j3ZzwQ3k^kbP{!#ztHEv`B>qgkAGIR ze%A4lI@7fva8b^>9q33fSIOWE^BLaf8<5)NU1sbp(WzP?I{nIrQCTsXIcuuoJP84< zr7)Ke%V;9GgcS@MXZTjEaL``B^0~SJYoniBwFH)osgS6G zdSp^X6)qNZ=4nHTR7J(8Ee?MnNI(db7?dF%5+R{r=?AB+OWE6rMX)(xN@FoO>;O6fI&Vo8+RZawBM2X2G;Gk|*6=_7DE6)=P|MdLb*V4jCgnl=#VDI2kpVR$-YtLh)S)yzS8H4CEuESgqL$c}>q0FWt~uG4Ck@{j zE}!#jfpyK@QEw8i15|pb)31pso|21smf(Vi$=XgR3tt$ij$DUY`_9a>CA)?>dxW|e z3(PRHdey%!Q*zZQ*X6IJjdkSZ1@|cA_2T{G*|+p)ZjCxD^j^8XoXc#7wHj3{)Uy8P zs$6FYJ|ktwg8H-#0_ZqX&l(inm1_rxa*YXW9TGeMk0#`JLP4-&l_-)x5NHynsA^JQ z;a1ozZ$w8TAXdUiB8-8Vm{w?w?xI^}o?2_VWOCTU?;Q~OSYvKn>a7HQ--SSC_5tc% z%@CN(f`^fr0N4k(lens=A*Rjf)Pe|#NLk-Zf9zN!w1cJ=<|Z|RilTVtxrc;M%qJCV zeBIwT5DMS~nuN&o#XJH)=-{>2?>u<)@q-7C0a%k{*B<3;;PfVWe^O>qU#u)Jv)5?G zFf$ra>i#o}CVZ02o*r{dX72mm;nFciI3_T|t<%%9n^=`k`3_Xbm zi;i?cm>};rP$6GuTPO`^Dtv^m1<+3sW_Wv0HJIm!&lya#+wHpU#&)-dkdDA`_wL;v zyz>s2eZ(|Eb0Z{B0Ri9yumVa+{`J8Je|Z1>`+xuN<(qv2WUR88Ja>{|>YJ76YP=sD z!q*(o#|9^&jS>NnnaACBm&Wyaeg63T)mLA=_sJ*kz4zXm&G^QTe%OEW4gm?o76O3m zneg9w`|VehfB)-WUB>a|>E>w=(5i1Zon4od`{vU9 zLb>kN;yDip^P^OLl~zMW(@-;dPs6@%J0Kux6Oc$F&;Yc+JWg!ag{`{BoO$NW>3|lAS3C6j;ChrquhQ_NZ|q9$uw^B74WBGJwuj=F zsx{~iYk_hJV_dL{%<-2&C3X2LnvrV8tHgO8nH->jHo&cYyr8~&uD6C%I0a2UA~NB7 z)pX^#cP0q%XR~ALoFEjIYo)VF5w-8vp6k2-t5slX+7^agQeag=WfW4uERqldy8wQuw7`E}rm%mI`_;bAw>9w-EsqvVS2v3{>GF9ffgp0kkAEZe<3Q zpeiY{1W;ye5JHB1wcHkH;$&-O#5_@w*oq@rfnAD>2{@aulG`QtssxhBBCr%d`)~#= z6kVy*3d{x2AYOA-Zt*mMJ@)D1EN^WNTb=4I-|8U6ze5 zli1b+e74bbutn+hbUBOKoV0v9wfMUx(64R4ukm*Zb^obTel`TO)K+WDNc;s)AchrBp&O$euCq7(zVExP zMZ~MC-E8(?_7FU#d)?31O=vQIPM$5xopU}amb+z-xy)TtbLB7hNxyKy02%FU%g7vn zMd(oAJ9qAU{E0mJ-#?>ZvW3|8;q&(!W1LxNl^3PSa%&+|0F~X?EzWCZ=VT$qSb95T z=KWXC`gj5K!DPJe`}5(PP^oIb1#L||mwL2g6;4Z>9(5VYPsHG`-GtXXVCr|j!mseL zWge{7*OC({B1QqTd)+bj7eHXs_9ncmM7#gHm0gy;wSWgcz>Gscm z{mXBDx&7OR-|la%b_AHNUTBi)dIa7k09I2CB?mq#xbDsYg6_w~8${G@)#qoWYkG(- zVxXQq$Te@UE<=s*dh+d+Vn$LVoJ-{MjYN>VR&w3|D9fbq5EFE~))i0bY}KVeCnGS}?XE()ltexl1wgRV&_vv>M{1jh>ox(xMXOi5yJ7snQ{p&< zZA?2IU*JTY#Nq0*Pwx-u_00&AwjA{;TGi~ZcGGxER~OsZgwqJUL`;H@_0!K`Qig#L z^~D;O~Y`tJG-Hcj6(>4)>DjIfK7@l!*Kupe=jbFz0J$I>v7~EY$*)F7n`$q zaw||AK`%ib!8o-VuizWBx(Qbg_qp#Ti29i(MI9hcA)xGbGF%2-;WW~;YY3x87owSP zu|Oyj*?%SrV0RP%rx6v^Ntc5YRiYuy3$k5N&F0cL{hz(7d9~~);`Pzz+|T!BCNptN zkYu7n!7OxPHW5+xS!JUOSNeB}o5YPP*8_^88#jU=hGZe4Ffo()%A3r4_jY%c?^cnz zo!j2y5Q8A3cn{9)(|t~Vov!YxUsXAi7L-bc7Z$sns%XycnmNHhkf5Sw=A^1ysivKG z|H3GU#dLl`#(kS(##NC;MIu@j9D!CDmIYTC7Nst$%xhgKFAU?%pb2nfRxRzMuL`OK z9gzg-!i~TZxH55Gl6^Dg{sMAAMFwHH>|I_E4_FDZ9l6K(E@B6=#@<>XbrlDkx4s%A&|L0> zOR+WY3fz`^9`>w(u01^986oc%B?4?E5qr2$l`u7>ssyylU4&FeWI@m>(D)2hY=aS* z08;E-zD9}r)!_)`k4yp2->4v90whHB31n^d=3o~y1Vr0)HCpKDXsJPQ@{F!HcJPbs zICJvfpc;uPvRCgJMf5)z2%S_}6+anWFt$9wxk@bHa?2Zlu=z;p*z6 z=Zzyp_1z1Ib z=>arS8?whnqx?@{ObL{GPx47FnxL29qF${`sG#hK71$Gxd7t7!VSfyOsCbuB)K-P( za#e+Ncb7mA3yLyHQX!V49+ybT@n0m2b*_7=t%kUrKS3kq=B|5Sw@-Pfh#4s(ZV;Vk z+4!pXVopW}&jgfa)snXPJz6B^O^g zy}ecT>qk5Mo7@6T`N#Od`9sQk$utVPP>&3MCU$#n8VDl4I|&KrS1+f zW`!+c$D%#oZPv4eq}!A9{MdAgu?FB#8>5F4hiMUg#^W^TvYTv$lV} z-~8J6(fxeqpK_6*%4~aq$Xn-woRT}D+-x_Z+o9~hbIwglsjA9I%=}ntmI??o4rv?| zK?RAp)apHJ_|(lM<*foFOhpA++SU!^GA>TVSu;Y>jDkGEmD#G^-;LLWYy`x>J;G?fY-M zap^6$l$_E`veIY}lAL|JhQsjwyKn#U%{TA9^Uf6u$H^kO)SPpzb&j)tYcBn{tLM*_ z>_{-wT2`yogOYFGzI|Tvw}12lxN$327}-Ok)zfF6ef{;Uf>iGFNf!W6WYN><9k z8_8RX2&FT8O2#VfO&*dt!;}au7U66?PYYhGW@$0QkD zv`DOplnDr#FxL_-f<{1wH1@%H4v_e9F=3h=1*2zjDQ8CZdIP@f z$euoq|1`X-2UYdBmEOnq5jXB#qdrX#dG{Yjh?*EhG<>FSiwPzglR!n=#iv@Ks#d@% zSP`qLDRD-KB?j#9>?=3V730n!2$T0c>lXMa~A)+>Mp1A2-%TN9}XS=ra#zn>~^oaZZ|8Gs*WAZksefqJW$5ABm_fWeA`rQ^htc;&JkIxG2)BApy-YrZ(&K358 zY^MpQ)f1!e^sxjZPdl>zGpuoogw;>d#6Gsqfd2{V*yo>~y8RQ5eNBD-&_G1Rnw&>$ zvyL?uvHxWHk=idBguQu0zt5cb?z(B#T~C?|boP`u;g9ZES8M;JK-1VY_Z(ZTOn3arL8_Ht=35h6gTB{e^hLM%x^uY%oT)%$()mLBr^>6<8nx#-}}SuUlqb{{rI_)n>WGrS91d9^vcU$eev0| z)75X^`USlGx0hDe=pt9yZr1Zl8S%ObBAyRw%aC5oaU@zG6@V(B3`n2@)sYt$uq4D8 z7Jxy~s#)z2Ccwp)dqSdN&|E(}-`;=1S*~GufFdZxn71)wTM$RGh;TU8VhmumzP>#F z!U?=P!r3-cc{rb=h(0c`I)&v;7_N~nYAqMJW&{2+={eCbqxmx@YmmpQ;SICLO>@d|=30q3Sq&*)wki7$JG2q6icr&bF(D@D3a2qLPaV=Xb7iL{~t#(ccXak>Q-lI91|=?{TF*zvm?n-gd-xe zs=9l2dUowyygy!y#j?l<35k=1#FYb*<%17CapTJKAS94DaYD%82jF0F!XV^}g%OsF z0L$3p9nbDecU5IZG9B5DO;>cM$I^1bv8&c}R#tU(R&{3leDTGcaMtnyW8>(k<<6%o z7wsN83Z9?=#Bh6cBgWWsxR4kn%r4)3j8U}>;O*;$G~MQJRVF4hi`EiDnwIxb1wy4v zOmoHQ`K(EuNdso2N|ycQsrO2Q*=l~3Ix`b3nJ3(?A`@mw=bTMso>YNK96{tUZA)oM z5z89Bq)%zMqtr0LlrY8^L_Gf+0CN7-$cZC{1SvQM!qE$h`Xb6&k(`X` zR;i&B@4xWbOKbw{zJz3uJ^jFh{o12qhdsIzmh@jk;iHn6db}7;J z3W>B2b3TkyreHjkYZ88%OxegxQq)-ml2^A~W(2mtR17?2{}tPoL!+WrYt)U2wq<^HJF?_~mDl>}$|TC)cq{lf5svM^n}Q zM)TAus+j|o#yU%TNh4!>+F+a3MKEiQe6?cdB@u+Au1_MCvz*!&NGx+g(nlJJZ0>@Z zV_FbThuyg35Is3&EUh*U>x7LEdrFFF>RJ!m)MElp5mIb6$7n#N41^#DOk)}lxosWM z#(B!ZM13Jz>M)N#q*ws(5fW!EYUV)bDSux~j=-b1w&N%eD|841V)2tG)@{rvbQu{C zF(7AJlGahzggZB{e&^eF-~996KY6%5b~6Qqb|W*m#+{4CmBpHWnQ|b!I>1~4-jKU3*vn3+UQ4!J&$7m zEndV4oP!uKgA5`7#~Vk>yLWGU@3*isV4}_O5Q0P;$f2CSeb_i9d3Pc5%9!*yMHwW6 z-87RW5YWsag@08bM_)RipQulhNFz&6%)u?@N`^aiM41a?wOT#%{Bu8e_0{_?zBr*! zIXfHhV9Ou>=>7M9|JrMBzVXJ@u3NTkLmNm!#OR#M`4gl3u)pMb{$Go8ZoOV(W(IQZ z0?B*v_Vw3a|JT!Bd+DW@4)5H8afGe`NMY<3R}R1b^2^WB><_>A)d%msd*j-&?b_3R zwV|S4#ckB8%t|BDJqb7;+J@uOr_nikmrGr?U-uW|$zW+oYhl$sOP>p*q}jL!2M2fV ztRAlX@kgf*A3}^t_=e!_SFe2i8#fn=CWNyfwc6XZJ3s4BPfzDv+jaAAzVJdn^u9d| zvVk2RAOH1lZ=W%G?>B2}8y5{8F5JAE%_&@89D5qCUOQYam(Y)W-$&Q8U(KG51<7JcYS0v2J%uq!YI=yYCKWr z&?TNBET~<0oClbDnn#+819~2@0cs);0I?Y1oJtmB7L_A{aCf^Lsm{oBAzWq&em1lv zkW$Km#xV%r}xXjC9A&F#TMRG%43vv|pJ>ek}Ysk7Zmo62^( zJaeDr2C?`Z>l)Z;bXm^#y0KT^_fe#@5L%jxI~bYKbBY1P4NU`ZUi)>qW@*VO^T?xs zgGZ#1dC2_HNHIb{jGQ78gDhXUgroJgsLNwYL_oZ6zuRe4$Gr|{oOz z+>i3PlqL>n4N%cWfQZU`BaWj!Gio=1$(mM*t#KI5;`78HkQSL+-+=1Q%4ZXLv{xP0ZDA0W2Ye@qtxY4i zJOHIKUADiKN*1Gyolnf4&vkYi6orav_4*{c$!#Si{N zO>I4mR~;N2%;$3e7wo%-2b&58)@ka$gK({#!+(B8)U({gAmn}XHRCiL* zU}qx|g4?-Hc3qc}!XQ`;)nSZ_<+VrW=lu}w-@lJ;`Nuc^^6_bkF@TXI|D<3bJLj@b zK#OUO_u$b-KmGZK|9G(Y$t&);XV>Fd+bn#u z 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 \ No newline at end of file diff --git a/red-x.ddebeb1c.svg b/red-x.ddebeb1c.svg new file mode 100644 index 0000000..94a6cd8 --- /dev/null +++ b/red-x.ddebeb1c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spinner.50fbc432.svg b/spinner.50fbc432.svg new file mode 100644 index 0000000..fa3071f --- /dev/null +++ b/spinner.50fbc432.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/warning.af6c77e0.svg b/warning.af6c77e0.svg new file mode 100644 index 0000000..a7824cf --- /dev/null +++ b/warning.af6c77e0.svg @@ -0,0 +1 @@ + \ No newline at end of file